Skip to content

Commit 98782df

Browse files
Support EVAL CODE on CMake <3.18
1 parent b330641 commit 98782df

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

cmake/CPM.cmake

+12-2
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,16 @@ function(cpm_override_fetchcontent contentName)
505505
set_property(GLOBAL PROPERTY ${propertyName} TRUE)
506506
endfunction()
507507

508+
macro(cpm_cmake_eval)
509+
set(__ARGN "${ARGN}")
510+
if(COMMAND cmake_language)
511+
cmake_language(EVAL CODE "${__ARGN}")
512+
else()
513+
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/eval.cmake "${__ARGN}")
514+
include(${CMAKE_CURRENT_BINARY_DIR}/eval.cmake)
515+
endif()
516+
endmacro()
517+
508518
# Download and add a package from source
509519
macro(CPMAddPackage)
510520
set(__ARGN "${ARGN}")
@@ -518,7 +528,7 @@ macro(CPMAddPackage)
518528
foreach(__ARG IN LISTS __ARGN)
519529
string(APPEND __ARGN_Quoted " [==[${__ARG}]==]")
520530
endforeach()
521-
cmake_language(EVAL CODE "cpm_add_package_multi_arg( ${__ARGN_Quoted} )")
531+
cpm_cmake_eval("cpm_add_package_multi_arg( ${__ARGN_Quoted} )")
522532
endif()
523533
endmacro()
524534

@@ -940,7 +950,7 @@ function(cpm_declare_fetch PACKAGE VERSION INFO)
940950
foreach(__item IN LISTS ARGN)
941951
string(APPEND __argsQuoted " [==[${__item}]==]")
942952
endforeach()
943-
cmake_language(EVAL CODE "FetchContent_Declare(${PACKAGE} ${__argsQuoted} )")
953+
cpm_cmake_eval("FetchContent_Declare(${PACKAGE} ${__argsQuoted} )")
944954
endfunction()
945955

946956
# returns properties for a package previously defined by cpm_declare_fetch

0 commit comments

Comments
 (0)