CMake: использование заголовков, установленных внешним проектом

Я прочитал документацию по использованию внешних проектов от Kitware Вот и я пытаюсь следовать процессу, чтобы использовать библиотеку обработки изображений Leptonica как внешняя зависимость. Я часто выполняю кросс-компиляцию с использованием разных наборов инструментов, поэтому я не хочу устанавливать Leptonica глобально, а предпочел бы, чтобы библиотеки и заголовки были установлены в каталоге сборки, чтобы их можно было удалять и переустанавливать при изменении наборов инструментов компиляции.

Другими словами, я хотел бы сделать CmakeProjectA зависит от установленных заголовков и библиотек ExternalProjectB. Вот что у меня сейчас есть CMakeLists.txt файл.

cmake_minimum_required(VERSION 3.2)
project(CmakeProjectA)
set(SOURCE_FILES main.cpp)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

include(ExternalProject)
ExternalProject_Add(
leptonica-1.72
PREFIX leptonica
URL http://www.leptonica.com/source/leptonica-1.72.tar.gz
URL_MD5 7581db29f8442197ce68e766c6047c4b
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
)
ExternalProject_Get_Property(
leptonica-1.72
INSTALL_DIR
)
set(LEPTONICA_INCLUDE_DIR ${INSTALL_DIR} CACHE string "Location of leptonica header files")

include_directories(${LEPTONICA_INCLUDE_DIR})

add_executable(my_executable ${SOURCE_FILES})
add_dependencies(my_executable leptonica-1.72)
target_link_libraries(my_executable leptonica-1.72)

Когда я смотрю на кэшированное значение LEPTONICA_INCLUDE_DIR, значение

/Users/me/Library/Caches/clion10/cmake/generated/509e0c9e/509e0c9e/__default__/install`.

Все же CmakeProjectA строится для:

/Users/me/Library/Caches/clion10/cmake/generated/509e0c9e/509e0c9e/Debug

В результате я считаю, что дефолт по первому пути не позволяет найти заголовочные файлы Leptonica моим основным проектом. Как мне сделать мой проект осведомленным о различных вариантах сборки (отлаживать а также Релиз) моего проекта, так что CmakeProjectA можно использовать заголовки и библиотеки, предоставляемые Leptonica?

2

Решение

Я провел дальнейшие исследования и решил последовать примеру OpenChemistry Проект, основанный на cmake, поскольку у него были схожие требования, включая несколько внешних проектов.

-1

Другие решения


По вопросам рекламы [email protected]