假设有一个TestHttpClient Solution,这个Solution下分别有TestHttpClient工程(可执行程序)和HttpClient工程(动态库)。
这样我们需要三个CMakeLists.txt文件。其中HttpClient还依赖了libcurl第三方库。
下面分别是不同目录下的CMakeLists.txt文件清单
Solution目录
PROJECT(TestHttpClient)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
#要显示执行构建过程中详细的信息(比如为了得到更详细的出错信息)
SET( CMAKE_VERBOSE_MAKEFILE ON )
#添加子目录
ADD_SUBDIRECTORY(HttpClient)
ADD_SUBDIRECTORY(TestHttpClient)
HttpClient目录
MESSAGE(STATUS "This is TestHttpClient_SOURCE_DIR="${TestHttpClient_SOURCE_DIR})
MESSAGE(STATUS "This is CMAKE_SOURCE_DIR="${CMAKE_SOURCE_DIR})
#添加头文件搜索路径
INCLUDE_DIRECTORIES(${TestHttpClient_SOURCE_DIR}/HttpClient)
#用于将当前目录下的所有源文件的名字保存在变量 LIB1_SRCS 中
AUX_SOURCE_DIRECTORY(. LIB_SRC)
#把编译出来的库文件输出到项目的lib目录下
#例如运行“cmake ..”的目录为build,则在build/lib目录下生成
SET(LIBRARY_OUTPUT_PATH ${P