From b847af65c034127bd71c42f40db7f22d39180d25 Mon Sep 17 00:00:00 2001 From: Craig Hutchinson Date: Wed, 8 Mar 2023 10:05:04 +0000 Subject: [PATCH] Support EVAL CODE on CMake <3.18 --- cmake/CPM.cmake | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cmake/CPM.cmake b/cmake/CPM.cmake index fba0b84..076d357 100644 --- a/cmake/CPM.cmake +++ b/cmake/CPM.cmake @@ -505,6 +505,16 @@ function(cpm_override_fetchcontent contentName) set_property(GLOBAL PROPERTY ${propertyName} TRUE) endfunction() +macro(cpm_cmake_eval) + set(__ARGN "${ARGN}") + if(COMMAND cmake_language) + cmake_language(EVAL CODE "${__ARGN}") + else() + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/eval.cmake "${__ARGN}") + include(${CMAKE_CURRENT_BINARY_DIR}/eval.cmake) + endif() +endmacro() + # Download and add a package from source macro(CPMAddPackage) set(__ARGN "${ARGN}") @@ -518,7 +528,7 @@ macro(CPMAddPackage) foreach(__ARG IN LISTS __ARGN) string(APPEND __ARGN_Quoted " [==[${__ARG}]==]") endforeach() - cmake_language(EVAL CODE "cpm_add_package_multi_arg( ${__ARGN_Quoted} )") + cpm_cmake_eval("cpm_add_package_multi_arg( ${__ARGN_Quoted} )") endif() endmacro() @@ -944,7 +954,7 @@ function(cpm_declare_fetch PACKAGE VERSION INFO) foreach(__item IN LISTS ARGN) string(APPEND __argsQuoted " [==[${__item}]==]") endforeach() - cmake_language(EVAL CODE "FetchContent_Declare(${PACKAGE} ${__argsQuoted} )") + cpm_cmake_eval("FetchContent_Declare(${PACKAGE} ${__argsQuoted} )") endfunction() # returns properties for a package previously defined by cpm_declare_fetch