diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/cmake/vcpkg_acquire_msys.cmake | 41 | ||||
| -rw-r--r-- | scripts/cmake/vcpkg_build_make.cmake | 11 | ||||
| -rw-r--r-- | scripts/cmake/vcpkg_configure_make.cmake | 33 |
3 files changed, 75 insertions, 10 deletions
diff --git a/scripts/cmake/vcpkg_acquire_msys.cmake b/scripts/cmake/vcpkg_acquire_msys.cmake index b502eab6a..49271eeb6 100644 --- a/scripts/cmake/vcpkg_acquire_msys.cmake +++ b/scripts/cmake/vcpkg_acquire_msys.cmake @@ -183,7 +183,27 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) msys_package( URL "https://repo.msys2.org/msys/x86_64/libtool-2.4.6-9-x86_64.pkg.tar.xz" SHA512 b309799e5a9d248ef66eaf11a0bd21bf4e8b9bd5c677c627ec83fa760ce9f0b54ddf1b62cbb436e641fbbde71e3b61cb71ff541d866f8ca7717a3a0dbeb00ebf - DEPS grep sed coreutils + DEPS grep sed coreutils file + ) + msys_package( + URL "https://repo.msys2.org/msys/x86_64/file-5.39-1-x86_64.pkg.tar.zst" + SHA512 be51dd0f6143a2f34f2a3e7d412866eb12511f25daaf3a5478240537733a67d7797a3a55a8893e5638589c06bca5af20aed5ded7db0bf19fbf52b30fae08cadd + DEPS gcc-libs zlib libbz2 + ) + msys_package( + URL "https://repo.msys2.org/msys/x86_64/zlib-1.2.11-1-x86_64.pkg.tar.xz" + SHA512 b607da40d3388b440f2a09e154f21966cd55ad77e02d47805f78a9dee5de40226225bf0b8335fdfd4b83f25ead3098e9cb974d4f202f28827f8468e30e3b790d + DEPS gcc-libs + ) + msys_package( + URL "https://repo.msys2.org/msys/x86_64/bzip2-1.0.8-2-x86_64.pkg.tar.xz" + SHA512 336f5b59eb9cf4e93b537a212509d84f72cd9b8a97bf8ac0596eff298f3c0979bdea6c605244d5913670b9d20b017e5ee327f1e606f546a88e177a03c589a636 + DEPS gcc-libs + ) + msys_package( + URL "https://repo.msys2.org/msys/x86_64/libbz2-1.0.8-2-x86_64.pkg.tar.xz" + SHA512 d128bd1792d0f5750e6a63a24db86a791e7ee457db8c0bef68d217099be4a6eef27c85caf6ad09b0bcd5b3cdac6fc0a2b9842cc58d381a4035505906cc4803ec + DEPS gcc-libs ) msys_package( URL "https://repo.msys2.org/msys/x86_64/coreutils-8.32-1-x86_64.pkg.tar.xz" @@ -229,6 +249,15 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) URL "https://repo.msys2.org/msys/x86_64/gmp-6.2.0-1-x86_64.pkg.tar.xz" SHA512 1389a443e775bb255d905665dd577bef7ed71d51a8c24d118097f8119c08c4dfe67505e88ddd1e9a3764dd1d50ed8b84fa34abefa797d257e90586f0cbf54de8 ) + msys_package( + URL "https://repo.msys2.org/msys/x86_64/xz-5.2.5-1-x86_64.pkg.tar.xz" # this seems to require immediate updating on version bumps. + SHA512 99d092c3398277e47586cead103b41e023e9432911fb7bdeafb967b826f6a57d32e58afc94c8230dad5b5ec2aef4f10d61362a6d9e410a6645cf23f076736bba + DEPS liblzma libiconv gettext + ) + msys_package( + URL "https://repo.msys2.org/msys/x86_64/liblzma-5.2.5-1-x86_64.pkg.tar.xz" + SHA512 8d5c04354fdc7309e73abce679a4369c0be3dc342de51cef9d2a932b7df6a961c8cb1f7e373b1b8b2be40343a95fbd57ac29ebef63d4a2074be1d865e28ca6ad + ) msys_package( URL "https://repo.msys2.org/msys/x86_64/libreadline-8.0.004-1-x86_64.pkg.tar.xz" SHA512 42760bddedccc8d93507c1e3a7a81595dc6392b5e4319d24a85275eb04c30eb79078e4247eb2cdd00ff3884d932639130c89bf1b559310a17fa4858062491f97 @@ -269,6 +298,11 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) SHA512 7306dec7859edc27d70a24ab4b396728481484a426c5aa2f7e9fed2635b3b25548b05b7d37a161a86a8edaa5922948bee8c99b1e8a078606e69ca48a433fe321 DEPS libintl msys2-runtime ) +msys_package( + URL "https://repo.msys2.org/msys/x86_64/gettext-devel-0.19.8.1-1-x86_64.pkg.tar.xz" + SHA512 648f74c23e4f92145cdd0d45ff5285c2df34e855a9e75e5463dd6646967f8cf34a18ce357c6f498a4680e6d7b84e2d1697ba9deee84da8ea6bb14bbdb594ee22 + DEPS gettext + ) msys_package( URL "https://repo.msys2.org/msys/x86_64/gettext-0.19.8.1-1-x86_64.pkg.tar.xz" SHA512 c8c42d084c297746548963f7ec7a7df46241886f3e637e779811ee4a8fee6058f892082bb2658f6777cbffba2de4bcdfd68e846ba63c6a6552c9efb0c8c1de50 @@ -285,6 +319,11 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) DEPS gcc-libs ) msys_package( + URL "https://repo.msys2.org/msys/x86_64/findutils-4.7.0-1-x86_64.pkg.tar.xz" + SHA512 fd09a24562b196ff252f4b5de86ed977280306a8c628792930812f146fcf7355f9d87434bbabe25e6cc17d8bd028f6bc68fc02e5bea83137a49cf5cc6f509e10 + DEPS libintl libiconv + ) + msys_package( URL "https://repo.msys2.org/msys/x86_64/libintl-0.19.8.1-1-x86_64.pkg.tar.xz" SHA512 4e54c252b828c862f376d8f5a2410ee623a43d70cbb07d0b8ac20c25096f59fb3ae8dcd011d1792bec76f0b0b9411d0e184ee23707995761dc50eb76f9fc6b92 DEPS libiconv diff --git a/scripts/cmake/vcpkg_build_make.cmake b/scripts/cmake/vcpkg_build_make.cmake index fb9daa358..a6adebc43 100644 --- a/scripts/cmake/vcpkg_build_make.cmake +++ b/scripts/cmake/vcpkg_build_make.cmake @@ -42,7 +42,12 @@ ## * [freexl](https://github.com/Microsoft/vcpkg/blob/master/ports/freexl/portfile.cmake)
## * [libosip2](https://github.com/Microsoft/vcpkg/blob/master/ports/libosip2/portfile.cmake)
function(vcpkg_build_make)
+ if(NOT _VCPKG_CMAKE_VARS_FILE)
+ # 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}")
+
# 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" "")
@@ -117,6 +122,7 @@ function(vcpkg_build_make) message(STATUS "Building ${TARGET_TRIPLET}${SHORT_BUILDTYPE}")
_vcpkg_extract_cpp_flags_and_set_cflags_and_cxxflags(${CMAKE_BUILDTYPE})
+
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
set(LINKER_FLAGS_${CMAKE_BUILDTYPE} "${VCPKG_DETECTED_STATIC_LINKERFLAGS_${CMAKE_BUILDTYPE}}")
else() # dynamic
@@ -173,6 +179,11 @@ function(vcpkg_build_make) )
endif()
+ file(READ "${CURRENT_BUILDTREES_DIR}/${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}${SHORT_BUILDTYPE}-out.log" LOGDATA)
+ if(LOGDATA MATCHES "Warning: linker path does not have real file for library")
+ message(FATAL_ERROR "libtool could not find a file being linked against!")
+ endif()
+
if (_bc_ENABLE_INSTALL)
message(STATUS "Installing ${TARGET_TRIPLET}${SHORT_BUILDTYPE}")
if(MAKE_BASH)
diff --git a/scripts/cmake/vcpkg_configure_make.cmake b/scripts/cmake/vcpkg_configure_make.cmake index d3cba3bf2..0d80e148c 100644 --- a/scripts/cmake/vcpkg_configure_make.cmake +++ b/scripts/cmake/vcpkg_configure_make.cmake @@ -206,7 +206,7 @@ function(vcpkg_configure_make) 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"
"SOURCE_PATH;PROJECT_SUBPATH;PRERUN_SHELL;BUILD_TRIPLET"
- "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;CONFIGURE_ENVIRONMENT_VARIABLES;CONFIG_DEPENDENT_ENVIRONMENT"
+ "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;CONFIGURE_ENVIRONMENT_VARIABLES;CONFIG_DEPENDENT_ENVIRONMENT;ADDITIONAL_MSYS_PACKAGES"
)
vcpkg_internal_get_cmake_vars(OUTPUT_FILE _VCPKG_CMAKE_VARS_FILE)
set(_VCPKG_CMAKE_VARS_FILE "${_VCPKG_CMAKE_VARS_FILE}" PARENT_SCOPE)
@@ -265,7 +265,7 @@ function(vcpkg_configure_make) # Pre-processing windows configure requirements
if (CMAKE_HOST_WIN32)
list(APPEND MSYS_REQUIRE_PACKAGES binutils libtool autoconf automake-wrapper automake1.16 m4)
- vcpkg_acquire_msys(MSYS_ROOT PACKAGES ${MSYS_REQUIRE_PACKAGES})
+ vcpkg_acquire_msys(MSYS_ROOT PACKAGES ${MSYS_REQUIRE_PACKAGES} ${_csc_ADDITIONAL_MSYS_PACKAGES})
if (_csc_AUTOCONFIG AND NOT _csc_BUILD_TRIPLET OR _csc_DETERMINE_BUILD_TRIPLET)
_vcpkg_determine_autotools_host_cpu(BUILD_ARCH) # VCPKG_HOST => machine you are building on => --build=
_vcpkg_determine_autotools_target_cpu(TARGET_ARCH)
@@ -388,6 +388,7 @@ function(vcpkg_configure_make) # Variables not correctly detected by configure. In release builds.
list(APPEND _csc_OPTIONS gl_cv_double_slash_root=yes
ac_cv_func_memmove=yes)
+ #list(APPEND _csc_OPTIONS lt_cv_deplibs_check_method=pass_all) # Just ignore libtool checks
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
list(APPEND _csc_OPTIONS gl_cv_host_cpu_c_abi=no)
endif()
@@ -478,20 +479,34 @@ function(vcpkg_configure_make) convert_to_list(VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES C_LIBS_LIST)
convert_to_list(VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES CXX_LIBS_LIST)
set(ALL_LIBS_LIST ${C_LIBS_LIST} ${CXX_LIBS_LIST})
-
list(REMOVE_DUPLICATES ALL_LIBS_LIST)
list(TRANSFORM ALL_LIBS_LIST STRIP)
- list(TRANSFORM ALL_LIBS_LIST REPLACE "(.lib|.a|.so)$" "")
- if(VCPKG_TARGET_IS_WINDOWS)
- list(REMOVE_ITEM ALL_LIBS_LIST "uuid")
+
+ #Do lib list transformation from name.lib to -lname if necessary
+ set(_VCPKG_TRANSFORM_LIBS TRUE)
+ if(VCPKG_TARGET_IS_UWP)
+ set(_VCPKG_TRANSFORM_LIBS FALSE)
+ # Avoid libtool choke: "Warning: linker path does not have real file for library -lWindowsApp."
+ # The problem with the choke is that libtool always falls back to built a static library even if a dynamic was requested.
+ # Note: Env LIBPATH;LIB are on the search path for libtool by default on windows.
+ # It even does unix/dos-short/unix transformation with the path to get rid of spaces.
+ endif()
+ set(_lprefix)
+ if(_VCPKG_TRANSFORM_LIBS)
+ set(_lprefix "-l")
+ list(TRANSFORM ALL_LIBS_LIST REPLACE "(.dll.lib|.lib|.a|.so)$" "")
+ if(VCPKG_TARGET_IS_WINDOWS)
+ list(REMOVE_ITEM ALL_LIBS_LIST "uuid")
+ endif()
endif()
- list(JOIN ALL_LIBS_LIST " -l" ALL_LIBS_STRING)
+ list(JOIN ALL_LIBS_LIST " ${_lprefix}" ALL_LIBS_STRING)
if(ALL_LIBS_STRING)
+ set(ALL_LIBS_STRING "${_lprefix}${ALL_LIBS_STRING}")
if(DEFINED ENV{LIBS})
- set(ENV{LIBS} "$ENV{LIBS} -l${ALL_LIBS_STRING}")
+ set(ENV{LIBS} "$ENV{LIBS} ${ALL_LIBS_STRING}")
else()
- set(ENV{LIBS} "-l${ALL_LIBS_STRING}")
+ set(ENV{LIBS} "${ALL_LIBS_STRING}")
endif()
endif()
debug_message(STATUS "ENV{LIBS}:$ENV{LIBS}")
|
