Projemde, projelerin çoğunu kullanan bir ana projeyle yaklaşık 250 projem var. Ana proje çalıştırıldığında tüm projelerin güncel olması önemlidir. Temel olarak, Visual Studio, MainProject derlendiğinde (ve çalıştırıldığında) tüm 250 projeyi kontrol etmelidir. CMakeLists.txt dosyalarım şunun gibi görünüyor.Tüm projeler CMake Visual Studio'da bir projeye bağlıdır
kök/CMakeLists.txt
....
add_subdirectory (MainProject)
add_subdirectory (ProjectA)
add_subdirectory (ProjectB)
add_subdirectory (ProjectC)
add_subdirectory (ProjectD)
....
kök/MainProject/CMakeLists.txt
....
add_executable (MainProject a.cpp b.cpp)
add_dependencies (MainProject ProjectA ProjectB ...)
....
kök/ProjectA/CMakeLists.txt
....
add_executable (ProjectA a.cpp b.cpp)
....
Açıkçası bu çok basitleştirilmiş bir örnektir, ama umarım fikir budur. Temel olarak, Visual Studio'nun tüm 250 proje için bağımlılıkları kontrol etmesini sağlamak için ana projedeki diğer tüm projeleri bağımlılıklar olarak eklemem gerekiyor. Artık bu, hiç de zarif bir çözüm değildir, çünkü MainProject uygulamasında add_dependencies, bir çok bağımlılığa sahiptir. Çalışıyor, ama bu problem için daha zarif bir şey var mı? Bildiğim kadarıyla - - Bir olarak CMake kendisi (örn tarafından sağlanan hiçbir küresel hedef listesi
Diğer projeler kütüphaneler 'MainProject' içine dahil edilecek mi? Ya da ana ile bağlantılı tüm kütüphaneler, yürütülebilir dosyalar ve özel hedeflere sahip olmak ister misiniz? – Florian
İkincisi. MainProject çalıştırıldığında tüm kitaplıkların, yürütülebilir dosyaların ve özel hedeflerin denetlenmesini (yani, bağımlı olarak ana bağlantıya bağlı) istiyorum. – Doeful
O halde lütfen cevabımı olası çözümler ile [bakınız] gör (http://stackoverflow.com/questions/30532448/what-is-the-name-of-cmakes-default-build-target/30575893#30575893). Senin durumunda muhtemelen 'add_executable() ',' add_library() 've' add_custom_target() 'üzerine yazmak hile yapardı. Şu anda (CMake sürüm 3.5.x'e göre), CMake tarafından sağlanan hiçbir global hedef listesi bildiğim kadarıyla var. – Florian