if中添加了IN_LIST选项,并且可以使用环境变量$PATH(详见 CMake 3.6) 对库文件进行搜索,添加了 INTERFACE 库的依赖关系,还有其他一些改进。随着支持的语言越来越多,COMPILE_LANGUAGE支持生成器表达式就很有必要了。并且,Makefile 在并行执行时的输出更好看了。 首次发布于2015年7月23日 if支持IN_LIST关键字 新增*_...
elseif(OTHER_CONDITION) # ... else() # ... endif() 循环语句: foreach(item IN LISTS some_list) # ... endforeach() 函数和宏 你可以定义自己的函数和宏,它们有类似的语法: 函数: function(FUNCTION_NAME arg1 arg2) # ... endfunction() 宏: macro(MACRO_NAME arg1 arg2) # ... endmac...
if(CONDITION)# ...elseif(OTHER_CONDITION)# ...else()# ...endif() 循环语句: foreach(itemINLISTSsome_list)# ...endforeach() 函数和宏 你可以定义自己的函数和宏,它们有类似的语法。函数: function(FUNCTION_NAMEarg1arg2)# ...endfunction() 宏: macro(MACRO_NAMEarg1arg2)# ...endmacro() ...
CMAKE_CURRENT_SOURCE_DIR,CMAKE_CURRENT_LIST_DIR:正在处理的CMakeLists.txt所在目录,两者可能略有区别,建议使用后者,尤其在依赖管理时的目录 注:上文中不同前缀对应的细微区别如下 CMAKE_通常指的是根项目的属性,建议不要直接使用,因为这使得根项目无法作为子项目存在。(根项目指的是启动 CMake 时的 CMakeLis...
# If the package has been found, several variables will # be set, you can find the full list with descriptions # in the OpenCVConfig.cmake file. # Print some message showing some of them message(STATUS "OpenCV library status:")
The text does not end on an escaped double-quote like \".Itdoes end in an unescaped double quote.") 无引号形式 CMake支持参数不带任何引号,因为所有值都会转换成String。所有的参数会被封装成List。 List的分隔符为;,所以参数列表内如果一个字符串用;分割,;两边会被当成两个参数。
if(IS_ABSOLUTEpath) 关于绝对路径: 如果是Linux,该路径需要从根目录开始描述[ 如/home/user/file-name] 如果是Windows,该路径需要从盘符开始描述[ 如C:\Users\user\] 如果是绝对路径返回True,如果不是绝对路径返回False。 2.1.5 其它 判断某个元素是否在列表中[IN_LIST] ...
echo("CMake binary is in the expected location.") build() } 这个例子将在构建 CMake 项目时检查是否将 CMAKE_BINARY_DIR 设置为正确的位置。如果该目录不存在或者不是编译器编写的目录,则会输出一条错误消息并退出。否则,将构建项目。 总结 CMakeListIfElse 是一个非常有用的工具,可以帮助我们更快地构建...
target_link_libraries(app ${LINK_LIB_LIST}) #也可以指定库的路径 link_directories("${PROJECT_SOURCE_DIR}/lib") 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 设置宏定义 option(ENABLE_ORIGIN_PROTOCOL "use origin protocol" OFF) if(ENABLE_ORIGIN_PROTOCOL) ...
(6) if…else[if]…endif 含义:这个不用详细介绍了,用法同编程语言中的控制语句 语法: if/else([<condition>]) 使用样例: if(WIN32) message(STATUS "inWindowsSystem") elseif(UNIX) message(STATUS "in Unix System") endif() (7) include_directories ...