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: такого файла или каталога нет

Пожалуйста посоветуй

0 ответов

Другие вопросы по тегам