W naszym systemie kompilacji CMake buduję niektóre biblioteki i niektóre pliki wykonywalne. Wszystkie produkty do kompilacji są wysyłane do określonego folderu.Czy istnieje ogólny sposób wyłączania wykonywalnych obiektów docelowych w cmake
Problem polega na tym, że mam pakiet narzędzi VS2010 i VS2008, ale potrzebuję tylko zestawu narzędzi VS2008 dla bibliotek VS2008. Pliki wyjściowe są docelowymi wartościami docelowymi dla Win32 dla obu zestawów narzędzi, więc muszę tylko raz zbudować pliki wykonywalne za pośrednictwem łańcucha narzędzi VS2010, podczas gdy pakiet narzędzi VS2008 powinien po prostu pominąć pliki wykonywalne i zbudować tylko pożądane biblioteki (co oszczędza czas budowania).
Skrypty bazowe CMake i ogólna konfiguracja mogą być również dostarczane klientom w przyszłości, więc byłoby miło, gdyby w CMake była możliwość wyłączenia określonych celów, jak wszystkie pliki wykonywalne w sposób ogólny. W przeciwnym razie muszę napisać wiele dużych IF (BUILD_EXECUTABLES) ... ENDIF() konstruuje wokół mojej konfiguracji plików wykonywalnych w moim CMakeLists.txt, bez CMake daje mi błędy, gdy je zapomnę.
Kompilacja jest uruchamiana za pośrednictwem niektórych plików wsadowych. Idealnie chcę przekazać zmienną do cmake poprzez opcję -D (np „-D BUILD_EXECUTABLES = false”)
Próbowałem owinąć makra ADD_EXECUTABLE ale to nie działa, ponieważ mam połączenia jak TARGET_LINK_LIBRARIES który następnie skarżą o nieistniejącym celu.
mogę też ustawić katalog wyjściowy do jakiegoś folderu śmieci, które mogłyby zostać usunięty potem, ale (jak już wspomniano) nie byłoby zaoszczędzić czas budowy (Mamy dość duży projekt)
pomysłów jak wykonać w czysty i ogólny sposób?
Brilliant, że działa bardzo dobrze. Dziękuję Ci. – ecreif