![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
cmake
风闲1217
这个作者很懒,什么都没留下…
展开
-
CMake获取目录下所有源文件
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} ALL_SOURCE) , 这样将当前目录所有的源文件(.cpp 和.c文件)都放到了ALL_SOURCE变量中,但是头文件并没有被包括进去,若在头文件有函数的实现部分,采用这种方式就容易出问题,所有我很少使用这种方式。这样就将当前目录所有的源文件都放在了ALL_SOURCE变量中,所有的头文件放在了ALL_HEAD中。1、aux_source_directory指令。2、file指令,我通常使用这种方式。原创 2022-09-13 12:08:52 · 8586 阅读 · 0 评论 -
CMake定义宏的方式
1、采用add_definitions定义宏,但是这种定义方式无法给宏具体值,比如: add_definitions(-DMG_ENABLE_OPENSSL)对应于C语言中的 #define MG_ENABLE_OPENSSL2、add_compile_definitions定义宏,这种方式可以给宏具体值,但是这个指令只要高版本的cmake支持,比如: add_compile_definitions(MG_ENABLE_OPENSSL=1)对应于C语言...原创 2021-09-16 14:45:55 · 24024 阅读 · 3 评论 -
cmake复制目录下的所有文件
file(GLOB allCopyFiles "${NSF_HOME}/lib/*")file(COPY ${allCopyFiles} DESTINATION ${LIB})原创 2021-08-16 14:18:19 · 5938 阅读 · 2 评论 -
CMake通过外部传参执行不同逻辑的2种方案
有时候一些场景需要在执行cmake指令时传入一些参数的值,使得CMakeLists.txt文件中的程序执行不同的逻辑,下面给出2种方案。1、SET指令给参数默认值 默认情况下会执行else,打印“this is x86 platform”,但可以更改,比如运行cmake指令时如下: cmake . -DBUILD_PLATFORM=arm 那么打印出来的是“this is arm platform”。2、OPTION指令开关 默认情况下会...原创 2021-02-19 16:41:05 · 6676 阅读 · 1 评论