Cmake Fetchcontent not finding dependency

342 views Asked by At

Im trying to use two external git projects in my project, where one depends on the other. However I cannot make it work.

FetchContent_Declare(
  spdlog
  GIT_REPOSITORY https://github.com/gabime/spdlog.git
  GIT_TAG v1.11.0
)
FetchContent_MakeAvailable(spdlog)

FetchContent_Declare(
  spdlog_setup
  GIT_REPOSITORY https://github.com/guangie88/spdlog_setup.git
  GIT_TAG v0.3.2
)
FetchContent_MakeAvailable(spdlog_setup)

The second FetchContent fails because it cannot find the spdlog lib.

If I look at the CMakeLists of that depenency I see:

if (EXISTS ${CMAKE_SOURCE_DIR}/deps/spdlog/CMakeLists.txt)
  add_subdirectory(deps/spdlog)
else()
  # allow usage of installed dependency
  find_package(spdlog ${SPDLOG_MIN_VERSION} REQUIRED)
  add_library(${PROJECT_NAME}_spdlog INTERFACE IMPORTED)
endif()

I fails in the else statement. How can I fix this?

1

There are 1 answers

0
Frank On BEST ANSWER

I found that OVERRIDE_FIND_PACKAGE does the job. If specifying this for spdlog, cmake uses this target in the cmake file of the spdlog_setup project.