CMake FetchContent не удается добраться до файлов включения

Рейтинг: 0Ответов: 0Опубликовано: 02.06.2023

Мне необходимо добавить, настроить, использовать некую библиотеку с гитхаб, я выбрал FetchContent.

Все шло не плохо, до момента линковки с библиотеками, при попытке прилинковаться, не доступны включаемые файлы .h

Пример:

cmake_minimum_required (VERSION 3.19)

project (so C)

include(FetchContent)

set (FETCHCONTENT_BASE_DIR ${CMAKE_BINARY_DIR}/vendor/)
set (FETCHCONTENT_QUIET OFF)

function (EXAUseJansson TARGET)
  set (Jansson_GIT_URL
        "https://github.com/akheron/jansson.git"
          CACHE INTERNAL "")

  set (Jansson_GIT_TAG
        "v2.14"
          CACHE INTERNAL "")

  FetchContent_Declare (Jansson
    GIT_REPOSITORY  ${Jansson_GIT_URL}
    GIT_TAG         ${Jansson_GIT_TAG})

  option (JANSSON_BUILD_DOCS    OFF)
  option (JANSSON_EXAMPLES      OFF)
  set (JANSSON_WITHOUT_TESTS ON CACHE INTERNAL "")

  FetchContent_GetProperties(Jansson
              POPULATED Jansson_POPULATED
              SOURCE_DIR Jansson_SOURCE_DIR
              BINARY_DIR Jansson_BINARY_DIR)

  FetchContent_MakeAvailable (Jansson)

  message (STATUS "Jansson: ${Jansson_SOURCE_DIR} ${Jansson_BINARY_DIR}")

  target_link_libraries (${TARGET} PRIVATE jansson)
  target_compile_definitions (${TARGET}
                              PRIVATE
                                -D EXA_USE_JANSSON)
endfunction (EXAUseJansson TARGET)

add_executable(test test.c)

EXAUseJansson (test)
#include <stdio.h>
#include <jansson.h>

int
main(int ac, char *av[]) {
  (void) ac;
  (void) av;
  fprintf(stdout,
          "Jansson library verison: %s\n",
          jansson_version_str());
  return 0;
}

При указании в качестве таргета библиотеки, все было бы не плохо, если бы были доступны включаемые каталоги, которые находятся по пути:

ROOT_DIR/build/vendor/LIB_NAME-src/

Тот же самый вызов FetchContent_GetProperties, не поставляет никаких свойств. Т.е. не доступен путь к сорсам, ни к бинарникам.

Как добыть данную информацию из этого модуля правильно?

[build] C:\Users\ori\so\test.c(2,10): fatal  error C1083: Не удается открыть файл включение: jansson.h: No such file or directory, [C:\Users\ori\so\build\test.vcxproj]

Ответы

Ответов пока нет.