in-source编译就是把编译输出文件(包括.o文件)和源文件放在同一个目录。 out-source编译就是把编译输出文件(包括.o文件)放到与源文件目录不同的其他目录
如果是 in source 编译,这个变量指得就是工程顶层目录,如果是 out-of-source 编译,指的是工程编译发生的目录。另外 <projectname>_BINARY_DIR 和 CMAKE_BINARY_DIR 跟这个变量指代的内容是一致的。 2,PROJECT_SOURCE _DIR 不论采用何种编译方式,都是工程顶层目录。也就是在 in source 编译时,他跟 PROJECT_BI...
2. CMake 两种编译模式 CMake 支持两种构建模式,分别为 in-source build(源码中构建),out-of-sou...
以CMAKE_BINARY_DIR(二进制目录)和CMAKE_SOURCE_DIR(代码目录)为例:对于in-source build,由于二进制中间文件和代码目录放在一起,所以这两个变量的取值是相同的;对于out-of-source build,CMAKE_BINARY_DIR(二进制目录)自然是执行cmake的目录,即二进制中间目标文件存放位置的顶级目录,而CMAKE_SOURCE_DIR是CMakeLi...
add_subdirectory:这个语句的作用是增加编译子目录。其基本语法格式是: add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL]) 一共有三个参数,后两个是可选参数. source_dir 源代码目录 指定一个包含CMakeLists.txt和代码文件所在的目录,该目录可以是绝对路径,也可以是相对路径,对于后者相对路径的起点是...
如果是内部编译,就相当于 PROJECT_SOURCE_DIR 也就是工程代码所在目录,如果是外部编译,指的是外部编译所在目录,也就是本例中的 build目录。 所以,上面两个指令分别定义了:可执行二进制的输出路径为build/bin和库的输出路径为build/lib. 这样的指令应该写在哪里呢?把握一个简单的原则,在哪里ADD_EXECUTABLE或ADD_LI...
CMAKE_SOURCE_DIR PROJECT_SOURCE_DIR _SOURCE_DIR 1. 这三个变量指代的内容是一致的,不论采用何种编译方式,都是工程顶层目录。 2. 也就是在 in source build时,他跟 CMAKE_BINARY_DIR 等变量一致。 3. PROJECT_SOURCE_DIR 跟其他指令稍有区别,现在,你可以理解为他们是一致的。
如果是 in-source 编译,它跟 CMAKE_CURRENT_SOURCE_DIR 一致,如果是 out-of-source 编译,他指的是 target 编译目录(就是:项目绝对路径/build/顶层cmakelist到子cmakelist的相对路径)。使用 ADD_SUBDIRECTORY的第二个参数可以更改这个变量的:顶层cmakelist到子cmakelist的相对路径,这个值 ...
# Provides a relative path to your sourcefile(s). src/main/cpp/native-lib.cpp) # Searchesfora specified prebuilt library and stores the path as a # variable. Because CMake includes system librariesinthe search path by # default, you only need to specify the name of the public NDK libr...