cmake2
【install安裝】
# Library
# Note: may not work on windows
install (TARGETS cmake_examples_inst
? ? LIBRARY DESTINATION lib)
安裝xxxlib到/usr/local/lib
# Header files
install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/
? ? DESTINATION include)
# Config
install (FILES cmake-examples.conf
? ? DESTINATION etc)
as above. intsall(安裝類型 安裝的目標 DEXTINATION 安裝位置 )????安裝位置默認是/usr/local/xxx
————————————————————
【complie flags編譯選項】
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEX2 -xxx")
編譯的時候相當于 gcc -DEX2 -xxx;CMAKE_CXX_FLAGS是個cmake默認的環(huán)境變量,默認empty;可以加-Werror -Wall 嚴謹模式?!?strong>這是較為古老的方式】
target_compile_definitions(cmake_examples_compile_flags
? ? PRIVATE EX3
)
自動添加宏macro EX3;即在每個相關文件#define EX3;等同于gcc src.c -DEX3
target_compile_options(hello_lib PUBLIC -Werror -Wall)
自動添加編譯選項 -Werror -Wall;等同于gcc src.c -Werror -Wall,把warning視作error
————————————————————————
【build type 構建版本類型(如debug、release)】
手動發(fā)布正式版本
cmake .. -DCMAKE_BUILD_TYPE=Release
當然不手動更好:(化簡版)
if(NOT CMAKE_BUILD_TYPE)
? ? set(CMAKE_BUILD_TYPE Release)
endif()
如果你的cmake腳本沒有碰過CMAKE_BUILD_TYPE那么默認設置為Release版本。
否則默認是Debug版本。即自動gcc -g
貼一下沒化簡的原版:if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) message("Setting build type to 'RelWithDebInfo' as none was specified.") set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build." FORCE)
【一些重要的版本控制環(huán)境變量】:
Release - Adds the?
-O3 -DNDEBUG
?flags to the compilerDebug - Adds the?
-g
?flagMinSizeRel - Adds?
-Os -DNDEBUG
RelWithDebInfo - Adds?
-O2 -g -DNDEBUG
?flags