From b91934019c5930f9b633b502c384299154261dd9 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Mon, 18 Jul 2022 18:18:59 +0200 Subject: [PATCH 01/12] Add support for Android to vcpkg_configure_make.cmake --- .../cmake_get_vars/CMakeLists.txt | 1 + scripts/cmake/vcpkg_configure_make.cmake | 14 ++++++++++++++ scripts/get_cmake_vars/CMakeLists.txt | 1 + 3 files changed, 16 insertions(+) diff --git a/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt b/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt index fb1da469651b97..d2f742a9793eb8 100644 --- a/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt +++ b/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt @@ -9,6 +9,7 @@ list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_CROSSCOMPILING CMAKE_HOST_SYSTEM_NAME CMAKE_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_PROCESSOR + CMAKE_CXX_COMPILER_TARGET CMAKE_SIZEOF_VOID_P MSVC MSVC_VERSION) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 5ff0ab1ae3d650..e8dce379e2ffe4 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -115,6 +115,7 @@ macro(z_vcpkg_append_to_configure_environment inoutstring var defaultval) else() string(APPEND ${inoutstring} " ${var}='${defaultval}'") endif() + debug_message(" ${var}='${defaultval}'") endmacro() macro(z_convert_to_list input output) @@ -395,6 +396,7 @@ function(vcpkg_configure_make) if(VCPKG_DETECTED_CMAKE_${cmakevar}) set(ENV{${envvar}} "${prog}") endif() + debug_message("${envvar}=${prog}") endfunction() z_vcpkg_make_set_env(CC C_COMPILER) if(NOT VCPKG_CROSSCOMPILING) @@ -462,6 +464,14 @@ function(vcpkg_configure_make) debug_message("Using make triplet: ${arg_BUILD_TRIPLET}") endif() endif() + + # Android - cross-compiling support + if(VCPKG_TARGET_IS_ANDROID) + if (requires_autoconfig AND NOT arg_BUILD_TRIPLET OR arg_DETERMINE_BUILD_TRIPLET) + set(arg_BUILD_TRIPLET "--host=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") + debug_message("Using make triplet: ${arg_BUILD_TRIPLET}") + endif() + endif() # Cleanup previous build dirs file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" @@ -698,6 +708,10 @@ function(vcpkg_configure_make) string(PREPEND LDFLAGS_${var_suffix} "-Xlinker -Xlinker -Xlinker ") endif() endif() + if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) + string(APPEND LDFLAGS_${var_suffix} " --target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") + endif() + debug_message("LDFLAGS_${var_suffix}: ${LDFLAGS_${var_suffix}}") endmacro() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug" AND NOT arg_NO_DEBUG) diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index ec6ea55390739e..521412cd9db0bc 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -8,6 +8,7 @@ list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_CROSSCOMPILING CMAKE_SYSTEM_NAME CMAKE_HOST_SYSTEM_NAME CMAKE_SYSTEM_PROCESSOR + CMAKE_CXX_COMPILER_TARGET CMAKE_HOST_SYSTEM_PROCESSOR) if(CMAKE_SYSTEM_NAME MATCHES "Darwin") list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_OSX_DEPLOYMENT_TARGET From a49d70b0b70ff98a98aa6f2271fc3dd0d7613bf9 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Sat, 20 Aug 2022 08:13:18 +0200 Subject: [PATCH 02/12] Always enable neon for android --- scripts/toolchains/android.cmake | 4 ---- triplets/community/arm-neon-android.cmake | 4 ---- 2 files changed, 8 deletions(-) delete mode 100644 triplets/community/arm-neon-android.cmake diff --git a/scripts/toolchains/android.cmake b/scripts/toolchains/android.cmake index fb4e66cd6b04ac..e1bd48af646d9d 100644 --- a/scripts/toolchains/android.cmake +++ b/scripts/toolchains/android.cmake @@ -14,12 +14,8 @@ if (VCPKG_TARGET_TRIPLET MATCHES "arm64-android") elseif(VCPKG_TARGET_TRIPLET MATCHES "armv6-android") set(ANDROID_ABI armeabi CACHE STRING "") set(ANDROID_ARM_MODE arm CACHE STRING "") -elseif(VCPKG_TARGET_TRIPLET MATCHES "arm-neon-android") - set(ANDROID_ABI armeabi-v7a CACHE STRING "") - set(ANDROID_ARM_NEON ON CACHE BOOL "") elseif(VCPKG_TARGET_TRIPLET MATCHES "arm-android") set(ANDROID_ABI armeabi-v7a CACHE STRING "") - set(ANDROID_ARM_NEON OFF CACHE BOOL "") elseif(VCPKG_TARGET_TRIPLET MATCHES "x64-android") set(ANDROID_ABI x86_64 CACHE STRING "") elseif(VCPKG_TARGET_TRIPLET MATCHES "x86-android") diff --git a/triplets/community/arm-neon-android.cmake b/triplets/community/arm-neon-android.cmake deleted file mode 100644 index 29ba5655ae3154..00000000000000 --- a/triplets/community/arm-neon-android.cmake +++ /dev/null @@ -1,4 +0,0 @@ -set(VCPKG_TARGET_ARCHITECTURE arm) -set(VCPKG_CRT_LINKAGE static) -set(VCPKG_LIBRARY_LINKAGE static) -set(VCPKG_CMAKE_SYSTEM_NAME Android) From f91100c9d1371b800fd2c47a11dcb3f3d22916c2 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Sun, 28 Aug 2022 19:24:17 +0200 Subject: [PATCH 03/12] Bump version --- ports/vcpkg-cmake-get-vars/vcpkg.json | 3 +-- versions/baseline.json | 4 ++-- versions/v-/vcpkg-cmake-get-vars.json | 5 +++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ports/vcpkg-cmake-get-vars/vcpkg.json b/ports/vcpkg-cmake-get-vars/vcpkg.json index 33b54788223854..983619cdb4cd57 100644 --- a/ports/vcpkg-cmake-get-vars/vcpkg.json +++ b/ports/vcpkg-cmake-get-vars/vcpkg.json @@ -1,7 +1,6 @@ { "name": "vcpkg-cmake-get-vars", - "version-date": "2022-05-10", - "port-version": 1, + "version-date": "2022-08-28", "documentation": "https://vcpkg.io/en/docs/README.html", "license": "MIT", "dependencies": [ diff --git a/versions/baseline.json b/versions/baseline.json index 85d6b838a6d46d..ca42d8296a3661 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -7513,8 +7513,8 @@ "port-version": 1 }, "vcpkg-cmake-get-vars": { - "baseline": "2022-05-10", - "port-version": 1 + "baseline": "2022-08-28", + "port-version": 0 }, "vcpkg-get-python-packages": { "baseline": "2022-06-30", diff --git a/versions/v-/vcpkg-cmake-get-vars.json b/versions/v-/vcpkg-cmake-get-vars.json index 362bbdce76ccf4..0952e15d4a0614 100644 --- a/versions/v-/vcpkg-cmake-get-vars.json +++ b/versions/v-/vcpkg-cmake-get-vars.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "3757d3ec1dc34986d79da98e5999d32c551da6be", + "version-date": "2022-08-28", + "port-version": 0 + }, { "git-tree": "b50ca3d20736304215fbd82c102d4552457255bb", "version-date": "2022-05-10", From 9ad9f32b7f1650a75ee5987d0cb00c0245cd4dcd Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Mon, 29 Aug 2022 21:25:40 +0200 Subject: [PATCH 04/12] Fix building for android with meson --- scripts/cmake/vcpkg_configure_meson.cmake | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/scripts/cmake/vcpkg_configure_meson.cmake b/scripts/cmake/vcpkg_configure_meson.cmake index 2115680d8b7852..0b195c1f4bc3fb 100644 --- a/scripts/cmake/vcpkg_configure_meson.cmake +++ b/scripts/cmake/vcpkg_configure_meson.cmake @@ -122,11 +122,17 @@ function(z_vcpkg_meson_generate_flags_properties_string out_var config_type) set(libpath "${libpath_flag}${CURRENT_INSTALLED_DIR}${path_suffix}/lib") z_vcpkg_meson_convert_compiler_flags_to_list(cflags "${VCPKG_DETECTED_CMAKE_C_FLAGS_${config_type}}") + if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) + list(APPEND cflags "--target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") + endif() vcpkg_list(APPEND cflags "-I${CURRENT_INSTALLED_DIR}/include") z_vcpkg_meson_convert_list_to_python_array(cflags ${cflags}) string(APPEND result "c_args = ${cflags}\n") z_vcpkg_meson_convert_compiler_flags_to_list(cxxflags "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_${config_type}}") + if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) + list(APPEND cxxflags "--target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") + endif() vcpkg_list(APPEND cxxflags "-I${CURRENT_INSTALLED_DIR}/include") z_vcpkg_meson_convert_list_to_python_array(cxxflags ${cxxflags}) string(APPEND result "cpp_args = ${cxxflags}\n") @@ -149,6 +155,9 @@ function(z_vcpkg_meson_generate_flags_properties_string out_var config_type) endif() endif() vcpkg_list(APPEND linker_flags "${libpath}") + if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) + list(APPEND linker_flags "--target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") + endif() z_vcpkg_meson_convert_list_to_python_array(linker_flags ${linker_flags}) string(APPEND result "c_link_args = ${linker_flags}\n") string(APPEND result "cpp_link_args = ${linker_flags}\n") From 309e81a0ff66eb397f336e37a6bc539b2426fe9a Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Tue, 30 Aug 2022 07:44:33 +0200 Subject: [PATCH 05/12] Only set --target on android --- scripts/cmake/vcpkg_configure_meson.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_meson.cmake b/scripts/cmake/vcpkg_configure_meson.cmake index 0b195c1f4bc3fb..eda0f412d486f3 100644 --- a/scripts/cmake/vcpkg_configure_meson.cmake +++ b/scripts/cmake/vcpkg_configure_meson.cmake @@ -122,7 +122,7 @@ function(z_vcpkg_meson_generate_flags_properties_string out_var config_type) set(libpath "${libpath_flag}${CURRENT_INSTALLED_DIR}${path_suffix}/lib") z_vcpkg_meson_convert_compiler_flags_to_list(cflags "${VCPKG_DETECTED_CMAKE_C_FLAGS_${config_type}}") - if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) + if (VCPKG_TARGET_IS_ANDROID AND VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) list(APPEND cflags "--target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") endif() vcpkg_list(APPEND cflags "-I${CURRENT_INSTALLED_DIR}/include") @@ -130,7 +130,7 @@ function(z_vcpkg_meson_generate_flags_properties_string out_var config_type) string(APPEND result "c_args = ${cflags}\n") z_vcpkg_meson_convert_compiler_flags_to_list(cxxflags "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_${config_type}}") - if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) + if (VCPKG_TARGET_IS_ANDROID AND VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) list(APPEND cxxflags "--target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") endif() vcpkg_list(APPEND cxxflags "-I${CURRENT_INSTALLED_DIR}/include") @@ -155,7 +155,7 @@ function(z_vcpkg_meson_generate_flags_properties_string out_var config_type) endif() endif() vcpkg_list(APPEND linker_flags "${libpath}") - if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) + if (VCPKG_TARGET_IS_ANDROID AND VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) list(APPEND linker_flags "--target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") endif() z_vcpkg_meson_convert_list_to_python_array(linker_flags ${linker_flags}) From 863cb83a696e8d42ee1cb1811333e0e387ca1989 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Sat, 10 Sep 2022 08:51:47 +0200 Subject: [PATCH 06/12] [android] Add VCPKG_MAKE_BUILD_TRIPLET --- scripts/cmake/vcpkg_configure_make.cmake | 2 +- triplets/community/arm-android.cmake | 1 + triplets/community/arm64-android.cmake | 1 + triplets/community/x64-android.cmake | 1 + triplets/community/x86-android.cmake | 1 + 5 files changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index e8dce379e2ffe4..90d942904dfa6a 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -468,7 +468,7 @@ function(vcpkg_configure_make) # Android - cross-compiling support if(VCPKG_TARGET_IS_ANDROID) if (requires_autoconfig AND NOT arg_BUILD_TRIPLET OR arg_DETERMINE_BUILD_TRIPLET) - set(arg_BUILD_TRIPLET "--host=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") + set(arg_BUILD_TRIPLET "--host=${VCPKG_MAKE_BUILD_TRIPLET}") debug_message("Using make triplet: ${arg_BUILD_TRIPLET}") endif() endif() diff --git a/triplets/community/arm-android.cmake b/triplets/community/arm-android.cmake index 29ba5655ae3154..d21485743eb8f7 100644 --- a/triplets/community/arm-android.cmake +++ b/triplets/community/arm-android.cmake @@ -2,3 +2,4 @@ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) +set(VCPKG_MAKE_BUILD_TRIPLET armv7a-linux-androideabi) diff --git a/triplets/community/arm64-android.cmake b/triplets/community/arm64-android.cmake index 20b255d39267ad..0789e428ca410b 100644 --- a/triplets/community/arm64-android.cmake +++ b/triplets/community/arm64-android.cmake @@ -2,3 +2,4 @@ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) +set(VCPKG_MAKE_BUILD_TRIPLET aarch64-linux-android) diff --git a/triplets/community/x64-android.cmake b/triplets/community/x64-android.cmake index 6342ce5361a1af..2929063eef39a0 100644 --- a/triplets/community/x64-android.cmake +++ b/triplets/community/x64-android.cmake @@ -2,3 +2,4 @@ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) +set(VCPKG_MAKE_BUILD_TRIPLET x86_64-linux-android) diff --git a/triplets/community/x86-android.cmake b/triplets/community/x86-android.cmake index ca0fbaeffb0e07..732771b5b10103 100644 --- a/triplets/community/x86-android.cmake +++ b/triplets/community/x86-android.cmake @@ -2,3 +2,4 @@ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) +set(VCPKG_MAKE_BUILD_TRIPLET i686-linux-android) From ffa932dea41ae01b280dac01913cfc8c84f5ff46 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Sat, 10 Sep 2022 09:08:43 +0200 Subject: [PATCH 07/12] Add cxxflags/cflags for android --- scripts/cmake/vcpkg_configure_make.cmake | 5 +++++ scripts/get_cmake_vars/CMakeLists.txt | 1 + 2 files changed, 6 insertions(+) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 90d942904dfa6a..4de5c5b2a29532 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -100,6 +100,11 @@ macro(z_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags flag_suffix) # just ignore them. string(REGEX REPLACE "((-|/)RTC[^ ]+)" "-Xcompiler \\1" CFLAGS_${flag_suffix} "${CFLAGS_${flag_suffix}}") string(REGEX REPLACE "((-|/)RTC[^ ]+)" "-Xcompiler \\1" CXXFLAGS_${flag_suffix} "${CXXFLAGS_${flag_suffix}}") + if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) + string(APPEND CXXFLAGS_${flag_suffix} " --target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") + string(APPEND CFLAGS_${flag_suffix} " --target=${VCPKG_DETECTED_CMAKE_C_COMPILER_TARGET}") + endif() + string(STRIP "${CPPFLAGS_${flag_suffix}}" CPPFLAGS_${flag_suffix}) string(STRIP "${CFLAGS_${flag_suffix}}" CFLAGS_${flag_suffix}) string(STRIP "${CXXFLAGS_${flag_suffix}}" CXXFLAGS_${flag_suffix}) diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index 521412cd9db0bc..3b81c8fb0099d0 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -9,6 +9,7 @@ list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_CROSSCOMPILING CMAKE_HOST_SYSTEM_NAME CMAKE_SYSTEM_PROCESSOR CMAKE_CXX_COMPILER_TARGET + CMAKE_C_COMPILER_TARGET CMAKE_HOST_SYSTEM_PROCESSOR) if(CMAKE_SYSTEM_NAME MATCHES "Darwin") list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_OSX_DEPLOYMENT_TARGET From 68936ca6463d10c6c68aa1e6f78fdb5bd4a1f59e Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Sat, 10 Sep 2022 09:10:57 +0200 Subject: [PATCH 08/12] Add CMAKE_C_COMPILER_TARGET --- ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt | 1 + versions/v-/vcpkg-cmake-get-vars.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt b/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt index d2f742a9793eb8..8a641e6c36b13c 100644 --- a/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt +++ b/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt @@ -10,6 +10,7 @@ list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_CROSSCOMPILING CMAKE_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_PROCESSOR CMAKE_CXX_COMPILER_TARGET + CMAKE_C_COMPILER_TARGET CMAKE_SIZEOF_VOID_P MSVC MSVC_VERSION) diff --git a/versions/v-/vcpkg-cmake-get-vars.json b/versions/v-/vcpkg-cmake-get-vars.json index 0952e15d4a0614..e4611ef4a4ab74 100644 --- a/versions/v-/vcpkg-cmake-get-vars.json +++ b/versions/v-/vcpkg-cmake-get-vars.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "3757d3ec1dc34986d79da98e5999d32c551da6be", + "git-tree": "ace9b3e66bfd3fc51e7837248a340fbad446fe65", "version-date": "2022-08-28", "port-version": 0 }, From 4186327790f1ff82382e220cc070a2758067ed45 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Sat, 10 Sep 2022 09:30:04 +0200 Subject: [PATCH 09/12] Move VCPKG_MAKE_BUILD_TRIPLET to android triplet file --- scripts/cmake/vcpkg_configure_make.cmake | 8 -------- triplets/community/arm-android.cmake | 2 +- triplets/community/arm64-android.cmake | 2 +- triplets/community/x64-android.cmake | 2 +- triplets/community/x86-android.cmake | 2 +- 5 files changed, 4 insertions(+), 12 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 4de5c5b2a29532..5c0085674853ee 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -470,14 +470,6 @@ function(vcpkg_configure_make) endif() endif() - # Android - cross-compiling support - if(VCPKG_TARGET_IS_ANDROID) - if (requires_autoconfig AND NOT arg_BUILD_TRIPLET OR arg_DETERMINE_BUILD_TRIPLET) - set(arg_BUILD_TRIPLET "--host=${VCPKG_MAKE_BUILD_TRIPLET}") - debug_message("Using make triplet: ${arg_BUILD_TRIPLET}") - endif() - endif() - # Cleanup previous build dirs file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" diff --git a/triplets/community/arm-android.cmake b/triplets/community/arm-android.cmake index d21485743eb8f7..feb8f186b799aa 100644 --- a/triplets/community/arm-android.cmake +++ b/triplets/community/arm-android.cmake @@ -2,4 +2,4 @@ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) -set(VCPKG_MAKE_BUILD_TRIPLET armv7a-linux-androideabi) +set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi") diff --git a/triplets/community/arm64-android.cmake b/triplets/community/arm64-android.cmake index 0789e428ca410b..46ad5f166aeb48 100644 --- a/triplets/community/arm64-android.cmake +++ b/triplets/community/arm64-android.cmake @@ -2,4 +2,4 @@ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) -set(VCPKG_MAKE_BUILD_TRIPLET aarch64-linux-android) +set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android") diff --git a/triplets/community/x64-android.cmake b/triplets/community/x64-android.cmake index 2929063eef39a0..7ef27c2b80873b 100644 --- a/triplets/community/x64-android.cmake +++ b/triplets/community/x64-android.cmake @@ -2,4 +2,4 @@ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) -set(VCPKG_MAKE_BUILD_TRIPLET x86_64-linux-android) +set(VCPKG_MAKE_BUILD_TRIPLET "--host=x86_64-linux-android") diff --git a/triplets/community/x86-android.cmake b/triplets/community/x86-android.cmake index 732771b5b10103..f909598cb3fc95 100644 --- a/triplets/community/x86-android.cmake +++ b/triplets/community/x86-android.cmake @@ -2,4 +2,4 @@ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) -set(VCPKG_MAKE_BUILD_TRIPLET i686-linux-android) +set(VCPKG_MAKE_BUILD_TRIPLET "--host=i686-linux-android") From f182324b94ec9621e1c6524aaf80a7c00dddd3f0 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Sun, 11 Sep 2022 23:03:25 +0200 Subject: [PATCH 10/12] Move --target detection to get_cmake_vars --- .../cmake_get_vars/CMakeLists.txt | 13 +++++++++++-- scripts/cmake/vcpkg_configure_make.cmake | 10 +++------- scripts/get_cmake_vars/CMakeLists.txt | 12 ++++++++++-- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt b/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt index 8a641e6c36b13c..a25d0263bdca37 100644 --- a/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt +++ b/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt @@ -9,8 +9,6 @@ list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_CROSSCOMPILING CMAKE_HOST_SYSTEM_NAME CMAKE_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_PROCESSOR - CMAKE_CXX_COMPILER_TARGET - CMAKE_C_COMPILER_TARGET CMAKE_SIZEOF_VOID_P MSVC MSVC_VERSION) @@ -35,6 +33,7 @@ foreach(_lang IN LISTS VCPKG_LANGUAGES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_STANDARD) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_COMPILE_FEATURES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_EXTENSION) + list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_COMPILER_TARGET) # Probably never required since implicit. #list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES) #list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_IMPLICIT_INCLUDE_DIRECTORIES) @@ -117,6 +116,16 @@ if(CMAKE_CXX_COMPILER_TARGET) string(APPEND EXTRA_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} \"${CMAKE_CXX_COMPILER_TARGET}\"") endif() endif() + +foreach(lang IN_LIST VCPKG_LANGUAGES) + if(CMAKE_${lang}_COMPILER_TARGET) + if (CMAKE_${lang}_COMPILER_ID STREQUAL Clang) + string(PREPEND EXTRA_FLAGS "${CMAKE_${lang}_COMPILE_OPTIONS_TARGET}${CMAKE_${lang}_COMPILER_TARGET} ") + elseif(CMAKE_${lang}_COMPILE_OPTIONS_TARGET) + string(PREPEND EXTRA_FLAGS " ${CMAKE_${lang}_COMPILE_OPTIONS_TARGET} ${CMAKE_${lang}_COMPILER_TARGET}") + endif() + endif() +endforeach() if(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") string(APPEND EXTRA_FLAGS " \"${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}\"") diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 5c0085674853ee..383c8ed15100e1 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -100,10 +100,6 @@ macro(z_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags flag_suffix) # just ignore them. string(REGEX REPLACE "((-|/)RTC[^ ]+)" "-Xcompiler \\1" CFLAGS_${flag_suffix} "${CFLAGS_${flag_suffix}}") string(REGEX REPLACE "((-|/)RTC[^ ]+)" "-Xcompiler \\1" CXXFLAGS_${flag_suffix} "${CXXFLAGS_${flag_suffix}}") - if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) - string(APPEND CXXFLAGS_${flag_suffix} " --target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") - string(APPEND CFLAGS_${flag_suffix} " --target=${VCPKG_DETECTED_CMAKE_C_COMPILER_TARGET}") - endif() string(STRIP "${CPPFLAGS_${flag_suffix}}" CPPFLAGS_${flag_suffix}) string(STRIP "${CFLAGS_${flag_suffix}}" CFLAGS_${flag_suffix}) @@ -705,9 +701,9 @@ function(vcpkg_configure_make) string(PREPEND LDFLAGS_${var_suffix} "-Xlinker -Xlinker -Xlinker ") endif() endif() - if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) - string(APPEND LDFLAGS_${var_suffix} " --target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") - endif() + # if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) + # string(APPEND LDFLAGS_${var_suffix} " --target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") + # endif() debug_message("LDFLAGS_${var_suffix}: ${LDFLAGS_${var_suffix}}") endmacro() diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index 3b81c8fb0099d0..e7f7f02991e7f0 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -8,8 +8,6 @@ list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_CROSSCOMPILING CMAKE_SYSTEM_NAME CMAKE_HOST_SYSTEM_NAME CMAKE_SYSTEM_PROCESSOR - CMAKE_CXX_COMPILER_TARGET - CMAKE_C_COMPILER_TARGET CMAKE_HOST_SYSTEM_PROCESSOR) if(CMAKE_SYSTEM_NAME MATCHES "Darwin") list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_OSX_DEPLOYMENT_TARGET @@ -32,6 +30,7 @@ foreach(_lang IN LISTS VCPKG_LANGUAGES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_COMPILE_FEATURES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_EXTENSION) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES) + list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_COMPILER_TARGET) # Probably never required since implicit. #list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES) @@ -114,6 +113,15 @@ macro(_vcpkg_adjust_flags flag_var) endif() endif() endif() + foreach(lang IN LISTS VCPKG_LANGUAGES) + if(CMAKE_${lang}_COMPILER_TARGET AND "${flag_var}" STREQUAL "CMAKE_${lang}_FLAGS") + if (CMAKE_${lang}_COMPILER_ID STREQUAL Clang) + string(PREPEND ${flag_var} "${CMAKE_${lang}_COMPILE_OPTIONS_TARGET}${CMAKE_${lang}_COMPILER_TARGET} ") + elseif(CMAKE_${lang}_COMPILE_OPTIONS_TARGET) + string(PREPEND ${flag_var} " ${CMAKE_${lang}_COMPILE_OPTIONS_TARGET} ${CMAKE_${lang}_COMPILER_TARGET}") + endif() + endif() + endforeach() endmacro() foreach(flag IN LISTS VCPKG_FLAGS_TO_CHECK) From 3028ff6dd058846a213427ef85cce1e765599958 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Tue, 13 Sep 2022 07:49:02 +0200 Subject: [PATCH 11/12] Clean meson --- scripts/cmake/vcpkg_configure_make.cmake | 3 --- scripts/cmake/vcpkg_configure_meson.cmake | 9 --------- 2 files changed, 12 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 383c8ed15100e1..5cfda904b2b674 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -701,9 +701,6 @@ function(vcpkg_configure_make) string(PREPEND LDFLAGS_${var_suffix} "-Xlinker -Xlinker -Xlinker ") endif() endif() - # if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) - # string(APPEND LDFLAGS_${var_suffix} " --target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") - # endif() debug_message("LDFLAGS_${var_suffix}: ${LDFLAGS_${var_suffix}}") endmacro() diff --git a/scripts/cmake/vcpkg_configure_meson.cmake b/scripts/cmake/vcpkg_configure_meson.cmake index eda0f412d486f3..2115680d8b7852 100644 --- a/scripts/cmake/vcpkg_configure_meson.cmake +++ b/scripts/cmake/vcpkg_configure_meson.cmake @@ -122,17 +122,11 @@ function(z_vcpkg_meson_generate_flags_properties_string out_var config_type) set(libpath "${libpath_flag}${CURRENT_INSTALLED_DIR}${path_suffix}/lib") z_vcpkg_meson_convert_compiler_flags_to_list(cflags "${VCPKG_DETECTED_CMAKE_C_FLAGS_${config_type}}") - if (VCPKG_TARGET_IS_ANDROID AND VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) - list(APPEND cflags "--target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") - endif() vcpkg_list(APPEND cflags "-I${CURRENT_INSTALLED_DIR}/include") z_vcpkg_meson_convert_list_to_python_array(cflags ${cflags}) string(APPEND result "c_args = ${cflags}\n") z_vcpkg_meson_convert_compiler_flags_to_list(cxxflags "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_${config_type}}") - if (VCPKG_TARGET_IS_ANDROID AND VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) - list(APPEND cxxflags "--target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") - endif() vcpkg_list(APPEND cxxflags "-I${CURRENT_INSTALLED_DIR}/include") z_vcpkg_meson_convert_list_to_python_array(cxxflags ${cxxflags}) string(APPEND result "cpp_args = ${cxxflags}\n") @@ -155,9 +149,6 @@ function(z_vcpkg_meson_generate_flags_properties_string out_var config_type) endif() endif() vcpkg_list(APPEND linker_flags "${libpath}") - if (VCPKG_TARGET_IS_ANDROID AND VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES Clang AND VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET) - list(APPEND linker_flags "--target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") - endif() z_vcpkg_meson_convert_list_to_python_array(linker_flags ${linker_flags}) string(APPEND result "c_link_args = ${linker_flags}\n") string(APPEND result "cpp_link_args = ${linker_flags}\n") From 3d3765186ece427e768e0e1e0631a2384a22dd0e Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Tue, 13 Sep 2022 07:49:12 +0200 Subject: [PATCH 12/12] Remove duplicated code --- ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt | 7 ------- versions/v-/vcpkg-cmake-get-vars.json | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt b/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt index a25d0263bdca37..545b557b7ca475 100644 --- a/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt +++ b/ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt @@ -109,13 +109,6 @@ if(APPLE) endif() endif() endif() -if(CMAKE_CXX_COMPILER_TARGET) - if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - string(APPEND EXTRA_FLAGS " \"${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}\"") - elseif(CMAKE_CXX_COMPILE_OPTIONS_TARGET) - string(APPEND EXTRA_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} \"${CMAKE_CXX_COMPILER_TARGET}\"") - endif() -endif() foreach(lang IN_LIST VCPKG_LANGUAGES) if(CMAKE_${lang}_COMPILER_TARGET) diff --git a/versions/v-/vcpkg-cmake-get-vars.json b/versions/v-/vcpkg-cmake-get-vars.json index e4611ef4a4ab74..5e08f86f59acb6 100644 --- a/versions/v-/vcpkg-cmake-get-vars.json +++ b/versions/v-/vcpkg-cmake-get-vars.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "ace9b3e66bfd3fc51e7837248a340fbad446fe65", + "git-tree": "712c7e6a286f51c785e017bffe433ac75fc15b45", "version-date": "2022-08-28", "port-version": 0 },