diff --git a/cmake/AwsPrebuildDependency.cmake b/cmake/AwsPrebuildDependency.cmake index 61f6dee93..2ad885811 100644 --- a/cmake/AwsPrebuildDependency.cmake +++ b/cmake/AwsPrebuildDependency.cmake @@ -25,10 +25,14 @@ function(aws_prebuild_dependency) set(depInstallDir ${depBinaryDir}/install) file(MAKE_DIRECTORY ${depBinaryDir}) + # Conver the prefix path from list to escaped string to be passed as value used by + # `-DCMAKE_PREFIX_PATH` for the subprecoess + string(REPLACE ";" "\\\\;" ESCAPDED_PREFIX_PATH "${CMAKE_PREFIX_PATH}") # For execute_process to accept a dynamically constructed command, it should be passed in a list format. set(cmakeCommand "${CMAKE_COMMAND}") list(APPEND cmakeCommand -S ${AWS_PREBUILD_SOURCE_DIR}) list(APPEND cmakeCommand -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) + list(APPEND cmakeCommand -DCMAKE_PREFIX_PATH=${ESCAPDED_PREFIX_PATH}) list(APPEND cmakeCommand -DCMAKE_INSTALL_PREFIX=${depInstallDir}) list(APPEND cmakeCommand -DCMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH}) list(APPEND cmakeCommand -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}) @@ -38,15 +42,6 @@ function(aws_prebuild_dependency) list(APPEND cmakeCommand ${AWS_PREBUILD_CMAKE_ARGUMENTS}) endif() - # Set cmake prefix path via envrionment variable incase it's already a list. - # Some version of cmake will treat the values in the list as separate args. - if(WIN32) - list(JOIN CMAKE_PREFIX_PATH ";" PREFIX_PATH_ENV_VAR) - else() - list(JOIN CMAKE_PREFIX_PATH ":" PREFIX_PATH_ENV_VAR) - endif() - set(ENV{CMAKE_PREFIX_PATH} ${PREFIX_PATH_ENV_VAR}) - # Configure dependency project. execute_process( COMMAND ${cmakeCommand}