cmake_minimum_required (VERSION 3.13.0)project (property_test VERSION 0.0.4)# 设置全局属性 SOURCE_LISTset_property( GLOBAL APPEND PROPERTY SOURCE_LIST)# 如果是 Linux 系统,选择编译 linux 目录IF (CMAKE_SYSTEM_NAME MATCHES "Linux")include_directories (linux)add_subdirectory (linux)# Window 系统下...
这个PROJECT_SOURCE_DIR 是解决方案的 CMakeLists.txt 所在文件夹的路径。 设置输出目录,须在 add_subdirectory 之前。 调试目录 working directory Visual Studio 项目的默认调试目录是项目所在的目录。 working directory 在现实开发中,我们一般希望调试目录是编译输出目录。在 CMake 文件中,通过 set_property 和 VS_...
message("PROJECT_SOURCE_DIR: ${PROJECT_SOURCE_DIR}") message("PROJECT_BINARY_DIR: ${PROJECT_BINARY_DIR}") message("CMAKE_CURRENT_SOURCE_DIR: ${CMAKE_CURRENT_SOURCE_DIR}") message("CMAKE_CURRENT_BINARY_DIR: ${CMAKE_CURRENT_BINARY_DIR}") add_executable(main main.cpp) add_subdirectory(...
target_sources add_custom_command add_custom_target \ add_subdirectory aux_source_directory \ set_property set_target_properties define_property) usage() { echo "Error: $0 needs to have an input parameter" echo "supported input parameters:" for param in ${params[@]}; do echo " $0 ${para...
add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL]) 这条命令的作用是为构建添加一个子路径。source_dir选项指定了CMakeLists.txt源文件和代码文件的位置。如果source_dir是一个相对路径,那么source_dir选项会被解释为相对于当前的目录,但是它也可以是一个绝对路径。binary_dir选项指定了输出文件的路径...
不管是SUBDIRS还是ADD_SUBDIRECTORY指令(不论是否指定编译输出目录),我们都可以通过SET指令重新定义EXECUTABLE_OUTPUT_PATH和LIBRARY_OUTPUT_PATH变量来指定最终的目标二进制的位置(指最终生成的hello或者最终的共享库,不包括编译生成的中间文件) SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) SET(LIBRARY_OUTPUT...
set(CMAKE_CXX_STANDARD_REQUIRED ON) 13.添加子目录 add_subdirectory("share") 14.Message message(STATUS “message text”) 状态信息 message(“message text”) 一般通知 message(FATAL_ERROR “message text”) 验证错误,停止编译 message(WARNING “message text”) 警告,继续编译 ...
先来窥探下CMakeCache.txt的构成,CmakeCache.txt由两部分构成:External Cache Entries和Internal Cache Entries。而CMakeCache.txt是由解析器Parser生成。解析器的匹配器找到各种token。CMakeLists也可以解析外部的CMake语法,他是由“include” 或者“add_subdirectory”包含进来,两者的区别后面会说到。
cpp工程一般由头文件目录、源文件目录和第三方库目录三大块代码内容组成,CMake一般会在每个模块文件夹下都建立一个CMakelists.txt文件,而在最顶层的源文件目录下,会建立一个总的CMakelists.txt用于控制整个cmake流程,然后通过add_subdirectory()命令递归的访问每个模块目录执行cmake,最后在build目录下生成一个总的make...
add_subdirectory(src) 该语句会在执行完当前文件夹CMakeLists.txt之后执行src子目录下的CMakeLists.txt 1.16 message输出消息机制 输出正常: 代码语言:javascript 复制 message(STATUS"Enter cmake ${CMAKE_CURRENT_LIST_DIR}") 输出警告: 代码语言:javascript ...