build a "boost" package with the ability to find through "find_package"

Viewed 42

My idea is to use local versions of the necessary packages (inside the repository) so as not to install these packages on a working operating system.

I use CMake. I added two dependencies to my project (submodules):

  1. Drogon = https://github.com/drogonframework/drogon.git;
  2. Boost = https://github.com/boostorg/boost.git;

Drogon uses Boost internally:

find_package(Boost 1.49.0 COMPONENTS filesystem system REQUIRED)

Here's how I add these dependencies (Project/subs/CMakeLists.txt):

cmake_minimum_required(VERSION 3.21)

# Add Boost lib
add_subdirectory(boost EXCLUDE_FROM_ALL)

# Add Drogon lib
set(BUILD_CTL OFF)
set(BUILD_EXAMPLES OFF)
set(BUILD_DROGON_SHARED OFF)
set(DOXYGEN_FOUND OFF)
add_subdirectory(drogon EXCLUDE_FROM_ALL)

But I get an error:

-- The std::filesystem seems to be a partial implementation Falling back to boost::filesystem
CMake Error at G:/Qt/Tools/CMake_64/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Boost (missing: Boost_INCLUDE_DIR filesystem system)
  (Required is at least version "1.49.0")
Call Stack (most recent call first):
  G:/Qt/Tools/CMake_64/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  G:/Qt/Tools/CMake_64/share/cmake-3.21/Modules/FindBoost.cmake:2345 (find_package_handle_standard_args)
  src/subs/drogon/CMakeLists.txt:184 (find_package)
0 Answers
Related