2013-07-20 23 views
1

使用cmake,我想這一點:CMake的:子目錄以自定義的目標和添加自定義的目標添加到VS解決方案

  1. 我需要一個自定義生成目標(我知道,我可以用custom_target創建),但我希望它被添加到Visual Studio解決方案中。現在,當我創建自定義目標時,我在文件夾中看到項目文件,但在VS解決方案中打開VS解決方案時,它不會顯示/添加到VS解決方案中。

  2. 我需要添加子目錄(其中有CMakeLists.txt)到自定義目標,以便這些項目將被添加到自定義目標中,並且當自定義目標被構建時,這些項目將獲得構建。

基本上就是像ALL_BUILD一樣構建的另一行。當生成ALL_BUILD時,只有添加到其中的項目(子目錄)纔會生成。當構建自定義目標時,只有添加到自定義目標的項目(子目錄)纔會構建。

是否有可能做到這樣的事情?

非常感謝你的時間和幫助!

--rc

回答

1

你應該能夠在使用add_custom_targetadd_dependencies做。

假設你有以下目錄結構:

root 
    |--CMakeLists.txt 
    |--main.cc 
    | 
    |--one 
    | |--CMakeLists.txt 
    | |--main_one.cc 
    | 
    |--two 
     |--CMakeLists.txt 
     |--main_two.cc 

假設你想要的子目錄「一」和「二」是不包括在ALL_BUILD目標,那麼下面應該工作:

首頁 - 電平的CMakeLists.txt:

cmake_minimum_required(VERSION 2.8 FATAL_ERROR) 
project(test) 

add_executable(primary main.cc) 

add_subdirectory(one) 
add_subdirectory(two) 

add_custom_target(SecondaryAllBuild) 
add_dependencies(SecondaryAllBuild one two) 
在 「根/一個」(用於在的CMakeLists.txt 「根/ 2」,交換 「一」 爲 「二」)

的CMakeLists.txt:

cmake_minimum_required(VERSION 2.8 FATAL_ERROR) 
project(secondary_one) 
add_executable(one EXCLUDE_FROM_ALL main_one.cc) 
+0

謝謝!,那工作:) – riderchap

相關問題