我有一個cmake的小項目。我建立一個lib和一個可執行文件。在開發機器上,我還需要一個不能在其他機器/環境上構建的可執行文件。如何配置cmake以獲取可執行文件不是默認的
例如爲:
<my-lib>
| -- CMakeLists.txt
|
+ -- src/ -> build the lib/archive
| |-- lib.c
| |-- lib.h
| |-- CMakeLists.txt
|
+ -- tool -> build the tool
| |-- tool.c
| |-- CMakeLists.txt
|
+ -- tests -> build the unit tests
| |-- tests.c
| |-- CMakeLists.txt
我加CMakeLists.txt
所有目錄。還有一個add_executable
的測試。現在單元測試可執行文件是默認生成的。但我想從默認目標中排除它。
CMakeLists.txt
在tests
:
find_library (CUNIT_LIB cunit)
include_directories (${Cunit_INCLUDE_DIRS} "${PROJECT_SOURCE_DIR}/src")
set (CMAKE_C_FLAGS "-O2 -Wall -Werror")
add_executable (unit-test tests.c)
target_link_libraries (unit-test my-lib cunit)
有沒有人暗示該如何處理呢?我不想總是建立單元測試!
對包括不要使用'PROJECT_SOURCE_DIR'。如果有人將你的項目添加爲子目錄,它將具有你不期望的價值。這是更好地使用明確的名字' _SOURCE_DIR'或[CMAKE_CURRENT_LIST_DIR(http://www.cmake.org/cmake/help/v2.8.12/cmake.html#variable:CMAKE_CURRENT_LIST_DIR) –
2013-12-10 19:56:55
'設置(CMAKE_C_FLAGS「-02 - Wall -Werror「)'如果用戶想定義自定義編譯器標誌,它將會丟失。要解決這一點:'設置(CMAKE_C_FLAGS 「$ {} CMAKE_C_FLAGS -Wall -O2 -Werror」)' – 2013-12-10 19:57:56