Mam projekt, który nie został podzielony na biblioteki, ale źródło jest zorganizowane w drzewie katalogów. Nie wiem, jak powiedzieć cmake, aby przejść do katalogu, a następnie dodać źródło w tym katalogu do projektu zdefiniowanego w katalogu nadrzędnym. Próbowałem następujące:Dodaj źródło w podkatalogu do projektu cmake
w projektu/źródła/CMakeLists.txt:
set(SOURCE
${CMAKE_CURRENT_SOURCE_DIR}/unitTest/main.cpp
)
add_subdirectory("${PROJECT_SOURCE_DIR}/folder1")
add_executable(UnitTestRNG ${SOURCE} ${HEADERS})
następnie w projekcie/źródło/folder1/CMakeLists.txt:
set(SOURCE
${SOURCE}
${CMAKE_CURRENT_SOURCE_DIR}/file1.cpp
${CMAKE_CURRENT_SOURCE_DIR}/file2.cpp
)
set(HEADERS
${HEADERS}
${CMAKE_CURRENT_SOURCE_DIR}/file1.hpp
${CMAKE_CURRENT_SOURCE_DIR}/file2.hpp
)
stosując pewne wiadomości() oświadczenia, znalazłem, że folder podrzędny otrzyma zawartość zmiennej SOURCE, ale nowe przypisanie do tej zmiennej nie będzie się utrzymywać po powrocie do rodzica CMakeLists.txt
Poszukując przykładów i samouczka cmake doprowadziło mnie do wniosku, że: - Struktury plików źródłowych są zwykle płaskie w ramach projektu - Jeśli kod jest podzielony na foldery, zwykle jest on podzielony na odpowiednie biblioteki.
Zastanawiam się, czy istnieje jakaś "najlepsza praktyka", z której zbaczam, próbując tej struktury.
Dzięki za składnię! To działało ładnie. – 2NinerRomeo
Czy to nadal jest zalecany sposób osiągnięcia tego w najnowszej wersji cmake? – lanoxx