CMake
文章平均质量分 58
道道道人间道
这个作者很懒,什么都没留下…
展开
-
CMake自定义Visual Studio版本、Architecture、Tool Set
自定义Architecturevs2008-vs2017 cmake.exe ../ -G"Visual Studio 12 2013Win32"vs2019 and latter cmake.exe ../ -G"Visual Studio 17 2022" -A"Win32"参考:Visual Studio 17 2022 = Generates Visual Studio 2022 project files. ...原创 2022-01-21 12:25:40 · 1850 阅读 · 0 评论 -
CMake宏相关设置
add_definitions 添加宏定义、编译相关的定义#定义一个宏UNICODE,代码中可见add_definitions(-DUNICODE)#添加编译器相关的定义,此例告诉编译器,允许它去重新排序、组合、简化浮点操作#以达到加速浮点代码add_definitions("/fp:fast") 其他编译选项的定义可参考MSDN:https://docs.microsoft.com/en-us/cpp/build/reference/fp-speci...原创 2021-12-20 21:15:54 · 462 阅读 · 0 评论 -
CMake手册详解 (十)
CMD#28: file 文件操作命令 file(WRITE filename "message to write"... ) file(APPEND filename "message to write"... ) file(READ filename variable [LIMIT numBytes] [OFFSET offset] [HEX]) file(STRINGS转载 2015-06-19 15:16:55 · 663 阅读 · 0 评论 -
CMake手册详解 (十一)
CMD#29:find_file 查找一个文件的完整路径。 find_file( name1 [path1 path2 ...]) 这是该命令的精简格式,对于大多数场合它都足够了。它与命令find_file( name1 [PATHS path1 path2 ...])是等价的。 find_file( name | NAM转载 2015-06-19 15:17:39 · 2304 阅读 · 0 评论 -
CMake手册详解 (十四)
CMD#32 : find_path 搜索包含某个文件的路径 find_path( name1 [path1 path2 ...]) 在多数情况下,使用上述的精简命令格式就足够了。它与命令find_path( name1 [PATHS path1 path2 ...])等价。 find_path( name | NAMES转载 2015-06-19 15:19:41 · 1974 阅读 · 0 评论 -
CMake 手册详解(十七)
CMD#40 : get_property 获取一个属性值 get_property( DIRECTORY [dir] | TARGET | SOURCE | TEST |转载 2015-06-19 15:22:00 · 1550 阅读 · 0 评论 -
CMake 手册详解(二十)
CMD#51: list 列表操作命令。 list(LENGTH ) list(GET [ ...] ) list(APPEND [ ...]) list(FIND ) list(INSERT [ ...]) list(REMOVE_ITEM [ ...]) list(REMOVE_AT [ ...])转载 2015-06-19 15:24:06 · 598 阅读 · 0 评论 -
CMake手册详解 (十三)
CMD#31:find_package 为外部工程加载设置。 find_package( [version] [EXACT] [QUIET] [[REQUIRED|COMPONENTS] [components...]] [NO_POLICY_SCOPE]) 查找并加载外来工程的设置。该命令会设置_FOUND变量,用来指示要找转载 2015-06-19 15:18:51 · 551 阅读 · 0 评论 -
CMake 手册详解(二十三)
CMake变量按功能分有主要有四种不同的类型:1.) 提供信息的变量[共53个];2.) 改变行为的变量[共23个];3.) 描述系统的变量[共24个];4.)控制构建过程的变量[共22个]。此外还有一些变量因编译使用的语言不同而不同,将它们归为第五类[共29个]。 由于变量比较多,这里只给出变量的大概描述;具体作用可使用cmake --help-variable variable_name命令转载 2015-06-23 18:16:03 · 641 阅读 · 0 评论 -
CMake 手册详解(二十二)
CMD#65: separate_arguments 将空格分隔的参数解析为一个分号分隔的list。 separate_arguments( _COMMAND "") 解析一个unix或者windows风格的命令行字符串"",并将结果以分号分隔的list的形式存储到中。整个命令行都必须从这个""参数中给出。 UNIX_COMMAND模式以没有被括起来的白字符为参数的分隔符。它可以转载 2015-06-23 18:15:03 · 692 阅读 · 0 评论 -
cmake常见问题设置
1、设置程序以管理员的方式启动 SET( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /level='requireAdministrator' /uiAccess='false'" )2、解决CMP0020警告 根据官方文档的解释,如下: CMP0020原创 2016-12-20 21:27:56 · 4706 阅读 · 0 评论 -
CMake 默认编译、链接选项
原文地址:https://blog.csdn.net/icbm/article/details/52336497CMakeLists.txt 文件内容:cmake_minimum_required(VERSION 3.4)message(STATUS "CMAKE_C_FLAGS = " ${CMAKE_C_FLAGS})message(STATUS "CMAKE_C_FLAGS_DEBUG...转载 2018-04-27 18:58:04 · 4923 阅读 · 0 评论 -
CMake 手册详解(六)
CMake 手册详解(六)CMD#6:add_library 使用指定的源文件向工程中添加一个库。 add_library( [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] source1 source2 ... sourceN) 添加一个名为的库文件,该库文件将会根据调用的转载 2015-06-19 15:13:48 · 566 阅读 · 0 评论 -
CMake 手册详解(八)
=======================================================CMD#14:configure_file: 将一份文件拷贝到另一个位置并修改它的内容。 configure_file( [COPYONLY] [ESCAPE_QUOTES] [@ONLY]) 将文件拷贝到然后替换文件内容中引用到的变量值转载 2015-06-19 15:15:40 · 553 阅读 · 0 评论 -
CMake 手册详解(二十一)
CMD#58: option 为用户提供一个可选项。 option( "描述选项的帮助性文字" [initial value]) 该命令为用户提供了一个在ON和OFF中做出选择的选项。如果没有指定初始值,将会使用OFF作为初值。如果有些选项依赖于其他选项的值,参见CMakeDependentOption模块的帮助文件。CMD#59: output_required_files 输出转载 2015-06-19 15:24:54 · 547 阅读 · 0 评论 -
CMake 手册详解(七)
CMD#11:build_command 获取构建该工程的命令行。 build_command( [CONFIGURATION ] [PROJECT_NAME ] [TARGET ]) 把给定的变量设置成一个字符串,其中包含使用由变量CMAKE_GENERATOR确定的项目构建工具,去构建转载 2015-06-19 15:14:51 · 727 阅读 · 0 评论 -
CMake手册详解 (九)
CMD#17: else 开始一个if语句块的else部分。 else(expression) 参见if命令。CMD#18: elseif 开始 if 块的 elseif 部分。 elseif(expression) 参见if命令。CMD#19: enable_language 支持某种语言(CXX/C/Fortran/等) enable_la转载 2015-06-19 15:16:23 · 464 阅读 · 0 评论 -
CMake 手册详解(十八)
CMD#45 : include 从给定的文件中读取CMake的列表文件。 include( [OPTIONAL] [RESULT_VARIABLE ] [NO_POLICY_SCOPE]) 从给定的文件中读取CMake的清单文件代码。在清单文件中的命令会被立即处理,就像它们是写在这条include命令展开的地方一样。如果指定了OPTIO转载 2015-06-19 15:22:36 · 523 阅读 · 0 评论 -
CMake 手册详解(五)
CMD#2: add_custom_target 添加一个目标,它没有输出;这样它就总是会被构建。 add_custom_target(Name [ALL] [command1 [args1...]] [COMMAND command2 [args2...] ...] [DEPENDS depend depend转载 2015-06-19 15:10:11 · 1702 阅读 · 0 评论 -
CMake 手册详解(十九)
CMD#49 : install 指定在安装时要运行的规则。 该命令为一个工程生成安装规则。在某一源文件路径中,调用这条命令所指定的规则会在安装时按顺序执行。在不同路径之间的顺序未定义。 该命令有诸多版本。其中的一些版本定义了文件以及目标的安装属性。这多个版本的公共属性都有所涉及,但是只有在指定它们的版本中,这些属性才是合法的(下面的DESTIONATION到OPTIONAL的选项列表转载 2015-06-19 15:23:13 · 590 阅读 · 0 评论 -
CMake手册详解 (十二)
CMD#30:find_library 查找一个库文件 find_library( name1 [path1 path2 ...]) 这是该命令的简写版本,在大多数场合下都已经够用了。它与命令find_library( name1 [PATHS path1 path2 ...])等价。 find_library( name转载 2015-06-19 15:18:08 · 935 阅读 · 0 评论 -
CMake手册详解 (十五)
CMD#33:find_program 查找可执行程序 find_program( name1 [path1 path2 ...]) 这是该命令的精简格式,它在大多数场合下都够用了。命令find_program( name1 [PATHS path1 path2 ...])是它的等价形式。 find_program( na转载 2015-06-19 15:20:35 · 710 阅读 · 0 评论 -
CMake 手册详解(十六)
CMD#35 : foreach 对一个list中的每一个变量执行一组命令。 foreach(loop_var arg1 arg2 ...) COMMAND1(ARGS ...) COMMAND2(ARGS ...) ... endforeach(loop_var) 所有的foreach和与之匹配的endforeach命令之间的命令会被记录下来而不会被调用转载 2015-06-19 15:21:09 · 613 阅读 · 0 评论 -
CMake 手册详解(三)
生成器 在CMake 2.8.3平台上,CMake支持下列生成器:Borland Makefiles: 生成Borland makefile。MSYS Makefiles: 生成MSYS makefile。生成的makefile用use /bin/sh作为它的shell。在运行CMake的机器上需要安装msys。MinGW Makefiles: 生成供mingw32-make转载 2015-06-19 15:06:54 · 810 阅读 · 0 评论 -
CMake 手册详解(一)
公司的一个项目使用CMake作为跨平台构建工具;业务有需求,当然要好好研读一下官方的技术手册。目前的计划是先把官方手册翻译一下,了解清楚CMake中的各种命令、属性和变量的用法。同时在工作中也会阅读CMake的真实源码,后续会基于此陆续写一些工程中使用CMake的心得。CMake的版本也在不停更新,有些新的命令和变量会随着版本更新添加进来,这是后事了,暂且不管;现在锁定CMake 2.8.3作为手转载 2015-06-19 15:04:36 · 2286 阅读 · 0 评论 -
CMake 手册详解(四)
CMake手册的客套话总算说完了,开始进入正题。第一部分是CMake命令。命令就相当于命令行下操作系统提供的各种命令,重要性不言而喻;可以说,这些命令是CMake构建系统的骨架。CMake 2.8.3共有80条命令,分别是:add_custom_command, add_custom_target, add_definitions, add_dependencies, add_executable转载 2015-06-19 15:08:00 · 1393 阅读 · 0 评论