From d6105181a3754cdc70f3d4e338cd8dd93bcf4d3b Mon Sep 17 00:00:00 2001 From: pastdue <30942300+past-due@users.noreply.github.com> Date: Thu, 11 Feb 2021 03:44:49 -0500 Subject: [vcpkg] vcpkg_configure_meson: Support macOS cross-compile (#15867) * vcpkg_configure_meson: Support macOS cross-compile * Update scripts/cmake/vcpkg_configure_meson.cmake Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com> * Use adapted regex instead, utilize for native file config as well Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com> Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com> --- scripts/cmake/vcpkg_configure_meson.cmake | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'scripts') diff --git a/scripts/cmake/vcpkg_configure_meson.cmake b/scripts/cmake/vcpkg_configure_meson.cmake index 0bc181c41..194c0709d 100644 --- a/scripts/cmake/vcpkg_configure_meson.cmake +++ b/scripts/cmake/vcpkg_configure_meson.cmake @@ -91,6 +91,11 @@ function(vcpkg_internal_meson_generate_native_file _additional_binaries) #https: file(WRITE "${_file}" "${NATIVE}") endfunction() +function(vcpkg_internal_meson_convert_compiler_flags_to_list _out_var _compiler_flags) + string(REGEX REPLACE [=[( +|^)((\"(\\\"|[^"])+\"|\\\"|\\ |[^ ])+)]=] ";\\2" ${_out_var} "${_compiler_flags}") + set(${_out_var} "${${_out_var}}" PARENT_SCOPE) +endfunction() + function(vcpkg_internal_meson_generate_native_file_config _config) #https://mesonbuild.com/Native-environments.html if(VCPKG_TARGET_IS_WINDOWS) set(L_FLAG /LIBPATH:) @@ -101,7 +106,7 @@ function(vcpkg_internal_meson_generate_native_file_config _config) #https://meso set(LIBPATH_${_config} "'${L_FLAG}${CURRENT_INSTALLED_DIR}${PATH_SUFFIX_${_config}}/lib'") set(NATIVE_${_config} "[properties]\n") #https://mesonbuild.com/Builtin-options.html - string(REGEX REPLACE "( |^)(-|/)" ";\\2" MESON_CFLAGS_${_config} "${VCPKG_DETECTED_CMAKE_C_FLAGS_${_config}}") + vcpkg_internal_meson_convert_compiler_flags_to_list(MESON_CFLAGS_${_config} "${VCPKG_DETECTED_CMAKE_C_FLAGS_${_config}}") list(TRANSFORM MESON_CFLAGS_${_config} APPEND "'") list(TRANSFORM MESON_CFLAGS_${_config} PREPEND "'") #list(APPEND MESON_CFLAGS_${_config} "${LIBPATH_${_config}}") @@ -109,7 +114,7 @@ function(vcpkg_internal_meson_generate_native_file_config _config) #https://meso list(JOIN MESON_CFLAGS_${_config} ", " MESON_CFLAGS_${_config}) string(REPLACE "'', " "" MESON_CFLAGS_${_config} "${MESON_CFLAGS_${_config}}") string(APPEND NATIVE_${_config} "c_args = [${MESON_CFLAGS_${_config}}]\n") - string(REGEX REPLACE "( |^)(-|/)" ";\\2" MESON_CXXFLAGS_${_config} "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_${_config}}") + vcpkg_internal_meson_convert_compiler_flags_to_list(MESON_CXXFLAGS_${_config} "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_${_config}}") list(TRANSFORM MESON_CXXFLAGS_${_config} APPEND "'") list(TRANSFORM MESON_CXXFLAGS_${_config} PREPEND "'") #list(APPEND MESON_CXXFLAGS_${_config} "${LIBPATH_${_config}}") @@ -291,14 +296,14 @@ function(vcpkg_internal_meson_generate_cross_file_config _config) #https://meson set(NATIVE_${_config} "[properties]\n") #https://mesonbuild.com/Builtin-options.html - string(REGEX REPLACE "( |^)(-|/)" ";\\2" MESON_CFLAGS_${_config} "${VCPKG_DETECTED_CMAKE_C_FLAGS_${_config}}") + vcpkg_internal_meson_convert_compiler_flags_to_list(MESON_CFLAGS_${_config} "${VCPKG_DETECTED_CMAKE_C_FLAGS_${_config}}") list(TRANSFORM MESON_CFLAGS_${_config} APPEND "'") list(TRANSFORM MESON_CFLAGS_${_config} PREPEND "'") list(APPEND MESON_CFLAGS_${_config} "'-I\"${CURRENT_INSTALLED_DIR}/include\"'") list(JOIN MESON_CFLAGS_${_config} ", " MESON_CFLAGS_${_config}) string(REPLACE "'', " "" MESON_CFLAGS_${_config} "${MESON_CFLAGS_${_config}}") string(APPEND NATIVE_${_config} "c_args = [${MESON_CFLAGS_${_config}}]\n") - string(REGEX REPLACE "( |^)(-|/)" ";\\2" MESON_CXXFLAGS_${_config} "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_${_config}}") + vcpkg_internal_meson_convert_compiler_flags_to_list(MESON_CXXFLAGS_${_config} "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_${_config}}") list(TRANSFORM MESON_CXXFLAGS_${_config} APPEND "'") list(TRANSFORM MESON_CXXFLAGS_${_config} PREPEND "'") list(APPEND MESON_CXXFLAGS_${_config} "'-I\"${CURRENT_INSTALLED_DIR}/include\"'") -- cgit v1.2.3