CMake вложенности add_subdirectory и ExternalProject_Add
Я поделил свой проект следующим образом
development
--dependencies
----CMakeLists.txt
----somelib
------CMakeLists.txt
----somelib2
------CMakeLists.txt
--mvp_app
----CMakeLists.txt
Файл cmake зависимостей написан так, что он соберет и установит все библиотеки в ${CMAKE_CURRENT_BINARY_DIR}/deps_install
с использованием ExternalProject_Add
метод.
Работает нормально.
Но теперь я хочу построить свое основное приложение в mvp_app/build
и хочу, чтобы мои зависимости были построены в mvp_app/build/deps_build
, я использовал add_subdirectory(../dependencies)
включить это.
Но когда я строю, сначала не строятся внешние проекты! Вместо этого он строит основной проект и терпит неудачу из-за отсутствия включаемого файла, который должен быть сгенерирован после построения и установки зависимостей.
Мой основной проект CMakeLists.txt, как показано ниже
set(DEEPSIGHT_TARGET exec)
# Dependencies
add_subdirectory(../../dependencies/ deps_build/)
#include(../../dependencies/CMakeLists.txt)
include_directories(${CMAKE_BINARY_DIR}/deps_install/include ${CMAKE_BINARY_DIR}/deps_install/share/libsourcey/vendor/include)
#build main
#set (SRC basic.cpp http.hpp nn.hpp abstract_nn.hpp detector_nn.hpp)
file (GLOB SRC "*.?pp")
file (GLOB SRC_ABS "abstract/*.?pp")
list (APPEND SRC "${SRC_ABS}")
MESSAGE ( STATUS "SRC: " "${SRC}" )
add_executable(${DEEPSIGHT_TARGET} ${SRC})
# Link Libraries
target_link_libraries(${DEEPSIGHT_TARGET} dlib::dlib MPFDParser-1 base pluga)
Моя зависимость CMakeLists.txt файл
# Dlib
ExternalProject_Add(dlib
URL ${CMAKE_CURRENT_SOURCE_DIR}/dlib
PREFIX ${DEPS_BUILD_PATH}/dlib
CMAKE_ARGS -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_INSTALL_PREFIX=${LIB_INSTALL_PATH} -DCMAKE_BUILD_TYPE=DEBUG
)
# Libsourcey
ExternalProject_Add(libsourcey
URL ${CMAKE_CURRENT_SOURCE_DIR}/libsourcey
PREFIX ${DEPS_BUILD_PATH}/libsourcey
CMAKE_ARGS -DCMAKE_BUILD_TYPE=DEBUG -DBUILD_DEPENDENCIES=ON -DCMAKE_INSTALL_PREFIX=${LIB_INSTALL_PATH} -DBUILD_MODULES=OFF -DBUILD_MODULE_base=ON -DBUILD_MODULE_uv=ON -DBUILD_MODULE_pluga=ON
)
# # MPFDParser
ExternalProject_Add(mpfd-parser
URL ${CMAKE_CURRENT_SOURCE_DIR}/mpfd-parser
PREFIX ${DEPS_BUILD_PATH}/mpfd-parser
CMAKE_ARGS -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_INSTALL_PREFIX=${LIB_INSTALL_PATH}
)
ExternalProject_Get_Property(mpfd-parser install_dir)
Я получаю эту ошибку при сборке
[ 3%] Создание объекта CXX CMakeFiles/exec.dir/basic.cpp.o В файле, включенном в /work/21_DeepSight/deepsight/firmware/development/mvp_ds_face/src/basic.cpp:4:0: /work/21_DeepSight/deepsight/firmware/development/mvp_ds_face/src/http.hpp:5:25: фатальная ошибка: dlib/server.h: такого файла или каталога нет
Пожалуйста посоветуй