Я пытаюсь настроить свою библиотеку и проект, как в this example, используя ExternalProject_Add.include_directories не работает правильно
У меня есть библиотека, как это:
lib
|-include
| |-a.hpp
|-src
| |-a.cpp
|-CMakeLists.txt
со следующим CMakeLists.txt:
cmake_minimum_required(VERSION 2.8.0)
project(testlib)
file(GLOB_RECURSE SRCS src/*.cpp; src/*.c)
add_library(TestLib STATIC ${SRCS})
install(TARGETS TestLib DESTINATION ${PROJECT_SOURCE_DIR}/lib)
Мой проект выглядит следующим образом:
app
|-src
| |-main.cpp
|-CMakeLists.txt
со следующими CMakeLists. txt:
cmake_minimum_required(VERSION 2.8.11)
project(testapp)
file(GLOB_RECURSE SRCS src/*.cpp; src/*.c)
file(GLOB_RECURSE HDRS src/*.hpp; src/*.h)
include(ExternalProject)
ExternalProject_Add(
TestLib
PREFIX "contrib"
DOWNLOAD_DIR "contrib"
SOURCE_DIR "${PROJECT_SOURCE_DIR}/contrib/TestLib"
URL "../../lib.zip"
)
add_library(monoengine STATIC IMPORTED)
set_property(TARGET monoengine PROPERTY IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/contrib/TestLib/lib/libTestLib.a)
add_dependencies(monoengine TestLib)
add_executable(TestApp ${SRCS} ${HDRS})
include_directories(${PROJECT_SOURCE_DIR}/contrib/TestLib/include/)
target_link_libraries(TestApp monoengine)
библиотека становится установлен правильно, у меня есть файл .a в contrib/TestLib/lib
и файл .hpp в contrib/TestLib/include
Однако в моей main.cpp я не могу включить a.hpp с <TestLib/a.hpp>
, он работает только с "../contrib/TestLib/include/a.hpp"
или <a.hpp>
.
Как включить его с <TestLib/a.hpp>
?
Вы не получите '', чтобы работать, не помещая 'a.hpp' непосредственно в каталог' TestLib' где-то. –
bames53
@ bames53: Я просто понял это. Это было даже написано в другом ответе, который я получил на предыдущий вопрос. Я чувствую себя немым ... – gartenriese