if(NOT COMMAND _original_find_program) # Save the original find_program as _original_find_program macro(_original_find_program) _find_program(${ARGV}) endmacro() # Now override find_program function(find_program) set(_saved_CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH ${CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH}) set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH ON) cmake_parse_arguments(PARSE_ARGV 0 FWD "" "" "") set(quotedArgs "") foreach(arg IN LISTS FWD_UNPARSED_ARGUMENTS) string(APPEND quotedArgs " [===[${arg}]===]") endforeach() cmake_language(EVAL CODE "_find_program(${quotedArgs})") set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH ${_saved_CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH}) endfunction() endif()