Skip to content

Commit

Permalink
Replace uses of exec_program with execute_process
Browse files Browse the repository at this point in the history
As of CMake 3.28, uses of exec_program produce a deprecation warning
suggesting to replace it with execute_process.

See https://cmake.org/cmake/help/latest/policy/CMP0153.html
  • Loading branch information
pikacic authored and bernhardmgruber committed Feb 6, 2024
1 parent 1e911d4 commit cffaaed
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
2 changes: 1 addition & 1 deletion cmake/OptimizeForArchitecture.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ macro(AutodetectHostArchitecture)
string(REGEX REPLACE ".*model[ \t]*:[ \t]+([a-zA-Z0-9_-]+).*" "\\1" _cpu_model "${_cpuinfo}")
string(REGEX REPLACE ".*flags[ \t]*:[ \t]+([^\n]+).*" "\\1" _cpu_flags "${_cpuinfo}")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
exec_program("/usr/sbin/sysctl -n machdep.cpu.vendor machdep.cpu.model machdep.cpu.family machdep.cpu.features" OUTPUT_VARIABLE _sysctl_output_string)
execute_process(COMMAND /usr/sbin/sysctl -n machdep.cpu.vendor machdep.cpu.model machdep.cpu.family machdep.cpu.features OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE _sysctl_output_string)
string(REPLACE "\n" ";" _sysctl_output ${_sysctl_output_string})
list(GET _sysctl_output 0 _vendor_id)
list(GET _sysctl_output 1 _cpu_model)
Expand Down
12 changes: 6 additions & 6 deletions cmake/VcMacros.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ macro(vc_determine_compiler)
set(Vc_COMPILER_IS_GCC false)
if(CMAKE_CXX_COMPILER MATCHES "/(icpc|icc)$")
set(Vc_COMPILER_IS_INTEL true)
exec_program(${CMAKE_CXX_COMPILER} ARGS -dumpversion OUTPUT_VARIABLE Vc_ICC_VERSION)
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE Vc_ICC_VERSION)
message(STATUS "Detected Compiler: Intel ${Vc_ICC_VERSION}")

# break build with too old ICC as early as possible.
Expand All @@ -61,7 +61,7 @@ macro(vc_determine_compiler)
message(STATUS "Detected Compiler: Open64")
elseif(CMAKE_CXX_COMPILER MATCHES "clang\\+\\+$" OR "${_cxx_compiler_version}" MATCHES "clang")
set(Vc_COMPILER_IS_CLANG true)
exec_program(${CMAKE_CXX_COMPILER} ARGS --version OUTPUT_VARIABLE Vc_CLANG_VERSION)
execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE Vc_CLANG_VERSION)
string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" Vc_CLANG_VERSION "${Vc_CLANG_VERSION}")
message(STATUS "Detected Compiler: Clang ${Vc_CLANG_VERSION}")

Expand All @@ -74,13 +74,13 @@ macro(vc_determine_compiler)
message(STATUS "Detected Compiler: MSVC ${MSVC_VERSION}")
elseif(CMAKE_COMPILER_IS_GNUCXX)
set(Vc_COMPILER_IS_GCC true)
exec_program(${CMAKE_CXX_COMPILER} ARGS -dumpversion OUTPUT_VARIABLE Vc_GCC_VERSION)
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE Vc_GCC_VERSION)
message(STATUS "Detected Compiler: GCC ${Vc_GCC_VERSION}")

# some distributions patch their GCC to return nothing or only major and minor version on -dumpversion.
# In that case we must extract the version number from --version.
if(NOT Vc_GCC_VERSION OR Vc_GCC_VERSION MATCHES "^[0-9]\\.[0-9]+$")
exec_program(${CMAKE_CXX_COMPILER} ARGS --version OUTPUT_VARIABLE Vc_GCC_VERSION)
execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE Vc_GCC_VERSION)
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" Vc_GCC_VERSION "${Vc_GCC_VERSION}")
message(STATUS "GCC Version from --version: ${Vc_GCC_VERSION}")
endif()
Expand Down Expand Up @@ -144,12 +144,12 @@ macro(vc_add_compiler_flag VAR _flag)
endmacro()

macro(vc_check_assembler)
exec_program(${CMAKE_CXX_COMPILER} ARGS -print-prog-name=as OUTPUT_VARIABLE _as)
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -print-prog-name=as OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE _as)
mark_as_advanced(_as)
if(NOT _as)
message(WARNING "Could not find 'as', the assembler used by GCC. Hoping everything will work out...")
else()
exec_program(${_as} ARGS --version OUTPUT_VARIABLE _as_version)
execute_process(COMMAND ${_as} --version OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE _as_version)
string(REGEX REPLACE "\\([^\\)]*\\)" "" _as_version "${_as_version}")
string(REGEX MATCH "[1-9]\\.[0-9]+(\\.[0-9]+)?" _as_version "${_as_version}")
if(_as_version VERSION_LESS "2.18.93")
Expand Down

0 comments on commit cffaaed

Please sign in to comment.