Проблемы с передачей параметров конфигурации CMake через FetchContent / ExtenalProject
Пытаюсь передать в cmake-модуль FetchContent команды конфигурации. Извращался как мог, все возможные способы передачи перепробовал. В итоге, судя по всему, передаваемые параметры ни на что не влияют. Т.е., скажем, при сборке кидаются варнинги, что для чисто-сишного компилятора используется стандарт C99, хотя я явно определил иначе. Также тесты не отключаются. Напомню, что option в CMake работает только если не определена одноимённая переменная до неё, чего почему-то не происходит. Я ковырял CMakeLists.txt-файлы во внешних проектах и доставал из option ненужные мне переменные, установленные в ON. Так что тут ошибки быть не может.
set(zipper_args
"-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}"
"-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}"
"-DCMAKE_C_STANDARD=11"
"-DCMAKE_C_STANDARD_REQUIRED=ON"
"-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}"
"-DBUILD_STATIC_VERSION=ON"
"-DBUILD_SHARED_VERSION=OFF"
"-DBUILD_TEST=OFF"
)
add_library(zipper_lib STATIC IMPORTED)
set_target_properties(
zipper_lib PROPERTIES
IMPORTED_LOCATION "${CMAKE_INSTALL_PREFIX}/lib/libZipper-static.a"
)
set(zipper_prefix ${CMAKE_CURRENT_BINARY_DIR}/ThirdParty/zipper)
set(BUILD_TEST OFF CACHE BOOL "" FORCE)
include(FetchContent)
FetchContent_Declare(
zipper_repo
GIT_REPOSITORY https://github.com/sebastiandev/zipper.git
GIT_TAG f7f3f63cc38e7b5dbb1ec5243169bbf8bbf543ae
CMAKE_ARGS ${zipper_args}
SOURCE_DIR ${zipper_prefix}/src
BINARY_DIR ${zipper_prefix}/bld
STAMP_DIR ${zipper_prefix}/stamp
TMP_DIR ${zipper_prefix}/temp
)
FetchContent_MakeAvailable(zipper_repo)
target_include_directories(
zipper_lib
INTERFACE ${zipper_prefix}/src
)
add_dependencies(zipper_lib zipper_repo)
Кто работал с модулями ExternalProject и/либо FetchContent и встречался с такими проблемами, подскажите, как вы их решили. Спасибо.