From 5e2a675bfa26b31443590f89677ec616ba349156 Mon Sep 17 00:00:00 2001 From: Holmes Conan Date: Wed, 29 Sep 2021 14:38:07 +0800 Subject: [PATCH 1/9] fix: vcpkg_configure_make for NDK r23 clang cross-compiling --- scripts/cmake/vcpkg_configure_make.cmake | 58 +++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index a806415126062a..36531ab9fbff47 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -478,6 +478,62 @@ function(vcpkg_configure_make) endif() endif() + # Android - cross-compiling support + if(VCPKG_TARGET_IS_ANDROID) + if (VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID MATCHES "^Clang$") + string(REPLACE "-static-libstdc++" "-lc++_static" VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES ${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}) + + if(VCPKG_HOST_IS_WINDOWS) + list(APPEND _csc_BUILD_TRIPLET "--build=${BUILD_ARCH}-pc-mingw32") # This is required since we are running in a msys + # shell which will be otherwise identified as ${BUILD_ARCH}-pc-msys + elseif(VCPKG_HOST_IS_OSX) + list(APPEND _csc_BUILD_TRIPLET "--build=${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}-apple-darwin${VCPKG_CMAKE_HOST_SYSTEM_VERSION}") + elseif(VCPKG_HOST_IS_LINUX) + list(APPEND _csc_BUILD_TRIPLET "--build=${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}-pc-linux-gnu") + else() + message(FATAL_ERROR "unknown target ${VCPKG_DETECTED_CMAKE_SYSTEM_PROCESSOR}") + endif() + + if (VCPKG_DETECTED_CMAKE_SYSTEM_PROCESSOR MATCHES "armv7-a") + list(APPEND _csc_BUILD_TRIPLET "--host=arm-linux-androideabi") + set(ENV{CC} "armv7a-linux-androideabi23-clang") + set(ENV{CXX} "armv7a-linux-androideabi23-clang++") + elseif (VCPKG_DETECTED_CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") + list(APPEND _csc_BUILD_TRIPLET "--host=arm-linux-androideabi") + set(ENV{CC} "aarch64-linux-android23-clang") + set(ENV{CXX} "aarch64-linux-android23-clang++") + elseif (VCPKG_DETECTED_CMAKE_SYSTEM_PROCESSOR MATCHES "x86") + list(APPEND _csc_BUILD_TRIPLET "--host=arm-linux-androideabi") + set(ENV{CC} "i686-linux-android23-clang") + set(ENV{CXX} "i686-linux-android23-clang++") + elseif (VCPKG_DETECTED_CMAKE_SYSTEM_PROCESSOR MATCHES "x64") + list(APPEND _csc_BUILD_TRIPLET "--host=arm-linux-androideabi") + set(ENV{CC} "x86_64-linux-android23-clang") + set(ENV{CXX} "x86_64-linux-android23-clang++") + else() + message(FATAL_ERROR "unknown target ${VCPKG_DETECTED_CMAKE_SYSTEM_PROCESSOR}") + endif() + debug_message("Using make triplet: ${_csc_BUILD_TRIPLET}") + + set(ENV{AR} "llvm-ar") + set(ENV{RANLIB} "llvm-ranlib") + set(ENV{READELF} "llvm-readelf") + set(ENV{STRIP} "llvm-strip") +<<<<<<< HEAD + + get_filename_component(ANDROID_NDK_BINDIR ${VCPKG_DETECTED_CMAKE_C_COMPILER} DIRECTORY) + list(APPEND _envPATH ${ANDROID_NDK_BINDIR}) + list(APPEND _envPATH "/bin") + list(APPEND _envPATH "/usr/bin") + list(APPEND _envPATH "/usr/local/bin") + list(APPEND _envPATH "$ENV{HOME}/.local/bin") + list(JOIN _envPATH ${VCPKG_HOST_PATH_SEPARATOR} _envPATH) + set(ENV{PATH} ${_envPATH}) +======= +>>>>>>> f1239c32c (fix: vcpkg_configure_make for NDK r23 clang cross-compiling) + endif() + endif() + # Cleanup previous build dirs file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" @@ -775,7 +831,7 @@ function(vcpkg_configure_make) # https://www.gnu.org/software/libtool/manual/html_node/Link-mode.html # -avoid-version is handled specially by libtool link mode, this flag is not forwarded to linker, # and libtool tries to avoid versioning for shared libraries and no symbolic links are created. - if(VCPKG_TARGET_IS_ANDROID) + if(VCPKG_TARGET_IS_ANDROID AND VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES "^GNU$") set(ENV{LDFLAGS} "-avoid-version $ENV{LDFLAGS}") endif() From 077ad28fdbe1ddf22582dea178233f98f07145f9 Mon Sep 17 00:00:00 2001 From: Holmes Conan Date: Tue, 19 Oct 2021 20:59:50 +0800 Subject: [PATCH 2/9] remove merge marks --- scripts/cmake/vcpkg_configure_make.cmake | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 36531ab9fbff47..b9e31f1a2b488b 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -519,18 +519,6 @@ function(vcpkg_configure_make) set(ENV{RANLIB} "llvm-ranlib") set(ENV{READELF} "llvm-readelf") set(ENV{STRIP} "llvm-strip") -<<<<<<< HEAD - - get_filename_component(ANDROID_NDK_BINDIR ${VCPKG_DETECTED_CMAKE_C_COMPILER} DIRECTORY) - list(APPEND _envPATH ${ANDROID_NDK_BINDIR}) - list(APPEND _envPATH "/bin") - list(APPEND _envPATH "/usr/bin") - list(APPEND _envPATH "/usr/local/bin") - list(APPEND _envPATH "$ENV{HOME}/.local/bin") - list(JOIN _envPATH ${VCPKG_HOST_PATH_SEPARATOR} _envPATH) - set(ENV{PATH} ${_envPATH}) -======= ->>>>>>> f1239c32c (fix: vcpkg_configure_make for NDK r23 clang cross-compiling) endif() endif() From 6367b0680eed5586e609768d66dffb88c7c4afee Mon Sep 17 00:00:00 2001 From: Holmes Conan Date: Mon, 25 Oct 2021 09:23:35 +0000 Subject: [PATCH 3/9] fix: Android NDK r23+ --- scripts/cmake/vcpkg_configure_make.cmake | 56 +++++++++++++----------- scripts/get_cmake_vars/CMakeLists.txt | 4 +- scripts/toolchains/android.cmake | 9 +++- 3 files changed, 41 insertions(+), 28 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index b9e31f1a2b488b..af133adb5377e5 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -114,7 +114,7 @@ macro(_vcpkg_determine_autotools_host_cpu out_var) else() set(HOST_ARCH "${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}") endif() - if(HOST_ARCH MATCHES "(amd|AMD)64") + if(HOST_ARCH MATCHES "(amd|AMD|x86_|X86_)64") set(${out_var} x86_64) elseif(HOST_ARCH MATCHES "(x|X)86") set(${out_var} i686) @@ -484,41 +484,41 @@ function(vcpkg_configure_make) string(REPLACE "-static-libstdc++" "-lc++_static" VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES ${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}) if(VCPKG_HOST_IS_WINDOWS) - list(APPEND _csc_BUILD_TRIPLET "--build=${BUILD_ARCH}-pc-mingw32") # This is required since we are running in a msys - # shell which will be otherwise identified as ${BUILD_ARCH}-pc-msys + _vcpkg_determine_autotools_host_cpu(BUILD_ARCH) # machine you are building on => --build= + _vcpkg_determine_host_mingw(BUILD_MINGW) + list(APPEND _csc_BUILD_TRIPLET "--build=${BUILD_ARCH}-pc-${BUILD_MINGW}") # This is required since we are running in a msys + # shell which will be otherwise identified as ${BUILD_ARCH}-pc-msys elseif(VCPKG_HOST_IS_OSX) - list(APPEND _csc_BUILD_TRIPLET "--build=${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}-apple-darwin${VCPKG_CMAKE_HOST_SYSTEM_VERSION}") + _vcpkg_determine_autotools_host_arch_mac(BUILD_ARCH) # machine you are building on => --build= + list(APPEND _csc_BUILD_TRIPLET "--build=${BUILD_ARCH}-apple-darwin${VCPKG_CMAKE_HOST_SYSTEM_VERSION}") elseif(VCPKG_HOST_IS_LINUX) - list(APPEND _csc_BUILD_TRIPLET "--build=${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}-pc-linux-gnu") + _vcpkg_determine_autotools_host_cpu(BUILD_ARCH) # machine you are building on => --build= + list(APPEND _csc_BUILD_TRIPLET "--build=${BUILD_ARCH}-pc-linux-gnu") + endif() + + if (DEFINED ENV{ANDROID_API_LEVEL}) + set(ANDROID_API_LEVEL $ENV{ANDROID_API_LEVEL} CACHE STRING "") else() - message(FATAL_ERROR "unknown target ${VCPKG_DETECTED_CMAKE_SYSTEM_PROCESSOR}") + set(ANDROID_API_LEVEL 23 CACHE STRING "") endif() - if (VCPKG_DETECTED_CMAKE_SYSTEM_PROCESSOR MATCHES "armv7-a") - list(APPEND _csc_BUILD_TRIPLET "--host=arm-linux-androideabi") - set(ENV{CC} "armv7a-linux-androideabi23-clang") - set(ENV{CXX} "armv7a-linux-androideabi23-clang++") - elseif (VCPKG_DETECTED_CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") - list(APPEND _csc_BUILD_TRIPLET "--host=arm-linux-androideabi") - set(ENV{CC} "aarch64-linux-android23-clang") - set(ENV{CXX} "aarch64-linux-android23-clang++") - elseif (VCPKG_DETECTED_CMAKE_SYSTEM_PROCESSOR MATCHES "x86") - list(APPEND _csc_BUILD_TRIPLET "--host=arm-linux-androideabi") - set(ENV{CC} "i686-linux-android23-clang") - set(ENV{CXX} "i686-linux-android23-clang++") - elseif (VCPKG_DETECTED_CMAKE_SYSTEM_PROCESSOR MATCHES "x64") + _vcpkg_determine_autotools_target_cpu(TARGET_ARCH) + + if (TARGET_ARCH MATCHES "armv7-a") list(APPEND _csc_BUILD_TRIPLET "--host=arm-linux-androideabi") - set(ENV{CC} "x86_64-linux-android23-clang") - set(ENV{CXX} "x86_64-linux-android23-clang++") + list(APPEND CONFIGURE_ENV "CC=armv7a-linux-androideabi${ANDROID_API_LEVEL}-clang") + list(APPEND CONFIGURE_ENV "CXX=armv7a-linux-androideabi${ANDROID_API_LEVEL}-clang++") else() - message(FATAL_ERROR "unknown target ${VCPKG_DETECTED_CMAKE_SYSTEM_PROCESSOR}") + list(APPEND _csc_BUILD_TRIPLET "--host=${TARGET_ARCH}-linux-android") + list(APPEND CONFIGURE_ENV "CC=${TARGET_ARCH}-linux-android${ANDROID_API_LEVEL}-clang") + list(APPEND CONFIGURE_ENV "CXX=${TARGET_ARCH}-linux-android${ANDROID_API_LEVEL}-clang++") endif() debug_message("Using make triplet: ${_csc_BUILD_TRIPLET}") - set(ENV{AR} "llvm-ar") - set(ENV{RANLIB} "llvm-ranlib") - set(ENV{READELF} "llvm-readelf") - set(ENV{STRIP} "llvm-strip") + list(APPEND CONFIGURE_ENV "AR=llvm-ar") + list(APPEND CONFIGURE_ENV "RANLIB=llvm-ranlib") + list(APPEND CONFIGURE_ENV "READELF=llvm-readelf") + list(APPEND CONFIGURE_ENV "STRIP=llvm-strip") endif() endif() @@ -575,6 +575,8 @@ function(vcpkg_configure_make) set(base_cmd) if(CMAKE_HOST_WIN32) set(base_cmd ${BASH} --noprofile --norc --debug) + elseif(VCPKG_TARGET_IS_ANDROID) + find_program(base_cmd env REQUIRED) else() find_program(base_cmd bash REQUIRED) endif() @@ -850,6 +852,8 @@ function(vcpkg_configure_make) set(command "${base_cmd}" -c "${CONFIGURE_ENV} ./${RELATIVE_BUILD_PATH}/configure ${_csc_BUILD_TRIPLET} ${_csc_OPTIONS} ${_csc_OPTIONS_${_buildtype}}") elseif(VCPKG_TARGET_IS_WINDOWS) set(command "${base_cmd}" -c "${CONFIGURE_ENV} $@" -- "./${RELATIVE_BUILD_PATH}/configure" ${_csc_BUILD_TRIPLET} ${_csc_OPTIONS} ${_csc_OPTIONS_${_buildtype}}) + elseif(VCPKG_TARGET_IS_ANDROID) + set(command ${base_cmd} ${CONFIGURE_ENV} "./${RELATIVE_BUILD_PATH}/configure" ${_csc_BUILD_TRIPLET} ${_csc_OPTIONS} ${_csc_OPTIONS_${_buildtype}}) else() set(command "${base_cmd}" "./${RELATIVE_BUILD_PATH}/configure" ${_csc_BUILD_TRIPLET} ${_csc_OPTIONS} ${_csc_OPTIONS_${_buildtype}}) endif() diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index b6d5f0e4154d46..b609f54d14c4fb 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -8,7 +8,9 @@ list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_CROSSCOMPILING CMAKE_SYSTEM_NAME CMAKE_HOST_SYSTEM_NAME CMAKE_SYSTEM_PROCESSOR - CMAKE_HOST_SYSTEM_PROCESSOR) + CMAKE_HOST_SYSTEM_PROCESSOR + CMAKE_SYSTEM_VERSION + CMAKE_HOST_SYSTEM_VERSION) if(CMAKE_SYSTEM_NAME MATCHES "Darwin") list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT) diff --git a/scripts/toolchains/android.cmake b/scripts/toolchains/android.cmake index ff04cb72d83ae4..3e89eb76c1dda3 100644 --- a/scripts/toolchains/android.cmake +++ b/scripts/toolchains/android.cmake @@ -1,9 +1,16 @@ set(ANDROID_CPP_FEATURES "rtti exceptions" CACHE STRING "") set(CMAKE_SYSTEM_NAME Android CACHE STRING "") set(ANDROID_TOOLCHAIN clang CACHE STRING "") -set(ANDROID_NATIVE_API_LEVEL ${CMAKE_SYSTEM_VERSION} CACHE STRING "") set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION clang CACHE STRING "") +if (DEFINED ENV{ANDROID_API_LEVEL}) + set(ANDROID_NATIVE_API_LEVEL $ENV{ANDROID_API_LEVEL} CACHE STRING "") + set(ANDROID_PLATFORM $ENV{ANDROID_API_LEVEL} CACHE STRING "") +else() + set(ANDROID_NATIVE_API_LEVEL ${CMAKE_SYSTEM_VERSION} CACHE STRING "") + set(ANDROID_PLATFORM ${CMAKE_SYSTEM_VERSION} CACHE STRING "") +endif() + if (VCPKG_TARGET_TRIPLET MATCHES "^arm64-android") set(ANDROID_ABI arm64-v8a CACHE STRING "") elseif(VCPKG_TARGET_TRIPLET MATCHES "^armv6-android") From bd5de969b583b0be3a9cb3b5c70c106e33c90ae8 Mon Sep 17 00:00:00 2001 From: Holmes Conan Date: Sat, 6 Nov 2021 07:56:00 +0000 Subject: [PATCH 4/9] fix: 1. -> ; 2. -avoid-version patch ignored --- scripts/cmake/vcpkg_configure_make.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index c316a0466b8e99..cd023855e93a45 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -562,7 +562,7 @@ function(vcpkg_configure_make) set(base_cmd) if(CMAKE_HOST_WIN32) - set(base_cmd ${BASH} --noprofile --norc --debug) + set(base_cmd ${bash_executable} --noprofile --norc --debug) else() find_program(base_cmd bash REQUIRED) endif() @@ -807,7 +807,7 @@ function(vcpkg_configure_make) # https://www.gnu.org/software/libtool/manual/html_node/Link-mode.html # -avoid-version is handled specially by libtool link mode, this flag is not forwarded to linker, # and libtool tries to avoid versioning for shared libraries and no symbolic links are created. - if(VCPKG_TARGET_IS_ANDROID AND VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES "^GNU$") + if(VCPKG_TARGET_IS_ANDROID) set(ENV{LDFLAGS} "-avoid-version $ENV{LDFLAGS}") endif() From eec092cc15348c4b4b98fc782c4f2bcc7dc077cd Mon Sep 17 00:00:00 2001 From: Holmes Conan Date: Sat, 6 Nov 2021 07:56:00 +0000 Subject: [PATCH 5/9] fix for review 1. ${BASH} -> ${bash_executable} 2. -avoid-version patch ignored --- scripts/cmake/vcpkg_configure_make.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index c316a0466b8e99..cd023855e93a45 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -562,7 +562,7 @@ function(vcpkg_configure_make) set(base_cmd) if(CMAKE_HOST_WIN32) - set(base_cmd ${BASH} --noprofile --norc --debug) + set(base_cmd ${bash_executable} --noprofile --norc --debug) else() find_program(base_cmd bash REQUIRED) endif() @@ -807,7 +807,7 @@ function(vcpkg_configure_make) # https://www.gnu.org/software/libtool/manual/html_node/Link-mode.html # -avoid-version is handled specially by libtool link mode, this flag is not forwarded to linker, # and libtool tries to avoid versioning for shared libraries and no symbolic links are created. - if(VCPKG_TARGET_IS_ANDROID AND VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES "^GNU$") + if(VCPKG_TARGET_IS_ANDROID) set(ENV{LDFLAGS} "-avoid-version $ENV{LDFLAGS}") endif() From 854ca5875d3480654f56fa6bdbc8c58ecef2df6e Mon Sep 17 00:00:00 2001 From: Holmes Conan Date: Sat, 6 Nov 2021 08:29:39 +0000 Subject: [PATCH 6/9] fix variable renamed inside z_vcpkg_determine_autotools_host_cpu --- scripts/cmake/vcpkg_configure_make.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index cd023855e93a45..a77212fad5e7a8 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -114,7 +114,7 @@ macro(z_vcpkg_determine_autotools_host_cpu out_var) else() set(host_arch "${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}") endif() - if(HOST_ARCH MATCHES "(amd|AMD|x86_|X86_)64") + if(host_arch MATCHES "(amd|AMD|x86_|X86_)64") set(${out_var} x86_64) elseif(host_arch MATCHES "(x|X)86") set(${out_var} i686) From 1ba1b4f20fc9f9a44895d6b4805fba6e63dc7fd0 Mon Sep 17 00:00:00 2001 From: Holmes Conan Date: Sat, 6 Nov 2021 21:20:15 +0800 Subject: [PATCH 7/9] fix: 1. guard arg_BUILD_TRIPLET; 2. typo of VCPKG_DETECTED_CMAKE_HOST_SYSTEM_VERSION --- scripts/cmake/vcpkg_configure_make.cmake | 41 +++++++++++++----------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index a77212fad5e7a8..1f8bde5d358885 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -316,7 +316,7 @@ function(vcpkg_configure_make) # Only for ports using autotools so we can assume that they follow the common conventions for build/target/host if(CMAKE_HOST_WIN32) set(arg_BUILD_TRIPLET "--build=${BUILD_ARCH}-pc-mingw32") # This is required since we are running in a msys - # shell which will be otherwise identified as ${BUILD_ARCH}-pc-msys + # shell which will be otherwise identified as ${BUILD_ARCH}-pc-msys endif() if(NOT TARGET_ARCH MATCHES "${BUILD_ARCH}" OR NOT CMAKE_HOST_WIN32) # we don't need to specify the additional flags if we build nativly, this does not hold when we are not on windows string(APPEND arg_BUILD_TRIPLET " --host=${TARGET_ARCH}-pc-mingw32") # (Host activates crosscompilation; The name given here is just the prefix of the host tools for the target) @@ -470,37 +470,42 @@ function(vcpkg_configure_make) if (VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID MATCHES "^Clang$") string(REPLACE "-static-libstdc++" "-lc++_static" VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES ${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}) - if(VCPKG_HOST_IS_WINDOWS) - z_vcpkg_determine_autotools_host_cpu(BUILD_ARCH) # machine you are building on => --build= - z_vcpkg_determine_host_mingw(BUILD_MINGW) - set(arg_BUILD_TRIPLET "--build=${BUILD_ARCH}-pc-${BUILD_MINGW}") # This is required since we are running in a msys - # shell which will be otherwise identified as ${BUILD_ARCH}-pc-msys - elseif(VCPKG_HOST_IS_OSX) - z_vcpkg_determine_autotools_host_arch_mac(BUILD_ARCH) # machine you are building on => --build= - set(arg_BUILD_TRIPLET "--build=${BUILD_ARCH}-apple-darwin${VCPKG_CMAKE_HOST_SYSTEM_VERSION}") - elseif(VCPKG_HOST_IS_LINUX) - z_vcpkg_determine_autotools_host_cpu(BUILD_ARCH) # machine you are building on => --build= - set(arg_BUILD_TRIPLET "--build=${BUILD_ARCH}-pc-linux-gnu") - endif() - if (DEFINED ENV{ANDROID_API_LEVEL}) set(ANDROID_API_LEVEL $ENV{ANDROID_API_LEVEL} CACHE STRING "") else() set(ANDROID_API_LEVEL ${VCPKG_DETECTED_CMAKE_SYSTEM_VERSION} CACHE STRING "") endif() - z_vcpkg_determine_autotools_target_cpu(TARGET_ARCH) + if (arg_DETERMINE_BUILD_TRIPLET OR NOT arg_BUILD_TRIPLET) + if(VCPKG_HOST_IS_WINDOWS) + z_vcpkg_determine_autotools_host_cpu(BUILD_ARCH) # machine you are building on => --build= + z_vcpkg_determine_host_mingw(BUILD_MINGW) + set(arg_BUILD_TRIPLET "--build=${BUILD_ARCH}-pc-${BUILD_MINGW}") # This is required since we are running in a msys + # shell which will be otherwise identified as ${BUILD_ARCH}-pc-msys + elseif(VCPKG_HOST_IS_OSX) + z_vcpkg_determine_autotools_host_arch_mac(BUILD_ARCH) # machine you are building on => --build= + set(arg_BUILD_TRIPLET "--build=${BUILD_ARCH}-apple-darwin${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_VERSION}") + elseif(VCPKG_HOST_IS_LINUX) + z_vcpkg_determine_autotools_host_cpu(BUILD_ARCH) # machine you are building on => --build= + set(arg_BUILD_TRIPLET "--build=${BUILD_ARCH}-pc-linux-gnu") + endif() + + z_vcpkg_determine_autotools_target_cpu(TARGET_ARCH) + if (TARGET_ARCH MATCHES "armv7-a") + string(APPEND arg_BUILD_TRIPLET " --host=arm-linux-androideabi") + else() + string(APPEND arg_BUILD_TRIPLET " --host=${TARGET_ARCH}-linux-android") + endif() + endif() + debug_message("Using make triplet: ${arg_BUILD_TRIPLET}") if (TARGET_ARCH MATCHES "armv7-a") - string(APPEND arg_BUILD_TRIPLET " --host=arm-linux-androideabi") string(APPEND configure_env " CC=armv7a-linux-androideabi${ANDROID_API_LEVEL}-clang") string(APPEND configure_env " CXX=armv7a-linux-androideabi${ANDROID_API_LEVEL}-clang++") else() - string(APPEND arg_BUILD_TRIPLET " --host=${TARGET_ARCH}-linux-android") string(APPEND configure_env " CC=${TARGET_ARCH}-linux-android${ANDROID_API_LEVEL}-clang") string(APPEND configure_env " CXX=${TARGET_ARCH}-linux-android${ANDROID_API_LEVEL}-clang++") endif() - debug_message("Using make triplet: ${_csc_BUILD_TRIPLET}") string(APPEND configure_env " AR=llvm-ar") string(APPEND configure_env " RANLIB=llvm-ranlib") From 00ad9dcd59a34d8689d46b314f302601cf56cd94 Mon Sep 17 00:00:00 2001 From: Holmes Conan Date: Tue, 9 Nov 2021 01:51:20 +0000 Subject: [PATCH 8/9] fix: try to fix z_vcpkg_determine_autotools_host_cpu for x86_64 --- scripts/cmake/vcpkg_configure_make.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index a77212fad5e7a8..eb596520e0078d 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -114,7 +114,9 @@ macro(z_vcpkg_determine_autotools_host_cpu out_var) else() set(host_arch "${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}") endif() - if(host_arch MATCHES "(amd|AMD|x86_|X86_)64") + if(host_arch MATCHES "(amd|AMD)64") + set(${out_var} x86_64) + elseif(host_arch MATCHES "(x|X)86_64") set(${out_var} x86_64) elseif(host_arch MATCHES "(x|X)86") set(${out_var} i686) From 632c5a143539910b41649ce3b22a373f608a935e Mon Sep 17 00:00:00 2001 From: Holmes Conan Date: Thu, 11 Nov 2021 10:26:01 +0000 Subject: [PATCH 9/9] fix: remove CMAKE_SYSTEM_VERSION in get_cmake_vars --- scripts/get_cmake_vars/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index b609f54d14c4fb..175febd4b1a423 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -9,7 +9,6 @@ list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_CROSSCOMPILING CMAKE_HOST_SYSTEM_NAME CMAKE_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_PROCESSOR - CMAKE_SYSTEM_VERSION CMAKE_HOST_SYSTEM_VERSION) if(CMAKE_SYSTEM_NAME MATCHES "Darwin") list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_OSX_DEPLOYMENT_TARGET