Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #CMAKE_INSTALL_PREFIX задает путь, который будет использоваться
- #как базовый для всех установочных директорий, указанных в
- #команде install(). По умолчанию этот параметр равен /usr/local на
- #UNIX-подобных системах и C:/Program Files/${PROJECT_NAME} на Windows
- set(CMAKE_INSTALL_PREFIX install)
- #TARGETS: Указывает, какие библиотеки (цели) нужно установить.
- #В данном случае это PRINT_LIB, SVG_LIB, ROUTE_LIB и GRAPH_LIB.
- #EXPORT: Создает набор экспортов с именем PRINT_LIBTargets,
- #который будет использоваться для импорта этих библиотек в других проектах.
- install(TARGETS PRINT_LIB SVG_LIB EXPORT PRINT_LIBTargets
- #LIBRARY DESTINATION: Определяет директорию, куда будут установлены
- #динамические библиотеки (например, .so или .dll).
- LIBRARY DESTINATION libres
- #ARCHIVE DESTINATION: Указывает директорию для статических библиотек
- #(например, .a или .lib).
- ARCHIVE DESTINATION libresarchs
- #INCLUDES DESTINATION: Определяет директорию для заголовочных файлов,
- #которые будут установлены вместе с библиотеками.
- INCLUDES DESTINATION includes
- )
- #Эта команда устанавливает файл structs.h в указанную директорию includes.
- #Это полезно для обеспечения доступности заголовочных файлов для других
- #проектов, которые могут использовать вашу библиотеку.
- install(FILES structs.h DESTINATION includes)
- #EXPORT: Создает файл конфигурации для экспортируемых целей, что позволяет
- #другим проектам находить и использовать ваши библиотеки.
- install(EXPORT PRINT_LIBTargets
- #FILE: Указывает имя файла конфигурации, который будет создан
- #(в данном случае PRINT_LIBTargetsConfig.cmake).
- FILE PRINT_LIBTargetsConfig.cmake
- #NAMESPACE: Определяет пространство имен для импортируемых целей
- #(в данном случае PRINTLIB::). Это помогает избежать конфликтов имен при
- #использовании нескольких библиотек.
- NAMESPACE PRINTLIB::
- #DESTINATION: Указывает директорию, в которую будет установлен
- #файл конфигурации.
- DESTINATION lib/cmake/PRINT_LIB
- )
- #В другом где нам нужна будет PRINT_LIB создаем переменную PRINT_LIB_DIR
- #и указываем путь где лежит PRINT_LIB
- set(PRINT_LIB_DIR "F:/Practicum Learn/VSC-4/build/install/lib/cmake/PRINT_LIB/")
- #Можем искать функцией find_package
- find_package(PRINT_LIB CONFIG REQUIRED)
- if(PRINT_LIB_FOUND)
- MESSAGE(STATUS "FOUUUUUUUUUUUUUUUUUUUND")
- else()
- MESSAGE(FATAL_ERROR "NOT FOUUUUUUUUUUUUUUUUUUUND")
- endif()
- #Теперь к цели можем подключить PRINT_LIB используя пространство
- # PRINTLIB:: имен что было выше
- target_link_libraries(sortsex PUBLIC PRINTLIB::PRINT_LIB)
- #cmake --build . --target install --> Сделать install после постройки проекта
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement