我有一個從CMake源代碼樹建設特定的Visual Studio項目的問題。 Immagine我們在各個子目錄中有多個目標。在一個子目錄中,我們啓動一個新項目(和解決方案)。此項目目標中的項目應該是ALL_BUILD的一部分,但不在父項ALL_BUILD中。CMake嵌套項目和目標
簡而言之:
project(Main)
add_executable(MainApplication ...)
target_link_libraries(MainApplication PRIVATE Library_A)
add_subdirectory(Library_A)
add_library(Library_A STATIC ...)
add_subdirectory(Other_Related_Stuff_Using_MainApplication)
project(OtherRelatedStuff)
add_custom_target(OtherTarget ... DEPENDS MainApplication)
現在有了一個Visual Studio生成我們得到兩個解決方案文件。這是正確的和正確的。在這兩個解決方案中,我們都有這三個項目(因爲OtherReleatedStuff依賴於MainApplication beeing構建而OtherRelatedStuff是Main-Project的一部分)。
現在:ALL_BUILD構建所有項目。
當我設置
set_target_properties(OtherTarget PROPERTIES EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_DEFAULT_BUILD 1)
...在這兩種解決方案OtherTarget是禁用。
我想要做的是:
解決方案1: 在Main.Sln不存在應OtherTarget。在OtherRelatedStuff.sln可能有MainApplication,但不應該建立。也許不應該有MainApplication。
解決方案2: 在Main.Sln,OtherTarget不應該建立(從生成除外)。在OtherRelatedStuff.sln中,OtherTarget應該生成,但依賴關係不應該或甚至不可見。
是否有解決方案?