[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>
This commit is contained in:
pastdue 2021-02-11 03:44:49 -05:00 committed by GitHub
parent 0eb69ddd94
commit d6105181a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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\"'")