需要在add_subdirectory()前设定,例如: set(LIBRARY_OUTPUT_PATH"${CMAKE_BINARY_DIR}") set(EXECUTABLE_OUTPUT_PATH"${CMAKE_BINARY_DIR}") 就能够分别在CMAKE_BINARY_DIR/Debug或CMAKE_BINARY_DIR/Release下得到xxx.lib和yyy.exe在一块儿了。这两个变量是全局级别的(具体到某个target,可能不起作用,见方法...
场景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:...
include()需要读取文件的名称,而add_subdirectory()需要一个目录,并在该目录中查找CMakeLists.txt文件。传递给include()的文件名通常扩展名为.cmake,但可以是任何名称。 include()没有引入新的变量范围,而add_subdirectory()引入了。 默认情况下,这两个命令都引入了一个新的策略范围,但是可以使用NO_POLICY_SCOPE选...
使用我们上面提到的 ADD_SUBDIRECTORY(src bin)可以更改这个变量的值。 使用SET(EXECUTABLE_OUTPUT_PATH <新路径>)并不会对这个变量造成影响,它仅仅修改了最终目标文件存放的路径。 5,CMAKE_CURRENT_LIST_FILE 输出调用这个变量的 CMakeLists.txt 的完整路径 6,CMAKE_CURRENT_LIST_LINE 输出这个变量所在的行 7,C...
再执行CMakeList.txt正常通过,下图红框标出就是cassdk子目录下CMakeLists.txt的执行输出。 然后你可以发现在输出文件夹下多出一个名为cassdk.out的文件夹,就是第二个参数指定的值。 参考: https://cmake.org/cmake/help/v3.1/command/add_subdirectory.html...
排除构建某些组件 可以通过设置CMake变量来控制是否包含某些子目录。 option(WITH_SUBDIR "Build subdirectory?" ON) if(WITH_SUBDIR) add_subdirectory(subdirName) endif() 控制子目录构建行为 add_subdirectory还可以传递额外的参数,这些参数会被传递给子目录的顶层CMakeLists.txt文件。子目录可以使用这些参数来控制其...
#CMAKE_CURRENT_SOURCE_DIR上当CMake目录add_subdirectory(../3rdparty ${CMAKE_CURRENT_SOURCE_DIR}) 不指定绝对路径就会报如下错误: CMake Error at CMakeLists.txt:8 (add_subdirectory):add_subdirectory not given a binary directory but the given sourcedirectory "G:/NDKProject/OpenGLES/src/main/cpp/...
binary directory 就是add_subdirectory() 命令中的 [binary_dir] 参数。 解决方法 在使用 add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL])命令时,如果 source_dir 不是当前目录(CMakeLists.txt 所在目录,例子中的 test/ 目录)的子目录,那么就需要显式指定[binary_dir] 参数,用于存储 source_...
add_subdirectory命令,可以将指定的文件夹加到build任务列表中。如果你的目录结构如下: main是主工程的CMake目录,需要添加子目录模块sub1 ,那么...
add_subdirectory(subproject) # 在构建时生成配置文件 configure_file(config.h.in config.h @ONLY) # 指定安装规则 install(TARGETS MyApp RUNTIME DESTINATION bin) install(FILES "${CMAKE_SOURCE_DIR}/libs/dynamic/libDynamic.dll" DESTINATION bin) ...