2013-11-24 62 views
1

假設我有以下目錄結構的項目:分組幾個目標到一個單一的一個

project 
    src 
    file1.cpp 
    file2.cpp 
    CMakeLists.txt 
    demos 
    demo1.cpp 
    demo2.cpp 
    CMakeLists.txt 
    CMakeLists.txt 

在主CMakeLists.txt文件,我有以下行:

add_subdirectory(src) 
add_subdirectory(demos EXCLUDE_FROM_ALL) 

據我瞭解,用於demos目錄的EXCLUDE_FROM_ALL參數具有僅顯式構建它的效果。也就是說,建立兩個目標demo1demo2,我需要執行:

make demo1 
make demo2 

我的問題是:有沒有辦法把所有這些demo1demo2指標納入一個單一的demos目標,然後只需鍵入:

make demos 

在一個有數十個演示的項目中,明確地構建每個演示都是很煩人的。

回答

1

好的,找到解決方案!如果有其他人需要這種行爲,我會在這裏發帖。 唯一需要的是定義一個自定義目標如下:

# Add target "demos" for building the demos 
add_custom_target(demos 
    COMMAND ${CMAKE_BUILD_TOOL} 
    WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/demos") 
1

如果我沒有記錯的話,你可以去演示(cd演示)並在那裏輸入make來製作所有的演示目標。

+0

謝謝。我不知道這一點。不過,我認爲有一種方法可以輸入'make demos',而不用去'demos'目錄。這個項目http://tinyurl.com/mahay35這樣做。參見'make demo'。 – Allan