Niestety, nie ma bezpośredni 1: 1 konwersja z Makefile do CMakeLists. Ponieważ CMake ma działać na wszystkich platformach, nie może opierać się na specyficznych dla platformy założeniach, takich jak GNU make czy, co komplikuje pewne rzeczy w niektórych miejscach.
W szczególności CMake oferuje bardzo potężny i dość złożony mechanizm korzystania z bibliotek: Wywołujesz find_package z nazwą biblioteki, która wywoła skrypt wyszukiwania biblioteki ze ścieżki twojego modułu cmake. Ten skrypt (również zapisany w CMake) spróbuje wykryć lokalizację plików nagłówkowych i lib biblioteki i przechowywać je w kilku zmiennych CMake, które następnie mogą zostać przekazane do odpowiednich poleceń CMake, takich jak include_directories i target_link_libraries.
Istnieją dwa problemy z tym podejściem: Po pierwsze, potrzebujesz skryptu wyszukiwania. Na szczęście CMake jest dostarczany ze skryptami wyszukiwania dla Pthreads, Boost i kilku innych, ale jeśli używasz bardziej egzotycznej biblioteki, być może będziesz musiał sam napisać skrypt wyszukiwania, co z początku jest rodzajem arcane ...
Drugi poważny problem polega na tym, że nie ma standardowego sposobu, aby skrypt wyszukiwania zwrócił wyniki. Chociaż istnieją konwencje nazewnictwa dla używanych zmiennych, te często nie mają zastosowania. W praktyce oznacza to, że musisz sprawdzić źródło skryptu wyszukiwania, aby dowiedzieć się, jak z niego korzystać. Na szczęście skrypty dołączone do CMake są w większości bardzo dobrze udokumentowane.
Wbudowane skrypty znajdują się gdzieś w rodzaju <cmake-install-prefix>/share/cmake-2.8/Modules
. Na twoje pytanie spójrz na pliki FindBoost.cmake i FindThreads.cmake (CMake powinien automatycznie łączyć się z biblioteką standardową). Anycorn już dał przykładowy kod do użycia skryptu Boost, wszystko, co musisz wiedzieć, znajduje się w dokumentacji CMake lub bezpośrednio w plikach skryptów wyszukiwania.