Skip to content

Commit

Permalink
escape instead of setting the env var
Browse files Browse the repository at this point in the history
  • Loading branch information
TingDaoK committed Oct 11, 2024
1 parent d89397a commit 4765474
Showing 1 changed file with 4 additions and 9 deletions.
13 changes: 4 additions & 9 deletions cmake/AwsPrebuildDependency.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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})
Expand All @@ -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}
Expand Down

0 comments on commit 4765474

Please sign in to comment.