From 69dfad795f4ffb5bec60602ec1116730027ff088 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Wed, 14 Mar 2018 16:48:18 -0700 Subject: [PATCH 01/51] Introduce Maps::transform_values() --- toolsrc/include/vcpkg/base/util.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/toolsrc/include/vcpkg/base/util.h b/toolsrc/include/vcpkg/base/util.h index c73345719..7266fbbc6 100644 --- a/toolsrc/include/vcpkg/base/util.h +++ b/toolsrc/include/vcpkg/base/util.h @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -29,6 +30,17 @@ namespace vcpkg::Util } } + namespace Maps + { + template + void transform_values(const std::unordered_map& container, std::unordered_map& output, Func func) + { + std::for_each(container.cbegin(), container.cend(), [&](const std::pair& p) { + output[p.first] = func(p.second); + }); + } + } + template using FmapOut = decltype(std::declval()(*begin(std::declval()))); From d5580dd330bac4d473f146e6efe3756e83a35066 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Sat, 24 Mar 2018 01:24:07 -0700 Subject: [PATCH 02/51] Join declaration and assignment --- toolsrc/src/vcpkg/install.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/toolsrc/src/vcpkg/install.cpp b/toolsrc/src/vcpkg/install.cpp index e30a34c18..7a963c82f 100644 --- a/toolsrc/src/vcpkg/install.cpp +++ b/toolsrc/src/vcpkg/install.cpp @@ -558,16 +558,15 @@ namespace vcpkg::Install Build::CleanBuildtrees::NO, Build::CleanPackages::NO}; - // Note: action_plan will hold raw pointers to SourceControlFiles from this map - std::vector action_plan; - auto all_ports = Paragraphs::load_all_ports(paths.get_filesystem(), paths.ports); std::unordered_map scf_map; for (auto&& port : all_ports) scf_map[port->core_paragraph->name] = std::move(*port); MapPortFileProvider provider(scf_map); - action_plan = create_feature_install_plan(provider, FullPackageSpec::to_feature_specs(specs), status_db); + // Note: action_plan will hold raw pointers to SourceControlFiles from this map + std::vector action_plan = + create_feature_install_plan(provider, FullPackageSpec::to_feature_specs(specs), status_db); if (!GlobalState::feature_packages) { From 3a91b0072d7500f2be84fe4d6520e8469ba5b5ad Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Sat, 24 Mar 2018 01:04:48 -0700 Subject: [PATCH 03/51] Fix name --- toolsrc/include/vcpkg/dependencies.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolsrc/include/vcpkg/dependencies.h b/toolsrc/include/vcpkg/dependencies.h index 33af6c4f5..fea0d88a9 100644 --- a/toolsrc/include/vcpkg/dependencies.h +++ b/toolsrc/include/vcpkg/dependencies.h @@ -175,7 +175,7 @@ namespace vcpkg::Dependencies const std::vector& specs, const StatusParagraphs& status_db); - std::vector create_feature_install_plan(const PortFileProvider& port_file_provider, + std::vector create_feature_install_plan(const PortFileProvider& provider, const std::vector& specs, const StatusParagraphs& status_db); From 0778f2ef8ec87152cc75721cb1d25b7d7db63fe4 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Fri, 23 Mar 2018 15:04:01 -0700 Subject: [PATCH 04/51] [parson][azure-uamqp-c][azure-umqtt-c][azure-c-shared-utility][azure-iot-sdk-c] Initial commits --- ports/azure-c-shared-utility/CONTROL | 3 + ports/azure-c-shared-utility/portfile.cmake | 40 ++++++ ports/azure-iot-sdk-c/CONTROL | 4 + .../improve-external-deps.patch | 136 ++++++++++++++++++ ports/azure-iot-sdk-c/portfile.cmake | 46 ++++++ ports/azure-uamqp-c/CONTROL | 4 + ports/azure-uamqp-c/glob-headers.patch | 14 ++ ports/azure-uamqp-c/portfile.cmake | 41 ++++++ ports/azure-uhttp-c/CONTROL | 4 + ports/azure-uhttp-c/portfile.cmake | 40 ++++++ ports/azure-umqtt-c/CONTROL | 4 + ports/azure-umqtt-c/portfile.cmake | 39 +++++ ports/parson/CMakeLists.txt | 19 +++ ports/parson/CONTROL | 3 + ports/parson/portfile.cmake | 33 +++++ 15 files changed, 430 insertions(+) create mode 100644 ports/azure-c-shared-utility/CONTROL create mode 100644 ports/azure-c-shared-utility/portfile.cmake create mode 100644 ports/azure-iot-sdk-c/CONTROL create mode 100644 ports/azure-iot-sdk-c/improve-external-deps.patch create mode 100644 ports/azure-iot-sdk-c/portfile.cmake create mode 100644 ports/azure-uamqp-c/CONTROL create mode 100644 ports/azure-uamqp-c/glob-headers.patch create mode 100644 ports/azure-uamqp-c/portfile.cmake create mode 100644 ports/azure-uhttp-c/CONTROL create mode 100644 ports/azure-uhttp-c/portfile.cmake create mode 100644 ports/azure-umqtt-c/CONTROL create mode 100644 ports/azure-umqtt-c/portfile.cmake create mode 100644 ports/parson/CMakeLists.txt create mode 100644 ports/parson/CONTROL create mode 100644 ports/parson/portfile.cmake diff --git a/ports/azure-c-shared-utility/CONTROL b/ports/azure-c-shared-utility/CONTROL new file mode 100644 index 000000000..efc7592c1 --- /dev/null +++ b/ports/azure-c-shared-utility/CONTROL @@ -0,0 +1,3 @@ +Source: azure-c-shared-utility +Version: 1.1.1 +Description: Azure C SDKs common code diff --git a/ports/azure-c-shared-utility/portfile.cmake b/ports/azure-c-shared-utility/portfile.cmake new file mode 100644 index 000000000..40eacaa4b --- /dev/null +++ b/ports/azure-c-shared-utility/portfile.cmake @@ -0,0 +1,40 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("azure-c-shared-utility only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Azure/azure-c-shared-utility + REF 1.1.1 + SHA512 859513c3bebc3cb5a9e6c0840d2b5bdb5b21b753ed846dced6f4e88f8f937bae89264da57c1bf430660417b10449914b29000b930520e5834140f63df2109b5f + HEAD_REF master +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -Dskip_samples=ON + -Duse_installed_dependencies=ON + -Duse_default_uuid=ON + -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC} +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/azure_c_shared_utility) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) + +file(COPY ${SOURCE_PATH}/configs/azure_iot_build_rules.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-c-shared-utility) + +file(INSTALL + ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-c-shared-utility RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/azure-iot-sdk-c/CONTROL b/ports/azure-iot-sdk-c/CONTROL new file mode 100644 index 000000000..9e65dcb26 --- /dev/null +++ b/ports/azure-iot-sdk-c/CONTROL @@ -0,0 +1,4 @@ +Source: azure-iot-sdk-c +Version: 1.2.1 +Build-Depends: azure-uamqp-c, azure-umqtt-c, azure-c-shared-utility, parson +Description: A C99 SDK for connecting devices to Microsoft Azure IoT services diff --git a/ports/azure-iot-sdk-c/improve-external-deps.patch b/ports/azure-iot-sdk-c/improve-external-deps.patch new file mode 100644 index 000000000..5af7ef29e --- /dev/null +++ b/ports/azure-iot-sdk-c/improve-external-deps.patch @@ -0,0 +1,136 @@ +diff --git a/configs/azure_iot_sdksConfig.cmake b/configs/azure_iot_sdksConfig.cmake +index b9c62e8..edf5847 100644 +--- a/configs/azure_iot_sdksConfig.cmake ++++ b/configs/azure_iot_sdksConfig.cmake +@@ -1,5 +1,10 @@ + #Copyright (c) Microsoft. All rights reserved. + #Licensed under the MIT license. See LICENSE file in the project root for full license information. ++include(CMakeFindDependencyMacro) ++find_dependency(unofficial-parson) ++find_dependency(uamqp) ++find_dependency(umqtt) ++find_dependency(azure_c_shared_utility) + + include("${CMAKE_CURRENT_LIST_DIR}/azure_iot_sdksTargets.cmake") + +diff --git a/dependencies.cmake b/dependencies.cmake +index 063733a..71bfc7d 100644 +--- a/dependencies.cmake ++++ b/dependencies.cmake +@@ -18,6 +18,8 @@ if(${use_installed_dependencies}) + endif() + endif() + ++ find_package(unofficial-parson REQUIRED) ++ link_libraries(unofficial::parson::parson) + else() + add_subdirectory(c-utility) + +diff --git a/iothub_client/CMakeLists.txt b/iothub_client/CMakeLists.txt +index e6d000a..70ade26 100644 +--- a/iothub_client/CMakeLists.txt ++++ b/iothub_client/CMakeLists.txt +@@ -24,22 +24,6 @@ set(install_staticlibs + iothub_client + ) + +-add_library(parson +- ../deps/parson/parson.c +-) +- +-if(MSVC) +- set_source_files_properties(../deps/parson/parson.c PROPERTIES COMPILE_FLAGS "/wd4244 /wd4232") +-endif() +- +-set(install_staticlibs ${install_staticlibs} +- parson +-) +- +-set(iothub_client_libs ${iothub_client_libs} +- parson +-) +- + if(NOT dont_use_uploadtoblob) + set(iothub_client_ll_transport_c_files + ${iothub_client_ll_transport_c_files} +diff --git a/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt b/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt +index 161872a..d53e111 100644 +--- a/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt ++++ b/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt +@@ -31,12 +31,10 @@ set(${theseTestsName}_nuget_c_files + + set(${theseTestsName}_c_files + ../../../certs/certs.c +- ../../../deps/parson/parson.c + ) + + set(${theseTestsName}_h_files + ../../../certs/certs.h +- ../../../deps/parson/parson.h + ../common_dt_e2e/iothubclient_common_dt_e2e.h + ) + +diff --git a/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt b/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt +index d472161..b0291e8 100644 +--- a/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt ++++ b/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt +@@ -31,12 +31,10 @@ set(${theseTestsName}_nuget_c_files + + set(${theseTestsName}_c_files + ../../../certs/certs.c +- ../../../deps/parson/parson.c + ) + + set(${theseTestsName}_h_files + ../../../certs/certs.h +- ../../../deps/parson/parson.h + ../common_dt_e2e/iothubclient_common_dt_e2e.h + ) + +diff --git a/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt b/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt +index d05d654..5872c8d 100644 +--- a/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt ++++ b/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt +@@ -31,12 +31,10 @@ set(${theseTestsName}_nuget_c_files + + set(${theseTestsName}_c_files + ../../../certs/certs.c +- ../../../deps/parson/parson.c + ) + + set(${theseTestsName}_h_files + ../../../certs/certs.h +- ../../../deps/parson/parson.h + ../common_dt_e2e/iothubclient_common_dt_e2e.h + ) + +diff --git a/iothub_service_client/CMakeLists.txt b/iothub_service_client/CMakeLists.txt +index 11a9a9a..4097293 100644 +--- a/iothub_service_client/CMakeLists.txt ++++ b/iothub_service_client/CMakeLists.txt +@@ -72,9 +72,7 @@ endif() + setSdkTargetBuildProperties(iothub_service_client) + + if(NOT ${nuget_e2e_tests}) +- target_link_libraries(iothub_service_client uamqp parson) +-else() +- target_link_libraries(iothub_service_client parson) ++ target_link_libraries(iothub_service_client uamqp) + endif() + + if (NOT ${ARCHITECTURE} STREQUAL "ARM") +diff --git a/serializer/CMakeLists.txt b/serializer/CMakeLists.txt +index 0f6dc74..b4f784c 100644 +--- a/serializer/CMakeLists.txt ++++ b/serializer/CMakeLists.txt +@@ -87,10 +87,6 @@ else() + endif() + setSdkTargetBuildProperties(serializer) + +-target_link_libraries(serializer +- parson +-) +- + if (NOT ${skip_samples}) + if(WIN32) + if (NOT ${ARCHITECTURE} STREQUAL "ARM") diff --git a/ports/azure-iot-sdk-c/portfile.cmake b/ports/azure-iot-sdk-c/portfile.cmake new file mode 100644 index 000000000..b60a03286 --- /dev/null +++ b/ports/azure-iot-sdk-c/portfile.cmake @@ -0,0 +1,46 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("azure-iot-sdk-c only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Azure/azure-iot-sdk-c + REF 1.2.1 + SHA512 fd97283adf958d6928eda68fb76d9e5a12ef56440fb349d4feb948516150968bf34f3d1bde3341cc1116beb9ea219b0158462a9e6b89c5f7ccd56eb38d8ed2ab + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/improve-external-deps.patch +) + +file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/azure-c-shared-utility/configs/) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -Dskip_samples=ON + -Duse_installed_dependencies=ON + -Duse_default_uuid=ON + -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC} +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/azure_iot_sdks) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) + +file(INSTALL + ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-iot-sdk-c RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/azure-uamqp-c/CONTROL b/ports/azure-uamqp-c/CONTROL new file mode 100644 index 000000000..03b4a2402 --- /dev/null +++ b/ports/azure-uamqp-c/CONTROL @@ -0,0 +1,4 @@ +Source: azure-uamqp-c +Version: 1.0.0-pre-release-1.0.9 +Build-Depends: azure-c-shared-utility +Description: AMQP library for C diff --git a/ports/azure-uamqp-c/glob-headers.patch b/ports/azure-uamqp-c/glob-headers.patch new file mode 100644 index 000000000..245744f2b --- /dev/null +++ b/ports/azure-uamqp-c/glob-headers.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index dbf79e5..aec44e5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -74,7 +74,8 @@ if(WIN32) + include_directories($ENV{OpenSSLDir}/include) + endif() + +-set(uamqp_h_files ++file(GLOB uamqp_h_files ++ ./inc/azure_uamqp_c/* + ./inc/azure_uamqp_c/amqp_definitions.h + ./inc/azure_uamqp_c/amqp_frame_codec.h + ./inc/azure_uamqp_c/amqp_management.h diff --git a/ports/azure-uamqp-c/portfile.cmake b/ports/azure-uamqp-c/portfile.cmake new file mode 100644 index 000000000..a4407963c --- /dev/null +++ b/ports/azure-uamqp-c/portfile.cmake @@ -0,0 +1,41 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("azure-uamqp-c only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Azure/azure-uamqp-c + REF 1.0.0-pre-release-1.0.9 + SHA512 8c7142e0f28779847501941effc8baa0d3411e76bec00a3af0a32f5e25c0ded200d1345fcea58d922d7b0e2b736bc2a57ecaaac23d4de7f97c75a22793cd3750 + HEAD_REF master +) + +vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} PATCHES ${CMAKE_CURRENT_LIST_DIR}/glob-headers.patch) + +file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/azure-c-shared-utility/configs/) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -Dskip_samples=ON + -Duse_installed_dependencies=ON + -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC} +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/uamqp) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) + +file(INSTALL + ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-uamqp-c RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/azure-uhttp-c/CONTROL b/ports/azure-uhttp-c/CONTROL new file mode 100644 index 000000000..3711a7dfe --- /dev/null +++ b/ports/azure-uhttp-c/CONTROL @@ -0,0 +1,4 @@ +Source: azure-uhttp-c +Version: 2018-02-09 +Build-Depends: azure-c-shared-utility +Description: Azure HTTP Library written in C diff --git a/ports/azure-uhttp-c/portfile.cmake b/ports/azure-uhttp-c/portfile.cmake new file mode 100644 index 000000000..a04290ec1 --- /dev/null +++ b/ports/azure-uhttp-c/portfile.cmake @@ -0,0 +1,40 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("azure-uhttp-c only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Azure/azure-uhttp-c + REF 2018-02-09 + SHA512 0668be0f7624d021b6d24e81c21c606ab4a59990eb3d83fea6d2c6cf9ea3f2c6904ad021afcf9645c3c5f2238e9b83146f36522c662b0a2626d928cb4a0218ba + HEAD_REF master +) + +file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/c-utility/configs/) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -Dskip_samples=ON + -Duse_installed_dependencies=ON + -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC} + -DCMAKE_INSTALL_INCLUDEDIR=include +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/uhttp) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) + +file(INSTALL + ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-uhttp-c RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/azure-umqtt-c/CONTROL b/ports/azure-umqtt-c/CONTROL new file mode 100644 index 000000000..79bd87b79 --- /dev/null +++ b/ports/azure-umqtt-c/CONTROL @@ -0,0 +1,4 @@ +Source: azure-umqtt-c +Version: 1.0.0-pre-release-1.0.9 +Build-Depends: azure-c-shared-utility +Description: General purpose library for communication over the mqtt protocol diff --git a/ports/azure-umqtt-c/portfile.cmake b/ports/azure-umqtt-c/portfile.cmake new file mode 100644 index 000000000..9a9002166 --- /dev/null +++ b/ports/azure-umqtt-c/portfile.cmake @@ -0,0 +1,39 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("azure-umqtt-c only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Azure/azure-umqtt-c + REF 1.0.0-pre-release-1.0.9 + SHA512 8cabeb431e1b8db64551c0374e80157d9db39011f38db8d3a3dfb77ddf3d6ffed4d6ee0ab697a0af3ce93571fc8a83bb2f3efa52387afe301583151e75f55658 + HEAD_REF master +) + +file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/c-utility/configs/) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -Dskip_samples=ON + -Duse_installed_dependencies=ON + -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC} +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/umqtt) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) + +file(INSTALL + ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-umqtt-c RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/parson/CMakeLists.txt b/ports/parson/CMakeLists.txt new file mode 100644 index 000000000..f96ed427c --- /dev/null +++ b/ports/parson/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.5) +project(parson C) + +add_library(parson parson.c) +target_include_directories(parson PUBLIC $) + +install(TARGETS parson + EXPORT unofficial-parson-targets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +install( + EXPORT unofficial-parson-targets + FILE unofficial-parson-config.cmake + NAMESPACE unofficial::parson:: + DESTINATION share/unofficial-parson +) diff --git a/ports/parson/CONTROL b/ports/parson/CONTROL new file mode 100644 index 000000000..47d1167a2 --- /dev/null +++ b/ports/parson/CONTROL @@ -0,0 +1,3 @@ +Source: parson +Version: 2018-03-23 +Description: a lighweight json library written in C diff --git a/ports/parson/portfile.cmake b/ports/parson/portfile.cmake new file mode 100644 index 000000000..f1028d9ee --- /dev/null +++ b/ports/parson/portfile.cmake @@ -0,0 +1,33 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("parson only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO kgabis/parson + REF 387c5665f6b20faa535a7f782dcaa49390963366 + SHA512 755d1351c2176ac75bb865e83cbbd3b8f6b3a5797cccd96e512e474100fbdaacb7d00eb857ebc4478aad40672baeafdecb5d87c26eaa16f43ef5559a0a56f431 + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(COPY ${SOURCE_PATH}/parson.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-parson TARGET_PATH share/unofficial-parson) + +file(INSTALL + ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/parson RENAME copyright) + +vcpkg_copy_pdbs() From 608456b3252abd688f557e85de3a8697f51d228c Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Fri, 23 Mar 2018 15:09:07 -0700 Subject: [PATCH 05/51] Upgrades --- ports/abseil/CONTROL | 2 +- ports/abseil/portfile.cmake | 4 ++-- ports/azure-c-shared-utility/CONTROL | 2 +- ports/azure-c-shared-utility/portfile.cmake | 4 ++-- ports/azure-iot-sdk-c/CONTROL | 2 +- ports/azure-iot-sdk-c/portfile.cmake | 4 ++-- ports/clara/CONTROL | 2 +- ports/clara/portfile.cmake | 4 ++-- ports/discord-rpc/CONTROL | 2 +- ports/discord-rpc/portfile.cmake | 4 ++-- ports/exiv2/CONTROL | 2 +- ports/exiv2/portfile.cmake | 4 ++-- ports/nuklear/CONTROL | 2 +- ports/nuklear/portfile.cmake | 4 ++-- ports/thrift/CONTROL | 2 +- ports/thrift/portfile.cmake | 4 ++-- ports/zeromq/CONTROL | 2 +- ports/zeromq/portfile.cmake | 4 ++-- 18 files changed, 27 insertions(+), 27 deletions(-) diff --git a/ports/abseil/CONTROL b/ports/abseil/CONTROL index b337b7262..0c28ff456 100644 --- a/ports/abseil/CONTROL +++ b/ports/abseil/CONTROL @@ -1,5 +1,5 @@ Source: abseil -Version: 2018-03-20 +Version: 2018-03-23 Description: an open-source collection designed to augment the C++ standard library. Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives. In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you. diff --git a/ports/abseil/portfile.cmake b/ports/abseil/portfile.cmake index 7f8f28798..48a506710 100644 --- a/ports/abseil/portfile.cmake +++ b/ports/abseil/portfile.cmake @@ -7,8 +7,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO abseil/abseil-cpp - REF 506fb4b56a339314fde23802bd749dbc3b3c1c79 - SHA512 a67d51afcf4446d2c5f27258174dd012e4c15ee1f69eb074770d4f5af335e661b1cafa6b46f6b61b9f7ff0379e7822a03c6d55096dc78a13e554688a8872ebf8 + REF 4e2e6c5c0071e6430056a8ef0a6c8a1fe584d8ff + SHA512 f1daa9f7afb8727f2fd3097683bd7192b9f54536d575ce655a7440281463a3eae1bb0072f3010e74a03693b5dbca2e80e220099ae8557171055efcad70767ef1 HEAD_REF master ) diff --git a/ports/azure-c-shared-utility/CONTROL b/ports/azure-c-shared-utility/CONTROL index efc7592c1..99cbcd38d 100644 --- a/ports/azure-c-shared-utility/CONTROL +++ b/ports/azure-c-shared-utility/CONTROL @@ -1,3 +1,3 @@ Source: azure-c-shared-utility -Version: 1.1.1 +Version: 1.0.0-pre-release-1.0.9 Description: Azure C SDKs common code diff --git a/ports/azure-c-shared-utility/portfile.cmake b/ports/azure-c-shared-utility/portfile.cmake index 40eacaa4b..4635f0d97 100644 --- a/ports/azure-c-shared-utility/portfile.cmake +++ b/ports/azure-c-shared-utility/portfile.cmake @@ -8,8 +8,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-c-shared-utility - REF 1.1.1 - SHA512 859513c3bebc3cb5a9e6c0840d2b5bdb5b21b753ed846dced6f4e88f8f937bae89264da57c1bf430660417b10449914b29000b930520e5834140f63df2109b5f + REF 1.0.0-pre-release-1.0.9 + SHA512 df28d0bb01961943d86febd7b54bafd7037b8461b4025e1db26ba0b76c4cadfa722c4cb5695ac0d4f57e16576eb23f3da02703bcc363af54a0476bccec95ce45 HEAD_REF master ) diff --git a/ports/azure-iot-sdk-c/CONTROL b/ports/azure-iot-sdk-c/CONTROL index 9e65dcb26..8c9bdb956 100644 --- a/ports/azure-iot-sdk-c/CONTROL +++ b/ports/azure-iot-sdk-c/CONTROL @@ -1,4 +1,4 @@ Source: azure-iot-sdk-c -Version: 1.2.1 +Version: 1.0.0-pre-release-1.0.9 Build-Depends: azure-uamqp-c, azure-umqtt-c, azure-c-shared-utility, parson Description: A C99 SDK for connecting devices to Microsoft Azure IoT services diff --git a/ports/azure-iot-sdk-c/portfile.cmake b/ports/azure-iot-sdk-c/portfile.cmake index b60a03286..e4f0d8758 100644 --- a/ports/azure-iot-sdk-c/portfile.cmake +++ b/ports/azure-iot-sdk-c/portfile.cmake @@ -8,8 +8,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-iot-sdk-c - REF 1.2.1 - SHA512 fd97283adf958d6928eda68fb76d9e5a12ef56440fb349d4feb948516150968bf34f3d1bde3341cc1116beb9ea219b0158462a9e6b89c5f7ccd56eb38d8ed2ab + REF 1.0.0-pre-release-1.0.9 + SHA512 972b5da73399805963031dfacc436665c1a7aaecf4a0035af369d9cf184cb4e7be608b4ca5768902dcfb04f18324c399d095f6543ff3d1da835c40da6e18934e HEAD_REF master ) diff --git a/ports/clara/CONTROL b/ports/clara/CONTROL index 0825f74e0..878313563 100644 --- a/ports/clara/CONTROL +++ b/ports/clara/CONTROL @@ -1,3 +1,3 @@ Source: clara -Version: 2018-03-11 +Version: 2018-03-23 Description: A simple to use command line parser for C++ \ No newline at end of file diff --git a/ports/clara/portfile.cmake b/ports/clara/portfile.cmake index 377eb932a..3c5108b19 100644 --- a/ports/clara/portfile.cmake +++ b/ports/clara/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO philsquared/Clara - REF 008c2ae0a52aaa485d6cb830ad54bc6466733298 - SHA512 270c5d8cdc9c833d1a95f1a2737b3db0f537ab92569b5cc1007184b9f7e59f66bbf9ba95313332826814c0b670919b31e27fe797bb3083ac5e55bad6a6051d51 + REF 3ba13ad04a3eebc002320f187475ddcd267288a3 + SHA512 d2e73d2ac70f9ad6428f434b101d413453648708d545a1a71f2363b5847e710412b69fdb9ab100eb437f9419cc4c250ce7ca56cfa9132096be9aa471dcb677d0 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/single_include/clara.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) diff --git a/ports/discord-rpc/CONTROL b/ports/discord-rpc/CONTROL index 218257e6a..609460036 100644 --- a/ports/discord-rpc/CONTROL +++ b/ports/discord-rpc/CONTROL @@ -1,3 +1,3 @@ Source: discord-rpc -Version: 3.0.0 +Version: 3.1.0 Description: Rich Presence allows you to leverage the totally overhauled "Now Playing" section in a Discord user's profile to help people play your game together. diff --git a/ports/discord-rpc/portfile.cmake b/ports/discord-rpc/portfile.cmake index 88a5fc976..72709ed7c 100644 --- a/ports/discord-rpc/portfile.cmake +++ b/ports/discord-rpc/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO discordapp/discord-rpc - REF v3.0.0 - SHA512 d14ae2b33d832c456621fd0abb137450ae9d7eedf2a3d343a82f2b609da3946e501a9d8016f62b3dd0219a0eaf3c47f82d6023960608d670632939e0b35e8167 + REF v3.1.0 + SHA512 f467ac6428588b45a90eaec0786b7f0d799b5ee9e97528dd69cd1890fb4dd9c887807e845a0a1d75e19e6e1f6cb2d21c8a77d09e95f24d8df0aae04eae17a216 HEAD_REF master ) diff --git a/ports/exiv2/CONTROL b/ports/exiv2/CONTROL index 5fd6dae7f..36c7220e5 100644 --- a/ports/exiv2/CONTROL +++ b/ports/exiv2/CONTROL @@ -1,4 +1,4 @@ Source: exiv2 -Version: 2018-03-20 +Version: 2018-03-23 Build-Depends: zlib, expat, libiconv Description: Image metadata library and tools http://www.exiv2.org diff --git a/ports/exiv2/portfile.cmake b/ports/exiv2/portfile.cmake index 3f2440356..80e0b1a6f 100644 --- a/ports/exiv2/portfile.cmake +++ b/ports/exiv2/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Exiv2/exiv2 - REF 59b148aee9402426e4d4cd7db5be6fa5966a68b5 - SHA512 6e7444d26594cd28d0a421b94ce8dc24b8b65cff3112014931a528235578f5cbbb9b945dff61af1d39fed97ab091aa6c5ebab6c662aada93ca5a9b0316f714f0 + REF eb61e57de031ffd8713306cae6ad431d0b84a9b5 + SHA512 078e161de8ffe1953c3215ff745954f00ef4bd5ccef4c7fb079ad67d5350a31bb8f692cb664adba889433c4e79e446dc1f31edfd9ecc8b9471faeba82ae425e6 HEAD_REF master ) diff --git a/ports/nuklear/CONTROL b/ports/nuklear/CONTROL index c9a4c23a5..ba4340611 100644 --- a/ports/nuklear/CONTROL +++ b/ports/nuklear/CONTROL @@ -1,3 +1,3 @@ Source: nuklear -Version: 2018-03-20 +Version: 2018-03-23 Description: This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain diff --git a/ports/nuklear/portfile.cmake b/ports/nuklear/portfile.cmake index 833a34692..9c240f411 100644 --- a/ports/nuklear/portfile.cmake +++ b/ports/nuklear/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vurtun/nuklear - REF 94c0412a086110dc801d83c20be7cb4e89dbd5d1 - SHA512 882bce080ca15a9b789289ceda987f1154df1800fd1428cf1d14db5704caf9ed3842ec1fe345db9548fe5305aa8f8721ddd53e75294b896c8caad061d29ec95a + REF 1acb673af13e72d8ac07522a22127ffd33af65a9 + SHA512 8ee7c45d0a6c64062adec3575ea94cf0d5c8d60d9f30cf8c72051c6e9fcf030562379074f37c1f5da256cce8537078694673ed3b947a603982cdbf26c393fa4b HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/nuklear.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) diff --git a/ports/thrift/CONTROL b/ports/thrift/CONTROL index 1e0037736..7e21ecce6 100644 --- a/ports/thrift/CONTROL +++ b/ports/thrift/CONTROL @@ -1,4 +1,4 @@ Source: thrift -Version: 2018-03-20 +Version: 2018-03-23 Build-Depends: zlib, libevent, openssl, boost-range, boost-smart-ptr, boost-date-time, boost-locale, boost-scope-exit Description: Apache Thrift is a software project spanning a variety of programming languages and use cases. Our goal is to make reliable, performant communication and data serialization across languages as efficient and seamless as possible. Originally developed at Facebook, Thrift was open sourced in April 2007 and entered the Apache Incubator in May, 2008. Thrift became an Apache TLP in October, 2010. diff --git a/ports/thrift/portfile.cmake b/ports/thrift/portfile.cmake index 968a5b109..eae7f5c73 100644 --- a/ports/thrift/portfile.cmake +++ b/ports/thrift/portfile.cmake @@ -15,8 +15,8 @@ vcpkg_find_acquire_program(BISON) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO apache/thrift - REF 22bd3450c6e97e348d64fb6a75171e8ced79d1e4 - SHA512 5774fd332daac80891ac25c6188e415bf5335ffecc636dc120500f03b6ae23f9317c65dbc703cc89946a894f12c6805f396fd42e763d1e0d3ccfe6398357d321 + REF 272470790ad6db791bd6f9db399b2cd2d5879f74 + SHA512 9f9ae5d72adf1b46970f7527fe3841349c5652e4721a16967f1d9edbe4b1ecc83f146ece492234da16ed7c033b172aa49dc7f5431bcdea37286a2dc21835691e HEAD_REF master ) diff --git a/ports/zeromq/CONTROL b/ports/zeromq/CONTROL index 4ea44046b..b3ec200db 100644 --- a/ports/zeromq/CONTROL +++ b/ports/zeromq/CONTROL @@ -1,3 +1,3 @@ Source: zeromq -Version: 2018-03-20 +Version: 2018-03-23 Description: The ZeroMQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products diff --git a/ports/zeromq/portfile.cmake b/ports/zeromq/portfile.cmake index 062ed6b48..72165adaa 100644 --- a/ports/zeromq/portfile.cmake +++ b/ports/zeromq/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeromq/libzmq - REF 15b3dccf47179a88311c84d6ef250565abd05182 - SHA512 568d315f48c194f7db3df59ecf70a6625e916a4c258a3f5ad1d7b9e5899afd6a7d825f4fb8811cb49dcd752142952a9bd6e4c31af6572373462a4821d6a1a2bd + REF c8a1c4542d13b6492949e7525f4fe8da266cac2b + SHA512 600bb2a43afb4f6e2d9a7ce8470841bcb03fc9737f17d276f52b0cf78c6f17d1cf08e2b0046ff746efa8738f33128cb51cbe63cb215937a892222f2e4895a659 HEAD_REF master ) From 7029daa36df7040e420b3722f345b6923ce93ef0 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Fri, 23 Mar 2018 09:59:42 -0700 Subject: [PATCH 06/51] [vcpkg] Handle non-sorted output from std::filesystem --- toolsrc/src/vcpkg/install.cpp | 4 ++-- toolsrc/src/vcpkg/paragraphs.cpp | 4 +++- toolsrc/src/vcpkg/vcpkglib.cpp | 1 + toolsrc/src/vcpkg/vcpkgpaths.cpp | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/toolsrc/src/vcpkg/install.cpp b/toolsrc/src/vcpkg/install.cpp index 7a963c82f..1fbf6d97e 100644 --- a/toolsrc/src/vcpkg/install.cpp +++ b/toolsrc/src/vcpkg/install.cpp @@ -70,8 +70,8 @@ namespace vcpkg::Install } const std::string filename = file.filename().u8string(); - if (fs::is_regular_file(status) && (Strings::case_insensitive_ascii_equals(filename.c_str(), "CONTROL") || - Strings::case_insensitive_ascii_equals(filename.c_str(), "BUILD_INFO"))) + if (fs::is_regular_file(status) && (Strings::case_insensitive_ascii_equals(filename, "CONTROL") || + Strings::case_insensitive_ascii_equals(filename, "BUILD_INFO"))) { // Do not copy the control file continue; diff --git a/toolsrc/src/vcpkg/paragraphs.cpp b/toolsrc/src/vcpkg/paragraphs.cpp index d0b0c0abf..41ffceec7 100644 --- a/toolsrc/src/vcpkg/paragraphs.cpp +++ b/toolsrc/src/vcpkg/paragraphs.cpp @@ -251,7 +251,9 @@ namespace vcpkg::Paragraphs LoadResults try_load_all_ports(const Files::Filesystem& fs, const fs::path& ports_dir) { LoadResults ret; - for (auto&& path : fs.get_files_non_recursive(ports_dir)) + auto port_dirs = fs.get_files_non_recursive(ports_dir); + Util::sort(port_dirs); + for (auto&& path : port_dirs) { auto maybe_spgh = try_load_port(fs, path); if (const auto spgh = maybe_spgh.get()) diff --git a/toolsrc/src/vcpkg/vcpkglib.cpp b/toolsrc/src/vcpkg/vcpkglib.cpp index 220c29720..7979fd9a5 100644 --- a/toolsrc/src/vcpkg/vcpkglib.cpp +++ b/toolsrc/src/vcpkg/vcpkglib.cpp @@ -54,6 +54,7 @@ namespace vcpkg StatusParagraphs current_status_db = load_current_database(fs, status_file, status_file_old); auto update_files = fs.get_files_non_recursive(updates_dir); + Util::sort(update_files); if (update_files.empty()) { // updates directory is empty, control file is up-to-date. diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp index c36def15d..9b331d7fc 100644 --- a/toolsrc/src/vcpkg/vcpkgpaths.cpp +++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp @@ -405,6 +405,7 @@ namespace vcpkg { output.push_back(path.stem().filename().string()); } + Util::sort(output); return output; }); From b14c1ba9088bd5b2ec88ebead50677cc6cc1a576 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Fri, 23 Mar 2018 10:01:07 -0700 Subject: [PATCH 07/51] [libpq][harfbuzz][qt5-base] Fix non-Windows --- ports/harfbuzz/CONTROL | 2 +- ...pe.patch => find-package-freetype-2.patch} | 26 +-- ports/harfbuzz/portfile.cmake | 4 +- ports/libpq/CMakeLists.txt | 95 +++++++-- ports/libpq/CONTROL | 4 +- ports/libpq/pg_config.darwin.h | 191 ++++++++++++++++++ ports/libpq/pg_config.linux.h | 173 ++++++++++++++++ ports/libpq/portfile.cmake | 5 +- ports/qt5-base/configure_qt.cmake | 33 +-- ports/qt5-base/install_qt.cmake | 29 ++- ports/qt5-base/portfile.cmake | 158 ++++++++++----- 11 files changed, 611 insertions(+), 109 deletions(-) rename ports/harfbuzz/{find-package-freetype.patch => find-package-freetype-2.patch} (74%) create mode 100644 ports/libpq/pg_config.darwin.h create mode 100644 ports/libpq/pg_config.linux.h diff --git a/ports/harfbuzz/CONTROL b/ports/harfbuzz/CONTROL index f03f52187..e6cf6a8e5 100644 --- a/ports/harfbuzz/CONTROL +++ b/ports/harfbuzz/CONTROL @@ -1,4 +1,4 @@ Source: harfbuzz -Version: 1.7.6 +Version: 1.7.6-1 Description: HarfBuzz OpenType text shaping engine Build-Depends: freetype, ragel, glib (windows) diff --git a/ports/harfbuzz/find-package-freetype.patch b/ports/harfbuzz/find-package-freetype-2.patch similarity index 74% rename from ports/harfbuzz/find-package-freetype.patch rename to ports/harfbuzz/find-package-freetype-2.patch index a556d1377..85dbbdeec 100644 --- a/ports/harfbuzz/find-package-freetype.patch +++ b/ports/harfbuzz/find-package-freetype-2.patch @@ -1,13 +1,13 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 24ccb6f..21df836 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -201,7 +201,7 @@ set(project_headers - ## Find and include needed header folders and libraries - if (HB_HAVE_FREETYPE) - -- include(FindFreetype) -+ find_package(Freetype REQUIRED) - if (NOT FREETYPE_FOUND) - message(FATAL_ERROR "HB_HAVE_FREETYPE was set, but we failed to find it. Maybe add a CMAKE_PREFIX_PATH= to your Freetype2 install prefix") - endif() +diff --git a/CMakeLists.txt b/CMakeLists.txt +index defd5d6..03f9d4e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -267,7 +267,7 @@ set (subset_project_headers + + ## Find and include needed header folders and libraries + if (HB_HAVE_FREETYPE) +- include (FindFreetype) ++ find_package(Freetype REQUIRED) + if (NOT FREETYPE_FOUND) + message(FATAL_ERROR "HB_HAVE_FREETYPE was set, but we failed to find it. Maybe add a CMAKE_PREFIX_PATH= to your Freetype2 install prefix") + endif () diff --git a/ports/harfbuzz/portfile.cmake b/ports/harfbuzz/portfile.cmake index b1c91aa91..906e42d95 100644 --- a/ports/harfbuzz/portfile.cmake +++ b/ports/harfbuzz/portfile.cmake @@ -12,10 +12,10 @@ vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-fix-uwp-build.patch" - "${CMAKE_CURRENT_LIST_DIR}/find-package-freetype.patch" + "${CMAKE_CURRENT_LIST_DIR}/find-package-freetype-2.patch" ) -if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_CMAKE_SYSTEM_NAME) SET(HAVE_GLIB "OFF") SET(BUILTIN_UCDN "ON") else() diff --git a/ports/libpq/CMakeLists.txt b/ports/libpq/CMakeLists.txt index 35a67118a..57b86e255 100644 --- a/ports/libpq/CMakeLists.txt +++ b/ports/libpq/CMakeLists.txt @@ -1,41 +1,98 @@ cmake_minimum_required(VERSION 3.5) project(libpq VERSION 9.6.1 LANGUAGES C) +if(NOT CMAKE_SYSTEM_PROCESSOR) + set(CMAKE_SYSTEM_PROCESSOR ${CMAKE_HOST_SYSTEM_PROCESSOR}) +endif() + find_package(OpenSSL REQUIRED) +find_program(PERL NAMES perl) + +set(CMAKE_STATIC_LIBRARY_PREFIX) +set(CMAKE_SHARED_LIBRARY_PREFIX) set(CMAKE_DEBUG_POSTFIX "d") -configure_file(${CMAKE_CURRENT_LIST_DIR}/src/include/pg_config.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config.h) -configure_file(${CMAKE_CURRENT_LIST_DIR}/src/include/pg_config_ext.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_ext.h) -configure_file(${CMAKE_CURRENT_LIST_DIR}/src/include/port/win32.h ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_os.h) + +file(REMOVE + ${CMAKE_CURRENT_SOURCE_DIR}/src/include/pg_config.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/include/pg_config_ext.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/include/pg_config_os.h +) + +if(WIN32) + configure_file(src/include/pg_config.h.win32 include/pg_config.h) + configure_file(src/include/pg_config_ext.h.win32 include/pg_config_ext.h) + configure_file(src/include/port/win32.h include/pg_config_os.h) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_ext.h" "#include \n#define PG_INT64_TYPE int64_t") + configure_file("${PORT_DIR}/pg_config.darwin.h" include/pg_config.h COPYONLY) + configure_file(src/include/port/darwin.h include/pg_config_os.h COPYONLY) + configure_file(src/backend/port/dynloader/darwin.h include/dynloader.h COPYONLY) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_ext.h" "#include \n#define PG_INT64_TYPE int64_t") + configure_file(src/include/port/linux.h include/pg_config_os.h COPYONLY) + configure_file("${PORT_DIR}/pg_config.linux.h" include/pg_config.h COPYONLY) + configure_file(src/backend/port/dynloader/linux.h include/dynloader.h COPYONLY) +else() + message(FATAL_ERROR "Unknown system: ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}") +endif() file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_paths.h "#define SYSCONFDIR \"\"") set(INSTALL_INCLUDES ON CACHE BOOL "Install include files") set(pg_port_src - src/port/getaddrinfo.c src/port/pgstrcasecmp.c src/port/pqsignal.c src/port/thread.c - src/port/inet_aton.c src/port/crypt.c src/port/noblock.c src/port/chklocale.c - src/port/inet_net_ntop.c src/port/snprintf.c - src/port/strlcpy.c - src/port/dirent.c src/port/dirmod.c src/port/pgsleep.c src/port/open.c src/port/system.c - src/port/win32error.c - src/port/win32setlocale.c ) +if(WIN32) + list(APPEND pg_port_src + src/port/dirent.c + src/port/inet_aton.c + src/port/inet_net_ntop.c + src/port/win32error.c + src/port/win32setlocale.c + src/port/getaddrinfo.c + src/port/strlcpy.c + ) + include_directories(src/include/port/win32 src/include/port/win32_msvc) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND pg_port_src + src/port/strlcpy.c + ) +endif() + set(pg_backend_src src/backend/libpq/md5.c src/backend/libpq/ip.c src/backend/utils/mb/wchar.c src/backend/utils/mb/encnames.c ) +if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND pg_backend_src + src/backend/port/dynloader/linux.c + src/backend/port/sysv_sema.c + src/backend/port/sysv_shmem.c + ) +endif() +if(NOT WIN32) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/include/utils/errcodes.h + COMMAND "${PERL}" "${CMAKE_CURRENT_SOURCE_DIR}/src/backend/utils/generate-errcodes.pl" "${CMAKE_CURRENT_SOURCE_DIR}/src/backend/utils/errcodes.txt" > "${CMAKE_CURRENT_BINARY_DIR}/include/utils/errcodes.h" + VERBATIM + ) + list(APPEND pg_backend_src + ${CMAKE_CURRENT_BINARY_DIR}/include/utils/errcodes.h + ) +endif() + set(pg_libpq_src src/interfaces/libpq/fe-auth.c src/interfaces/libpq/fe-connect.c @@ -49,16 +106,21 @@ set(pg_libpq_src src/interfaces/libpq/fe-secure.c src/interfaces/libpq/libpq-events.c src/interfaces/libpq/pqexpbuffer.c - src/interfaces/libpq/pthread-win32.c - src/interfaces/libpq/win32.c src/interfaces/libpq/libpq-dist.rc ) + +if(WIN32) + list(APPEND pg_libpq_src + src/interfaces/libpq/pthread-win32.c + src/interfaces/libpq/win32.c + ) +endif() set(pg_libpq_interface src/include/postgres_ext.h ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_ext.h ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config.h src/interfaces/libpq/libpq-fe.h - ) +) set(pg_libpq_catalog_interface src/include/catalog/pg_type.h src/include/catalog/genbki.h @@ -68,8 +130,11 @@ set(CMAKE_DEBUG_POSTFIX "d") set(CMAKE_INCLUDE_CURRENT_DIR ON) add_library(libpq ${pg_port_src} ${pg_backend_src} ${pg_libpq_src}) target_compile_definitions(libpq PRIVATE -DFRONTEND -DENABLE_THREAD_SAFETY -DUSE_OPENSSL -D_CRT_SECURE_NO_WARNINGS) -target_link_libraries(libpq PRIVATE OpenSSL::SSL ws2_32 secur32 advapi32 shell32) -target_include_directories(libpq PRIVATE src/include src/include/port/win32 src/include/port/win32_msvc src/port ${CMAKE_CURRENT_BINARY_DIR}/include) +target_link_libraries(libpq PRIVATE OpenSSL::SSL) +if(WIN32) + target_link_libraries(libpq PRIVATE ws2_32 secur32 advapi32 shell32) +endif() +target_include_directories(libpq PRIVATE src/include src/port ${CMAKE_CURRENT_BINARY_DIR}/include) set_target_properties(libpq PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) install(TARGETS libpq diff --git a/ports/libpq/CONTROL b/ports/libpq/CONTROL index b91e08526..225d886de 100644 --- a/ports/libpq/CONTROL +++ b/ports/libpq/CONTROL @@ -1,4 +1,4 @@ Source: libpq -Version: 9.6.1-1 +Version: 9.6.1-4 Description: The official database access API of postgresql -Build-Depends: openssl +Build-Depends: openssl, zlib (linux) diff --git a/ports/libpq/pg_config.darwin.h b/ports/libpq/pg_config.darwin.h new file mode 100644 index 000000000..5db9f84d2 --- /dev/null +++ b/ports/libpq/pg_config.darwin.h @@ -0,0 +1,191 @@ +#define ACCEPT_TYPE_ARG1 int +#define ACCEPT_TYPE_ARG2 struct sockaddr * +#define ACCEPT_TYPE_ARG3 socklen_t +#define ACCEPT_TYPE_RETURN int +#define ALIGNOF_DOUBLE 8 +#define ALIGNOF_INT 4 +#define ALIGNOF_LONG 8 +#define ALIGNOF_SHORT 2 +#define BLCKSZ 8192 +#define DEF_PGPORT 5432 +#define DEF_PGPORT_STR "5432" +#define ENABLE_THREAD_SAFETY 1 +#define FLEXIBLE_ARRAY_MEMBER /**/ +#define FLOAT4PASSBYVAL true +#define FLOAT8PASSBYVAL true +#ifdef GETTIMEOFDAY_1ARG +# define gettimeofday(a,b) gettimeofday(a) +#endif +#define HAVE_ATOMICS 1 +#define HAVE_CBRT 1 +#define HAVE_CRYPT 1 +#define HAVE_DECL_FDATASYNC 0 +#define HAVE_DECL_F_FULLFSYNC 1 +#define HAVE_DECL_POSIX_FADVISE 0 +#define HAVE_DECL_SNPRINTF 1 +#define HAVE_DECL_STRLCAT 1 +#define HAVE_DECL_STRLCPY 1 +#define HAVE_DECL_SYS_SIGLIST 1 +#define HAVE_DECL_VSNPRINTF 1 +#define HAVE_DLOPEN 1 +#define HAVE_FDATASYNC 1 +#define HAVE_FLS 1 +#define HAVE_FSEEKO 1 +#define HAVE_FUNCNAME__FUNC 1 +#define HAVE_GCC__ATOMIC_INT32_CAS 1 +#define HAVE_GCC__ATOMIC_INT64_CAS 1 +#define HAVE_GCC__SYNC_CHAR_TAS 1 +#define HAVE_GCC__SYNC_INT32_CAS 1 +#define HAVE_GCC__SYNC_INT32_TAS 1 +#define HAVE_GCC__SYNC_INT64_CAS 1 +#define HAVE_GETADDRINFO 1 +#define HAVE_GETIFADDRS 1 +#define HAVE_GETOPT 1 +#define HAVE_GETOPT_H 1 +#define HAVE_GETOPT_LONG 1 +#define HAVE_GETPEEREID 1 +#define HAVE_GETPWUID_R 1 +#define HAVE_GETRLIMIT 1 +#define HAVE_GETRUSAGE 1 +#define HAVE_HISTORY_TRUNCATE_FILE 1 +#define HAVE_IFADDRS_H 1 +#define HAVE_INET_ATON 1 +#define HAVE_INTPTR_T 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_INT_OPTERR 1 +#define HAVE_INT_OPTRESET 1 +#define HAVE_INT_TIMEZONE 1 +#define HAVE_IPV6 1 +#define HAVE_ISINF 1 +#define HAVE_LANGINFO_H 1 +#define HAVE_LIBM 1 +#define HAVE_LIBREADLINE 1 +#define HAVE_LIBZ 1 +#define HAVE_LOCALE_T 1 +#define HAVE_LONG_INT_64 1 +#define HAVE_LONG_LONG_INT 1 +#define HAVE_MBSTOWCS_L 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMORY_H 1 +#define HAVE_MKDTEMP 1 +#define HAVE_NETINET_IN_H 1 +#define HAVE_NETINET_TCP_H 1 +#define HAVE_NET_IF_H 1 +#define HAVE_POLL 1 +#define HAVE_POLL_H 1 +#define HAVE_PTHREAD 1 +#define HAVE_PTHREAD_IS_THREADED_NP 1 +#define HAVE_PTHREAD_PRIO_INHERIT 1 +#define HAVE_PWD_H 1 +#define HAVE_RANDOM 1 +#define HAVE_READLINE_HISTORY_H 1 +#define HAVE_READLINE_READLINE_H 1 +#define HAVE_READLINK 1 +#define HAVE_RINT 1 +#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1 +#define HAVE_RL_COMPLETION_MATCHES 1 +#define HAVE_RL_FILENAME_COMPLETION_FUNCTION 1 +#define HAVE_SETSID 1 +#define HAVE_SHM_OPEN 1 +#define HAVE_SNPRINTF 1 +#define HAVE_SPINLOCKS 1 +#define HAVE_SRANDOM 1 +#define HAVE_SSL_GET_CURRENT_COMPRESSION 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRERROR 1 +#define HAVE_STRERROR_R 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRUCT_ADDRINFO 1 +#define HAVE_STRUCT_OPTION 1 +#define HAVE_STRUCT_SOCKADDR_SA_LEN 1 +#define HAVE_STRUCT_SOCKADDR_STORAGE 1 +#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 +#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN 1 +#define HAVE_STRUCT_TM_TM_ZONE 1 +#define HAVE_SYMLINK 1 +#define HAVE_SYSLOG 1 +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_IPC_H 1 +#define HAVE_SYS_POLL_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 +#define HAVE_SYS_SEM_H 1 +#define HAVE_SYS_SHM_H 1 +#define HAVE_SYS_SOCKET_H 1 +#define HAVE_SYS_SOCKIO_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_SYS_UCRED_H 1 +#define HAVE_SYS_UN_H 1 +#define HAVE_TERMIOS_H 1 +#define HAVE_TM_ZONE 1 +#define HAVE_TOWLOWER 1 +#define HAVE_TZNAME 1 +#define HAVE_UINTPTR_T 1 +#define HAVE_UNION_SEMUN 1 +#define HAVE_UNISTD_H 1 +#define HAVE_UNIX_SOCKETS 1 +#define HAVE_UNSETENV 1 +#define HAVE_UNSIGNED_LONG_LONG_INT 1 +#define HAVE_UTIME 1 +#define HAVE_UTIMES 1 +#define HAVE_UTIME_H 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_WCHAR_H 1 +#define HAVE_WCSTOMBS 1 +#define HAVE_WCSTOMBS_L 1 +#define HAVE_WCTYPE_H 1 +#define HAVE__BUILTIN_BSWAP32 1 +#define HAVE__BUILTIN_BSWAP64 1 +#define HAVE__BUILTIN_CONSTANT_P 1 +#define HAVE__BUILTIN_TYPES_COMPATIBLE_P 1 +#define HAVE__BUILTIN_UNREACHABLE 1 +#define HAVE__GET_CPUID 1 +#define HAVE__STATIC_ASSERT 1 +#define HAVE__VA_ARGS 1 +#define INT64_MODIFIER "l" +#define LOCALE_T_IN_XLOCALE 1 +#define MAXIMUM_ALIGNOF 8 +#define MEMSET_LOOP_LIMIT 1024 +#define PACKAGE_BUGREPORT "pgsql-bugs@postgresql.org" +#define PACKAGE_NAME "PostgreSQL" +#define PACKAGE_STRING "PostgreSQL 9.6.3" +#define PACKAGE_TARNAME "postgresql" +#define PACKAGE_URL "" +#define PACKAGE_VERSION "9.6.3" +#define PG_INT128_TYPE __int128 +#define PG_INT64_TYPE long int +#define PG_KRB_SRVNAM "postgres" +#define PG_MAJORVERSION "9.6" +#define PG_PRINTF_ATTRIBUTE printf +#define PG_VERSION "9.6.3" +#define PG_VERSION_NUM 90603 +#define PG_VERSION_STR "PostgreSQL 9.6.3 on x86_64-apple-darwin15.6.0, compiled by Apple LLVM version 7.0.2 (clang-700.1.81), 64-bit" +#define RELSEG_SIZE 131072 +#define SIZEOF_LONG 8 +#define SIZEOF_OFF_T 8 +#define SIZEOF_SIZE_T 8 +#define SIZEOF_VOID_P 8 +#define STDC_HEADERS 1 +#define STRERROR_R_INT 1 +#define USE_FLOAT4_BYVAL 1 +#define USE_FLOAT8_BYVAL 1 +#define USE_INTEGER_DATETIMES 1 +#define USE_SSE42_CRC32C_WITH_RUNTIME_CHECK 1 +#define USE_SYSV_SEMAPHORES 1 +#define USE_SYSV_SHARED_MEMORY 1 +#define WCSTOMBS_L_IN_XLOCALE 1 +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#endif +#define XLOG_BLCKSZ 8192 +#define XLOG_SEG_SIZE (16 * 1024 * 1024) diff --git a/ports/libpq/pg_config.linux.h b/ports/libpq/pg_config.linux.h new file mode 100644 index 000000000..d3758bb95 --- /dev/null +++ b/ports/libpq/pg_config.linux.h @@ -0,0 +1,173 @@ +#define ACCEPT_TYPE_ARG1 int +#define ACCEPT_TYPE_ARG2 struct sockaddr * +#define ACCEPT_TYPE_ARG3 socklen_t +#define ACCEPT_TYPE_RETURN int +#define ALIGNOF_DOUBLE 8 +#define ALIGNOF_INT 4 +#define ALIGNOF_LONG 8 +#define ALIGNOF_SHORT 2 +#define BLCKSZ 8192 +#define DEF_PGPORT 5432 +#define DEF_PGPORT_STR "5432" +#define ENABLE_THREAD_SAFETY 1 +#define FLEXIBLE_ARRAY_MEMBER /**/ +#define FLOAT4PASSBYVAL true +#define FLOAT8PASSBYVAL true +#ifdef GETTIMEOFDAY_1ARG +# define gettimeofday(a,b) gettimeofday(a) +#endif +#define HAVE_ATOMICS 1 +#define HAVE_CBRT 1 +#define HAVE_CRYPT 1 +#define HAVE_CRYPT_H 1 +#define HAVE_DECL_FDATASYNC 1 +#define HAVE_DECL_F_FULLFSYNC 0 +#define HAVE_DECL_POSIX_FADVISE 1 +#define HAVE_DECL_SNPRINTF 1 +#define HAVE_DECL_STRLCAT 0 +#define HAVE_DECL_STRLCPY 0 +#define HAVE_DECL_SYS_SIGLIST 1 +#define HAVE_DECL_VSNPRINTF 1 +#define HAVE_DLOPEN 1 +#define HAVE_FDATASYNC 1 +#define HAVE_FSEEKO 1 +#define HAVE_FUNCNAME__FUNC 1 +#define HAVE_GCC__ATOMIC_INT32_CAS 1 +#define HAVE_GCC__ATOMIC_INT64_CAS 1 +#define HAVE_GCC__SYNC_CHAR_TAS 1 +#define HAVE_GCC__SYNC_INT32_CAS 1 +#define HAVE_GCC__SYNC_INT32_TAS 1 +#define HAVE_GCC__SYNC_INT64_CAS 1 +#define HAVE_GETADDRINFO 1 +#define HAVE_GETHOSTBYNAME_R 1 +#define HAVE_GETIFADDRS 1 +#define HAVE_GETOPT 1 +#define HAVE_GETOPT_H 1 +#define HAVE_GETOPT_LONG 1 +#define HAVE_GETPWUID_R 1 +#define HAVE_GETRLIMIT 1 +#define HAVE_GETRUSAGE 1 +#define HAVE_IFADDRS_H 1 +#define HAVE_INET_ATON 1 +#define HAVE_INTPTR_T 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_INT_OPTERR 1 +#define HAVE_INT_TIMEZONE 1 +#define HAVE_IPV6 1 +#define HAVE_ISINF 1 +#define HAVE_LANGINFO_H 1 +#define HAVE_LIBM 1 +#define HAVE_LIBZ 1 +#define HAVE_LOCALE_T 1 +#define HAVE_LONG_INT_64 1 +#define HAVE_LONG_LONG_INT 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMORY_H 1 +#define HAVE_MKDTEMP 1 +#define HAVE_NETINET_IN_H 1 +#define HAVE_NETINET_TCP_H 1 +#define HAVE_NET_IF_H 1 +#define HAVE_POLL 1 +#define HAVE_POLL_H 1 +#define HAVE_POSIX_FADVISE 1 +#define HAVE_PTHREAD 1 +#define HAVE_PTHREAD_PRIO_INHERIT 1 +#define HAVE_PWD_H 1 +#define HAVE_RANDOM 1 +#define HAVE_READLINK 1 +#define HAVE_RINT 1 +#define HAVE_SETSID 1 +#define HAVE_SHM_OPEN 1 +#define HAVE_SNPRINTF 1 +#define HAVE_SPINLOCKS 1 +#define HAVE_SRANDOM 1 +#define HAVE_SSL_GET_CURRENT_COMPRESSION 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRERROR 1 +#define HAVE_STRERROR_R 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRUCT_ADDRINFO 1 +#define HAVE_STRUCT_OPTION 1 +#define HAVE_STRUCT_SOCKADDR_STORAGE 1 +#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 +#define HAVE_STRUCT_TM_TM_ZONE 1 +#define HAVE_SYMLINK 1 +#define HAVE_SYNC_FILE_RANGE 1 +#define HAVE_SYSLOG 1 +#define HAVE_SYS_EPOLL_H 1 +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_IPC_H 1 +#define HAVE_SYS_POLL_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 +#define HAVE_SYS_SEM_H 1 +#define HAVE_SYS_SHM_H 1 +#define HAVE_SYS_SOCKET_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_SYS_UN_H 1 +#define HAVE_TERMIOS_H 1 +#define HAVE_TM_ZONE 1 +#define HAVE_TOWLOWER 1 +#define HAVE_TZNAME 1 +#define HAVE_UINTPTR_T 1 +#define HAVE_UNISTD_H 1 +#define HAVE_UNIX_SOCKETS 1 +#define HAVE_UNSETENV 1 +#define HAVE_UNSIGNED_LONG_LONG_INT 1 +#define HAVE_UTIME 1 +#define HAVE_UTIMES 1 +#define HAVE_UTIME_H 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_WCHAR_H 1 +#define HAVE_WCSTOMBS 1 +#define HAVE_WCTYPE_H 1 +#define HAVE__BUILTIN_BSWAP32 1 +#define HAVE__BUILTIN_BSWAP64 1 +#define HAVE__BUILTIN_CONSTANT_P 1 +#define HAVE__BUILTIN_TYPES_COMPATIBLE_P 1 +#define HAVE__BUILTIN_UNREACHABLE 1 +#define HAVE__GET_CPUID 1 +#define HAVE__STATIC_ASSERT 1 +#define HAVE__VA_ARGS 1 +#define INT64_MODIFIER "l" +#define MAXIMUM_ALIGNOF 8 +#define MEMSET_LOOP_LIMIT 1024 +#define PACKAGE_BUGREPORT "pgsql-bugs@postgresql.org" +#define PACKAGE_NAME "PostgreSQL" +#define PACKAGE_STRING "PostgreSQL 9.6.3" +#define PACKAGE_TARNAME "postgresql" +#define PACKAGE_URL "" +#define PACKAGE_VERSION "9.6.3" +#define PG_INT128_TYPE __int128 +#define PG_INT64_TYPE long int +#define PG_KRB_SRVNAM "postgres" +#define PG_MAJORVERSION "9.6" +#define PG_PRINTF_ATTRIBUTE gnu_printf +#define PG_VERSION "9.6.3" +#define PG_VERSION_NUM 90603 +#define PG_VERSION_STR "PostgreSQL 9.6.3 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904, 64-bit" +#define RELSEG_SIZE 131072 +#define SIZEOF_LONG 8 +#define SIZEOF_OFF_T 8 +#define SIZEOF_SIZE_T 8 +#define SIZEOF_VOID_P 8 +#define STDC_HEADERS 1 +#define USE_FLOAT4_BYVAL 1 +#define USE_FLOAT8_BYVAL 1 +#define USE_INTEGER_DATETIMES 1 +#define USE_SSE42_CRC32C_WITH_RUNTIME_CHECK 1 +#define USE_SYSV_SEMAPHORES 1 +#define USE_SYSV_SHARED_MEMORY 1 +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#endif +#define XLOG_BLCKSZ 8192 +#define XLOG_SEG_SIZE (16 * 1024 * 1024) diff --git a/ports/libpq/portfile.cmake b/ports/libpq/portfile.cmake index 2d14204fa..7b23aed32 100644 --- a/ports/libpq/portfile.cmake +++ b/ports/libpq/portfile.cmake @@ -12,7 +12,10 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS_DEBUG -DINSTALL_INCLUDES=OFF + OPTIONS + "-DPORT_DIR=${CMAKE_CURRENT_LIST_DIR}" + OPTIONS_DEBUG + -DINSTALL_INCLUDES=OFF ) vcpkg_install_cmake() diff --git a/ports/qt5-base/configure_qt.cmake b/ports/qt5-base/configure_qt.cmake index 1d4f1e570..356361a9b 100644 --- a/ports/qt5-base/configure_qt.cmake +++ b/ports/qt5-base/configure_qt.cmake @@ -1,12 +1,8 @@ function(configure_qt) cmake_parse_arguments(_csc "" "SOURCE_PATH;PLATFORM" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" ${ARGN}) - if (_csc_PLATFORM) - set(PLATFORM ${_csc_PLATFORM}) - elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v140") - set(PLATFORM "win32-msvc2015") - elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v141") - set(PLATFORM "win32-msvc2017") + if(NOT _csc_PLATFORM) + message(FATAL_ERROR "configure_qt requires a PLATFORM argument.") endif() vcpkg_find_acquire_program(PERL) @@ -15,17 +11,24 @@ function(configure_qt) file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH}") - if(DEFINED VCPKG_CRT_LINKAGE AND VCPKG_CRT_LINKAGE STREQUAL static) - list(APPEND _csc_OPTIONS - "-static" - "-static-runtime" - ) + if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + list(APPEND _csc_OPTIONS "-static") + endif() + + if(VCPKG_CRT_LINKAGE STREQUAL "static") + list(APPEND _csc_OPTIONS "-static-runtime") + endif() + + if(CMAKE_HOST_WIN32) + set(CONFIGURE_BAT "configure.bat") + else() + set(CONFIGURE_BAT "configure") endif() message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) vcpkg_execute_required_process( - COMMAND "${_csc_SOURCE_PATH}/configure.bat" ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG} + COMMAND "${_csc_SOURCE_PATH}/${CONFIGURE_BAT}" ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG} -debug -prefix ${CURRENT_PACKAGES_DIR}/debug -hostbindir ${CURRENT_PACKAGES_DIR}/debug/tools/qt5 @@ -36,7 +39,7 @@ function(configure_qt) -headerdir ${CURRENT_PACKAGES_DIR}/include -I ${CURRENT_INSTALLED_DIR}/include -L ${CURRENT_INSTALLED_DIR}/debug/lib - -platform ${PLATFORM} + -platform ${_csc_PLATFORM} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg LOGNAME config-${TARGET_TRIPLET}-dbg ) @@ -45,7 +48,7 @@ function(configure_qt) message(STATUS "Configuring ${TARGET_TRIPLET}-rel") file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) vcpkg_execute_required_process( - COMMAND "${_csc_SOURCE_PATH}/configure.bat" ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE} + COMMAND "${_csc_SOURCE_PATH}/${CONFIGURE_BAT}" ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE} -release -prefix ${CURRENT_PACKAGES_DIR} -hostbindir ${CURRENT_PACKAGES_DIR}/tools/qt5 @@ -55,7 +58,7 @@ function(configure_qt) -qmldir ${CURRENT_PACKAGES_DIR}/qml -I ${CURRENT_INSTALLED_DIR}/include -L ${CURRENT_INSTALLED_DIR}/lib - -platform ${PLATFORM} + -platform ${_csc_PLATFORM} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel LOGNAME config-${TARGET_TRIPLET}-rel ) diff --git a/ports/qt5-base/install_qt.cmake b/ports/qt5-base/install_qt.cmake index 37528e4e6..482802f38 100644 --- a/ports/qt5-base/install_qt.cmake +++ b/ports/qt5-base/install_qt.cmake @@ -2,12 +2,27 @@ function(install_qt) cmake_parse_arguments(_bc "DISABLE_PARALLEL" "" "" ${ARGN}) if (_bc_DISABLE_PARALLEL) - set(JOBS "1") + set(NUMBER_OF_PROCESSORS "1") else() - set(JOBS "$ENV{NUMBER_OF_PROCESSORS}") + if(DEFINED ENV{NUMBER_OF_PROCESSORS}) + set(NUMBER_OF_PROCESSORS $ENV{NUMBER_OF_PROCESSORS}) + else() + execute_process( + COMMAND nproc + OUTPUT_VARIABLE NUMBER_OF_PROCESSORS + ) + string(REPLACE "\n" "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}") + string(REPLACE " " "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}") + endif() endif() - vcpkg_find_acquire_program(JOM) + if(CMAKE_HOST_WIN32) + vcpkg_find_acquire_program(JOM) + set(INVOKE "${JOM}" /J ${NUMBER_OF_PROCESSORS}) + else() + find_program(MAKE make) + set(INVOKE "${MAKE}" -j${NUMBER_OF_PROCESSORS}) + endif() vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY) set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}") @@ -16,12 +31,12 @@ function(install_qt) message(STATUS "Package ${TARGET_TRIPLET}-dbg") set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/debug/bin;${_path}") vcpkg_execute_required_process( - COMMAND ${JOM} /J ${JOBS} + COMMAND ${INVOKE} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg LOGNAME build-${TARGET_TRIPLET}-dbg ) vcpkg_execute_required_process( - COMMAND ${JOM} /J ${JOBS} install + COMMAND ${INVOKE} install WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg LOGNAME package-${TARGET_TRIPLET}-dbg ) @@ -30,12 +45,12 @@ function(install_qt) message(STATUS "Package ${TARGET_TRIPLET}-rel") set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/bin;${_path}") vcpkg_execute_required_process( - COMMAND ${JOM} /J ${JOBS} + COMMAND ${INVOKE} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel LOGNAME build-${TARGET_TRIPLET}-rel ) vcpkg_execute_required_process( - COMMAND ${JOM} /J ${JOBS} install + COMMAND ${INVOKE} install WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel LOGNAME package-${TARGET_TRIPLET}-rel ) diff --git a/ports/qt5-base/portfile.cmake b/ports/qt5-base/portfile.cmake index 9e9d7779a..39498b4a3 100644 --- a/ports/qt5-base/portfile.cmake +++ b/ports/qt5-base/portfile.cmake @@ -1,13 +1,13 @@ include(vcpkg_common_functions) string(LENGTH "${CURRENT_BUILDTREES_DIR}" BUILDTREES_PATH_LENGTH) -if(BUILDTREES_PATH_LENGTH GREATER 37) +if(BUILDTREES_PATH_LENGTH GREATER 37 AND CMAKE_HOST_WIN32) message(WARNING "Qt5's buildsystem uses very long paths and may fail on your system.\n" "We recommend moving vcpkg to a short path such as 'C:\\src\\vcpkg' or using the subst command." ) endif() -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) +if((NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") AND VCPKG_LIBRARY_LINKAGE STREQUAL static) message(FATAL_ERROR "Qt5 doesn't currently support static builds. Please use a dynamic triplet instead.") endif() @@ -30,58 +30,108 @@ if (EXISTS ${CURRENT_BUILDTREES_DIR}/src/${ARCHIVE_NAME}) file(RENAME ${CURRENT_BUILDTREES_DIR}/src/${ARCHIVE_NAME} ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}) endif() +# Remove vendored dependencies to ensure they are not picked up by the build +foreach(DEPENDENCY freetype zlib harfbuzzng libjpeg libpng double-conversion) + if(EXISTS ${SOURCE_PATH}/src/3rdparty/${DEPENDENCY}) + file(REMOVE_RECURSE ${SOURCE_PATH}/src/3rdparty/${DEPENDENCY}) + endif() +endforeach() + +file(REMOVE_RECURSE ${SOURCE_PATH}/include/QtZlib) + vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES - "${CMAKE_CURRENT_LIST_DIR}/fix-system-pcre2.patch" +# "${CMAKE_CURRENT_LIST_DIR}/fix-system-pcre2.patch" "${CMAKE_CURRENT_LIST_DIR}/fix-system-freetype.patch" ) # This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings set(ENV{_CL_} "/utf-8") -configure_qt( - SOURCE_PATH ${SOURCE_PATH} - OPTIONS - -confirm-license - -opensource - -system-zlib - -system-libjpeg - -system-libpng - -system-freetype - -system-pcre - -system-harfbuzz - -system-doubleconversion - -system-sqlite - -no-fontconfig - -sql-sqlite - -sql-psql - -nomake examples -nomake tests - -opengl desktop # other options are "-no-opengl" and "-opengl angle" - -mp - LIBJPEG_LIBS="-ljpeg" - OPTIONS_RELEASE - ZLIB_LIBS="-lzlib" - LIBPNG_LIBS="-llibpng16" - FREETYPE_LIBS="-lfreetype" - OPTIONS_DEBUG - ZLIB_LIBS="-lzlibd" - LIBPNG_LIBS="-llibpng16d" - PSQL_LIBS="-llibpqd" - FREETYPE_LIBS="-lfreetyped" +set(CORE_OPTIONS + -confirm-license + -opensource + -system-zlib + -system-libjpeg + -system-libpng + -system-freetype + -system-pcre + -system-harfbuzz + -system-doubleconversion + -no-fontconfig + -nomake examples -nomake tests ) +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + if(VCPKG_PLATFORM_TOOLSET MATCHES "v140") + set(PLATFORM "win32-msvc2015") + elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v141") + set(PLATFORM "win32-msvc2017") + endif() + configure_qt( + SOURCE_PATH ${SOURCE_PATH} + PLATFORM ${PLATFORM} + OPTIONS + ${CORE_OPTIONS} + -sql-sqlite + -sql-psql + -system-sqlite + -mp + -opengl desktop # other options are "-no-opengl", "-opengl angle", and "-opengl desktop" + LIBJPEG_LIBS="-ljpeg" + OPTIONS_RELEASE + ZLIB_LIBS="-lzlib" + LIBPNG_LIBS="-llibpng16" + FREETYPE_LIBS="-lfreetype" + OPTIONS_DEBUG + ZLIB_LIBS="-lzlibd" + LIBPNG_LIBS="-llibpng16d" + PSQL_LIBS="-llibpqd" + FREETYPE_LIBS="-lfreetyped" + ) +elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") + configure_qt( + SOURCE_PATH ${SOURCE_PATH} + PLATFORM "linux-g++" + OPTIONS + ${CORE_OPTIONS} + -no-sqlite + -no-opengl # other options are "-no-opengl", "-opengl angle", and "-opengl desktop" + LIBJPEG_LIBS="-ljpeg" + OPTIONS_RELEASE + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libpng16.a" + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libz.a" + "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/lib/libz.a" + "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpng16.a" + "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/lib/libfreetype.a" + "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpq.a ${CURRENT_INSTALLED_DIR}/lib/libssl.a ${CURRENT_INSTALLED_DIR}/lib/libcrypto.a" + OPTIONS_DEBUG + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a" + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a" + "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a" + "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a" + "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libfreetyped.a" + "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpqd.a ${CURRENT_INSTALLED_DIR}/debug/lib/libssl.a ${CURRENT_INSTALLED_DIR}/debug/lib/libcrypto.a" + ) +endif() + install_qt() file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) -file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/bin/*.exe") +file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/bin/*") +list(FILTER BINARY_TOOLS EXCLUDE REGEX "\\.dll\$") file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5) file(REMOVE ${BINARY_TOOLS}) -file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe") +file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/debug/bin/*") +list(FILTER BINARY_TOOLS EXCLUDE REGEX "\\.dll\$") file(REMOVE ${BINARY_TOOLS}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/tools") +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") +endif() file(COPY ${CMAKE_CURRENT_LIST_DIR}/qt_debug.conf ${CMAKE_CURRENT_LIST_DIR}/qt_release.conf DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5) @@ -94,25 +144,27 @@ vcpkg_execute_required_process( vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/qt5) -#--------------------------------------------------------------------------- -# qtmain(d) vs. Qt5AxServer(d) -#--------------------------------------------------------------------------- -# Qt applications have to either link to qtmain(d) or to Qt5AxServer(d), -# never both. See http://doc.qt.io/qt-5/activeqt-server.html for more info. -# -# Create manual-link folders: -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) -# -# Either have users explicitly link against qtmain.lib, qtmaind.lib: -file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) -file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) -file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib) -file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl) -file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) -file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) -file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib) -file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl) +if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib) + #--------------------------------------------------------------------------- + # qtmain(d) vs. Qt5AxServer(d) + #--------------------------------------------------------------------------- + # Qt applications have to either link to qtmain(d) or to Qt5AxServer(d), + # never both. See http://doc.qt.io/qt-5/activeqt-server.html for more info. + # + # Create manual-link folders: + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) + # + # Either have users explicitly link against qtmain.lib, qtmaind.lib: + file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) + file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl) + file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) + file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl) +endif() file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/plugins) file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/debug/plugins) From 8f4ce4fab638b70ff890f0e7c09b92f866b1493d Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Sat, 24 Mar 2018 09:33:40 -0700 Subject: [PATCH 08/51] [magnum-extras] Fix empty build --- ports/magnum-extras/portfile.cmake | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/ports/magnum-extras/portfile.cmake b/ports/magnum-extras/portfile.cmake index 402c1aa1f..d97508497 100644 --- a/ports/magnum-extras/portfile.cmake +++ b/ports/magnum-extras/portfile.cmake @@ -7,11 +7,7 @@ vcpkg_from_github( HEAD_REF master ) -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - set(BUILD_STATIC 1) -else() - set(BUILD_STATIC 0) -endif() +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) # Handle features set(_COMPONENT_FLAGS "") @@ -48,14 +44,14 @@ if("ui" IN_LIST FEATURES) message(WARNING "It is recommended to install one of magnum-plugins[freetypefont,harfbuzzfont,stbtruetypefont] to have the UI library working out of the box") endif() - # Debug includes and share are the same as release file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include - ${CURRENT_PACKAGES_DIR}/debug/share) + ${CURRENT_PACKAGES_DIR}/debug/share +) # Clean up empty directories -if("${FEATURES}" STREQUAL "") +if("${FEATURES}" STREQUAL "core") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/lib From e47f165146535e3c6cc21d62a3b7832ce029e02b Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Sat, 24 Mar 2018 09:35:49 -0700 Subject: [PATCH 09/51] [magnum-integration] Fix empty build --- ports/magnum-integration/portfile.cmake | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/ports/magnum-integration/portfile.cmake b/ports/magnum-integration/portfile.cmake index 8ef1899fd..da9c393b7 100644 --- a/ports/magnum-integration/portfile.cmake +++ b/ports/magnum-integration/portfile.cmake @@ -7,11 +7,7 @@ vcpkg_from_github( HEAD_REF master ) -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - set(BUILD_STATIC 1) -else() - set(BUILD_STATIC 0) -endif() +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) # Handle features set(_COMPONENT_FLAGS "") @@ -44,14 +40,16 @@ vcpkg_install_cmake() # Debug includes and share are the same as release file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include - ${CURRENT_PACKAGES_DIR}/debug/share) + ${CURRENT_PACKAGES_DIR}/debug/share +) # Clean up empty directories -if(NOT FEATURES) +if("${FEATURES}" STREQUAL "core") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/lib - ${CURRENT_PACKAGES_DIR}/debug) + ${CURRENT_PACKAGES_DIR}/debug + ) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) endif() From 5ba45ffd9bb450da020e3694f38c78387d5270ec Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Sat, 24 Mar 2018 13:26:48 -0700 Subject: [PATCH 10/51] [shapelib] Add option to disable tests --- ports/shapelib/CONTROL | 2 +- ports/shapelib/option-build-test.patch | 13 +++++++++++++ ports/shapelib/portfile.cmake | 25 ++++++++++++++++++------- 3 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 ports/shapelib/option-build-test.patch diff --git a/ports/shapelib/CONTROL b/ports/shapelib/CONTROL index 7d37eb8aa..57fbecb53 100644 --- a/ports/shapelib/CONTROL +++ b/ports/shapelib/CONTROL @@ -1,3 +1,3 @@ Source: shapelib -Version: 1.4.1 +Version: 1.4.1-1 Description: Shapefile C Library is simple C API for reading and writing ESRI Shapefiles diff --git a/ports/shapelib/option-build-test.patch b/ports/shapelib/option-build-test.patch new file mode 100644 index 000000000..c91410f38 --- /dev/null +++ b/ports/shapelib/option-build-test.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c3ef935..845ec06 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -148,7 +148,7 @@ set(executables + find_program(BASH_EXECUTABLE bash) + find_program(SED_EXECUTABLE sed) + if(BASH_EXECUTABLE AND SED_EXECUTABLE) +- set(BUILD_TEST ON) ++ option(BUILD_TEST "" ON) + else(BASH_EXECUTABLE AND SED_EXECUTABLE) + message(STATUS "WARNING: sed or bash not available so disabling testing") + endif(BASH_EXECUTABLE AND SED_EXECUTABLE) diff --git a/ports/shapelib/portfile.cmake b/ports/shapelib/portfile.cmake index 0f2787689..eed76736f 100644 --- a/ports/shapelib/portfile.cmake +++ b/ports/shapelib/portfile.cmake @@ -11,10 +11,17 @@ vcpkg_download_distfile(ARCHIVE ) vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/option-build-test.patch +) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS -DBUILD_TEST=OFF) + OPTIONS + -DBUILD_TEST=OFF +) vcpkg_install_cmake() @@ -22,15 +29,19 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(GLOB EXES "${CURRENT_PACKAGES_DIR}/bin/*.exe") -file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/shapelib) -file(REMOVE ${EXES}) +if(EXES) + file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/shapelib) + file(REMOVE ${EXES}) +endif() file(GLOB DEBUG_EXES "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe") -file(REMOVE ${DEBUG_EXES}) +if(DEBUG_EXES) + file(REMOVE ${DEBUG_EXES}) +endif() -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) endif() file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/shapelib) From e8d1666d9c88ff1ccce3b388ea09f500735f17b7 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Sat, 24 Mar 2018 13:08:06 -0700 Subject: [PATCH 11/51] [aws-sdk-cpp] Update and fix cmake files --- ports/aws-sdk-cpp/CONTROL | 421 +++++++++++++++++- ports/aws-sdk-cpp/CONTROL.in | 4 + ports/aws-sdk-cpp/compute_build_only.cmake | 418 +++++++++++++++++ .../disable_warning_as_error.patch | 13 - ports/aws-sdk-cpp/drop_git.patch | 13 - ports/aws-sdk-cpp/generateFeatures.ps1 | 50 +++ ports/aws-sdk-cpp/portfile.cmake | 102 +++-- scripts/cmake/vcpkg_fixup_cmake_targets.cmake | 22 +- 8 files changed, 953 insertions(+), 90 deletions(-) create mode 100644 ports/aws-sdk-cpp/CONTROL.in create mode 100644 ports/aws-sdk-cpp/compute_build_only.cmake delete mode 100644 ports/aws-sdk-cpp/disable_warning_as_error.patch delete mode 100644 ports/aws-sdk-cpp/drop_git.patch create mode 100644 ports/aws-sdk-cpp/generateFeatures.ps1 diff --git a/ports/aws-sdk-cpp/CONTROL b/ports/aws-sdk-cpp/CONTROL index 3c784db00..09b1c1a7f 100644 --- a/ports/aws-sdk-cpp/CONTROL +++ b/ports/aws-sdk-cpp/CONTROL @@ -1,3 +1,422 @@ Source: aws-sdk-cpp -Version: 1.3.58 +Version: 1.4.21 Description: AWS SDK for C++ +Default-Features: dynamodb, ec2, kms, rds, s3, sns, sqs +# Automatically generated by generateFeatures.ps1 + +Feature: access-management +Description: C++ SDK for the AWS access-management service + +Feature: acm +Description: C++ SDK for the AWS acm service + +Feature: alexaforbusiness +Description: C++ SDK for the AWS alexaforbusiness service + +Feature: apigateway +Description: C++ SDK for the AWS apigateway service + +Feature: application-autoscaling +Description: C++ SDK for the AWS application-autoscaling service + +Feature: appstream +Description: C++ SDK for the AWS appstream service + +Feature: appsync +Description: C++ SDK for the AWS appsync service + +Feature: athena +Description: C++ SDK for the AWS athena service + +Feature: autoscaling +Description: C++ SDK for the AWS autoscaling service + +Feature: autoscaling-plans +Description: C++ SDK for the AWS autoscaling-plans service + +Feature: AWSMigrationHub +Description: C++ SDK for the AWS AWSMigrationHub service + +Feature: batch +Description: C++ SDK for the AWS batch service + +Feature: budgets +Description: C++ SDK for the AWS budgets service + +Feature: ce +Description: C++ SDK for the AWS ce service + +Feature: cloud9 +Description: C++ SDK for the AWS cloud9 service + +Feature: clouddirectory +Description: C++ SDK for the AWS clouddirectory service + +Feature: cloudformation +Description: C++ SDK for the AWS cloudformation service + +Feature: cloudfront +Description: C++ SDK for the AWS cloudfront service + +Feature: cloudhsm +Description: C++ SDK for the AWS cloudhsm service + +Feature: cloudhsmv2 +Description: C++ SDK for the AWS cloudhsmv2 service + +Feature: cloudsearch +Description: C++ SDK for the AWS cloudsearch service + +Feature: cloudsearchdomain +Description: C++ SDK for the AWS cloudsearchdomain service + +Feature: cloudtrail +Description: C++ SDK for the AWS cloudtrail service + +Feature: codebuild +Description: C++ SDK for the AWS codebuild service + +Feature: codecommit +Description: C++ SDK for the AWS codecommit service + +Feature: codedeploy +Description: C++ SDK for the AWS codedeploy service + +Feature: codepipeline +Description: C++ SDK for the AWS codepipeline service + +Feature: codestar +Description: C++ SDK for the AWS codestar service + +Feature: cognito-identity +Description: C++ SDK for the AWS cognito-identity service + +Feature: cognito-idp +Description: C++ SDK for the AWS cognito-idp service + +Feature: cognito-sync +Description: C++ SDK for the AWS cognito-sync service + +Feature: comprehend +Description: C++ SDK for the AWS comprehend service + +Feature: config +Description: C++ SDK for the AWS config service + +Feature: cur +Description: C++ SDK for the AWS cur service + +Feature: datapipeline +Description: C++ SDK for the AWS datapipeline service + +Feature: dax +Description: C++ SDK for the AWS dax service + +Feature: devicefarm +Description: C++ SDK for the AWS devicefarm service + +Feature: directconnect +Description: C++ SDK for the AWS directconnect service + +Feature: discovery +Description: C++ SDK for the AWS discovery service + +Feature: dms +Description: C++ SDK for the AWS dms service + +Feature: ds +Description: C++ SDK for the AWS ds service + +Feature: dynamodb +Description: C++ SDK for the AWS dynamodb service + +Feature: dynamodbstreams +Description: C++ SDK for the AWS dynamodbstreams service + +Feature: ec2 +Description: C++ SDK for the AWS ec2 service + +Feature: ecr +Description: C++ SDK for the AWS ecr service + +Feature: ecs +Description: C++ SDK for the AWS ecs service + +Feature: elasticache +Description: C++ SDK for the AWS elasticache service + +Feature: elasticbeanstalk +Description: C++ SDK for the AWS elasticbeanstalk service + +Feature: elasticfilesystem +Description: C++ SDK for the AWS elasticfilesystem service + +Feature: elasticloadbalancing +Description: C++ SDK for the AWS elasticloadbalancing service + +Feature: elasticloadbalancingv2 +Description: C++ SDK for the AWS elasticloadbalancingv2 service + +Feature: elasticmapreduce +Description: C++ SDK for the AWS elasticmapreduce service + +Feature: elastictranscoder +Description: C++ SDK for the AWS elastictranscoder service + +Feature: email +Description: C++ SDK for the AWS email service + +Feature: es +Description: C++ SDK for the AWS es service + +Feature: events +Description: C++ SDK for the AWS events service + +Feature: firehose +Description: C++ SDK for the AWS firehose service + +Feature: gamelift +Description: C++ SDK for the AWS gamelift service + +Feature: glacier +Description: C++ SDK for the AWS glacier service + +Feature: glue +Description: C++ SDK for the AWS glue service + +Feature: greengrass +Description: C++ SDK for the AWS greengrass service + +Feature: guardduty +Description: C++ SDK for the AWS guardduty service + +Feature: health +Description: C++ SDK for the AWS health service + +Feature: iam +Description: C++ SDK for the AWS iam service + +Feature: identity-management +Description: C++ SDK for the AWS identity-management service + +Feature: importexport +Description: C++ SDK for the AWS importexport service + +Feature: inspector +Description: C++ SDK for the AWS inspector service + +Feature: iot +Description: C++ SDK for the AWS iot service + +Feature: iot-data +Description: C++ SDK for the AWS iot-data service + +Feature: iot-jobs-data +Description: C++ SDK for the AWS iot-jobs-data service + +Feature: kinesis +Description: C++ SDK for the AWS kinesis service + +Feature: kinesis-video-archived-media +Description: C++ SDK for the AWS kinesis-video-archived-media service + +Feature: kinesis-video-media +Description: C++ SDK for the AWS kinesis-video-media service + +Feature: kinesisanalytics +Description: C++ SDK for the AWS kinesisanalytics service + +Feature: kinesisvideo +Description: C++ SDK for the AWS kinesisvideo service + +Feature: kms +Description: C++ SDK for the AWS kms service + +Feature: lambda +Description: C++ SDK for the AWS lambda service + +Feature: lex +Description: C++ SDK for the AWS lex service + +Feature: lex-models +Description: C++ SDK for the AWS lex-models service + +Feature: lightsail +Description: C++ SDK for the AWS lightsail service + +Feature: logs +Description: C++ SDK for the AWS logs service + +Feature: machinelearning +Description: C++ SDK for the AWS machinelearning service + +Feature: marketplace-entitlement +Description: C++ SDK for the AWS marketplace-entitlement service + +Feature: marketplacecommerceanalytics +Description: C++ SDK for the AWS marketplacecommerceanalytics service + +Feature: mediaconvert +Description: C++ SDK for the AWS mediaconvert service + +Feature: medialive +Description: C++ SDK for the AWS medialive service + +Feature: mediapackage +Description: C++ SDK for the AWS mediapackage service + +Feature: mediastore +Description: C++ SDK for the AWS mediastore service + +Feature: mediastore-data +Description: C++ SDK for the AWS mediastore-data service + +Feature: meteringmarketplace +Description: C++ SDK for the AWS meteringmarketplace service + +Feature: mobile +Description: C++ SDK for the AWS mobile service + +Feature: mobileanalytics +Description: C++ SDK for the AWS mobileanalytics service + +Feature: monitoring +Description: C++ SDK for the AWS monitoring service + +Feature: mq +Description: C++ SDK for the AWS mq service + +Feature: mturk-requester +Description: C++ SDK for the AWS mturk-requester service + +Feature: opsworks +Description: C++ SDK for the AWS opsworks service + +Feature: opsworkscm +Description: C++ SDK for the AWS opsworkscm service + +Feature: organizations +Description: C++ SDK for the AWS organizations service + +Feature: pinpoint +Description: C++ SDK for the AWS pinpoint service + +Feature: polly +Description: C++ SDK for the AWS polly service + +Feature: polly-sample +Description: C++ SDK for the AWS polly-sample service + +Feature: pricing +Description: C++ SDK for the AWS pricing service + +Feature: queues +Description: C++ SDK for the AWS queues service + +Feature: rds +Description: C++ SDK for the AWS rds service + +Feature: redshift +Description: C++ SDK for the AWS redshift service + +Feature: rekognition +Description: C++ SDK for the AWS rekognition service + +Feature: resource-groups +Description: C++ SDK for the AWS resource-groups service + +Feature: resourcegroupstaggingapi +Description: C++ SDK for the AWS resourcegroupstaggingapi service + +Feature: route53 +Description: C++ SDK for the AWS route53 service + +Feature: route53domains +Description: C++ SDK for the AWS route53domains service + +Feature: s3 +Description: C++ SDK for the AWS s3 service + +Feature: s3-encryption +Description: C++ SDK for the AWS s3-encryption service + +Feature: sagemaker +Description: C++ SDK for the AWS sagemaker service + +Feature: sagemaker-runtime +Description: C++ SDK for the AWS sagemaker-runtime service + +Feature: sdb +Description: C++ SDK for the AWS sdb service + +Feature: serverlessrepo +Description: C++ SDK for the AWS serverlessrepo service + +Feature: servicecatalog +Description: C++ SDK for the AWS servicecatalog service + +Feature: servicediscovery +Description: C++ SDK for the AWS servicediscovery service + +Feature: shield +Description: C++ SDK for the AWS shield service + +Feature: sms +Description: C++ SDK for the AWS sms service + +Feature: snowball +Description: C++ SDK for the AWS snowball service + +Feature: sns +Description: C++ SDK for the AWS sns service + +Feature: sqs +Description: C++ SDK for the AWS sqs service + +Feature: ssm +Description: C++ SDK for the AWS ssm service + +Feature: states +Description: C++ SDK for the AWS states service + +Feature: storagegateway +Description: C++ SDK for the AWS storagegateway service + +Feature: sts +Description: C++ SDK for the AWS sts service + +Feature: support +Description: C++ SDK for the AWS support service + +Feature: swf +Description: C++ SDK for the AWS swf service + +Feature: text-to-speech +Description: C++ SDK for the AWS text-to-speech service + +Feature: transcribe +Description: C++ SDK for the AWS transcribe service + +Feature: transfer +Description: C++ SDK for the AWS transfer service + +Feature: translate +Description: C++ SDK for the AWS translate service + +Feature: waf +Description: C++ SDK for the AWS waf service + +Feature: waf-regional +Description: C++ SDK for the AWS waf-regional service + +Feature: workdocs +Description: C++ SDK for the AWS workdocs service + +Feature: workmail +Description: C++ SDK for the AWS workmail service + +Feature: workspaces +Description: C++ SDK for the AWS workspaces service + +Feature: xray +Description: C++ SDK for the AWS xray service diff --git a/ports/aws-sdk-cpp/CONTROL.in b/ports/aws-sdk-cpp/CONTROL.in new file mode 100644 index 000000000..5cf05fdff --- /dev/null +++ b/ports/aws-sdk-cpp/CONTROL.in @@ -0,0 +1,4 @@ +Source: aws-sdk-cpp +Version: 1.4.21 +Description: AWS SDK for C++ +Default-Features: dynamodb, ec2, kms, rds, s3, sns, sqs diff --git a/ports/aws-sdk-cpp/compute_build_only.cmake b/ports/aws-sdk-cpp/compute_build_only.cmake new file mode 100644 index 000000000..de24a203a --- /dev/null +++ b/ports/aws-sdk-cpp/compute_build_only.cmake @@ -0,0 +1,418 @@ +# Automatically generated by generateFeatures.ps1 +if("access-management" IN_LIST FEATURES) + list(APPEND BUILD_ONLY access-management) +endif() +if("acm" IN_LIST FEATURES) + list(APPEND BUILD_ONLY acm) +endif() +if("alexaforbusiness" IN_LIST FEATURES) + list(APPEND BUILD_ONLY alexaforbusiness) +endif() +if("apigateway" IN_LIST FEATURES) + list(APPEND BUILD_ONLY apigateway) +endif() +if("application-autoscaling" IN_LIST FEATURES) + list(APPEND BUILD_ONLY application-autoscaling) +endif() +if("appstream" IN_LIST FEATURES) + list(APPEND BUILD_ONLY appstream) +endif() +if("appsync" IN_LIST FEATURES) + list(APPEND BUILD_ONLY appsync) +endif() +if("athena" IN_LIST FEATURES) + list(APPEND BUILD_ONLY athena) +endif() +if("autoscaling" IN_LIST FEATURES) + list(APPEND BUILD_ONLY autoscaling) +endif() +if("autoscaling-plans" IN_LIST FEATURES) + list(APPEND BUILD_ONLY autoscaling-plans) +endif() +if("AWSMigrationHub" IN_LIST FEATURES) + list(APPEND BUILD_ONLY AWSMigrationHub) +endif() +if("batch" IN_LIST FEATURES) + list(APPEND BUILD_ONLY batch) +endif() +if("budgets" IN_LIST FEATURES) + list(APPEND BUILD_ONLY budgets) +endif() +if("ce" IN_LIST FEATURES) + list(APPEND BUILD_ONLY ce) +endif() +if("cloud9" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloud9) +endif() +if("clouddirectory" IN_LIST FEATURES) + list(APPEND BUILD_ONLY clouddirectory) +endif() +if("cloudformation" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudformation) +endif() +if("cloudfront" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudfront) +endif() +if("cloudhsm" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudhsm) +endif() +if("cloudhsmv2" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudhsmv2) +endif() +if("cloudsearch" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudsearch) +endif() +if("cloudsearchdomain" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudsearchdomain) +endif() +if("cloudtrail" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudtrail) +endif() +if("codebuild" IN_LIST FEATURES) + list(APPEND BUILD_ONLY codebuild) +endif() +if("codecommit" IN_LIST FEATURES) + list(APPEND BUILD_ONLY codecommit) +endif() +if("codedeploy" IN_LIST FEATURES) + list(APPEND BUILD_ONLY codedeploy) +endif() +if("codepipeline" IN_LIST FEATURES) + list(APPEND BUILD_ONLY codepipeline) +endif() +if("codestar" IN_LIST FEATURES) + list(APPEND BUILD_ONLY codestar) +endif() +if("cognito-identity" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cognito-identity) +endif() +if("cognito-idp" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cognito-idp) +endif() +if("cognito-sync" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cognito-sync) +endif() +if("comprehend" IN_LIST FEATURES) + list(APPEND BUILD_ONLY comprehend) +endif() +if("config" IN_LIST FEATURES) + list(APPEND BUILD_ONLY config) +endif() +if("cur" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cur) +endif() +if("datapipeline" IN_LIST FEATURES) + list(APPEND BUILD_ONLY datapipeline) +endif() +if("dax" IN_LIST FEATURES) + list(APPEND BUILD_ONLY dax) +endif() +if("devicefarm" IN_LIST FEATURES) + list(APPEND BUILD_ONLY devicefarm) +endif() +if("directconnect" IN_LIST FEATURES) + list(APPEND BUILD_ONLY directconnect) +endif() +if("discovery" IN_LIST FEATURES) + list(APPEND BUILD_ONLY discovery) +endif() +if("dms" IN_LIST FEATURES) + list(APPEND BUILD_ONLY dms) +endif() +if("ds" IN_LIST FEATURES) + list(APPEND BUILD_ONLY ds) +endif() +if("dynamodb" IN_LIST FEATURES) + list(APPEND BUILD_ONLY dynamodb) +endif() +if("dynamodbstreams" IN_LIST FEATURES) + list(APPEND BUILD_ONLY dynamodbstreams) +endif() +if("ec2" IN_LIST FEATURES) + list(APPEND BUILD_ONLY ec2) +endif() +if("ecr" IN_LIST FEATURES) + list(APPEND BUILD_ONLY ecr) +endif() +if("ecs" IN_LIST FEATURES) + list(APPEND BUILD_ONLY ecs) +endif() +if("elasticache" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elasticache) +endif() +if("elasticbeanstalk" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elasticbeanstalk) +endif() +if("elasticfilesystem" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elasticfilesystem) +endif() +if("elasticloadbalancing" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elasticloadbalancing) +endif() +if("elasticloadbalancingv2" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elasticloadbalancingv2) +endif() +if("elasticmapreduce" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elasticmapreduce) +endif() +if("elastictranscoder" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elastictranscoder) +endif() +if("email" IN_LIST FEATURES) + list(APPEND BUILD_ONLY email) +endif() +if("es" IN_LIST FEATURES) + list(APPEND BUILD_ONLY es) +endif() +if("events" IN_LIST FEATURES) + list(APPEND BUILD_ONLY events) +endif() +if("firehose" IN_LIST FEATURES) + list(APPEND BUILD_ONLY firehose) +endif() +if("gamelift" IN_LIST FEATURES) + list(APPEND BUILD_ONLY gamelift) +endif() +if("glacier" IN_LIST FEATURES) + list(APPEND BUILD_ONLY glacier) +endif() +if("glue" IN_LIST FEATURES) + list(APPEND BUILD_ONLY glue) +endif() +if("greengrass" IN_LIST FEATURES) + list(APPEND BUILD_ONLY greengrass) +endif() +if("guardduty" IN_LIST FEATURES) + list(APPEND BUILD_ONLY guardduty) +endif() +if("health" IN_LIST FEATURES) + list(APPEND BUILD_ONLY health) +endif() +if("iam" IN_LIST FEATURES) + list(APPEND BUILD_ONLY iam) +endif() +if("identity-management" IN_LIST FEATURES) + list(APPEND BUILD_ONLY identity-management) +endif() +if("importexport" IN_LIST FEATURES) + list(APPEND BUILD_ONLY importexport) +endif() +if("inspector" IN_LIST FEATURES) + list(APPEND BUILD_ONLY inspector) +endif() +if("iot" IN_LIST FEATURES) + list(APPEND BUILD_ONLY iot) +endif() +if("iot-data" IN_LIST FEATURES) + list(APPEND BUILD_ONLY iot-data) +endif() +if("iot-jobs-data" IN_LIST FEATURES) + list(APPEND BUILD_ONLY iot-jobs-data) +endif() +if("kinesis" IN_LIST FEATURES) + list(APPEND BUILD_ONLY kinesis) +endif() +if("kinesis-video-archived-media" IN_LIST FEATURES) + list(APPEND BUILD_ONLY kinesis-video-archived-media) +endif() +if("kinesis-video-media" IN_LIST FEATURES) + list(APPEND BUILD_ONLY kinesis-video-media) +endif() +if("kinesisanalytics" IN_LIST FEATURES) + list(APPEND BUILD_ONLY kinesisanalytics) +endif() +if("kinesisvideo" IN_LIST FEATURES) + list(APPEND BUILD_ONLY kinesisvideo) +endif() +if("kms" IN_LIST FEATURES) + list(APPEND BUILD_ONLY kms) +endif() +if("lambda" IN_LIST FEATURES) + list(APPEND BUILD_ONLY lambda) +endif() +if("lex" IN_LIST FEATURES) + list(APPEND BUILD_ONLY lex) +endif() +if("lex-models" IN_LIST FEATURES) + list(APPEND BUILD_ONLY lex-models) +endif() +if("lightsail" IN_LIST FEATURES) + list(APPEND BUILD_ONLY lightsail) +endif() +if("logs" IN_LIST FEATURES) + list(APPEND BUILD_ONLY logs) +endif() +if("machinelearning" IN_LIST FEATURES) + list(APPEND BUILD_ONLY machinelearning) +endif() +if("marketplace-entitlement" IN_LIST FEATURES) + list(APPEND BUILD_ONLY marketplace-entitlement) +endif() +if("marketplacecommerceanalytics" IN_LIST FEATURES) + list(APPEND BUILD_ONLY marketplacecommerceanalytics) +endif() +if("mediaconvert" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mediaconvert) +endif() +if("medialive" IN_LIST FEATURES) + list(APPEND BUILD_ONLY medialive) +endif() +if("mediapackage" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mediapackage) +endif() +if("mediastore" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mediastore) +endif() +if("mediastore-data" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mediastore-data) +endif() +if("meteringmarketplace" IN_LIST FEATURES) + list(APPEND BUILD_ONLY meteringmarketplace) +endif() +if("mobile" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mobile) +endif() +if("mobileanalytics" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mobileanalytics) +endif() +if("monitoring" IN_LIST FEATURES) + list(APPEND BUILD_ONLY monitoring) +endif() +if("mq" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mq) +endif() +if("mturk-requester" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mturk-requester) +endif() +if("opsworks" IN_LIST FEATURES) + list(APPEND BUILD_ONLY opsworks) +endif() +if("opsworkscm" IN_LIST FEATURES) + list(APPEND BUILD_ONLY opsworkscm) +endif() +if("organizations" IN_LIST FEATURES) + list(APPEND BUILD_ONLY organizations) +endif() +if("pinpoint" IN_LIST FEATURES) + list(APPEND BUILD_ONLY pinpoint) +endif() +if("polly" IN_LIST FEATURES) + list(APPEND BUILD_ONLY polly) +endif() +if("polly-sample" IN_LIST FEATURES) + list(APPEND BUILD_ONLY polly-sample) +endif() +if("pricing" IN_LIST FEATURES) + list(APPEND BUILD_ONLY pricing) +endif() +if("queues" IN_LIST FEATURES) + list(APPEND BUILD_ONLY queues) +endif() +if("rds" IN_LIST FEATURES) + list(APPEND BUILD_ONLY rds) +endif() +if("redshift" IN_LIST FEATURES) + list(APPEND BUILD_ONLY redshift) +endif() +if("rekognition" IN_LIST FEATURES) + list(APPEND BUILD_ONLY rekognition) +endif() +if("resource-groups" IN_LIST FEATURES) + list(APPEND BUILD_ONLY resource-groups) +endif() +if("resourcegroupstaggingapi" IN_LIST FEATURES) + list(APPEND BUILD_ONLY resourcegroupstaggingapi) +endif() +if("route53" IN_LIST FEATURES) + list(APPEND BUILD_ONLY route53) +endif() +if("route53domains" IN_LIST FEATURES) + list(APPEND BUILD_ONLY route53domains) +endif() +if("s3" IN_LIST FEATURES) + list(APPEND BUILD_ONLY s3) +endif() +if("s3-encryption" IN_LIST FEATURES) + list(APPEND BUILD_ONLY s3-encryption) +endif() +if("sagemaker" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sagemaker) +endif() +if("sagemaker-runtime" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sagemaker-runtime) +endif() +if("sdb" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sdb) +endif() +if("serverlessrepo" IN_LIST FEATURES) + list(APPEND BUILD_ONLY serverlessrepo) +endif() +if("servicecatalog" IN_LIST FEATURES) + list(APPEND BUILD_ONLY servicecatalog) +endif() +if("servicediscovery" IN_LIST FEATURES) + list(APPEND BUILD_ONLY servicediscovery) +endif() +if("shield" IN_LIST FEATURES) + list(APPEND BUILD_ONLY shield) +endif() +if("sms" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sms) +endif() +if("snowball" IN_LIST FEATURES) + list(APPEND BUILD_ONLY snowball) +endif() +if("sns" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sns) +endif() +if("sqs" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sqs) +endif() +if("ssm" IN_LIST FEATURES) + list(APPEND BUILD_ONLY ssm) +endif() +if("states" IN_LIST FEATURES) + list(APPEND BUILD_ONLY states) +endif() +if("storagegateway" IN_LIST FEATURES) + list(APPEND BUILD_ONLY storagegateway) +endif() +if("sts" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sts) +endif() +if("support" IN_LIST FEATURES) + list(APPEND BUILD_ONLY support) +endif() +if("swf" IN_LIST FEATURES) + list(APPEND BUILD_ONLY swf) +endif() +if("text-to-speech" IN_LIST FEATURES) + list(APPEND BUILD_ONLY text-to-speech) +endif() +if("transcribe" IN_LIST FEATURES) + list(APPEND BUILD_ONLY transcribe) +endif() +if("transfer" IN_LIST FEATURES) + list(APPEND BUILD_ONLY transfer) +endif() +if("translate" IN_LIST FEATURES) + list(APPEND BUILD_ONLY translate) +endif() +if("waf" IN_LIST FEATURES) + list(APPEND BUILD_ONLY waf) +endif() +if("waf-regional" IN_LIST FEATURES) + list(APPEND BUILD_ONLY waf-regional) +endif() +if("workdocs" IN_LIST FEATURES) + list(APPEND BUILD_ONLY workdocs) +endif() +if("workmail" IN_LIST FEATURES) + list(APPEND BUILD_ONLY workmail) +endif() +if("workspaces" IN_LIST FEATURES) + list(APPEND BUILD_ONLY workspaces) +endif() +if("xray" IN_LIST FEATURES) + list(APPEND BUILD_ONLY xray) +endif() diff --git a/ports/aws-sdk-cpp/disable_warning_as_error.patch b/ports/aws-sdk-cpp/disable_warning_as_error.patch deleted file mode 100644 index ec5587eb8..000000000 --- a/ports/aws-sdk-cpp/disable_warning_as_error.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/cmake/compiler_settings.cmake b/cmake/compiler_settings.cmake -index 36795a2..77334ee 100644 ---- a/cmake/compiler_settings.cmake -+++ b/cmake/compiler_settings.cmake -@@ -57,7 +57,7 @@ endif() - if(MSVC) - # warnings as errors, max warning level (4) - if(NOT CMAKE_CXX_FLAGS MATCHES "/WX") -- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") -+ #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") - endif() - - # taken from http://stackoverflow.com/questions/2368811/how-to-set-warning-level-in-cmake diff --git a/ports/aws-sdk-cpp/drop_git.patch b/ports/aws-sdk-cpp/drop_git.patch deleted file mode 100644 index 491831bd7..000000000 --- a/ports/aws-sdk-cpp/drop_git.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9d2a98a..ce58b68 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -22,7 +22,7 @@ if(CMAKE_MAJOR_VERSION LESS 3) - endif() - - # git is required for Android builds and optional for all other platforms --find_package(Git) -+#find_package(Git) - - # Cmake invocation variables: - # CUSTOM_MEMORY_MANAGEMENT - if set to 1, generates the sdk project files with custom memory management enabled, otherwise disables it diff --git a/ports/aws-sdk-cpp/generateFeatures.ps1 b/ports/aws-sdk-cpp/generateFeatures.ps1 new file mode 100644 index 000000000..cd61a794f --- /dev/null +++ b/ports/aws-sdk-cpp/generateFeatures.ps1 @@ -0,0 +1,50 @@ +[CmdletBinding()] +param( + [Parameter(Mandatory=$true)][string]$ExtractedSources, + [Parameter(Mandatory=$true)][string]$ControlFileIn, + [Parameter(Mandatory=$true)][string]$ControlFile, + [Parameter(Mandatory=$true)][string]$CMakeFragmentFile +) + +$subfolders = Get-Item $ExtractedSources\aws-cpp-sdk-* + +$controltext = gc $ControlFileIn +$controltext += @("# Automatically generated by generateFeatures.ps1") + +$cmakefragmenttext = @("# Automatically generated by generateFeatures.ps1") + +function GetDescription($dir, $modulename) +{ + if (Test-Path "$dir\CMakeLists.txt") + { + $descs = @(Select-String -Path "$dir\CMakeLists.txt" -Pattern "`"C\+\+ SDK for the AWS [^`"]*`"") + if ($descs.count -eq 1) { + $desc = $descs[0].Matches.Value -replace "`"","" + "Description: $desc" + } + else { "Description: C++ SDK for the AWS $modulename service" } + } + else { "Description: C++ SDK for the AWS $modulename service" } +} + +$subfolders | % { + $modulename = $_.name -replace "^aws-cpp-sdk-","" + if ($modulename -match "-tests`$") { return } + if ($modulename -eq "core") { return } + + $controltext += @("") + $controltext += @("Feature: $modulename") + $controltext += @(GetDescription $_ $modulename) + + $cmakefragmenttext += @( + "if(`"$modulename`" IN_LIST FEATURES)", + " list(APPEND BUILD_ONLY $modulename)", + "endif()" + ) +} + +Write-Verbose ($controltext -join "`n") +$controltext | out-file -enc ascii $ControlFile + +Write-Verbose ($cmakefragmenttext -join "`n") +$cmakefragmenttext | out-file -enc ascii $CMakeFragmentFile diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake index d21932496..3adfa15d0 100644 --- a/ports/aws-sdk-cpp/portfile.cmake +++ b/ports/aws-sdk-cpp/portfile.cmake @@ -3,79 +3,77 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aws/aws-sdk-cpp - REF 1.3.58 - SHA512 755fe3fd9d507a43fb03c1530a979f5a5a2848588ccab39509987043b3d274f27a7b163bf078a006123450ee881fd4a092cd703246f6f669810f47c186c2b0b8 + REF 1.4.21 + SHA512 b8d063048b9d879603ace5210b671497336e8160cb3b7d10772465db538d95176458446faa9dccd5cc2d7a2c3242239fc3b80a8aa3a5878a0e2b4fc6673b4a35 HEAD_REF master ) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/drop_git.patch - ${CMAKE_CURRENT_LIST_DIR}/disable_warning_as_error.patch -) +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT) -if(VCPKG_CRT_LINKAGE STREQUAL static) - set(FORCE_SHARED_CRT OFF) -else() - set(FORCE_SHARED_CRT ON) -endif() +set(BUILD_ONLY core) + +include(${CMAKE_CURRENT_LIST_DIR}/compute_build_only.cmake) + +# This handles escaping the list +string(REPLACE ";" "\\\\\\;" BUILD_ONLY "${BUILD_ONLY}") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS - -DENABLE_TESTING=OFF - -DFORCE_SHARED_CRT=${FORCE_SHARED_CRT} + PREFER_NINJA + OPTIONS + -DENABLE_UNITY_BUILD=ON + -DENABLE_TESTING=OFF + -DFORCE_SHARED_CRT=${FORCE_SHARED_CRT} + -DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE + "-DBUILD_ONLY=${BUILD_ONLY}" ) vcpkg_install_cmake() -file(GLOB CMAKE_FILES ${CURRENT_PACKAGES_DIR}/lib/cmake/*) - -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share) - -file(COPY ${CMAKE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/share) +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake TARGET_PATH share) vcpkg_copy_pdbs() -file(GLOB AWS_TARGETS "${CURRENT_PACKAGES_DIR}/share/aws-cpp-sdk-*/aws-cpp-sdk-*targets.cmake") -foreach(AWS_TARGETS ${AWS_TARGETS}) - file(READ ${AWS_TARGETS} _contents) +file(GLOB_RECURSE AWS_TARGETS "${CURRENT_PACKAGES_DIR}/share/*/*-targets-*.cmake") +foreach(AWS_TARGET IN LISTS AWS_TARGETS) + file(READ ${AWS_TARGET} _contents) string(REGEX REPLACE - "get_filename_component\\(_IMPORT_PREFIX \"\\\${CMAKE_CURRENT_LIST_FILE}\" PATH\\)(\nget_filename_component\\(_IMPORT_PREFIX \"\\\${_IMPORT_PREFIX}\" PATH\\))*" - "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)" - _contents "${_contents}") - file(WRITE ${AWS_TARGETS} "${_contents}") -endforeach() - -file(GLOB AWS_TARGETS_RELEASE "${CURRENT_PACKAGES_DIR}/share/aws-cpp-sdk-*/aws-cpp-sdk-*targets-release.cmake") -foreach(AWS_TARGETS_RELEASE ${AWS_TARGETS_RELEASE}) - file(READ ${AWS_TARGETS_RELEASE} _contents) - string(REGEX REPLACE - "bin\\/([A-Za-z0-9_.-]+lib)" + "bin\\/([A-Za-z0-9_.-]+\\.lib)" "lib/\\1" _contents "${_contents}") - file(WRITE ${AWS_TARGETS_RELEASE} "${_contents}") + file(WRITE ${AWS_TARGET} "${_contents}") endforeach() -file(REMOVE_RECURSE - ${CURRENT_PACKAGES_DIR}/debug/include - ${CURRENT_PACKAGES_DIR}/lib/cmake - ${CURRENT_PACKAGES_DIR}/lib/pkgconfig - ${CURRENT_PACKAGES_DIR}/debug/lib/cmake - ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig - ${CURRENT_PACKAGES_DIR}/nuget - ${CURRENT_PACKAGES_DIR}/debug/nuget) +file(GLOB AWS_CONFIGS "${CURRENT_PACKAGES_DIR}/share/*/aws-cpp-sdk-*-config.cmake") +list(FILTER AWS_CONFIGS EXCLUDE REGEX "aws-cpp-sdk-core-config\\.cmake\$") +foreach(AWS_CONFIG IN LISTS AWS_CONFIGS) + file(READ "${AWS_CONFIG}" _contents) + file(WRITE "${AWS_CONFIG}" "include(CMakeFindDependencyMacro)\nfind_dependency(aws-cpp-sdk-core)\n${_contents}") +endforeach() + +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/share + ${CURRENT_PACKAGES_DIR}/share/AWSSDK + ${CURRENT_PACKAGES_DIR}/lib/pkgconfig + ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig + ${CURRENT_PACKAGES_DIR}/nuget + ${CURRENT_PACKAGES_DIR}/debug/nuget +) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - file(GLOB LIB_FILES ${CURRENT_PACKAGES_DIR}/bin/*.lib) - file(GLOB DEBUG_LIB_FILES ${CURRENT_PACKAGES_DIR}/debug/bin/*.lib) - file(COPY ${LIB_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) - file(COPY ${DEBUG_LIB_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - file(REMOVE ${LIB_FILES} ${DEBUG_LIB_FILES}) - - file(APPEND ${CURRENT_PACKAGES_DIR}/include/aws/core/SDKConfig.h "#define USE_IMPORT_EXPORT") + file(GLOB LIB_FILES ${CURRENT_PACKAGES_DIR}/bin/*.lib) + if(LIB_FILES) + file(COPY ${LIB_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + file(REMOVE ${LIB_FILES}) + endif() + file(GLOB DEBUG_LIB_FILES ${CURRENT_PACKAGES_DIR}/debug/bin/*.lib) + if(DEBUG_LIB_FILES) + file(COPY ${DEBUG_LIB_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + file(REMOVE ${DEBUG_LIB_FILES}) + endif() + + file(APPEND ${CURRENT_PACKAGES_DIR}/include/aws/core/SDKConfig.h "#ifndef USE_IMPORT_EXPORT\n#define USE_IMPORT_EXPORT\n#endif") endif() # Handle copyright diff --git a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake index 7f1f827c2..475047737 100644 --- a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake +++ b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake @@ -81,7 +81,7 @@ function(vcpkg_fixup_cmake_targets) endif() endif() - file(GLOB UNUSED_FILES + file(GLOB_RECURSE UNUSED_FILES "${DEBUG_SHARE}/*[Tt]argets.cmake" "${DEBUG_SHARE}/*[Cc]onfig.cmake" "${DEBUG_SHARE}/*[Cc]onfigVersion.cmake" @@ -91,10 +91,10 @@ function(vcpkg_fixup_cmake_targets) file(REMOVE ${UNUSED_FILES}) endif() - file(GLOB RELEASE_TARGETS + file(GLOB_RECURSE RELEASE_TARGETS "${RELEASE_SHARE}/*-release.cmake" ) - foreach(RELEASE_TARGET ${RELEASE_TARGETS}) + foreach(RELEASE_TARGET IN LISTS RELEASE_TARGETS) file(READ ${RELEASE_TARGET} _contents) string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" _contents "${_contents}") string(REGEX REPLACE "\\\${_IMPORT_PREFIX}/bin/([^ \"]+\\.exe)" "\${_IMPORT_PREFIX}/tools/${PORT}/\\1" _contents "${_contents}") @@ -102,25 +102,25 @@ function(vcpkg_fixup_cmake_targets) endforeach() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - file(GLOB DEBUG_TARGETS + file(GLOB_RECURSE DEBUG_TARGETS "${DEBUG_SHARE}/*-debug.cmake" ) - foreach(DEBUG_TARGET ${DEBUG_TARGETS}) - get_filename_component(DEBUG_TARGET_NAME ${DEBUG_TARGET} NAME) + foreach(DEBUG_TARGET IN LISTS DEBUG_TARGETS) + file(RELATIVE_PATH DEBUG_TARGET_REL "${DEBUG_SHARE}" "${DEBUG_TARGET}") file(READ ${DEBUG_TARGET} _contents) string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" _contents "${_contents}") string(REGEX REPLACE "\\\${_IMPORT_PREFIX}/bin/([^ \"]+\\.exe)" "\${_IMPORT_PREFIX}/tools/${PORT}/\\1" _contents "${_contents}") string(REPLACE "\${_IMPORT_PREFIX}/lib" "\${_IMPORT_PREFIX}/debug/lib" _contents "${_contents}") string(REPLACE "\${_IMPORT_PREFIX}/bin" "\${_IMPORT_PREFIX}/debug/bin" _contents "${_contents}") - file(WRITE ${CURRENT_PACKAGES_DIR}/${_vfct_TARGET_PATH}/${DEBUG_TARGET_NAME} "${_contents}") + file(WRITE ${RELEASE_SHARE}/${DEBUG_TARGET_REL} "${_contents}") file(REMOVE ${DEBUG_TARGET}) endforeach() endif() - file(GLOB MAIN_TARGETS "${RELEASE_SHARE}/*[Tt]argets.cmake") - foreach(MAIN_TARGET ${MAIN_TARGETS}) + file(GLOB_RECURSE MAIN_TARGETS "${RELEASE_SHARE}/*[Tt]argets.cmake") + foreach(MAIN_TARGET IN LISTS MAIN_TARGETS) file(READ ${MAIN_TARGET} _contents) string(REGEX REPLACE "get_filename_component\\(_IMPORT_PREFIX \"\\\${CMAKE_CURRENT_LIST_FILE}\" PATH\\)(\nget_filename_component\\(_IMPORT_PREFIX \"\\\${_IMPORT_PREFIX}\" PATH\\))*" @@ -133,8 +133,8 @@ function(vcpkg_fixup_cmake_targets) file(WRITE ${MAIN_TARGET} "${_contents}") endforeach() - file(GLOB MAIN_CONFIGS "${RELEASE_SHARE}/*[Cc]onfig.cmake") - foreach(MAIN_CONFIG ${MAIN_CONFIGS}) + file(GLOB_RECURSE MAIN_CONFIGS "${RELEASE_SHARE}/*[Cc]onfig.cmake") + foreach(MAIN_CONFIG IN LISTS MAIN_CONFIGS) file(READ ${MAIN_CONFIG} _contents) string(REGEX REPLACE "get_filename_component\\(_IMPORT_PREFIX \"\\\${CMAKE_CURRENT_LIST_FILE}\" PATH\\)(\nget_filename_component\\(_IMPORT_PREFIX \"\\\${_IMPORT_PREFIX}\" PATH\\))*" From 21909157e28363480a02d2e30697e8c3d5f36e53 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Sat, 24 Mar 2018 15:00:47 -0700 Subject: [PATCH 12/51] [soundtouch] Use CMake --- ports/soundtouch/CMakeLists.txt | 32 +++++++++++++++++++ ports/soundtouch/CONTROL | 2 +- ports/soundtouch/portfile.cmake | 56 +++++++-------------------------- 3 files changed, 44 insertions(+), 46 deletions(-) create mode 100644 ports/soundtouch/CMakeLists.txt diff --git a/ports/soundtouch/CMakeLists.txt b/ports/soundtouch/CMakeLists.txt new file mode 100644 index 000000000..a15daefe4 --- /dev/null +++ b/ports/soundtouch/CMakeLists.txt @@ -0,0 +1,32 @@ +cmake_minimum_required(VERSION 3.5) +project(soundtouch CXX) + +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(ARCH_SUFFIX _x64) +else() + set(ARCH_SUFFIX) +endif() + +if(BUILD_SHARED_LIBS) + set(TYPE_SUFFIX Dll) +else() + set(TYPE_SUFFIX $<$:D>) +endif() + +file(GLOB SOUNDTOUCH_SOURCES source/SoundTouch/*.cpp) +add_library(libsoundtouch ${SOUNDTOUCH_SOURCES}) +target_include_directories(libsoundtouch PUBLIC include) +set_target_properties(libsoundtouch PROPERTIES OUTPUT_NAME SoundTouch${TYPE_SUFFIX}${ARCH_SUFFIX}) +if(BUILD_SHARED_LIBS) + target_compile_definitions(libsoundtouch PRIVATE -DDLL_EXPORTS) + target_sources(libsoundtouch PRIVATE + source/SoundTouchDLL/SoundTouchDLL.cpp + source/SoundTouchDLL/SoundTouchDLL.rc + ) +endif() + +install(TARGETS libsoundtouch + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) diff --git a/ports/soundtouch/CONTROL b/ports/soundtouch/CONTROL index cc37ea89f..7ae158b88 100644 --- a/ports/soundtouch/CONTROL +++ b/ports/soundtouch/CONTROL @@ -1,4 +1,4 @@ Source: soundtouch -Version: 2.0.0 +Version: 2.0.0-1 Description: SoundTouch is an open-source audio processing library for changing the Tempo, Pitch and Playback Rates of audio streams or audio files. Build-Depends: atlmfc diff --git a/ports/soundtouch/portfile.cmake b/ports/soundtouch/portfile.cmake index cadf5e705..b7fb1fb45 100644 --- a/ports/soundtouch/portfile.cmake +++ b/ports/soundtouch/portfile.cmake @@ -1,11 +1,15 @@ include(vcpkg_common_functions) # NOTE: SoundTouch has a static c++ version too, but entirely different headers, api, etc -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") message(STATUS "Warning: Static building not supported. Building dynamic.") set(VCPKG_LIBRARY_LINKAGE dynamic) endif() +if(VCPKG_CRT_LINKAGE STREQUAL "static") + message(FATAL_ERROR "Refusing to build DLL with static CRT linkage.") +endif() + if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") message(FATAL_ERROR "WindowsStore not supported") endif() @@ -18,56 +22,18 @@ vcpkg_download_distfile(ARCHIVE FILENAME "soundtouch-${VERSION}.zip" SHA512 50ef36b6cd21c16e235b908c5518e29b159b11f658a014c47fe767d3d8acebaefefec0ce253b4ed322cbd26387c69c0ed464ddace0c098e61d56d55c198117a5 ) - -# MSBuild performs in-source builds, so to ensure reliability we must clear them each time -file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src) - vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_execute_required_process( - COMMAND "devenv.exe" - "SoundTouchDLL.sln" - /Upgrade - WORKING_DIRECTORY ${SOURCE_PATH}/source/SoundTouchDLL - LOGNAME upgrade-Packet-${TARGET_TRIPLET} +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) -IF (TRIPLET_SYSTEM_ARCH MATCHES "x64") - # There is no x64 Debug target - SET(BUILD_RELEASE_CONFIGURATION "ReleaseX64") - SET(BUILD_DEBUG_CONFIGURATION "ReleaseX64") -ELSE() - SET(BUILD_RELEASE_CONFIGURATION "Release") - SET(BUILD_DEBUG_CONFIGURATION "Debug") -ENDIF() - -SET(BUILD_ARCH "Win32") - -vcpkg_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/source/SoundTouchDLL/SoundTouchDLL.sln - PLATFORM ${BUILD_ARCH} - RELEASE_CONFIGURATION ${BUILD_RELEASE_CONFIGURATION} - DEBUG_CONFIGURATION ${BUILD_DEBUG_CONFIGURATION} -) +vcpkg_install_cmake() file(INSTALL ${SOURCE_PATH}/source/SoundTouchDLL/SoundTouchDLL.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) -# Handle libraries -IF (BUILD_RELEASE_CONFIGURATION STREQUAL ReleaseX64) - file(INSTALL ${SOURCE_PATH}/lib/SoundTouch_x64.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) - file(INSTALL ${SOURCE_PATH}/lib/SoundTouchDll_x64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -ELSE() - file(INSTALL ${SOURCE_PATH}/lib/SoundTouch.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) - file(INSTALL ${SOURCE_PATH}/lib/SoundTouchDll.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -ENDIF() - -IF (BUILD_DEBUG_CONFIGURATION STREQUAL ReleaseX64) - file(INSTALL ${SOURCE_PATH}/lib/SoundTouch_x64.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - file(INSTALL ${SOURCE_PATH}/lib/SoundTouchDll_x64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) -ELSE() - file(INSTALL ${SOURCE_PATH}/lib/SoundTouchD.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - file(INSTALL ${SOURCE_PATH}/lib/SoundTouchDllD.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) -ENDIF() - file(COPY ${SOURCE_PATH}/COPYING.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/soundtouch) file(RENAME ${CURRENT_PACKAGES_DIR}/share/soundtouch/COPYING.TXT ${CURRENT_PACKAGES_DIR}/share/soundtouch/copyright) From 21ef72d02a7ea840b3427bda2ea2705aeaef2f00 Mon Sep 17 00:00:00 2001 From: Hartmut Kaiser Date: Sun, 25 Mar 2018 08:33:34 +0900 Subject: [PATCH 13/51] Updating HPX to V1.1 (#3120) * Updating HPX to V1.1 * [hpx] Use vcpkg_fixup_cmake_targets --- ports/hpx/CONTROL | 10 +- ports/hpx/boost-1-66.patch | 38 ------- ports/hpx/portfile.cmake | 213 ++++++++++++++++--------------------- 3 files changed, 99 insertions(+), 162 deletions(-) delete mode 100644 ports/hpx/boost-1-66.patch diff --git a/ports/hpx/CONTROL b/ports/hpx/CONTROL index 471b64986..ff6801a42 100644 --- a/ports/hpx/CONTROL +++ b/ports/hpx/CONTROL @@ -1,5 +1,5 @@ -Source: hpx -Version: 1.0.0-8 -Build-Depends: hwloc, boost-chrono, boost-date-time, boost-filesystem, boost-program-options, boost-regex, boost-system, boost-thread, boost-context, boost-iostreams, boost-random, boost-atomic, boost-asio, boost-dynamic-bitset, boost-assign, boost-format, boost-signals2, boost-parameter, boost-bimap, boost-accumulators, boost-lockfree, boost-icl -Description: The C++ Standards Library for Concurrency and Parallelism - HPX is a C++ Standards Library for Concurrency and Parallelism. It implements all of the corresponding facilities as defined by the C++ Standard. Additionally, in HPX we implement functionalities proposed as part of the ongoing C++ standardization process. We also extend the C++ Standard APIs to the distributed case. +Source: hpx +Version: 1.1.0-1 +Build-Depends: hwloc, boost-accumulators, boost-algorithm, boost-asio, boost-assign, boost-atomic, boost-bimap, boost-chrono, boost-config, boost-context, boost-date-time, boost-dynamic-bitset, boost-exception, boost-filesystem, boost-format, boost-iostreams, boost-lockfree, boost-parameter, boost-program-options, boost-range, boost-regex, boost-signals2, boost-smart-ptr, boost-spirit, boost-system, boost-thread, boost-throw-exception, boost-variant, boost-winapi +Description: The C++ Standards Library for Concurrency and Parallelism + HPX is a C++ Standards Library for Concurrency and Parallelism. It implements all of the corresponding facilities as defined by the C++ Standard. Additionally, in HPX we implement functionalities proposed as part of the ongoing C++ standardization process. We also extend the C++ Standard APIs to the distributed case. diff --git a/ports/hpx/boost-1-66.patch b/ports/hpx/boost-1-66.patch deleted file mode 100644 index 6f98a48aa..000000000 --- a/ports/hpx/boost-1-66.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/src/util/asio_util.cpp b/src/util/asio_util.cpp -index e2207de..48a35b9 100644 ---- a/src/util/asio_util.cpp -+++ b/src/util/asio_util.cpp -@@ -231,7 +231,7 @@ namespace hpx { namespace util - tcp::endpoint ep; - if (util::get_endpoint(address, port, ep)) - { -- return endpoint_iterator_type(tcp::resolver::iterator::create( -+ return endpoint_iterator_type(tcp::resolver::results_type::create( - ep, address, port_str)); - } - } -@@ -283,7 +283,7 @@ namespace hpx { namespace util - if (util::get_endpoint(address, port, ep)) - { - return endpoint_iterator_type( -- tcp::resolver::iterator::create(ep, address, port_str)); -+ tcp::resolver::results_type::create(ep, address, port_str)); - } - } - catch (boost::system::system_error const&) { -diff --git a/src/util/serialize_exception.cpp b/src/util/serialize_exception.cpp -index 935e575..22bcf37 100644 ---- a/src/util/serialize_exception.cpp -+++ b/src/util/serialize_exception.cpp -@@ -341,11 +341,7 @@ namespace hpx { namespace serialization - case hpx::util::boost_system_error: - e = hpx::detail::construct_exception( - boost::system::system_error(err_value, --#ifndef BOOST_SYSTEM_NO_DEPRECATED -- boost::system::get_system_category() --#else - boost::system::system_category() --#endif - , err_message - ) - , throw_function_, throw_file_, throw_line_, throw_back_trace_, diff --git a/ports/hpx/portfile.cmake b/ports/hpx/portfile.cmake index e03d566e8..c200a6278 100644 --- a/ports/hpx/portfile.cmake +++ b/ports/hpx/portfile.cmake @@ -1,119 +1,94 @@ -include(vcpkg_common_functions) - -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - message(STATUS "Warning: Static building of HPX not supported yet. Building dynamic.") - set(VCPKG_LIBRARY_LINKAGE dynamic) -endif() - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO STEllAR-GROUP/hpx - REF 1.0.0 - SHA512 1bb985ad8ab031a7ac034d4597a8bd26eae83fba5aed207c444211954079e10e2d5d83965a1f4ce52d1b29ecc72586c561b984c2c628673a262c07214fd1abb5 - HEAD_REF master -) - -if(NOT VCPKG_USE_HEAD_VERSION) - # apply hotfix to enable building with vcpkg - vcpkg_download_distfile(DIFF1 - URLS "http://stellar-group.org/files/hpx-Build-system-changes-to-make-HPX-compile-when-built-with-vcpkg.diff" - FILENAME "hpx-Build-system-changes-to-make-HPX-compile-when-built-with-vcpkg.diff" - SHA512 86df311a120686139955e1c0fdca55379594be3fa8d46d69ee59d83da351ce3bed487ab946c80f7127aab9699e470e24e545b112f92be9f971f41d95c429d01d - ) - - # apply hotfix to fix issues with building 32bit version - vcpkg_download_distfile(DIFF2 - URLS "http://stellar-group.org/files/hpx-Fixing-32bit-MSVC-compilation.diff" - FILENAME "hpx-Fixing-32bit-MSVC-compilation.diff" - SHA512 31c904d317b4c24eddd819e4856f8326ff3850a5a196c7648c46a11dbb85f35e972e077957b3c4aec67c8b043816fe1cebc92cfe28ed815f682537dfc3421b8b - ) - - # apply hotfix to fix issues when building with UNICODE enabled - vcpkg_download_distfile(DIFF3 - URLS "http://stellar-group.org/files/hpx-Making-sure-UNICODE-on-Windows-does-not-break-by-default.diff" - FILENAME "hpx-Making-sure-UNICODE-on-Windows-does-not-break-by-default.diff" - SHA512 8fcdb36307702d64b9d2b26920374a6c5a29a50d125305dc95926c4cbc91215cb0c72ede83b06d0fc007fe7b2283845e08351bd45f11f3677f0d3db4ac8f9424 - ) - - vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${DIFF1} - ${DIFF2} - ${DIFF3} - ${CMAKE_CURRENT_LIST_DIR}/boost-1-66.patch - ) -endif() - -SET(BOOST_PATH "${CURRENT_INSTALLED_DIR}/share/boost") -SET(HWLOC_PATH "${CURRENT_INSTALLED_DIR}/share/hwloc") - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS - -DBOOST_ROOT=${BOOST_PATH} - -DHWLOC_ROOT=${HWLOC_ROOT} - -DHPX_WITH_VCPKG=ON - -DHPX_WITH_HWLOC=ON - -DHPX_WITH_TESTS=OFF - -DHPX_WITH_EXAMPLES=OFF - -DHPX_WITH_TOOLS=OFF - -DHPX_WITH_RUNTIME=OFF -) - -vcpkg_install_cmake() - -# post build cleanup -if(NOT VCPKG_USE_HEAD_VERSION) - file(RENAME ${CURRENT_PACKAGES_DIR}/share/hpx-1.0.0 ${CURRENT_PACKAGES_DIR}/share/hpx) -else() - file(RENAME ${CURRENT_PACKAGES_DIR}/share/hpx-1.1.0 ${CURRENT_PACKAGES_DIR}/share/hpx) -endif() - -file(INSTALL - ${SOURCE_PATH}/LICENSE_1_0.txt - DESTINATION ${CURRENT_PACKAGES_DIR}/share/hpx RENAME copyright) - -file(GLOB __hpx_cmakes ${CURRENT_PACKAGES_DIR}/lib/cmake/HPX/*.*) -foreach(__hpx_cmake ${__hpx_cmakes}) - file(COPY ${__hpx_cmake} DESTINATION ${CURRENT_PACKAGES_DIR}/share/hpx/cmake) - file(REMOVE ${__hpx_cmake}) -endforeach() - -file(GLOB __hpx_dlls ${CURRENT_PACKAGES_DIR}/lib/*.dll) -foreach(__hpx_dll ${__hpx_dlls}) - file(COPY ${__hpx_dll} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) - file(REMOVE ${__hpx_dll}) -endforeach() - -file(GLOB __hpx_dlls ${CURRENT_PACKAGES_DIR}/lib/hpx/*.dll) -foreach(__hpx_dll ${__hpx_dlls}) - file(COPY ${__hpx_dll} DESTINATION ${CURRENT_PACKAGES_DIR}/bin/hpx) - file(REMOVE ${__hpx_dll}) -endforeach() - -file(GLOB __hpx_dlls ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) -foreach(__hpx_dll ${__hpx_dlls}) - file(COPY ${__hpx_dll} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - file(REMOVE ${__hpx_dll}) -endforeach() - -file(GLOB __hpx_dlls ${CURRENT_PACKAGES_DIR}/debug/lib/hpx/*.dll) -foreach(__hpx_dll ${__hpx_dlls}) - file(COPY ${__hpx_dll} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin/hpx) - file(REMOVE ${__hpx_dll}) -endforeach() - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/bazel) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig) - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/bazel) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig) - -vcpkg_copy_pdbs() - +include(vcpkg_common_functions) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + message(STATUS "Warning: Static building of HPX not supported yet. Building dynamic.") + set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO STEllAR-GROUP/hpx + REF 1.1.0 + SHA512 435250143ddbd2608995fe3dc5c229a096312d7ac930925ae56d0abd2d5689886126f6e81bc7e37b84ca9bc99f951ef1f39580168a359c48788ac8d008bc7078 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + "-DBOOST_ROOT=${CURRENT_INSTALLED_DIR}/share/boost" + "-DHWLOC_ROOT=${CURRENT_INSTALLED_DIR}/share/hwloc" + -DHPX_WITH_VCPKG=ON + -DHPX_WITH_HWLOC=ON + -DHPX_WITH_TESTS=OFF + -DHPX_WITH_EXAMPLES=OFF + -DHPX_WITH_TOOLS=OFF + -DHPX_WITH_RUNTIME=OFF +) + +vcpkg_install_cmake() + +# post build cleanup +file(GLOB SHARE_DIR ${CURRENT_PACKAGES_DIR}/share/hpx-*) +file(RENAME ${SHARE_DIR} ${CURRENT_PACKAGES_DIR}/share/hpx) + +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/HPX) + +file(GLOB_RECURSE CMAKE_FILES "${CURRENT_PACKAGES_DIR}/share/hpx/*.cmake") +foreach(CMAKE_FILE IN LISTS CMAKE_FILES) + file(READ ${CMAKE_FILE} _contents) + string(REGEX REPLACE + "lib/([A-Za-z0-9_.-]+\\.dll)" + "bin/\\1" + _contents "${_contents}") + string(REGEX REPLACE + "lib/hpx/([A-Za-z0-9_.-]+\\.dll)" + "bin/\\1" + _contents "${_contents}") + file(WRITE ${CMAKE_FILE} "${_contents}") +endforeach() + +file(READ "${CURRENT_PACKAGES_DIR}/share/hpx/HPXMacros.cmake" _contents) +string(REPLACE "set(CMAKE_MODULE_PATH \${CMAKE_MODULE_PATH} \"\${CMAKE_CURRENT_LIST_DIR}/../../lib/cmake/HPX\")" "list(APPEND CMAKE_MODULE_PATH \"\${CMAKE_CURRENT_LIST_DIR}\")" _contents "${_contents}") +file(WRITE "${CURRENT_PACKAGES_DIR}/share/hpx/HPXMacros.cmake" "${_contents}") + +file(INSTALL + ${SOURCE_PATH}/LICENSE_1_0.txt + DESTINATION ${CURRENT_PACKAGES_DIR}/share/hpx RENAME copyright) + +file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/lib/*.dll) +if(DLLS) + file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE ${DLLS}) +endif() + +file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/lib/hpx/*.dll) +if(DLLS) + file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE ${DLLS}) +endif() + +file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) +if(DLLS) + file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + file(REMOVE ${DLLS}) +endif() + +file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/hpx/*.dll) +if(DLLS) + file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + file(REMOVE ${DLLS}) +endif() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/bazel) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/bazel) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig) + +vcpkg_copy_pdbs() From 368c85f9ef80b0af1a4a81663683bc4f4fbf0e7e Mon Sep 17 00:00:00 2001 From: jasjuang Date: Sat, 24 Mar 2018 23:53:08 -0700 Subject: [PATCH 14/51] [alembic] update to 1.7.7 --- ports/alembic/CONTROL | 2 +- ports/alembic/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/alembic/CONTROL b/ports/alembic/CONTROL index a1c8f7b4b..4e24aab9b 100644 --- a/ports/alembic/CONTROL +++ b/ports/alembic/CONTROL @@ -1,4 +1,4 @@ Source: alembic -Version: 1.7.6 +Version: 1.7.7 Build-Depends: ilmbase, hdf5 Description: Alembic is an open framework for storing and sharing scene data that includes a C++ library, a file format, and client plugins and applications. http://alembic.io/ diff --git a/ports/alembic/portfile.cmake b/ports/alembic/portfile.cmake index 8bc4d98ec..a44771ab2 100644 --- a/ports/alembic/portfile.cmake +++ b/ports/alembic/portfile.cmake @@ -8,8 +8,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alembic/alembic - REF 1.7.6 - SHA512 d77aab41cec66b0565b20ec54604754ed6ef83c97d6d27e161b1cdc28af96d624db438cf70d449166c07b8f9f281f14aeb29f9de91ccc06fb6d2934e4c46ef3a + REF 1.7.7 + SHA512 0ebcf6b9304e84bc60f1c146d0b5e5c5b1de43974ec0725293c444b48b22640945f5883eb9afd46c1ac9f0c260d6f22ff29b4866d6525c416339877be984b149 HEAD_REF master ) From 9c6698ab3446d7aed55103f785f0c00919a949fe Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Sun, 25 Mar 2018 10:29:20 -0700 Subject: [PATCH 15/51] [lcm] Disable unexpected components. Only install one flavor. Don't delete DLL. --- ports/lcm/CONTROL | 2 +- ports/lcm/only-install-one-flavor.patch | 19 ++++++++++++++++ ports/lcm/portfile.cmake | 30 +++++++++++++++++++++---- 3 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 ports/lcm/only-install-one-flavor.patch diff --git a/ports/lcm/CONTROL b/ports/lcm/CONTROL index e6b9803fe..0cca68404 100644 --- a/ports/lcm/CONTROL +++ b/ports/lcm/CONTROL @@ -1,5 +1,5 @@ Source: lcm -Version: 1.3.95 +Version: 1.3.95-1 Build-Depends: glib Description: Lightweight Communications and Marshalling (LCM) LCM is a set of libraries and tools for message passing and data marshalling, targeted at real-time systems where high-bandwidth and low latency are critical. It provides a publish/subscribe message passing model and automatic marshalling/unmarshalling code generation with bindings for applications in a variety of programming languages. diff --git a/ports/lcm/only-install-one-flavor.patch b/ports/lcm/only-install-one-flavor.patch new file mode 100644 index 000000000..d22b83c23 --- /dev/null +++ b/ports/lcm/only-install-one-flavor.patch @@ -0,0 +1,19 @@ +diff --git a/lcm/CMakeLists.txt b/lcm/CMakeLists.txt +index a706a85..639ec12 100644 +--- a/lcm/CMakeLists.txt ++++ b/lcm/CMakeLists.txt +@@ -76,8 +76,12 @@ endif() + target_include_directories(lcm-coretypes INTERFACE + $ + ) +- +-install(TARGETS lcm-coretypes lcm-static lcm ++if(BUILD_SHARED_LIBS) ++ set(INSTALL_TARGETS lcm) ++else() ++ set(INSTALL_TARGETS lcm-static) ++endif() ++install(TARGETS lcm-coretypes ${INSTALL_TARGETS} + EXPORT lcmTargets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} diff --git a/ports/lcm/portfile.cmake b/ports/lcm/portfile.cmake index 98f34e2ca..b50139f62 100644 --- a/ports/lcm/portfile.cmake +++ b/ports/lcm/portfile.cmake @@ -8,15 +8,24 @@ vcpkg_from_github( HEAD_REF master ) +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/only-install-one-flavor.patch +) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS + -DLCM_ENABLE_JAVA=OFF + -DLCM_ENABLE_LUA=OFF + -DLCM_ENABLE_PYTHON=OFF -DLCM_ENABLE_TESTS=OFF + -DLCM_INSTALL_M4MACROS=OFF + -DLCM_INSTALL_PKGCONFIG=OFF ) vcpkg_install_cmake() -vcpkg_copy_pdbs() vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) @@ -25,9 +34,22 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/aclocal) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/java) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/man) -file(COPY ${CURRENT_PACKAGES_DIR}/bin/lcm-gen.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/lcm) +file(GLOB EXES ${CURRENT_PACKAGES_DIR}/bin/*.exe) +if(EXES) + file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/lcm) + file(REMOVE ${EXES}) +endif() +file(GLOB DEBUG_EXES ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe) +if(DEBUG_EXES) + file(REMOVE ${DEBUG_EXES}) +endif() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/lcm) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/lcm RENAME copyright) + +vcpkg_copy_pdbs() From dc193dd9e50d19f5e3272298d7990f288f702486 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Sun, 25 Mar 2018 10:49:35 -0700 Subject: [PATCH 16/51] [libuuid] Initial commit of 1.0.3 --- ports/libuuid/CMakeLists.txt | 35 +++++++++++++++++++++++++++++++++++ ports/libuuid/CONTROL | 3 +++ ports/libuuid/config.linux.h | 13 +++++++++++++ ports/libuuid/portfile.cmake | 29 +++++++++++++++++++++++++++++ 4 files changed, 80 insertions(+) create mode 100644 ports/libuuid/CMakeLists.txt create mode 100644 ports/libuuid/CONTROL create mode 100644 ports/libuuid/config.linux.h create mode 100644 ports/libuuid/portfile.cmake diff --git a/ports/libuuid/CMakeLists.txt b/ports/libuuid/CMakeLists.txt new file mode 100644 index 000000000..a4335f1a8 --- /dev/null +++ b/ports/libuuid/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 3.0) +project(libuuid C) + +configure_file(config.linux.h config.h COPYONLY) + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +add_library(uuid STATIC + clear.c + compare.c + copy.c + gen_uuid.c + isnull.c + pack.c + parse.c + randutils.c + unpack.c + unparse.c + uuid_time.c +) +target_compile_options(uuid PRIVATE -include "${CMAKE_CURRENT_BINARY_DIR}/config.h") + +add_executable(test_uuid test_uuid.c) +target_link_libraries(test_uuid uuid) + +if(CMAKE_BUILD_TYPE STREQUAL "Release") + install(FILES uuid.h DESTINATION include) +endif() + +install( + TARGETS uuid + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) diff --git a/ports/libuuid/CONTROL b/ports/libuuid/CONTROL new file mode 100644 index 000000000..bfec975dd --- /dev/null +++ b/ports/libuuid/CONTROL @@ -0,0 +1,3 @@ +Source: libuuid +Version: 1.0.3 +Description: Universally unique id library diff --git a/ports/libuuid/config.linux.h b/ports/libuuid/config.linux.h new file mode 100644 index 000000000..38b53cac1 --- /dev/null +++ b/ports/libuuid/config.linux.h @@ -0,0 +1,13 @@ +#define HAVE_DECL__SC_HOST_NAME_MAX 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_NETINET_IN_H 1 +#define HAVE_SRANDOM 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_SYS_FILE_H 1 +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_SOCKET_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_USLEEP 1 +#define PACKAGE_STRING "libuuid 1.0.3" diff --git a/ports/libuuid/portfile.cmake b/ports/libuuid/portfile.cmake new file mode 100644 index 000000000..7989e830d --- /dev/null +++ b/ports/libuuid/portfile.cmake @@ -0,0 +1,29 @@ +include(vcpkg_common_functions) + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libuuid-1.0.3) +vcpkg_download_distfile(ARCHIVE + URLS "http://sourceforge.net/projects/libuuid/files/libuuid-1.0.3.tar.gz" + FILENAME libuuid-1.0.3.tar.gz + SHA512 77488caccc66503f6f2ded7bdfc4d3bc2c20b24a8dc95b2051633c695e99ec27876ffbafe38269b939826e1fdb06eea328f07b796c9e0aaca12331a787175507 +) + +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY + ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt + ${CMAKE_CURRENT_LIST_DIR}/config.linux.h + DESTINATION ${SOURCE_PATH} +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(INSTALL + ${SOURCE_PATH}/COPYING + DESTINATION ${CURRENT_PACKAGES_DIR}/share/libuuid RENAME copyright) + +vcpkg_copy_pdbs() From afe6d4f3bba8eec5d3acc644cba61fa192bd37d2 Mon Sep 17 00:00:00 2001 From: jasjuang Date: Sun, 25 Mar 2018 18:54:19 -0700 Subject: [PATCH 17/51] [ceres] update to 1.14 --- ports/ceres/CONTROL | 2 +- ports/ceres/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/ceres/CONTROL b/ports/ceres/CONTROL index f2b20f8d3..3f60a3312 100644 --- a/ports/ceres/CONTROL +++ b/ports/ceres/CONTROL @@ -1,5 +1,5 @@ Source: ceres -Version: 1.13.0-4 +Version: 1.14.0 # eigen is always required by CMake, even if it isn't used. Build-Depends: glog, eigen3 Description: non-linear optimization package diff --git a/ports/ceres/portfile.cmake b/ports/ceres/portfile.cmake index 8a2b88a35..b6dfacf9f 100644 --- a/ports/ceres/portfile.cmake +++ b/ports/ceres/portfile.cmake @@ -11,8 +11,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ceres-solver/ceres-solver - REF 1.13.0 - SHA512 b548a303d1d4eeb75545551c381624879e363a2eba13cdd998fb3bea9bd51f6b9215b579d59d6133117b70d8bf35e18b983400c3d6200403210c18fcb1886ebb + REF 1.14.0 + SHA512 6dddddf5bd5834332a69add468578ad527e4d94fe85c9751ddf5fe9ad11a34918bdd9c994c49dd6ffc398333d0ac9752ac89aaef1293e2fe0a55524e303d415d HEAD_REF master ) From 568d9e727ec8a45c5c445130d1f9a55c651a1431 Mon Sep 17 00:00:00 2001 From: jasjuang Date: Sun, 25 Mar 2018 19:15:43 -0700 Subject: [PATCH 18/51] [dlib] update to 19.10 --- ports/dlib/CONTROL | 2 +- ports/dlib/portfile.cmake | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ports/dlib/CONTROL b/ports/dlib/CONTROL index d711849f0..6863fa130 100644 --- a/ports/dlib/CONTROL +++ b/ports/dlib/CONTROL @@ -1,5 +1,5 @@ Source: dlib -Version: 19.9-1 +Version: 19.10 Build-Depends: libjpeg-turbo, libpng, sqlite3, fftw3, openblas, clapack Description: Modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ diff --git a/ports/dlib/portfile.cmake b/ports/dlib/portfile.cmake index cf3ae4079..ba3cb3ec4 100644 --- a/ports/dlib/portfile.cmake +++ b/ports/dlib/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO davisking/dlib - REF v19.9 - SHA512 1e2123c22e1b13cc84108fa627bfa92eadc9dee63f93a9f45676bbf2b752c8728117d915ac327f5223b0cdbce87dd3bef2f4d8d5ed3f8f5a314ffa9e8962a246 + REF v19.10 + SHA512 88c5b41c12219e6166c6621b654b3869ca4a2af777a8fa55429b833b90b048e3e74ea7ad752d7440809b8171bbd38090cb24a29770391fc3a9d53f9a5fba3341 HEAD_REF master ) @@ -35,6 +35,7 @@ vcpkg_configure_cmake( -DDLIB_USE_CUDA=${WITH_CUDA} -DDLIB_GIF_SUPPORT=OFF -DDLIB_USE_MKL_FFT=OFF + -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE OPTIONS_DEBUG -DDLIB_ENABLE_ASSERTS=ON #-DDLIB_ENABLE_STACK_TRACE=ON From 4a675d467f68b7b6db950f39e21d509c3e3cd20c Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Mon, 26 Mar 2018 08:13:29 -0700 Subject: [PATCH 19/51] [qt5-base] Fix regression. Fixes #3133. --- ports/qt5-base/portfile.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/qt5-base/portfile.cmake b/ports/qt5-base/portfile.cmake index 39498b4a3..c398b4370 100644 --- a/ports/qt5-base/portfile.cmake +++ b/ports/qt5-base/portfile.cmake @@ -42,7 +42,7 @@ file(REMOVE_RECURSE ${SOURCE_PATH}/include/QtZlib) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES -# "${CMAKE_CURRENT_LIST_DIR}/fix-system-pcre2.patch" + "${CMAKE_CURRENT_LIST_DIR}/fix-system-pcre2.patch" "${CMAKE_CURRENT_LIST_DIR}/fix-system-freetype.patch" ) From 3e33a7751e4d09fd5d5b9aead9b4ad8d7d9bd3e7 Mon Sep 17 00:00:00 2001 From: Sergey Podobry Date: Mon, 26 Mar 2018 18:14:06 +0300 Subject: [PATCH 20/51] [plog] Update to 1.1.4 (#3129) --- ports/plog/CONTROL | 6 +++--- ports/plog/portfile.cmake | 34 +++++++++++++++++----------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/ports/plog/CONTROL b/ports/plog/CONTROL index 091778688..d1abd52a6 100644 --- a/ports/plog/CONTROL +++ b/ports/plog/CONTROL @@ -1,3 +1,3 @@ -Source: plog -Version: 1.1.3 -Description: Portable, simple and extensible C++ logging library. +Source: plog +Version: 1.1.4 +Description: Portable, simple and extensible C++ logging library. diff --git a/ports/plog/portfile.cmake b/ports/plog/portfile.cmake index 5cc0dfbd4..847f2bd37 100644 --- a/ports/plog/portfile.cmake +++ b/ports/plog/portfile.cmake @@ -1,17 +1,17 @@ -# Header-only library -include(vcpkg_common_functions) - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO SergiusTheBest/plog - REF 1.1.3 - SHA512 9a5a455e1942158d2802313682ed007750789a9048773302d92f2591dfac0185914dba8b67fa285fed25e54dff44e2c97c92b9e7decd39fa2bca460c03549377 - HEAD_REF master -) - -# Put the licence file where vcpkg expects it -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/plog) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/plog/LICENSE ${CURRENT_PACKAGES_DIR}/share/plog/copyright) - -# Copy header files -file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.h") +# Header-only library +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO SergiusTheBest/plog + REF 1.1.4 + SHA512 7af75af8343460d62e04cc0c27d4cf86373b136df73d2312d19a2e57fa309e916cef8625b8eed1b7270b93aa5d1ff27aee6edb74beb138e3a21c06a3c3debb41 + HEAD_REF master +) + +# Put the licence file where vcpkg expects it +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/plog) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/plog/LICENSE ${CURRENT_PACKAGES_DIR}/share/plog/copyright) + +# Copy header files +file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.h") From 6dc98bbcee6a00269dd93d61950d8ab4c55c3d0b Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Mon, 26 Mar 2018 08:37:41 -0700 Subject: [PATCH 21/51] [aws-sdk-cpp] Remove polly-sample feature. Fixes #3123. --- ports/aws-sdk-cpp/CONTROL | 3 --- ports/aws-sdk-cpp/compute_build_only.cmake | 3 --- ports/aws-sdk-cpp/generateFeatures.ps1 | 5 +++-- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/ports/aws-sdk-cpp/CONTROL b/ports/aws-sdk-cpp/CONTROL index 09b1c1a7f..44d263676 100644 --- a/ports/aws-sdk-cpp/CONTROL +++ b/ports/aws-sdk-cpp/CONTROL @@ -304,9 +304,6 @@ Description: C++ SDK for the AWS pinpoint service Feature: polly Description: C++ SDK for the AWS polly service -Feature: polly-sample -Description: C++ SDK for the AWS polly-sample service - Feature: pricing Description: C++ SDK for the AWS pricing service diff --git a/ports/aws-sdk-cpp/compute_build_only.cmake b/ports/aws-sdk-cpp/compute_build_only.cmake index de24a203a..a50ed2128 100644 --- a/ports/aws-sdk-cpp/compute_build_only.cmake +++ b/ports/aws-sdk-cpp/compute_build_only.cmake @@ -299,9 +299,6 @@ endif() if("polly" IN_LIST FEATURES) list(APPEND BUILD_ONLY polly) endif() -if("polly-sample" IN_LIST FEATURES) - list(APPEND BUILD_ONLY polly-sample) -endif() if("pricing" IN_LIST FEATURES) list(APPEND BUILD_ONLY pricing) endif() diff --git a/ports/aws-sdk-cpp/generateFeatures.ps1 b/ports/aws-sdk-cpp/generateFeatures.ps1 index cd61a794f..8c8b1a342 100644 --- a/ports/aws-sdk-cpp/generateFeatures.ps1 +++ b/ports/aws-sdk-cpp/generateFeatures.ps1 @@ -30,6 +30,7 @@ function GetDescription($dir, $modulename) $subfolders | % { $modulename = $_.name -replace "^aws-cpp-sdk-","" if ($modulename -match "-tests`$") { return } + if ($modulename -match "-sample`$") { return } if ($modulename -eq "core") { return } $controltext += @("") @@ -44,7 +45,7 @@ $subfolders | % { } Write-Verbose ($controltext -join "`n") -$controltext | out-file -enc ascii $ControlFile +[IO.File]::WriteAllText($ControlFile, ($controltext -join "`n")+"`n") Write-Verbose ($cmakefragmenttext -join "`n") -$cmakefragmenttext | out-file -enc ascii $CMakeFragmentFile +[IO.File]::WriteAllText($CMakeFragmentFile, ($cmakefragmenttext -join "`n") +"`n") From 64ab9dc274c352f9999f2cc4e8f7f6830cc56c42 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Mon, 26 Mar 2018 11:58:37 -0700 Subject: [PATCH 22/51] [ceres] Use gflags config file + ninja. Fixes #3116. --- ports/ceres/CONTROL | 2 +- ports/ceres/portfile.cmake | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ports/ceres/CONTROL b/ports/ceres/CONTROL index 3f60a3312..208082de7 100644 --- a/ports/ceres/CONTROL +++ b/ports/ceres/CONTROL @@ -1,5 +1,5 @@ Source: ceres -Version: 1.14.0 +Version: 1.14.0-1 # eigen is always required by CMake, even if it isn't used. Build-Depends: glog, eigen3 Description: non-linear optimization package diff --git a/ports/ceres/portfile.cmake b/ports/ceres/portfile.cmake index b6dfacf9f..7267be402 100644 --- a/ports/ceres/portfile.cmake +++ b/ports/ceres/portfile.cmake @@ -46,6 +46,7 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DEXPORT_BUILD_DIR=ON -DBUILD_EXAMPLES=OFF @@ -55,7 +56,7 @@ vcpkg_configure_cmake( -DEIGENSPARSE=${EIGENSPARSE} -DLAPACK=${LAPACK} -DSUITESPARSE=${SUITESPARSE} - -DGFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION=OFF # TheiaSfm doesn't work well with this + -DGFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION=ON -DGLOG_PREFER_EXPORTED_GLOG_CMAKE_CONFIGURATION=OFF # TheiaSfm doesn't work well with this -DMSVC_USE_STATIC_CRT=${MSVC_USE_STATIC_CRT_VALUE} ) From 4596c6436168c9ff80ef971d75853752c7462479 Mon Sep 17 00:00:00 2001 From: Alisayyy-Yang Date: Mon, 26 Mar 2018 23:43:48 -0700 Subject: [PATCH 23/51] force static build when dynamic for the yoga --- ports/yoga/portfile.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ports/yoga/portfile.cmake b/ports/yoga/portfile.cmake index e6dc1c709..d61017d63 100644 --- a/ports/yoga/portfile.cmake +++ b/ports/yoga/portfile.cmake @@ -12,7 +12,8 @@ include(vcpkg_common_functions) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - message(FATAL_ERROR "Error: Dynamic building not supported yet.") + message(WARNING "Dynamic not supported building static") + set(VCPKG_LIBRARY_LINKAGE static) elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) message(FATAL_ERROR "Error: UWP builds not supported yet.") endif() From 930b1984afdc209746715dc4becaad7f27e68089 Mon Sep 17 00:00:00 2001 From: Alisa Yang Date: Tue, 27 Mar 2018 00:10:48 -0700 Subject: [PATCH 24/51] force static build when dynamic --- ports/recast/portfile.cmake | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ports/recast/portfile.cmake b/ports/recast/portfile.cmake index 9c26131da..8543fe5c3 100644 --- a/ports/recast/portfile.cmake +++ b/ports/recast/portfile.cmake @@ -1,5 +1,10 @@ include(vcpkg_common_functions) +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(WARNING "Dynamic not supported .") + set(VCPKG_LIBRARY_LINKAGE static) +endif() + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO recastnavigation/recastnavigation From 6e6f90c2731aa3f53ba0919b876e2c60a5931a38 Mon Sep 17 00:00:00 2001 From: Alisa Yang Date: Tue, 27 Mar 2018 00:27:43 -0700 Subject: [PATCH 25/51] force static build when dynamic --- ports/recast/portfile.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/recast/portfile.cmake b/ports/recast/portfile.cmake index 8543fe5c3..e0670dbae 100644 --- a/ports/recast/portfile.cmake +++ b/ports/recast/portfile.cmake @@ -1,7 +1,7 @@ include(vcpkg_common_functions) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - message(WARNING "Dynamic not supported .") + message(WARNING "Dynamic not supported building static") set(VCPKG_LIBRARY_LINKAGE static) endif() From 72758773321476dcbb7b9d18f11bf57134bb4545 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Tue, 27 Mar 2018 03:04:05 -0700 Subject: [PATCH 26/51] [ps1] Fixes/tweaks --- scripts/VcpkgPowershellUtils.ps1 | 13 ++++++------- scripts/fetchTool.ps1 | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/scripts/VcpkgPowershellUtils.ps1 b/scripts/VcpkgPowershellUtils.ps1 index d9c9e3760..bc84afa7f 100644 --- a/scripts/VcpkgPowershellUtils.ps1 +++ b/scripts/VcpkgPowershellUtils.ps1 @@ -110,9 +110,9 @@ function vcpkgGetSHA256([Parameter(Mandatory=$true)][string]$filePath) function vcpkgCheckEqualFileHash( [Parameter(Mandatory=$true)][string]$filePath, [Parameter(Mandatory=$true)][string]$expectedHash, - [Parameter(Mandatory=$true)][string]$actualHash ) + [Parameter(Mandatory=$true)][string]$actualHash) { - if ($expectedDownloadedFileHash -ne $downloadedFileHash) + if ($expectedHash -ne $actualHash) { Write-Host ("`nFile does not have expected hash:`n" + " File path: [ $filePath ]`n" + @@ -150,7 +150,6 @@ function vcpkgDownloadFile( [Parameter(Mandatory=$true)][string]$url, $downloadPartPath = "$downloadPath.part" vcpkgRemoveItem $downloadPartPath - $wc = New-Object System.Net.WebClient if (!$wc.Proxy.IsBypassed($url)) { @@ -161,7 +160,7 @@ function vcpkgDownloadFile( [Parameter(Mandatory=$true)][string]$url, Move-Item -Path $downloadPartPath -Destination $downloadPath } -function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$file, +function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$archivePath, [Parameter(Mandatory=$true)][string]$destinationDir, [Parameter(Mandatory=$true)][string]$outFilename) { @@ -176,18 +175,18 @@ function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$file, if (vcpkgHasCommand -commandName 'Microsoft.PowerShell.Archive\Expand-Archive') { Write-Verbose("Extracting with Microsoft.PowerShell.Archive\Expand-Archive") - Microsoft.PowerShell.Archive\Expand-Archive -path $file -destinationpath $destinationPartial + Microsoft.PowerShell.Archive\Expand-Archive -path $archivePath -destinationpath $destinationPartial } elseif (vcpkgHasCommand -commandName 'Pscx\Expand-Archive') { Write-Verbose("Extracting with Pscx\Expand-Archive") - Pscx\Expand-Archive -path $file -OutputPath $destinationPartial + Pscx\Expand-Archive -path $archivePath -OutputPath $destinationPartial } else { Write-Verbose("Extracting via shell") $shell = new-object -com shell.application - $zip = $shell.NameSpace($(Get-Item $file).fullname) + $zip = $shell.NameSpace($(Get-Item $archivePath).fullname) foreach($item in $zip.items()) { # Piping to Out-Null is used to block until finished diff --git a/scripts/fetchTool.ps1 b/scripts/fetchTool.ps1 index ff9b5d9bf..a52986553 100644 --- a/scripts/fetchTool.ps1 +++ b/scripts/fetchTool.ps1 @@ -47,7 +47,7 @@ function fetchToolInternal([Parameter(Mandatory=$true)][string]$tool) { Write-Host "Downloading $tool..." vcpkgDownloadFile $url $downloadPath - Write-Host "Downloading $tool has completed successfully." + Write-Host "Downloading $tool... done." } $expectedDownloadedFileHash = @($toolData.sha256)[0] From 72194ae8a0e435aee63b8e40f585646247672e3b Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Tue, 27 Mar 2018 04:08:57 -0700 Subject: [PATCH 27/51] [ps1] More fixes/tweaks --- scripts/VcpkgPowershellUtils.ps1 | 7 +++++-- scripts/fetchTool.ps1 | 7 ++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/scripts/VcpkgPowershellUtils.ps1 b/scripts/VcpkgPowershellUtils.ps1 index bc84afa7f..92e0f21d0 100644 --- a/scripts/VcpkgPowershellUtils.ps1 +++ b/scripts/VcpkgPowershellUtils.ps1 @@ -194,11 +194,14 @@ function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$archivePath, } } - $itemCount = @(Get-ChildItem "$destinationPartial").Count + $items = @(Get-ChildItem "$destinationPartial") + $itemCount = $items.Count if ($itemCount -eq 1) { - Move-Item -Path "$destinationPartial\*" -Destination $output + $item = $items | Select-Object -first 1 + Write-Host "$item" + Move-Item -Path "$destinationPartial\$item" -Destination $output vcpkgRemoveItem $destinationPartial } else diff --git a/scripts/fetchTool.ps1 b/scripts/fetchTool.ps1 index a52986553..af6d4d1d9 100644 --- a/scripts/fetchTool.ps1 +++ b/scripts/fetchTool.ps1 @@ -58,13 +58,14 @@ function fetchToolInternal([Parameter(Mandatory=$true)][string]$tool) { $outFilename = (Get-ChildItem $downloadPath).BaseName Write-Host "Extracting $tool..." - vcpkgExtractFile -File $downloadPath -DestinationDir $downloadsDir -outFilename $outFilename - Write-Host "Extracting $tool has completed successfully." + vcpkgExtractFile -ArchivePath $downloadPath -DestinationDir $downloadsDir -outFilename $outFilename + Write-Host "Extracting $tool... done." } if (-not (Test-Path $exePath)) { - throw ("Could not detect or download " + $tool) + Write-Error "Could not detect or download $tool" + throw } return $exePath From cfd0d9c0e2e90227532f36343907f95908a1864d Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Mon, 26 Mar 2018 17:21:46 -0700 Subject: [PATCH 28/51] [vcpkg-find-acquire-program] Update version of YASM --- ports/ffmpeg/CONTROL | 2 +- ports/libvpx/CONTROL | 2 +- ports/mpg123/CONTROL | 2 +- scripts/cmake/vcpkg_find_acquire_program.cmake | 17 ++++++++++++----- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/ports/ffmpeg/CONTROL b/ports/ffmpeg/CONTROL index 2f635cc10..7688f67f9 100644 --- a/ports/ffmpeg/CONTROL +++ b/ports/ffmpeg/CONTROL @@ -1,5 +1,5 @@ Source: ffmpeg -Version: 3.3.3-4 +Version: 3.3.3-5 Description: a library to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations. diff --git a/ports/libvpx/CONTROL b/ports/libvpx/CONTROL index b4cfa55f4..6095c6de6 100644 --- a/ports/libvpx/CONTROL +++ b/ports/libvpx/CONTROL @@ -1,3 +1,3 @@ Source: libvpx -Version: 1.6.1-1 +Version: 1.6.1-2 Description: The reference software implementation for the video coding formats VP8 and VP9. diff --git a/ports/mpg123/CONTROL b/ports/mpg123/CONTROL index 7eba5e9b8..488ca7a90 100644 --- a/ports/mpg123/CONTROL +++ b/ports/mpg123/CONTROL @@ -1,3 +1,3 @@ Source: mpg123 -Version: 1.25.8-3 +Version: 1.25.8-4 Description: mpg123 is a real time MPEG 1.0/2.0/2.5 audio player/decoder for layers 1, 2 and 3 (MPEG 1.0 layer 3 also known as MP3). \ No newline at end of file diff --git a/scripts/cmake/vcpkg_find_acquire_program.cmake b/scripts/cmake/vcpkg_find_acquire_program.cmake index 083b86fc2..64d0c7599 100644 --- a/scripts/cmake/vcpkg_find_acquire_program.cmake +++ b/scripts/cmake/vcpkg_find_acquire_program.cmake @@ -40,6 +40,7 @@ function(vcpkg_find_acquire_program VAR) endif() unset(NOEXTRACT) + unset(_vfa_RENAME) unset(SUBDIR) unset(REQUIRED_INTERPRETER) @@ -67,11 +68,13 @@ function(vcpkg_find_acquire_program VAR) set(HASH df7aaba094e17832688c88993997612a2e2c96cc3dc14ca3e8347b44c7762115f5a7fc6d7f20be402553aaa4c9e43ddfcf6228f581cfe89289bae550de151b36) elseif(VAR MATCHES "YASM") set(PROGNAME yasm) - set(PATHS ${DOWNLOADS}/tools/yasm) - set(URL "http://www.tortall.net/projects/yasm/releases/yasm-1.3.0-win32.exe") - set(ARCHIVE "yasm.exe") + set(SUBDIR 1.3.0.6) + set(PATHS ${DOWNLOADS}/tools/yasm/${SUBDIR}) + set(URL "https://www.tortall.net/projects/yasm/snapshots/v1.3.0.6.g1962/yasm-1.3.0.6.g1962.exe") + set(ARCHIVE "yasm-1.3.0.6.g1962.exe") + set(_vfa_RENAME "yasm.exe") set(NOEXTRACT ON) - set(HASH 850b26be5bbbdaeaf45ac39dd27f69f1a85e600c35afbd16b9f621396b3c7a19863ea3ff316b025b578fce0a8280eef2203306a2b3e46ee1389abb65313fb720) + set(HASH c1945669d983b632a10c5ff31e86d6ecbff143c3d8b2c433c0d3d18f84356d2b351f71ac05fd44e5403651b00c31db0d14615d7f9a6ecce5750438d37105c55b) elseif(VAR MATCHES "PYTHON3") set(PROGNAME python) set(SUBDIR "python3") @@ -205,7 +208,11 @@ function(vcpkg_find_acquire_program VAR) file(MAKE_DIRECTORY ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}) if(DEFINED NOEXTRACT) - file(COPY ${ARCHIVE_PATH} DESTINATION ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}) + if(DEFINED _vfa_RENAME) + file(INSTALL ${ARCHIVE_PATH} DESTINATION ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR} RENAME ${_vfa_RENAME}) + else() + file(COPY ${ARCHIVE_PATH} DESTINATION ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}) + endif() else() get_filename_component(ARCHIVE_EXTENSION ${ARCHIVE} EXT) string(TOLOWER "${ARCHIVE_EXTENSION}" ARCHIVE_EXTENSION) From 02185b60828ded3f89f2a7f2cf75402d00dde123 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Tue, 27 Mar 2018 08:47:57 -0700 Subject: [PATCH 29/51] [aubio] Fix missing required dependencies --- ports/aubio/CONTROL | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/aubio/CONTROL b/ports/aubio/CONTROL index 945157c7e..6f5daa30a 100644 --- a/ports/aubio/CONTROL +++ b/ports/aubio/CONTROL @@ -1,4 +1,4 @@ Source: aubio -Version: 0.4.6-1 +Version: 0.4.6-2 Description: Aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio. -Build-Depends: ffmpeg, libsndfile, libogg, libflac, libvorbis +Build-Depends: ffmpeg, libsndfile, libogg, libflac, libvorbis, bzip2, liblzma From 26187d1bed865f472caa2dcd2f154a72f7f6d045 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Tue, 27 Mar 2018 09:09:38 -0700 Subject: [PATCH 30/51] [qt5-base] Fix pcre2 reference on non-Windows --- ports/qt5-base/fix-system-pcre2-linux.patch | 17 +++++++++++++++++ ports/qt5-base/portfile.cmake | 1 + 2 files changed, 18 insertions(+) create mode 100644 ports/qt5-base/fix-system-pcre2-linux.patch diff --git a/ports/qt5-base/fix-system-pcre2-linux.patch b/ports/qt5-base/fix-system-pcre2-linux.patch new file mode 100644 index 000000000..c5669a4c9 --- /dev/null +++ b/ports/qt5-base/fix-system-pcre2-linux.patch @@ -0,0 +1,17 @@ +diff --git a/src/corelib/configure.json b/src/corelib/configure.json +index a5a1b66..5a48a05 100644 +--- a/src/corelib/configure.json ++++ b/src/corelib/configure.json +@@ -163,8 +163,10 @@ + "builds": { + "debug": "-lpcre2-16d", + "release": "-lpcre2-16" +- } +- } ++ }, ++ "condition": "config.win32" ++ }, ++ { "libs": "-lpcre2-16", "condition": "!config.win32" } + ] + }, + "pps": { diff --git a/ports/qt5-base/portfile.cmake b/ports/qt5-base/portfile.cmake index c398b4370..e01365fe9 100644 --- a/ports/qt5-base/portfile.cmake +++ b/ports/qt5-base/portfile.cmake @@ -44,6 +44,7 @@ vcpkg_apply_patches( PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-system-pcre2.patch" "${CMAKE_CURRENT_LIST_DIR}/fix-system-freetype.patch" + "${CMAKE_CURRENT_LIST_DIR}/fix-system-pcre2-linux.patch" ) # This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings From 45d31162c25e168c46d9dd0f3f00e49edf625f21 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Tue, 27 Mar 2018 17:48:33 -0700 Subject: [PATCH 31/51] [ps1] Remove extraneous function --- scripts/fetchTool.ps1 | 103 ++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 55 deletions(-) diff --git a/scripts/fetchTool.ps1 b/scripts/fetchTool.ps1 index af6d4d1d9..8cf8002bc 100644 --- a/scripts/fetchTool.ps1 +++ b/scripts/fetchTool.ps1 @@ -13,64 +13,57 @@ $vcpkgRootDir = vcpkgFindFileRecursivelyUp $scriptsDir .vcpkg-root $downloadsDir = "$vcpkgRootDir\downloads" vcpkgCreateDirectoryIfNotExists $downloadsDir -function fetchToolInternal([Parameter(Mandatory=$true)][string]$tool) +$tool = $tool.toLower() + +[xml]$asXml = Get-Content "$scriptsDir\vcpkgTools.xml" +$toolData = $asXml.SelectSingleNode("//tools/tool[@name=`"$tool`"]") # Case-sensitive! + +if ($toolData -eq $null) { - $tool = $tool.toLower() + throw "Unkown tool $tool" +} - [xml]$asXml = Get-Content "$scriptsDir\vcpkgTools.xml" - $toolData = $asXml.SelectSingleNode("//tools/tool[@name=`"$tool`"]") # Case-sensitive! - - if ($toolData -eq $null) - { - throw "Unkown tool $tool" - } - - $exePath = "$downloadsDir\$(@($toolData.exeRelativePath)[0])" - - if (Test-Path $exePath) - { - return $exePath - } - - $isArchive = vcpkgHasProperty -object $toolData -propertyName "archiveRelativePath" - if ($isArchive) - { - $downloadPath = "$downloadsDir\$(@($toolData.archiveRelativePath)[0])" - } - else - { - $downloadPath = "$downloadsDir\$(@($toolData.exeRelativePath)[0])" - } - - [String]$url = @($toolData.url)[0] - if (!(Test-Path $downloadPath)) - { - Write-Host "Downloading $tool..." - vcpkgDownloadFile $url $downloadPath - Write-Host "Downloading $tool... done." - } - - $expectedDownloadedFileHash = @($toolData.sha256)[0] - $downloadedFileHash = vcpkgGetSHA256 $downloadPath - vcpkgCheckEqualFileHash -filePath $downloadPath -expectedHash $expectedDownloadedFileHash -actualHash $downloadedFileHash - - if ($isArchive) - { - $outFilename = (Get-ChildItem $downloadPath).BaseName - Write-Host "Extracting $tool..." - vcpkgExtractFile -ArchivePath $downloadPath -DestinationDir $downloadsDir -outFilename $outFilename - Write-Host "Extracting $tool... done." - } - - if (-not (Test-Path $exePath)) - { - Write-Error "Could not detect or download $tool" - throw - } +$exePath = "$downloadsDir\$($toolData.exeRelativePath)" +if (Test-Path $exePath) +{ return $exePath } -$path = fetchToolInternal $tool -Write-Verbose "Fetching tool: $tool. Done." -return "::$path::" +$isArchive = vcpkgHasProperty -object $toolData -propertyName "archiveRelativePath" +if ($isArchive) +{ + $downloadPath = "$downloadsDir\$($toolData.archiveRelativePath)" +} +else +{ + $downloadPath = "$downloadsDir\$($toolData.exeRelativePath)" +} + +[String]$url = $toolData.url +if (!(Test-Path $downloadPath)) +{ + Write-Host "Downloading $tool..." + vcpkgDownloadFile $url $downloadPath + Write-Host "Downloading $tool... done." +} + +$expectedDownloadedFileHash = $toolData.sha256 +$downloadedFileHash = vcpkgGetSHA256 $downloadPath +vcpkgCheckEqualFileHash -filePath $downloadPath -expectedHash $expectedDownloadedFileHash -actualHash $downloadedFileHash + +if ($isArchive) +{ + $outFilename = (Get-ChildItem $downloadPath).BaseName + Write-Host "Extracting $tool..." + vcpkgExtractFile -ArchivePath $downloadPath -DestinationDir $downloadsDir -outFilename $outFilename + Write-Host "Extracting $tool... done." +} + +if (-not (Test-Path $exePath)) +{ + Write-Error "Could not detect or download $tool" + throw +} + +return "::$exePath::" From c814c9b8ac883aa42930e1f48660145fd4234fe6 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Tue, 27 Mar 2018 13:23:30 -0700 Subject: [PATCH 32/51] [vcpkgTools.xml] Restructre os-specific info --- scripts/vcpkgTools.xml | 20 ++++++++++++++------ toolsrc/src/vcpkg/vcpkgpaths.cpp | 16 ++++++++-------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/scripts/vcpkgTools.xml b/scripts/vcpkgTools.xml index 9c78e92d9..5df2de7ad 100644 --- a/scripts/vcpkgTools.xml +++ b/scripts/vcpkgTools.xml @@ -6,12 +6,20 @@ https://cmake.org/files/v3.10/cmake-3.10.2-win32-x86.zip f5f7e41a21d0e9b655aca58498b08e17ecd27796bf82837e2c84435359169dd6 cmake-3.10.2-win32-x86.zip - cmake-3.10.2-Darwin-x86_64/CMake.app/Contents/bin/cmake - https://cmake.org/files/v3.10/cmake-3.10.2-Darwin-x86_64.tar.gz - cmake-3.10.2-Darwin-x86_64.tar.gz - cmake-3.10.2-Linux-x86_64/bin/cmake - https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.tar.gz - cmake-3.10.2-Linux-x86_64.tar.gz + + + 3.10.2 + cmake-3.10.2-Darwin-x86_64/CMake.app/Contents/bin/cmake + https://cmake.org/files/v3.10/cmake-3.10.2-Darwin-x86_64.tar.gz + e748eb7698f8e2783c2eea9ab81eebf66da0238bbf8e8fa722a67a38f2110718 + cmake-3.10.2-Darwin-x86_64.tar.gz + + + 3.10.2 + cmake-3.10.2-Linux-x86_64/bin/cmake + https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.tar.gz + 7a82b46c35f4e68a0807e8dc04e779dee3f36cd42c6387fd13b5c29fe62a69ea + cmake-3.10.2-Linux-x86_64.tar.gz 2.16.2 diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp index 9b331d7fc..feacda026 100644 --- a/toolsrc/src/vcpkg/vcpkgpaths.cpp +++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp @@ -46,9 +46,9 @@ namespace vcpkg #if defined(_WIN32) static constexpr StringLiteral OS_STRING = ""; #elif defined(__APPLE__) - static constexpr StringLiteral OS_STRING = " os=\"osx\""; + static constexpr StringLiteral OS_STRING = R"(os="osx")"; #else // assume linux - static constexpr StringLiteral OS_STRING = " os=\"linux\""; + static constexpr StringLiteral OS_STRING = R"(os="linux")"; #endif static const fs::path XML_PATH = paths.scripts / "vcpkgTools.xml"; @@ -72,15 +72,15 @@ namespace vcpkg }; static const std::string XML = paths.get_filesystem().read_contents(XML_PATH).value_or_exit(VCPKG_LINE_INFO); - static const std::regex VERSION_REGEX{ - Strings::format(R"###(([\s\S]*?))###", tool)}; + static const std::regex VERSION_REGEX{R"###(([\s\S]*?))###"}; static const std::regex EXE_RELATIVE_PATH_REGEX{ - Strings::format(R"###(([\s\S]*?))###", OS_STRING)}; + Strings::format(R"###(([\s\S]*?))###")}; static const std::regex ARCHIVE_RELATIVE_PATH_REGEX{ - Strings::format(R"###(([\s\S]*?))###", OS_STRING)}; - static const std::regex URL_REGEX{Strings::format(R"###(([\s\S]*?))###", OS_STRING)}; + Strings::format(R"###(([\s\S]*?))###")}; + static const std::regex URL_REGEX{Strings::format(R"###(([\s\S]*?))###")}; - const std::regex tool_regex{Strings::format(R"###(([\s\S]*?))###", tool)}; + const std::regex tool_regex{ + Strings::format(R"###(([\s\S]*?))###", tool, OS_STRING)}; std::smatch match_tool; const bool has_match_tool = std::regex_search(XML.cbegin(), XML.cend(), match_tool, tool_regex); From 12d862ab2b6e387b596e680d334daa212b77fb32 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Tue, 27 Mar 2018 18:06:02 -0700 Subject: [PATCH 33/51] [ps1] Revert function removal --- scripts/fetchTool.ps1 | 103 ++++++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 48 deletions(-) diff --git a/scripts/fetchTool.ps1 b/scripts/fetchTool.ps1 index 8cf8002bc..26eedac3b 100644 --- a/scripts/fetchTool.ps1 +++ b/scripts/fetchTool.ps1 @@ -13,57 +13,64 @@ $vcpkgRootDir = vcpkgFindFileRecursivelyUp $scriptsDir .vcpkg-root $downloadsDir = "$vcpkgRootDir\downloads" vcpkgCreateDirectoryIfNotExists $downloadsDir -$tool = $tool.toLower() - -[xml]$asXml = Get-Content "$scriptsDir\vcpkgTools.xml" -$toolData = $asXml.SelectSingleNode("//tools/tool[@name=`"$tool`"]") # Case-sensitive! - -if ($toolData -eq $null) +function fetchToolInternal([Parameter(Mandatory=$true)][string]$tool) { - throw "Unkown tool $tool" -} + $tool = $tool.toLower() -$exePath = "$downloadsDir\$($toolData.exeRelativePath)" + [xml]$asXml = Get-Content "$scriptsDir\vcpkgTools.xml" + $toolData = $asXml.SelectSingleNode("//tools/tool[@name=`"$tool`"]") # Case-sensitive! + + if ($toolData -eq $null) + { + throw "Unkown tool $tool" + } + + $exePath = "$downloadsDir\$($toolData.exeRelativePath)" + + if (Test-Path $exePath) + { + return $exePath + } + + $isArchive = vcpkgHasProperty -object $toolData -propertyName "archiveRelativePath" + if ($isArchive) + { + $downloadPath = "$downloadsDir\$($toolData.archiveRelativePath)" + } + else + { + $downloadPath = "$downloadsDir\$($toolData.exeRelativePath)" + } + + [String]$url = $toolData.url + if (!(Test-Path $downloadPath)) + { + Write-Host "Downloading $tool..." + vcpkgDownloadFile $url $downloadPath + Write-Host "Downloading $tool... done." + } + + $expectedDownloadedFileHash = $toolData.sha256 + $downloadedFileHash = vcpkgGetSHA256 $downloadPath + vcpkgCheckEqualFileHash -filePath $downloadPath -expectedHash $expectedDownloadedFileHash -actualHash $downloadedFileHash + + if ($isArchive) + { + $outFilename = (Get-ChildItem $downloadPath).BaseName + Write-Host "Extracting $tool..." + vcpkgExtractFile -ArchivePath $downloadPath -DestinationDir $downloadsDir -outFilename $outFilename + Write-Host "Extracting $tool... done." + } + + if (-not (Test-Path $exePath)) + { + Write-Error "Could not detect or download $tool" + throw + } -if (Test-Path $exePath) -{ return $exePath } -$isArchive = vcpkgHasProperty -object $toolData -propertyName "archiveRelativePath" -if ($isArchive) -{ - $downloadPath = "$downloadsDir\$($toolData.archiveRelativePath)" -} -else -{ - $downloadPath = "$downloadsDir\$($toolData.exeRelativePath)" -} - -[String]$url = $toolData.url -if (!(Test-Path $downloadPath)) -{ - Write-Host "Downloading $tool..." - vcpkgDownloadFile $url $downloadPath - Write-Host "Downloading $tool... done." -} - -$expectedDownloadedFileHash = $toolData.sha256 -$downloadedFileHash = vcpkgGetSHA256 $downloadPath -vcpkgCheckEqualFileHash -filePath $downloadPath -expectedHash $expectedDownloadedFileHash -actualHash $downloadedFileHash - -if ($isArchive) -{ - $outFilename = (Get-ChildItem $downloadPath).BaseName - Write-Host "Extracting $tool..." - vcpkgExtractFile -ArchivePath $downloadPath -DestinationDir $downloadsDir -outFilename $outFilename - Write-Host "Extracting $tool... done." -} - -if (-not (Test-Path $exePath)) -{ - Write-Error "Could not detect or download $tool" - throw -} - -return "::$exePath::" +$path = fetchToolInternal $tool +Write-Verbose "Fetching tool: $tool. Done." +return "::$path::" From ee1409f432711e59b58bd170f021949e8e12aedd Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Tue, 27 Mar 2018 21:39:23 -0700 Subject: [PATCH 34/51] Hotfix #3144 --- toolsrc/src/vcpkg/vcpkgpaths.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp index feacda026..a17ffeb05 100644 --- a/toolsrc/src/vcpkg/vcpkgpaths.cpp +++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp @@ -80,7 +80,7 @@ namespace vcpkg static const std::regex URL_REGEX{Strings::format(R"###(([\s\S]*?))###")}; const std::regex tool_regex{ - Strings::format(R"###(([\s\S]*?))###", tool, OS_STRING)}; + Strings::format(R"###(([\s\S]*?))###", tool, OS_STRING)}; std::smatch match_tool; const bool has_match_tool = std::regex_search(XML.cbegin(), XML.cend(), match_tool, tool_regex); From 398a972357d059a8d27adb657a33da6cf2a52450 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Tue, 27 Mar 2018 21:48:48 -0700 Subject: [PATCH 35/51] Update CHANGELOG and bump version to v0.0.107 --- CHANGELOG.md | 65 +++++++++++++++++++++++++++++++++++++++++++++ toolsrc/VERSION.txt | 2 +- 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f41efaf10..36c40f6e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,68 @@ +vcpkg (0.0.107) +-------------- + * Add ports: + - azmq 1.0.2 + - azure-c-shared-utility 1.0.0-pre-release-1.0.9 + - azure-iot-sdk-c 1.0.0-pre-release-1.0.9 + - azure-uamqp-c 1.0.0-pre-release-1.0.9 + - azure-uhttp-c 2018-02-09 + - azure-umqtt-c 1.0.0-pre-release-1.0.9 + - bitserializer 0.7 + - caf 0.15.7 + - fmem c-libs-2ccee3d2fb + - gherkin-c c-libs-e63e83104b + - librsync 2.0.2 + - libuuid 1.0.3 + - mpark-variant 1.3.0 + - nanomsg 1.1.2 + - nvml 1.3-0 + - nvtt 2.1.0 + - openvpn3 2018-03-21 + - parson 2018-03-23 + - plplot 5.13.0-1 + - sqlite-orm 1.1 + - tap-windows6 9.21.2-0e30f5c + * Update ports: + - abseil 2018-03-17 -> 2018-03-23 + - alembic 1.7.6 -> 1.7.7 + - asio 1.12.0 -> 1.12.0-1 + - aubio 0.4.6-1 -> 0.4.6-2 + - aws-sdk-cpp 1.3.58 -> 1.4.21 + - catch2 2.2.1 -> 2.2.1-1 + - ccfits 2.5-1 -> 2.5-2 + - ceres 1.13.0-4 -> 1.14.0-1 + - cfitsio 3.410-1 -> 3.410-2 + - clara 2018-03-11 -> 2018-03-23 + - cpprestsdk 2.10.2 -> 2.10.2-1 + - discord-rpc 3.0.0 -> 3.1.0 + - dlib 19.9-1 -> 19.10 + - eastl 3.07.02 -> 3.08.00 + - exiv2 2018-03-17 -> 2018-03-23 + - ffmpeg 3.3.3-4 -> 3.3.3-5 + - gdcm2 2.8.4 -> 2.8.5 + - harfbuzz 1.7.6 -> 1.7.6-1 + - hpx 1.0.0-8 -> 1.1.0-1 + - lcm 1.3.95 -> 1.3.95-1 + - libpq 9.6.1-1 -> 9.6.1-4 + - libvpx 1.6.1-1 -> 1.6.1-2 + - mpg123 1.25.8-2 -> 1.25.8-4 + - nuklear 2018-03-17 -> 2018-03-23 + - openssl 1.0.2n-2 -> 1.0.2n-3 + - paho-mqtt 1.2.0-2 -> 1.2.0-3 + - plog 1.1.3 -> 1.1.4 + - qt5-quickcontrols 5.9.2-0 -> 5.9.2-1 + - qt5-quickcontrols2 5.9.2-0 -> 5.9.2-1 + - sciter 4.1.3 -> 4.1.4 + - shapelib 1.4.1 -> 1.4.1-1 + - signalrclient 1.0.0-beta1-2 -> 1.0.0-beta1-3 + - soundtouch 2.0.0 -> 2.0.0-1 + - thrift 2018-03-17 -> 2018-03-23 + - unicorn 2018-03-13 -> 2018-03-20 + - zeromq 2018-03-17 -> 2018-03-23 + +-- vcpkg team TUE, 27 Mar 2018 22:00:00 -0800 + + vcpkg (0.0.106) -------------- * Add ports: diff --git a/toolsrc/VERSION.txt b/toolsrc/VERSION.txt index 1305e8f43..daa1cd86e 100644 --- a/toolsrc/VERSION.txt +++ b/toolsrc/VERSION.txt @@ -1 +1 @@ -"0.0.106" \ No newline at end of file +"0.0.107" \ No newline at end of file From db2694fb2384e85d54def1d4164f1cb763cd2eb6 Mon Sep 17 00:00:00 2001 From: AlISA Yang Date: Wed, 28 Mar 2018 00:39:45 -0700 Subject: [PATCH 36/51] Unrar buildsystem doesn't support static building. Building dynamic instead --- ports/unrar/portfile.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ports/unrar/portfile.cmake b/ports/unrar/portfile.cmake index 0528c8b97..19c7c9d7a 100644 --- a/ports/unrar/portfile.cmake +++ b/ports/unrar/portfile.cmake @@ -6,7 +6,8 @@ set(UNRAR_URL http://www.rarlab.com/rar/${UNRAR_FILENAME}) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/unrar) if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") - message(FATAL_ERROR "Unrar does not currently support building statically") + message(STATUS "Unrar buildsystem doesn't support static building. Building dynamic instead.") + set(VCPKG_LIBRARY_LINKAGE dynamic) endif() #SRC From 0e8481c1dff484f2be1149a4911b8425c0d2e956 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Wed, 28 Mar 2018 08:55:47 -0700 Subject: [PATCH 37/51] [dlib] Disable shared linkage --- ports/dlib/CONTROL | 2 +- ports/dlib/portfile.cmake | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ports/dlib/CONTROL b/ports/dlib/CONTROL index 6863fa130..c4d5fe905 100644 --- a/ports/dlib/CONTROL +++ b/ports/dlib/CONTROL @@ -1,5 +1,5 @@ Source: dlib -Version: 19.10 +Version: 19.10-1 Build-Depends: libjpeg-turbo, libpng, sqlite3, fftw3, openblas, clapack Description: Modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ diff --git a/ports/dlib/portfile.cmake b/ports/dlib/portfile.cmake index ba3cb3ec4..da77c9374 100644 --- a/ports/dlib/portfile.cmake +++ b/ports/dlib/portfile.cmake @@ -1,5 +1,10 @@ include(vcpkg_common_functions) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("dlib only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO davisking/dlib @@ -35,7 +40,6 @@ vcpkg_configure_cmake( -DDLIB_USE_CUDA=${WITH_CUDA} -DDLIB_GIF_SUPPORT=OFF -DDLIB_USE_MKL_FFT=OFF - -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE OPTIONS_DEBUG -DDLIB_ENABLE_ASSERTS=ON #-DDLIB_ENABLE_STACK_TRACE=ON From 1bec90d155e788cd77d19ec2bdaefe53b5cb39b4 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Wed, 28 Mar 2018 09:07:37 -0700 Subject: [PATCH 38/51] [openssl] Update to 1.0.2o --- ports/openssl/CONTROL | 2 +- ports/openssl/RemoveNonASCIIChar.patch | 13 ------------- ports/openssl/portfile.cmake | 9 ++++----- 3 files changed, 5 insertions(+), 19 deletions(-) delete mode 100644 ports/openssl/RemoveNonASCIIChar.patch diff --git a/ports/openssl/CONTROL b/ports/openssl/CONTROL index 43a6eb660..9266dd10d 100644 --- a/ports/openssl/CONTROL +++ b/ports/openssl/CONTROL @@ -1,3 +1,3 @@ Source: openssl -Version: 1.0.2n-3 +Version: 1.0.2o Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library. diff --git a/ports/openssl/RemoveNonASCIIChar.patch b/ports/openssl/RemoveNonASCIIChar.patch deleted file mode 100644 index 5c4553b0a..000000000 --- a/ports/openssl/RemoveNonASCIIChar.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/ssl/bad_dtls_test.c b/ssl/bad_dtls_test.c -index 34af37d..ff754e1 100644 ---- a/ssl/bad_dtls_test.c -+++ b/ssl/bad_dtls_test.c -@@ -19,7 +19,7 @@ - * Note that unlike other SSL tests, we don't test against our own SSL - * server method. Firstly because we don't have one; we *only* support - * DTLS1_BAD_VER as a client. And secondly because even if that were -- * fixed up it's the wrong thing to test against — because if changes -+ * fixed up it's the wrong thing to test against - because if changes - * are made in generic DTLS code which don't take DTLS1_BAD_VER into - * account, there's plenty of scope for making those changes such that - * they break *both* the client and the server in the same way. diff --git a/ports/openssl/portfile.cmake b/ports/openssl/portfile.cmake index 023b3e233..458aa07b6 100644 --- a/ports/openssl/portfile.cmake +++ b/ports/openssl/portfile.cmake @@ -4,7 +4,7 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") endif() include(vcpkg_common_functions) -set(OPENSSL_VERSION 1.0.2n) +set(OPENSSL_VERSION 1.0.2o) set(MASTER_COPY_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-${OPENSSL_VERSION}) vcpkg_find_acquire_program(PERL) @@ -15,7 +15,7 @@ set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH}") vcpkg_download_distfile(OPENSSL_SOURCE_ARCHIVE URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.0.2/openssl-${OPENSSL_VERSION}.tar.gz" FILENAME "openssl-${OPENSSL_VERSION}.tar.gz" - SHA512 144bf0d6aa27b4af01df0b7b734c39962649e1711554247d42e05e14d8945742b18745aefdba162e2dfc762b941fd7d3b2d5dc6a781ae4ba10a6f5a3cadb0687 + SHA512 8a2c93657c85143e76785bb32ee836908c31a6f5f8db993fa9777acba6079e630cdddd03edbad65d1587199fc13a1507789eacf038b56eb99139c2091d9df7fd ) vcpkg_extract_source_archive(${OPENSSL_SOURCE_ARCHIVE}) @@ -24,7 +24,6 @@ vcpkg_apply_patches( PATCHES ${CMAKE_CURRENT_LIST_DIR}/ConfigureIncludeQuotesFix.patch ${CMAKE_CURRENT_LIST_DIR}/STRINGIFYPatch.patch ${CMAKE_CURRENT_LIST_DIR}/EmbedSymbolsInStaticLibsZ7.patch - ${CMAKE_CURRENT_LIST_DIR}/RemoveNonASCIIChar.patch ) if(VCPKG_CMAKE_SYSTEM_NAME) @@ -92,7 +91,7 @@ execute_process( ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-err.log ) vcpkg_execute_required_process( - COMMAND ${JOM} -j 1 -f ${OPENSSL_MAKEFILE} install + COMMAND nmake -f ${OPENSSL_MAKEFILE} install WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} LOGNAME build-${TARGET_TRIPLET}-rel-1) @@ -125,7 +124,7 @@ execute_process( ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-err.log ) vcpkg_execute_required_process( - COMMAND ${JOM} -j 1 -f ${OPENSSL_MAKEFILE} install + COMMAND nmake -f ${OPENSSL_MAKEFILE} install WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} LOGNAME build-${TARGET_TRIPLET}-dbg-1) From ba47c71551ae123aa513af45eca4ae21f66d4af3 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Wed, 28 Mar 2018 07:36:51 -0700 Subject: [PATCH 39/51] [qt5] Remove absolute paths from .prl files --- ports/qt5-base/CONTROL | 2 +- ports/qt5-base/portfile.cmake | 10 ++++++++++ ports/qt5-modularscripts/CONTROL | 2 +- ports/qt5-modularscripts/qt_modular_library.cmake | 10 ++++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/ports/qt5-base/CONTROL b/ports/qt5-base/CONTROL index 1e10239b3..e0b9e0e15 100644 --- a/ports/qt5-base/CONTROL +++ b/ports/qt5-base/CONTROL @@ -1,4 +1,4 @@ Source: qt5-base -Version: 5.9.2-5 +Version: 5.9.2-6 Description: Qt5 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components. Build-Depends: zlib, libjpeg-turbo, libpng, freetype, pcre2, harfbuzz, sqlite3, libpq, double-conversion, openssl diff --git a/ports/qt5-base/portfile.cmake b/ports/qt5-base/portfile.cmake index e01365fe9..e5bdba8a5 100644 --- a/ports/qt5-base/portfile.cmake +++ b/ports/qt5-base/portfile.cmake @@ -167,6 +167,16 @@ if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib) file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl) endif() +file(GLOB_RECURSE PRL_FILES "${CURRENT_PACKAGES_DIR}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/debug/lib/*.prl") +file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/lib" CMAKE_RELEASE_LIB_PATH) +file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib" CMAKE_DEBUG_LIB_PATH) +foreach(PRL_FILE IN LISTS PRL_FILES) + file(READ "${PRL_FILE}" _contents) + string(REPLACE "${CMAKE_RELEASE_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") + string(REPLACE "${CMAKE_DEBUG_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") + file(WRITE "${PRL_FILE}" "${_contents}") +endforeach() + file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/plugins) file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/debug/plugins) diff --git a/ports/qt5-modularscripts/CONTROL b/ports/qt5-modularscripts/CONTROL index 502887c52..fd3f72392 100644 --- a/ports/qt5-modularscripts/CONTROL +++ b/ports/qt5-modularscripts/CONTROL @@ -1,3 +1,3 @@ Source: qt5-modularscripts -Version: 2 +Version: 3 Description: Vcpkg helpers to package qt5 modules diff --git a/ports/qt5-modularscripts/qt_modular_library.cmake b/ports/qt5-modularscripts/qt_modular_library.cmake index e733e02a5..1ead66d83 100644 --- a/ports/qt5-modularscripts/qt_modular_library.cmake +++ b/ports/qt5-modularscripts/qt_modular_library.cmake @@ -78,6 +78,16 @@ function(qt_modular_library NAME HASH) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) endif() + file(GLOB_RECURSE PRL_FILES "${CURRENT_PACKAGES_DIR}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/debug/lib/*.prl") + file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/lib" CMAKE_RELEASE_LIB_PATH) + file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib" CMAKE_DEBUG_LIB_PATH) + foreach(PRL_FILE IN LISTS PRL_FILES) + file(READ "${PRL_FILE}" _contents) + string(REPLACE "${CMAKE_RELEASE_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") + string(REPLACE "${CMAKE_DEBUG_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") + file(WRITE "${PRL_FILE}" "${_contents}") + endforeach() + file(GLOB RELEASE_LIBS "${CURRENT_PACKAGES_DIR}/lib/*") if(NOT RELEASE_LIBS) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib) From 6a3921c85a2c47391e503a11ee77cd1b9f2535af Mon Sep 17 00:00:00 2001 From: Arkady Shapkin Date: Thu, 29 Mar 2018 02:47:49 +0300 Subject: [PATCH 40/51] [folly] Update to version 2018.03.19.00 (#3094) * [folly] Update to version 2018.03.19.00 * [folly] Add zlib default feature. Disable unexpected packages and handle features. --- ports/folly/CONTROL | 29 +++++++++++++++-- ports/folly/cmake-link-boost-fix.patch | 35 -------------------- ports/folly/portfile.cmake | 45 +++++++++++++++++++------- 3 files changed, 60 insertions(+), 49 deletions(-) delete mode 100644 ports/folly/cmake-link-boost-fix.patch diff --git a/ports/folly/CONTROL b/ports/folly/CONTROL index 8f0bb7656..457874906 100644 --- a/ports/folly/CONTROL +++ b/ports/folly/CONTROL @@ -1,4 +1,29 @@ Source: folly -Version: 2017.11.27.00-3 +Version: 2018.03.19.00-1 Description: An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows -Build-Depends: zlib, openssl, libevent, double-conversion, glog, gflags, lz4, liblzma, snappy, boost-context, boost-chrono, boost-date-time, boost-filesystem, boost-program-options, boost-regex, boost-system, boost-thread, boost-conversion, boost-multi-index, boost-crc +Build-Depends: openssl, libevent, double-conversion, glog, gflags, boost-chrono, boost-context, boost-conversion, boost-crc, boost-date-time, boost-filesystem, boost-multi-index, boost-program-options, boost-regex, boost-system, boost-thread +Default-Features: zlib + +Feature: zlib +Build-Depends: zlib +Description: Support zlib for compression + +Feature: bzip2 +Build-Depends: bzip2 +Description: Support bzip2 for compression + +Feature: lzma +Build-Depends: liblzma +Description: Support LZMA for compression + +Feature: zstd +Build-Depends: zstd +Description: Support zstd for compression + +Feature: snappy +Build-Depends: snappy +Description: Support Snappy for compression + +Feature: lz4 +Build-Depends: lz4 +Description: Support lz4 for compression diff --git a/ports/folly/cmake-link-boost-fix.patch b/ports/folly/cmake-link-boost-fix.patch deleted file mode 100644 index d3baf13a3..000000000 --- a/ports/folly/cmake-link-boost-fix.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index ec5a985c..36564534 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -136,13 +136,6 @@ source_group("folly\\build" FILES - ) - - set(FOLLY_SHINY_DEPENDENCIES -- Boost::chrono -- Boost::context -- Boost::date_time -- Boost::filesystem -- Boost::program_options -- Boost::regex -- Boost::system - OpenSSL::SSL - OpenSSL::Crypto - ) -@@ -179,6 +172,7 @@ endif() - - set(FOLLY_LINK_LIBRARIES - ${FOLLY_LINK_LIBRARIES} -+ ${Boost_LIBRARIES} - Iphlpapi.lib - Ws2_32.lib - -@@ -320,7 +314,7 @@ if (BUILD_TESTS) - ) - target_link_libraries(folly_test_support - PUBLIC -- Boost::thread -+ ${Boost_LIBRARIES} - folly - ${LIBGMOCK_LIBRARY} - ) diff --git a/ports/folly/portfile.cmake b/ports/folly/portfile.cmake index 00c1093da..ce101d918 100644 --- a/ports/folly/portfile.cmake +++ b/ports/folly/portfile.cmake @@ -17,45 +17,66 @@ set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/folly - REF v2017.11.27.00 - SHA512 738bb00047a7cbd807f2dccd64031763df80bbebca73f1ae9500b750dcad156dde84e47f4eda7af1bcd7abfae10c973da47515f2e111929979d1637869cf06ee + REF v2018.03.19.00 + SHA512 72df8768753bf9f1109ad3f16645d811906b633833c91c7d9fe856a06c16b5e398876cf6cae415401eff96b568c99ffa1dc0c44d81cd40219bafb0f4c72fc2ca HEAD_REF master ) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/cmake-link-boost-fix.patch ${CMAKE_CURRENT_LIST_DIR}/msvc-15.6-workaround.patch ) +file(COPY + ${CMAKE_CURRENT_LIST_DIR}/FindLZ4.cmake + ${CMAKE_CURRENT_LIST_DIR}/FindSnappy.cmake + DESTINATION ${SOURCE_PATH}/CMake/ +) + if(VCPKG_CRT_LINKAGE STREQUAL static) set(MSVC_USE_STATIC_RUNTIME ON) else() set(MSVC_USE_STATIC_RUNTIME OFF) endif() +set(FEATURE_OPTIONS) + +macro(feature FEATURENAME PACKAGENAME) + if("${FEATURENAME}" IN_LIST FEATURES) + list(APPEND FEATURE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_${PACKAGENAME}=OFF) + else() + list(APPEND FEATURE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_${PACKAGENAME}=ON) + endif() +endmacro() + +feature(zlib ZLIB) +feature(bzip2 BZip2) +feature(lzma LibLZMA) +feature(lz4 LZ4) +feature(zstd Zstd) +feature(snappy Snappy) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS -DMSVC_USE_STATIC_RUNTIME=${MSVC_USE_STATIC_RUNTIME} + -DCMAKE_DISABLE_FIND_PACKAGE_LibDwarf=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Libiberty=ON + -DCMAKE_DISABLE_FIND_PACKAGE_LibAIO=ON + -DLIBAIO_FOUND=OFF + -DLIBURCU_FOUND=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_LibURCU=ON + ${FEATURE_OPTIONS} ) -# Folly runs built executables during the build, so they need access to the installed DLLs. -set(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/debug/bin") - -vcpkg_install_cmake() +vcpkg_install_cmake(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() vcpkg_fixup_cmake_targets() -# changes target search path -file(READ ${CURRENT_PACKAGES_DIR}/share/folly/folly-targets.cmake FOLLY_MODULE) -string(REPLACE "${CURRENT_INSTALLED_DIR}/lib/" "" FOLLY_MODULE "${FOLLY_MODULE}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/folly/folly-targets.cmake "${FOLLY_MODULE}") - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright From b955609dda3a7aa1d0a363ee3e309d8902d63b90 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Wed, 28 Mar 2018 17:41:17 -0700 Subject: [PATCH 41/51] [qwt] Requires qt5-tools for designer --- ports/qwt/CONTROL | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/qwt/CONTROL b/ports/qwt/CONTROL index 9dcf19f5b..383ac11ce 100644 --- a/ports/qwt/CONTROL +++ b/ports/qwt/CONTROL @@ -1,4 +1,4 @@ Source: qwt -Version: 6.1.3-4 +Version: 6.1.3-5 Description: Qt widgets library for technical applications -Build-Depends: qt5-base, qt5-svg +Build-Depends: qt5-base, qt5-svg, qt5-tools From 36dddad940037e0d7b6ce83a5751fee402a8c0d0 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Tue, 27 Mar 2018 23:05:14 -0700 Subject: [PATCH 42/51] [abseil][aws-sdk-cpp][breakpad][exiv2][nuklear][zeromq] Upgrades --- ports/abseil/CONTROL | 2 +- ports/abseil/portfile.cmake | 4 ++-- ports/aws-sdk-cpp/CONTROL | 2 +- ports/aws-sdk-cpp/portfile.cmake | 4 ++-- ports/breakpad/CONTROL | 2 +- ports/breakpad/portfile.cmake | 4 ++-- ports/exiv2/CONTROL | 2 +- ports/exiv2/portfile.cmake | 4 ++-- ports/nuklear/CONTROL | 2 +- ports/nuklear/portfile.cmake | 4 ++-- ports/zeromq/CONTROL | 2 +- ports/zeromq/portfile.cmake | 4 ++-- 12 files changed, 18 insertions(+), 18 deletions(-) diff --git a/ports/abseil/CONTROL b/ports/abseil/CONTROL index 0c28ff456..03462a816 100644 --- a/ports/abseil/CONTROL +++ b/ports/abseil/CONTROL @@ -1,5 +1,5 @@ Source: abseil -Version: 2018-03-23 +Version: 2018-03-27 Description: an open-source collection designed to augment the C++ standard library. Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives. In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you. diff --git a/ports/abseil/portfile.cmake b/ports/abseil/portfile.cmake index 48a506710..817ac004a 100644 --- a/ports/abseil/portfile.cmake +++ b/ports/abseil/portfile.cmake @@ -7,8 +7,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO abseil/abseil-cpp - REF 4e2e6c5c0071e6430056a8ef0a6c8a1fe584d8ff - SHA512 f1daa9f7afb8727f2fd3097683bd7192b9f54536d575ce655a7440281463a3eae1bb0072f3010e74a03693b5dbca2e80e220099ae8557171055efcad70767ef1 + REF 70b5fa948d920ccca86d143057497132f63a44f3 + SHA512 5964f4b082d183a3d8227c51617e7ac348b6c7b80264c0e96cdeba40a69979a0954f1792da20f760502d62771ac464400b820e4fe2b0b4ed55f8c6f81b17cc1e HEAD_REF master ) diff --git a/ports/aws-sdk-cpp/CONTROL b/ports/aws-sdk-cpp/CONTROL index 44d263676..bd1ccbec5 100644 --- a/ports/aws-sdk-cpp/CONTROL +++ b/ports/aws-sdk-cpp/CONTROL @@ -1,5 +1,5 @@ Source: aws-sdk-cpp -Version: 1.4.21 +Version: 1.4.23 Description: AWS SDK for C++ Default-Features: dynamodb, ec2, kms, rds, s3, sns, sqs # Automatically generated by generateFeatures.ps1 diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake index 3adfa15d0..7d98781aa 100644 --- a/ports/aws-sdk-cpp/portfile.cmake +++ b/ports/aws-sdk-cpp/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aws/aws-sdk-cpp - REF 1.4.21 - SHA512 b8d063048b9d879603ace5210b671497336e8160cb3b7d10772465db538d95176458446faa9dccd5cc2d7a2c3242239fc3b80a8aa3a5878a0e2b4fc6673b4a35 + REF 1.4.23 + SHA512 5d77650c6468c5ab57eab2c5a5b647a5f4d56dc31cec0bca051e3e79554b386be5f6ed4b41cd7ca907e9e657c7dbef024fac2b9e505eb44204cf998ac1ee102c HEAD_REF master ) diff --git a/ports/breakpad/CONTROL b/ports/breakpad/CONTROL index 6b016d29a..76e76668b 100644 --- a/ports/breakpad/CONTROL +++ b/ports/breakpad/CONTROL @@ -1,4 +1,4 @@ Source: breakpad -Version: 2018-03-13 +Version: 2018-03-27 Build-Depends: libdisasm Description: a set of client and server components which implement a crash-reporting system. diff --git a/ports/breakpad/portfile.cmake b/ports/breakpad/portfile.cmake index b8bac3f6a..29cf87498 100644 --- a/ports/breakpad/portfile.cmake +++ b/ports/breakpad/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/breakpad - REF 2d80611fedf1e6bce4459f179dafaac844e9fc7f - SHA512 8c4eabb1e2d071ed67d178c1ee8c3679a24bff39439ee360a079fa926e276247ee18d0d88e420407e08c99cac0d1e9a8b4c7f554bf2d07f125eaa1df2f973e38 + REF e93f852a3c316ad767381d5e5bc839eba5c6225b + SHA512 8139472f4f9ce01770cf2922a52cc63fa009cfff93db893d297f61a1b44198b10bba73c92977e84c18a90ef7e71f0911e4fe9d27e8978fc38f231e499e23fc4d HEAD_REF master ) diff --git a/ports/exiv2/CONTROL b/ports/exiv2/CONTROL index 36c7220e5..06862802c 100644 --- a/ports/exiv2/CONTROL +++ b/ports/exiv2/CONTROL @@ -1,4 +1,4 @@ Source: exiv2 -Version: 2018-03-23 +Version: 2018-03-27 Build-Depends: zlib, expat, libiconv Description: Image metadata library and tools http://www.exiv2.org diff --git a/ports/exiv2/portfile.cmake b/ports/exiv2/portfile.cmake index 80e0b1a6f..046d0eabc 100644 --- a/ports/exiv2/portfile.cmake +++ b/ports/exiv2/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Exiv2/exiv2 - REF eb61e57de031ffd8713306cae6ad431d0b84a9b5 - SHA512 078e161de8ffe1953c3215ff745954f00ef4bd5ccef4c7fb079ad67d5350a31bb8f692cb664adba889433c4e79e446dc1f31edfd9ecc8b9471faeba82ae425e6 + REF be992520b1570c2696d6ca1302fd49f1cb0164d8 + SHA512 fe4e2907268a8e5fe0b3a03fc39a5ba7d72daaf304b32c37ae8b0c0773711edc9ce0d194cd4f583b430ebf65ebcc58980a2a4e858c893c0bb1adb1886f6c0e6d HEAD_REF master ) diff --git a/ports/nuklear/CONTROL b/ports/nuklear/CONTROL index ba4340611..694ddd5b7 100644 --- a/ports/nuklear/CONTROL +++ b/ports/nuklear/CONTROL @@ -1,3 +1,3 @@ Source: nuklear -Version: 2018-03-23 +Version: 2018-03-27 Description: This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain diff --git a/ports/nuklear/portfile.cmake b/ports/nuklear/portfile.cmake index 9c240f411..9baefc9a4 100644 --- a/ports/nuklear/portfile.cmake +++ b/ports/nuklear/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vurtun/nuklear - REF 1acb673af13e72d8ac07522a22127ffd33af65a9 - SHA512 8ee7c45d0a6c64062adec3575ea94cf0d5c8d60d9f30cf8c72051c6e9fcf030562379074f37c1f5da256cce8537078694673ed3b947a603982cdbf26c393fa4b + REF 7e710ff4fb0186c0e462d43b30c82cab12ea1277 + SHA512 9f65e2fe2e89521002f7d86e8c5f0947a76724b7e7eb87463832732f38561b0415da98a8411e474467a9e5e1b33189c98f6506cc1baf97dbced66cfe05f2a290 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/nuklear.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) diff --git a/ports/zeromq/CONTROL b/ports/zeromq/CONTROL index b3ec200db..64f2a6507 100644 --- a/ports/zeromq/CONTROL +++ b/ports/zeromq/CONTROL @@ -1,3 +1,3 @@ Source: zeromq -Version: 2018-03-23 +Version: 2018-03-27 Description: The ZeroMQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products diff --git a/ports/zeromq/portfile.cmake b/ports/zeromq/portfile.cmake index 72165adaa..45e10bf3d 100644 --- a/ports/zeromq/portfile.cmake +++ b/ports/zeromq/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeromq/libzmq - REF c8a1c4542d13b6492949e7525f4fe8da266cac2b - SHA512 600bb2a43afb4f6e2d9a7ce8470841bcb03fc9737f17d276f52b0cf78c6f17d1cf08e2b0046ff746efa8738f33128cb51cbe63cb215937a892222f2e4895a659 + REF 8fb5b10d8a60e06b9adebd22ecc118f13580375c + SHA512 5839410cf1842c0ac684f42ed52c4ed117104dce5b31106eff3c7e799e1d3d57f72413b4381ebb36e1835bf2aa44fcdc0e36140871141edb96ab50b4d8b23a8d HEAD_REF master ) From 3e1104465eb4e40e3b4dce1a212d90a68928d442 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Wed, 28 Mar 2018 18:35:27 -0700 Subject: [PATCH 43/51] Add ninja to vcpkgTools.xml --- scripts/vcpkgTools.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/vcpkgTools.xml b/scripts/vcpkgTools.xml index 5df2de7ad..477584c5a 100644 --- a/scripts/vcpkgTools.xml +++ b/scripts/vcpkgTools.xml @@ -54,4 +54,18 @@ 2a3afe19c180f8373fa02ff00254d5394fec0349f5804e0ad2f6067854ff28ac 7za920.zip + + 1.8.2 + ninja + https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip + d2fea9ff33b3ef353161ed906f260d565ca55b8ca0568fa07b1d2cab90a84a07 + ninja-linux.zip + + + 1.8.2 + ninja + https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-mac.zip + 0347d55c66061652b26f48769d566761630ffde3143793b29064a57f356542cc + ninja-mac.zip + From 10e77be9fa5a4d6bb132c8d56ee8426de36ab449 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Wed, 28 Mar 2018 19:28:42 -0700 Subject: [PATCH 44/51] [folly] Add missing files. --- ports/folly/FindLZ4.cmake | 12 ++++++++++++ ports/folly/FindSnappy.cmake | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 ports/folly/FindLZ4.cmake create mode 100644 ports/folly/FindSnappy.cmake diff --git a/ports/folly/FindLZ4.cmake b/ports/folly/FindLZ4.cmake new file mode 100644 index 000000000..bf3140e15 --- /dev/null +++ b/ports/folly/FindLZ4.cmake @@ -0,0 +1,12 @@ +find_path(LZ4_INCLUDE_DIR lz4.h) + +find_package(LZ4_LIBRARY_DEBUG NAMES lz4d) +find_package(LZ4_LIBRARY_RELEASE NAMES lz4) + +select_library_configurations(LZ4_LIBRARY) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS( + LZ4 DEFAULT_MSG + LZ4_LIBRARY LZ4_INCLUDE_DIR +) diff --git a/ports/folly/FindSnappy.cmake b/ports/folly/FindSnappy.cmake new file mode 100644 index 000000000..e8916d6e0 --- /dev/null +++ b/ports/folly/FindSnappy.cmake @@ -0,0 +1,12 @@ +find_path(SNAPPY_INCLUDE_DIR snappy.h) + +find_package(SNAPPY_LIBRARY_DEBUG NAMES snappyd) +find_package(SNAPPY_LIBRARY_RELEASE NAMES snappy) + +select_library_configurations(SNAPPY_LIBRARY) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS( + SNAPPY DEFAULT_MSG + SNAPPY_LIBRARY SNAPPY_INCLUDE_DIR +) From 2e4d839dc5270137f9ff4f1df03c3d60d69d633e Mon Sep 17 00:00:00 2001 From: Koby Kahane Date: Thu, 29 Mar 2018 20:57:32 +0300 Subject: [PATCH 45/51] [cryptopp] Update to 6.1.0 (#3171) * [cryptopp] Update to 6.1.0 The CMake files for CryptoPP that were previously built into the project are now available separately in cryptopp-cmake, so we pick them up from there. * [cryptopp] USe ninja, fixup_cmake_targets --- ports/cryptopp/CONTROL | 2 +- ports/cryptopp/portfile.cmake | 35 ++++++++++++++++++++--------------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/ports/cryptopp/CONTROL b/ports/cryptopp/CONTROL index 00d14756a..ef8e6fd75 100644 --- a/ports/cryptopp/CONTROL +++ b/ports/cryptopp/CONTROL @@ -1,3 +1,3 @@ Source: cryptopp -Version: 5.6.5-1 +Version: 6.1.0-1 Description: Crypto++ is a free C++ class library of cryptographic schemes. diff --git a/ports/cryptopp/portfile.cmake b/ports/cryptopp/portfile.cmake index 4847c208b..b0b59d29c 100644 --- a/ports/cryptopp/portfile.cmake +++ b/ports/cryptopp/portfile.cmake @@ -3,13 +3,25 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(VCPKG_LIBRARY_LINKAGE static) endif() include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cryptopp-CRYPTOPP_5_6_5) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/weidai11/cryptopp/archive/CRYPTOPP_5_6_5.zip" - FILENAME "CRYPTOPP_5_6_5.zip" - SHA512 abca8089e2d587f59c503d2d6412b3128d061784349c735f3ee46be1cb9e3d0d0fed9a9173765fa033eb2dc744e03810de45b8cc2f8ca1672a36e4123648ea44 + +vcpkg_from_github( + OUT_SOURCE_PATH CMAKE_SOURCE_PATH + REPO noloader/cryptopp-cmake + REF aab149932675e4bb777a9d3d6b3f8b8182583fd7 + SHA512 748c77e936888d042bf4a72cc7ee3b7b2ecf16c003cb23296c1af413c9a0cba00cc942ecace26274fc8ac8bd4d848946beb9d7bf2253c5eab3315a4419ef5f1f + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO weidai11/cryptopp + REF CRYPTOPP_6_1_0 + SHA512 4bc02fef33f1859a07434a4752c2575afd781056e9a91eed99a13cebe2c91d66cbc7173e34d362da63dad6d38f9594ff291accd27e111232996ccd536bba0f39 + HEAD_REF master +) + +file(COPY ${CMAKE_SOURCE_PATH}/cryptopp-config.cmake DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_SOURCE_PATH}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) # Dynamic linking should be avoided for Crypto++ to reduce the attack surface, # so generate a static lib for both dynamic and static vcpkg targets. @@ -19,6 +31,7 @@ vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DBUILD_SHARED=OFF -DBUILD_STATIC=ON @@ -27,18 +40,10 @@ vcpkg_configure_cmake( ) vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/cryptopp) # There is no way to suppress installation of the headers and resource files in debug build. file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) - -# Remove executables -file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/cryptest.exe) -file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/cryptest.exe) - -# Remove other files not required in package -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) # Handle copyright file(COPY ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/cryptopp) From 3d87445cb0e42e67fa7321059bed0b20d171c605 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Thu, 29 Mar 2018 11:14:48 -0700 Subject: [PATCH 46/51] [abseil][aws-sdk-cpp][exiv2][rs-core-lib][tbb][thrift][zeromq] Upgrades --- ports/abseil/CONTROL | 2 +- ports/abseil/portfile.cmake | 4 ++-- ports/aws-sdk-cpp/CONTROL | 2 +- ports/aws-sdk-cpp/portfile.cmake | 4 ++-- ports/exiv2/CONTROL | 2 +- ports/exiv2/portfile.cmake | 4 ++-- ports/rs-core-lib/CONTROL | 2 +- ports/rs-core-lib/portfile.cmake | 4 ++-- ports/tbb/CONTROL | 2 +- ports/tbb/portfile.cmake | 4 ++-- ports/thrift/CONTROL | 2 +- ports/thrift/portfile.cmake | 4 ++-- ports/zeromq/CONTROL | 2 +- ports/zeromq/portfile.cmake | 4 ++-- 14 files changed, 21 insertions(+), 21 deletions(-) diff --git a/ports/abseil/CONTROL b/ports/abseil/CONTROL index 03462a816..a07f78c76 100644 --- a/ports/abseil/CONTROL +++ b/ports/abseil/CONTROL @@ -1,5 +1,5 @@ Source: abseil -Version: 2018-03-27 +Version: 2018-03-29 Description: an open-source collection designed to augment the C++ standard library. Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives. In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you. diff --git a/ports/abseil/portfile.cmake b/ports/abseil/portfile.cmake index 817ac004a..bd1d799a2 100644 --- a/ports/abseil/portfile.cmake +++ b/ports/abseil/portfile.cmake @@ -7,8 +7,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO abseil/abseil-cpp - REF 70b5fa948d920ccca86d143057497132f63a44f3 - SHA512 5964f4b082d183a3d8227c51617e7ac348b6c7b80264c0e96cdeba40a69979a0954f1792da20f760502d62771ac464400b820e4fe2b0b4ed55f8c6f81b17cc1e + REF d9b47d7888b39cd113bacacb9edd5023a71cbb3a + SHA512 d5aac7bbe7cdb1419f19eff80487a1d8fa03cde82db760bf9fab464a62ae66251c62f69ff13940db41af1bb287ea9680782773bf1cb19c15d489f711b390d734 HEAD_REF master ) diff --git a/ports/aws-sdk-cpp/CONTROL b/ports/aws-sdk-cpp/CONTROL index bd1ccbec5..d2f5c186b 100644 --- a/ports/aws-sdk-cpp/CONTROL +++ b/ports/aws-sdk-cpp/CONTROL @@ -1,5 +1,5 @@ Source: aws-sdk-cpp -Version: 1.4.23 +Version: 1.4.24 Description: AWS SDK for C++ Default-Features: dynamodb, ec2, kms, rds, s3, sns, sqs # Automatically generated by generateFeatures.ps1 diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake index 7d98781aa..28097ee1a 100644 --- a/ports/aws-sdk-cpp/portfile.cmake +++ b/ports/aws-sdk-cpp/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aws/aws-sdk-cpp - REF 1.4.23 - SHA512 5d77650c6468c5ab57eab2c5a5b647a5f4d56dc31cec0bca051e3e79554b386be5f6ed4b41cd7ca907e9e657c7dbef024fac2b9e505eb44204cf998ac1ee102c + REF 1.4.24 + SHA512 bda259caeeb909884128268f0dfe3ca58ce665be2a0304302f1fd09c4217cbcd34c20119009123aeb80377dfe5144b72cbd98d2acbdc9ffa729c09e380751bf2 HEAD_REF master ) diff --git a/ports/exiv2/CONTROL b/ports/exiv2/CONTROL index 06862802c..0f4ddb750 100644 --- a/ports/exiv2/CONTROL +++ b/ports/exiv2/CONTROL @@ -1,4 +1,4 @@ Source: exiv2 -Version: 2018-03-27 +Version: 2018-03-29 Build-Depends: zlib, expat, libiconv Description: Image metadata library and tools http://www.exiv2.org diff --git a/ports/exiv2/portfile.cmake b/ports/exiv2/portfile.cmake index 046d0eabc..f68070eea 100644 --- a/ports/exiv2/portfile.cmake +++ b/ports/exiv2/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Exiv2/exiv2 - REF be992520b1570c2696d6ca1302fd49f1cb0164d8 - SHA512 fe4e2907268a8e5fe0b3a03fc39a5ba7d72daaf304b32c37ae8b0c0773711edc9ce0d194cd4f583b430ebf65ebcc58980a2a4e858c893c0bb1adb1886f6c0e6d + REF 8b7941b7332a3299b3b6061e93f352ef66440666 + SHA512 743a9792753915334e86c55112ef876bf0353924b85b0bf33ffb8217606ecb57954eec2d0e904f6e9fd9ea435b96f035bea793cb5040f54169eea0ba0c2fd7e3 HEAD_REF master ) diff --git a/ports/rs-core-lib/CONTROL b/ports/rs-core-lib/CONTROL index 03e5f4955..a6f837d0a 100644 --- a/ports/rs-core-lib/CONTROL +++ b/ports/rs-core-lib/CONTROL @@ -1,4 +1,4 @@ Source: rs-core-lib -Version: 2018-03-17 +Version: 2018-03-29 Description: Minimal common utilities by Ross Smith diff --git a/ports/rs-core-lib/portfile.cmake b/ports/rs-core-lib/portfile.cmake index 47e31c9bf..cca3be0a3 100644 --- a/ports/rs-core-lib/portfile.cmake +++ b/ports/rs-core-lib/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CaptainCrowbar/rs-core-lib - REF c5b4522c336cd2348c9b65b01802ef1c4865fca2 - SHA512 a720d2f4cf6ef9dda1ce3e6bccf1495a8d29d3765d7456a5e8b79342ddc13f68428d17ea1e2993cb181450b0c2dca4c377735eef0f2f2e8a6bd66e6f2b78fd6a + REF 3300d39fef567adf90f59d07223e55ca44ed4f98 + SHA512 0e696a94ab71ca29c61075d917a26b01057f657537c5516cb3bf2fd046d5c61f7e74d83a7c2eba2d4d923f3bd8b125f61c6732d09ade59b0995f42eb3df22a17 HEAD_REF master ) diff --git a/ports/tbb/CONTROL b/ports/tbb/CONTROL index 1de2e57a5..0e19d650b 100644 --- a/ports/tbb/CONTROL +++ b/ports/tbb/CONTROL @@ -1,3 +1,3 @@ Source: tbb -Version: 2018_U2 +Version: 2018_U3 Description: Intel's Threading Building Blocks. diff --git a/ports/tbb/portfile.cmake b/ports/tbb/portfile.cmake index 12e07ba78..f74d096de 100644 --- a/ports/tbb/portfile.cmake +++ b/ports/tbb/portfile.cmake @@ -10,8 +10,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO 01org/tbb - REF 2018_U2 - SHA512 a94b55bcabec47424be1c2d4b7bf3502a545bc714250a260e152b00431420094dbab64c0355bd0004ee9ad10d85c7b920969bf4b6d9a30b3697c7c5202518841 + REF 2018_U3 + SHA512 e92a2aabcdd456c1676eb9ce20653908a867ea18ff118f5f039823f5a10a0da3de61d0044774ad38b137e636fa8602af009dfeb59c84005fe90c6206aa3306ab HEAD_REF tbb_2018) if(TRIPLET_SYSTEM_ARCH STREQUAL x86) diff --git a/ports/thrift/CONTROL b/ports/thrift/CONTROL index 7e21ecce6..82524e78d 100644 --- a/ports/thrift/CONTROL +++ b/ports/thrift/CONTROL @@ -1,4 +1,4 @@ Source: thrift -Version: 2018-03-23 +Version: 2018-03-29 Build-Depends: zlib, libevent, openssl, boost-range, boost-smart-ptr, boost-date-time, boost-locale, boost-scope-exit Description: Apache Thrift is a software project spanning a variety of programming languages and use cases. Our goal is to make reliable, performant communication and data serialization across languages as efficient and seamless as possible. Originally developed at Facebook, Thrift was open sourced in April 2007 and entered the Apache Incubator in May, 2008. Thrift became an Apache TLP in October, 2010. diff --git a/ports/thrift/portfile.cmake b/ports/thrift/portfile.cmake index eae7f5c73..0293cca6f 100644 --- a/ports/thrift/portfile.cmake +++ b/ports/thrift/portfile.cmake @@ -15,8 +15,8 @@ vcpkg_find_acquire_program(BISON) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO apache/thrift - REF 272470790ad6db791bd6f9db399b2cd2d5879f74 - SHA512 9f9ae5d72adf1b46970f7527fe3841349c5652e4721a16967f1d9edbe4b1ecc83f146ece492234da16ed7c033b172aa49dc7f5431bcdea37286a2dc21835691e + REF 930428438c0b6c8f60560cbb7dcad79042badacb + SHA512 b446126a8f697903abbdafcd8cd9a348fc97d34b2a207592cae1801e481b5159f92b7b0296a3531cd8f2a9e223e051f71ea63ce5da2dd2f67364db9bfd84dcf3 HEAD_REF master ) diff --git a/ports/zeromq/CONTROL b/ports/zeromq/CONTROL index 64f2a6507..a7f21a9b8 100644 --- a/ports/zeromq/CONTROL +++ b/ports/zeromq/CONTROL @@ -1,3 +1,3 @@ Source: zeromq -Version: 2018-03-27 +Version: 2018-03-29 Description: The ZeroMQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products diff --git a/ports/zeromq/portfile.cmake b/ports/zeromq/portfile.cmake index 45e10bf3d..3220d8f3a 100644 --- a/ports/zeromq/portfile.cmake +++ b/ports/zeromq/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeromq/libzmq - REF 8fb5b10d8a60e06b9adebd22ecc118f13580375c - SHA512 5839410cf1842c0ac684f42ed52c4ed117104dce5b31106eff3c7e799e1d3d57f72413b4381ebb36e1835bf2aa44fcdc0e36140871141edb96ab50b4d8b23a8d + REF 2aa54d662048f420ac0dbd5d9b46559963a675f2 + SHA512 48abea6fdac733ff7c2da7b3f45f129dc904d5d5a59f41f4f47419f5c2483a5227aec1a605d76422071045ea82c76ceb55a521bb80fe5d7f77d5d01c43acb3e6 HEAD_REF master ) From e90c5e61eabe12d93486d17dde89b7de979da7d6 Mon Sep 17 00:00:00 2001 From: Krzysztof Czurylo Date: Thu, 29 Mar 2018 22:52:58 +0200 Subject: [PATCH 47/51] [pmdk] Rename and update to version 1.4 (#3173) * [pmdk] Rename and update to version 1.4 The NVML project has been renamed to PMDK (Persistent Memory Development Kit). PMDK version 1.4 is the first official release with the new name. * [pmdk] Use vcpkg_from_github more -- avoid separate variable declarations --- ports/nvml/CONTROL | 3 -- ports/pmdk/CONTROL | 3 ++ ports/{nvml => pmdk}/portfile.cmake | 43 +++++++++++++++-------------- 3 files changed, 26 insertions(+), 23 deletions(-) delete mode 100644 ports/nvml/CONTROL create mode 100644 ports/pmdk/CONTROL rename ports/{nvml => pmdk}/portfile.cmake (69%) diff --git a/ports/nvml/CONTROL b/ports/nvml/CONTROL deleted file mode 100644 index 8bf941bd3..000000000 --- a/ports/nvml/CONTROL +++ /dev/null @@ -1,3 +0,0 @@ -Source: nvml -Version: 1.3-0 -Description: Non-Volatile Memory Library \ No newline at end of file diff --git a/ports/pmdk/CONTROL b/ports/pmdk/CONTROL new file mode 100644 index 000000000..f440b68bc --- /dev/null +++ b/ports/pmdk/CONTROL @@ -0,0 +1,3 @@ +Source: pmdk +Version: 1.4-1 +Description: Persistent Memory Development Kit \ No newline at end of file diff --git a/ports/nvml/portfile.cmake b/ports/pmdk/portfile.cmake similarity index 69% rename from ports/nvml/portfile.cmake rename to ports/pmdk/portfile.cmake index 9e51c2bda..89c48a8fb 100644 --- a/ports/nvml/portfile.cmake +++ b/ports/pmdk/portfile.cmake @@ -1,38 +1,39 @@ - -set(NVML_VERSION 1.3) -set(NVML_HASH 59fb552c693d5279ec86eff8eb1c36832c9c5beb6492a64b54b21c09d90ed52cba22d57912a304cf1ec17c4633da641200fd50dbe4a38355f43c674842f991bd) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${NVML_VERSION}) - include(vcpkg_common_functions) if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - message(STATUS "WARNING: Static building not supported. Building dynamic.") + message(STATUS "Static building not supported. Building dynamic.") set(VCPKG_LIBRARY_LINKAGE dynamic) endif() +if(VCPKG_CRT_LINKAGE STREQUAL "static") + message(FATAL_ERROR "Static CRT linkage is not supported") +endif() if (TRIPLET_SYSTEM_ARCH MATCHES "arm") message(FATAL_ERROR "ARM is currently not supported") elseif (TRIPLET_SYSTEM_ARCH MATCHES "x86") - message(FATAL_ERROR "x86 is not supported. Please use nvml:x64-windows or set environment variable VCPKG_DEFAULT_TRIPLET to 'x64-windows'") -else () - set(MSBUILD_PLATFORM ${TRIPLET_SYSTEM_ARCH}) + message(FATAL_ERROR "x86 is not supported. Please use pmdk:x64-windows instead.") endif() # Download source vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH - REPO pmem/nvml - REF ${NVML_VERSION} - SHA512 ${NVML_HASH} + REPO pmem/pmdk + REF 1.4 + SHA512 95dbea9acfea4a6cb433a25f56f7484946a93fbce1c5e0e1d6ff36e0824e3e0e9f28f37024918998358f8ff12e69d0902fcf88357b9ad12695f32e06e86ffac8 HEAD_REF master ) +get_filename_component(PMDK_VERSION "${SOURCE_PATH}" NAME) +string(REPLACE "pmdk-" "" PMDK_VERSION "${PMDK_VERSION}") + # Build only the selected projects vcpkg_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/src/NVML.sln + PROJECT_PATH ${SOURCE_PATH}/src/PMDK.sln PLATFORM x64 - TARGET "Solution Items\\libpmem,Solution Items\\libpmemlog,Solution Items\\libpmemblk,Solution Items\\libpmemobj,Solution Items\\libpmempool,Solution Items\\libvmem,Solution Items\\Tools\\pmempool" - OPTIONS /p:SRCVERSION=${NVML_VERSION} + PLATFORM_TOOLSET v140 + TARGET_PLATFORM_VERSION 10.0.16299.0 + TARGET "Solution Items\\libpmem,Solution Items\\libpmemlog,Solution Items\\libpmemblk,Solution Items\\libpmemobj,Solution Items\\libpmemcto,Solution Items\\libpmempool,Solution Items\\libvmem,Solution Items\\Tools\\pmempool" + OPTIONS /p:SRCVERSION=${PMDK_VERSION} ) set(DEBUG_ARTIFACTS_PATH ${SOURCE_PATH}/src/x64/Debug) @@ -45,10 +46,11 @@ file(GLOB HEADER_FILES ${SOURCE_PATH}/src/include/libpmemobj/*.h) file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/libpmemobj) file(GLOB HEADER_FILES ${SOURCE_PATH}/src/include/libpmemobj++/*.hpp) file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/libpmemobj++) + # Remove unneeded header files file(REMOVE ${CURRENT_PACKAGES_DIR}/include/libvmmalloc.h) file(REMOVE ${CURRENT_PACKAGES_DIR}/include/librpmem.h) - + # Install libraries (debug) file(GLOB LIB_DEBUG_FILES ${DEBUG_ARTIFACTS_PATH}/lib[pv]mem*.lib ${DEBUG_ARTIFACTS_PATH}/lib[pv]mem*.exp) file(INSTALL ${LIB_DEBUG_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) @@ -64,11 +66,12 @@ file(GLOB LIB_RELEASE_FILES ${RELEASE_ARTIFACTS_PATH}/lib[pv]mem*.dll) file(INSTALL ${LIB_RELEASE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) # Install tools (release only) -file(INSTALL ${RELEASE_ARTIFACTS_PATH}/pmempool.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/nvml) -vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/nvml) +file(INSTALL ${RELEASE_ARTIFACTS_PATH}/pmempool.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/pmdk) + +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/pmdk) vcpkg_copy_pdbs() # Handle copyright -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/nvml) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/nvml/LICENSE ${CURRENT_PACKAGES_DIR}/share/nvml/copyright) +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/pmdk) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/pmdk/LICENSE ${CURRENT_PACKAGES_DIR}/share/pmdk/copyright) From 6c118ba7714a98dd37ae55dc891eadb226f5242f Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Thu, 29 Mar 2018 13:57:38 -0700 Subject: [PATCH 48/51] [unrar/recast/yoga] Bump version, fix whitespace --- ports/recast/CONTROL | 2 +- ports/recast/portfile.cmake | 4 ++-- ports/unrar/CONTROL | 2 +- ports/unrar/portfile.cmake | 2 +- ports/yoga/CONTROL | 2 +- ports/yoga/portfile.cmake | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ports/recast/CONTROL b/ports/recast/CONTROL index 34bb2b34a..4cc61e30d 100644 --- a/ports/recast/CONTROL +++ b/ports/recast/CONTROL @@ -1,3 +1,3 @@ Source: recast -Version: 1.5.1 +Version: 1.5.1-1 Description: Navigation-mesh Toolset for Games diff --git a/ports/recast/portfile.cmake b/ports/recast/portfile.cmake index e0670dbae..7d9f08f93 100644 --- a/ports/recast/portfile.cmake +++ b/ports/recast/portfile.cmake @@ -1,8 +1,8 @@ include(vcpkg_common_functions) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - message(WARNING "Dynamic not supported building static") - set(VCPKG_LIBRARY_LINKAGE static) + message(WARNING "Dynamic not supported, building static") + set(VCPKG_LIBRARY_LINKAGE static) endif() vcpkg_from_github( diff --git a/ports/unrar/CONTROL b/ports/unrar/CONTROL index ce6d4dab8..d9c586c6a 100644 --- a/ports/unrar/CONTROL +++ b/ports/unrar/CONTROL @@ -1,3 +1,3 @@ Source: unrar -Version: 5.5.8 +Version: 5.5.8-1 Description: rarlab's unrar libary diff --git a/ports/unrar/portfile.cmake b/ports/unrar/portfile.cmake index 19c7c9d7a..4ad834d15 100644 --- a/ports/unrar/portfile.cmake +++ b/ports/unrar/portfile.cmake @@ -6,7 +6,7 @@ set(UNRAR_URL http://www.rarlab.com/rar/${UNRAR_FILENAME}) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/unrar) if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") - message(STATUS "Unrar buildsystem doesn't support static building. Building dynamic instead.") + message(STATUS "Unrar buildsystem doesn't support static building. Building dynamic instead.") set(VCPKG_LIBRARY_LINKAGE dynamic) endif() diff --git a/ports/yoga/CONTROL b/ports/yoga/CONTROL index c8ff36c24..c4bbe1a69 100644 --- a/ports/yoga/CONTROL +++ b/ports/yoga/CONTROL @@ -1,3 +1,3 @@ Source: yoga -Version: 1.7.0 +Version: 1.7.0-1 Description: Yoga is a cross-platform layout engine which implements Flexbox diff --git a/ports/yoga/portfile.cmake b/ports/yoga/portfile.cmake index d61017d63..a261d5106 100644 --- a/ports/yoga/portfile.cmake +++ b/ports/yoga/portfile.cmake @@ -12,7 +12,7 @@ include(vcpkg_common_functions) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - message(WARNING "Dynamic not supported building static") + message(WARNING "Dynamic not supported, building static") set(VCPKG_LIBRARY_LINKAGE static) elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) message(FATAL_ERROR "Error: UWP builds not supported yet.") From ba7b8e6d7336fd4529cfe1de50b224a98d6ff496 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Thu, 29 Mar 2018 15:29:16 -0700 Subject: [PATCH 49/51] Add message for appleclang versions that don't support std::filesystem --- toolsrc/CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/toolsrc/CMakeLists.txt b/toolsrc/CMakeLists.txt index da0f41631..2a1304526 100644 --- a/toolsrc/CMakeLists.txt +++ b/toolsrc/CMakeLists.txt @@ -3,6 +3,12 @@ project(vcpkg C CXX) if(CMAKE_COMPILER_IS_GNUXX OR CMAKE_CXX_COMPILER_ID MATCHES "GNU") set(GCC 1) +elseif(CMAKE_CXX_COMPILER_ID MATCHES "AppleClang") + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS_EQUAL 9.0.0) + message(FATAL_ERROR "Apple clang versions 9 and below do not have support for the C++ Filesystem TS. Please install gcc6 or newer from homebrew (brew install gcc6).") + else() + set(CLANG 1) + endif() elseif(CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang") set(CLANG 1) elseif(MSVC) From ca58367c9ae70739eb55fa46ed2b339e3aaf50df Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Thu, 29 Mar 2018 18:34:38 -0700 Subject: [PATCH 50/51] [cryptopp] Fix UWP builds --- ports/cryptopp/CONTROL | 2 +- ports/cryptopp/cmake.patch | 15 +++++++++++++++ ports/cryptopp/patch.patch | 12 ++++++++++++ ports/cryptopp/portfile.cmake | 7 +++++++ 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 ports/cryptopp/cmake.patch create mode 100644 ports/cryptopp/patch.patch diff --git a/ports/cryptopp/CONTROL b/ports/cryptopp/CONTROL index ef8e6fd75..6fea020bd 100644 --- a/ports/cryptopp/CONTROL +++ b/ports/cryptopp/CONTROL @@ -1,3 +1,3 @@ Source: cryptopp -Version: 6.1.0-1 +Version: 6.1.0-2 Description: Crypto++ is a free C++ class library of cryptographic schemes. diff --git a/ports/cryptopp/cmake.patch b/ports/cryptopp/cmake.patch new file mode 100644 index 000000000..fbe725eb9 --- /dev/null +++ b/ports/cryptopp/cmake.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5b6e1e6..a0adcf6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -329,6 +329,10 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FI\"winapifamily.h\"" ) + endif () + ++if(WINDOWS_STORE) ++ add_definitions(-DCRYPTOPP_DISABLE_NACL=1) ++endif() ++ + # Enable PIC for all target machines except 32-bit i386 due to register pressures. + if (NOT CRYPTOPP_I386) + SET(CMAKE_POSITION_INDEPENDENT_CODE 1) diff --git a/ports/cryptopp/patch.patch b/ports/cryptopp/patch.patch new file mode 100644 index 000000000..5c49d2757 --- /dev/null +++ b/ports/cryptopp/patch.patch @@ -0,0 +1,12 @@ +diff --git a/config.h b/config.h +index b96b7aa..3f004ac 100644 +--- a/config.h ++++ b/config.h +@@ -795,6 +795,7 @@ NAMESPACE_END + #endif + + #ifdef CRYPTOPP_WIN32_AVAILABLE ++#include + # if !defined(WINAPI_FAMILY) + # define THREAD_TIMER_AVAILABLE + # elif defined(WINAPI_FAMILY) diff --git a/ports/cryptopp/portfile.cmake b/ports/cryptopp/portfile.cmake index b0b59d29c..6b4b844c4 100644 --- a/ports/cryptopp/portfile.cmake +++ b/ports/cryptopp/portfile.cmake @@ -23,6 +23,13 @@ vcpkg_from_github( file(COPY ${CMAKE_SOURCE_PATH}/cryptopp-config.cmake DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_SOURCE_PATH}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) +vcpkg_apply_patches( + SOURCE_PATH "${SOURCE_PATH}" + PATCHES + "${CMAKE_CURRENT_LIST_DIR}/patch.patch" + "${CMAKE_CURRENT_LIST_DIR}/cmake.patch" +) + # Dynamic linking should be avoided for Crypto++ to reduce the attack surface, # so generate a static lib for both dynamic and static vcpkg targets. # See also: From f9d4692749ad68340a07453add49a8ef029fa155 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Thu, 29 Mar 2018 21:14:06 -0700 Subject: [PATCH 51/51] [vcpkg.cmake] Remove Windows SDK detection. Let cmake detect it --- scripts/buildsystems/vcpkg.cmake | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake index 10e3c3f13..0c32b22fb 100644 --- a/scripts/buildsystems/vcpkg.cmake +++ b/scripts/buildsystems/vcpkg.cmake @@ -44,7 +44,7 @@ else() elseif(_VCPKG_CL MATCHES "arm/cl.exe$") set(_VCPKG_TARGET_TRIPLET_ARCH arm) elseif(_VCPKG_CL MATCHES "arm64/cl.exe$") - set(_VCPKG_TARGET_TRIPLET_ARCH arm64) + set(_VCPKG_TARGET_TRIPLET_ARCH arm64) elseif(_VCPKG_CL MATCHES "bin/cl.exe$" OR _VCPKG_CL MATCHES "x86/cl.exe$") set(_VCPKG_TARGET_TRIPLET_ARCH x86) elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64") @@ -110,16 +110,6 @@ list(APPEND CMAKE_LIBRARY_PATH ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/manual-link ) -if (NOT DEFINED CMAKE_SYSTEM_VERSION AND _VCPKG_TARGET_TRIPLET_PLAT MATCHES "windows|uwp") - include(${_VCPKG_ROOT_DIR}/scripts/cmake/vcpkg_get_windows_sdk.cmake) - # This is used as an implicit parameter for vcpkg_get_windows_sdk - set(VCPKG_ROOT_DIR ${_VCPKG_ROOT_DIR}) - vcpkg_get_windows_sdk(WINDOWS_SDK_VERSION) - unset(VCPKG_ROOT_DIR) - set(CMAKE_SYSTEM_VERSION ${WINDOWS_SDK_VERSION} CACHE STRING "Windows SDK version") - message(STATUS "Found Windows SDK ${WINDOWS_SDK_VERSION}") -endif() - file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles) set(CMAKE_SYSTEM_IGNORE_PATH "${_programfiles}/OpenSSL"