- Build Type
-
cmake -DCMAKE_BUILD_TYPE=Debug/Release ..
- Dump all variables
function(dump_cmake_variables) get_cmake_property(_variableNames VARIABLES) list (SORT _variableNames) foreach (_variableName ${_variableNames}) if (ARGV0) unset(MATCHED) string(REGEX MATCH ${ARGV0} MATCHED ${_variableName}) if (NOT MATCHED) continue() endif() endif() message(STATUS "${_variableName}=${${_variableName}}") endforeach() endfunction() - Q: 加了 link_directories, link 時仍找不到 library
- 確定 link_directories 指令加在 add_executable 之前
- Q: How to enable C++11?
-
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON)
- 或是
ADD_DEFINITIONS( -std=c++11 # or -std=c++0x )
2020年10月7日 星期三
[CMake] FAQ
2018年7月7日 星期六
[Software Engineering] use CMake to add version
- Problem: 如何在軟體中加入版號?
- How:
- 工具: CMake (跨平台的 configuration tool, 可建立各平台的 build solution/project file)
- 流程:
- 在 project setting 檔案 (CMakeLists.txt) 內加入版號
set (APP_VERSION_MAJOR 1) set (APP_VERSION_MINOR 0)
// the configured options and settings for App #define APP_VERSION_MAJOR @APP_VERSION_MAJOR@ #define APP_VERSION_MINOR @APP_VERSION_MAJOR@
configure_file (
"${PROJECT_SOURCE_DIR}/config.h.in"
"${PROJECT_BINARY_DIR}/config.h"
))
- CMakeLists.txt 中加入 target property VERSION 與 SONAME
set(APP_VERSION_STRING ${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}.${APP_VERSION_PATCH})
set_target_properties(App PROPERTIES
VERSION ${APP_VERSION_STRING}
SOVERSION ${APP_VERSION_MAJOR}
)
2013年8月10日 星期六
[CMake] Install command line fail
- 問題
- 在安裝 CMake command line tools可能會發生 "Failed create symlink installation may be incomplete" 的錯誤
- 原因
- 主要原因是之前安裝過其他版本的 CMake而造成的衝突
- 解法
- 自行 link吧!
- 在 /usr/bin中找到以下相關 binary
- ccmake
- cmake
- cmake-gui
- cmakexbuild
- cpack
- ctest
- 刪除其 link, 並建立新的link
- e.g. sudo ln -s /Applications/CMake\ 2.8-11.app/Contents/bin/cmake /usr/bin/cmake
訂閱:
文章 (Atom)