add_subdirectory(sub) 1. 2. 3. 4. 5. 在父目录下调用cmake .构建之后,在sub目录下会出现libsub.a库,说明当不指定binary_dir,输出目标文件就会放到source_dir目录下。 场景2:父目录CMakeLists.txt的add_subdirectory指定了source_dir和binary_dir。 # 父目录下的CMakeLists.txt cmake_minimum_required(VER...
TEST_CHILDREN_ALL_SCOPE_STR 3:children str 通过以上测试,可以清晰的看到子目录和父目录的变量传递过程, 建议还是将add_subdirectory放在主cmake种较靠上的位置
add_subdirectory(sub output EXCLUDE_FROM_ALL) add_executable(test main.cpp) 在父目录下调用cmake .构建之后,在output目录或sub目录下不会出现libsub.a库,说明当指定EXCLUDE_FROM_ALL选项,子目录的目标文件不会生成。 场景4:父目录CMakeLists.txt的add_subdirectory指定了EXCLUDE_FROM_ALL选项,且父目录的目标文...
场景1:父目录CMakeLists.txt的add_subdirectory只指定了source_dir。 # 父目录下的CMakeLists.txtcmake_minimum_required(VERSION3.10.2) project(test) add_subdirectory(sub) 在父目录下调用cmake .构建之后,在sub目录下会出现libsub.a库,说明当不指定binary_dir,输出目标文件就会放到source_dir目录下。 场景2:...
add_subdirectory 的CMakeLists.txt 有独立作用域 macro 没有独立作用域 function 有独立作用域 (因此 PARENT_SCORE 也可以用于 function 的返回值) 参考网站: cmake.org/cmake/help/v3 blog.csdn.net/Calvin_zh 访问环境变量:$ENV{xx} 用${xx} 访问的是局部变量,局部变量服从刚刚所说的父子模块传播规则。
使用我们上面提到的 ADD_SUBDIRECTORY(src bin)可以更改这个变量的值。 使用SET(EXECUTABLE_OUTPUT_PATH <新路径>)并不会对这个变量造成影响,它仅仅修改了最终目标文件存放的路径。 5,CMAKE_CURRENT_LIST_FILE 输出调用这个变量的 CMakeLists.txt 的完整路径 ...
本文将详细介绍如何在CMake中传递布尔参数。 CMake中的布尔参数可以使用SET命令设置为ON或OFF。例如: ``` SET(BUILD_TESTS ON) ``` 在CMake文件中,可以使用IF语句根据布尔参数的值来执行不同的操作。例如: ``` IF(BUILD_TESTS) ADD_SUBDIRECTORY(tests) ENDIF() ``` 上面的代码将检查BUILD_TESTS变量的值...
add_subdirectory命令,可以将指定的文件夹加到build任务列表中。如果你的目录结构如下: main是主工程的CMake目录,需要添加子目录模块sub1 ,那么...
如果是 in-source 编译,它跟 CMAKE_CURRENT_SOURCE_DIR 一致,如果是 out-of-source 编译,他指的是 target 编译目录(就是:项目绝对路径/build/顶层cmakelist到子cmakelist的相对路径)。使用 ADD_SUBDIRECTORY的第二个参数可以更改这个变量的:顶层cmakelist到子cmakelist的相对路径,这个值 ...