示例CMakeLists.txt。
#1 设置cmake版本
cmake_minimum_required( VERSION 3.9 )
#2 设置项目名称
project( XXXXX )
#3 设置编译器版本
set( CMAKE_CXX_STANDARD 11 )
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
# #打印JYSP_HOME环境变量
# message(STATUS "JYSP_HOME:$ENV{JYSP_HOME}")
# message(STATUS "PROJECT_SOURCE_DIR:${PROJECT_SOURCE_DIR}")
#4 设置交叉编译环境
if(0)
#4.1 设置目标平台系统
set(CMAKE_SYSTEM_NAME Linux)
#4.2 设置交叉编译库路径
set(CMAKE_FIND_ROOT_PATH
/home/noch/tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/lib
/home/noch/tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/include
/home/noch/tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)#只在交叉编译库路径中寻找
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
#4.3 设置交叉编译器
set(CMAKE_C_COMPILER /home/noch/tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER /home/noch/tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-g++)
set(CMAKE_C_EXTENSIONS "-pipe -g -Wall -W -fPIE")
set(CMAKE_CXX_EXTENSIONS "-pipe -g -Wall -W -fPIE")
endif()
#5 包含头文件搜索路径
include_directories(
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/src/libserialport
${PROJECT_SOURCE_DIR}/src/muduo
)
#6 包含源文件
aux_source_directory(${PROJECT_SOURCE_DIR} SOURCE)
aux_source_directory(${PROJECT_SOURCE_DIR}/src/nlohmann nlohmann)
aux_source_directory(${PROJECT_SOURCE_DIR}/src/libserialport libserialport)
aux_source_directory(${PROJECT_SOURCE_DIR}/src/muduo/Net muduoNet)
aux_source_directory(${PROJECT_SOURCE_DIR}/src/muduo/base muduobase)
#7 设置链接库
set(LIBS pthread)
#7.1 设置库路径
set(link_DIR
${PROJECT_SOURCE_DIR}/../../bin/libs
)
link_directories(${link_DIR})
#8 将项目编译成可执行程序
add_executable(
${PROJECT_NAME}
${SOURCE}
${libserialport}
${muduoNet}
${muduobase}
${nlohmann}
)
#8.1 将项目编译成.so文件(共享库)
# add_library(${PROJECT_NAME} SHARED ${SOURCE})
#8.2 将项目变成.a文件(静态库)
# add_library(${PROJECT_NAME} STATIC ${SOURCE})
#9 链接库
target_link_libraries(${PROJECT_NAME} ${LIBS})



