参考文献:
入门首先:http://www.hahack.com/codes/cmake/#
官方教程:https://cmake.org/cmake-tutorial/
官方教程译文:https://juejin.im/post/5a72775d6fb9a01cac187e96
简单操作语法:https://learnxinyminutes.com/docs/cmake/
官方cmake、ctest、cpack介绍:https://cmake.org/cmake/help/v3.11/
源码例程:https://gitee.com/qccz123456/learn_cmake,通过git log可查看具体每一步的步骤。
书籍:http://sewm.pku.edu.cn/src/paradise/reference/CMake%20Practice.pdf
/*
step1:
cmake -DUSE_MYSQRT=ON -DCMAKE_INSTALL_PREFIX=/home/eagle/Desktop/cmake_learn/build/output ..
step2:
make
step3:
make test
step4:
make install
step5:
cpack -C xxxx
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./build/output/lib
*/
/*
LearnCmake
|__CMakeLists.txt
|__LearnCmake_config.h.in
|__main.cpp
|__License.txt
|__README
|__feature
|__CMakeLists.txt
|__mysqrt.h
|__mysqrt.cpp
*/
[LearnCmake/CMakeLists.txt]
/*
cmake_minimum_required (VERSION 2.6)
project (LearnCmake)
# the version number, like define, 三者的名称相同
set (LearnCmake_VERSION_MAJOR 1)
set (PROJECT_VERSION_MINOR 0)
set (CMAKE_VERSION_PATCH 0)
# Set the output folder where your program will be created
set (CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin)
set (EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set (LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})
# Debug/Release settings
set (CMAKE_BUILD_TYPE "Debug")
set (CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
set (CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
message (STATUS "src dir = ${PROJECT_SOURCE_DIR}")
message (STATUS "bin dir = ${PROJECT_BINARY_DIR}")
#message (WARNING "This is Warning") # continue processing
#message (SEND_ERROR "This is error") # continue processing, but skip generation
#message (FATAL_ERR