CMakeLists.txt是层级包含关系,外层包含里层。
project(项目名称)
set(src //src为变量,自定义
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
)
//生成可执行文件helloword
add_executable(helloword
${src} //源文件
)
//从外部查找目录里来
link_directories(
//${CMAKE_SOURCE_DIR}指的是从/build前面到工程的文件目录
${CMAKE_SOURCE_DIR}/build/samples/base64
)你
//工程内静态库的添加
target_link_libraries(
link //工程目录下面
sample //工程内,处在工程目录下
“base64” //表示从查找目录中得到
)
//工程外静态库的添加
include_directories(
${CMAKE_SOURCE_DIR}/samples/base64
)
//表示该CMake下有一个子目录也含有CMake(即有实体工程)。
add_subdirectory(里层文件夹名)
//生成静态库
project(base64)
set(src
${CMAKE_CURRENT_SOURCE_DIR}/base64.cpp
${CMAKE_CURRENT_SOURCE_DIR}/base64.h
)
add_library(base64 STATIC
${src}
)
//生成动态库
project(base64_dynamic) //base64_dynamic为工程子文件目录,即存放base64.cpp的文件夹名称
ADD_DEFINITIONS(-DBASE64_SHARED)
set(src
${CMAKE_CURRENT_SOURCE_DIR}/base64.cpp
${CMAKE_CURRENT_SOURCE_DIR}/base64.h
)
add_library(base64_dynamic SHARED
${src}
)
add_subdirectory( 里层文件夹名 ) //表示该CMake下有一个子目录也含有CMake(即有实体工程)。