cmake笔记
2019-11-25
变量
参数
命令行
参考:CSDN
CMakeList
环境变量:$ENV{PATH}
编译选项
CMAKE_CXX_FLAGS
- 为不同的目标文件设置不同编译选项:stackoverflow
add_executable(project1 myfile.cpp) set_target_properties(project1 PROPERTIES COMPILE_FLAGS "flags1") add_executable(project2 myfile.cpp) set_target_properties(project2 PROPERTIES COMPILE_FLAGS "flags2")
|
链接器选项
target_link_libraries: 直接在后面添加-l{library_name}(如-lgmp)
输出目录
CMAKE_ARCHIVE_OUTPUT_DIRECTORY
CMAKE_LIBRARY_OUTPUT_DIRECTORY
LIBRARY_OUTPUT_DIRECTORY
CMAKE_RUNTIME_OUTPUT_DIRECTORY
GUI的参数导出
在对应目录的CMakeCache.txt中查找
函数
add_custom_command
TODO
execute_process
execute_process(COMMAND <cmd1> [args1...]] [COMMAND <cmd2> [args2...] [...]] [WORKING_DIRECTORY <directory>] [TIMEOUT <seconds>] [RESULT_VARIABLE <variable>] [OUTPUT_VARIABLE <variable>] [ERROR_VARIABLE <variable>] [INPUT_FILE <file>] [OUTPUT_FILE <file>] [ERROR_FILE <file>] [OUTPUT_QUIET] [ERROR_QUIET] [OUTPUT_STRIP_TRAILING_WHITESPACE] [ERROR_STRIP_TRAILING_WHITESPACE])
|
aux_source_directory
aux_source_directory( dir variable )
|
添加dir下所有源文件(c/cpp)至variable
add_library
add_library( lib_name STATIC | SHARED | MODULE source.cpp source.h)
|
- 库名
- 库文件类型
- TODO
- 源文件
link_directories
TODO
target_link_libraries
target_link_libraries( target liba libb )
|
- 通过
add_executable和add_library生成的目标文件
- 库文件,无后缀名
- TODO
find_library
TODO
find_package
参考:简书
对于要查找的package,名为package
- 先要设置路径:
set(package_DIR 路径)
- 然后进行查找
find_package (package REQUIRED)
|
- 找到的lib将存放在
package_LIBS中
include_directories
include_directories( ./dir1 ./dir2 )
|
- 添加头文件目录
- TODO
add_executable
- 目标文件
- TODO
- TODO
- 源文件
调试
cmake --debug-output cmake --trace
|