Eksperymentuję z CMake nieco dla repozytorium C++, ale mam problemy z próbą ułatwienia budowania aplikacji przeciwko bibliotekom w tym samym drzewie źródłowym bez zbytniego dodatkowego kodu CMake.z łatwością dołącza nagłówki z zależności biblioteki w cmake
Układ drzewa źródłowego jest zasadniczo następujące:
ROOT
libs/
lib1/
lib2/
lib3/
apps/
app1/
app2/
app3/
Biblioteki są niezależne od siebie, a aplikacje mogą połączyć przeciwko jednej lub więcej bibliotek.
Obecnie mam główny plik CMakeLists.txt, który zawiera listę każdej aplikacji i biblioteki jako podkatalogu, tak więc jeśli biblioteka zostanie zmieniona, a aplikacja zostanie przebudowana, podobnie będzie z biblioteką. Działa to dobrze i program CMake łączy go bez konieczności określania miejsca, w którym znajduje się biblioteka, ale nie widzę sposobu na zrobienie czegoś podobnego w przypadku katalogów zawierających.
Czy istnieje typowy sposób radzenia sobie z tym? Wolałbym, aby CMakeLists.txt każdej aplikacji nie musiało ręcznie wskazywać ścieżki do bibliotek, których potrzebuje.