From fd8f5153d3def8908e5f46ff6d3f7b4b6d687b8f Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 12 Jan 2021 13:37:27 +0100 Subject: [PATCH 01/52] [android] vcpkg_configure_make correct set flags for android build --- scripts/cmake/vcpkg_configure_make.cmake | 65 ++++++++++++++++++++++-- scripts/get_cmake_vars/CMakeLists.txt | 9 +++- 2 files changed, 69 insertions(+), 5 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index e7af4713c8b616..10a4a2320de074 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -139,6 +139,23 @@ macro(_vcpkg_determine_autotools_target_cpu out_var) endif() endmacro() +macro(_vcpkg_determine_autotools_target_os out_var) + if (VCPKG_DETECTED_CMAKE_SYSTEM_NAME MATCHES "Android") + set(${out_var} "linux-android") + else() + message(FATAL_ERROR "Unsupported target os ${VCPKG_DETECTED_CMAKE_SYSTEM_NAME} in _vcpkg_determine_autotools_target_os!") + endif() +endmacro() + +macro(_vcpkg_determine_autotools_target_triplet out_var) + _vcpkg_determine_autotools_target_cpu(_arch) + _vcpkg_determine_autotools_target_os(_os) + if (VCPKG_DETECTED_CMAKE_SYSTEM_NAME MATCHES "Android") + set(_os "${_os}${VCPKG_DETECTED_ANDROID_PLATFORM_LEVEL}") + endif() + set(${out_var} "${_arch}-${_os}") +endmacro() + macro(_vcpkg_backup_env_variable envvar) if(DEFINED ENV{${envvar}}) set(${envvar}_BACKUP "$ENV{${envvar}}") @@ -244,8 +261,10 @@ function(vcpkg_configure_make) # Backup environment variables # CCAS CC C CPP CXX FC FF GC LD LF LIBTOOL OBJC OBJCXX R UPC Y set(_cm_FLAGS AS CCAS CC C CPP CXX FC FF GC LD LF LIBTOOL OBJC OBJXX R UPC Y RC) + set(_cm_TOOLS CC CXX AR AS LD RANLIB STRIP) list(TRANSFORM _cm_FLAGS APPEND "FLAGS") _vcpkg_backup_env_variables(${_cm_FLAGS}) + _vcpkg_backup_env_variables(${_cm_TOOLS}) # FC fotran compiler | FF Fortran 77 compiler @@ -396,6 +415,26 @@ function(vcpkg_configure_make) list(APPEND _csc_OPTIONS gl_cv_host_cpu_c_abi=no) endif() else() + if (VCPKG_DETECTED_CMAKE_CROSSCOMPILING) + _vcpkg_determine_autotools_target_cpu(TARGET_ARCH) + _vcpkg_determine_autotools_target_os(TARGET_OS) + _vcpkg_determine_autotools_target_triplet(TARGET_TRIPLET_ARG) + if (TARGET_TRIPLET_ARG) + set(TARGET_TRIPLET_ARG "--target=${TARGET_TRIPLET_ARG}") + endif() + set(LDFLAGS_EXTRA) + foreach (syslib_dir IN LISTS ${VCPKG_DETECTED_CMAKE_SYSTEM_LIBRARY_PATH}) + set(LDFLAGS_EXTRA "${LDFLAGS_EXTRA} -L${syslib_dir}") + endforeach() + set(LDFLAGS_EXTRA "${LDFLAGS_EXTRA} --sysroot=${VCPKG_DETECTED_CMAKE_SYSROOT}") + # --build: the machine you are building on usualy guessed ok + # --host: the machine you are building for + # --target: the machine that CC will produce binaries for + # https://stackoverflow.com/questions/21990021/how-to-determine-host-value-for-configure-when-using-cross-compiler + # Only for ports using autotools so we can assume that they follow the common conventions for build/target/host + string(APPEND _csc_BUILD_TRIPLET "--host=${TARGET_ARCH}-${TARGET_OS}") # (Host activates crosscompilation; The name given here is just the prefix of the host tools for the target) + debug_message("Using make triplet: ${_csc_BUILD_TRIPLET}") + endif() string(REPLACE " " "\ " _VCPKG_PREFIX ${CURRENT_INSTALLED_DIR}) string(REPLACE " " "\ " _VCPKG_INSTALLED ${CURRENT_INSTALLED_DIR}) set(EXTRA_QUOTES) @@ -647,11 +686,29 @@ function(vcpkg_configure_make) endif() # Setup environment + if (NOT CMAKE_HOST_WIN32 AND VCPKG_DETECTED_CMAKE_CROSSCOMPILING) + if (VCPKG_DETECTED_CMAKE_C_COMPILER) + set(ENV{CC} "${VCPKG_DETECTED_CMAKE_C_COMPILER}") + endif() + if (VCPKG_DETECTED_CMAKE_CXX_COMPILER) + set(ENV{CXX} "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") + endif() + if (VCPKG_DETECTED_CMAKE_LINKER) + set(ENV{LD} "${VCPKG_DETECTED_CMAKE_LINKER}") + endif() + set(_tools AR RANLIB STRIP NM OBJDUMP DLLTOOL MT STRIP AS) + foreach (_toolname ${_tools}) + if (VCPKG_DETECTED_CMAKE_${_toolname}) + set(ENV{${_toolname}} ${VCPKG_DETECTED_CMAKE_${_toolname}}) + endif() + endforeach() + list(APPEND _csc_OPTIONS "--with-sysroot=${VCPKG_DETECTED_CMAKE_SYSROOT}") + endif() set(ENV{CPPFLAGS} "${CPPFLAGS_${_buildtype}}") - set(ENV{CFLAGS} "${CFLAGS_${_buildtype}}") - set(ENV{CXXFLAGS} "${CXXFLAGS_${_buildtype}}") + set(ENV{CFLAGS} "${CFLAGS_${_buildtype}} ${TARGET_TRIPLET_ARG}") + set(ENV{CXXFLAGS} "${CXXFLAGS_${_buildtype}} ${TARGET_TRIPLET_ARG}") set(ENV{RCFLAGS} "${VCPKG_DETECTED_CMAKE_RC_FLAGS_${_buildtype}}") - set(ENV{LDFLAGS} "${LDFLAGS_${_buildtype}}") + set(ENV{LDFLAGS} "${LDFLAGS_${_buildtype}} ${LDFLAGS_EXTRA}") if(LINK_ENV_${_VAR_SUFFIX}) set(_LINK_CONFIG_BACKUP "$ENV{_LINK_}") set(ENV{_LINK_} "${LINK_ENV_${_VAR_SUFFIX}}") @@ -721,7 +778,7 @@ function(vcpkg_configure_make) endforeach() # Restore environment - _vcpkg_restore_env_variables(${_cm_FLAGS} LIB LIBPATH LIBRARY_PATH LD_LIBRARY_PATH) + _vcpkg_restore_env_variables(${_cm_FLAGS} LIB LIBPATH LIBRARY_PATH LD_LIBRARY_PATH ${_cm_TOOLS}) SET(_VCPKG_PROJECT_SOURCE_PATH ${_csc_SOURCE_PATH} PARENT_SCOPE) set(_VCPKG_PROJECT_SUBPATH ${_csc_PROJECT_SUBPATH} PARENT_SCOPE) diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index 45a53989b56a6b..49473bcd41c07f 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -14,7 +14,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin") CMAKE_OSX_SYSROOT) endif() # Programs to check -set(PROGLIST AR RANLIB STRIP NM OBJDUMP DLLTOOL MT LINKER) +set(PROGLIST AR RANLIB STRIP NM OBJDUMP DLLTOOL MT LINKER AS) foreach(prog IN LISTS PROGLIST) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${prog}) endforeach() @@ -37,6 +37,13 @@ foreach(_lang IN LISTS VCPKG_LANGUAGES) endforeach() list(REMOVE_DUPLICATES VCPKG_DEFAULT_VARS_TO_CHECK) +list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_SYSROOT) +list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_SYSTEM_LIBRARY_PATH) +list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK ANDROID_ABI) +list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK ANDROID_PLATFORM) +list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK ANDROID_PLATFORM_LEVEL) +list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK ANDROID_TOOLCHAIN) + # Environment variables to check. list(APPEND VCPKG_DEFAULT_ENV_VARS_TO_CHECK PATH INCLUDE C_INCLUDE_PATH CPLUS_INCLUDE_PATH LIB LIBPATH LIBRARY_PATH LD_LIBRARY_PATH) list(REMOVE_DUPLICATES VCPKG_DEFAULT_ENV_VARS_TO_CHECK) From 489fc1ef7ac04b664265635c9acca15d155110f3 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Fri, 15 Jan 2021 17:42:45 +0100 Subject: [PATCH 02/52] extend [c,cxx,ld] flags with crosscompiling arguments --- scripts/cmake/vcpkg_configure_make.cmake | 24 ++----------- scripts/get_cmake_vars/CMakeLists.txt | 45 ++++++++++++++++++++---- 2 files changed, 41 insertions(+), 28 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 10a4a2320de074..e0f26e3ec02d72 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -147,15 +147,6 @@ macro(_vcpkg_determine_autotools_target_os out_var) endif() endmacro() -macro(_vcpkg_determine_autotools_target_triplet out_var) - _vcpkg_determine_autotools_target_cpu(_arch) - _vcpkg_determine_autotools_target_os(_os) - if (VCPKG_DETECTED_CMAKE_SYSTEM_NAME MATCHES "Android") - set(_os "${_os}${VCPKG_DETECTED_ANDROID_PLATFORM_LEVEL}") - endif() - set(${out_var} "${_arch}-${_os}") -endmacro() - macro(_vcpkg_backup_env_variable envvar) if(DEFINED ENV{${envvar}}) set(${envvar}_BACKUP "$ENV{${envvar}}") @@ -418,15 +409,6 @@ function(vcpkg_configure_make) if (VCPKG_DETECTED_CMAKE_CROSSCOMPILING) _vcpkg_determine_autotools_target_cpu(TARGET_ARCH) _vcpkg_determine_autotools_target_os(TARGET_OS) - _vcpkg_determine_autotools_target_triplet(TARGET_TRIPLET_ARG) - if (TARGET_TRIPLET_ARG) - set(TARGET_TRIPLET_ARG "--target=${TARGET_TRIPLET_ARG}") - endif() - set(LDFLAGS_EXTRA) - foreach (syslib_dir IN LISTS ${VCPKG_DETECTED_CMAKE_SYSTEM_LIBRARY_PATH}) - set(LDFLAGS_EXTRA "${LDFLAGS_EXTRA} -L${syslib_dir}") - endforeach() - set(LDFLAGS_EXTRA "${LDFLAGS_EXTRA} --sysroot=${VCPKG_DETECTED_CMAKE_SYSROOT}") # --build: the machine you are building on usualy guessed ok # --host: the machine you are building for # --target: the machine that CC will produce binaries for @@ -705,10 +687,10 @@ function(vcpkg_configure_make) list(APPEND _csc_OPTIONS "--with-sysroot=${VCPKG_DETECTED_CMAKE_SYSROOT}") endif() set(ENV{CPPFLAGS} "${CPPFLAGS_${_buildtype}}") - set(ENV{CFLAGS} "${CFLAGS_${_buildtype}} ${TARGET_TRIPLET_ARG}") - set(ENV{CXXFLAGS} "${CXXFLAGS_${_buildtype}} ${TARGET_TRIPLET_ARG}") + set(ENV{CFLAGS} "${CFLAGS_${_buildtype}}") + set(ENV{CXXFLAGS} "${CXXFLAGS_${_buildtype}}") set(ENV{RCFLAGS} "${VCPKG_DETECTED_CMAKE_RC_FLAGS_${_buildtype}}") - set(ENV{LDFLAGS} "${LDFLAGS_${_buildtype}} ${LDFLAGS_EXTRA}") + set(ENV{LDFLAGS} "${LDFLAGS_${_buildtype}}") if(LINK_ENV_${_VAR_SUFFIX}) set(_LINK_CONFIG_BACKUP "$ENV{_LINK_}") set(ENV{_LINK_} "${LINK_ENV_${_VAR_SUFFIX}}") diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index 49473bcd41c07f..af56191d723aaa 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -37,13 +37,6 @@ foreach(_lang IN LISTS VCPKG_LANGUAGES) endforeach() list(REMOVE_DUPLICATES VCPKG_DEFAULT_VARS_TO_CHECK) -list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_SYSROOT) -list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_SYSTEM_LIBRARY_PATH) -list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK ANDROID_ABI) -list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK ANDROID_PLATFORM) -list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK ANDROID_PLATFORM_LEVEL) -list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK ANDROID_TOOLCHAIN) - # Environment variables to check. list(APPEND VCPKG_DEFAULT_ENV_VARS_TO_CHECK PATH INCLUDE C_INCLUDE_PATH CPLUS_INCLUDE_PATH LIB LIBPATH LIBRARY_PATH LD_LIBRARY_PATH) list(REMOVE_DUPLICATES VCPKG_DEFAULT_ENV_VARS_TO_CHECK) @@ -75,6 +68,44 @@ endif() project(get_cmake_vars LANGUAGES ${VCPKG_LANGUAGES}) +if (CMAKE_CROSSCOMPILING) + macro(_append_to target value) + set(${target} "${${target}} ${value}") + endmacro() + if(CMAKE_CXX_COMPILER_TARGET AND CMAKE_CXX_COMPILE_OPTIONS_TARGET) + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + _append_to(CMAKE_CXX_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") + _append_to(CMAKE_C_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") + _append_to(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") + _append_to(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") + else() + _append_to(CMAKE_CXX_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") + _append_to(CMAKE_C_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") + _append_to(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") + _append_to(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") + endif() + endif() + if(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN) + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + _append_to(CMAKE_CXX_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + _append_to(CMAKE_C_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + _append_to(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + _append_to(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + else() + _append_to(CMAKE_CXX_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + _append_to(CMAKE_C_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + _append_to(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + _append_to(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + endif() + endif() + if(CMAKE_SYSROOT AND CMAKE_CXX_COMPILE_OPTIONS_SYSROOT) + _append_to(CMAKE_CXX_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") + _append_to(CMAKE_C_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") + _append_to(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") + _append_to(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") + endif() +endif() + foreach(VAR IN LISTS VCPKG_VARS_TO_CHECK) string(APPEND OUTPUT_STRING "set(${VCPKG_VAR_PREFIX}_${VAR} \"${${VAR}}\")\n") endforeach() From d8569dd438b56c4eb41de50ffcee18de4dc36cbc Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 20 Jan 2021 16:34:57 +0100 Subject: [PATCH 03/52] review fixes --- scripts/cmake/vcpkg_configure_make.cmake | 123 ++++++++++++++--------- scripts/get_cmake_vars/CMakeLists.txt | 70 ++++++------- 2 files changed, 113 insertions(+), 80 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index e0f26e3ec02d72..d46815be831287 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -105,44 +105,75 @@ macro(_vcpkg_determine_host_mingw out_var) unset(HOST_ARCH) endmacro() +function(_vcpkg_cmake_to_autotools_arch in_arch out_var) + unset(${out_var} PARENT_SCOPE) + if(in_arch MATCHES "(amd|AMD)64" OR in_arch MATCHES "(x|X)86[-_]+64" OR in_arch MATCHES "x64") + set(${out_var} x86_64 PARENT_SCOPE) + elseif(in_arch MATCHES "(x|X)86") + set(${out_var} i686 PARENT_SCOPE) + elseif(in_arch MATCHES "^(ARM|arm)64$") + set(${out_var} aarch64 PARENT_SCOPE) + elseif(in_arch MATCHES "^(ARM|arm)$") + set(${out_var} arm PARENT_SCOPE) + endif() +endfunction() + +function(_vcpkg_cmake_to_autotools_system in_system out_var) + if(in_system MATCHES "Linux") + set(${out_var} "linux-gnu" PARENT_SCOPE) + elseif(in_system MATCHES "Windows") + set(${out_var} "pc-mingw32" PARENT_SCOPE) + elseif(in_system MATCHES "Darwin") + set(${out_var} "apple-macos" PARENT_SCOPE) + elseif(in_system MATCHES "Android") + set(${out_var} "linux-android" PARENT_SCOPE) + endif() +endfunction() + macro(_vcpkg_determine_autotools_host_cpu out_var) - if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) - set(HOST_ARCH $ENV{PROCESSOR_ARCHITEW6432}) + if(DEFINED VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR) + set(_HOST_ARCH ${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}) + elseif(DEFINED ENV{PROCESSOR_ARCHITEW6432}) + set(_HOST_ARCH $ENV{PROCESSOR_ARCHITEW6432}) else() - set(HOST_ARCH $ENV{PROCESSOR_ARCHITECTURE}) + set(_HOST_ARCH $ENV{PROCESSOR_ARCHITECTURE}) endif() - if(HOST_ARCH MATCHES "(amd|AMD)64") - set(${out_var} x86_64) - elseif(HOST_ARCH MATCHES "(x|X)86") - set(${out_var} i686) - elseif(HOST_ARCH MATCHES "^(ARM|arm)64$") - set(${out_var} aarch64) - elseif(HOST_ARCH MATCHES "^(ARM|arm)$") - set(${out_var} arm) - else() - message(FATAL_ERROR "Unsupported host architecture ${HOST_ARCH} in _vcpkg_determine_autotools_host_cpu!" ) + _vcpkg_cmake_to_autotools_arch(${_HOST_ARCH} ${out_var}) + if (NOT DEFINED ${out_var}) + message(FATAL_ERROR "Unsupported host architecture ${_HOST_ARCH} in _vcpkg_determine_autotools_host_cpu!" ) endif() - unset(HOST_ARCH) + unset(_HOST_ARCH) endmacro() + +macro(_vcpkg_determine_autotools_host_os out_var) + if(DEFINED VCPKG_DETECTED_CMAKE_HOST_SYSTEM_NAME) + set(_HOST_SYSTEM ${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_NAME}) + elseif(VCPKG_TARGET_IS_WINDOWS) + set(_HOST_SYSTEM "Windows") + elseif(VCPKG_TARGET_IS_LINUX) + set(_HOST_SYSTEM "Linux") + elseif(VCPKG_TARGET_IS_OSX) + set(_HOST_SYSTEM "Darwin") + elseif(VCPKG_TARGET_IS_ANDROID) + set(_HOST_SYSTEM "Android") + endif() + _vcpkg_cmake_to_autotools_system(${_HOST_SYSTEM} ${out_var}) + if (NOT DEFINED ${out_var}) + message(FATAL_ERROR "Unsupported host os ${_HOST_SYSTEM} in _vcpkg_determine_autotools_host_os!" ) + endif() + unset(_HOST_SYSTEM) +endmacro() macro(_vcpkg_determine_autotools_target_cpu out_var) - if(VCPKG_TARGET_ARCHITECTURE MATCHES "(x|X)64") - set(${out_var} x86_64) - elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "(x|X)86") - set(${out_var} i686) - elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^(ARM|arm)64$") - set(${out_var} aarch64) - elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^(ARM|arm)$") - set(${out_var} arm) - else() + _vcpkg_cmake_to_autotools_arch(${VCPKG_TARGET_ARCHITECTURE} ${out_var}) + if(NOT DEFINED ${out_var}) message(FATAL_ERROR "Unsupported VCPKG_TARGET_ARCHITECTURE architecture ${VCPKG_TARGET_ARCHITECTURE} in _vcpkg_determine_autotools_target_cpu!" ) endif() endmacro() macro(_vcpkg_determine_autotools_target_os out_var) - if (VCPKG_DETECTED_CMAKE_SYSTEM_NAME MATCHES "Android") - set(${out_var} "linux-android") - else() + _vcpkg_cmake_to_autotools_system(${VCPKG_DETECTED_CMAKE_SYSTEM_NAME} ${out_var}) + if(NOT DEFINED ${out_var}) message(FATAL_ERROR "Unsupported target os ${VCPKG_DETECTED_CMAKE_SYSTEM_NAME} in _vcpkg_determine_autotools_target_os!") endif() endmacro() @@ -406,7 +437,9 @@ function(vcpkg_configure_make) list(APPEND _csc_OPTIONS gl_cv_host_cpu_c_abi=no) endif() else() - if (VCPKG_DETECTED_CMAKE_CROSSCOMPILING) + if (NOT _csc_BUILD_TRIPLET) + _vcpkg_determine_autotools_host_cpu(HOST_ARCH) + _vcpkg_determine_autotools_host_os(HOST_OS) _vcpkg_determine_autotools_target_cpu(TARGET_ARCH) _vcpkg_determine_autotools_target_os(TARGET_OS) # --build: the machine you are building on usualy guessed ok @@ -414,9 +447,10 @@ function(vcpkg_configure_make) # --target: the machine that CC will produce binaries for # https://stackoverflow.com/questions/21990021/how-to-determine-host-value-for-configure-when-using-cross-compiler # Only for ports using autotools so we can assume that they follow the common conventions for build/target/host - string(APPEND _csc_BUILD_TRIPLET "--host=${TARGET_ARCH}-${TARGET_OS}") # (Host activates crosscompilation; The name given here is just the prefix of the host tools for the target) + list(APPEND _csc_BUILD_TRIPLET "--host=${TARGET_ARCH}-${TARGET_OS}" "--build=${HOST_ARCH}-${HOST_OS}") debug_message("Using make triplet: ${_csc_BUILD_TRIPLET}") - endif() + endif() + string(REPLACE " " "\ " _VCPKG_PREFIX ${CURRENT_INSTALLED_DIR}) string(REPLACE " " "\ " _VCPKG_INSTALLED ${CURRENT_INSTALLED_DIR}) set(EXTRA_QUOTES) @@ -668,24 +702,21 @@ function(vcpkg_configure_make) endif() # Setup environment - if (NOT CMAKE_HOST_WIN32 AND VCPKG_DETECTED_CMAKE_CROSSCOMPILING) - if (VCPKG_DETECTED_CMAKE_C_COMPILER) - set(ENV{CC} "${VCPKG_DETECTED_CMAKE_C_COMPILER}") - endif() - if (VCPKG_DETECTED_CMAKE_CXX_COMPILER) - set(ENV{CXX} "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") - endif() - if (VCPKG_DETECTED_CMAKE_LINKER) - set(ENV{LD} "${VCPKG_DETECTED_CMAKE_LINKER}") - endif() - set(_tools AR RANLIB STRIP NM OBJDUMP DLLTOOL MT STRIP AS) - foreach (_toolname ${_tools}) - if (VCPKG_DETECTED_CMAKE_${_toolname}) - set(ENV{${_toolname}} ${VCPKG_DETECTED_CMAKE_${_toolname}}) - endif() - endforeach() - list(APPEND _csc_OPTIONS "--with-sysroot=${VCPKG_DETECTED_CMAKE_SYSROOT}") + if (VCPKG_DETECTED_CMAKE_C_COMPILER) + set(ENV{CC} "${VCPKG_DETECTED_CMAKE_C_COMPILER}") endif() + if (VCPKG_DETECTED_CMAKE_CXX_COMPILER) + set(ENV{CXX} "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") + endif() + if (VCPKG_DETECTED_CMAKE_LINKER) + set(ENV{LD} "${VCPKG_DETECTED_CMAKE_LINKER}") + endif() + set(_tools AR RANLIB STRIP NM OBJDUMP DLLTOOL MT STRIP AS) + foreach (_toolname ${_tools}) + if (VCPKG_DETECTED_CMAKE_${_toolname}) + set(ENV{${_toolname}} ${VCPKG_DETECTED_CMAKE_${_toolname}}) + endif() + endforeach() set(ENV{CPPFLAGS} "${CPPFLAGS_${_buildtype}}") set(ENV{CFLAGS} "${CFLAGS_${_buildtype}}") set(ENV{CXXFLAGS} "${CXXFLAGS_${_buildtype}}") diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index af56191d723aaa..4ad6a8a1f1bf93 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -68,44 +68,46 @@ endif() project(get_cmake_vars LANGUAGES ${VCPKG_LANGUAGES}) -if (CMAKE_CROSSCOMPILING) - macro(_append_to target value) - set(${target} "${${target}} ${value}") - endmacro() - if(CMAKE_CXX_COMPILER_TARGET AND CMAKE_CXX_COMPILE_OPTIONS_TARGET) - if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - _append_to(CMAKE_CXX_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") - _append_to(CMAKE_C_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") - _append_to(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") - _append_to(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") - else() - _append_to(CMAKE_CXX_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") - _append_to(CMAKE_C_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") - _append_to(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") - _append_to(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") - endif() - endif() - if(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN) - if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - _append_to(CMAKE_CXX_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - _append_to(CMAKE_C_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - _append_to(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - _append_to(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - else() - _append_to(CMAKE_CXX_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - _append_to(CMAKE_C_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - _append_to(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - _append_to(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - endif() +if(CMAKE_CXX_COMPILER_TARGET AND CMAKE_CXX_COMPILE_OPTIONS_TARGET) + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") + else() + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") endif() - if(CMAKE_SYSROOT AND CMAKE_CXX_COMPILE_OPTIONS_SYSROOT) - _append_to(CMAKE_CXX_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") - _append_to(CMAKE_C_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") - _append_to(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") - _append_to(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") +endif() + +if(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN AND CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN) + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + else() + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") endif() endif() +if(CMAKE_SYSROOT AND CMAKE_CXX_COMPILE_OPTIONS_SYSROOT) + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") +endif() + +foreach (INCDIR ${CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES}) + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}") +endforeach() + foreach(VAR IN LISTS VCPKG_VARS_TO_CHECK) string(APPEND OUTPUT_STRING "set(${VCPKG_VAR_PREFIX}_${VAR} \"${${VAR}}\")\n") endforeach() From b116f0057a4eda5408b3aae2dae51df348a9bb96 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Thu, 21 Jan 2021 12:07:15 +0100 Subject: [PATCH 04/52] set CC env if crosscompiling or not target is osx --- scripts/cmake/vcpkg_configure_make.cmake | 30 +++++++++++++----------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index d46815be831287..5cc95fa2bfc7de 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -702,21 +702,23 @@ function(vcpkg_configure_make) endif() # Setup environment - if (VCPKG_DETECTED_CMAKE_C_COMPILER) - set(ENV{CC} "${VCPKG_DETECTED_CMAKE_C_COMPILER}") - endif() - if (VCPKG_DETECTED_CMAKE_CXX_COMPILER) - set(ENV{CXX} "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") - endif() - if (VCPKG_DETECTED_CMAKE_LINKER) - set(ENV{LD} "${VCPKG_DETECTED_CMAKE_LINKER}") - endif() - set(_tools AR RANLIB STRIP NM OBJDUMP DLLTOOL MT STRIP AS) - foreach (_toolname ${_tools}) - if (VCPKG_DETECTED_CMAKE_${_toolname}) - set(ENV{${_toolname}} ${VCPKG_DETECTED_CMAKE_${_toolname}}) + if (NOT VCPKG_TARGET_IS_OSX OR VCPKG_DETECTED_CMAKE_CROSSCOMPILING) + if (VCPKG_DETECTED_CMAKE_C_COMPILER) + set(ENV{CC} "${VCPKG_DETECTED_CMAKE_C_COMPILER}") endif() - endforeach() + if (VCPKG_DETECTED_CMAKE_CXX_COMPILER) + set(ENV{CXX} "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") + endif() + if (VCPKG_DETECTED_CMAKE_LINKER) + set(ENV{LD} "${VCPKG_DETECTED_CMAKE_LINKER}") + endif() + set(_tools AR RANLIB STRIP NM OBJDUMP DLLTOOL MT STRIP AS) + foreach (_toolname ${_tools}) + if (VCPKG_DETECTED_CMAKE_${_toolname}) + set(ENV{${_toolname}} ${VCPKG_DETECTED_CMAKE_${_toolname}}) + endif() + endforeach() + endif() set(ENV{CPPFLAGS} "${CPPFLAGS_${_buildtype}}") set(ENV{CFLAGS} "${CFLAGS_${_buildtype}}") set(ENV{CXXFLAGS} "${CXXFLAGS_${_buildtype}}") From 09d2be8cdd24a192cf010c11a246cfe187854bb5 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Mon, 25 Jan 2021 13:35:39 +0100 Subject: [PATCH 05/52] fix build on OSX --- scripts/cmake/vcpkg_configure_make.cmake | 145 ++++++++++++----------- scripts/get_cmake_vars/CMakeLists.txt | 21 ++++ 2 files changed, 99 insertions(+), 67 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 748231f7ca6dec..520ec97174d264 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -105,8 +105,8 @@ macro(_vcpkg_determine_host_mingw out_var) unset(HOST_ARCH) endmacro() -function(_vcpkg_cmake_to_autotools_arch in_arch out_var) - unset(${out_var} PARENT_SCOPE) +function(_vcpkg_cmake_to_autotools_arch in_arch out_var) + unset(${out_var} PARENT_SCOPE) if(in_arch MATCHES "(amd|AMD)64" OR in_arch MATCHES "(x|X)86[-_]+64" OR in_arch MATCHES "x64") set(${out_var} x86_64 PARENT_SCOPE) elseif(in_arch MATCHES "(x|X)86") @@ -115,65 +115,65 @@ function(_vcpkg_cmake_to_autotools_arch in_arch out_var) set(${out_var} aarch64 PARENT_SCOPE) elseif(in_arch MATCHES "^(ARM|arm)$") set(${out_var} arm PARENT_SCOPE) - endif() -endfunction() - -function(_vcpkg_cmake_to_autotools_system in_system out_var) - if(in_system MATCHES "Linux") - set(${out_var} "linux-gnu" PARENT_SCOPE) - elseif(in_system MATCHES "Windows") - set(${out_var} "pc-mingw32" PARENT_SCOPE) - elseif(in_system MATCHES "Darwin") - set(${out_var} "apple-macos" PARENT_SCOPE) - elseif(in_system MATCHES "Android") - set(${out_var} "linux-android" PARENT_SCOPE) - endif() -endfunction() - + endif() +endfunction() + +function(_vcpkg_cmake_to_autotools_system in_system out_var) + if(in_system MATCHES "Linux") + set(${out_var} "linux-gnu" PARENT_SCOPE) + elseif(in_system MATCHES "Windows") + set(${out_var} "pc-mingw32" PARENT_SCOPE) + elseif(in_system MATCHES "Darwin") + set(${out_var} "apple-darwin" PARENT_SCOPE) + elseif(in_system MATCHES "Android") + set(${out_var} "linux-android" PARENT_SCOPE) + endif() +endfunction() + macro(_vcpkg_determine_autotools_host_cpu out_var) - if(DEFINED VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR) - set(_HOST_ARCH ${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}) + if(DEFINED VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR) + set(_HOST_ARCH ${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}) elseif(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(_HOST_ARCH $ENV{PROCESSOR_ARCHITEW6432}) else() set(_HOST_ARCH $ENV{PROCESSOR_ARCHITECTURE}) endif() - _vcpkg_cmake_to_autotools_arch(${_HOST_ARCH} ${out_var}) - if (NOT DEFINED ${out_var}) + _vcpkg_cmake_to_autotools_arch(${_HOST_ARCH} ${out_var}) + if (NOT DEFINED ${out_var}) message(FATAL_ERROR "Unsupported host architecture ${_HOST_ARCH} in _vcpkg_determine_autotools_host_cpu!" ) endif() unset(_HOST_ARCH) endmacro() - -macro(_vcpkg_determine_autotools_host_os out_var) - if(DEFINED VCPKG_DETECTED_CMAKE_HOST_SYSTEM_NAME) - set(_HOST_SYSTEM ${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_NAME}) - elseif(VCPKG_TARGET_IS_WINDOWS) - set(_HOST_SYSTEM "Windows") - elseif(VCPKG_TARGET_IS_LINUX) - set(_HOST_SYSTEM "Linux") - elseif(VCPKG_TARGET_IS_OSX) - set(_HOST_SYSTEM "Darwin") - elseif(VCPKG_TARGET_IS_ANDROID) - set(_HOST_SYSTEM "Android") - endif() - _vcpkg_cmake_to_autotools_system(${_HOST_SYSTEM} ${out_var}) - if (NOT DEFINED ${out_var}) + +macro(_vcpkg_determine_autotools_host_os out_var) + if(DEFINED VCPKG_DETECTED_CMAKE_HOST_SYSTEM_NAME) + set(_HOST_SYSTEM ${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_NAME}) + elseif(VCPKG_TARGET_IS_WINDOWS) + set(_HOST_SYSTEM "Windows") + elseif(VCPKG_TARGET_IS_LINUX) + set(_HOST_SYSTEM "Linux") + elseif(VCPKG_TARGET_IS_OSX) + set(_HOST_SYSTEM "Darwin") + elseif(VCPKG_TARGET_IS_ANDROID) + set(_HOST_SYSTEM "Android") + endif() + _vcpkg_cmake_to_autotools_system(${_HOST_SYSTEM} ${out_var}) + if (NOT DEFINED ${out_var}) message(FATAL_ERROR "Unsupported host os ${_HOST_SYSTEM} in _vcpkg_determine_autotools_host_os!" ) - endif() - unset(_HOST_SYSTEM) -endmacro() + endif() + unset(_HOST_SYSTEM) +endmacro() macro(_vcpkg_determine_autotools_target_cpu out_var) - _vcpkg_cmake_to_autotools_arch(${VCPKG_TARGET_ARCHITECTURE} ${out_var}) - if(NOT DEFINED ${out_var}) + _vcpkg_cmake_to_autotools_arch(${VCPKG_TARGET_ARCHITECTURE} ${out_var}) + if(NOT DEFINED ${out_var}) message(FATAL_ERROR "Unsupported VCPKG_TARGET_ARCHITECTURE architecture ${VCPKG_TARGET_ARCHITECTURE} in _vcpkg_determine_autotools_target_cpu!" ) endif() endmacro() macro(_vcpkg_determine_autotools_target_os out_var) - _vcpkg_cmake_to_autotools_system(${VCPKG_DETECTED_CMAKE_SYSTEM_NAME} ${out_var}) - if(NOT DEFINED ${out_var}) + _vcpkg_cmake_to_autotools_system(${VCPKG_DETECTED_CMAKE_SYSTEM_NAME} ${out_var}) + if(NOT DEFINED ${out_var}) message(FATAL_ERROR "Unsupported target os ${VCPKG_DETECTED_CMAKE_SYSTEM_NAME} in _vcpkg_determine_autotools_target_os!") endif() endmacro() @@ -235,9 +235,17 @@ macro(_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags _SUFFIX) # just ignore them. string(REGEX REPLACE "((-|/)RTC[^ ]+)" "-Xcompiler \\1" CFLAGS_${_SUFFIX} "${CFLAGS_${_SUFFIX}}") string(REGEX REPLACE "((-|/)RTC[^ ]+)" "-Xcompiler \\1" CXXFLAGS_${_SUFFIX} "${CXXFLAGS_${_SUFFIX}}") + + if (VCPKG_DETECTED_CMAKE_OSX_SYSROOT) + string(APPEND CPPFLAGS_${_SUFFIX} " -isysroot ${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}") + endif() + string(STRIP "${CPPFLAGS_${_SUFFIX}}" CPPFLAGS_${_SUFFIX}) string(STRIP "${CFLAGS_${_SUFFIX}}" CFLAGS_${_SUFFIX}) string(STRIP "${CXXFLAGS_${_SUFFIX}}" CXXFLAGS_${_SUFFIX}) + message(STATUS "CPPFLAGS_${_SUFFIX}: ${CPPFLAGS_${_SUFFIX}}") + message(STATUS "CFLAGS_${_SUFFIX}: ${CFLAGS_${_SUFFIX}}") + message(STATUS "CXXFLAGS_${_SUFFIX}: ${CXXFLAGS_${_SUFFIX}}") debug_message("CPPFLAGS_${_SUFFIX}: ${CPPFLAGS_${_SUFFIX}}") debug_message("CFLAGS_${_SUFFIX}: ${CFLAGS_${_SUFFIX}}") debug_message("CXXFLAGS_${_SUFFIX}: ${CXXFLAGS_${_SUFFIX}}") @@ -442,9 +450,9 @@ function(vcpkg_configure_make) list(APPEND _csc_OPTIONS lt_cv_deplibs_check_method=pass_all) endif() else() - if (NOT _csc_BUILD_TRIPLET) - _vcpkg_determine_autotools_host_cpu(HOST_ARCH) - _vcpkg_determine_autotools_host_os(HOST_OS) + if (NOT _csc_BUILD_TRIPLET) + _vcpkg_determine_autotools_host_cpu(HOST_ARCH) + _vcpkg_determine_autotools_host_os(HOST_OS) _vcpkg_determine_autotools_target_cpu(TARGET_ARCH) _vcpkg_determine_autotools_target_os(TARGET_OS) # --build: the machine you are building on usualy guessed ok @@ -452,10 +460,10 @@ function(vcpkg_configure_make) # --target: the machine that CC will produce binaries for # https://stackoverflow.com/questions/21990021/how-to-determine-host-value-for-configure-when-using-cross-compiler # Only for ports using autotools so we can assume that they follow the common conventions for build/target/host - list(APPEND _csc_BUILD_TRIPLET "--host=${TARGET_ARCH}-${TARGET_OS}" "--build=${HOST_ARCH}-${HOST_OS}") + list(APPEND _csc_BUILD_TRIPLET "--host=${TARGET_ARCH}-${TARGET_OS}" "--build=${HOST_ARCH}-${HOST_OS}") debug_message("Using make triplet: ${_csc_BUILD_TRIPLET}") - endif() - + endif() + string(REPLACE " " "\ " _VCPKG_PREFIX ${CURRENT_INSTALLED_DIR}) string(REPLACE " " "\ " _VCPKG_INSTALLED ${CURRENT_INSTALLED_DIR}) set(EXTRA_QUOTES) @@ -707,23 +715,26 @@ function(vcpkg_configure_make) endif() # Setup environment - if (NOT VCPKG_TARGET_IS_OSX OR VCPKG_DETECTED_CMAKE_CROSSCOMPILING) - if (VCPKG_DETECTED_CMAKE_C_COMPILER) - set(ENV{CC} "${VCPKG_DETECTED_CMAKE_C_COMPILER}") - endif() - if (VCPKG_DETECTED_CMAKE_CXX_COMPILER) - set(ENV{CXX} "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") - endif() - if (VCPKG_DETECTED_CMAKE_LINKER) - set(ENV{LD} "${VCPKG_DETECTED_CMAKE_LINKER}") + if (VCPKG_DETECTED_CMAKE_C_COMPILER) + set(ENV{CC} "${VCPKG_DETECTED_CMAKE_C_COMPILER}") + endif() + if (VCPKG_DETECTED_CMAKE_CXX_COMPILER) + set(ENV{CXX} "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") + endif() + if (VCPKG_DETECTED_CMAKE_LINKER) + set(ENV{LD} "${VCPKG_DETECTED_CMAKE_LINKER}") + endif() + set(_tools AR RANLIB STRIP NM OBJDUMP DLLTOOL MT STRIP AS) + foreach (_toolname ${_tools}) + if (VCPKG_DETECTED_CMAKE_${_toolname}) + set(ENV{${_toolname}} ${VCPKG_DETECTED_CMAKE_${_toolname}}) endif() - set(_tools AR RANLIB STRIP NM OBJDUMP DLLTOOL MT STRIP AS) - foreach (_toolname ${_tools}) - if (VCPKG_DETECTED_CMAKE_${_toolname}) - set(ENV{${_toolname}} ${VCPKG_DETECTED_CMAKE_${_toolname}}) - endif() - endforeach() - endif() + endforeach() + + if(DEFINED VCPKG_DETECTED_CMAKE_OSX_DEPLOYMENT_TARGET) + set(ENV{MACOSX_DEPLOYMENT_TARGET} "${VCPKG_DETECTED_CMAKE_OSX_DEPLOYMENT_TARGET}") + endif() + set(ENV{CPPFLAGS} "${CPPFLAGS_${_buildtype}}") set(ENV{CFLAGS} "${CFLAGS_${_buildtype}}") set(ENV{CXXFLAGS} "${CXXFLAGS_${_buildtype}}") @@ -743,8 +754,8 @@ function(vcpkg_configure_make) if (CMAKE_HOST_WIN32) set(command ${base_cmd} -c "${CONFIGURE_ENV} ./${RELATIVE_BUILD_PATH}/configure ${_csc_BUILD_TRIPLET} ${_csc_OPTIONS} ${_csc_OPTIONS_${_buildtype}}") else() - find_program(BASH bash REQUIRED) - set(command "${BASH}" "./${RELATIVE_BUILD_PATH}/configure" ${_csc_BUILD_TRIPLET} ${_csc_OPTIONS} ${_csc_OPTIONS_${_buildtype}}) + find_program(BASH bash REQUIRED) + set(command "${BASH}" "./${RELATIVE_BUILD_PATH}/configure" ${_csc_BUILD_TRIPLET} ${_csc_OPTIONS} ${_csc_OPTIONS_${_buildtype}}) endif() if(_csc_ADD_BIN_TO_PATH) set(PATH_BACKUP $ENV{PATH}) diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index 4ad6a8a1f1bf93..28cde780f1d641 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -103,6 +103,27 @@ if(CMAKE_SYSROOT AND CMAKE_CXX_COMPILE_OPTIONS_SYSROOT) string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") endif() +if(CMAKE_OSX_SYSROOT) + string(APPEND CMAKE_CXX_FLAGS " -isysroot ${CMAKE_OSX_SYSROOT}") + string(APPEND CMAKE_C_FLAGS " -isysroot ${CMAKE_OSX_SYSROOT}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " -isysroot ${CMAKE_OSX_SYSROOT}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " -isysroot ${CMAKE_OSX_SYSROOT}") +endif() + +if(CMAKE_OSX_ARCHITECTURES) + string(APPEND CMAKE_CXX_FLAGS " -arch ${CMAKE_OSX_ARCHITECTURES}") + string(APPEND CMAKE_C_FLAGS " -arch ${CMAKE_OSX_ARCHITECTURES}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " -arch ${CMAKE_OSX_ARCHITECTURES}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " -arch ${CMAKE_OSX_ARCHITECTURES}") +endif() + +if(CMAKE_OSX_DEPLOYMENT_TARGET) + string(APPEND CMAKE_CXX_FLAGS " -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") + string(APPEND CMAKE_C_FLAGS " -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") +endif() + foreach (INCDIR ${CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES}) string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}") string(APPEND CMAKE_C_FLAGS " ${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}") From f502305cdc08b195c73e6178e3f8f40f14ebaa55 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 3 Mar 2021 17:12:36 +0100 Subject: [PATCH 06/52] @jwtowner changes --- scripts/get_cmake_vars/CMakeLists.txt | 131 +++++++++++++++++--------- 1 file changed, 89 insertions(+), 42 deletions(-) diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index 4ad6a8a1f1bf93..403e010080d6b3 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -14,7 +14,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin") CMAKE_OSX_SYSROOT) endif() # Programs to check -set(PROGLIST AR RANLIB STRIP NM OBJDUMP DLLTOOL MT LINKER AS) +set(PROGLIST AR RANLIB STRIP NM OBJDUMP DLLTOOL MT LINKER) foreach(prog IN LISTS PROGLIST) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${prog}) endforeach() @@ -48,6 +48,12 @@ foreach(flag IN LISTS FLAGS) endforeach() list(REMOVE_DUPLICATES VCPKG_DEFAULT_FLAGS_TO_CHECK) +#Language-specific flags. +foreach(_lang IN LISTS VCPKG_LANGUAGES) + list(APPEND VCPKG_LANG_FLAGS CMAKE_${_lang}_FLAGS) +endforeach() +list(REMOVE_DUPLICATES VCPKG_LANG_FLAGS) + # TODO if ever necessary: Properties to check set(VCPKG_VAR_PREFIX "VCPKG_DETECTED" CACHE STRING "Variable prefix to use for detected flags") @@ -68,44 +74,71 @@ endif() project(get_cmake_vars LANGUAGES ${VCPKG_LANGUAGES}) -if(CMAKE_CXX_COMPILER_TARGET AND CMAKE_CXX_COMPILE_OPTIONS_TARGET) - if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") - string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") - string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") - string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") - else() - string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") - string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") - string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") - string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") +if(APPLE) + + foreach(_arch ${CMAKE_OSX_ARCHITECTURES}) + string(APPEND CMAKE_CXX_FLAGS " -arch ${_arch}") + string(APPEND CMAKE_C_FLAGS " -arch ${_arch}") + endforeach() + + if(CMAKE_OSX_DEPLOYMENT_TARGET) + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_OSX_DEPLOYMENT_TARGET_FLAG}${CMAKE_OSX_DEPLOYMENT_TARGET}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG}${CMAKE_OSX_DEPLOYMENT_TARGET}") endif() -endif() - -if(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN AND CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN) - if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - else() - string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") - string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + + if(CMAKE_OSX_SYSROOT) + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_SYSROOT_FLAG} ${CMAKE_OSX_SYSROOT}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_C_SYSROOT_FLAG} ${CMAKE_OSX_SYSROOT}") endif() + +else() + + if(CMAKE_CXX_COMPILER_TARGET AND CMAKE_CXX_COMPILE_OPTIONS_TARGET) + if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET}${CMAKE_CXX_COMPILER_TARGET}") + else() + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") + endif() + endif() + + if(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN AND CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN) + if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + else() + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") + endif() + endif() + + if(CMAKE_SYSROOT AND CMAKE_CXX_COMPILE_OPTIONS_SYSROOT) + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") + endif() + endif() - -if(CMAKE_SYSROOT AND CMAKE_CXX_COMPILE_OPTIONS_SYSROOT) - string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") - string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") - string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") - string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") -endif() - -foreach (INCDIR ${CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES}) - string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}") - string(APPEND CMAKE_C_FLAGS " ${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}") + +foreach(_lang IN ITEMS C CXX) + foreach(INCDIR ${CMAKE_${_lang}_IMPLICIT_INCLUDE_DIRECTORIES}) + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_INCLUDE_SYSTEM_FLAG_C}${INCDIR}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_INCLUDE_SYSTEM_FLAG_C}${INCDIR}") + endforeach() + foreach(INCDIR ${CMAKE_${_lang}_STANDARD_INCLUDE_DIRECTORIES}) + string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}") + string(APPEND CMAKE_C_FLAGS " ${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}") + endforeach() endforeach() foreach(VAR IN LISTS VCPKG_VARS_TO_CHECK) @@ -121,17 +154,31 @@ foreach(_env IN LISTS VCPKG_ENV_VARS_TO_CHECK) endif() endforeach() +macro(_vcpkg_adjust_flags flag_var) + if(MSVC) # Transform MSVC /flags to -flags due to bash scripts intepreting /flag as a path. + string(REGEX REPLACE "(^| )/" "\\1-" ${flag_var} "${${flag_var}}") + endif() + if(CMAKE_SYSTEM_NAME MATCHES "Darwin") + if("${flag_var}" IN_LIST VCPKG_LANG_FLAGS) + # macOS - append arch and isysroot if cross-compiling + if(NOT "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "${CMAKE_HOST_SYSTEM_PROCESSOR}") + + foreach(arch IN LISTS CMAKE_OSX_ARCHITECTURES) + string(APPEND ${flag_var} " -arch ${arch}") + endforeach() + string(APPEND ${flag_var} " -isysroot ${CMAKE_OSX_SYSROOT}") + endif() + endif() + endif() +endmacro() + foreach(flag IN LISTS VCPKG_FLAGS_TO_CHECK) string(STRIP "${${flag}}" ${flag}) # Strip leading and trailing whitespaces - if(MSVC) # Transform MSVC /flags to -flags due to bash scripts intepreting /flag as a path. - string(REGEX REPLACE "(^| )/" "\\1-" ${flag} "${${flag}}") - endif() + _vcpkg_adjust_flags(${flag}) string(APPEND OUTPUT_STRING "set(${VCPKG_VAR_PREFIX}_RAW_${flag} \" ${${flag}}\")\n") foreach(config IN LISTS VCPKG_CONFIGS) string(STRIP "${${flag}_${config}}" ${flag}_${config}) - if(MSVC) - string(REGEX REPLACE "(^| )/" "\\1-" ${flag}_${config} "${${flag}_${config}}") - endif() + _vcpkg_adjust_flags(${flag}_${config}) string(APPEND OUTPUT_STRING "set(${VCPKG_VAR_PREFIX}_RAW_${flag}_${config} \"${CMAKE_${flag}_FLAGS_${config}}\")\n") set(COMBINED_${flag}_${config} "${${flag}} ${${flag}_${config}}") string(STRIP "${COMBINED_${flag}_${config}}" COMBINED_${flag}_${config}) From c7669f232301ca44ad04c8a9b9d74084131631a9 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 3 Mar 2021 17:20:03 +0100 Subject: [PATCH 07/52] merge problem --- scripts/get_cmake_vars/CMakeLists.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index c3c36b167a91fe..00ef49eed7acc1 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -169,11 +169,6 @@ if(CMAKE_OSX_DEPLOYMENT_TARGET) string(APPEND CMAKE_SHARED_LINKER_FLAGS " -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") endif() -foreach (INCDIR ${CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES}) - string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}") - string(APPEND CMAKE_C_FLAGS " ${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}") -endforeach() - foreach(VAR IN LISTS VCPKG_VARS_TO_CHECK) string(APPEND OUTPUT_STRING "set(${VCPKG_VAR_PREFIX}_${VAR} \"${${VAR}}\")\n") endforeach() From f6a39e9695bbb044d6a6e6d069c90692faff585e Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Thu, 4 Mar 2021 13:24:24 +0100 Subject: [PATCH 08/52] remove non debug messages --- scripts/cmake/vcpkg_configure_make.cmake | 3 --- 1 file changed, 3 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index c2984062dff9b5..b38bd63f184e90 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -263,9 +263,6 @@ macro(_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags _SUFFIX) string(STRIP "${CPPFLAGS_${_SUFFIX}}" CPPFLAGS_${_SUFFIX}) string(STRIP "${CFLAGS_${_SUFFIX}}" CFLAGS_${_SUFFIX}) string(STRIP "${CXXFLAGS_${_SUFFIX}}" CXXFLAGS_${_SUFFIX}) - message(STATUS "CPPFLAGS_${_SUFFIX}: ${CPPFLAGS_${_SUFFIX}}") - message(STATUS "CFLAGS_${_SUFFIX}: ${CFLAGS_${_SUFFIX}}") - message(STATUS "CXXFLAGS_${_SUFFIX}: ${CXXFLAGS_${_SUFFIX}}") debug_message("CPPFLAGS_${_SUFFIX}: ${CPPFLAGS_${_SUFFIX}}") debug_message("CFLAGS_${_SUFFIX}: ${CFLAGS_${_SUFFIX}}") debug_message("CXXFLAGS_${_SUFFIX}: ${CXXFLAGS_${_SUFFIX}}") From d200f1dd6fc1d089c7a9004fd8e7d414c3549b94 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Thu, 4 Mar 2021 13:24:45 +0100 Subject: [PATCH 09/52] setup include directories for language --- scripts/get_cmake_vars/CMakeLists.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index 00ef49eed7acc1..03fdef90d74dd9 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -132,12 +132,10 @@ endif() foreach(_lang IN ITEMS C CXX) foreach(INCDIR ${CMAKE_${_lang}_IMPLICIT_INCLUDE_DIRECTORIES}) - string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_INCLUDE_SYSTEM_FLAG_C}${INCDIR}") - string(APPEND CMAKE_C_FLAGS " ${CMAKE_INCLUDE_SYSTEM_FLAG_C}${INCDIR}") + string(APPEND CMAKE_${_lang}_FLAGS " ${CMAKE_INCLUDE_SYSTEM_FLAG_${_lang}}${INCDIR}") endforeach() foreach(INCDIR ${CMAKE_${_lang}_STANDARD_INCLUDE_DIRECTORIES}) - string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}") - string(APPEND CMAKE_C_FLAGS " ${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}") + string(APPEND CMAKE_${_lang}_FLAGS " ${CMAKE_INCLUDE_FLAG_${_lang}}${CMAKE_INCLUDE_FLAG_${_lang}_SEP}${INCDIR}") endforeach() endforeach() From d1cd3d3b750ee7e00cf7cc5d74bb1b14299b3428 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Thu, 4 Mar 2021 17:36:30 +0100 Subject: [PATCH 10/52] add CFLAGS to tools build command --- ports/fontconfig/CONTROL | 4 ++-- ports/fontconfig/build2.patch | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/fontconfig/CONTROL b/ports/fontconfig/CONTROL index 4b455e985c4155..330c801e0aee53 100644 --- a/ports/fontconfig/CONTROL +++ b/ports/fontconfig/CONTROL @@ -1,6 +1,6 @@ Source: fontconfig Version: 2.13.1 -Port-Version: 3 +Port-Version: 4 Homepage: https://www.freedesktop.org/software/fontconfig/front.html Description: Library for configuring and customizing font access. -Build-Depends: freetype, expat, libiconv, dirent, pthread, json-c, dirent, libuuid (!windows&!osx), gettext \ No newline at end of file +Build-Depends: freetype, expat, libiconv, dirent, pthread, json-c, dirent, libuuid (!windows&!osx), gettext diff --git a/ports/fontconfig/build2.patch b/ports/fontconfig/build2.patch index 13bacf15d41883..2b2780abb00cee 100644 --- a/ports/fontconfig/build2.patch +++ b/ports/fontconfig/build2.patch @@ -7,7 +7,7 @@ index f0fa0ec50..24e5afd16 100644 $(TOOL): $(TSRC) $(ALIAS_FILES) - $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS) -+ $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS) $(LIBINTL) ++ $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS) $(LIBINTL) $(CFLAGS) $(TARG): $(TMPL) $(TSRC) $(DEPS) $(AM_V_GEN) $(MAKE) $(TOOL) && \ From bf1d0b2f72627f5c7bdb590dbb29f12e9ddcc869 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Thu, 4 Mar 2021 17:36:47 +0100 Subject: [PATCH 11/52] merge fixes --- scripts/get_cmake_vars/CMakeLists.txt | 28 --------------------------- 1 file changed, 28 deletions(-) diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index 03fdef90d74dd9..f4cc8dbfd4e41c 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -139,34 +139,6 @@ foreach(_lang IN ITEMS C CXX) endforeach() endforeach() -if(CMAKE_SYSROOT AND CMAKE_CXX_COMPILE_OPTIONS_SYSROOT) - string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") - string(APPEND CMAKE_C_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") - string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") - string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") -endif() - -if(CMAKE_OSX_SYSROOT) - string(APPEND CMAKE_CXX_FLAGS " -isysroot ${CMAKE_OSX_SYSROOT}") - string(APPEND CMAKE_C_FLAGS " -isysroot ${CMAKE_OSX_SYSROOT}") - string(APPEND CMAKE_STATIC_LINKER_FLAGS " -isysroot ${CMAKE_OSX_SYSROOT}") - string(APPEND CMAKE_SHARED_LINKER_FLAGS " -isysroot ${CMAKE_OSX_SYSROOT}") -endif() - -if(CMAKE_OSX_ARCHITECTURES) - string(APPEND CMAKE_CXX_FLAGS " -arch ${CMAKE_OSX_ARCHITECTURES}") - string(APPEND CMAKE_C_FLAGS " -arch ${CMAKE_OSX_ARCHITECTURES}") - string(APPEND CMAKE_STATIC_LINKER_FLAGS " -arch ${CMAKE_OSX_ARCHITECTURES}") - string(APPEND CMAKE_SHARED_LINKER_FLAGS " -arch ${CMAKE_OSX_ARCHITECTURES}") -endif() - -if(CMAKE_OSX_DEPLOYMENT_TARGET) - string(APPEND CMAKE_CXX_FLAGS " -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") - string(APPEND CMAKE_C_FLAGS " -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") - string(APPEND CMAKE_STATIC_LINKER_FLAGS " -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") - string(APPEND CMAKE_SHARED_LINKER_FLAGS " -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") -endif() - foreach(VAR IN LISTS VCPKG_VARS_TO_CHECK) string(APPEND OUTPUT_STRING "set(${VCPKG_VAR_PREFIX}_${VAR} \"${${VAR}}\")\n") endforeach() From 4884287511ce129915871eb8ee1d833dfd92eb93 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Thu, 4 Mar 2021 17:37:40 +0100 Subject: [PATCH 12/52] version for fontconfig --- versions/baseline.json | 2 +- versions/f-/fontconfig.json | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/versions/baseline.json b/versions/baseline.json index 89747c78d5b34c..81b81e4ad847b2 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2006,7 +2006,7 @@ }, "fontconfig": { "baseline": "2.13.1", - "port-version": 3 + "port-version": 4 }, "foonathan-memory": { "baseline": "2019-07-21-1", diff --git a/versions/f-/fontconfig.json b/versions/f-/fontconfig.json index 97cf49e3ddec07..712d22b21c9526 100644 --- a/versions/f-/fontconfig.json +++ b/versions/f-/fontconfig.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "dc6701778ddb06dc2f74ce2685912664d15ffa99", + "version-string": "2.13.1", + "port-version": 4 + }, { "git-tree": "e4e2d26ab9639fb737206592a04791d998461fa3", "version-string": "2.13.1", From f3e2d072543fd7f0de249fee8bf91bd2c308bfe7 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 9 Mar 2021 18:10:46 +0100 Subject: [PATCH 13/52] fix ports builds --- ports/libgpg-error/add_cflags_to_tools.patch | 30 ++ ports/libgpg-error/portfile.cmake | 2 + ports/libspatialite/CONTROL | 3 +- ports/libspatialite/portfile.cmake | 4 +- ports/openmpi/CONTROL | 3 +- ports/openmpi/keep_isystem.patch | 283 +++++++++++++++++++ ports/openmpi/portfile.cmake | 8 +- scripts/cmake/vcpkg_build_make.cmake | 2 +- scripts/cmake/vcpkg_configure_make.cmake | 13 +- scripts/get_cmake_vars/CMakeLists.txt | 8 +- 10 files changed, 344 insertions(+), 12 deletions(-) create mode 100644 ports/libgpg-error/add_cflags_to_tools.patch create mode 100644 ports/openmpi/keep_isystem.patch diff --git a/ports/libgpg-error/add_cflags_to_tools.patch b/ports/libgpg-error/add_cflags_to_tools.patch new file mode 100644 index 00000000000000..53c86bef8b9271 --- /dev/null +++ b/ports/libgpg-error/add_cflags_to_tools.patch @@ -0,0 +1,30 @@ +diff --git a/src/Makefile.am b/src/Makefile.am +index fc3acc3..9a86251 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -279,14 +279,14 @@ gpg-error.def: Makefile gpg-error.def.in + # It is correct to use $(CC_FOR_BUILD) here. We want to run the + # program at build time. + mkerrcodes$(EXEEXT_FOR_BUILD): mkerrcodes.c mkerrcodes.h Makefile +- $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \ ++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(CFLAGS) $(LDFLAGS_FOR_BUILD) \ + $(CPPFLAGS_FOR_BUILD) -I. -I$(srcdir) -o $@ $(srcdir)/mkerrcodes.c + + if HAVE_W32CE_SYSTEM + # It is correct to use $(CC_FOR_BUILD) here. We want to run the + # program at build time. + mkw32errmap$(EXEEXT_FOR_BUILD): mkw32errmap.c mkw32errmap.tab.h Makefile +- $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \ ++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(CFLAGS) $(LDFLAGS_FOR_BUILD) \ + $(CPPFLAGS_FOR_BUILD) -I. -I$(srcdir) -o $@ $(srcdir)/mkw32errmap.c + endif + +@@ -300,7 +300,7 @@ errnos-sym.h: Makefile mkstrtable.awk errnos.in + + + mkheader$(EXEEXT_FOR_BUILD): mkheader.c Makefile +- $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \ ++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(CFLAGS) $(LDFLAGS_FOR_BUILD) \ + $(CPPFLAGS_FOR_BUILD) -g -I. -I$(srcdir) -o $@ $(srcdir)/mkheader.c + + parts_of_gpg_error_h = \ diff --git a/ports/libgpg-error/portfile.cmake b/ports/libgpg-error/portfile.cmake index a6dc3e8439a8b5..718981a763cc9b 100644 --- a/ports/libgpg-error/portfile.cmake +++ b/ports/libgpg-error/portfile.cmake @@ -6,6 +6,8 @@ vcpkg_from_github( REF libgpg-error-1.39 SHA512 c8ca3fc9f1bec90a84214c8fed6073f5a0f6f6880c166a8737a24e0eee841ed5f0f3c94028b50b76535cb2e06f0362b19638e429b4cdc399487d6001b977bbbe HEAD_REF master + PATCHES + add_cflags_to_tools.patch ) vcpkg_configure_make( diff --git a/ports/libspatialite/CONTROL b/ports/libspatialite/CONTROL index 0fbb05f8bc813c..6ab4b3f4fd97b4 100644 --- a/ports/libspatialite/CONTROL +++ b/ports/libspatialite/CONTROL @@ -1,5 +1,6 @@ Source: libspatialite Version: 5.0.0 +Port-Version: 1 Homepage: https://www.gaia-gis.it/gaia-sins/libspatialite-sources Description: SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities. -Build-Depends: libxml2, sqlite3, geos, proj4, zlib, freexl, libiconv, librttopo \ No newline at end of file +Build-Depends: libxml2, sqlite3, geos, proj4, zlib, freexl, libiconv, librttopo diff --git a/ports/libspatialite/portfile.cmake b/ports/libspatialite/portfile.cmake index fff7d69c7f007f..e97b79c3d78cce 100644 --- a/ports/libspatialite/portfile.cmake +++ b/ports/libspatialite/portfile.cmake @@ -104,8 +104,8 @@ elseif (VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX) # Build in UNIX vcpkg_configure_make( SOURCE_PATH ${SOURCE_PATH} AUTOCONFIG + FORCE_APPEND_CURRENT_INCLUDE_DIR OPTIONS - "CFLAGS=-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" "LIBS=-lpthread -ldl -lm -l${STDLIB}" "LIBXML2_CFLAGS=-I\"${CURRENT_INSTALLED_DIR}/include\"" "--enable-rttopo" @@ -124,4 +124,4 @@ elseif (VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX) # Build in UNIX endif() # Handle copyright -file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/openmpi/CONTROL b/ports/openmpi/CONTROL index b9c4df053c68d3..9eaf0f3f3bf9e5 100644 --- a/ports/openmpi/CONTROL +++ b/ports/openmpi/CONTROL @@ -1,6 +1,5 @@ Source: openmpi -Version: 4.0.3 -Port-Version: 3 +Version: 4.1.0 Homepage: https://www.open-mpi.org/ Description: The Open MPI Project is an open source Message Passing Interface implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI is therefore able to combine the expertise, technologies, and resources from all across the High Performance Computing community in order to build the best MPI library available. Open MPI offers advantages for system and software vendors, application developers and computer science researchers. Supports: !(windows|uwp) diff --git a/ports/openmpi/keep_isystem.patch b/ports/openmpi/keep_isystem.patch new file mode 100644 index 00000000000000..9352e4ad129cf4 --- /dev/null +++ b/ports/openmpi/keep_isystem.patch @@ -0,0 +1,283 @@ +diff --git a/configure b/configure +index b2451c4..a7fb4da 100755 +--- a/configure ++++ b/configure +@@ -19562,6 +19562,10 @@ $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -19653,6 +19657,10 @@ $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -19759,6 +19767,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -19946,6 +19958,10 @@ $as_echo "$opal_cv_cc_wno_long_double" >&6; } + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -20127,6 +20143,10 @@ $as_echo "$opal_cv_cc_fno_strict_aliasing" >&6; } + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -20267,6 +20287,10 @@ $as_echo "$opal_cv_cc_restrict_cflags" >&6; } + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -26120,6 +26144,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -26297,6 +26325,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -26441,6 +26473,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -27799,6 +27835,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -27973,6 +28013,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -28117,6 +28161,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -44127,6 +44175,10 @@ fi + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -60612,6 +60664,10 @@ $as_echo_n "checking if intel compiler _Quad == REAL*16... " >&6; } + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +@@ -60842,6 +60898,10 @@ $as_echo_n "checking if gnu compiler __float128 == REAL*16... " >&6; } + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; ++ -isystem) ++ opal_found=0 ++ opal_i=`expr $opal_count + 1` ++ ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` +diff --git a/opal/mca/pmix/pmix3x/pmix/configure b/opal/mca/pmix/pmix3x/pmix/configure +index 0326a68..07df146 100755 +--- a/opal/mca/pmix/pmix3x/pmix/configure ++++ b/opal/mca/pmix/pmix3x/pmix/configure +@@ -19386,6 +19386,10 @@ $as_echo "$pmix_cv_cc_coverage" >&6; } + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; ++ -isystem) ++ pmix_found=0 ++ pmix_i=`expr $pmix_count + 1` ++ ;; + --param) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` +@@ -19477,6 +19481,10 @@ $as_echo "$pmix_cv_cc_coverage" >&6; } + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; ++ -isystem) ++ pmix_found=0 ++ pmix_i=`expr $pmix_count + 1` ++ ;; + --param) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` +@@ -19583,6 +19591,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; ++ -isystem) ++ pmix_found=0 ++ pmix_i=`expr $pmix_count + 1` ++ ;; + --param) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` +@@ -19770,6 +19782,10 @@ $as_echo "$pmix_cv_cc_wno_long_double" >&6; } + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; ++ -isystem) ++ pmix_found=0 ++ pmix_i=`expr $pmix_count + 1` ++ ;; + --param) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` +@@ -19951,6 +19967,10 @@ $as_echo "$pmix_cv_cc_fno_strict_aliasing" >&6; } + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; ++ -isystem) ++ pmix_found=0 ++ pmix_i=`expr $pmix_count + 1` ++ ;; + --param) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` +@@ -20091,6 +20111,10 @@ $as_echo "$pmix_cv_cc_restrict_cflags" >&6; } + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; ++ -isystem) ++ pmix_found=0 ++ pmix_i=`expr $pmix_count + 1` ++ ;; + --param) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` +@@ -53914,6 +53938,10 @@ fi + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; ++ -isystem) ++ pmix_found=0 ++ pmix_i=`expr $pmix_count + 1` ++ ;; + --param) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` +@@ -54005,6 +54033,10 @@ fi + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; ++ -isystem) ++ pmix_found=0 ++ pmix_i=`expr $pmix_count + 1` ++ ;; + --param) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` +@@ -54096,6 +54128,10 @@ fi + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; ++ -isystem) ++ pmix_found=0 ++ pmix_i=`expr $pmix_count + 1` ++ ;; + --param) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` +@@ -54187,6 +54223,10 @@ fi + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; ++ -isystem) ++ pmix_found=0 ++ pmix_i=`expr $pmix_count + 1` ++ ;; + --param) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` diff --git a/ports/openmpi/portfile.cmake b/ports/openmpi/portfile.cmake index a51f55d0d4cd34..3b926e6d1b594d 100644 --- a/ports/openmpi/portfile.cmake +++ b/ports/openmpi/portfile.cmake @@ -2,18 +2,20 @@ vcpkg_fail_port_install(ON_TARGET "Windows" "UWP") vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) -set(OpenMPI_FULL_VERSION "4.0.3") -set(OpenMPI_SHORT_VERSION "4.0") +set(OpenMPI_FULL_VERSION "4.1.0") +set(OpenMPI_SHORT_VERSION "4.1") vcpkg_download_distfile(ARCHIVE URLS "https://download.open-mpi.org/release/open-mpi/v${OpenMPI_SHORT_VERSION}/openmpi-${OpenMPI_FULL_VERSION}.tar.gz" FILENAME "openmpi-${OpenMPI_FULL_VERSION}.tar.gz" - SHA512 23a9dfb7f4a63589b82f4e073a825550d3bc7e6b34770898325323ef4a28ed90b47576acaae6be427eb2007b37a88e18c1ea44d929b8ca083fe576ef1111fef6 + SHA512 1f8117b11c5279d34194b4f5652b0223cf1258a4ac0efd40bab78f31f203068e027235a92a87e546b1b35c5b369bc90788b109c05a7068c75533a03649410e99 ) vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE ${ARCHIVE} + PATCHES + keep_isystem.patch ) vcpkg_find_acquire_program(PERL) diff --git a/scripts/cmake/vcpkg_build_make.cmake b/scripts/cmake/vcpkg_build_make.cmake index 5ebfe21f70a887..e625c9d3de2d76 100755 --- a/scripts/cmake/vcpkg_build_make.cmake +++ b/scripts/cmake/vcpkg_build_make.cmake @@ -187,7 +187,7 @@ function(vcpkg_build_make) if (_bc_DISABLE_PARALLEL) vcpkg_execute_build_process( - COMMAND ${MAKE_BASH} ${MAKE_CMD_LINE} + COMMAND ${MAKE_BASH} ${NO_PARALLEL_MAKE_CMD_LINE} WORKING_DIRECTORY "${WORKING_DIRECTORY}" LOGNAME "${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}${SHORT_BUILDTYPE}" ) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index b38bd63f184e90..81417915928235 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -10,6 +10,7 @@ vcpkg_configure_make( [AUTOCONFIG] [USE_WRAPPERS] [DETERMINE_BUILD_TRIPLET] + [FORCE_APPEND_CURRENT_INCLUDE_DIR] [BUILD_TRIPLET "--host=x64 --build=i686-unknown-pc"] [NO_ADDITIONAL_PATHS] [CONFIG_DEPENDENT_ENVIRONMENT ...] @@ -40,6 +41,9 @@ Skip configure process ### USE_WRAPPERS Use autotools ar-lib and compile wrappers (only applies to windows cl and lib) +### FORCE_APPEND_CURRENT_INCLUDE_DIR +Force append ${CURRENT_INSTALLED_DIR}/include to CFLAGS and CXXFLAGS + ### BUILD_TRIPLET Used to pass custom --build/--target/--host to configure. Can be globally overwritten by VCPKG_MAKE_BUILD_TRIPLET @@ -259,6 +263,11 @@ macro(_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags _SUFFIX) if (VCPKG_DETECTED_CMAKE_OSX_SYSROOT) string(APPEND CPPFLAGS_${_SUFFIX} " -isysroot ${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}") endif() + + if (_csc_FORCE_APPEND_CURRENT_INCLUDE_DIR) + string(APPEND CFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C_SEP}${CURRENT_INSTALLED_DIR}/include") + string(APPEND CXXFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX_SEP}${CURRENT_INSTALLED_DIR}/include") + endif() string(STRIP "${CPPFLAGS_${_SUFFIX}}" CPPFLAGS_${_SUFFIX}) string(STRIP "${CFLAGS_${_SUFFIX}}" CFLAGS_${_SUFFIX}) @@ -271,7 +280,7 @@ endmacro() function(vcpkg_configure_make) # parse parameters such that semicolons in options arguments to COMMAND don't get erased cmake_parse_arguments(PARSE_ARGV 0 _csc - "AUTOCONFIG;SKIP_CONFIGURE;COPY_SOURCE;DISABLE_VERBOSE_FLAGS;NO_ADDITIONAL_PATHS;ADD_BIN_TO_PATH;USE_WRAPPERS;DETERMINE_BUILD_TRIPLET" + "AUTOCONFIG;SKIP_CONFIGURE;COPY_SOURCE;DISABLE_VERBOSE_FLAGS;NO_ADDITIONAL_PATHS;ADD_BIN_TO_PATH;USE_WRAPPERS;DETERMINE_BUILD_TRIPLET;FORCE_APPEND_CURRENT_INCLUDE_DIR" "SOURCE_PATH;PROJECT_SUBPATH;PRERUN_SHELL;BUILD_TRIPLET" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;CONFIGURE_ENVIRONMENT_VARIABLES;CONFIG_DEPENDENT_ENVIRONMENT;ADDITIONAL_MSYS_PACKAGES" ) @@ -845,7 +854,7 @@ function(vcpkg_configure_make) endforeach() # Restore environment - _vcpkg_restore_env_variables(${_cm_FLAGS} LIB LIBPATH LIBRARY_PATH LD_LIBRARY_PATH ${_cm_TOOLS}) + _vcpkg_restore_env_variables(${_cm_FLAGS} LIB LIBPATH LIBRARY_PATH LD_LIBRARY_PATH ${_cm_TOOLS} C_INCLUDE_PATH CPLUS_INCLUDE_PATH LIBRARY_PATH LD_LIBRARY_PATH) SET(_VCPKG_PROJECT_SOURCE_PATH ${_csc_SOURCE_PATH} PARENT_SCOPE) set(_VCPKG_PROJECT_SUBPATH ${_csc_PROJECT_SUBPATH} PARENT_SCOPE) diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index f4cc8dbfd4e41c..c4cb021969faf5 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -8,7 +8,13 @@ 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_INCLUDE_FLAG_C + CMAKE_INCLUDE_FLAG_CXX + CMAKE_INCLUDE_FLAG_C_SEP + CMAKE_INCLUDE_FLAG_CXX_SEP +) + if(CMAKE_SYSTEM_NAME MATCHES "Darwin") list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT) From e11544a5f4b9bb5cf1ef42e2f60f423f2994393e Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 9 Mar 2021 18:12:02 +0100 Subject: [PATCH 14/52] bump port version --- ports/libgpg-error/CONTROL | 1 + 1 file changed, 1 insertion(+) diff --git a/ports/libgpg-error/CONTROL b/ports/libgpg-error/CONTROL index 754d20d3da1496..c5a308456219e8 100644 --- a/ports/libgpg-error/CONTROL +++ b/ports/libgpg-error/CONTROL @@ -1,5 +1,6 @@ Source: libgpg-error Version: 1.39 +Port-Version: 1 Homepage: https://gnupg.org/software/libgpg-error/index.html Description: A common dependency of all GnuPG components Supports: !windows From d17f86c6225d8820d1e7adb514da816fc7ab0d51 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 9 Mar 2021 18:13:34 +0100 Subject: [PATCH 15/52] bump versions --- versions/baseline.json | 8 ++++---- versions/l-/libgpg-error.json | 5 +++++ versions/l-/libspatialite.json | 5 +++++ versions/o-/openmpi.json | 5 +++++ 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/versions/baseline.json b/versions/baseline.json index 81b81e4ad847b2..5530503ce959f3 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -3042,7 +3042,7 @@ }, "libgpg-error": { "baseline": "1.39", - "port-version": 0 + "port-version": 1 }, "libgpod": { "baseline": "2019-08-29", @@ -3410,7 +3410,7 @@ }, "libspatialite": { "baseline": "5.0.0", - "port-version": 0 + "port-version": 1 }, "libspnav": { "baseline": "0.2.3", @@ -4361,8 +4361,8 @@ "port-version": 0 }, "openmpi": { - "baseline": "4.0.3", - "port-version": 3 + "baseline": "4.1.0", + "port-version": 0 }, "openmvg": { "baseline": "1.6", diff --git a/versions/l-/libgpg-error.json b/versions/l-/libgpg-error.json index 7935378c3846d4..c931bcaf35786a 100644 --- a/versions/l-/libgpg-error.json +++ b/versions/l-/libgpg-error.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "3101120eb06d2f3f6ec9168766d978cf9a478bd3", + "version-string": "1.39", + "port-version": 1 + }, { "git-tree": "e5779f2d8e3f5c155d4b2e0b05661a9e0032c00a", "version-string": "1.39", diff --git a/versions/l-/libspatialite.json b/versions/l-/libspatialite.json index 3bbe9b07496dec..df5684c2425be5 100644 --- a/versions/l-/libspatialite.json +++ b/versions/l-/libspatialite.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "58af990b54c51cee1070720e7af177f36d6cb7aa", + "version-string": "5.0.0", + "port-version": 1 + }, { "git-tree": "f63638cb7e228e76cebf7e4a6c28902b4738f907", "version-string": "5.0.0", diff --git a/versions/o-/openmpi.json b/versions/o-/openmpi.json index 67454db37b00a2..ab6a507912887d 100644 --- a/versions/o-/openmpi.json +++ b/versions/o-/openmpi.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "ada9b58df7928b49218b4b932e37b343a2047273", + "version-string": "4.1.0", + "port-version": 0 + }, { "git-tree": "54178d2df9f03298fa293753786c0ddbb1fbf2c4", "version-string": "4.0.3", From f60cbedf5d787e76073bb8ae94355df2c80d0da2 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 10 Mar 2021 11:18:42 +0100 Subject: [PATCH 16/52] try to fix format --- scripts/cmake/vcpkg_configure_make.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 81417915928235..8c94e4ba12c2c9 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -10,7 +10,7 @@ vcpkg_configure_make( [AUTOCONFIG] [USE_WRAPPERS] [DETERMINE_BUILD_TRIPLET] - [FORCE_APPEND_CURRENT_INCLUDE_DIR] + [FORCE_APPEND_CURRENT_INCLUDE_DIR] [BUILD_TRIPLET "--host=x64 --build=i686-unknown-pc"] [NO_ADDITIONAL_PATHS] [CONFIG_DEPENDENT_ENVIRONMENT ...] @@ -41,9 +41,9 @@ Skip configure process ### USE_WRAPPERS Use autotools ar-lib and compile wrappers (only applies to windows cl and lib) -### FORCE_APPEND_CURRENT_INCLUDE_DIR -Force append ${CURRENT_INSTALLED_DIR}/include to CFLAGS and CXXFLAGS - +### FORCE_APPEND_CURRENT_INCLUDE_DIR +Force append ${CURRENT_INSTALLED_DIR}/include to CFLAGS and CXXFLAGS + ### BUILD_TRIPLET Used to pass custom --build/--target/--host to configure. Can be globally overwritten by VCPKG_MAKE_BUILD_TRIPLET From de679cba18075de3833d0a222370dea118802fdc Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 10 Mar 2021 11:25:56 +0100 Subject: [PATCH 17/52] regenerate docs --- docs/maintainers/vcpkg_configure_make.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/maintainers/vcpkg_configure_make.md b/docs/maintainers/vcpkg_configure_make.md index 00d24f424b6235..20fbda6baa8f58 100644 --- a/docs/maintainers/vcpkg_configure_make.md +++ b/docs/maintainers/vcpkg_configure_make.md @@ -11,6 +11,7 @@ vcpkg_configure_make( [AUTOCONFIG] [USE_WRAPPERS] [DETERMINE_BUILD_TRIPLET] + [FORCE_APPEND_CURRENT_INCLUDE_DIR] [BUILD_TRIPLET "--host=x64 --build=i686-unknown-pc"] [NO_ADDITIONAL_PATHS] [CONFIG_DEPENDENT_ENVIRONMENT ...] @@ -41,6 +42,9 @@ Skip configure process ### USE_WRAPPERS Use autotools ar-lib and compile wrappers (only applies to windows cl and lib) +### FORCE_APPEND_CURRENT_INCLUDE_DIR +Force append ${CURRENT_INSTALLED_DIR}/include to CFLAGS and CXXFLAGS + ### BUILD_TRIPLET Used to pass custom --build/--target/--host to configure. Can be globally overwritten by VCPKG_MAKE_BUILD_TRIPLET From 9b531c00e3ff5f2ef5bc67f14231a31d7d95b8d7 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 10 Mar 2021 15:06:38 +0100 Subject: [PATCH 18/52] remove FORCE_APPEND_CURRENT_INCLUDE_DIR flag. do it automatically --- ports/libidn2/portfile.cmake | 2 +- ports/libspatialite/portfile.cmake | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/ports/libidn2/portfile.cmake b/ports/libidn2/portfile.cmake index 9509d66757f9fe..96fd7784b94deb 100644 --- a/ports/libidn2/portfile.cmake +++ b/ports/libidn2/portfile.cmake @@ -51,7 +51,7 @@ else() vcpkg_configure_make( SOURCE_PATH ${SOURCE_PATH} AUTOCONFIG - COPY_SOURCE + COPY_SOURCE OPTIONS --with-libiconv-prefix=${CURRENT_INSTALLED_DIR} ) diff --git a/ports/libspatialite/portfile.cmake b/ports/libspatialite/portfile.cmake index e97b79c3d78cce..84c49da3a72f0a 100644 --- a/ports/libspatialite/portfile.cmake +++ b/ports/libspatialite/portfile.cmake @@ -104,7 +104,6 @@ elseif (VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX) # Build in UNIX vcpkg_configure_make( SOURCE_PATH ${SOURCE_PATH} AUTOCONFIG - FORCE_APPEND_CURRENT_INCLUDE_DIR OPTIONS "LIBS=-lpthread -ldl -lm -l${STDLIB}" "LIBXML2_CFLAGS=-I\"${CURRENT_INSTALLED_DIR}/include\"" From c9a6d8c938869c489ace2854bee7b04bb7693d22 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 10 Mar 2021 15:07:37 +0100 Subject: [PATCH 19/52] versions and docs --- docs/maintainers/vcpkg_configure_make.md | 4 ---- scripts/cmake/vcpkg_configure_make.cmake | 12 +++--------- versions/l-/libidn2.json | 2 +- versions/l-/libspatialite.json | 2 +- 4 files changed, 5 insertions(+), 15 deletions(-) diff --git a/docs/maintainers/vcpkg_configure_make.md b/docs/maintainers/vcpkg_configure_make.md index 20fbda6baa8f58..00d24f424b6235 100644 --- a/docs/maintainers/vcpkg_configure_make.md +++ b/docs/maintainers/vcpkg_configure_make.md @@ -11,7 +11,6 @@ vcpkg_configure_make( [AUTOCONFIG] [USE_WRAPPERS] [DETERMINE_BUILD_TRIPLET] - [FORCE_APPEND_CURRENT_INCLUDE_DIR] [BUILD_TRIPLET "--host=x64 --build=i686-unknown-pc"] [NO_ADDITIONAL_PATHS] [CONFIG_DEPENDENT_ENVIRONMENT ...] @@ -42,9 +41,6 @@ Skip configure process ### USE_WRAPPERS Use autotools ar-lib and compile wrappers (only applies to windows cl and lib) -### FORCE_APPEND_CURRENT_INCLUDE_DIR -Force append ${CURRENT_INSTALLED_DIR}/include to CFLAGS and CXXFLAGS - ### BUILD_TRIPLET Used to pass custom --build/--target/--host to configure. Can be globally overwritten by VCPKG_MAKE_BUILD_TRIPLET diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 8c94e4ba12c2c9..2ede12652a1fcf 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -10,7 +10,6 @@ vcpkg_configure_make( [AUTOCONFIG] [USE_WRAPPERS] [DETERMINE_BUILD_TRIPLET] - [FORCE_APPEND_CURRENT_INCLUDE_DIR] [BUILD_TRIPLET "--host=x64 --build=i686-unknown-pc"] [NO_ADDITIONAL_PATHS] [CONFIG_DEPENDENT_ENVIRONMENT ...] @@ -41,9 +40,6 @@ Skip configure process ### USE_WRAPPERS Use autotools ar-lib and compile wrappers (only applies to windows cl and lib) -### FORCE_APPEND_CURRENT_INCLUDE_DIR -Force append ${CURRENT_INSTALLED_DIR}/include to CFLAGS and CXXFLAGS - ### BUILD_TRIPLET Used to pass custom --build/--target/--host to configure. Can be globally overwritten by VCPKG_MAKE_BUILD_TRIPLET @@ -264,10 +260,8 @@ macro(_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags _SUFFIX) string(APPEND CPPFLAGS_${_SUFFIX} " -isysroot ${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}") endif() - if (_csc_FORCE_APPEND_CURRENT_INCLUDE_DIR) - string(APPEND CFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C_SEP}${CURRENT_INSTALLED_DIR}/include") - string(APPEND CXXFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX_SEP}${CURRENT_INSTALLED_DIR}/include") - endif() + string(APPEND CFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C_SEP}${CURRENT_INSTALLED_DIR}/include") + string(APPEND CXXFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX_SEP}${CURRENT_INSTALLED_DIR}/include") string(STRIP "${CPPFLAGS_${_SUFFIX}}" CPPFLAGS_${_SUFFIX}) string(STRIP "${CFLAGS_${_SUFFIX}}" CFLAGS_${_SUFFIX}) @@ -280,7 +274,7 @@ endmacro() function(vcpkg_configure_make) # parse parameters such that semicolons in options arguments to COMMAND don't get erased cmake_parse_arguments(PARSE_ARGV 0 _csc - "AUTOCONFIG;SKIP_CONFIGURE;COPY_SOURCE;DISABLE_VERBOSE_FLAGS;NO_ADDITIONAL_PATHS;ADD_BIN_TO_PATH;USE_WRAPPERS;DETERMINE_BUILD_TRIPLET;FORCE_APPEND_CURRENT_INCLUDE_DIR" + "AUTOCONFIG;SKIP_CONFIGURE;COPY_SOURCE;DISABLE_VERBOSE_FLAGS;NO_ADDITIONAL_PATHS;ADD_BIN_TO_PATH;USE_WRAPPERS;DETERMINE_BUILD_TRIPLET" "SOURCE_PATH;PROJECT_SUBPATH;PRERUN_SHELL;BUILD_TRIPLET" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;CONFIGURE_ENVIRONMENT_VARIABLES;CONFIG_DEPENDENT_ENVIRONMENT;ADDITIONAL_MSYS_PACKAGES" ) diff --git a/versions/l-/libidn2.json b/versions/l-/libidn2.json index 688c8a1ace126a..f256962b111b42 100644 --- a/versions/l-/libidn2.json +++ b/versions/l-/libidn2.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "6f5a62105488c9eb440e97c4d49a1ac6c8fa996c", + "git-tree": "8affd85878049fa1b8af42706c2c2dd4a7bf137f", "version-string": "2.3.0", "port-version": 2 }, diff --git a/versions/l-/libspatialite.json b/versions/l-/libspatialite.json index df5684c2425be5..a37bee775877a7 100644 --- a/versions/l-/libspatialite.json +++ b/versions/l-/libspatialite.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "58af990b54c51cee1070720e7af177f36d6cb7aa", + "git-tree": "b713a9368a0d53629cd8497cc82107ea6a33e980", "version-string": "5.0.0", "port-version": 1 }, From 2789f92cada0ccd08eda0d58bd220512e9edbb10 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Fri, 19 Mar 2021 13:27:23 +0100 Subject: [PATCH 20/52] fix build on OSX --- ports/libassuan/CONTROL | 1 + ports/libassuan/fix-flags.patch | 13 +++++++++++++ ports/libassuan/portfile.cmake | 1 + ports/libgcrypt/CONTROL | 1 + ports/libgcrypt/fix-flags.patch | 13 +++++++++++++ ports/libgcrypt/portfile.cmake | 1 + ports/spatialite-tools/CONTROL | 4 ++-- ports/spatialite-tools/portfile.cmake | 1 - 8 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 ports/libassuan/fix-flags.patch create mode 100644 ports/libgcrypt/fix-flags.patch diff --git a/ports/libassuan/CONTROL b/ports/libassuan/CONTROL index e6bb54b5fd33d1..a82da4811b7418 100644 --- a/ports/libassuan/CONTROL +++ b/ports/libassuan/CONTROL @@ -1,5 +1,6 @@ Source: libassuan Version: 2.5.3 +Port-Version: 1 Homepage: https://gnupg.org/software/libassuan/index.html Description: A library implementing the so-called Assuan protocol Build-Depends: libgpg-error diff --git a/ports/libassuan/fix-flags.patch b/ports/libassuan/fix-flags.patch new file mode 100644 index 00000000000000..8402c2e0a9ef2a --- /dev/null +++ b/ports/libassuan/fix-flags.patch @@ -0,0 +1,13 @@ +diff --git a/src/Makefile.am b/src/Makefile.am +index 089bc97..2d31b6a 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -149,7 +149,7 @@ install-exec-hook: + endif + + mkheader: mkheader.c Makefile +- $(CC_FOR_BUILD) -I. -I$(srcdir) -o $@ $(srcdir)/mkheader.c ++ $(CC_FOR_BUILD) -I. -I$(srcdir) $(CFLAGS) -o $@ $(srcdir)/mkheader.c + + assuan.h: assuan.h.in mkheader $(parts_of_assuan_h) + ./mkheader $(host_os) $(srcdir)/assuan.h.in \ diff --git a/ports/libassuan/portfile.cmake b/ports/libassuan/portfile.cmake index 50f26d494c5673..3d70d985f46436 100644 --- a/ports/libassuan/portfile.cmake +++ b/ports/libassuan/portfile.cmake @@ -8,6 +8,7 @@ vcpkg_from_github( HEAD_REF master PATCHES fix-pkgconfig.patch + fix-flags.patch ) vcpkg_configure_make( diff --git a/ports/libgcrypt/CONTROL b/ports/libgcrypt/CONTROL index 1a1ae7916734e5..af3a0fb17cc39e 100644 --- a/ports/libgcrypt/CONTROL +++ b/ports/libgcrypt/CONTROL @@ -1,5 +1,6 @@ Source: libgcrypt Version: 1.8.7 +Port-Version: 1 Homepage: https://gnupg.org/software/libgcrypt/index.html Description: A library implementing the so-called Assuan protocol Build-Depends: libgpg-error diff --git a/ports/libgcrypt/fix-flags.patch b/ports/libgcrypt/fix-flags.patch new file mode 100644 index 00000000000000..7ccf41c63e40dd --- /dev/null +++ b/ports/libgcrypt/fix-flags.patch @@ -0,0 +1,13 @@ +diff --git a/cipher/Makefile.am b/cipher/Makefile.am +index 95c4510..d43350c 100644 +--- a/cipher/Makefile.am ++++ b/cipher/Makefile.am +@@ -112,7 +112,7 @@ gost-sb.h: gost-s-box + ./gost-s-box $@ + + gost-s-box: gost-s-box.c +- $(CC_FOR_BUILD) -o $@ $(srcdir)/gost-s-box.c ++ $(CC_FOR_BUILD) $(CFLAGS) -o $@ $(srcdir)/gost-s-box.c + + + if ENABLE_O_FLAG_MUNGING diff --git a/ports/libgcrypt/portfile.cmake b/ports/libgcrypt/portfile.cmake index 7c5784a0191d60..11d63f9d8da338 100644 --- a/ports/libgcrypt/portfile.cmake +++ b/ports/libgcrypt/portfile.cmake @@ -8,6 +8,7 @@ vcpkg_from_github( HEAD_REF master PATCHES fix-pkgconfig.patch + fix-flags.patch ) vcpkg_configure_make( diff --git a/ports/spatialite-tools/CONTROL b/ports/spatialite-tools/CONTROL index e3a430d4b3065a..7f02ba5dda8882 100644 --- a/ports/spatialite-tools/CONTROL +++ b/ports/spatialite-tools/CONTROL @@ -1,6 +1,6 @@ Source: spatialite-tools Version: 5.0.0 -Port-Version: 1 +Port-Version: 2 Homepage: https://www.gaia-gis.it/fossil/spatialite-tools/index Description: Contains spatialite.exe and other command line tools to work with SpatiaLite databases (import, export, SQL queries) -Build-Depends: sqlite3, libspatialite, geos, readosm, proj4, zlib, libiconv, expat, librttopo \ No newline at end of file +Build-Depends: sqlite3, libspatialite, geos, readosm, proj4, zlib, libiconv, expat, librttopo diff --git a/ports/spatialite-tools/portfile.cmake b/ports/spatialite-tools/portfile.cmake index 4b53010a3d3985..b72e802b38ae87 100644 --- a/ports/spatialite-tools/portfile.cmake +++ b/ports/spatialite-tools/portfile.cmake @@ -124,7 +124,6 @@ elseif (VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX) # Build in UNIX SOURCE_PATH ${SOURCE_PATH} AUTOCONFIG OPTIONS - "CFLAGS=-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" "LIBXML2_CFLAGS=-I\"${CURRENT_INSTALLED_DIR}/include\"" "LIBS=${LIBS}" "--disable-minizip" From 2a265d3dffeae8ccdc317b7ef40225c1cacf560a Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Fri, 19 Mar 2021 13:28:09 +0100 Subject: [PATCH 21/52] bump versions --- versions/baseline.json | 6 +++--- versions/l-/libassuan.json | 5 +++++ versions/l-/libgcrypt.json | 5 +++++ versions/s-/spatialite-tools.json | 5 +++++ 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/versions/baseline.json b/versions/baseline.json index d6db3ebc367a30..229c9cc95f662e 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2898,7 +2898,7 @@ }, "libassuan": { "baseline": "2.5.3", - "port-version": 0 + "port-version": 1 }, "libb2": { "baseline": "0.98.1", @@ -3026,7 +3026,7 @@ }, "libgcrypt": { "baseline": "1.8.7", - "port-version": 0 + "port-version": 1 }, "libgd": { "baseline": "2.2.5-4", @@ -5562,7 +5562,7 @@ }, "spatialite-tools": { "baseline": "5.0.0", - "port-version": 1 + "port-version": 2 }, "spdk": { "baseline": "19.01.1", diff --git a/versions/l-/libassuan.json b/versions/l-/libassuan.json index c431aea6994644..11f22f12cdd787 100644 --- a/versions/l-/libassuan.json +++ b/versions/l-/libassuan.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "30d776072592a21aac12c3d91053e832b8ee326f", + "version-string": "2.5.3", + "port-version": 1 + }, { "git-tree": "4f706c770799458ae92ef15394a9f0b1bd25fdf8", "version-string": "2.5.3", diff --git a/versions/l-/libgcrypt.json b/versions/l-/libgcrypt.json index fc0e2c24743240..c3bcb05ad67191 100644 --- a/versions/l-/libgcrypt.json +++ b/versions/l-/libgcrypt.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "555a7b3076a160c086f9cf5433eae97791aa017f", + "version-string": "1.8.7", + "port-version": 1 + }, { "git-tree": "3a7be352162b1187194ba75ff3514361213f77a6", "version-string": "1.8.7", diff --git a/versions/s-/spatialite-tools.json b/versions/s-/spatialite-tools.json index 6f85784d923b50..2251060f044e9d 100644 --- a/versions/s-/spatialite-tools.json +++ b/versions/s-/spatialite-tools.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "a54d2d339b5eaf4d37fc125c49b939822fdaf3ba", + "version-string": "5.0.0", + "port-version": 2 + }, { "git-tree": "e3d595427bd0b0cf8ddaadc45e400b5c1f9c1ccc", "version-string": "5.0.0", From a501508148af74bc41ae5f1967af124f5c25f277 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Thu, 1 Apr 2021 11:46:09 +0200 Subject: [PATCH 22/52] Update scripts/cmake/vcpkg_configure_make.cmake Co-authored-by: Robert Schumacher --- scripts/cmake/vcpkg_configure_make.cmake | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 2ede12652a1fcf..8728734e6f047d 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -119,6 +119,7 @@ function(_vcpkg_cmake_to_autotools_arch in_arch out_var) endfunction() function(_vcpkg_cmake_to_autotools_system in_system out_var) + unset(${out_var} PARENT_SCOPE) if(in_system MATCHES "Linux") set(${out_var} "linux-gnu" PARENT_SCOPE) elseif(in_system MATCHES "Windows") @@ -176,8 +177,8 @@ macro(_vcpkg_determine_autotools_target_os out_var) if(NOT DEFINED ${out_var}) message(FATAL_ERROR "Unsupported target os ${VCPKG_DETECTED_CMAKE_SYSTEM_NAME} in _vcpkg_determine_autotools_target_os!") endif() -endmacro() - +endmacro() + macro(_vcpkg_determine_autotools_host_arch_mac out_var) set(${out_var} "${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}") endmacro() @@ -259,9 +260,9 @@ macro(_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags _SUFFIX) if (VCPKG_DETECTED_CMAKE_OSX_SYSROOT) string(APPEND CPPFLAGS_${_SUFFIX} " -isysroot ${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}") endif() - - string(APPEND CFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C_SEP}${CURRENT_INSTALLED_DIR}/include") - string(APPEND CXXFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX_SEP}${CURRENT_INSTALLED_DIR}/include") + + string(APPEND CFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C_SEP}${CURRENT_INSTALLED_DIR}/include") + string(APPEND CXXFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX_SEP}${CURRENT_INSTALLED_DIR}/include") string(STRIP "${CPPFLAGS_${_SUFFIX}}" CPPFLAGS_${_SUFFIX}) string(STRIP "${CFLAGS_${_SUFFIX}}" CFLAGS_${_SUFFIX}) From 04389f2f8e8528a14c024f91895dd637f2a7fe3c Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Thu, 1 Apr 2021 17:02:46 +0200 Subject: [PATCH 23/52] pr fixes --- scripts/cmake/vcpkg_configure_make.cmake | 8 ++++++-- scripts/get_cmake_vars/CMakeLists.txt | 12 ------------ 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index c95f64037f90f0..735e006d89fd04 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -261,8 +261,12 @@ macro(_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags _SUFFIX) string(APPEND CPPFLAGS_${_SUFFIX} " -isysroot ${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}") endif() - string(APPEND CFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C_SEP}${CURRENT_INSTALLED_DIR}/include") - string(APPEND CXXFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX_SEP}${CURRENT_INSTALLED_DIR}/include") + set(VCPKG_INCLUDE_PATH "${CURRENT_INSTALLED_DIR}/include") + file(TO_NATIVE_PATH "${VCPKG_INCLUDE_PATH}" VCPKG_INCLUDE_PATH) + set(VCPKG_INCLUDE_PATH "\"${VCPKG_INCLUDE_PATH}\"") + + string(APPEND CFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C_SEP}${VCPKG_INCLUDE_PATH}") + string(APPEND CXXFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX_SEP}${VCPKG_INCLUDE_PATH}") string(STRIP "${CPPFLAGS_${_SUFFIX}}" CPPFLAGS_${_SUFFIX}) string(STRIP "${CFLAGS_${_SUFFIX}}" CFLAGS_${_SUFFIX}) diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index c4cb021969faf5..9e4c2d88a494b6 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -162,18 +162,6 @@ macro(_vcpkg_adjust_flags flag_var) if(MSVC) # Transform MSVC /flags to -flags due to bash scripts intepreting /flag as a path. string(REGEX REPLACE "(^| )/" "\\1-" ${flag_var} "${${flag_var}}") endif() - if(CMAKE_SYSTEM_NAME MATCHES "Darwin") - if("${flag_var}" IN_LIST VCPKG_LANG_FLAGS) - # macOS - append arch and isysroot if cross-compiling - if(NOT "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "${CMAKE_HOST_SYSTEM_PROCESSOR}") - - foreach(arch IN LISTS CMAKE_OSX_ARCHITECTURES) - string(APPEND ${flag_var} " -arch ${arch}") - endforeach() - string(APPEND ${flag_var} " -isysroot ${CMAKE_OSX_SYSROOT}") - endif() - endif() - endif() endmacro() foreach(flag IN LISTS VCPKG_FLAGS_TO_CHECK) From dc9688d0b1fd4abca1ad4e8a4a2457128a2e099d Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 13 Apr 2021 12:57:05 +0200 Subject: [PATCH 24/52] revert unnided changes --- ports/libidn2/portfile.cmake | 2 +- versions/l-/libidn2.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/libidn2/portfile.cmake b/ports/libidn2/portfile.cmake index 96fd7784b94deb..9509d66757f9fe 100644 --- a/ports/libidn2/portfile.cmake +++ b/ports/libidn2/portfile.cmake @@ -51,7 +51,7 @@ else() vcpkg_configure_make( SOURCE_PATH ${SOURCE_PATH} AUTOCONFIG - COPY_SOURCE + COPY_SOURCE OPTIONS --with-libiconv-prefix=${CURRENT_INSTALLED_DIR} ) diff --git a/versions/l-/libidn2.json b/versions/l-/libidn2.json index f256962b111b42..688c8a1ace126a 100644 --- a/versions/l-/libidn2.json +++ b/versions/l-/libidn2.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "8affd85878049fa1b8af42706c2c2dd4a7bf137f", + "git-tree": "6f5a62105488c9eb440e97c4d49a1ac6c8fa996c", "version-string": "2.3.0", "port-version": 2 }, From 9db4481b80c53de2fc532f2957d42266c816b7bc Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 13 Apr 2021 15:57:46 +0200 Subject: [PATCH 25/52] gmp build fix --- ports/gmp/portfile.cmake | 4 ++- ports/gmp/tools.patch | 58 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 ports/gmp/tools.patch diff --git a/ports/gmp/portfile.cmake b/ports/gmp/portfile.cmake index e57ec460708ede..8ed4e70fa0ed5b 100644 --- a/ports/gmp/portfile.cmake +++ b/ports/gmp/portfile.cmake @@ -98,6 +98,8 @@ else() OUT_SOURCE_PATH SOURCE_PATH ARCHIVE ${ARCHIVE} REF gmp-6.2.1 + PATCHES + tools.patch ) vcpkg_configure_make( @@ -113,4 +115,4 @@ else() # # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYINGv3" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) -endif() \ No newline at end of file +endif() diff --git a/ports/gmp/tools.patch b/ports/gmp/tools.patch new file mode 100644 index 00000000000000..193f3835b80990 --- /dev/null +++ b/ports/gmp/tools.patch @@ -0,0 +1,58 @@ +diff --git a/Makefile.am b/Makefile.am +index 1c24694..656aa3a 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -349,7 +349,7 @@ fac_table.h: gen-fac$(EXEEXT_FOR_BUILD) + BUILT_SOURCES += fac_table.h + + gen-fac$(EXEEXT_FOR_BUILD): gen-fac$(U_FOR_BUILD).c bootstrap.c +- $(CC_FOR_BUILD) `test -f 'gen-fac$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-fac$(U_FOR_BUILD).c -o gen-fac$(EXEEXT_FOR_BUILD) ++ $(CC_FOR_BUILD) `test -f 'gen-fac$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-fac$(U_FOR_BUILD).c $(CFLAGS) -o gen-fac$(EXEEXT_FOR_BUILD) + DISTCLEANFILES += gen-fac$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-fac.c + +@@ -363,7 +363,7 @@ mpn/fib_table.c: gen-fib$(EXEEXT_FOR_BUILD) + BUILT_SOURCES += mpn/fib_table.c + + gen-fib$(EXEEXT_FOR_BUILD): gen-fib$(U_FOR_BUILD).c bootstrap.c +- $(CC_FOR_BUILD) `test -f 'gen-fib$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-fib$(U_FOR_BUILD).c -o gen-fib$(EXEEXT_FOR_BUILD) ++ $(CC_FOR_BUILD) `test -f 'gen-fib$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-fib$(U_FOR_BUILD).c $(CFLAGS) -o gen-fib$(EXEEXT_FOR_BUILD) + DISTCLEANFILES += gen-fib$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-fib.c + +@@ -377,7 +377,7 @@ mpn/mp_bases.c: gen-bases$(EXEEXT_FOR_BUILD) + BUILT_SOURCES += mpn/mp_bases.c + + gen-bases$(EXEEXT_FOR_BUILD): gen-bases$(U_FOR_BUILD).c bootstrap.c +- $(CC_FOR_BUILD) `test -f 'gen-bases$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-bases$(U_FOR_BUILD).c -o gen-bases$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) ++ $(CC_FOR_BUILD) `test -f 'gen-bases$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-bases$(U_FOR_BUILD).c $(CFLAGS) -o gen-bases$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) + DISTCLEANFILES += gen-bases$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-bases.c + +@@ -387,7 +387,7 @@ trialdivtab.h: gen-trialdivtab$(EXEEXT_FOR_BUILD) + BUILT_SOURCES += trialdivtab.h + + gen-trialdivtab$(EXEEXT_FOR_BUILD): gen-trialdivtab$(U_FOR_BUILD).c bootstrap.c +- $(CC_FOR_BUILD) `test -f 'gen-trialdivtab$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-trialdivtab$(U_FOR_BUILD).c -o gen-trialdivtab$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) ++ $(CC_FOR_BUILD) `test -f 'gen-trialdivtab$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-trialdivtab$(U_FOR_BUILD).c $(CFLAGS) -o gen-trialdivtab$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) + DISTCLEANFILES += gen-trialdivtab$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-trialdivtab.c + +@@ -397,7 +397,7 @@ mpn/jacobitab.h: gen-jacobitab$(EXEEXT_FOR_BUILD) + BUILT_SOURCES += mpn/jacobitab.h + + gen-jacobitab$(EXEEXT_FOR_BUILD): gen-jacobitab$(U_FOR_BUILD).c +- $(CC_FOR_BUILD) `test -f 'gen-jacobitab$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-jacobitab$(U_FOR_BUILD).c -o gen-jacobitab$(EXEEXT_FOR_BUILD) ++ $(CC_FOR_BUILD) `test -f 'gen-jacobitab$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-jacobitab$(U_FOR_BUILD).c $(CFLAGS) -o gen-jacobitab$(EXEEXT_FOR_BUILD) + DISTCLEANFILES += gen-jacobitab$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-jacobitab.c + +@@ -407,7 +407,7 @@ mpn/perfsqr.h: gen-psqr$(EXEEXT_FOR_BUILD) + BUILT_SOURCES += mpn/perfsqr.h + + gen-psqr$(EXEEXT_FOR_BUILD): gen-psqr$(U_FOR_BUILD).c bootstrap.c +- $(CC_FOR_BUILD) `test -f 'gen-psqr$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-psqr$(U_FOR_BUILD).c -o gen-psqr$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) ++ $(CC_FOR_BUILD) `test -f 'gen-psqr$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-psqr$(U_FOR_BUILD).c $(CFLAGS) -o gen-psqr$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) + DISTCLEANFILES += gen-psqr$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-psqr.c + From 048ccfbfdd1d7d48ab56698365eede201bfc8ce9 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 13 Apr 2021 16:07:02 +0200 Subject: [PATCH 26/52] add cflags for compile time tools --- ports/gmp/portfile.cmake | 4 ++- ports/gmp/tools.patch | 58 ++++++++++++++++++++++++++++++++++++++++ ports/gmp/vcpkg.json | 2 +- 3 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 ports/gmp/tools.patch diff --git a/ports/gmp/portfile.cmake b/ports/gmp/portfile.cmake index e57ec460708ede..7c04c680fc0db7 100644 --- a/ports/gmp/portfile.cmake +++ b/ports/gmp/portfile.cmake @@ -98,6 +98,8 @@ else() OUT_SOURCE_PATH SOURCE_PATH ARCHIVE ${ARCHIVE} REF gmp-6.2.1 + PATCHES + tools.patch ) vcpkg_configure_make( @@ -113,4 +115,4 @@ else() # # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYINGv3" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) -endif() \ No newline at end of file +endif() diff --git a/ports/gmp/tools.patch b/ports/gmp/tools.patch new file mode 100644 index 00000000000000..193f3835b80990 --- /dev/null +++ b/ports/gmp/tools.patch @@ -0,0 +1,58 @@ +diff --git a/Makefile.am b/Makefile.am +index 1c24694..656aa3a 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -349,7 +349,7 @@ fac_table.h: gen-fac$(EXEEXT_FOR_BUILD) + BUILT_SOURCES += fac_table.h + + gen-fac$(EXEEXT_FOR_BUILD): gen-fac$(U_FOR_BUILD).c bootstrap.c +- $(CC_FOR_BUILD) `test -f 'gen-fac$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-fac$(U_FOR_BUILD).c -o gen-fac$(EXEEXT_FOR_BUILD) ++ $(CC_FOR_BUILD) `test -f 'gen-fac$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-fac$(U_FOR_BUILD).c $(CFLAGS) -o gen-fac$(EXEEXT_FOR_BUILD) + DISTCLEANFILES += gen-fac$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-fac.c + +@@ -363,7 +363,7 @@ mpn/fib_table.c: gen-fib$(EXEEXT_FOR_BUILD) + BUILT_SOURCES += mpn/fib_table.c + + gen-fib$(EXEEXT_FOR_BUILD): gen-fib$(U_FOR_BUILD).c bootstrap.c +- $(CC_FOR_BUILD) `test -f 'gen-fib$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-fib$(U_FOR_BUILD).c -o gen-fib$(EXEEXT_FOR_BUILD) ++ $(CC_FOR_BUILD) `test -f 'gen-fib$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-fib$(U_FOR_BUILD).c $(CFLAGS) -o gen-fib$(EXEEXT_FOR_BUILD) + DISTCLEANFILES += gen-fib$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-fib.c + +@@ -377,7 +377,7 @@ mpn/mp_bases.c: gen-bases$(EXEEXT_FOR_BUILD) + BUILT_SOURCES += mpn/mp_bases.c + + gen-bases$(EXEEXT_FOR_BUILD): gen-bases$(U_FOR_BUILD).c bootstrap.c +- $(CC_FOR_BUILD) `test -f 'gen-bases$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-bases$(U_FOR_BUILD).c -o gen-bases$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) ++ $(CC_FOR_BUILD) `test -f 'gen-bases$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-bases$(U_FOR_BUILD).c $(CFLAGS) -o gen-bases$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) + DISTCLEANFILES += gen-bases$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-bases.c + +@@ -387,7 +387,7 @@ trialdivtab.h: gen-trialdivtab$(EXEEXT_FOR_BUILD) + BUILT_SOURCES += trialdivtab.h + + gen-trialdivtab$(EXEEXT_FOR_BUILD): gen-trialdivtab$(U_FOR_BUILD).c bootstrap.c +- $(CC_FOR_BUILD) `test -f 'gen-trialdivtab$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-trialdivtab$(U_FOR_BUILD).c -o gen-trialdivtab$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) ++ $(CC_FOR_BUILD) `test -f 'gen-trialdivtab$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-trialdivtab$(U_FOR_BUILD).c $(CFLAGS) -o gen-trialdivtab$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) + DISTCLEANFILES += gen-trialdivtab$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-trialdivtab.c + +@@ -397,7 +397,7 @@ mpn/jacobitab.h: gen-jacobitab$(EXEEXT_FOR_BUILD) + BUILT_SOURCES += mpn/jacobitab.h + + gen-jacobitab$(EXEEXT_FOR_BUILD): gen-jacobitab$(U_FOR_BUILD).c +- $(CC_FOR_BUILD) `test -f 'gen-jacobitab$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-jacobitab$(U_FOR_BUILD).c -o gen-jacobitab$(EXEEXT_FOR_BUILD) ++ $(CC_FOR_BUILD) `test -f 'gen-jacobitab$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-jacobitab$(U_FOR_BUILD).c $(CFLAGS) -o gen-jacobitab$(EXEEXT_FOR_BUILD) + DISTCLEANFILES += gen-jacobitab$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-jacobitab.c + +@@ -407,7 +407,7 @@ mpn/perfsqr.h: gen-psqr$(EXEEXT_FOR_BUILD) + BUILT_SOURCES += mpn/perfsqr.h + + gen-psqr$(EXEEXT_FOR_BUILD): gen-psqr$(U_FOR_BUILD).c bootstrap.c +- $(CC_FOR_BUILD) `test -f 'gen-psqr$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-psqr$(U_FOR_BUILD).c -o gen-psqr$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) ++ $(CC_FOR_BUILD) `test -f 'gen-psqr$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-psqr$(U_FOR_BUILD).c $(CFLAGS) -o gen-psqr$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) + DISTCLEANFILES += gen-psqr$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-psqr.c + diff --git a/ports/gmp/vcpkg.json b/ports/gmp/vcpkg.json index 71cedfec5294b6..10f81ab28b2d2f 100644 --- a/ports/gmp/vcpkg.json +++ b/ports/gmp/vcpkg.json @@ -1,7 +1,7 @@ { "name": "gmp", "version-string": "6.2.1", - "port-version": 4, + "port-version": 5, "description": "The GNU Multiple Precision Arithmetic Library", "homepage": "https://gmplib.org", "supports": "!(windows & (arm | arm64))", From f7e5bcf5e7b2b7ff75f2706dd644acbf819243c1 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 13 Apr 2021 16:07:21 +0200 Subject: [PATCH 27/52] vcpkg x-add-version gmp --- versions/baseline.json | 2 +- versions/g-/gmp.json | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/versions/baseline.json b/versions/baseline.json index e20cb0d6e3d78d..58540901d382cf 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2290,7 +2290,7 @@ }, "gmp": { "baseline": "6.2.1", - "port-version": 4 + "port-version": 5 }, "google-cloud-cpp": { "baseline": "1.26.0", diff --git a/versions/g-/gmp.json b/versions/g-/gmp.json index 752fcb4484647b..4b0780bc6a2208 100644 --- a/versions/g-/gmp.json +++ b/versions/g-/gmp.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "462f1ecff8ac4656bb40c400f3d4aaa878653f89", + "version-string": "6.2.1", + "port-version": 5 + }, { "git-tree": "f53fd9a3e8e462a592c3811cf6c9dd2aec0f31e1", "version-string": "6.2.1", From e57fc4c3b7066f221bd9658b96f38f64d76a844f Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 20 Apr 2021 15:13:27 +0200 Subject: [PATCH 28/52] add yasm-tool as host dependency --- ports/gmp/vcpkg.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ports/gmp/vcpkg.json b/ports/gmp/vcpkg.json index 10f81ab28b2d2f..569c68b10c6ed3 100644 --- a/ports/gmp/vcpkg.json +++ b/ports/gmp/vcpkg.json @@ -8,11 +8,18 @@ "dependencies": [ { "name": "vs-yasm", - "platform": "windows" + "platform": "windows", + "host": true }, { "name": "yasm-tool-helper", - "platform": "windows" + "platform": "windows", + "host": true + }, + { + "name": "yasm-tool", + "platform": "windows", + "host": true } ] } From e4ac7ca71023b5a3512cf50ba9e008d42d024494 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 20 Apr 2021 15:13:58 +0200 Subject: [PATCH 29/52] ./vcpkg x-add-version gmp --overwrite-version --- versions/g-/gmp.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/g-/gmp.json b/versions/g-/gmp.json index 4b0780bc6a2208..b0b93689d27a33 100644 --- a/versions/g-/gmp.json +++ b/versions/g-/gmp.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "462f1ecff8ac4656bb40c400f3d4aaa878653f89", + "git-tree": "4c7fd1c1653a634159b15a5fba32592f49554a2a", "version-string": "6.2.1", "port-version": 5 }, From 37e0095a1eddeb1f41d752d658d3f4f7cd0bc408 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 20 Apr 2021 15:16:31 +0200 Subject: [PATCH 30/52] update gmp/vcpkg.json --- ports/gmp/vcpkg.json | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ports/gmp/vcpkg.json b/ports/gmp/vcpkg.json index 71cedfec5294b6..569c68b10c6ed3 100644 --- a/ports/gmp/vcpkg.json +++ b/ports/gmp/vcpkg.json @@ -1,18 +1,25 @@ { "name": "gmp", "version-string": "6.2.1", - "port-version": 4, + "port-version": 5, "description": "The GNU Multiple Precision Arithmetic Library", "homepage": "https://gmplib.org", "supports": "!(windows & (arm | arm64))", "dependencies": [ { "name": "vs-yasm", - "platform": "windows" + "platform": "windows", + "host": true }, { "name": "yasm-tool-helper", - "platform": "windows" + "platform": "windows", + "host": true + }, + { + "name": "yasm-tool", + "platform": "windows", + "host": true } ] } From 4e616f303a6f2616615bc915ce24e35113fe846a Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 20 Apr 2021 15:17:46 +0200 Subject: [PATCH 31/52] ./vcpkg x-add-version --all --overwrite-version --- versions/baseline.json | 2 +- versions/f-/fontconfig.json | 2 +- versions/g-/gmp.json | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/versions/baseline.json b/versions/baseline.json index b80063ed4e2160..ef70ea5ff9f894 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2302,7 +2302,7 @@ }, "gmp": { "baseline": "6.2.1", - "port-version": 4 + "port-version": 5 }, "google-cloud-cpp": { "baseline": "1.26.0", diff --git a/versions/f-/fontconfig.json b/versions/f-/fontconfig.json index b5bb4c3ad46ddf..b43e0aa451948f 100644 --- a/versions/f-/fontconfig.json +++ b/versions/f-/fontconfig.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "de83a21d912d9b87d8ad069d94dffcca201830a3", + "git-tree": "d9774e3ba72153356e6ba148678304283053feda", "version-string": "2.13.1", "port-version": 5 }, diff --git a/versions/g-/gmp.json b/versions/g-/gmp.json index 752fcb4484647b..f230985c5c02b2 100644 --- a/versions/g-/gmp.json +++ b/versions/g-/gmp.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "62956e3dc2f6d1f56120a98db62b45680cedb7db", + "version-string": "6.2.1", + "port-version": 5 + }, { "git-tree": "f53fd9a3e8e462a592c3811cf6c9dd2aec0f31e1", "version-string": "6.2.1", From 3d59a6040ff77ef8071cf1f9c3452a0c4a091917 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 20 Apr 2021 15:20:51 +0200 Subject: [PATCH 32/52] formating --- ports/gmp/vcpkg.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ports/gmp/vcpkg.json b/ports/gmp/vcpkg.json index 569c68b10c6ed3..45560c7fa046ce 100644 --- a/ports/gmp/vcpkg.json +++ b/ports/gmp/vcpkg.json @@ -1,25 +1,25 @@ { "name": "gmp", "version-string": "6.2.1", - "port-version": 5, + "port-version": 6, "description": "The GNU Multiple Precision Arithmetic Library", "homepage": "https://gmplib.org", "supports": "!(windows & (arm | arm64))", "dependencies": [ { "name": "vs-yasm", - "platform": "windows", - "host": true + "host": true, + "platform": "windows" }, { - "name": "yasm-tool-helper", - "platform": "windows", - "host": true + "name": "yasm-tool", + "host": true, + "platform": "windows" }, { - "name": "yasm-tool", - "platform": "windows", - "host": true + "name": "yasm-tool-helper", + "host": true, + "platform": "windows" } ] } From ae1e8febcfb8e448dfdaebc1bca66c4650b3fffd Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 20 Apr 2021 15:21:11 +0200 Subject: [PATCH 33/52] ./vcpkg x-add-version gmp --- versions/baseline.json | 2 +- versions/g-/gmp.json | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/versions/baseline.json b/versions/baseline.json index e95755a163762a..df6b17f69b1c96 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2302,7 +2302,7 @@ }, "gmp": { "baseline": "6.2.1", - "port-version": 5 + "port-version": 6 }, "google-cloud-cpp": { "baseline": "1.26.0", diff --git a/versions/g-/gmp.json b/versions/g-/gmp.json index b0b93689d27a33..a7cf53638ea30c 100644 --- a/versions/g-/gmp.json +++ b/versions/g-/gmp.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "20ee3a950a47cf9573f15825114b835fc2e85ac3", + "version-string": "6.2.1", + "port-version": 6 + }, { "git-tree": "4c7fd1c1653a634159b15a5fba32592f49554a2a", "version-string": "6.2.1", From 1afa4b90aad494e2b4ec0b6e17a4bd4a50cd2df3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jack=C2=B7Boos=C2=B7Yu?= <47264268+JackBoosY@users.noreply.github.com> Date: Tue, 20 Apr 2021 21:31:12 +0800 Subject: [PATCH 34/52] Update ports/gmp/vcpkg.json --- ports/gmp/vcpkg.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/gmp/vcpkg.json b/ports/gmp/vcpkg.json index 45560c7fa046ce..93a6303a9b9e06 100644 --- a/ports/gmp/vcpkg.json +++ b/ports/gmp/vcpkg.json @@ -1,7 +1,7 @@ { "name": "gmp", "version-string": "6.2.1", - "port-version": 6, + "port-version": 5, "description": "The GNU Multiple Precision Arithmetic Library", "homepage": "https://gmplib.org", "supports": "!(windows & (arm | arm64))", From 7398fb3d0aaf595cfb0176c261586c5a6f7daa75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jack=C2=B7Boos=C2=B7Yu?= <47264268+JackBoosY@users.noreply.github.com> Date: Tue, 20 Apr 2021 21:31:16 +0800 Subject: [PATCH 35/52] Update versions/baseline.json --- versions/baseline.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/baseline.json b/versions/baseline.json index df6b17f69b1c96..e95755a163762a 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2302,7 +2302,7 @@ }, "gmp": { "baseline": "6.2.1", - "port-version": 6 + "port-version": 5 }, "google-cloud-cpp": { "baseline": "1.26.0", From a6a96989b634c83c3c2c49a302f995b1de534613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jack=C2=B7Boos=C2=B7Yu?= <47264268+JackBoosY@users.noreply.github.com> Date: Tue, 20 Apr 2021 21:31:21 +0800 Subject: [PATCH 36/52] Update versions/g-/gmp.json --- versions/g-/gmp.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/versions/g-/gmp.json b/versions/g-/gmp.json index a7cf53638ea30c..b0b93689d27a33 100644 --- a/versions/g-/gmp.json +++ b/versions/g-/gmp.json @@ -1,10 +1,5 @@ { "versions": [ - { - "git-tree": "20ee3a950a47cf9573f15825114b835fc2e85ac3", - "version-string": "6.2.1", - "port-version": 6 - }, { "git-tree": "4c7fd1c1653a634159b15a5fba32592f49554a2a", "version-string": "6.2.1", From adaae5e88e0034212264be4417868091214b497f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jack=C2=B7Boos=C2=B7Yu?= <47264268+JackBoosY@users.noreply.github.com> Date: Wed, 21 Apr 2021 09:25:37 +0800 Subject: [PATCH 37/52] Update versions/g-/gmp.json --- versions/g-/gmp.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/g-/gmp.json b/versions/g-/gmp.json index b0b93689d27a33..dcbc75ee8d9f05 100644 --- a/versions/g-/gmp.json +++ b/versions/g-/gmp.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "4c7fd1c1653a634159b15a5fba32592f49554a2a", + "git-tree": "90eb02f55e96530420b8e83209651a9b91b7b002", "version-string": "6.2.1", "port-version": 5 }, From 1f56d6db7ac7d4bee964d5be9c1327813c5728ae Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 21 Apr 2021 16:21:01 +0200 Subject: [PATCH 38/52] disable documentation generation --- ports/libidn2/portfile.cmake | 1 + ports/libidn2/vcpkg.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ports/libidn2/portfile.cmake b/ports/libidn2/portfile.cmake index 9509d66757f9fe..41b7a664137896 100644 --- a/ports/libidn2/portfile.cmake +++ b/ports/libidn2/portfile.cmake @@ -54,6 +54,7 @@ else() COPY_SOURCE OPTIONS --with-libiconv-prefix=${CURRENT_INSTALLED_DIR} + --disable-gtk-doc-html ) vcpkg_install_make() diff --git a/ports/libidn2/vcpkg.json b/ports/libidn2/vcpkg.json index 5b5a6b63983b8c..744285691ee0ec 100644 --- a/ports/libidn2/vcpkg.json +++ b/ports/libidn2/vcpkg.json @@ -1,7 +1,7 @@ { "name": "libidn2", "version-string": "2.3.0", - "port-version": 2, + "port-version": 3, "description": "GNU Libidn is an implementation of the Stringprep, Punycode and IDNA 2003 specifications. Libidn's purpose is to encode and decode internationalized domain names.", "homepage": "https://www.gnu.org/software/libidn/", "dependencies": [ From 4dee1aad5b8186a88bee84862cd441a693cdbf78 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 21 Apr 2021 16:21:34 +0200 Subject: [PATCH 39/52] ./vcpkg x-add-version libidn2 --- versions/baseline.json | 2 +- versions/l-/libidn2.json | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/versions/baseline.json b/versions/baseline.json index e95755a163762a..f6055635bf28f1 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -3166,7 +3166,7 @@ }, "libidn2": { "baseline": "2.3.0", - "port-version": 2 + "port-version": 3 }, "libigl": { "baseline": "2.2.0", diff --git a/versions/l-/libidn2.json b/versions/l-/libidn2.json index 688c8a1ace126a..41e6262073974a 100644 --- a/versions/l-/libidn2.json +++ b/versions/l-/libidn2.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "e3d0c9f2d11dd01a772e931cbf48daec85390584", + "version-string": "2.3.0", + "port-version": 3 + }, { "git-tree": "6f5a62105488c9eb440e97c4d49a1ac6c8fa996c", "version-string": "2.3.0", From 06af14a74e923b6188a303ee0fb3fac952e4042d Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 21 Apr 2021 16:23:37 +0200 Subject: [PATCH 40/52] disable documentation generation --- ports/libtasn1/portfile.cmake | 1 + ports/libtasn1/vcpkg.json | 1 + 2 files changed, 2 insertions(+) diff --git a/ports/libtasn1/portfile.cmake b/ports/libtasn1/portfile.cmake index 7b2cd0ef4c8e5d..268f5451cdf9b5 100644 --- a/ports/libtasn1/portfile.cmake +++ b/ports/libtasn1/portfile.cmake @@ -21,6 +21,7 @@ vcpkg_configure_make( SOURCE_PATH ${SOURCE_PATH} OPTIONS --disable-doc + --disable-gtk-doc-html ) vcpkg_install_make() diff --git a/ports/libtasn1/vcpkg.json b/ports/libtasn1/vcpkg.json index fbe18fbcf973b0..b89caf46952044 100644 --- a/ports/libtasn1/vcpkg.json +++ b/ports/libtasn1/vcpkg.json @@ -1,6 +1,7 @@ { "name": "libtasn1", "version": "4.16.0", + "port-version": 1, "description": "A secure communications library implementing the SSL, TLS and DTLS protocols", "homepage": "https://www.gnutls.org/", "supports": "!windows" From e33c31113abf8022214fab10f82212c76b315eac Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 21 Apr 2021 16:24:11 +0200 Subject: [PATCH 41/52] ./vcpkg x-add-version libtasn1 --- versions/baseline.json | 2 +- versions/l-/libtasn1.json | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/versions/baseline.json b/versions/baseline.json index f6055635bf28f1..38c9a0e6a7fc19 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -3526,7 +3526,7 @@ }, "libtasn1": { "baseline": "4.16.0", - "port-version": 0 + "port-version": 1 }, "libtcod": { "baseline": "1.16.6", diff --git a/versions/l-/libtasn1.json b/versions/l-/libtasn1.json index 68d29b657dd6ee..9a6fe1921a4c26 100644 --- a/versions/l-/libtasn1.json +++ b/versions/l-/libtasn1.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "8d923c600f3d8f4a90fe0178b5960b6676f32a5d", + "version": "4.16.0", + "port-version": 1 + }, { "git-tree": "bf9ef7a92f92205f0c883a302b7dae4eea9effee", "version": "4.16.0", From 24f5c9c015f577e02c27841c11ad4ef0e86ccee4 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 21 Apr 2021 16:38:17 +0200 Subject: [PATCH 42/52] patch cflags --- ports/nettle/flags.patch | 13 +++++++++++++ ports/nettle/portfile.cmake | 4 +++- ports/nettle/vcpkg.json | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 ports/nettle/flags.patch diff --git a/ports/nettle/flags.patch b/ports/nettle/flags.patch new file mode 100644 index 00000000000000..990bd6d3e2ddc3 --- /dev/null +++ b/ports/nettle/flags.patch @@ -0,0 +1,13 @@ +diff --git a/Makefile.in b/Makefile.in +index e5ccfc7..922aa0c 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -309,7 +309,7 @@ $(LIBHOGWEED_FORLINK): $(hogweed_OBJS) $(LIBNETTLE_FORLINK) + + # For building the various *data.c programs. -lm needed for shadata. + %$(EXEEXT_FOR_BUILD): %.c +- $(CC_FOR_BUILD) $< -lm -o $@ ++ $(CC_FOR_BUILD) $< $(CFLAGS) -lm -o $@ + + # Explicit dependency. + eccdata$(EXEEXT_FOR_BUILD): mini-gmp.c mini-gmp.h diff --git a/ports/nettle/portfile.cmake b/ports/nettle/portfile.cmake index 2f7503eb5246da..731017de7be79d 100644 --- a/ports/nettle/portfile.cmake +++ b/ports/nettle/portfile.cmake @@ -102,7 +102,9 @@ else() REF 9e2bea82b9fb606bffd2d3f648e05248e146e54f #v3.6 SHA512 008089eba2ef197a0ec6a266baac485e72051e646d19861f3fb605915a591bc2dd38edcb4ea7eaad958ea5d56f7744d42c25b691b49921a1285edd22f9c90b7f HEAD_REF master - PATCHES fix-InstallLibPath.patch + PATCHES + fix-InstallLibPath.patch + flags.patch ) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) diff --git a/ports/nettle/vcpkg.json b/ports/nettle/vcpkg.json index 72df593ce020db..1a653be5ff7681 100644 --- a/ports/nettle/vcpkg.json +++ b/ports/nettle/vcpkg.json @@ -1,6 +1,7 @@ { "name": "nettle", "version-string": "3.6", + "port-version": 1, "description": "Nettle is a low-level cryptographic library that is designed to fit easily in more or less any context: In crypto toolkits for object-oriented languages (C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in kernel space.", "homepage": "https://git.lysator.liu.se/nettle/nettle", "dependencies": [ From fd2b7e825b6db7987f0cf52451863960a8e18722 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 21 Apr 2021 16:38:39 +0200 Subject: [PATCH 43/52] ./vcpkg x-add-version nettle --- versions/baseline.json | 2 +- versions/n-/nettle.json | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/versions/baseline.json b/versions/baseline.json index 38c9a0e6a7fc19..84123ba315be97 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4218,7 +4218,7 @@ }, "nettle": { "baseline": "3.6", - "port-version": 0 + "port-version": 1 }, "networkdirect-sdk": { "baseline": "2.0.1", diff --git a/versions/n-/nettle.json b/versions/n-/nettle.json index d69d95a038e42d..00096cd8d2ec10 100644 --- a/versions/n-/nettle.json +++ b/versions/n-/nettle.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "87e3211d256198eb00d854b24b2043efb0fe892d", + "version-string": "3.6", + "port-version": 1 + }, { "git-tree": "c5667fa4f9c8aae21162042f6193069cdb994337", "version-string": "3.6", From 80319a9cecd995cd73329629a07a88a8da4101e5 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 18 May 2021 16:04:22 +0200 Subject: [PATCH 44/52] fix LDFLAGS passing to configure --- scripts/cmake/vcpkg_configure_make.cmake | 10 +++++----- scripts/get_cmake_vars/CMakeLists.txt | 6 ++++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 4ccf9b11930866..884c353e7d117d 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -703,9 +703,9 @@ function(vcpkg_configure_make) set(SHORT_NAME_${_VAR_SUFFIX} "dbg") list(APPEND _buildtypes ${_VAR_SUFFIX}) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - set(LINKER_FLAGS_${_VAR_SUFFIX} "${VCPKG_DETECTED_CMAKE_STATIC_LINKERFLAGS_${_VAR_SUFFIX}}") + set(LINKER_FLAGS_${_VAR_SUFFIX} "${VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_${_VAR_SUFFIX}}") else() # dynamic - set(LINKER_FLAGS_${_VAR_SUFFIX} "${VCPKG_DETECTED_CMAKE_SHARED_LINKERFLAGS_${_VAR_SUFFIX}}") + set(LINKER_FLAGS_${_VAR_SUFFIX} "${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_${_VAR_SUFFIX}}") endif() _vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags(${_VAR_SUFFIX}) if (CMAKE_HOST_WIN32 AND VCPKG_DETECTED_CMAKE_C_COMPILER MATCHES "cl.exe") @@ -736,9 +736,9 @@ function(vcpkg_configure_make) set(SHORT_NAME_${_VAR_SUFFIX} "rel") list(APPEND _buildtypes ${_VAR_SUFFIX}) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - set(LINKER_FLAGS_${_VAR_SUFFIX} "${VCPKG_DETECTED_CMAKE_STATIC_LINKERFLAGS_${_VAR_SUFFIX}}") + set(LINKER_FLAGS_${_VAR_SUFFIX} "${VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_${_VAR_SUFFIX}}") else() # dynamic - set(LINKER_FLAGS_${_VAR_SUFFIX} "${VCPKG_DETECTED_CMAKE_SHARED_LINKERFLAGS_${_VAR_SUFFIX}}") + set(LINKER_FLAGS_${_VAR_SUFFIX} "${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_${_VAR_SUFFIX}}") endif() _vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags(${_VAR_SUFFIX}) if (CMAKE_HOST_WIN32 AND VCPKG_DETECTED_CMAKE_C_COMPILER MATCHES "cl.exe") @@ -816,7 +816,7 @@ function(vcpkg_configure_make) set(ENV{CFLAGS} "${CFLAGS_${_buildtype}}") set(ENV{CXXFLAGS} "${CXXFLAGS_${_buildtype}}") set(ENV{RCFLAGS} "${VCPKG_DETECTED_CMAKE_RC_FLAGS_${_buildtype}}") - set(ENV{LDFLAGS} "${LDFLAGS_${_buildtype}}") + set(ENV{LDFLAGS} "${LDFLAGS_${_buildtype}} ${LINKER_FLAGS}") if(LINK_ENV_${_VAR_SUFFIX}) set(_LINK_CONFIG_BACKUP "$ENV{_LINK_}") set(ENV{_LINK_} "${LINK_ENV_${_VAR_SUFFIX}}") diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index 09492f2b10d2af..538d67db07bb88 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -85,16 +85,22 @@ if(APPLE) foreach(_arch ${CMAKE_OSX_ARCHITECTURES}) string(APPEND CMAKE_CXX_FLAGS " -arch ${_arch}") string(APPEND CMAKE_C_FLAGS " -arch ${_arch}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " -arch ${_arch}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " -arch ${_arch}") endforeach() if(CMAKE_OSX_DEPLOYMENT_TARGET) string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_OSX_DEPLOYMENT_TARGET_FLAG}${CMAKE_OSX_DEPLOYMENT_TARGET}") string(APPEND CMAKE_C_FLAGS " ${CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG}${CMAKE_OSX_DEPLOYMENT_TARGET}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG}${CMAKE_OSX_DEPLOYMENT_TARGET}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG}${CMAKE_OSX_DEPLOYMENT_TARGET}") endif() if(CMAKE_OSX_SYSROOT) string(APPEND CMAKE_CXX_FLAGS " ${CMAKE_CXX_SYSROOT_FLAG} ${CMAKE_OSX_SYSROOT}") string(APPEND CMAKE_C_FLAGS " ${CMAKE_C_SYSROOT_FLAG} ${CMAKE_OSX_SYSROOT}") + string(APPEND CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_C_SYSROOT_FLAG} ${CMAKE_OSX_SYSROOT}") + string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_C_SYSROOT_FLAG} ${CMAKE_OSX_SYSROOT}") endif() else() From 982c15ea0c6257f99ae3ffc973687b17c19f7f13 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 1 Jun 2021 16:44:13 +0200 Subject: [PATCH 45/52] add CC_FOR_BUILD, CFLAGS_FOR_BUILD, ... --- scripts/cmake/vcpkg_build_make.cmake | 45 +++- scripts/cmake/vcpkg_configure_cmake.cmake | 72 +++--- scripts/cmake/vcpkg_configure_make.cmake | 216 +++++++++++++----- .../cmake/vcpkg_internal_get_cmake_vars.cmake | 29 ++- 4 files changed, 269 insertions(+), 93 deletions(-) diff --git a/scripts/cmake/vcpkg_build_make.cmake b/scripts/cmake/vcpkg_build_make.cmake index 5f39743717dd4e..a454c2570968e4 100755 --- a/scripts/cmake/vcpkg_build_make.cmake +++ b/scripts/cmake/vcpkg_build_make.cmake @@ -55,8 +55,17 @@ function(vcpkg_build_make) # vcpkg_build_make called without using vcpkg_configure_make before vcpkg_internal_get_cmake_vars(OUTPUT_FILE _VCPKG_CMAKE_VARS_FILE) endif() + include("${_VCPKG_CMAKE_VARS_FILE}") + if(VCPKG_CROSSCOMPILING) + if(NOT _VCPKG_HOST_CMAKE_VARS_FILE) + _vcpkg_cmake_to_vcpkg_arch(${CMAKE_HOST_SYSTEM_PROCESSOR} _host_arch) + vcpkg_internal_get_cmake_vars(OUTPUT_FILE _VCPKG_HOST_CMAKE_VARS_FILE TRIPLET ${_HOST_TRIPLET} VAR_PREFIX VCPKG_DETECTED_FOR_BUILD TARGET_ARCHITECTURE ${_host_arch}) + endif() + include("${_VCPKG_HOST_CMAKE_VARS_FILE}") + endif() + # parse parameters such that semicolons in options arguments to COMMAND don't get erased cmake_parse_arguments(PARSE_ARGV 0 _bc "ADD_BIN_TO_PATH;ENABLE_INSTALL;DISABLE_PARALLEL" "LOGFILE_ROOT;BUILD_TARGET;SUBPATH;MAKEFILE;INSTALL_TARGET" "") @@ -79,9 +88,11 @@ function(vcpkg_build_make) if(WIN32) set(_VCPKG_PREFIX ${CURRENT_PACKAGES_DIR}) set(_VCPKG_INSTALLED ${CURRENT_INSTALLED_DIR}) + set(_VCPKG_HOST_INSTALLED ${CURRENT_HOST_INSTALLED_DIR}) else() string(REPLACE " " "\ " _VCPKG_PREFIX "${CURRENT_PACKAGES_DIR}") string(REPLACE " " "\ " _VCPKG_INSTALLED "${CURRENT_INSTALLED_DIR}") + string(REPLACE " " "\ " _VCPKG_HOST_INSTALLED "${CURRENT_HOST_INSTALLED_DIR}") endif() set(MAKE ) @@ -141,19 +152,41 @@ function(vcpkg_build_make) set(WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}${SHORT_BUILDTYPE}${_bc_SUBPATH}") message(STATUS "Building ${TARGET_TRIPLET}${SHORT_BUILDTYPE}") - _vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags(${CMAKE_BUILDTYPE}) + _vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags(${CMAKE_BUILDTYPE} FALSE) + _vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags(${CMAKE_BUILDTYPE} TRUE) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - set(LINKER_FLAGS_${CMAKE_BUILDTYPE} "${VCPKG_DETECTED_STATIC_LINKERFLAGS_${CMAKE_BUILDTYPE}}") + _vcpkg_select_for_build_detected( + CMAKE_STATIC_LINKER_FLAGS_${CMAKE_BUILDTYPE} + FALSE + LINKER_FLAGS_${CMAKE_BUILDTYPE}) + _vcpkg_select_for_build_detected( + CMAKE_STATIC_LINKER_FLAGS_${CMAKE_BUILDTYPE} + TRUE + LINKER_FLAGS_${CMAKE_BUILDTYPE}_FOR_BUILD) else() # dynamic - set(LINKER_FLAGS_${CMAKE_BUILDTYPE} "${VCPKG_DETECTED_SHARED_LINKERFLAGS_${CMAKE_BUILDTYPE}}") + _vcpkg_select_for_build_detected( + CMAKE_SHARED_LINKER_FLAGS_${CMAKE_BUILDTYPE} + FALSE + LINKER_FLAGS_${CMAKE_BUILDTYPE}) + _vcpkg_select_for_build_detected( + CMAKE_SHARED_LINKER_FLAGS_${CMAKE_BUILDTYPE} + TRUE + LINKER_FLAGS_${CMAKE_BUILDTYPE}_FOR_BUILD) endif() + if (CMAKE_HOST_WIN32 AND VCPKG_DETECTED_C_COMPILER MATCHES "cl.exe") set(LDFLAGS_${CMAKE_BUILDTYPE} "-L${_VCPKG_INSTALLED}${PATH_SUFFIX}/lib -L${_VCPKG_INSTALLED}${PATH_SUFFIX}/lib/manual-link") set(LINK_ENV_${CMAKE_BUILDTYPE} "$ENV{_LINK_} ${LINKER_FLAGS_${CMAKE_BUILDTYPE}}") else() set(LDFLAGS_${CMAKE_BUILDTYPE} "-L${_VCPKG_INSTALLED}${PATH_SUFFIX}/lib -L${_VCPKG_INSTALLED}${PATH_SUFFIX}/lib/manual-link ${LINKER_FLAGS_${CMAKE_BUILDTYPE}}") endif() + + if (CMAKE_HOST_WIN32 AND VCPKG_DETECTED_FOR_BUILD_C_COMPILER MATCHES "cl.exe") + set(LDFLAGS_${CMAKE_BUILDTYPE}_FOR_BUILD "-L${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX}/lib -L${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX}/lib/manual-link") + else() + set(LDFLAGS_${CMAKE_BUILDTYPE}_FOR_BUILD "-L${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX}/lib -L${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX}/lib/manual-link ${LINKER_FLAGS_${CMAKE_BUILDTYPE}_FOR_BUILD}") + endif() # Setup environment set(ENV{CPPFLAGS} "${CPPFLAGS_${CMAKE_BUILDTYPE}}") @@ -164,6 +197,12 @@ function(vcpkg_build_make) set(ENV{LIB} "${_VCPKG_INSTALLED}${PATH_SUFFIX}/lib/${VCPKG_HOST_PATH_SEPARATOR}${_VCPKG_INSTALLED}${PATH_SUFFIX}/lib/manual-link/${LIB_PATHLIKE_CONCAT}") set(ENV{LIBPATH} "${_VCPKG_INSTALLED}${PATH_SUFFIX}/lib/${VCPKG_HOST_PATH_SEPARATOR}${_VCPKG_INSTALLED}${PATH_SUFFIX}/lib/manual-link/${LIBPATH_PATHLIKE_CONCAT}") set(ENV{LIBRARY_PATH} "${_VCPKG_INSTALLED}${PATH_SUFFIX}/lib/${VCPKG_HOST_PATH_SEPARATOR}${_VCPKG_INSTALLED}${PATH_SUFFIX}/lib/manual-link/${LIBRARY_PATH_PATHLIKE_CONCAT}") + + set(ENV{CPPFLAGS_FOR_BUILD} "${CPPFLAGS_${CMAKE_BUILDTYPE}_FOR_BUILD}") + set(ENV{CFLAGS_FOR_BUILD} "${CFLAGS_${CMAKE_BUILDTYPE}_FOR_BUILD}") + set(ENV{CXXFLAGS_FOR_BUILD} "${CXXFLAGS_${CMAKE_BUILDTYPE}_FOR_BUILD}") + set(ENV{LDFLAGS_FOR_BUILD} "${LDFLAGS_${CMAKE_BUILDTYPE}_FOR_BUILD}") + #set(ENV{LD_LIBRARY_PATH} "${_VCPKG_INSTALLED}${PATH_SUFFIX_${BUILDTYPE}}/lib/${VCPKG_HOST_PATH_SEPARATOR}${_VCPKG_INSTALLED}${PATH_SUFFIX_${BUILDTYPE}}/lib/manual-link/${LD_LIBRARY_PATH_PATHLIKE_CONCAT}") if(LINK_ENV_${_VAR_SUFFIX}) diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake index fdf054e43ee975..850ab97730ee80 100644 --- a/scripts/cmake/vcpkg_configure_cmake.cmake +++ b/scripts/cmake/vcpkg_configure_cmake.cmake @@ -74,7 +74,7 @@ function(vcpkg_configure_cmake) cmake_parse_arguments(PARSE_ARGV 0 arg "PREFER_NINJA;DISABLE_PARALLEL_CONFIGURE;NO_CHARSET_FLAG" - "SOURCE_PATH;GENERATOR;LOGNAME" + "SOURCE_PATH;GENERATOR;LOGNAME;TRIPLET;TARGET_ARCHITECTURE" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" ) @@ -83,8 +83,16 @@ function(vcpkg_configure_cmake) "however, vcpkg.exe must be rebuilt by re-running bootstrap-vcpkg.bat\n") endif() + if(NOT arg_TRIPLET) + set(arg_TRIPLET ${TARGET_TRIPLET}) + endif() + + if(NOT arg_TARGET_ARCHITECTURE) + set(arg_TARGET_ARCHITECTURE ${VCPKG_TARGET_ARCHITECTURE}) + endif() + if(NOT arg_LOGNAME) - set(arg_LOGNAME config-${TARGET_TRIPLET}) + set(arg_LOGNAME config-${arg_TRIPLET}) endif() if(CMAKE_HOST_WIN32) @@ -118,40 +126,40 @@ function(vcpkg_configure_cmake) elseif(VCPKG_CHAINLOAD_TOOLCHAIN_FILE OR (VCPKG_CMAKE_SYSTEM_NAME AND NOT _TARGETTING_UWP)) set(GENERATOR "Ninja") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v120") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "x86" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v120") set(GENERATOR "Visual Studio 12 2013") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v120") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "x64" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v120") set(GENERATOR "Visual Studio 12 2013 Win64") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v120") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "arm" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v120") set(GENERATOR "Visual Studio 12 2013 ARM") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v140") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "x86" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v140") set(GENERATOR "Visual Studio 14 2015") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v140") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "x64" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v140") set(GENERATOR "Visual Studio 14 2015 Win64") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v140") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "arm" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v140") set(GENERATOR "Visual Studio 14 2015 ARM") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v141") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "x86" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v141") set(GENERATOR "Visual Studio 15 2017") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v141") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "x64" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v141") set(GENERATOR "Visual Studio 15 2017 Win64") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v141") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "arm" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v141") set(GENERATOR "Visual Studio 15 2017 ARM") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v141") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "arm64" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v141") set(GENERATOR "Visual Studio 15 2017") set(ARCH "ARM64") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v142") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "x86" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v142") set(GENERATOR "Visual Studio 16 2019") set(ARCH "Win32") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v142") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "x64" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v142") set(GENERATOR "Visual Studio 16 2019") set(ARCH "x64") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v142") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "arm" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v142") set(GENERATOR "Visual Studio 16 2019") set(ARCH "ARM") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v142") + elseif(arg_TARGET_ARCHITECTURE STREQUAL "arm64" AND VCPKG_PLATFORM_TOOLSET STREQUAL "v142") set(GENERATOR "Visual Studio 16 2019") set(ARCH "ARM64") @@ -160,7 +168,7 @@ function(vcpkg_configure_cmake) set(VCPKG_CMAKE_SYSTEM_NAME Windows) endif() message(FATAL_ERROR "Unable to determine appropriate generator for: " - "${VCPKG_CMAKE_SYSTEM_NAME}-${VCPKG_TARGET_ARCHITECTURE}-${VCPKG_PLATFORM_TOOLSET}") + "${VCPKG_CMAKE_SYSTEM_NAME}-${arg_TARGET_ARCHITECTURE}-${VCPKG_PLATFORM_TOOLSET}") endif() # If we use Ninja, make sure it's on PATH @@ -171,7 +179,7 @@ function(vcpkg_configure_cmake) list(APPEND arg_OPTIONS "-DCMAKE_MAKE_PROGRAM=${NINJA}") endif() - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${arg_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${arg_TRIPLET}-dbg) if(DEFINED VCPKG_CMAKE_SYSTEM_NAME) list(APPEND arg_OPTIONS "-DCMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}") @@ -234,7 +242,8 @@ function(vcpkg_configure_cmake) list(APPEND arg_OPTIONS "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}" - "-DVCPKG_TARGET_TRIPLET=${TARGET_TRIPLET}" + "-DVCPKG_TARGET_TRIPLET=${arg_TRIPLET}" + "-DVCPKG_TARGET_ARCHITECTURE=${arg_TARGET_ARCHITECTURE}" "-DVCPKG_SET_CHARSET_FLAG=${VCPKG_SET_CHARSET_FLAG}" "-DVCPKG_PLATFORM_TOOLSET=${VCPKG_PLATFORM_TOOLSET}" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" @@ -255,7 +264,6 @@ function(vcpkg_configure_cmake) "-DVCPKG_LINKER_FLAGS=${VCPKG_LINKER_FLAGS}" "-DVCPKG_LINKER_FLAGS_RELEASE=${VCPKG_LINKER_FLAGS_RELEASE}" "-DVCPKG_LINKER_FLAGS_DEBUG=${VCPKG_LINKER_FLAGS_DEBUG}" - "-DVCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE}" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=${VCPKG_ROOT_DIR}" @@ -309,39 +317,39 @@ function(vcpkg_configure_cmake) if(NOT DEFINED VCPKG_BUILD_TYPE) _build_cmakecache(".." "rel") - _build_cmakecache("../../${TARGET_TRIPLET}-dbg" "dbg") + _build_cmakecache("../../${arg_TRIPLET}-dbg" "dbg") elseif(VCPKG_BUILD_TYPE STREQUAL "release") _build_cmakecache(".." "rel") elseif(VCPKG_BUILD_TYPE STREQUAL "debug") - _build_cmakecache("../../${TARGET_TRIPLET}-dbg" "dbg") + _build_cmakecache("../../${arg_TRIPLET}-dbg" "dbg") endif() - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vcpkg-parallel-configure) - file(WRITE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vcpkg-parallel-configure/build.ninja "${_contents}") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${arg_TRIPLET}-rel/vcpkg-parallel-configure) + file(WRITE ${CURRENT_BUILDTREES_DIR}/${arg_TRIPLET}-rel/vcpkg-parallel-configure/build.ninja "${_contents}") - message(STATUS "Configuring ${TARGET_TRIPLET}") + message(STATUS "Configuring ${arg_TRIPLET}") vcpkg_execute_required_process( COMMAND ninja -v - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vcpkg-parallel-configure + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${arg_TRIPLET}-rel/vcpkg-parallel-configure LOGNAME ${arg_LOGNAME} ) else() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + message(STATUS "Configuring ${arg_TRIPLET}-dbg") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${arg_TRIPLET}-dbg) vcpkg_execute_required_process( COMMAND ${dbg_command} - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${arg_TRIPLET}-dbg LOGNAME ${arg_LOGNAME}-dbg ) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - message(STATUS "Configuring ${TARGET_TRIPLET}-rel") - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + message(STATUS "Configuring ${arg_TRIPLET}-rel") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${arg_TRIPLET}-rel) vcpkg_execute_required_process( COMMAND ${rel_command} - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${arg_TRIPLET}-rel LOGNAME ${arg_LOGNAME}-rel ) endif() diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 48d68efd889a80..f19336064c45d2 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -118,6 +118,19 @@ function(_vcpkg_cmake_to_autotools_arch in_arch out_var) endif() endfunction() +function(_vcpkg_cmake_to_vcpkg_arch in_arch out_var) + unset(${out_var} PARENT_SCOPE) + if(in_arch MATCHES "(amd|AMD)64" OR in_arch MATCHES "(x|X)86[-_]+64" OR in_arch MATCHES "x64") + set(${out_var} x64 PARENT_SCOPE) + elseif(in_arch MATCHES "(x|X)86") + set(${out_var} x86 PARENT_SCOPE) + elseif(in_arch MATCHES "^(ARM|arm)64$") + set(${out_var} arm64 PARENT_SCOPE) + elseif(in_arch MATCHES "^(ARM|arm)$") + set(${out_var} arm PARENT_SCOPE) + endif() +endfunction() + function(_vcpkg_cmake_to_autotools_system in_system out_var) unset(${out_var} PARENT_SCOPE) if(in_system MATCHES "Linux") @@ -229,51 +242,87 @@ macro(_vcpkg_restore_env_variables) endforeach() endmacro() -macro(_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags _SUFFIX) - string(REGEX MATCHALL "( |^)-D[^ ]+" CPPFLAGS_${_SUFFIX} "${VCPKG_DETECTED_CMAKE_C_FLAGS_${_SUFFIX}}") - string(REGEX MATCHALL "( |^)-D[^ ]+" CXXPPFLAGS_${_SUFFIX} "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_${_SUFFIX}}") - list(JOIN CXXPPFLAGS_${_SUFFIX} "|" CXXREGEX) +macro(_vcpkg_select_for_build_detected cmake_var for_build out_var) + if (${VCPKG_CROSSCOMPILING} AND ${for_build}) + set(${out_var} ${VCPKG_DETECTED_FOR_BUILD_${cmake_var}}) + else() + set(${out_var} ${VCPKG_DETECTED_${cmake_var}}) + endif() +endmacro() + +macro(_vcpkg_setup_detected_env env_name cmake_var) + if(VCPKG_DETECTED_${cmake_var}) + set(ENV{${env_name}} "${VCPKG_DETECTED_${cmake_var}}") + endif() + set(env_name_for_build ${env_name}_FOR_BUILD) + _vcpkg_select_for_build_detected(${cmake_var} TRUE ${env_name}_for_build) + if (${env_name}_for_build) + set(ENV{${env_name_for_build}} "${${env_name}_for_build}") + endif() +endmacro() + +macro(_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags _SUFFIX _FOR_BUILD) + _vcpkg_select_for_build_detected(CMAKE_C_FLAGS_${_SUFFIX} ${_FOR_BUILD} C_FLAGS) + _vcpkg_select_for_build_detected(CMAKE_CXX_FLAGS_${_SUFFIX} ${_FOR_BUILD} CXX_FLAGS) + _vcpkg_select_for_build_detected(CMAKE_OSX_SYSROOT ${_FOR_BUILD} OSX_SYSROOT) + _vcpkg_select_for_build_detected(CMAKE_INCLUDE_FLAG_C ${_FOR_BUILD} INCLUDE_FLAG_C) + _vcpkg_select_for_build_detected(CMAKE_INCLUDE_FLAG_C_SEP ${_FOR_BUILD} INCLUDE_FLAG_C_SEP) + _vcpkg_select_for_build_detected(CMAKE_INCLUDE_FLAG_CXX ${_FOR_BUILD} INCLUDE_FLAG_CXX) + _vcpkg_select_for_build_detected(CMAKE_INCLUDE_FLAG_CXX_SEP ${_FOR_BUILD} INCLUDE_FLAG_CXX_SEP) + if(${_FOR_BUILD}) + set(VAR_SUFFIX ${_SUFFIX}_FOR_BUILD) + else() + set(VAR_SUFFIX ${_SUFFIX}) + endif() + + string(REGEX MATCHALL "( |^)-D[^ ]+" CPPFLAGS_${VAR_SUFFIX} "${C_FLAGS}") + string(REGEX MATCHALL "( |^)-D[^ ]+" CXXPPFLAGS_${VAR_SUFFIX} "${CXX_FLAGS}") + list(JOIN CXXPPFLAGS_${VAR_SUFFIX} "|" CXXREGEX) if(CXXREGEX) - list(FILTER CPPFLAGS_${_SUFFIX} INCLUDE REGEX "(${CXXREGEX})") + list(FILTER CPPFLAGS_${VAR_SUFFIX} INCLUDE REGEX "(${CXXREGEX})") else() - set(CPPFLAGS_${_SUFFIX}) + set(CPPFLAGS_${VAR_SUFFIX}) endif() - list(JOIN CPPFLAGS_${_SUFFIX} "|" CPPREGEX) - list(JOIN CPPFLAGS_${_SUFFIX} " " CPPFLAGS_${_SUFFIX}) - set(CPPFLAGS_${_SUFFIX} "${CPPFLAGS_${_SUFFIX}}") + list(JOIN CPPFLAGS_${VAR_SUFFIX} "|" CPPREGEX) + list(JOIN CPPFLAGS_${VAR_SUFFIX} " " CPPFLAGS_${VAR_SUFFIX}) + set(CPPFLAGS_${VAR_SUFFIX} "${CPPFLAGS_${VAR_SUFFIX}}") if(CPPREGEX) - string(REGEX REPLACE "(${CPPREGEX})" "" CFLAGS_${_SUFFIX} "${VCPKG_DETECTED_CMAKE_C_FLAGS_${_SUFFIX}}") - string(REGEX REPLACE "(${CPPREGEX})" "" CXXFLAGS_${_SUFFIX} "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_${_SUFFIX}}") + string(REGEX REPLACE "(${CPPREGEX})" "" CFLAGS_${VAR_SUFFIX} "${C_FLAGS}") + string(REGEX REPLACE "(${CPPREGEX})" "" CXXFLAGS_${VAR_SUFFIX} "${CXX_FLAGS}") else() - set(CFLAGS_${_SUFFIX} "${VCPKG_DETECTED_CMAKE_C_FLAGS_${_SUFFIX}}") - set(CXXFLAGS_${_SUFFIX} "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_${_SUFFIX}}") + set(CFLAGS_${VAR_SUFFIX} "${C_FLAGS}") + set(CXXFLAGS_${VAR_SUFFIX} "${CXX_FLAGS}") endif() - string(REGEX REPLACE " +" " " CPPFLAGS_${_SUFFIX} "${CPPFLAGS_${_SUFFIX}}") - string(REGEX REPLACE " +" " " CFLAGS_${_SUFFIX} "${CFLAGS_${_SUFFIX}}") - string(REGEX REPLACE " +" " " CXXFLAGS_${_SUFFIX} "${CXXFLAGS_${_SUFFIX}}") + string(REGEX REPLACE " +" " " CPPFLAGS_${VAR_SUFFIX} "${CPPFLAGS_${VAR_SUFFIX}}") + string(REGEX REPLACE " +" " " CFLAGS_${VAR_SUFFIX} "${CFLAGS_${VAR_SUFFIX}}") + string(REGEX REPLACE " +" " " CXXFLAGS_${VAR_SUFFIX} "${CXXFLAGS_${VAR_SUFFIX}}") # libtool has and -R option so we need to guard against -RTC by using -Xcompiler # while configuring there might be a lot of unknown compiler option warnings due to that # just ignore them. - string(REGEX REPLACE "((-|/)RTC[^ ]+)" "-Xcompiler \\1" CFLAGS_${_SUFFIX} "${CFLAGS_${_SUFFIX}}") - string(REGEX REPLACE "((-|/)RTC[^ ]+)" "-Xcompiler \\1" CXXFLAGS_${_SUFFIX} "${CXXFLAGS_${_SUFFIX}}") + string(REGEX REPLACE "((-|/)RTC[^ ]+)" "-Xcompiler \\1" CFLAGS_${VAR_SUFFIX} "${CFLAGS_${VAR_SUFFIX}}") + string(REGEX REPLACE "((-|/)RTC[^ ]+)" "-Xcompiler \\1" CXXFLAGS_${VAR_SUFFIX} "${CXXFLAGS_${VAR_SUFFIX}}") - if (VCPKG_DETECTED_CMAKE_OSX_SYSROOT) - string(APPEND CPPFLAGS_${_SUFFIX} " -isysroot ${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}") + if (OSX_SYSROOT) + string(APPEND CPPFLAGS_${VAR_SUFFIX} " -isysroot ${OSX_SYSROOT}") endif() - set(VCPKG_INCLUDE_PATH "${CURRENT_INSTALLED_DIR}/include") + if (${VCPKG_CROSSCOMPILING} AND ${_FOR_BUILD}) + set(VCPKG_INCLUDE_PATH "${CURRENT_HOST_INSTALLED_DIR}/include") + else() + set(VCPKG_INCLUDE_PATH "${CURRENT_INSTALLED_DIR}/include") + endif() file(TO_NATIVE_PATH "${VCPKG_INCLUDE_PATH}" VCPKG_INCLUDE_PATH) set(VCPKG_INCLUDE_PATH "\"${VCPKG_INCLUDE_PATH}\"") - string(APPEND CFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_C_SEP}${VCPKG_INCLUDE_PATH}") - string(APPEND CXXFLAGS_${_SUFFIX} " ${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX}${VCPKG_DETECTED_CMAKE_INCLUDE_FLAG_CXX_SEP}${VCPKG_INCLUDE_PATH}") + string(APPEND CFLAGS_${VAR_SUFFIX} " ${INCLUDE_FLAG_C}${INCLUDE_FLAG_C_SEP}${VCPKG_INCLUDE_PATH}") + string(APPEND CXXFLAGS_${VAR_SUFFIX} " ${INCLUDE_FLAG_CXX}${INCLUDE_FLAG_CXX_SEP}${VCPKG_INCLUDE_PATH}") - string(STRIP "${CPPFLAGS_${_SUFFIX}}" CPPFLAGS_${_SUFFIX}) - string(STRIP "${CFLAGS_${_SUFFIX}}" CFLAGS_${_SUFFIX}) - string(STRIP "${CXXFLAGS_${_SUFFIX}}" CXXFLAGS_${_SUFFIX}) - debug_message("CPPFLAGS_${_SUFFIX}: ${CPPFLAGS_${_SUFFIX}}") - debug_message("CFLAGS_${_SUFFIX}: ${CFLAGS_${_SUFFIX}}") - debug_message("CXXFLAGS_${_SUFFIX}: ${CXXFLAGS_${_SUFFIX}}") + string(STRIP "${CPPFLAGS_${VAR_SUFFIX}}" CPPFLAGS_${VAR_SUFFIX}) + string(STRIP "${CFLAGS_${VAR_SUFFIX}}" CFLAGS_${VAR_SUFFIX}) + string(STRIP "${CXXFLAGS_${VAR_SUFFIX}}" CXXFLAGS_${VAR_SUFFIX}) + debug_message(STATUS "CPPFLAGS_${VAR_SUFFIX}: ${CPPFLAGS_${VAR_SUFFIX}}") + debug_message(STATUS "CFLAGS_${VAR_SUFFIX}: ${CFLAGS_${VAR_SUFFIX}}") + debug_message(STATUS "CXXFLAGS_${VAR_SUFFIX}: ${CXXFLAGS_${VAR_SUFFIX}}") endmacro() function(vcpkg_configure_make) @@ -290,6 +339,13 @@ function(vcpkg_configure_make) if(DEFINED VCPKG_MAKE_BUILD_TRIPLET) set(_csc_BUILD_TRIPLET ${VCPKG_MAKE_BUILD_TRIPLET}) # Triplet overwrite for crosscompiling endif() + if(VCPKG_CROSSCOMPILING) + _vcpkg_cmake_to_vcpkg_arch(${CMAKE_HOST_SYSTEM_PROCESSOR} _host_arch) + vcpkg_internal_get_cmake_vars(OUTPUT_FILE _VCPKG_HOST_CMAKE_VARS_FILE TRIPLET ${_HOST_TRIPLET} VAR_PREFIX VCPKG_DETECTED_FOR_BUILD TARGET_ARCHITECTURE ${_host_arch}) + set(_VCPKG_HOST_CMAKE_VARS_FILE "${_VCPKG_HOST_CMAKE_VARS_FILE}" PARENT_SCOPE) + debug_message("Including host cmake vars from: ${_VCPKG_HOST_CMAKE_VARS_FILE}") + include("${_VCPKG_HOST_CMAKE_VARS_FILE}") + endif() set(SRC_DIR "${_csc_SOURCE_PATH}/${_csc_PROJECT_SUBPATH}") @@ -501,6 +557,7 @@ function(vcpkg_configure_make) string(REPLACE " " "\\\ " _VCPKG_PREFIX ${CURRENT_INSTALLED_DIR}) string(REGEX REPLACE "([a-zA-Z]):/" "/\\1/" _VCPKG_PREFIX "${_VCPKG_PREFIX}") set(_VCPKG_INSTALLED ${CURRENT_INSTALLED_DIR}) + set(_VCPKG_HOST_INSTALLED ${CURRENT_HOST_INSTALLED_DIR}) set(prefix_var "'\${prefix}'") # Windows needs extra quotes or else the variable gets expanded in the makefile! else() if (NOT _csc_BUILD_TRIPLET) @@ -519,6 +576,7 @@ function(vcpkg_configure_make) string(REPLACE " " "\ " _VCPKG_PREFIX ${CURRENT_INSTALLED_DIR}) string(REPLACE " " "\ " _VCPKG_INSTALLED ${CURRENT_INSTALLED_DIR}) + string(REPLACE " " "\ " _VCPKG_HOST_INSTALLED ${CURRENT_HOST_INSTALLED_DIR}) set(EXTRA_QUOTES) set(prefix_var "\${prefix}") endif() @@ -728,11 +786,26 @@ function(vcpkg_configure_make) set(SHORT_NAME_${_VAR_SUFFIX} "dbg") list(APPEND _buildtypes ${_VAR_SUFFIX}) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - set(LINKER_FLAGS_${_VAR_SUFFIX} "${VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_${_VAR_SUFFIX}}") + _vcpkg_select_for_build_detected( + CMAKE_STATIC_LINKER_FLAGS_${_VAR_SUFFIX} + FALSE + LINKER_FLAGS_${_VAR_SUFFIX}) + _vcpkg_select_for_build_detected( + CMAKE_STATIC_LINKER_FLAGS_${_VAR_SUFFIX} + TRUE + LINKER_FLAGS_${_VAR_SUFFIX}_FOR_BUILD) else() # dynamic - set(LINKER_FLAGS_${_VAR_SUFFIX} "${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_${_VAR_SUFFIX}}") + _vcpkg_select_for_build_detected( + CMAKE_SHARED_LINKER_FLAGS_${_VAR_SUFFIX} + FALSE + LINKER_FLAGS_${_VAR_SUFFIX}) + _vcpkg_select_for_build_detected( + CMAKE_SHARED_LINKER_FLAGS_${_VAR_SUFFIX} + TRUE + LINKER_FLAGS_${_VAR_SUFFIX}_FOR_BUILD) endif() - _vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags(${_VAR_SUFFIX}) + _vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags(${_VAR_SUFFIX} FALSE) + _vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags(${_VAR_SUFFIX} TRUE) if (CMAKE_HOST_WIN32 AND VCPKG_DETECTED_CMAKE_C_COMPILER MATCHES "cl.exe") if(NOT _vcm_paths_with_spaces) set(LDFLAGS_${_VAR_SUFFIX} "-L${_VCPKG_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib -L${_VCPKG_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib/manual-link") @@ -747,12 +820,28 @@ function(vcpkg_configure_make) if(EXISTS "${_VCPKG_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib") set(_link_dirs "-L${_VCPKG_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib") endif() - if(EXISTS "{_VCPKG_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib/manual-link") + if(EXISTS "${_VCPKG_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib/manual-link") set(_link_dirs "${_link_dirs} -L${_VCPKG_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib/manual-link") endif() string(STRIP "${_link_dirs}" _link_dirs) set(LDFLAGS_${_VAR_SUFFIX} "${_link_dirs} ${LINKER_FLAGS_${_VAR_SUFFIX}}") endif() + if (CMAKE_HOST_WIN32 AND VCPKG_DETECTED_FOR_BUILD_CMAKE_C_COMPILER MATCHES "cl.exe") + if(NOT _vcm_paths_with_spaces) + set(LDFLAGS_${_VAR_SUFFIX}_FOR_BUILD "-L${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib -L${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib/manual-link") + endif() + set(LINK_ENV_${_VAR_SUFFIX}_FOR_BUILD "${LINKER_FLAGS_${_VAR_SUFFIX}_FOR_BUILD}") + else() + set(_link_dirs) + if(EXISTS "${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib") + set(_link_dirs_for_build "-L${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib") + endif() + if(EXISTS "${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib/manual-link") + set(_link_dirs_for_build "${_link_dirs_for_build} -L${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib/manual-link") + endif() + string(STRIP "${_link_dirs_for_build}" _link_dirs_for_build) + set(LDFLAGS_${_VAR_SUFFIX}_FOR_BUILD "${_link_dirs_for_build} ${LINKER_FLAGS_${_VAR_SUFFIX}_FOR_BUILD}") + endif() unset(_VAR_SUFFIX) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") @@ -761,11 +850,26 @@ function(vcpkg_configure_make) set(SHORT_NAME_${_VAR_SUFFIX} "rel") list(APPEND _buildtypes ${_VAR_SUFFIX}) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - set(LINKER_FLAGS_${_VAR_SUFFIX} "${VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_${_VAR_SUFFIX}}") + _vcpkg_select_for_build_detected( + CMAKE_STATIC_LINKER_FLAGS_${_VAR_SUFFIX} + FALSE + LINKER_FLAGS_${_VAR_SUFFIX}) + _vcpkg_select_for_build_detected( + CMAKE_STATIC_LINKER_FLAGS_${_VAR_SUFFIX} + TRUE + LINKER_FLAGS_${_VAR_SUFFIX}_FOR_BUILD) else() # dynamic - set(LINKER_FLAGS_${_VAR_SUFFIX} "${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_${_VAR_SUFFIX}}") + _vcpkg_select_for_build_detected( + CMAKE_SHARED_LINKER_FLAGS_${_VAR_SUFFIX} + FALSE + LINKER_FLAGS_${_VAR_SUFFIX}) + _vcpkg_select_for_build_detected( + CMAKE_SHARED_LINKER_FLAGS_${_VAR_SUFFIX} + TRUE + LINKER_FLAGS_${_VAR_SUFFIX}_FOR_BUILD) endif() - _vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags(${_VAR_SUFFIX}) + _vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags(${_VAR_SUFFIX} FALSE) + _vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags(${_VAR_SUFFIX} TRUE) if (CMAKE_HOST_WIN32 AND VCPKG_DETECTED_CMAKE_C_COMPILER MATCHES "cl.exe") if(NOT _vcm_paths_with_spaces) set(LDFLAGS_${_VAR_SUFFIX} "-L${_VCPKG_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib -L${_VCPKG_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib/manual-link") @@ -786,6 +890,22 @@ function(vcpkg_configure_make) string(STRIP "${_link_dirs}" _link_dirs) set(LDFLAGS_${_VAR_SUFFIX} "${_link_dirs} ${LINKER_FLAGS_${_VAR_SUFFIX}}") endif() + if (CMAKE_HOST_WIN32 AND VCPKG_DETECTED_FOR_BUILD_CMAKE_C_COMPILER MATCHES "cl.exe") + if(NOT _vcm_paths_with_spaces) + set(LDFLAGS_${_VAR_SUFFIX}_FOR_BUILD "-L${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib -L${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib/manual-link") + endif() + set(LINK_ENV_${_VAR_SUFFIX}_FOR_BUILD "${LINKER_FLAGS_${_VAR_SUFFIX}_FOR_BUILD}") + else() + set(_link_dirs) + if(EXISTS "${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib") + set(_link_dirs_for_build "-L${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib") + endif() + if(EXISTS "${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib/manual-link") + set(_link_dirs_for_build "${_link_dirs_for_build} -L${_VCPKG_HOST_INSTALLED}${PATH_SUFFIX_${_VAR_SUFFIX}}/lib/manual-link") + endif() + string(STRIP "${_link_dirs_for_build}" _link_dirs_for_build) + set(LDFLAGS_${_VAR_SUFFIX}_FOR_BUILD "${_link_dirs_for_build} ${LINKER_FLAGS_${_VAR_SUFFIX}_FOR_BUILD}") + endif() unset(_VAR_SUFFIX) endif() @@ -817,31 +937,25 @@ function(vcpkg_configure_make) endif() # Setup environment - if (VCPKG_DETECTED_CMAKE_C_COMPILER) - set(ENV{CC} "${VCPKG_DETECTED_CMAKE_C_COMPILER}") - endif() - if (VCPKG_DETECTED_CMAKE_CXX_COMPILER) - set(ENV{CXX} "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") - endif() - if (VCPKG_DETECTED_CMAKE_LINKER) - set(ENV{LD} "${VCPKG_DETECTED_CMAKE_LINKER}") - endif() + _vcpkg_setup_detected_env(CC CMAKE_C_COMPILER) + _vcpkg_setup_detected_env(CXX CMAKE_CXX_COMPILER) + _vcpkg_setup_detected_env(LD CMAKE_LINKER) set(_tools AR RANLIB STRIP NM OBJDUMP DLLTOOL MT STRIP AS) foreach (_toolname ${_tools}) - if (VCPKG_DETECTED_CMAKE_${_toolname}) - set(ENV{${_toolname}} ${VCPKG_DETECTED_CMAKE_${_toolname}}) - endif() + _vcpkg_setup_detected_env(${_toolname} CMAKE_${_toolname}) endforeach() + _vcpkg_setup_detected_env(MACOSX_DEPLOYMENT_TARGET CMAKE_OSX_DEPLOYMENT_TARGET) - if(DEFINED VCPKG_DETECTED_CMAKE_OSX_DEPLOYMENT_TARGET) - set(ENV{MACOSX_DEPLOYMENT_TARGET} "${VCPKG_DETECTED_CMAKE_OSX_DEPLOYMENT_TARGET}") - endif() set(ENV{CPPFLAGS} "${CPPFLAGS_${_buildtype}}") set(ENV{CFLAGS} "${CFLAGS_${_buildtype}}") set(ENV{CXXFLAGS} "${CXXFLAGS_${_buildtype}}") set(ENV{RCFLAGS} "${VCPKG_DETECTED_CMAKE_RC_FLAGS_${_buildtype}}") set(ENV{LDFLAGS} "${LDFLAGS_${_buildtype}} ${LINKER_FLAGS}") + set(ENV{CPPFLAGS_FOR_BUILD} "${CPPFLAGS_${_buildtype}_FOR_BUILD}") + set(ENV{CFLAGS_FOR_BUILD} "${CFLAGS_${_buildtype}_FOR_BUILD}") + set(ENV{CXXFLAGS_FOR_BUILD} "${CXXFLAGS_${_buildtype}_FOR_BUILD}") + set(ENV{LDFLAGS_FOR_BUILD} "${LDFLAGS_${_buildtype}_FOR_BUILD}") if(LINK_ENV_${_VAR_SUFFIX}) set(_LINK_CONFIG_BACKUP "$ENV{_LINK_}") set(ENV{_LINK_} "${LINK_ENV_${_VAR_SUFFIX}}") diff --git a/scripts/cmake/vcpkg_internal_get_cmake_vars.cmake b/scripts/cmake/vcpkg_internal_get_cmake_vars.cmake index 6c705ae8f8f429..334614cad03301 100644 --- a/scripts/cmake/vcpkg_internal_get_cmake_vars.cmake +++ b/scripts/cmake/vcpkg_internal_get_cmake_vars.cmake @@ -28,12 +28,20 @@ If possible avoid usage in portfiles. #]===] function(vcpkg_internal_get_cmake_vars) - cmake_parse_arguments(PARSE_ARGV 0 _gcv "" "OUTPUT_FILE" "OPTIONS") + cmake_parse_arguments(PARSE_ARGV 0 _gcv "" "OUTPUT_FILE;TRIPLET;TARGET_ARCHITECTURE;VAR_PREFIX" "OPTIONS") if(_gcv_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed unparsed arguments: '${_gcv_UNPARSED_ARGUMENTS}'") endif() + if(NOT _gcv_TRIPLET) + set(_gcv_TRIPLET ${TARGET_TRIPLET}) + endif() + + if(NOT _gcv_TARGET_ARCHITECTURE) + set(_gcv_TARGET_ARCHITECTURE ${VCPKG_TARGET_ARCHITECTURE}) + endif() + if(NOT _gcv_OUTPUT_FILE) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} requires parameter OUTPUT_FILE!") endif() @@ -41,26 +49,33 @@ function(vcpkg_internal_get_cmake_vars) if(${_gcv_OUTPUT_FILE}) debug_message("OUTPUT_FILE ${${_gcv_OUTPUT_FILE}}") else() - set(DEFAULT_OUT "${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}.cmake.log") # So that the file gets included in CI artifacts. + set(DEFAULT_OUT "${CURRENT_BUILDTREES_DIR}/cmake-vars-${_gcv_TRIPLET}.cmake.log") # So that the file gets included in CI artifacts. set(${_gcv_OUTPUT_FILE} "${DEFAULT_OUT}" PARENT_SCOPE) set(${_gcv_OUTPUT_FILE} "${DEFAULT_OUT}") endif() + if(_gcv_VAR_PREFIX) + list(APPEND _gcv_OPTIONS "-DVCPKG_VAR_PREFIX=${_gcv_VAR_PREFIX}") + endif() + + vcpkg_configure_cmake( SOURCE_PATH "${SCRIPTS}/get_cmake_vars" OPTIONS ${_gcv_OPTIONS} "-DVCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE}" - OPTIONS_DEBUG "-DVCPKG_OUTPUT_FILE:PATH=${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}-dbg.cmake.log" - OPTIONS_RELEASE "-DVCPKG_OUTPUT_FILE:PATH=${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}-rel.cmake.log" + OPTIONS_DEBUG "-DVCPKG_OUTPUT_FILE:PATH=${CURRENT_BUILDTREES_DIR}/cmake-vars-${_gcv_TRIPLET}-dbg.cmake.log" + OPTIONS_RELEASE "-DVCPKG_OUTPUT_FILE:PATH=${CURRENT_BUILDTREES_DIR}/cmake-vars-${_gcv_TRIPLET}-rel.cmake.log" PREFER_NINJA - LOGNAME get-cmake-vars-${TARGET_TRIPLET} + TRIPLET ${_gcv_TRIPLET} + TARGET_ARCHITECTURE ${_gcv_TARGET_ARCHITECTURE} + LOGNAME get-cmake-vars-${_gcv_TRIPLET} ) set(_include_string) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - string(APPEND _include_string "include(\"${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}-rel.cmake.log\")\n") + string(APPEND _include_string "include(\"${CURRENT_BUILDTREES_DIR}/cmake-vars-${_gcv_TRIPLET}-rel.cmake.log\")\n") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - string(APPEND _include_string "include(\"${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}-dbg.cmake.log\")\n") + string(APPEND _include_string "include(\"${CURRENT_BUILDTREES_DIR}/cmake-vars-${_gcv_TRIPLET}-dbg.cmake.log\")\n") endif() file(WRITE "${${_gcv_OUTPUT_FILE}}" "${_include_string}") From 57e6b92e64679a3fa8a02ce170b5fcbff5f70fa1 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 1 Jun 2021 16:46:10 +0200 Subject: [PATCH 46/52] build libiconv for any crosscompiling --- ports/libiconv/CONTROL | 2 +- ports/libiconv/portfile.cmake | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/libiconv/CONTROL b/ports/libiconv/CONTROL index f7414b81996681..6eed4fee330808 100644 --- a/ports/libiconv/CONTROL +++ b/ports/libiconv/CONTROL @@ -1,5 +1,5 @@ Source: libiconv Version: 1.16 -Port-Version: 8 +Port-Version: 9 Homepage: https://www.gnu.org/software/libiconv/ Description: GNU Unicode text conversion diff --git a/ports/libiconv/portfile.cmake b/ports/libiconv/portfile.cmake index a5d2d70e8875bc..bca70bf436f8c8 100644 --- a/ports/libiconv/portfile.cmake +++ b/ports/libiconv/portfile.cmake @@ -1,4 +1,4 @@ -if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_ANDROID) +if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_CROSSCOMPILING) set(VCPKG_POLICY_EMPTY_PACKAGE enabled) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/iconv) file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/iconv) From 0559fac17346e3db2ac15ff1389de1c78d770359 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Tue, 1 Jun 2021 16:46:47 +0200 Subject: [PATCH 47/52] vcpkg x-add-version libiconv --- versions/baseline.json | 2 +- versions/l-/libiconv.json | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/versions/baseline.json b/versions/baseline.json index d6ee10fef55bde..562204c3df3fee 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -3198,7 +3198,7 @@ }, "libiconv": { "baseline": "1.16", - "port-version": 8 + "port-version": 9 }, "libics": { "baseline": "1.6.4", diff --git a/versions/l-/libiconv.json b/versions/l-/libiconv.json index f198b53463160e..529d15c861f439 100644 --- a/versions/l-/libiconv.json +++ b/versions/l-/libiconv.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "8dae6c182aa1173b5beff8529412bb0d2bad7165", + "version-string": "1.16", + "port-version": 9 + }, { "git-tree": "1190548d712c0ed8699e3b82e16f6b070a5154c9", "version-string": "1.16", From 3623d32a8d8b12812d0eb5373fc155f7d5d5688f Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 2 Jun 2021 16:07:26 +0200 Subject: [PATCH 48/52] set vcpkg installed directory as system include directory --- scripts/cmake/vcpkg_configure_make.cmake | 10 ++++------ scripts/get_cmake_vars/CMakeLists.txt | 2 ++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index f19336064c45d2..4726b345cc9173 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -265,10 +265,8 @@ macro(_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags _SUFFIX _FOR_BUILD) _vcpkg_select_for_build_detected(CMAKE_C_FLAGS_${_SUFFIX} ${_FOR_BUILD} C_FLAGS) _vcpkg_select_for_build_detected(CMAKE_CXX_FLAGS_${_SUFFIX} ${_FOR_BUILD} CXX_FLAGS) _vcpkg_select_for_build_detected(CMAKE_OSX_SYSROOT ${_FOR_BUILD} OSX_SYSROOT) - _vcpkg_select_for_build_detected(CMAKE_INCLUDE_FLAG_C ${_FOR_BUILD} INCLUDE_FLAG_C) - _vcpkg_select_for_build_detected(CMAKE_INCLUDE_FLAG_C_SEP ${_FOR_BUILD} INCLUDE_FLAG_C_SEP) - _vcpkg_select_for_build_detected(CMAKE_INCLUDE_FLAG_CXX ${_FOR_BUILD} INCLUDE_FLAG_CXX) - _vcpkg_select_for_build_detected(CMAKE_INCLUDE_FLAG_CXX_SEP ${_FOR_BUILD} INCLUDE_FLAG_CXX_SEP) + _vcpkg_select_for_build_detected(CMAKE_INCLUDE_SYSTEM_FLAG_C ${_FOR_BUILD} INCLUDE_SYSTEM_FLAG_C) + _vcpkg_select_for_build_detected(CMAKE_INCLUDE_SYSTEM_FLAG_CXX ${_FOR_BUILD} INCLUDE_SYSTEM_FLAG_CXX) if(${_FOR_BUILD}) set(VAR_SUFFIX ${_SUFFIX}_FOR_BUILD) else() @@ -314,8 +312,8 @@ macro(_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags _SUFFIX _FOR_BUILD) file(TO_NATIVE_PATH "${VCPKG_INCLUDE_PATH}" VCPKG_INCLUDE_PATH) set(VCPKG_INCLUDE_PATH "\"${VCPKG_INCLUDE_PATH}\"") - string(APPEND CFLAGS_${VAR_SUFFIX} " ${INCLUDE_FLAG_C}${INCLUDE_FLAG_C_SEP}${VCPKG_INCLUDE_PATH}") - string(APPEND CXXFLAGS_${VAR_SUFFIX} " ${INCLUDE_FLAG_CXX}${INCLUDE_FLAG_CXX_SEP}${VCPKG_INCLUDE_PATH}") + string(APPEND CFLAGS_${VAR_SUFFIX} " ${INCLUDE_SYSTEM_FLAG_C}${VCPKG_INCLUDE_PATH}") + string(APPEND CXXFLAGS_${VAR_SUFFIX} " ${INCLUDE_SYSTEM_FLAG_CXX}${VCPKG_INCLUDE_PATH}") string(STRIP "${CPPFLAGS_${VAR_SUFFIX}}" CPPFLAGS_${VAR_SUFFIX}) string(STRIP "${CFLAGS_${VAR_SUFFIX}}" CFLAGS_${VAR_SUFFIX}) diff --git a/scripts/get_cmake_vars/CMakeLists.txt b/scripts/get_cmake_vars/CMakeLists.txt index 538d67db07bb88..c7e06ad367f7fe 100644 --- a/scripts/get_cmake_vars/CMakeLists.txt +++ b/scripts/get_cmake_vars/CMakeLists.txt @@ -13,6 +13,8 @@ list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_CROSSCOMPILING CMAKE_INCLUDE_FLAG_CXX CMAKE_INCLUDE_FLAG_C_SEP CMAKE_INCLUDE_FLAG_CXX_SEP + CMAKE_INCLUDE_SYSTEM_FLAG_C + CMAKE_INCLUDE_SYSTEM_FLAG_CXX ) if(CMAKE_SYSTEM_NAME MATCHES "Darwin") From 114dee5103ab3cf99dfce92aac6f6d46f14062f9 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 2 Jun 2021 16:32:31 +0200 Subject: [PATCH 49/52] fix system include flags, vcpkg target arch determination --- scripts/cmake/vcpkg_configure_make.cmake | 35 ++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index 4726b345cc9173..3e81bfb19c8bc0 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -159,6 +159,21 @@ macro(_vcpkg_determine_autotools_host_cpu out_var) unset(_HOST_ARCH) endmacro() +macro(_vcpkg_determine_vcpkg_host_cpu out_var) + if(DEFINED VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR) + set(_HOST_ARCH ${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}) + elseif(DEFINED ENV{PROCESSOR_ARCHITEW6432}) + set(_HOST_ARCH $ENV{PROCESSOR_ARCHITEW6432}) + else() + set(_HOST_ARCH $ENV{PROCESSOR_ARCHITECTURE}) + endif() + _vcpkg_cmake_to_vcpkg_arch(${_HOST_ARCH} ${out_var}) + if (NOT DEFINED ${out_var}) + message(FATAL_ERROR "Unsupported host architecture ${_HOST_ARCH} in _vcpkg_determine_autotools_host_cpu!" ) + endif() + unset(_HOST_ARCH) +endmacro() + macro(_vcpkg_determine_autotools_host_os out_var) if(DEFINED VCPKG_DETECTED_CMAKE_HOST_SYSTEM_NAME) set(_HOST_SYSTEM ${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_NAME}) @@ -265,6 +280,10 @@ macro(_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags _SUFFIX _FOR_BUILD) _vcpkg_select_for_build_detected(CMAKE_C_FLAGS_${_SUFFIX} ${_FOR_BUILD} C_FLAGS) _vcpkg_select_for_build_detected(CMAKE_CXX_FLAGS_${_SUFFIX} ${_FOR_BUILD} CXX_FLAGS) _vcpkg_select_for_build_detected(CMAKE_OSX_SYSROOT ${_FOR_BUILD} OSX_SYSROOT) + _vcpkg_select_for_build_detected(CMAKE_INCLUDE_FLAG_C ${_FOR_BUILD} INCLUDE_FLAG_C) + _vcpkg_select_for_build_detected(CMAKE_INCLUDE_FLAG_CXX ${_FOR_BUILD} INCLUDE_FLAG_CXX) + _vcpkg_select_for_build_detected(CMAKE_INCLUDE_FLAG_C_SEP ${_FOR_BUILD} INCLUDE_FLAG_C_SEP) + _vcpkg_select_for_build_detected(CMAKE_INCLUDE_FLAG_CXX_SEP ${_FOR_BUILD} INCLUDE_FLAG_CXX_SEP) _vcpkg_select_for_build_detected(CMAKE_INCLUDE_SYSTEM_FLAG_C ${_FOR_BUILD} INCLUDE_SYSTEM_FLAG_C) _vcpkg_select_for_build_detected(CMAKE_INCLUDE_SYSTEM_FLAG_CXX ${_FOR_BUILD} INCLUDE_SYSTEM_FLAG_CXX) if(${_FOR_BUILD}) @@ -309,11 +328,21 @@ macro(_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags _SUFFIX _FOR_BUILD) else() set(VCPKG_INCLUDE_PATH "${CURRENT_INSTALLED_DIR}/include") endif() + if ("${INCLUDE_SYSTEM_FLAG_C}" STREQUAL "") + set(INCLUDE_PREFIX_C ${INCLUDE_FLAG_C}${INCLUDE_FLAG_C_SEP}) + else() + set(INCLUDE_PREFIX_C ${INCLUDE_SYSTEM_FLAG_C}) + endif() + if ("${INCLUDE_SYSTEM_FLAG_CXX}" STREQUAL "") + set(INCLUDE_PREFIX_CXX ${INCLUDE_FLAG_CXX}${INCLUDE_FLAG_CXX_SEP}) + else() + set(INCLUDE_PREFIX_CXX ${INCLUDE_SYSTEM_FLAG_CXX}) + endif() file(TO_NATIVE_PATH "${VCPKG_INCLUDE_PATH}" VCPKG_INCLUDE_PATH) set(VCPKG_INCLUDE_PATH "\"${VCPKG_INCLUDE_PATH}\"") - string(APPEND CFLAGS_${VAR_SUFFIX} " ${INCLUDE_SYSTEM_FLAG_C}${VCPKG_INCLUDE_PATH}") - string(APPEND CXXFLAGS_${VAR_SUFFIX} " ${INCLUDE_SYSTEM_FLAG_CXX}${VCPKG_INCLUDE_PATH}") + string(APPEND CFLAGS_${VAR_SUFFIX} " ${INCLUDE_PREFIX_C}${VCPKG_INCLUDE_PATH}") + string(APPEND CXXFLAGS_${VAR_SUFFIX} " ${INCLUDE_PREFIX_CXX}${VCPKG_INCLUDE_PATH}") string(STRIP "${CPPFLAGS_${VAR_SUFFIX}}" CPPFLAGS_${VAR_SUFFIX}) string(STRIP "${CFLAGS_${VAR_SUFFIX}}" CFLAGS_${VAR_SUFFIX}) @@ -338,7 +367,7 @@ function(vcpkg_configure_make) set(_csc_BUILD_TRIPLET ${VCPKG_MAKE_BUILD_TRIPLET}) # Triplet overwrite for crosscompiling endif() if(VCPKG_CROSSCOMPILING) - _vcpkg_cmake_to_vcpkg_arch(${CMAKE_HOST_SYSTEM_PROCESSOR} _host_arch) + _vcpkg_determine_vcpkg_host_cpu(_host_arch) vcpkg_internal_get_cmake_vars(OUTPUT_FILE _VCPKG_HOST_CMAKE_VARS_FILE TRIPLET ${_HOST_TRIPLET} VAR_PREFIX VCPKG_DETECTED_FOR_BUILD TARGET_ARCHITECTURE ${_host_arch}) set(_VCPKG_HOST_CMAKE_VARS_FILE "${_VCPKG_HOST_CMAKE_VARS_FILE}" PARENT_SCOPE) debug_message("Including host cmake vars from: ${_VCPKG_HOST_CMAKE_VARS_FILE}") From bce4cfe872220e68e6eb558eddf93ebe0503cce4 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 21 Jul 2021 10:10:50 +0200 Subject: [PATCH 50/52] revert libiconv --- ports/libiconv/CONTROL | 2 +- ports/libiconv/portfile.cmake | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/libiconv/CONTROL b/ports/libiconv/CONTROL index 6eed4fee330808..f7414b81996681 100644 --- a/ports/libiconv/CONTROL +++ b/ports/libiconv/CONTROL @@ -1,5 +1,5 @@ Source: libiconv Version: 1.16 -Port-Version: 9 +Port-Version: 8 Homepage: https://www.gnu.org/software/libiconv/ Description: GNU Unicode text conversion diff --git a/ports/libiconv/portfile.cmake b/ports/libiconv/portfile.cmake index bca70bf436f8c8..a5d2d70e8875bc 100644 --- a/ports/libiconv/portfile.cmake +++ b/ports/libiconv/portfile.cmake @@ -1,4 +1,4 @@ -if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_CROSSCOMPILING) +if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_ANDROID) set(VCPKG_POLICY_EMPTY_PACKAGE enabled) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/iconv) file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/iconv) From 0697b3f51f765a9904e5e9a7663160187ca0fb19 Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 21 Jul 2021 10:12:47 +0200 Subject: [PATCH 51/52] fix vcpkg package version --- versions/baseline.json | 2 +- versions/l-/libiconv.json | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/versions/baseline.json b/versions/baseline.json index b50f159f0f3caf..88a4bcd85a9ef8 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -3246,7 +3246,7 @@ }, "libiconv": { "baseline": "1.16", - "port-version": 9 + "port-version": 8 }, "libics": { "baseline": "1.6.4", diff --git a/versions/l-/libiconv.json b/versions/l-/libiconv.json index 529d15c861f439..f198b53463160e 100644 --- a/versions/l-/libiconv.json +++ b/versions/l-/libiconv.json @@ -1,10 +1,5 @@ { "versions": [ - { - "git-tree": "8dae6c182aa1173b5beff8529412bb0d2bad7165", - "version-string": "1.16", - "port-version": 9 - }, { "git-tree": "1190548d712c0ed8699e3b82e16f6b070a5154c9", "version-string": "1.16", From a39d18b62173795c301652bf62d9fb5d7127d40d Mon Sep 17 00:00:00 2001 From: Ilya Arzhannikov Date: Wed, 21 Jul 2021 11:08:18 +0200 Subject: [PATCH 52/52] use VCPKG_INSTALLED_PATH include dir as first include dir to prevent use system headers --- 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 c187ef81a05636..d6589b190efd06 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -341,8 +341,8 @@ macro(_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags _SUFFIX _FOR_BUILD) file(TO_NATIVE_PATH "${VCPKG_INCLUDE_PATH}" VCPKG_INCLUDE_PATH) set(VCPKG_INCLUDE_PATH "\"${VCPKG_INCLUDE_PATH}\"") - string(APPEND CFLAGS_${VAR_SUFFIX} " ${INCLUDE_PREFIX_C}${VCPKG_INCLUDE_PATH}") - string(APPEND CXXFLAGS_${VAR_SUFFIX} " ${INCLUDE_PREFIX_CXX}${VCPKG_INCLUDE_PATH}") + string(PREPEND CFLAGS_${VAR_SUFFIX} "${INCLUDE_PREFIX_C}${VCPKG_INCLUDE_PATH} ") + string(PREPEND CXXFLAGS_${VAR_SUFFIX} "${INCLUDE_PREFIX_CXX}${VCPKG_INCLUDE_PATH} ") string(STRIP "${CPPFLAGS_${VAR_SUFFIX}}" CPPFLAGS_${VAR_SUFFIX}) string(STRIP "${CFLAGS_${VAR_SUFFIX}}" CFLAGS_${VAR_SUFFIX})