1、用例
1.1、目录结构:
/test
——/src
————main.cpp
————CMakeLists.txt
——CMakeLists.txt
1.2、CMakeLists.txt内容
1) /test/CMakeLists.txt
cmake_minimum_required(VERSION 3.9)
project(HelloWorld5)
set(CMAKE_CXX_STANDARD 11)
add_subdirectory(src temp)
2) /test/src/CMakeLists.txt
cmake_minimum_required(VERSION 3.9)
set(CMAKE_CXX_STANDARD 11)
aux_source_directory(. source_list)
add_executable(HelloWorld ${source_list})
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../bin/)
2、语法解析:
2.1、add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
作用: 向当前工程添加子目录:
source_dir
指定源CMakeLists.txt
和代码文件所在的目录;
binary_dir
指定输出文件(中间二进制文件与目标二进制文件)放置的目录,不指定则在构建目录下。
2.2、aux_source_directory(<dir> <variable>)
作用: 收集指定目录中所有源文件的名称,并将列表存储在提供的<variable>
变量中。
例: 查找当前目录下的所有源文件,并将文件保存到 DIR_SRCS
变量中
aux_source_directory(. DIR_SRCS)
2.3、set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/…/bin/)
作用: 指定可执行文件放置目录
2.4、INSTALL指令和CMAKE_INSTALL_PREFIX变量
1)INSTALL指令:INSTALL(TARGETS targets...[ARCHIVE|LIBRARY|RUNTIME][DESTINATION <dir>]…)
作用: 安装发布件到指定目录
例:INSTALL(TARGETS myrun RUNTIME DESTINATION bin)
:安装可执行文件myrun
到bin
目录
可以用shell脚本的cp代替其基础用法
2)CMAKE_INSTALL_PREFIX变量:
作用: 定义发布件的安装路径,即路径${CMAKE_INSTALL_PREFIX}/<DESTINATION定义的路径>
例:cmake .. -DCMAKE_INSTALL_PREFIX=/usr/dir1
:安装发布件到/usr/dir1/bin
CMAKE_INSTALL_PREFIX的默认定义是/usr/local