Возможно, я просто не могу его найти, но я хочу добавить некоторый код в мой проект (libunwind находится здесь http://www.nongnu.org/libunwind/download.html)
Эта библиотека не поставляется с файлом CMakeLists.txt, и когда я пытаюсь включить его, cmake жалуется на этот факт. Прямо сейчас я просто добавил каталог libunwind во внешний код и добавил ссылку в свой основной CMakeLists.txt.
Любой вклад был бы великолепен.
Если вы хотите создать его каждый раз вместе с вашим проектом, самый простой способ будет:
Однако это редко требуется, и в большинстве случаев вам нужно просто собрать библиотеку один раз и связать ее как любую другую внешнюю библиотеку.
Работая с библиотеками, у вас есть 2 варианта:
Если вы скачали и смогли собрать и установить его, попробуйте найти его позже внутри CMAKE, как это (в случае Boost), и ссылку на свою цель:
find_package (Boost COMPONENTS поток_системы дата-время поток program_options файловая система unit_test_framework regex chrono REQUIRED)
если (НЕ Boost_FOUND)
сообщение (FATAL_ERROR «Не удается найти повышение!»)
endif (НЕ Boost_FOUND)
сообщение (СОСТОЯНИЕ «усиление найдено»)
include_directories ($ {Boost_INCLUDE_DIRS})
каталоги ссылок ($ {Boost_LIBRARY_DIRS})
target_link_libraries (YOUR_TARGET_NAME $ {Boost_LIBRARIES})
Вы можете добавить внешние библиотечные источники как отдельную цель и использовать что-то вроде этого для CMake, чтобы построить его:
набор (источники
async_waiter.h
async_waiter_impl.h
async_waiter_impl.cpp
)
add_library (async_waiter $ {sources})
и позже ссылка, на которую вы нацеливаетесь:
target_link_libraries(YOU_TARGET_NAME async_waiter)