diff --git a/ports/ace/portfile.cmake b/ports/ace/portfile.cmake index 81c9534d0..e45fbfe94 100644 --- a/ports/ace/portfile.cmake +++ b/ports/ace/portfile.cmake @@ -1,3 +1,21 @@ +include(vcpkg_common_functions) + +# Don't change to vcpkg_from_github! This points to a release and not an archive +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-6_5_6/ACE-src-6.5.6.zip" + FILENAME ACE-src-6.5.6.zip + SHA512 4ee42aafc86af159ab20dbb14c7c2a49bed733645f5cc3afa8cef3e9688ff929002f3420eb33e859afe10a534afc276340faa21d029fa56bd07bd9aed3403ab4 +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) + +set(ACE_ROOT ${SOURCE_PATH}) +set(ENV{ACE_ROOT} ${ACE_ROOT}) +set(ACE_SOURCE_PATH ${ACE_ROOT}/ace) + if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") message(FATAL_ERROR "${PORT} does not currently support UWP") endif() @@ -23,16 +41,6 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL static) endif() set(MPC_STATIC_FLAG -static) endif() -include(vcpkg_common_functions) -set(ACE_ROOT ${CURRENT_BUILDTREES_DIR}/src/ACE_wrappers) -set(ENV{ACE_ROOT} ${ACE_ROOT}) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ACE_wrappers/ace) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-6_5_6/ACE-src-6.5.6.zip" - FILENAME ACE-src-6.5.6.zip - SHA512 4ee42aafc86af159ab20dbb14c7c2a49bed733645f5cc3afa8cef3e9688ff929002f3420eb33e859afe10a534afc276340faa21d029fa56bd07bd9aed3403ab4 -) -vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_find_acquire_program(PERL) get_filename_component(PERL_PATH ${PERL} DIRECTORY) @@ -58,7 +66,7 @@ if(NOT VCPKG_CMAKE_SYSTEM_NAME) else() set(SOLUTION_TYPE vc14) endif() - file(WRITE ${SOURCE_PATH}/config.h "#include \"ace/config-windows.h\"") + file(WRITE ${ACE_SOURCE_PATH}/config.h "#include \"ace/config-windows.h\"") endif() if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") @@ -67,8 +75,8 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") set(LIB_DEBUG_SUFFIX .a) set(LIB_PREFIX lib) set(SOLUTION_TYPE gnuace) - file(WRITE ${SOURCE_PATH}/config.h "#include \"ace/config-linux.h\"") - file(WRITE ${ACE_ROOT}/include/makeinclude/platform_macros.GNU "include $(ACE_ROOT)include/makeinclude/platform_linux.GNU") + file(WRITE ${ACE_SOURCE_PATH}/config.h "#include \"ace/config-linux.h\"") + file(WRITE ${ACE_ROOT}/include/makeinclude/platform_macros.GNU "include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU") endif() # Invoke mwc.pl to generate the necessary solution and project files @@ -80,7 +88,7 @@ vcpkg_execute_required_process( if(NOT VCPKG_CMAKE_SYSTEM_NAME) vcpkg_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/ace.sln + PROJECT_PATH ${ACE_SOURCE_PATH}/ace.sln PLATFORM ${MSBUILD_PLATFORM} USE_VCPKG_INTEGRATION ) @@ -101,34 +109,34 @@ endif() # ACE itself does not define an install target, so it is not clear which # headers are public and which not. For the moment we install everything # that is in the source path and ends in .h, .inl -function(install_ace_headers_subdirectory SOURCE_PATH RELATIVE_PATH) - file(GLOB HEADER_FILES ${SOURCE_PATH}/${RELATIVE_PATH}/*.h ${SOURCE_PATH}/${RELATIVE_PATH}/*.inl) +function(install_ace_headers_subdirectory ORIGINAL_PATH RELATIVE_PATH) + file(GLOB HEADER_FILES ${ORIGINAL_PATH}/${RELATIVE_PATH}/*.h ${ORIGINAL_PATH}/${RELATIVE_PATH}/*.inl) file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/ace/${RELATIVE_PATH}) endfunction() # We manually install header found in the ace directory because in that case # we are supposed to install also *cpp files, see ACE_wrappers\debian\libace-dev.install file -file(GLOB HEADER_FILES ${SOURCE_PATH}/*.h ${SOURCE_PATH}/*.inl ${SOURCE_PATH}/*.cpp) +file(GLOB HEADER_FILES ${ACE_SOURCE_PATH}/*.h ${ACE_SOURCE_PATH}/*.inl ${ACE_SOURCE_PATH}/*.cpp) file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/ace/) # Install headers in subdirectory -install_ace_headers_subdirectory(${SOURCE_PATH} "Compression") -install_ace_headers_subdirectory(${SOURCE_PATH} "Compression/rle") -install_ace_headers_subdirectory(${SOURCE_PATH} "ETCL") -install_ace_headers_subdirectory(${SOURCE_PATH} "QoS") -install_ace_headers_subdirectory(${SOURCE_PATH} "Monitor_Control") -install_ace_headers_subdirectory(${SOURCE_PATH} "os_include") -install_ace_headers_subdirectory(${SOURCE_PATH} "os_include/arpa") -install_ace_headers_subdirectory(${SOURCE_PATH} "os_include/net") -install_ace_headers_subdirectory(${SOURCE_PATH} "os_include/netinet") -install_ace_headers_subdirectory(${SOURCE_PATH} "os_include/sys") +install_ace_headers_subdirectory(${ACE_SOURCE_PATH} "Compression") +install_ace_headers_subdirectory(${ACE_SOURCE_PATH} "Compression/rle") +install_ace_headers_subdirectory(${ACE_SOURCE_PATH} "ETCL") +install_ace_headers_subdirectory(${ACE_SOURCE_PATH} "QoS") +install_ace_headers_subdirectory(${ACE_SOURCE_PATH} "Monitor_Control") +install_ace_headers_subdirectory(${ACE_SOURCE_PATH} "os_include") +install_ace_headers_subdirectory(${ACE_SOURCE_PATH} "os_include/arpa") +install_ace_headers_subdirectory(${ACE_SOURCE_PATH} "os_include/net") +install_ace_headers_subdirectory(${ACE_SOURCE_PATH} "os_include/netinet") +install_ace_headers_subdirectory(${ACE_SOURCE_PATH} "os_include/sys") if("ssl" IN_LIST FEATURES) - install_ace_headers_subdirectory(${SOURCE_PATH} "SSL") + install_ace_headers_subdirectory(${ACE_SOURCE_PATH} "SSL") endif() # Install the libraries -function(install_ace_library SOURCE_PATH ACE_LIBRARY) - set(LIB_PATH ${SOURCE_PATH}/lib/) +function(install_ace_library ORIGINAL_PATH ACE_LIBRARY) + set(LIB_PATH ${ORIGINAL_PATH}/lib/) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) # Install the DLL files file(INSTALL diff --git a/ports/activemq-cpp/CONTROL b/ports/activemq-cpp/CONTROL index ee3c4300c..5a7ade4e9 100644 --- a/ports/activemq-cpp/CONTROL +++ b/ports/activemq-cpp/CONTROL @@ -1,4 +1,4 @@ Source: activemq-cpp -Version: 3.9.5 +Version: 3.9.5-1 Build-Depends: apr Description: Apache ActiveMQ is the most popular and powerful open source messaging and Integration Patterns server. diff --git a/ports/activemq-cpp/portfile.cmake b/ports/activemq-cpp/portfile.cmake index b165efbcd..5353e5dd4 100644 --- a/ports/activemq-cpp/portfile.cmake +++ b/ports/activemq-cpp/portfile.cmake @@ -5,12 +5,11 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") endif() set(VERSION 3.9.5) - -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/activemq-cpp-library-${VERSION}) + vcpkg_download_distfile(ARCHIVE URLS "https://www.apache.org/dist/activemq/activemq-cpp/${VERSION}/activemq-cpp-library-${VERSION}-src.tar.bz2" FILENAME "activemq-cpp-library-${VERSION}-src.tar.bz2" - SHA512 83692d3dfd5ecf557fc88d204a03bf169ce6180bcff27be41b09409b8f7793368ffbeed42d98ef6374c6b6b477d9beb8a4a9ac584df9e56725ec59ceceaa6ae2 + SHA512 83692d3dfd5ecf557fc88d204a03bf169ce6180bcff27be41b09409b8f7793368ffbeed42d98ef6374c6b6b477d9beb8a4a9ac584df9e56725ec59ceceaa6ae2 ) vcpkg_extract_source_archive_ex( @@ -42,12 +41,12 @@ vcpkg_build_msbuild( ) vcpkg_copy_pdbs() - + # Handle copyright file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/activemq-cpp) file(RENAME ${CURRENT_PACKAGES_DIR}/share/activemq-cpp/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/activemq-cpp/copyright) - + file( COPY ${SOURCE_PATH}/vs2010-build/${BUILD_ARCH}/${RELEASE_CONF}/activemq-cpp.lib diff --git a/ports/alac-decoder/CONTROL b/ports/alac-decoder/CONTROL index dcbf3922e..10dfb6419 100644 --- a/ports/alac-decoder/CONTROL +++ b/ports/alac-decoder/CONTROL @@ -1,4 +1,4 @@ -Source: alac-decoder -Version: 0.2-1 -Homepage: https://distfiles.macports.org/alac_decoder -Description: ALAC C implementation of a decoder, written from reverse engineering the file format +Source: alac-decoder +Version: 0.2-3 +Homepage: https://distfiles.macports.org/alac_decoder +Description: ALAC C implementation of a decoder, written from reverse engineering the file format diff --git a/ports/alac-decoder/no-pragma-warning.patch b/ports/alac-decoder/no-pragma-warning.patch index 97e2960c8..1dc7c0687 100644 --- a/ports/alac-decoder/no-pragma-warning.patch +++ b/ports/alac-decoder/no-pragma-warning.patch @@ -1,14 +1,14 @@ -diff --git a/alac.c b/alac.c -index b829e29..8e8805f 100644 ---- a/alac.c -+++ b/alac.c -@@ -284,7 +284,9 @@ static int count_leading_zeros(int input) - return output; - } - #else -+#if !defined(_MSC_VER) - #warning using generic count leading zeroes. You may wish to write one for your CPU / compiler -+#endif - static int count_leading_zeros(int input) - { - int output = 0; +diff --git a/alac.c b/alac.c +index b829e29..8e8805f 100644 +--- a/alac.c ++++ b/alac.c +@@ -284,7 +284,9 @@ static int count_leading_zeros(int input) + return output; + } + #else ++#if !defined(_MSC_VER) + #warning using generic count leading zeroes. You may wish to write one for your CPU / compiler ++#endif + static int count_leading_zeros(int input) + { + int output = 0; diff --git a/ports/alac-decoder/portfile.cmake b/ports/alac-decoder/portfile.cmake index ee4a109d9..058179b86 100644 --- a/ports/alac-decoder/portfile.cmake +++ b/ports/alac-decoder/portfile.cmake @@ -2,33 +2,33 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/alac_decoder) vcpkg_download_distfile(ARCHIVE URLS "https://distfiles.macports.org/alac_decoder/alac_decoder-0.2.0.tgz" FILENAME "alac_decoder-0.2.0.tgz" SHA512 4b37d4fe37681bfccaa4a27fbaf11eb2a1fba5f14e77d219a6d9814ff44d1168534d05eb19443dd2fd11e6fcdf4da3a22e3f3c79314cb7a6767c152351b13e29 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + remove_stdint_headers.patch + no-pragma-warning.patch +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/decomp.c DESTINATION ${SOURCE_PATH}) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/remove_stdint_headers.patch - ${CMAKE_CURRENT_LIST_DIR}/no-pragma-warning.patch -) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON + OPTIONS_DEBUG + -DDISABLE_INSTALL_HEADERS=ON + -DDISABLE_INSTALL_TOOLS=ON ) vcpkg_install_cmake() vcpkg_copy_pdbs() -vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/alac-decoder) +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) -file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/alac-decoder RENAME copyright) +file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/angelscript/CONTROL b/ports/angelscript/CONTROL index 103dda42e..9a8ab2440 100644 --- a/ports/angelscript/CONTROL +++ b/ports/angelscript/CONTROL @@ -1,6 +1,6 @@ -Source: angelscript -Version: 2.33.1-1 -Description: The AngelCode Scripting Library, or AngelScript as it is also known, is an extremely flexible cross-platform scripting library designed to allow applications to extend their functionality through external scripts. It has been designed from the beginning to be an easy to use component, both for the application programmer and the script writer. - -Feature: addons -Description: Installs all addons for use in compiling scripts addons +Source: angelscript +Version: 2.33.1-2 +Description: The AngelCode Scripting Library, or AngelScript as it is also known, is an extremely flexible cross-platform scripting library designed to allow applications to extend their functionality through external scripts. It has been designed from the beginning to be an easy to use component, both for the application programmer and the script writer. + +Feature: addons +Description: Installs all addons for use in compiling scripts addons diff --git a/ports/angelscript/LICENSE b/ports/angelscript/LICENSE index 27105b90d..ea549c6e6 100644 --- a/ports/angelscript/LICENSE +++ b/ports/angelscript/LICENSE @@ -1,13 +1,13 @@ -AngelCode Scripting Library - -Copyright © 2003-2018 Andreas Jönsson - -This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: - - The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. - - Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. - - This notice may not be removed or altered from any source distribution. +AngelCode Scripting Library + +Copyright © 2003-2018 Andreas Jönsson + +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + + The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. + + Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. + + This notice may not be removed or altered from any source distribution. diff --git a/ports/angelscript/mark-threads-private.patch b/ports/angelscript/mark-threads-private.patch index 567c19aa1..aaf28b437 100644 --- a/ports/angelscript/mark-threads-private.patch +++ b/ports/angelscript/mark-threads-private.patch @@ -1,13 +1,13 @@ -diff --git a/angelscript/projects/cmake/CMakeLists.txt b/angelscript/projects/cmake/CMakeLists.txt -index 7c800c5..982ad8b 100644 ---- a/angelscript/projects/cmake/CMakeLists.txt -+++ b/angelscript/projects/cmake/CMakeLists.txt -@@ -145,7 +145,7 @@ endif() - - # Don't override the default library output path to avoid conflicts when building for multiple target platforms - #set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../../lib) --target_link_libraries(${ANGELSCRIPT_LIBRARY_NAME} Threads::Threads) -+target_link_libraries(${ANGELSCRIPT_LIBRARY_NAME} PRIVATE Threads::Threads) - - set_target_properties(${ANGELSCRIPT_LIBRARY_NAME} PROPERTIES VERSION ${PROJECT_VERSION}) - +diff --git a/angelscript/projects/cmake/CMakeLists.txt b/angelscript/projects/cmake/CMakeLists.txt +index 7c800c5..982ad8b 100644 +--- a/angelscript/projects/cmake/CMakeLists.txt ++++ b/angelscript/projects/cmake/CMakeLists.txt +@@ -145,7 +145,7 @@ endif() + + # Don't override the default library output path to avoid conflicts when building for multiple target platforms + #set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../../lib) +-target_link_libraries(${ANGELSCRIPT_LIBRARY_NAME} Threads::Threads) ++target_link_libraries(${ANGELSCRIPT_LIBRARY_NAME} PRIVATE Threads::Threads) + + set_target_properties(${ANGELSCRIPT_LIBRARY_NAME} PROPERTIES VERSION ${PROJECT_VERSION}) + diff --git a/ports/angelscript/portfile.cmake b/ports/angelscript/portfile.cmake index 3aea242b5..416b3b408 100644 --- a/ports/angelscript/portfile.cmake +++ b/ports/angelscript/portfile.cmake @@ -1,38 +1,31 @@ -include(vcpkg_common_functions) - -vcpkg_download_distfile(ARCHIVE - URLS "https://www.angelcode.com/angelscript/sdk/files/angelscript_2.33.0.zip" - FILENAME "angelscript_2.33.0.zip" - SHA512 eaf972ecf965fe4f72e55755f5e796499018e918f93cfd835b1ca20f9338e299e8dbd707240341eef81ae920f07d2280646151f515f5990a62550689445c86f0 -) - -vcpkg_extract_source_archive_ex( - OUT_SOURCE_PATH SOURCE_PATH - ARCHIVE ${ARCHIVE} - PATCHES - mark-threads-private.patch -) - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH}/angelscript/projects/cmake - PREFER_NINJA # Disable this option if project cannot be built with Ninja - # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2 - # OPTIONS_RELEASE -DOPTIMIZE=1 - # OPTIONS_DEBUG -DDEBUGGABLE=1 -) - -vcpkg_install_cmake() - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/Angelscript) - -# Handle copyright -file(INSTALL ${CURRENT_PORT_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/angelscript RENAME copyright) - -# Copy the addon files -if("addons" IN_LIST FEATURES) - file(INSTALL ${SOURCE_PATH}/add_on/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/angelscript FILES_MATCHING PATTERN "*.h" PATTERN "*.cpp") -endif() - -# Post-build test for cmake libraries -# vcpkg_test_cmake(PACKAGE_NAME angelscript) +include(vcpkg_common_functions) + +vcpkg_download_distfile(ARCHIVE + URLS "https://www.angelcode.com/angelscript/sdk/files/angelscript_2.33.0.zip" + FILENAME "angelscript_2.33.0.zip" + SHA512 eaf972ecf965fe4f72e55755f5e796499018e918f93cfd835b1ca20f9338e299e8dbd707240341eef81ae920f07d2280646151f515f5990a62550689445c86f0 +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + mark-threads-private.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH}/angelscript/projects/cmake + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/Angelscript) + +# Copy the addon files +if("addons" IN_LIST FEATURES) + file(INSTALL ${SOURCE_PATH}/add_on/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/angelscript FILES_MATCHING PATTERN "*.h" PATTERN "*.cpp") +endif() + +file(INSTALL ${CURRENT_PORT_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/antlr4/portfile.cmake b/ports/antlr4/portfile.cmake old mode 100755 new mode 100644 diff --git a/ports/anyrpc/CONTROL b/ports/anyrpc/CONTROL index a6ddb6890..2e37987c3 100644 --- a/ports/anyrpc/CONTROL +++ b/ports/anyrpc/CONTROL @@ -1,4 +1,4 @@ Source: anyrpc -Version: 2017-12-01 +Version: 2017-12-01-1 Homepage: https://github.com/sgieseking/anyrpc Description: A multiprotocol remote procedure call system for C++. diff --git a/ports/apr-util/CONTROL b/ports/apr-util/CONTROL index 8dcd5af03..206837328 100644 --- a/ports/apr-util/CONTROL +++ b/ports/apr-util/CONTROL @@ -1,5 +1,5 @@ Source: apr-util -Version: 1.6.0-3 +Version: 1.6.0-5 Homepage: https://apr.apache.org/ Description: Apache Portable Runtime (APR) project mission is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementation Build-Depends: expat, apr, openssl diff --git a/ports/apr-util/apr.patch b/ports/apr-util/apr.patch index 5a61cb9f9..581907fff 100644 --- a/ports/apr-util/apr.patch +++ b/ports/apr-util/apr.patch @@ -3,11 +3,11 @@ index 69e45541..19b86129 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,7 +35,7 @@ IF(NOT EXISTS "${APR_INCLUDE_DIR}/apr.h") - MESSAGE(FATAL_ERROR "APR include directory ${APR_INCLUDE_DIR} is not correct.") - ENDIF() - FOREACH(onelib ${APR_LIBRARIES}) -- IF(NOT EXISTS ${onelib}) -+ IF(${onelib} MATCHES "NOTFOUND") - MESSAGE(FATAL_ERROR "APR library ${onelib} was not found.") - ENDIF() - ENDFOREACH() + MESSAGE(FATAL_ERROR "APR include directory ${APR_INCLUDE_DIR} is not correct.") + ENDIF() + FOREACH(onelib ${APR_LIBRARIES}) +- IF(NOT EXISTS ${onelib}) ++ IF(${onelib} MATCHES "NOTFOUND") + MESSAGE(FATAL_ERROR "APR library ${onelib} was not found.") + ENDIF() + ENDFOREACH() diff --git a/ports/apr-util/portfile.cmake b/ports/apr-util/portfile.cmake index 0b1c28351..94a5ee053 100644 --- a/ports/apr-util/portfile.cmake +++ b/ports/apr-util/portfile.cmake @@ -1,37 +1,39 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/apr-util-1.6.0) + vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/apr/apr-util-1.6.0-win32-src.zip" FILENAME "apr-util-1.6.0-win32-src.zip" SHA512 98679ea181d3132020713481703bbefa0c174e0b2a0df65dfdd176e9771935e1f9455c4242bac19dded9414abe2b9d293fcc674ab16f96d8987bcf26346fce3a ) -vcpkg_extract_source_archive(${ARCHIVE}) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES use-vcpkg-expat.patch apr.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS -DAPU_DECLARE_EXPORT=ON - OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON - ) + set(APU_DECLARE_EXPORT ON) + set(APU_DECLARE_STATIC OFF) else() - vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS -DAPU_DECLARE_STATIC=ON - OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON - ) + set(APU_DECLARE_EXPORT OFF) + set(APU_DECLARE_STATIC ON) endif() +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DAPU_DECLARE_EXPORT=${APU_DECLARE_EXPORT} + -DAPU_DECLARE_STATIC=${APU_DECLARE_STATIC} + OPTIONS_DEBUG + -DDISABLE_INSTALL_HEADERS=ON +) + vcpkg_install_cmake() +vcpkg_copy_pdbs() file(READ ${CURRENT_PACKAGES_DIR}/include/apu.h APU_H) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) @@ -41,7 +43,4 @@ else() endif() file(WRITE ${CURRENT_PACKAGES_DIR}/include/apu.h "${APU_H}") - -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/apr-util RENAME copyright) - -vcpkg_copy_pdbs() +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/apr/CONTROL b/ports/apr/CONTROL index 41c7c453a..746583603 100644 --- a/ports/apr/CONTROL +++ b/ports/apr/CONTROL @@ -1,5 +1,5 @@ Source: apr -Version: 1.6.5-2 +Version: 1.6.5-3 Homepage: https://apr.apache.org/ Description: The Apache Portable Runtime (APR) is a C library that forms a system portability layer that covers many operating systems. diff --git a/ports/apr/portfile.cmake b/ports/apr/portfile.cmake index 6ef062bf3..a1572077b 100644 --- a/ports/apr/portfile.cmake +++ b/ports/apr/portfile.cmake @@ -6,13 +6,16 @@ include(vcpkg_common_functions) set(VERSION 1.6.5) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/apr-${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://www.apache.org/dist/apr/apr-${VERSION}.tar.bz2" FILENAME "apr-${VERSION}.tar.bz2" SHA512 d3511e320457b5531f565813e626e7941f6b82864852db6aa03dd298a65dbccdcdc4bd580f5314f8be45d268388edab25efe88cf8340b7d2897a4dbe9d0a41fc ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) if("private-headers" IN_LIST FEATURES) set(INSTALL_PRIVATE_H ON) diff --git a/ports/argtable2/CONTROL b/ports/argtable2/CONTROL index df44602ee..69ddd4bc3 100644 --- a/ports/argtable2/CONTROL +++ b/ports/argtable2/CONTROL @@ -1,3 +1,3 @@ -Source: argtable2 -Version: 2.13-2 -Description: Argtable is an ANSI C library for parsing GNU style command line options with a minimum of fuss. +Source: argtable2 +Version: 2.13-4 +Description: Argtable is an ANSI C library for parsing GNU style command line options with a minimum of fuss. diff --git a/ports/argtable2/fix-install-dirs.patch b/ports/argtable2/fix-install-dirs.patch index cc1b92543..5a9be4d72 100644 --- a/ports/argtable2/fix-install-dirs.patch +++ b/ports/argtable2/fix-install-dirs.patch @@ -1,24 +1,24 @@ -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 3427487..a9b8be0 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -1,5 +1,4 @@ --# for now, install in subdirectory of source directory by default --SET( CMAKE_INSTALL_PREFIX .. ) -+include(GNUInstallDirs) - - IF( WIN32 ) - ADD_LIBRARY( argtable2 arg_dbl.c arg_end.c arg_file.c arg_int.c arg_lit.c arg_rem.c arg_str.c argtable2.c argtable2.h getopt.c getopt.h getopt1.c ) -@@ -7,5 +6,9 @@ ELSE( WIN32 ) - ADD_LIBRARY( argtable2 arg_date.c arg_dbl.c arg_end.c arg_file.c arg_int.c arg_lit.c arg_rem.c arg_rex.c arg_str.c argtable2.c argtable2.h getopt.c getopt.h getopt1.c ) - ENDIF( WIN32 ) - --INSTALL( TARGETS argtable2 ARCHIVE DESTINATION lib) --SET_TARGET_PROPERTIES( argtable2 PROPERTIES DEBUG_POSTFIX d ) -\ No newline at end of file -+INSTALL(TARGETS argtable2 -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -+) -+INSTALL(FILES argtable2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 3427487..a9b8be0 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -1,5 +1,4 @@ +-# for now, install in subdirectory of source directory by default +-SET( CMAKE_INSTALL_PREFIX .. ) ++include(GNUInstallDirs) + + IF( WIN32 ) + ADD_LIBRARY( argtable2 arg_dbl.c arg_end.c arg_file.c arg_int.c arg_lit.c arg_rem.c arg_str.c argtable2.c argtable2.h getopt.c getopt.h getopt1.c ) +@@ -7,5 +6,9 @@ ELSE( WIN32 ) + ADD_LIBRARY( argtable2 arg_date.c arg_dbl.c arg_end.c arg_file.c arg_int.c arg_lit.c arg_rem.c arg_rex.c arg_str.c argtable2.c argtable2.h getopt.c getopt.h getopt1.c ) + ENDIF( WIN32 ) + +-INSTALL( TARGETS argtable2 ARCHIVE DESTINATION lib) +-SET_TARGET_PROPERTIES( argtable2 PROPERTIES DEBUG_POSTFIX d ) +\ No newline at end of file ++INSTALL(TARGETS argtable2 ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++) ++INSTALL(FILES argtable2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) diff --git a/ports/argtable2/portfile.cmake b/ports/argtable2/portfile.cmake index 4cbec1278..c98dfcfb5 100644 --- a/ports/argtable2/portfile.cmake +++ b/ports/argtable2/portfile.cmake @@ -1,33 +1,30 @@ -include(vcpkg_common_functions) - -vcpkg_check_linkage(ONLY_STATIC_LIBRARY) - -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/argtable2-13) -vcpkg_download_distfile(ARCHIVE - URLS "http://prdownloads.sourceforge.net/argtable/argtable2-13.tar.gz" - FILENAME "argtable-2.13.zip" - SHA512 3d8303f3ba529e3241d918c0127a16402ece951efb964d14a06a3a7d29a252812ad3c44e96da28798871e9923e73a2cfe7ebc84139c1397817d632cae25c4585 -) - -vcpkg_extract_source_archive(${ARCHIVE}) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-install-dirs.patch" -) - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS - -DCMAKE_DEBUG_POSTFIX=d -) - -vcpkg_install_cmake() -vcpkg_copy_pdbs() - -# Remove duplicate include installs -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - -# Handle copyright -file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/argtable2 RENAME copyright) +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_download_distfile(ARCHIVE + URLS "http://prdownloads.sourceforge.net/argtable/argtable2-13.tar.gz" + FILENAME "argtable-2.13.zip" + SHA512 3d8303f3ba529e3241d918c0127a16402ece951efb964d14a06a3a7d29a252812ad3c44e96da28798871e9923e73a2cfe7ebc84139c1397817d632cae25c4585 +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + fix-install-dirs.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DCMAKE_DEBUG_POSTFIX=d +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/atk/CONTROL b/ports/atk/CONTROL index fe09017e7..0fa67bfc5 100644 --- a/ports/atk/CONTROL +++ b/ports/atk/CONTROL @@ -1,5 +1,5 @@ -Source: atk -Version: 2.24.0-4 -Homepage: https://developer.gnome.org/atk/ -Description: GNOME Accessibility Toolkit -Build-Depends: glib, gettext +Source: atk +Version: 2.24.0-5 +Homepage: https://developer.gnome.org/atk/ +Description: GNOME Accessibility Toolkit +Build-Depends: glib, gettext diff --git a/ports/atk/fix-encoding.patch b/ports/atk/fix-encoding.patch deleted file mode 100644 index c92171a48..000000000 --- a/ports/atk/fix-encoding.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/atk/atkversion.h b/atk/atkversion.h -index 2634b0a..7bea2f3 100644 ---- a/atk/atkversion.h -+++ b/atk/atkversion.h -@@ -3,7 +3,7 @@ - * Copyright (C) 2012 Igalia, S.L. - * Copyright (C) 2014 Chun-wei Fan - * -- * Author: Alejandro Pi?eiro Iglesias -+ * Author: Alejandro Pineiro Iglesias - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public diff --git a/ports/atk/portfile.cmake b/ports/atk/portfile.cmake index 60ace410d..34f639141 100644 --- a/ports/atk/portfile.cmake +++ b/ports/atk/portfile.cmake @@ -3,17 +3,17 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY ONLY_DYNAMIC_CRT) set(ATK_VERSION 2.24.0) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/atk-${ATK_VERSION}) + vcpkg_download_distfile(ARCHIVE URLS "http://ftp.gnome.org/pub/GNOME/sources/atk/2.24/atk-${ATK_VERSION}.tar.xz" FILENAME "atk-${ATK_VERSION}.tar.xz" - SHA512 3ae0a4d5f28d5619d465135c685161f690732053bcb70a47669c951fbf389b5d2ccc5c7c73d4ee8c5a3b2df14e2f5b082e812a215f10a79b27b412d077f5e962) + SHA512 3ae0a4d5f28d5619d465135c685161f690732053bcb70a47669c951fbf389b5d2ccc5c7c73d4ee8c5a3b2df14e2f5b082e812a215f10a79b27b412d077f5e962 +) vcpkg_extract_source_archive_ex( - ARCHIVE ${ARCHIVE} OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} PATCHES - fix-encoding.patch fix-linux-config.patch ) @@ -32,5 +32,4 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_copy_pdbs() -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/atk) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/atk/COPYING ${CURRENT_PACKAGES_DIR}/share/atk/copyright) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/atkmm/CONTROL b/ports/atkmm/CONTROL index 3900e1698..caf3abb43 100644 --- a/ports/atkmm/CONTROL +++ b/ports/atkmm/CONTROL @@ -1,5 +1,5 @@ Source: atkmm -Version: 2.24.2-1 +Version: 2.24.2-2 Homepage: https://www.gtkmm.org Description: atkmm is the official C++ interface for the ATK accessibility toolkit library. It may be used, for instance, by user interfaces implemented with gtkmm. Build-Depends: glib, gettext, atk, glibmm diff --git a/ports/atkmm/README b/ports/atkmm/README deleted file mode 100644 index e3ac5c916..000000000 --- a/ports/atkmm/README +++ /dev/null @@ -1,2 +0,0 @@ -atkmm is the C++ binding for the ATK library. -This module is part of the GNOME C++ bindings effort . diff --git a/ports/atkmm/portfile.cmake b/ports/atkmm/portfile.cmake index 4bc4fd299..f8e9df294 100644 --- a/ports/atkmm/portfile.cmake +++ b/ports/atkmm/portfile.cmake @@ -2,17 +2,18 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/atkmm-2.24.2) vcpkg_download_distfile(ARCHIVE URLS "http://ftp.gnome.org/pub/GNOME/sources/atkmm/2.24/atkmm-2.24.2.tar.xz" FILENAME "atkmm-2.24.2.tar.xz" SHA512 427714cdf3b10e3f9bc36df09c4b05608d295f5895fb1e079b9bd84afdf7bf1cfdec6794ced7f1e35bd430b76f87792df4ee63c515071a2ea6e3e51e672cdbe2 ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix_properties.patch ${CMAKE_CURRENT_LIST_DIR}/fix_charset.patch +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + fix_properties.patch + fix_charset.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/msvc_recommended_pragmas.h DESTINATION ${SOURCE_PATH}/MSVC_Net2013) @@ -62,6 +63,4 @@ file( vcpkg_copy_pdbs() -# Handle copyright and readme -file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/atkmm RENAME copyright) -file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/atkmm RENAME readme.txt) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/aubio/CONTROL b/ports/aubio/CONTROL index 906fefe45..2c5a18e48 100644 --- a/ports/aubio/CONTROL +++ b/ports/aubio/CONTROL @@ -1,5 +1,5 @@ Source: aubio -Version: 0.4.9 +Version: 0.4.9-1 Homepage: https://github.com/aubio/aubio 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, bzip2, liblzma diff --git a/ports/aubio/portfile.cmake b/ports/aubio/portfile.cmake index 177e890d5..11840cc56 100644 --- a/ports/aubio/portfile.cmake +++ b/ports/aubio/portfile.cmake @@ -2,7 +2,6 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/aubio-3c230fae309e9ea3298783368dd71bae6172359a) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aubio/aubio diff --git a/ports/azure-c-shared-utility/CONTROL b/ports/azure-c-shared-utility/CONTROL index 40cf38523..e056a965d 100644 --- a/ports/azure-c-shared-utility/CONTROL +++ b/ports/azure-c-shared-utility/CONTROL @@ -1,5 +1,5 @@ Source: azure-c-shared-utility -Version: 2019-08-20.1 +Version: 2019-08-20.1-1 Description: Azure C SDKs common code Build-Depends: curl (linux), openssl (linux), azure-macro-utils-c, umock-c diff --git a/ports/azure-c-shared-utility/no-double-expand-cmake.patch b/ports/azure-c-shared-utility/no-double-expand-cmake.patch deleted file mode 100644 index 3775ad6b5..000000000 --- a/ports/azure-c-shared-utility/no-double-expand-cmake.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 190ea87..a434cee 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -264,7 +264,7 @@ if(${use_applessl}) - include_directories(./pal/ios-osx/) - endif() - --if (WIN32 AND (${CMAKE_SYSTEM_VERSION} VERSION_EQUAL "10.0.17763.0" OR ${CMAKE_SYSTEM_VERSION} VERSION_GREATER "10.0.17763.0")) -+if (WIN32 AND (CMAKE_SYSTEM_VERSION VERSION_EQUAL "10.0.17763.0" OR CMAKE_SYSTEM_VERSION VERSION_GREATER "10.0.17763.0")) - # Windows added support for UNIX domain sockets to the OS and SDK - # in the Oct 2018 update (10.0.17763.0, aka RS5) - add_definitions(-DAF_UNIX_ON_WINDOWS) diff --git a/ports/azure-c-shared-utility/portfile.cmake b/ports/azure-c-shared-utility/portfile.cmake index 3b95bd6dd..38c69bf6e 100644 --- a/ports/azure-c-shared-utility/portfile.cmake +++ b/ports/azure-c-shared-utility/portfile.cmake @@ -9,7 +9,6 @@ if("public-preview" IN_LIST FEATURES) REF 1f3fd807c8c47b6607d349469301afb64643aa89 SHA512 312ef2668ad62cb676c51474ba08307bacf9843d661233f7a6145e565ae58dcecb7bfa2e8a157efef1b54e8c07621bf2ec47b4d76ea180d77767b1ad44b951c2 HEAD_REF master - PATCHES no-double-expand-cmake.patch ) else() vcpkg_from_github( @@ -18,7 +17,6 @@ else() REF 1f3fd807c8c47b6607d349469301afb64643aa89 SHA512 312ef2668ad62cb676c51474ba08307bacf9843d661233f7a6145e565ae58dcecb7bfa2e8a157efef1b54e8c07621bf2ec47b4d76ea180d77767b1ad44b951c2 HEAD_REF master - PATCHES no-double-expand-cmake.patch ) endif() @@ -43,4 +41,3 @@ file(COPY ${SOURCE_PATH}/configs/azure_iot_build_rules.cmake DESTINATION ${CURRE configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/azure-c-shared-utility/copyright COPYONLY) vcpkg_copy_pdbs() - diff --git a/ports/berkeleydb/CONTROL b/ports/berkeleydb/CONTROL index c1416e07b..7d93c230c 100644 --- a/ports/berkeleydb/CONTROL +++ b/ports/berkeleydb/CONTROL @@ -1,4 +1,4 @@ Source: berkeleydb -Version: 4.8.30-2 +Version: 4.8.30-3 Homepage: https://download.oracle.com/ Description: BDB - A high-performance embedded database for key/value data. diff --git a/ports/berkeleydb/portfile.cmake b/ports/berkeleydb/portfile.cmake index 38f383d7b..f685279dd 100644 --- a/ports/berkeleydb/portfile.cmake +++ b/ports/berkeleydb/portfile.cmake @@ -4,14 +4,16 @@ endif() include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/db-4.8.30.NC) - vcpkg_download_distfile(ARCHIVE URLS "http://download.oracle.com/berkeley-db/db-4.8.30.NC.zip" FILENAME "db-4.8.30.NC.zip" SHA512 59c1d2d5a3551f988ab1dc063900572b67ad087537e0d71760de34601f9ebd4d5c070a49b809bec4a599a62417e9a162683ce0f6442deb1a0dadb80764bf6eab ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/bigint/CONTROL b/ports/bigint/CONTROL index d862b4b51..b47401c79 100644 --- a/ports/bigint/CONTROL +++ b/ports/bigint/CONTROL @@ -1,4 +1,4 @@ Source: bigint -Version: 2010.04.30-3 +Version: 2010.04.30-4 Homepage: https://mattmccutchen.net/bigint Description: C++ Big Integer Library diff --git a/ports/bigint/portfile.cmake b/ports/bigint/portfile.cmake index 61ce15816..2a0a22adb 100644 --- a/ports/bigint/portfile.cmake +++ b/ports/bigint/portfile.cmake @@ -2,13 +2,16 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/bigint-2010.04.30) vcpkg_download_distfile(ARCHIVE URLS "https://mattmccutchen.net/bigint/bigint-2010.04.30.tar.bz2" FILENAME "bigint-2010.04.30.tar.bz2" SHA512 bb64380e51991f97a2489c04801ab4372f795b5e23870ad12d71087f1a2afba9b32f74dcdbdcb5228ebf0dd74a37185285bac7653dd3c62d6118d63c298689af ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/bitsery/fix-install-paths.patch b/ports/bitsery/fix-install-paths.patch old mode 100755 new mode 100644 diff --git a/ports/blaze/CONTROL b/ports/blaze/CONTROL index 88f72d178..43a218bd4 100644 --- a/ports/blaze/CONTROL +++ b/ports/blaze/CONTROL @@ -1,5 +1,5 @@ Source: blaze -Version: 3.6 +Version: 3.6-1 Build-Depends: clapack (!osx), boost-exception Homepage: https://bitbucket.org/blaze-lib/blaze Description: Blaze is an open-source, high-performance C++ math library for dense and sparse arithmetic. diff --git a/ports/blaze/avoid-src-dir-generation.patch b/ports/blaze/avoid-src-dir-generation.patch deleted file mode 100644 index c57d6a429..000000000 --- a/ports/blaze/avoid-src-dir-generation.patch +++ /dev/null @@ -1,113 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7ecc993..793ec34 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -63,8 +63,8 @@ endif() - #================================================================================================== - - find_package(LAPACK REQUIRED) --target_link_libraries(blaze INTERFACE ${LAPACK_LIBRARIES}) --target_compile_options(blaze INTERFACE ${LAPACK_LINKER_FLAGS}) -+target_link_libraries(blaze INTERFACE $) -+target_compile_options(blaze INTERFACE $) - - - #================================================================================================== -@@ -72,7 +72,7 @@ target_compile_options(blaze INTERFACE ${LAPACK_LINKER_FLAGS}) - #================================================================================================== - - find_package(Boost 1.54.0 REQUIRED) --target_include_directories(blaze INTERFACE ${Boost_INCLUDE_DIRS}) -+target_include_directories(blaze INTERFACE $) - - - #================================================================================================== -@@ -163,7 +163,7 @@ endif () - set(BLAZE_CACHE_SIZE ${BLAZE_CACHE_SIZE} CACHE STRING "Cache size of the CPU in bytes." FORCE) - - configure_file ("${CMAKE_CURRENT_LIST_DIR}/cmake/CacheSize.h.in" -- "${CMAKE_CURRENT_LIST_DIR}/blaze/config/CacheSize.h") -+ "${CMAKE_CURRENT_BINARY_DIR}/blaze/config/CacheSize.h") - - - #================================================================================================== -@@ -216,7 +216,7 @@ else () - endif () - - configure_file ("${CMAKE_CURRENT_LIST_DIR}/cmake/BLAS.h.in" -- "${CMAKE_CURRENT_LIST_DIR}/blaze/config/BLAS.h") -+ "${CMAKE_CURRENT_BINARY_DIR}/blaze/config/BLAS.h") - - - #================================================================================================== -@@ -227,7 +227,7 @@ set(BLAZE_TRANSPOSE_FLAG "columnVector" CACHE STRING "Specify the default transp - set_property(CACHE BLAZE_TRANSPOSE_FLAG PROPERTY STRINGS "columnVector;rowVector") - - configure_file ("${CMAKE_CURRENT_LIST_DIR}/cmake/TransposeFlag.h.in" -- "${CMAKE_CURRENT_LIST_DIR}/blaze/config/TransposeFlag.h") -+ "${CMAKE_CURRENT_BINARY_DIR}/blaze/config/TransposeFlag.h") - - - #================================================================================================== -@@ -238,7 +238,7 @@ set(BLAZE_STORAGE_ORDER "rowMajor" CACHE STRING "Specify the default storage ord - set_property(CACHE BLAZE_STORAGE_ORDER PROPERTY STRINGS "rowMajor;columnMajor") - - configure_file ("${CMAKE_CURRENT_LIST_DIR}/cmake/StorageOrder.h.in" -- "${CMAKE_CURRENT_LIST_DIR}/blaze/config/StorageOrder.h") -+ "${CMAKE_CURRENT_BINARY_DIR}/blaze/config/StorageOrder.h") - - - #================================================================================================== -@@ -254,7 +254,7 @@ else () - endif () - - configure_file ("${CMAKE_CURRENT_LIST_DIR}/cmake/Vectorization.h.in" -- "${CMAKE_CURRENT_LIST_DIR}/blaze/config/Vectorization.h") -+ "${CMAKE_CURRENT_BINARY_DIR}/blaze/config/Vectorization.h") - - - #================================================================================================== -@@ -300,7 +300,7 @@ elseif (BLAZE_SMP_THREADS STREQUAL "HPX") - endif () - - configure_file ("${CMAKE_CURRENT_LIST_DIR}/cmake/SMP.h.in" -- "${CMAKE_CURRENT_LIST_DIR}/blaze/config/SMP.h") -+ "${CMAKE_CURRENT_BINARY_DIR}/blaze/config/SMP.h") - - - #================================================================================================== -@@ -316,7 +316,7 @@ else () - endif () - - configure_file ("${CMAKE_CURRENT_LIST_DIR}/cmake/Restrict.h.in" -- "${CMAKE_CURRENT_LIST_DIR}/blaze/config/Restrict.h") -+ "${CMAKE_CURRENT_BINARY_DIR}/blaze/config/Restrict.h") - - - #================================================================================================== -@@ -346,7 +346,7 @@ else () - endif () - - configure_file ("${CMAKE_CURRENT_LIST_DIR}/cmake/Optimizations.h.in" -- "${CMAKE_CURRENT_LIST_DIR}/blaze/config/Optimizations.h") -+ "${CMAKE_CURRENT_BINARY_DIR}/blaze/config/Optimizations.h") - - - #================================================================================================== -@@ -364,7 +364,7 @@ else () - endif () - - configure_file ("${CMAKE_CURRENT_LIST_DIR}/cmake/Inline.h.in" -- "${CMAKE_CURRENT_LIST_DIR}/blaze/config/Inline.h") -+ "${CMAKE_CURRENT_BINARY_DIR}/blaze/config/Inline.h") - - - #================================================================================================== -@@ -379,6 +379,7 @@ write_basic_package_version_file( - COMPATIBILITY SameMajorVersion - ) - -+install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/blaze DESTINATION include) - install(DIRECTORY blaze DESTINATION include) - install(TARGETS blaze EXPORT blazeTargets) - diff --git a/ports/blaze/portfile.cmake b/ports/blaze/portfile.cmake index c9408768c..0da26acd0 100644 --- a/ports/blaze/portfile.cmake +++ b/ports/blaze/portfile.cmake @@ -6,8 +6,6 @@ vcpkg_from_bitbucket( REF 51fff70fcc70c8bcb167b5daa497babf51b7603e SHA512 7048720d1842a0a8e621f6878c43942664523f889f2659f4334c7428d1177a5a226c95bcb5f84b93cae87c61e188bf91dc2429b1ddfc7b6a7b8eb74ab8c0a1ec HEAD_REF master - PATCHES - avoid-src-dir-generation.patch ) vcpkg_configure_cmake( diff --git a/ports/bond/CONTROL b/ports/bond/CONTROL index a4361dfb0..9a6e00f6d 100644 --- a/ports/bond/CONTROL +++ b/ports/bond/CONTROL @@ -1,6 +1,5 @@ Source: bond -Maintainer: bond@microsoft.com -Version: 8.1.0-2 +Version: 8.1.0-3 Description: Bond is a cross-platform framework for working with schematized data. It supports cross-language de/serialization and powerful generic mechanisms for efficiently manipulating data. Bond is broadly used at Microsoft in high scale services. Homepage: https://github.com/Microsoft/bond Build-Depends: rapidjson, boost-config, boost-utility, boost-assign diff --git a/ports/bond/portfile.cmake b/ports/bond/portfile.cmake index 921b1b8cc..f21d2e7f8 100644 --- a/ports/bond/portfile.cmake +++ b/ports/bond/portfile.cmake @@ -2,8 +2,6 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/bond-7.0.2) - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/bond @@ -19,7 +17,7 @@ if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "windows" OR FILENAME "gbc-8.1.0-amd64.zip" SHA512 896c9a78fc714e0ea44c37ed36400ec8e5f52d495a8d81aa80834ff6cd6303c7c94e06129f7b2269416a9e0ffb61423e87406db798fb5be7ff00f14981530089 ) - + # Extract the precompiled gbc vcpkg_extract_source_archive(${GBC_ARCHIVE} ${CURRENT_BUILDTREES_DIR}/tools/) set(FETCHED_GBC_PATH ${CURRENT_BUILDTREES_DIR}/tools/gbc.exe) @@ -27,13 +25,13 @@ if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "windows" OR if (NOT EXISTS "${FETCHED_GBC_PATH}") message(FATAL_ERROR "Fetching GBC failed. Expected '${FETCHED_GBC_PATH}' to exists, but it doesn't.") endif() - + else() # According to the readme on https://github.com/microsoft/bond/ # The build needs a version of the Haskel Tool stack that is newer than some distros ship with. # For this reason the message is not guarded by checking to see if the tool is installed. message("\nA recent version of Haskell Tool Stack is required to build.\n For information on how to install see https://docs.haskellstack.org/en/stable/README/\n") - + endif() vcpkg_configure_cmake( diff --git a/ports/boost-di/CONTROL b/ports/boost-di/CONTROL index d7c9aea41..da0873af8 100644 --- a/ports/boost-di/CONTROL +++ b/ports/boost-di/CONTROL @@ -1,4 +1,4 @@ Source: boost-di -Version: 1.1.0 +Version: 1.1.0-1 Homepage: https://github.com/boost-experimental/di -Description: C++14 Dependency Injection Library. \ No newline at end of file +Description: C++14 Dependency Injection Library. diff --git a/ports/boost-di/portfile.cmake b/ports/boost-di/portfile.cmake index f6fe59a3f..2027ba0d4 100644 --- a/ports/boost-di/portfile.cmake +++ b/ports/boost-di/portfile.cmake @@ -1,19 +1,16 @@ -#header-only library include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/di-1.1.0) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/boost-experimental/di/archive/v1.1.0.tar.gz" - FILENAME "di-1.1.0.tar.gz" +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO boost-experimental/di + REF v1.1.0 SHA512 69f7b0567cffea9bf983aedd7eabd1a07ae20249cd56a13de98eaa0cc835cbe3b76e790da68489536dd07edeb99271a69111f4d0c6b0aa3721ce9f5ead848fe0 + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) file(INSTALL ${SOURCE_PATH}/include/boost DESTINATION ${CURRENT_PACKAGES_DIR}/include) -# boost-di license does not exist in source folder. -# it shares the boost license. vcpkg_download_distfile(LICENSE URLS http://www.boost.org/LICENSE_1_0.txt FILENAME "boost-di-copyright" diff --git a/ports/boost-python/CONTROL b/ports/boost-python/CONTROL index 23e407903..132b5a800 100644 --- a/ports/boost-python/CONTROL +++ b/ports/boost-python/CONTROL @@ -1,6 +1,6 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-python Version: 1.71.0-1 -Build-Depends: boost-bind, boost-compatibility, boost-config, boost-conversion, boost-core, boost-detail, boost-foreach, boost-function, boost-graph, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-mpl, boost-numeric-conversion, boost-preprocessor, boost-property-map, boost-smart-ptr, boost-static-assert, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers, python3 +Build-Depends: boost-bind, boost-compatibility, boost-config, boost-conversion, boost-core, boost-detail, boost-foreach, boost-function, boost-graph, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-mpl, boost-numeric-conversion, boost-preprocessor, boost-property-map, boost-smart-ptr, boost-static-assert, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers, python3 (!osx&!linux) Homepage: https://github.com/boostorg/python Description: Boost python module diff --git a/ports/butteraugli/CONTROL b/ports/butteraugli/CONTROL index d210263c3..aab641738 100644 --- a/ports/butteraugli/CONTROL +++ b/ports/butteraugli/CONTROL @@ -1,5 +1,5 @@ Source: butteraugli -Version: 2019-05-08 +Version: 2019-05-08-1 Homepage: https://github.com/google/butteraugli Description: butteraugli estimates the psychovisual difference between two images Build-Depends: libpng, libjpeg-turbo diff --git a/ports/butteraugli/portfile.cmake b/ports/butteraugli/portfile.cmake index a3fb2a19d..6d3024f6b 100644 --- a/ports/butteraugli/portfile.cmake +++ b/ports/butteraugli/portfile.cmake @@ -8,16 +8,12 @@ vcpkg_from_github( REF 71b18b636b9c7d1ae0c1d3730b85b3c127eb4511 SHA512 2e73f8ad8953307eea956ed8bd828e110419d6d9f8a42685d225953d3a8017a79d0701bde0282459dc51198e75a99dcd99dd3c4e7ef065736c512a7b11ea0fdf HEAD_REF master + PATCHES + missing_header.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - "${CMAKE_CURRENT_LIST_DIR}/missing_header.patch" - ) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -27,6 +23,6 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_copy_pdbs() -vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/butteraugli) +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/butteraugli RENAME copyright) +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/cairomm/CONTROL b/ports/cairomm/CONTROL index 4705065fc..e9d9d9b5f 100644 --- a/ports/cairomm/CONTROL +++ b/ports/cairomm/CONTROL @@ -1,5 +1,5 @@ Source: cairomm -Version: 1.15.3-3 +Version: 1.15.3-4 Homepage: https://www.cairographics.org Description: A C++ wrapper for the cairo graphics library Build-Depends: cairo, libsigcpp diff --git a/ports/cairomm/portfile.cmake b/ports/cairomm/portfile.cmake index 857705649..e14f6012e 100644 --- a/ports/cairomm/portfile.cmake +++ b/ports/cairomm/portfile.cmake @@ -4,22 +4,23 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) set(CAIROMM_VERSION 1.15.3) set(CAIROMM_HASH a2c28786dbd167179561d8f580eeb11d10634a36dfdb1adeefc0279acf83ee906f01f264cb924845fc4ab98da1afac71e1ead742f283c1a32368ca9af28e464a) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cairomm-${CAIROMM_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://www.cairographics.org/releases/cairomm-${CAIROMM_VERSION}.tar.gz" FILENAME "cairomm-${CAIROMM_VERSION}.tar.gz" SHA512 ${CAIROMM_HASH} ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + 0001-fix-build.patch +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/cmake DESTINATION ${SOURCE_PATH}/build) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-fix-build.patch") - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -30,5 +31,4 @@ vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/cairomm) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/cairomm/COPYING ${CURRENT_PACKAGES_DIR}/share/cairomm/copyright) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/cartographer/CONTROL b/ports/cartographer/CONTROL index bf2916b69..10037dbad 100644 --- a/ports/cartographer/CONTROL +++ b/ports/cartographer/CONTROL @@ -1,5 +1,5 @@ Source: cartographer -Version: 1.0.0-1 +Version: 1.0.0-2 Build-Depends: ceres[suitesparse], gflags, glog, lua, cairo, boost-iostreams, gtest, protobuf Homepage: https://github.com/googlecartographer/cartographer Description: Google 2D & 3D SLAM package diff --git a/ports/cartographer/disable-C2338-cartographer.patch b/ports/cartographer/disable-C2338-cartographer.patch deleted file mode 100644 index 17452622d..000000000 --- a/ports/cartographer/disable-C2338-cartographer.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 95bb132..fbd624d 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -237,7 +237,7 @@ if(${BUILD_PROMETHEUS}) - target_compile_definitions(${PROJECT_NAME} PUBLIC USE_PROMETHEUS=1) - endif() - --set(TARGET_COMPILE_FLAGS "${TARGET_COMPILE_FLAGS} ${GOOG_CXX_FLAGS}") -+set(TARGET_COMPILE_FLAGS "-D_DISABLE_EXTENDED_ALIGNED_STORAGE ${TARGET_COMPILE_FLAGS} ${GOOG_CXX_FLAGS}") - set_target_properties(${PROJECT_NAME} PROPERTIES - COMPILE_FLAGS ${TARGET_COMPILE_FLAGS}) - diff --git a/ports/cartographer/portfile.cmake b/ports/cartographer/portfile.cmake index f8b1ddcd8..b761c39bb 100644 --- a/ports/cartographer/portfile.cmake +++ b/ports/cartographer/portfile.cmake @@ -10,7 +10,6 @@ vcpkg_from_github( HEAD_REF master PATCHES fix-find-packages.patch - disable-C2338-cartographer.patch fix-build-error.patch ) diff --git a/ports/ccd/0001_fix_symbols_export.patch b/ports/ccd/0001_fix_symbols_export.patch deleted file mode 100644 index f9c47d79b..000000000 --- a/ports/ccd/0001_fix_symbols_export.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 05b5718a364ac525c8766387bd74faf852f98589 Mon Sep 17 00:00:00 2001 -From: Mikhail Paulyshka -Date: Sun, 27 Aug 2017 03:39:53 +0300 -Subject: [PATCH] win32: export additional symbols, fixes FCL build on MSVC - ---- - src/ccd/vec3.h | 2 +- - src/support.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/ccd/vec3.h b/src/ccd/vec3.h -index b0c1b33..014531c 100644 ---- a/src/ccd/vec3.h -+++ b/src/ccd/vec3.h -@@ -93,7 +93,7 @@ typedef struct _ccd_vec3_t ccd_vec3_t; - /** - * Holds origin (0,0,0) - this variable is meant to be read-only! - */ --extern ccd_vec3_t *ccd_vec3_origin; -+extern _ccd_export ccd_vec3_t *ccd_vec3_origin; - - /** - * Array of points uniformly distributed on unit sphere. -diff --git a/src/support.h b/src/support.h -index 3372f5e..2e75df7 100644 ---- a/src/support.h -+++ b/src/support.h -@@ -37,7 +37,7 @@ _ccd_inline void ccdSupportCopy(ccd_support_t *, const ccd_support_t *s); - * Computes support point of obj1 and obj2 in direction dir. - * Support point is returned via supp. - */ --void __ccdSupport(const void *obj1, const void *obj2, -+_ccd_export void __ccdSupport(const void *obj1, const void *obj2, - const ccd_vec3_t *dir, const ccd_t *ccd, - ccd_support_t *supp); - --- -2.12.2.windows.2 - diff --git a/ports/ccd/CONTROL b/ports/ccd/CONTROL index 7820a1455..ded728779 100644 --- a/ports/ccd/CONTROL +++ b/ports/ccd/CONTROL @@ -1,4 +1,4 @@ Source: ccd -Version: 2.1-1 +Version: 2.1-3 Homepage: https://github.com/danfis/libccd Description: Library for collision detection between two convex shapes diff --git a/ports/ccd/portfile.cmake b/ports/ccd/portfile.cmake index 45674918e..424732917 100644 --- a/ports/ccd/portfile.cmake +++ b/ports/ccd/portfile.cmake @@ -8,11 +8,6 @@ vcpkg_from_github( HEAD_REF master ) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001_fix_symbols_export.patch) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -23,8 +18,8 @@ vcpkg_copy_pdbs() vcpkg_fixup_cmake_targets(CONFIG_PATH lib/ccd) -file(INSTALL ${SOURCE_PATH}/BSD-LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/ccd RENAME copyright) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc) + +file(INSTALL ${SOURCE_PATH}/BSD-LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/ccfits/CONTROL b/ports/ccfits/CONTROL index f6eb51488..f2603b80e 100644 --- a/ports/ccfits/CONTROL +++ b/ports/ccfits/CONTROL @@ -1,5 +1,5 @@ Source: ccfits -Version: 2.5-3 +Version: 2.5-4 Homepage: https://heasarc.gsfc.nasa.gov/fitsio/ccfits Description: CCfits is an object oriented interface to the cfitsio library. It is designed to make the capabilities of cfitsio available to programmers working in C++. Build-Depends: cfitsio diff --git a/ports/ccfits/portfile.cmake b/ports/ccfits/portfile.cmake index c3d2fef1e..e5f280944 100644 --- a/ports/ccfits/portfile.cmake +++ b/ports/ccfits/portfile.cmake @@ -1,14 +1,11 @@ include(vcpkg_common_functions) -#removes current source to prevent static builds from using patched source code -file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src) - -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/CCfits) vcpkg_download_distfile(ARCHIVE URLS "https://heasarc.gsfc.nasa.gov/fitsio/ccfits/CCfits-2.5.tar.gz" FILENAME "CCfits-2.5.tar.gz" SHA512 63ab4d153063960510cf60651d5c832824cf85f937f84adc5390c7c2fb46eb8e9f5d8cda2554d79d24c7a4f1b6cf0b7a6e20958fb69920b65d7c362c0a5f26b5 ) + vcpkg_extract_source_archive_ex( ARCHIVE ${ARCHIVE} OUT_SOURCE_PATH SOURCE_PATH diff --git a/ports/cfitsio/CONTROL b/ports/cfitsio/CONTROL index 316269f88..c46eaadfe 100644 --- a/ports/cfitsio/CONTROL +++ b/ports/cfitsio/CONTROL @@ -1,4 +1,4 @@ Source: cfitsio -Version: 3.410-2 +Version: 3.410-3 Homepage: https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c Description: Library of C and Fortran subroutines for reading and writing data files in FITS (Flexible Image Transport System) data format diff --git a/ports/cfitsio/portfile.cmake b/ports/cfitsio/portfile.cmake index e9caf61d1..c14b6743c 100644 --- a/ports/cfitsio/portfile.cmake +++ b/ports/cfitsio/portfile.cmake @@ -1,11 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cfitsio) + vcpkg_download_distfile(ARCHIVE URLS "http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio3410.tar.gz" FILENAME "cfitsio3410.tar.gz" SHA512 b2ac31ab17e19eeeb4f1601f42f348402c0a4ab03725dbf74fe75eaabbee2f44f64f0c0ee7f0b2688bd93a9cc0dccf29f07e73b9148fff97fc78bebdbb5f6f0f ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -14,7 +18,7 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -# Remove duplicate include files +# Remove duplicate include files file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/include/unistd.h) # cfitsio uses very common names for its headers, so they must be moved to a subdirectory diff --git a/ports/cgicc/portfile.cmake b/ports/cgicc/portfile.cmake index 845baef76..ba135d9d5 100644 --- a/ports/cgicc/portfile.cmake +++ b/ports/cgicc/portfile.cmake @@ -3,7 +3,6 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cgicc-3.2.19) vcpkg_download_distfile(ARCHIVE URLS "http://ftp.gnu.org/gnu/cgicc/cgicc-3.2.19.tar.gz" FILENAME "cgicc-3.2.19.tar.gz" @@ -28,5 +27,5 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_copy_pdbs() -# Handle copyright + file(INSTALL ${SOURCE_PATH}/COPYING.DOC DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/charls/CONTROL b/ports/charls/CONTROL index e8fabbf22..f68ecdccf 100644 --- a/ports/charls/CONTROL +++ b/ports/charls/CONTROL @@ -1,4 +1,4 @@ Source: charls -Version: 2.0.0-2 +Version: 2.0.0-3 Homepage: https://github.com/team-charls/charls Description: CharLS, a C++ JPEG-LS library implementation. diff --git a/ports/charls/portfile.cmake b/ports/charls/portfile.cmake index 0f622c7e3..c303c42bc 100644 --- a/ports/charls/portfile.cmake +++ b/ports/charls/portfile.cmake @@ -1,16 +1,13 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/charls-2.0.0) -vcpkg_download_distfile(ARCHIVE_FILE - URLS "https://github.com/team-charls/charls/archive/2.0.0.tar.gz" - FILENAME "charls-2.0.0.tar.gz" - SHA512 0a2862fad6d65b941c81f5f838db1fdc6a4625887281ddbf27e21be9084f607d27c8a27d246d6252e08358b2ed4aa0c2b7407048ca559fb40e94313ca72487dd -) -vcpkg_extract_source_archive(${ARCHIVE_FILE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO team-charls/charls + REF 2.0.0 + SHA512 0a2862fad6d65b941c81f5f838db1fdc6a4625887281ddbf27e21be9084f607d27c8a27d246d6252e08358b2ed4aa0c2b7407048ca559fb40e94313ca72487dd + HEAD_REF master PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch + 0001_cmake.patch ) vcpkg_configure_cmake( @@ -23,6 +20,7 @@ vcpkg_configure_cmake( vcpkg_install_cmake() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/charls RENAME copyright) -vcpkg_copy_pdbs() \ No newline at end of file +file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/chmlib/CONTROL b/ports/chmlib/CONTROL index cde69a41e..6042ceb99 100644 --- a/ports/chmlib/CONTROL +++ b/ports/chmlib/CONTROL @@ -1,4 +1,4 @@ Source: chmlib -Version: 0.40-3 +Version: 0.40-4 Homepage: https://www.jedrea.com/chmlib/ Description: CHMLIB is a library for dealing with Microsoft ITSS/CHM format files. Right now, it is a very simple library, but sufficient for dealing with all of the .chm files I've come across. Due to the fairly well-designed indexing built into this particular file format, even a small library is able to gain reasonably good performance indexing into ITSS archives. diff --git a/ports/chmlib/portfile.cmake b/ports/chmlib/portfile.cmake index 99313c5cd..1ecd4751c 100644 --- a/ports/chmlib/portfile.cmake +++ b/ports/chmlib/portfile.cmake @@ -5,7 +5,6 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) set(CHMLIB_VERSION chmlib-0.40) set(CHMLIB_FILENAME ${CHMLIB_VERSION}.zip) set(CHMLIB_URL http://www.jedrea.com/chmlib/${CHMLIB_FILENAME}) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${CHMLIB_VERSION}) vcpkg_download_distfile( ARCHIVE @@ -13,7 +12,11 @@ vcpkg_download_distfile( FILENAME ${CHMLIB_FILENAME} SHA512 ad3b0d49fcf99e724c0c38b9c842bae9508d0e4ad47122b0f489c113160f5344223d311abb79f25cbb0b662bb00e2925d338d60dd20a0c309bda2822cda4cd24 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/clblas/CONTROL b/ports/clblas/CONTROL index 3837fcbca..3e8543409 100644 --- a/ports/clblas/CONTROL +++ b/ports/clblas/CONTROL @@ -1,4 +1,4 @@ Source: clblas -Version: 2.12-2 +Version: 2.12-3 Build-Depends: opencl Description: clBLAS is an OpenCL 1.2 accelerated BLAS (Basic Linear Algebra Subsystem) library. diff --git a/ports/clblas/portfile.cmake b/ports/clblas/portfile.cmake index daefb8388..97bd7c936 100644 --- a/ports/clblas/portfile.cmake +++ b/ports/clblas/portfile.cmake @@ -6,18 +6,13 @@ vcpkg_from_github( REF v2.12 SHA512 5d9b0c58adde69e83d95e9c713e0cdc5f64785fe7e05553a14c57fa483c4ef39e9dc780c26880a7f15924967d5ce4ea29035c29d63eac7ee5a2ae5ddacac2b72 HEAD_REF master + PATCHES + cmake.patch ) # v2.12 has a very old FindOpenCL.cmake using OPENCL_ vs. OpenCL_ var names # conflicting with the built-in, more modern FindOpenCL.cmake -file( - REMOVE ${SOURCE_PATH}/src/FindOpenCL.cmake -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/cmake.patch -) +file(REMOVE ${SOURCE_PATH}/src/FindOpenCL.cmake) vcpkg_find_acquire_program(PYTHON3) @@ -37,26 +32,23 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL static) endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(INSTALL - "${SOURCE_PATH}/LICENSE" - DESTINATION - ${CURRENT_PACKAGES_DIR}/share/clblas - RENAME copyright -) - if(VCPKG_TARGET_IS_WINDOWS) file(REMOVE - ${CURRENT_PACKAGES_DIR}/debug/bin/clBLAS-tune.pdb - ${CURRENT_PACKAGES_DIR}/debug/bin/clBLAS-tune.exe - ${CURRENT_PACKAGES_DIR}/bin/clBLAS-tune.exe - ${CURRENT_PACKAGES_DIR}/debug/bin/concrt140d.dll - ${CURRENT_PACKAGES_DIR}/debug/bin/msvcp140d.dll - ${CURRENT_PACKAGES_DIR}/debug/bin/vcruntime140d.dll + ${CURRENT_PACKAGES_DIR}/debug/bin/clBLAS-tune.pdb + ${CURRENT_PACKAGES_DIR}/debug/bin/clBLAS-tune.exe + ${CURRENT_PACKAGES_DIR}/bin/clBLAS-tune.exe + ${CURRENT_PACKAGES_DIR}/debug/bin/concrt140d.dll + ${CURRENT_PACKAGES_DIR}/debug/bin/msvcp140d.dll + ${CURRENT_PACKAGES_DIR}/debug/bin/vcruntime140d.dll ) +endif() +if(VCPKG_TARGET_IS_WINDOWS) vcpkg_fixup_cmake_targets(CONFIG_PATH CMake) -elseif(VCPKG_TARGET_IS_LINUX) - vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/clBLAS") +else() + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/clBLAS) endif() vcpkg_copy_pdbs() + +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION ${CURRENT_PACKAGES_DIR}/share/clblas RENAME copyright) diff --git a/ports/clblast/CONTROL b/ports/clblast/CONTROL index 6b8d1c451..6e920200f 100644 --- a/ports/clblast/CONTROL +++ b/ports/clblast/CONTROL @@ -1,4 +1,4 @@ Source: clblast -Version: 1.5.0 +Version: 1.5.0-1 Build-Depends: opencl Description: A modern, lightweight, performant and tunable OpenCL BLAS library written in C++11. \ No newline at end of file diff --git a/ports/clblast/portfile.cmake b/ports/clblast/portfile.cmake index d21e1e471..667769d7e 100644 --- a/ports/clblast/portfile.cmake +++ b/ports/clblast/portfile.cmake @@ -18,28 +18,29 @@ vcpkg_install_cmake() if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) endif() + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - -if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/clblast.dll) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/clblast.dll ${CURRENT_PACKAGES_DIR}/bin/clblast.dll) -endif() -if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/clblast.dll) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/clblast.dll ${CURRENT_PACKAGES_DIR}/debug/bin/clblast.dll) -endif() - -file(GLOB EXE ${CURRENT_PACKAGES_DIR}/bin/*.exe) -file(GLOB DEBUG_EXE ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe) -if(EXE OR DEBUG_EXE) - file(REMOVE ${EXE} ${DEBUG_EXE}) +if(VCPKG_TARGET_IS_WINDOWS) + if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/clblast.dll) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/clblast.dll ${CURRENT_PACKAGES_DIR}/bin/clblast.dll) + endif() + if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/clblast.dll) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/clblast.dll ${CURRENT_PACKAGES_DIR}/debug/bin/clblast.dll) + endif() + file(GLOB EXE ${CURRENT_PACKAGES_DIR}/bin/*.exe) + file(GLOB DEBUG_EXE ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe) + if(EXE OR DEBUG_EXE) + file(REMOVE ${EXE} ${DEBUG_EXE}) + endif() endif() vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/clblast) vcpkg_copy_pdbs() -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/clblast) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/clblast/LICENSE ${CURRENT_PACKAGES_DIR}/share/clblast/copyright) \ No newline at end of file +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/clfft/CONTROL b/ports/clfft/CONTROL index 4cc887f47..522a641e4 100644 --- a/ports/clfft/CONTROL +++ b/ports/clfft/CONTROL @@ -1,5 +1,5 @@ Source: clfft -Version: 2.12.2-1 +Version: 2.12.2-2 Build-Depends: opencl Homepage: https://github.com/clMathLibraries/clFFT Description: clFFT is an OpenCL 1.2 accelerated Fast Fourier Transform library. diff --git a/ports/clfft/portfile.cmake b/ports/clfft/portfile.cmake index d7aff78cb..c64baf124 100644 --- a/ports/clfft/portfile.cmake +++ b/ports/clfft/portfile.cmake @@ -6,11 +6,8 @@ vcpkg_from_github( REF v2.12.2 SHA512 19e9a4e06f76ae7c7808d1188677d5553c43598886a75328b7801ab2ca68e35206839a58fe2f958a44a6f7c83284dc9461cd0e21c37d1042bf82e24aad066be8 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/tweak-install.patch + PATCHES + tweak-install.patch ) vcpkg_configure_cmake( @@ -26,16 +23,12 @@ vcpkg_install_cmake() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(INSTALL - "${SOURCE_PATH}/LICENSE" - DESTINATION - ${CURRENT_PACKAGES_DIR}/share/clfft/copyright -) - if(VCPKG_TARGET_IS_WINDOWS) - vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake") -elseif(VCPKG_TARGET_IS_LINUX) - vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/clFFT") + vcpkg_fixup_cmake_targets(CONFIG_PATH CMake) +else() + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/clFFT) endif() vcpkg_copy_pdbs() + +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION ${CURRENT_PACKAGES_DIR}/share/clfft/copyright) diff --git a/ports/collada-dom/CONTROL b/ports/collada-dom/CONTROL index 31ded7253..cd5bccec5 100644 --- a/ports/collada-dom/CONTROL +++ b/ports/collada-dom/CONTROL @@ -1,4 +1,4 @@ Source: collada-dom -Version: 2.5.0-2 +Version: 2.5.0-3 Description: The COLLADA Document Object Model (DOM) is an application programming interface (API) that provides a C++ object representation of a COLLADA XML instance document. Build-Depends: zlib, libxml2, minizip, pcre, uriparser, boost-filesystem, boost-system diff --git a/ports/collada-dom/portfile.cmake b/ports/collada-dom/portfile.cmake index 20ee9fffa..fd295628b 100644 --- a/ports/collada-dom/portfile.cmake +++ b/ports/collada-dom/portfile.cmake @@ -1,5 +1,5 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/collada-dom-2.5.0) + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rdiankov/collada-dom diff --git a/ports/console-bridge/CONTROL b/ports/console-bridge/CONTROL index b41d031b5..550d9a5bf 100644 --- a/ports/console-bridge/CONTROL +++ b/ports/console-bridge/CONTROL @@ -1,4 +1,4 @@ Source: console-bridge -Version: 0.4.3-1 +Version: 0.4.3-2 Homepage: https://github.com/ros/console_bridge Description: a ROS-independent package for logging that seamlessly pipes into rosconsole/rosout for ROS-dependent packages. diff --git a/ports/console-bridge/portfile.cmake b/ports/console-bridge/portfile.cmake index 231a412c8..7f0ce34fd 100644 --- a/ports/console-bridge/portfile.cmake +++ b/ports/console-bridge/portfile.cmake @@ -6,7 +6,6 @@ vcpkg_from_github( REF f0b423c0c2d02651db1776c96887c0a314908063 SHA512 f022341f06c4edf564b94305b7ce279a7a2a61d0323a7ccf374598011909d86b0a9c514b4d41fd1d523baecc1c320d16a931a8f0fbb3a3e4950720f84f0472e6 HEAD_REF master - PATCHES static-macro.patch ) vcpkg_configure_cmake( diff --git a/ports/console-bridge/static-macro.patch b/ports/console-bridge/static-macro.patch deleted file mode 100644 index 31e4053aa..000000000 --- a/ports/console-bridge/static-macro.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 604b2ab..e98b51c 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -37,6 +37,10 @@ if(NOT DEFINED BUILD_SHARED_LIBS) - option(BUILD_SHARED_LIBS "Build dynamically-linked binaries" ON) - endif() - -+if(NOT BUILD_SHARED_LIBS) -+ add_definitions(-DCONSOLE_BRIDGE_STATIC) -+endif() -+ - add_library(${PROJECT_NAME} src/console.cpp) - set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION - ${CONSOLE_BRIDGE_MAJOR_VERSION}.${CONSOLE_BRIDGE_MINOR_VERSION}) diff --git a/ports/cppkafka/CONTROL b/ports/cppkafka/CONTROL index 5fb06c47d..5dec433ef 100644 --- a/ports/cppkafka/CONTROL +++ b/ports/cppkafka/CONTROL @@ -1,5 +1,5 @@ Source: cppkafka -Version: 0.3.1-1 +Version: 0.3.1-2 Homepage: https://github.com/mfontanini/cppkafka Description: cppkafka allows C++ applications to consume and produce messages using the Apache Kafka protocol. The library is built on top of librdkafka, and provides a high level API that uses modern C++ features to make it easier to write code while keeping the wrapper's performance overhead to a minimum. -Build-Depends: boost-program-options, librdkafka \ No newline at end of file +Build-Depends: boost-program-options, librdkafka diff --git a/ports/cppkafka/fix-dynamic.patch b/ports/cppkafka/fix-dynamic.patch index e19188e27..f18a0fbf7 100644 --- a/ports/cppkafka/fix-dynamic.patch +++ b/ports/cppkafka/fix-dynamic.patch @@ -1,12 +1,12 @@ -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 5d31078..b1d3634 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -43,6 +43,7 @@ target_include_directories(cppkafka PUBLIC ${PROJECT_SOURCE_DIR}/include) - - install( - TARGETS cppkafka -+ RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - COMPONENT dev +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 5d31078..b1d3634 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -43,6 +43,7 @@ target_include_directories(cppkafka PUBLIC ${PROJECT_SOURCE_DIR}/include) + + install( + TARGETS cppkafka ++ RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + COMPONENT dev diff --git a/ports/cppunit/CONTROL b/ports/cppunit/CONTROL index b7d8968d7..9c3dee7b6 100644 --- a/ports/cppunit/CONTROL +++ b/ports/cppunit/CONTROL @@ -1,3 +1,3 @@ Source: cppunit -Version: 1.14.0 +Version: 1.14.0-1 Description: CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML for automatic testing and GUI based for supervised tests. \ No newline at end of file diff --git a/ports/cppunit/portfile.cmake b/ports/cppunit/portfile.cmake index 7a936d655..b2b836f00 100644 --- a/ports/cppunit/portfile.cmake +++ b/ports/cppunit/portfile.cmake @@ -1,24 +1,26 @@ include(vcpkg_common_functions) + +if(NOT VCPKG_TARGET_IS_WINDOWS) + message(FATAL_ERROR "\n${PORT} does not support your system, only Windows for now. Please open a ticket issue on github.com/microsoft/vcpkg if necessary\n") +endif() + set(VERSION 1.14.0) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}/cppunit-${VERSION}) +if (VCPKG_CRT_LINKAGE STREQUAL static) + set(STATIC_PATCH "0001-static-crt-linkage.patch") +endif() + vcpkg_download_distfile(ARCHIVE URLS "http://dev-www.libreoffice.org/src/cppunit-${VERSION}.tar.gz" FILENAME "cppunit-${VERSION}.tar.gz" SHA512 4ea1da423c6f7ab37e4144689f593396829ce74d43872d6b10709c1ad5fbda4ee945842f7e9803592520ef81ac713e95a3fe130295bf048cd32a605d1959882e ) -file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}) -file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}) -vcpkg_extract_source_archive(${ARCHIVE} ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}) - -if (VCPKG_CRT_LINKAGE STREQUAL static) - vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - # Make sure cppunit static lib uses static CRT linkage - ${CMAKE_CURRENT_LIST_DIR}/0001-static-crt-linkage.patch - ) -endif() +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + ${STATIC_PATCH} +) if (VCPKG_TARGET_ARCHITECTURE MATCHES "x86") set(BUILD_ARCH "Win32") @@ -51,8 +53,6 @@ elseif (VCPKG_LIBRARY_LINKAGE STREQUAL static) file(COPY ${SOURCE_PATH}/lib/cppunit.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) endif() -# Handle copyright -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/cppunit) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/cppunit/COPYING ${CURRENT_PACKAGES_DIR}/share/cppunit/copyright) +vcpkg_copy_pdbs() -vcpkg_copy_pdbs() \ No newline at end of file +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/cppunit RENAME copyright) diff --git a/ports/cunit/CONTROL b/ports/cunit/CONTROL index 930494992..b1c5bd30c 100644 --- a/ports/cunit/CONTROL +++ b/ports/cunit/CONTROL @@ -1,4 +1,4 @@ Source: cunit -Version: 2.1.3-2 +Version: 2.1.3-3 Homepage: https://sourceforge.net/projects/cunit/ Description: CUnit is a lightweight system for writing, administering, and running unit tests in C. It provides C programmers a basic testing functionality with a flexible variety of user interfaces diff --git a/ports/cunit/portfile.cmake b/ports/cunit/portfile.cmake index 7e4a977af..d841d8bc3 100644 --- a/ports/cunit/portfile.cmake +++ b/ports/cunit/portfile.cmake @@ -1,12 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/CUnit-2.1-3) vcpkg_download_distfile(ARCHIVE URLS "http://downloads.sourceforge.net/project/cunit/CUnit/2.1-3/CUnit-2.1-3.tar.bz2" FILENAME "CUnit-2.1-3.tar.bz2" SHA512 547b417109332446dfab8fda17bf4ccd2da841dc93f824dc90a20635bcf1fb80fb2176500d8a0906940f3f3d3e2f77b2d70a71090c9ab84ad9af43f3582bc487 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/dlfcn-win32/CONTROL b/ports/dlfcn-win32/CONTROL index 5d2eb9d2f..69968ae54 100644 --- a/ports/dlfcn-win32/CONTROL +++ b/ports/dlfcn-win32/CONTROL @@ -1,4 +1,4 @@ Source: dlfcn-win32 -Version: 1.1.1-3 +Version: 1.1.1-4 Homepage: https://github.com/dlfcn-win32/dlfcn-win32 Description: dlfcn-win32 is an implementation of dlfcn for Windows. diff --git a/ports/dlfcn-win32/portfile.cmake b/ports/dlfcn-win32/portfile.cmake index 1c290844c..e2376ab63 100644 --- a/ports/dlfcn-win32/portfile.cmake +++ b/ports/dlfcn-win32/portfile.cmake @@ -1,12 +1,13 @@ include(vcpkg_common_functions) set(SOURCE_VERSION 1.1.1) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/dlfcn-win32-${SOURCE_VERSION}) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/dlfcn-win32/dlfcn-win32/archive/v${SOURCE_VERSION}.zip" - FILENAME "dlfcn-win32-v${SOURCE_VERSION}.zip" - SHA512 581043784d8c1b1b43c88c0da302f79d70e1d33e95977a355d849b8f8c45194b55fdc28e36a3f3ed192eca8fee6b00cb8bf1d1d1fc08b94d53be6f73bea6e09a + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO dlfcn-win32/dlfcn-win32 + REF v${SOURCE_VERSION} + SHA512 557729511546f574487f8c7de437c53bcf5ae11640349c338ead9965a4ac0f937de647839b63c821003be54dca5bcbf28f2899d2348acf7dfef31e487da1cba1 + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/dmlc/CONTROL b/ports/dmlc/CONTROL index 1c16f0547..24d639ce3 100644 --- a/ports/dmlc/CONTROL +++ b/ports/dmlc/CONTROL @@ -1,5 +1,5 @@ Source: dmlc -Version: 2019-08-12 +Version: 2019-08-12-1 Homepage: https://github.com/dmlc/dmlc-core Description: DMLC-Core is the backbone library to support all DMLC projects, offers the bricks to build efficient and scalable distributed machine learning libraries. Default-Features: openmp diff --git a/ports/dmlc/portfile.cmake b/ports/dmlc/portfile.cmake index ae9797c61..903e89882 100644 --- a/ports/dmlc/portfile.cmake +++ b/ports/dmlc/portfile.cmake @@ -27,9 +27,10 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS - -DDMLC_FORCE_SHARED_CRT=${DMLC_FORCE_SHARED_CRT} - -DUSE_OPENMP=${ENABLE_OPENMP} + NO_PARALLEL_CONFIGURE + OPTIONS + -DDMLC_FORCE_SHARED_CRT=${DMLC_FORCE_SHARED_CRT} + -DUSE_OPENMP=${ENABLE_OPENMP} ) vcpkg_install_cmake() diff --git a/ports/duktape/CMakeLists.txt b/ports/duktape/CMakeLists.txt index 3986c4df1..ebf2f32d8 100644 --- a/ports/duktape/CMakeLists.txt +++ b/ports/duktape/CMakeLists.txt @@ -1,23 +1,53 @@ cmake_minimum_required(VERSION 3.14) -project (duktape) -file(GLOB_RECURSE DUKTAPE_SOURCES "src/*.c") -file(GLOB_RECURSE DUKTAPE_HEADERS "src/*.h") +set(duktape_MAJOR_VERSION 2) +set(duktape_MINOR_VERSION 4) +set(duktape_PATCH_VERSION 0) +set(duktape_VERSION ${duktape_MAJOR_VERSION}.${duktape_MINOR_VERSION}.${duktape_PATCH_VERSION}) -if (BUILD_SHARED_LIBS) - add_definitions(-DDUK_F_DLL_BUILD) -endif () +option(CMAKE_VERBOSE_MAKEFILE "Create verbose makefile" OFF) +option(BUILD_SHARED_LIBS "Create duktape as a shared library" ON) -include_directories("src/") +project(duktape VERSION ${duktape_VERSION}) + +file(GLOB_RECURSE DUKTAPE_SOURCES "${CMAKE_CURRENT_LIST_DIR}/src/*.c") +file(GLOB_RECURSE DUKTAPE_HEADERS "${CMAKE_CURRENT_LIST_DIR}/src/*.h") add_library(duktape ${DUKTAPE_SOURCES} ${DUKTAPE_HEADERS}) +target_include_directories(duktape PRIVATE "${CMAKE_CURRENT_LIST_DIR}/src") +set_target_properties(duktape PROPERTIES PUBLIC_HEADER "${DUKTAPE_HEADERS}") -set_target_properties("duktape" PROPERTIES PUBLIC_HEADER "${DUKTAPE_HEADERS}") +if (BUILD_SHARED_LIBS) + target_compile_definitions(duktape PRIVATE -DDUK_F_DLL_BUILD) +endif () install(TARGETS duktape - EXPORT duktape-targets + EXPORT duktapeTargets ARCHIVE DESTINATION "lib" + LIBRARY DESTINATION "lib" RUNTIME DESTINATION "bin" - PUBLIC_HEADER DESTINATION "include") + PUBLIC_HEADER DESTINATION "include" + COMPONENT dev +) +install(EXPORT duktapeTargets + FILE duktapeTargets.cmake + NAMESPACE duktape:: + DESTINATION "share/duktape" +) + +export(PACKAGE duktape) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file("${PROJECT_BINARY_DIR}/duktapeConfigVersion.cmake" + COMPATIBILITY SameMajorVersion +) + +configure_file(duktapeConfig.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/duktapeConfig.cmake" @ONLY) + +install(FILES + "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/duktapeConfig.cmake" + "${PROJECT_BINARY_DIR}/duktapeConfigVersion.cmake" + DESTINATION "share/duktape" +) diff --git a/ports/duktape/CONTROL b/ports/duktape/CONTROL index 27fe7556c..da9322737 100644 --- a/ports/duktape/CONTROL +++ b/ports/duktape/CONTROL @@ -1,5 +1,4 @@ Source: duktape -Version: 2.4.0-4 +Version: 2.4.0-5 Homepage: https://github.com/svaarala/duktape Description: Embeddable Javascript engine with a focus on portability and compact footprint. -Build-Depends: diff --git a/ports/duktape/duk_config.h.patch b/ports/duktape/duk_config.h.patch deleted file mode 100644 index d0be961ce..000000000 --- a/ports/duktape/duk_config.h.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/duk_config.h b/src/duk_config.h -index a942563..8d3d309 100644 ---- a/src/duk_config.h -+++ b/src/duk_config.h -@@ -64,7 +64,7 @@ - - /* DLL build detection */ - /* not configured for DLL build */ --#undef DUK_F_DLL_BUILD -+// #undef DUK_F_DLL_BUILD - - /* Apple OSX, iOS */ - #if defined(__APPLE__) diff --git a/ports/duktape/duktapeConfig.cmake b/ports/duktape/duktapeConfig.cmake.in similarity index 100% rename from ports/duktape/duktapeConfig.cmake rename to ports/duktape/duktapeConfig.cmake.in diff --git a/ports/duktape/portfile.cmake b/ports/duktape/portfile.cmake index 3f9b03e41..66d1010c8 100644 --- a/ports/duktape/portfile.cmake +++ b/ports/duktape/portfile.cmake @@ -2,7 +2,7 @@ include(vcpkg_common_functions) if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") message("${PORT} currently requires the following tools from the system package manager:\n python-yaml\n\nThis can be installed on Ubuntu systems via apt-get install python-yaml PYTHON2-yaml (depending on your current python default interpreter)") -endif() +endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH @@ -13,7 +13,7 @@ vcpkg_from_github( ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/duktapeConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/duktapeConfig.cmake.in DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) if(CMAKE_HOST_WIN32) @@ -27,27 +27,33 @@ get_filename_component(PYTHON2_DIR "${PYTHON2}" DIRECTORY) vcpkg_add_to_path("${PYTHON2_DIR}") if(NOT EXISTS ${PYTHON2_DIR}/easy_install${EXECUTABLE_SUFFIX}) if(NOT EXISTS ${PYTHON2_DIR}/Scripts/pip${EXECUTABLE_SUFFIX}) - vcpkg_from_github( - OUT_SOURCE_PATH PYFILE_PATH - REPO pypa/get-pip - REF 309a56c5fd94bd1134053a541cb4657a4e47e09d #2019-08-25 - SHA512 bb4b0745998a3205cd0f0963c04fb45f4614ba3b6fcbe97efe8f8614192f244b7ae62705483a5305943d6c8fedeca53b2e9905aed918d2c6106f8a9680184c7a - HEAD_REF master - ) - execute_process(COMMAND ${PYTHON2_DIR}/python${EXECUTABLE_SUFFIX} ${PYFILE_PATH}/get-pip.py) + vcpkg_from_github( + OUT_SOURCE_PATH PYFILE_PATH + REPO pypa/get-pip + REF 309a56c5fd94bd1134053a541cb4657a4e47e09d #2019-08-25 + SHA512 bb4b0745998a3205cd0f0963c04fb45f4614ba3b6fcbe97efe8f8614192f244b7ae62705483a5305943d6c8fedeca53b2e9905aed918d2c6106f8a9680184c7a + HEAD_REF master + ) + execute_process(COMMAND ${PYTHON2_DIR}/python${EXECUTABLE_SUFFIX} ${PYFILE_PATH}/get-pip.py --user) endif() - execute_process(COMMAND ${PYTHON2_DIR}/Scripts/pip${EXECUTABLE_SUFFIX} install pyyaml) + execute_process(COMMAND ${PYTHON2_DIR}/Scripts/pip${EXECUTABLE_SUFFIX} install pyyaml --user) else() execute_process(COMMAND ${PYTHON2_DIR}/easy_install${EXECUTABLE_SUFFIX} pyyaml) endif() execute_process(COMMAND ${PYTHON2} ${SOURCE_PATH}/tools/configure.py --source-directory ${SOURCE_PATH}/src-input --output-directory ${SOURCE_PATH}/src --config-metadata ${SOURCE_PATH}/config -DDUK_USE_FASTINT) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - duk_config.h.patch -) +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + set(DUK_CONFIG_H_PATH "${SOURCE_PATH}/src/duk_config.h") + file(READ ${DUK_CONFIG_H_PATH} CONTENT) + string(REPLACE "#undef DUK_F_DLL_BUILD" "#define DUK_F_DLL_BUILD" CONTENT "${CONTENT}") + file(WRITE ${DUK_CONFIG_H_PATH} "${CONTENT}") +else() + set(DUK_CONFIG_H_PATH "${SOURCE_PATH}/src/duk_config.h") + file(READ ${DUK_CONFIG_H_PATH} CONTENT) + string(REPLACE "#define DUK_F_DLL_BUILD" "#undef DUK_F_DLL_BUILD" CONTENT "${CONTENT}") + file(WRITE ${DUK_CONFIG_H_PATH} "${CONTENT}") +endif() vcpkg_configure_cmake( PREFER_NINJA @@ -56,19 +62,10 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -set(DUK_CONFIG_H_PATH "${CURRENT_PACKAGES_DIR}/include/duk_config.h") -file(READ ${DUK_CONFIG_H_PATH} CONTENT) -if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - string(REPLACE "// #undef DUK_F_DLL_BUILD" "#undef DUK_F_DLL_BUILD\n#define DUK_F_DLL_BUILD" CONTENT "${CONTENT}") -else() - string(REPLACE "// #undef DUK_F_DLL_BUILD" "#undef DUK_F_DLL_BUILD" CONTENT "${CONTENT}") -endif() -file(WRITE ${DUK_CONFIG_H_PATH} "${CONTENT}") -# Remove debug include file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -# Copy copright information -file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/duktape" RENAME "copyright") - +vcpkg_fixup_cmake_targets() vcpkg_copy_pdbs() + +file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/dxut/portfile.cmake b/ports/dxut/portfile.cmake index f89fe3982..a14d29d9b 100644 --- a/ports/dxut/portfile.cmake +++ b/ports/dxut/portfile.cmake @@ -6,13 +6,16 @@ if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic") message(FATAL_ERROR "DXUT only supports dynamic CRT linkage") endif() -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/DXUT-sept2016) -vcpkg_download_distfile(ARCHIVE_FILE +vcpkg_download_distfile(ARCHIVE URLS "https://github.com/Microsoft/DXUT/archive/sept2016.tar.gz" FILENAME "DXUT-sept2016.tar.gz" SHA512 190006c194284a1f5d614477896b0469a59ece05dff37477dadbe98808a5c33e274c0c1bb1390f22d1b5e06c9f534f4b50d6002157b2a391e01c2192b8e08869 ) -vcpkg_extract_source_archive(${ARCHIVE_FILE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) IF (TRIPLET_SYSTEM_ARCH MATCHES "x86") SET(BUILD_ARCH "Win32") diff --git a/ports/entityx/CONTROL b/ports/entityx/CONTROL index 9585262b8..281a4206b 100644 --- a/ports/entityx/CONTROL +++ b/ports/entityx/CONTROL @@ -1,4 +1,4 @@ Source: entityx -Version: 1.3.0-1 +Version: 1.3.0-2 Description: EntityX - A fast, type-safe C++ Entity-Component system. Homepage: https://github.com/alecthomas/entityx diff --git a/ports/entityx/enable-std14.patch b/ports/entityx/enable-std14.patch deleted file mode 100644 index 06eff08ee..000000000 --- a/ports/entityx/enable-std14.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 23f5063..1fa10b8 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -24,6 +24,7 @@ set(ENTITYX_BUILD_SHARED true CACHE BOOL "Build shared libraries?") - include(${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake) - include(CheckCXXSourceCompiles) - -+set(CMAKE_CXX_STANDARD 14) - # Default compiler args - if(0) - if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "(GNU|.*Clang)") diff --git a/ports/entityx/portfile.cmake b/ports/entityx/portfile.cmake index b55f5f602..326a21bdf 100644 --- a/ports/entityx/portfile.cmake +++ b/ports/entityx/portfile.cmake @@ -8,8 +8,6 @@ vcpkg_from_github( REF 1.3.0 SHA512 724a3f421f802e60a1106ff8a69435c9a9da14e35c3e88565bbc17bff3a17f2d9771818aac83320cc4f14de0ec770a66f1eb7cbf4318f43abd516c63e077c07d HEAD_REF master - PATCHES - enable-std14.patch ) vcpkg_configure_cmake( diff --git a/ports/epsilon/CONTROL b/ports/epsilon/CONTROL index 3b740a976..be2f78562 100644 --- a/ports/epsilon/CONTROL +++ b/ports/epsilon/CONTROL @@ -1,4 +1,4 @@ Source: epsilon -Version: 0.9.2 +Version: 0.9.2-1 Homepage: https://sourceforge.net/projects/epsilon-project/ Description: EPSILON is an Open Source wavelet image compressor, that is aimed on parallel and robust image processing. \ No newline at end of file diff --git a/ports/epsilon/portfile.cmake b/ports/epsilon/portfile.cmake index 70aee7e1e..e21cc3d3a 100644 --- a/ports/epsilon/portfile.cmake +++ b/ports/epsilon/portfile.cmake @@ -9,7 +9,7 @@ vcpkg_download_distfile(ARCHIVE # support out of source builds. set(SOURCE_PATH_DEBUG ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-debug/epsilon-0.9.2) set(SOURCE_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-release/epsilon-0.9.2) - +file(REMOVE_RECURSE ${SOURCE_PATH_DEBUG} ${SOURCE_PATH_RELEASE}) # to be sure that the patches can be properly applied, we always clean the buildtrees folder foreach(BUILD_TYPE debug release) vcpkg_extract_source_archive(${ARCHIVE} ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE}) vcpkg_apply_patches( @@ -96,4 +96,3 @@ file(INSTALL ${FILTERS} vcpkg_copy_pdbs() file(INSTALL ${SOURCE_PATH_RELEASE}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/epsilon/ RENAME copyright) message(STATUS "Packaging ${TARGET_TRIPLET} done") - diff --git a/ports/evpp/portfile.cmake b/ports/evpp/portfile.cmake index b5db0744c..ed75772de 100644 --- a/ports/evpp/portfile.cmake +++ b/ports/evpp/portfile.cmake @@ -22,9 +22,7 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -# remove duplicated include files file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) - diff --git a/ports/fadbad/portfile.cmake b/ports/fadbad/portfile.cmake index af9721962..db947be82 100644 --- a/ports/fadbad/portfile.cmake +++ b/ports/fadbad/portfile.cmake @@ -1,11 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/FADBAD++) + vcpkg_download_distfile(ARCHIVE URLS "http://www.fadbad.com/download/FADBAD++-2.1.tar.gz" FILENAME "FADBAD++-2.1.tar.gz" SHA512 7a82c51c03acb0806d673853f391379ea974e304c831ee15ef05a90c30661736ff572481b5b8254b2646c63968043ee90a06cba88261b87fc34d01f92403360a ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(INSTALL ${SOURCE_PATH}/tadiff.h diff --git a/ports/fcl/CONTROL b/ports/fcl/CONTROL index aaae4f57b..161192e79 100644 --- a/ports/fcl/CONTROL +++ b/ports/fcl/CONTROL @@ -1,5 +1,5 @@ Source: fcl -Version: 0.5.0-6 +Version: 0.5.0-7 Homepage: https://github.com/flexible-collision-library/fcl Description: a library for performing three types of proximity queries on a pair of geometric models composed of triangles Build-Depends: ccd, octomap diff --git a/ports/fcl/portfile.cmake b/ports/fcl/portfile.cmake index 65ff738d0..6c7f54551 100644 --- a/ports/fcl/portfile.cmake +++ b/ports/fcl/portfile.cmake @@ -8,13 +8,10 @@ vcpkg_from_github( REF 54e9619bc2b084ee50e986ac3308160d663481c4 SHA512 11bfa3fdeeda6766769a34d2248ca32b6b13ecb32b412c068aa1c7aa3495d55b3f7a82a93621965904f9813c3fd0f128a84f796ae5731d2ff15b85935a0e1261 HEAD_REF fcl-0.5 -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001_fix_package_detection.patch - ${CMAKE_CURRENT_LIST_DIR}/0002-fix_dependencies.patch) + 0001_fix_package_detection.patch + 0002-fix_dependencies.patch +) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) set(FCL_STATIC_LIBRARY ON) diff --git a/ports/flint/CONTROL b/ports/flint/CONTROL index 9b45b6608..cac9d2569 100644 --- a/ports/flint/CONTROL +++ b/ports/flint/CONTROL @@ -1,5 +1,5 @@ Source: flint -Version: 2.5.2-3 +Version: 2.5.2-4 Homepage: https://www.flintlib.org/ Description: Fast Library for Number Theory Build-Depends: mpir, mpfr, pthreads, gettimeofday diff --git a/ports/flint/portfile.cmake b/ports/flint/portfile.cmake index 9a9d5136b..a60227617 100644 --- a/ports/flint/portfile.cmake +++ b/ports/flint/portfile.cmake @@ -2,19 +2,19 @@ include(vcpkg_common_functions) set(FLINT_VERSION 2.5.2) set(FLINT_HASH "8606b369af505d5fcedd05d95fcd04afac2a916fc5291501c56785891cfdb2f9bc98700b2d05afd1d9482fb96df2a8c8bf1cd0e5696df46775df9fa743eb900b") -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/flint-${FLINT_VERSION}) -vcpkg_download_distfile(ARCHIVE_FILE +vcpkg_download_distfile(ARCHIVE URLS "http://www.flintlib.org/flint-${FLINT_VERSION}.zip" FILENAME "flint-${FLINT_VERSION}.zip" SHA512 ${FLINT_HASH} ) -vcpkg_extract_source_archive(${ARCHIVE_FILE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/lib_flint.patch" - "${CMAKE_CURRENT_LIST_DIR}/dll_flint.patch" +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + lib_flint.patch + dll_flint.patch ) set(MSVC_VERSION 14) diff --git a/ports/fltk/CONTROL b/ports/fltk/CONTROL index 36befdeb4..9b047e013 100644 --- a/ports/fltk/CONTROL +++ b/ports/fltk/CONTROL @@ -1,5 +1,5 @@ Source: fltk -Version: 1.3.4-7 +Version: 1.3.4-8 Homepage: https://www.fltk.org/ Description: FLTK (pronounced fulltick) is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its built-in GLUT emulation. Build-Depends: zlib, libpng, libjpeg-turbo diff --git a/ports/fltk/portfile.cmake b/ports/fltk/portfile.cmake index 7f5ea52be..77bf7bb22 100644 --- a/ports/fltk/portfile.cmake +++ b/ports/fltk/portfile.cmake @@ -1,17 +1,17 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/fltk-1.3.4-1) + vcpkg_download_distfile(ARCHIVE URLS "http://fltk.org/pub/fltk/1.3.4/fltk-1.3.4-1-source.tar.gz" FILENAME "fltk.tar.gz" SHA512 0be1c8e6bb7a8c7ef484941a73868d5e40b90e97a8e5dc747bac2be53a350621975406ecfd4a9bcee8eeb7afd886e75bf7a6d6478fd6c56d16e54059f22f0891 ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/fltk-1.3.4-1 +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} PATCHES - "${CMAKE_CURRENT_LIST_DIR}/findlibsfix.patch" - "${CMAKE_CURRENT_LIST_DIR}/add-link-libraries.patch" + findlibsfix.patch + add-link-libraries.patch ) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) diff --git a/ports/fluidsynth/portfile.cmake b/ports/fluidsynth/portfile.cmake index 3427180a3..8554e9734 100644 --- a/ports/fluidsynth/portfile.cmake +++ b/ports/fluidsynth/portfile.cmake @@ -1,5 +1,4 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/fluidsynth-1.1.10) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH diff --git a/ports/fmilib/0001-remove-install-prefix.patch b/ports/fmilib/0001-remove-install-prefix.patch new file mode 100644 index 000000000..b54c903d7 --- /dev/null +++ b/ports/fmilib/0001-remove-install-prefix.patch @@ -0,0 +1,36 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f7372bf..f3c11f1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -26,7 +26,6 @@ set(FMILIBRARYHOME ${FMILibrary_SOURCE_DIR}) + set(FMILIBRARYBUILD ${FMILibrary_BINARY_DIR}) + + # User configuration options and parameters +-SET(FMILIB_INSTALL_PREFIX ${FMILibrary_BINARY_DIR}/../install CACHE PATH "Prefix prepended to install directories") + set(FMILIB_THIRDPARTYLIBS ${FMILibrary_SOURCE_DIR}/ThirdParty CACHE PATH "Path to the ThirdParty library dir" ) + set(FMILIB_FMI_STANDARD_HEADERS ${FMILIB_THIRDPARTYLIBS}/FMI/default CACHE PATH "Path to the FMI standard headers dir" ) + +@@ -84,7 +83,6 @@ IF(NOT CMAKE_BUILD_TYPE) + SET(CMAKE_BUILD_TYPE ${FMILIB_DEFAULT_BUILD_TYPE}) + ENDIF(NOT CMAKE_BUILD_TYPE) + +-SET(CMAKE_INSTALL_PREFIX ${FMILIB_INSTALL_PREFIX} CACHE INTERNAL "Prefix prepended to install directories" FORCE) + + # debug_message is used to trace the build script + function(debug_message) +@@ -350,7 +348,6 @@ endfunction() + + if(FMILIB_GENERATE_DOXYGEN_DOC) + +- file(MAKE_DIRECTORY "${FMILIB_INSTALL_PREFIX}/doc") + + set(DOXYFILE_IN ${FMILIBRARYHOME}/Config.cmake/fmilib_doxydoc.conf CACHE INTERNAL "Doxygen config file") + set(DOXYFILE_IMAGE_DIR "${FMILIBRARYHOME}/images" CACHE INTERNAL "Doxygen images" FORCE) +@@ -372,7 +369,6 @@ if(FMILIB_GENERATE_DOXYGEN_DOC) + set(DOXYFILE_SOURCE_DIR "${FMILIBRARYBUILD}/doc" CACHE INTERNAL "Doxygen default source dir" FORCE) + set(DOXYFILE_EXTRA_SOURCES "${DOXYFILE_EXTRA_SOURCES} \"${FMILIBRARYHOME}/Test\"") + +- set(DOXYFILE_OUTPUT_DIR "${FMILIB_INSTALL_PREFIX}/doc") + + set(DOXYFILE_STRIP_FROM_PATH "${FMILIBRARYHOME}") + diff --git a/ports/fmilib/LICENSE b/ports/fmilib/LICENSE deleted file mode 100644 index 27d973645..000000000 --- a/ports/fmilib/LICENSE +++ /dev/null @@ -1,26 +0,0 @@ -License -------- - -Copyright (C) 2012 Modelon AB - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: -- Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -- Neither the name of the Modelon AB nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL MODELON AB BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/ports/fmilib/portfile.cmake b/ports/fmilib/portfile.cmake index bd7374559..39b0e0377 100644 --- a/ports/fmilib/portfile.cmake +++ b/ports/fmilib/portfile.cmake @@ -1,13 +1,19 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/FMILibrary-2.0.3) +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + vcpkg_download_distfile(ARCHIVE URLS "https://jmodelica.org/fmil/FMILibrary-2.0.3-src.zip" FILENAME "FMILibrary-2.0.3-src.zip" SHA512 86e4b5019d8f2a76b01141411845d977fb3949617604de0b34351f23647e3e8b378477de184e1c4f2f59297bc4c7de3155e0edba9099b8924594a36b37b04cc8 ) -vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + 0001-remove-install-prefix.patch +) # Note that if you have configured and built both static and shared library on Windows # but want to link with the static library compile time define "FMILIB_BUILDING_LIBRARY" must be set. @@ -45,140 +51,18 @@ else() SET(FMILIB_BUILD_SHARED_LIB ON) endif() -SET(OPTIONS - -DFMILIB_BUILD_TESTS=OFF - -DFMILIB_BUILD_STATIC_LIB=${FMILIB_BUILD_STATIC_LIB} - -DFMILIB_BUILD_SHARED_LIB=${FMILIB_BUILD_SHARED_LIB} - -DFMILIB_BUILDING_LIBRARY=${FMILIB_BUILDING_LIBRARY} - -DFMILIB_BUILD_WITH_STATIC_RTLIB=${FMILIB_BUILD_WITH_STATIC_RTLIB} +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DFMILIB_BUILD_TESTS=OFF + -DFMILIB_BUILD_STATIC_LIB=${FMILIB_BUILD_STATIC_LIB} + -DFMILIB_BUILD_SHARED_LIB=${FMILIB_BUILD_SHARED_LIB} + -DFMILIB_BUILDING_LIBRARY=${FMILIB_BUILDING_LIBRARY} + -DFMILIB_BUILD_WITH_STATIC_RTLIB=${FMILIB_BUILD_WITH_STATIC_RTLIB} ) -# Reset package dir -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}) -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}) - -if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - - if(VCPKG_TARGET_ARCHITECTURE MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v120") - set(GENERATOR "Visual Studio 12 2013") - elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v120") - set(GENERATOR "Visual Studio 12 2013 Win64") - elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "arm" AND VCPKG_PLATFORM_TOOLSET MATCHES "v120") - set(GENERATOR "Visual Studio 12 2013 ARM") - - elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140") - set(GENERATOR "Visual Studio 14 2015") - elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140") - set(GENERATOR "Visual Studio 14 2015 Win64") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140") - set(GENERATOR "Visual Studio 14 2015 ARM") - - elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141") - set(GENERATOR "Visual Studio 15 2017") - elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141") - set(GENERATOR "Visual Studio 15 2017 Win64") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141") - set(GENERATOR "Visual Studio 15 2017 ARM") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141") - set(GENERATOR "Visual Studio 15 2017") - else() - message(FATAL_ERROR "Unable to determine appropriate generator for: ${VCPKG_CMAKE_SYSTEM_NAME}-${VCPKG_TARGET_ARCHITECTURE}-${VCPKG_PLATFORM_TOOLSET}") - endif() - -endif() - -foreach(BUILDTYPE "rel" "dbg") - - message("Building ${TARGET_TRIPLET}-${BUILDTYPE}...") - - string(COMPARE EQUAL ${BUILDTYPE} "rel" RELEASE_BUILD) - - SET(BUILD_DIR ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILDTYPE}) - - # Reset working dir - file(REMOVE_RECURSE ${BUILD_DIR}) - file(MAKE_DIRECTORY ${BUILD_DIR}) - - SET(FMILIB_INSTALL_PREFIX ${CURRENT_PACKAGES_DIR}) - if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - SET(OPTIONS ${OPTIONS} -G ${GENERATOR}) - endif() - if(NOT RELEASE_BUILD) - STRING(APPEND FMILIB_INSTALL_PREFIX "/debug") - endif() - - # Step 1: Configure - vcpkg_execute_required_process(COMMAND - cmake - -DFMILIB_INSTALL_PREFIX=${FMILIB_INSTALL_PREFIX} - -DFMILIB_DEFAULT_BUILD_TYPE_RELEASE=${RELEASE_BUILD} - ${OPTIONS} - ${SOURCE_PATH} - WORKING_DIRECTORY - ${BUILD_DIR} - ) - - # Step 2: Build - # Custom build - becouse vcpkg_configure_cmake() + vcpkg_install_cmake() fails on Linux for some unknown reason - if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") - find_program(MAKE make) - if(NOT MAKE) - message(FATAL_ERROR "Could not find make. Please install it through your package manager.") - endif() - vcpkg_execute_required_process(COMMAND make "install" WORKING_DIRECTORY ${BUILD_DIR}) - else() - if(RELEASE_BUILD) - SET(CONFIG "MinSizeRel") - else() - SET(CONFIG "Debug") - endif() - vcpkg_execute_required_process(COMMAND - cmake - --build . - --config ${CONFIG} - --target "install" - WORKING_DIRECTORY - ${BUILD_DIR} - ) - endif() - - if (RELEASE_BUILD) - - # remove /doc folder - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/doc) - - # Move .dll files (if any) from /lib to /bin - file(GLOB TMP ${CURRENT_PACKAGES_DIR}/lib/*.dll) - if (TMP) - file(COPY ${TMP} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) - file(REMOVE ${TMP}) - - # Add bin to path - set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin;$ENV{PATH}") - endif() - - else() - - # remove duplicate folders in /debug - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/doc) - - # Move .dll files (if any) from /lib to /bin - file(GLOB TMP ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) - if (TMP) - file(COPY ${TMP} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - file(REMOVE ${TMP}) - - # Add bin to path - set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/bin;$ENV{PATH}") - endif() - - endif() - - message("Building ${TARGET_TRIPLET}-${BUILDTYPE}... Done") - -endforeach() - +vcpkg_install_cmake() vcpkg_copy_pdbs() - +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/fontconfig/CONTROL b/ports/fontconfig/CONTROL index fbcc3f536..d350c7fc4 100644 --- a/ports/fontconfig/CONTROL +++ b/ports/fontconfig/CONTROL @@ -1,5 +1,5 @@ -Source: fontconfig -Version: 2.12.4-9 -Homepage: https://www.freedesktop.org/software/fontconfig/front.html -Description: Library for configuring and customizing font access. -Build-Depends: freetype, expat, libiconv, dirent +Source: fontconfig +Version: 2.12.4-10 +Homepage: https://www.freedesktop.org/software/fontconfig/front.html +Description: Library for configuring and customizing font access. +Build-Depends: freetype, expat, libiconv, dirent diff --git a/ports/fontconfig/fcobjtypehash.patch b/ports/fontconfig/fcobjtypehash.patch index bf86ca3b0..e0db68942 100644 --- a/ports/fontconfig/fcobjtypehash.patch +++ b/ports/fontconfig/fcobjtypehash.patch @@ -1,18 +1,18 @@ -diff --git a/src/fcobjs.c b/src/fcobjs.c -index 33bba8d..e6b0808 100644 ---- a/src/fcobjs.c -+++ b/src/fcobjs.c -@@ -24,11 +24,13 @@ - - #include "fcint.h" - -+#if 0 - static unsigned int - FcObjectTypeHash (register const char *str, register FC_GPERF_SIZE_T len); - - static const struct FcObjectTypeInfo * - FcObjectTypeLookup (register const char *str, register FC_GPERF_SIZE_T len); -+#endif - - #include "fcobjshash.h" - +diff --git a/src/fcobjs.c b/src/fcobjs.c +index 33bba8d..e6b0808 100644 +--- a/src/fcobjs.c ++++ b/src/fcobjs.c +@@ -24,11 +24,13 @@ + + #include "fcint.h" + ++#if 0 + static unsigned int + FcObjectTypeHash (register const char *str, register FC_GPERF_SIZE_T len); + + static const struct FcObjectTypeInfo * + FcObjectTypeLookup (register const char *str, register FC_GPERF_SIZE_T len); ++#endif + + #include "fcobjshash.h" + diff --git a/ports/fontconfig/portfile.cmake b/ports/fontconfig/portfile.cmake index 772e741fd..db7692779 100644 --- a/ports/fontconfig/portfile.cmake +++ b/ports/fontconfig/portfile.cmake @@ -1,51 +1,51 @@ - -include(vcpkg_common_functions) - -set(FONTCONFIG_VERSION 2.12.4) -vcpkg_download_distfile(ARCHIVE - URLS "https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG_VERSION}.tar.gz" - FILENAME "fontconfig-${FONTCONFIG_VERSION}.tar.gz" - SHA512 2be3ee0e8e0e3b62571135a3cae06e456c289dd1ad40ef2a7c780406418ee5efce863a833eca5a8ef55bc737a0ea04ef562bba6fd27e174ae43e42131b52810d -) - -vcpkg_extract_source_archive_ex( - OUT_SOURCE_PATH SOURCE_PATH - ARCHIVE ${ARCHIVE} - REF ${FONTCONFIG_VERSION} - PATCHES fcobjtypehash.patch -) - -file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS - -DFC_INCLUDE_DIR=${CMAKE_CURRENT_LIST_DIR}/include - OPTIONS_DEBUG - -DFC_SKIP_TOOLS=ON - -DFC_SKIP_HEADERS=ON -) - -vcpkg_install_cmake() - -vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-fontconfig TARGET_PATH share/unofficial-fontconfig) - -vcpkg_copy_pdbs() - -if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - foreach(HEADER fcfreetype.h fontconfig.h) - file(READ ${CURRENT_PACKAGES_DIR}/include/fontconfig/${HEADER} FC_HEADER) - if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - string(REPLACE "#define FcPublic" "#define FcPublic __declspec(dllimport)" FC_HEADER "${FC_HEADER}") - else() - string(REPLACE "#define FcPublic" "#define FcPublic __attribute__((visibility(\"default\")))" FC_HEADER "${FC_HEADER}") - endif() - file(WRITE ${CURRENT_PACKAGES_DIR}/include/fontconfig/${HEADER} "${FC_HEADER}") - endforeach() -endif() - -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/fontconfig) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/fontconfig/COPYING ${CURRENT_PACKAGES_DIR}/share/fontconfig/copyright) - -vcpkg_test_cmake(PACKAGE_NAME unofficial-fontconfig) + +include(vcpkg_common_functions) + +set(FONTCONFIG_VERSION 2.12.4) +vcpkg_download_distfile(ARCHIVE + URLS "https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG_VERSION}.tar.gz" + FILENAME "fontconfig-${FONTCONFIG_VERSION}.tar.gz" + SHA512 2be3ee0e8e0e3b62571135a3cae06e456c289dd1ad40ef2a7c780406418ee5efce863a833eca5a8ef55bc737a0ea04ef562bba6fd27e174ae43e42131b52810d +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${FONTCONFIG_VERSION} + PATCHES fcobjtypehash.patch +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DFC_INCLUDE_DIR=${CMAKE_CURRENT_LIST_DIR}/include + OPTIONS_DEBUG + -DFC_SKIP_TOOLS=ON + -DFC_SKIP_HEADERS=ON +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-fontconfig TARGET_PATH share/unofficial-fontconfig) + +vcpkg_copy_pdbs() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + foreach(HEADER fcfreetype.h fontconfig.h) + file(READ ${CURRENT_PACKAGES_DIR}/include/fontconfig/${HEADER} FC_HEADER) + if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + string(REPLACE "#define FcPublic" "#define FcPublic __declspec(dllimport)" FC_HEADER "${FC_HEADER}") + else() + string(REPLACE "#define FcPublic" "#define FcPublic __attribute__((visibility(\"default\")))" FC_HEADER "${FC_HEADER}") + endif() + file(WRITE ${CURRENT_PACKAGES_DIR}/include/fontconfig/${HEADER} "${FC_HEADER}") + endforeach() +endif() + +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/fontconfig) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/fontconfig/COPYING ${CURRENT_PACKAGES_DIR}/share/fontconfig/copyright) + +vcpkg_test_cmake(PACKAGE_NAME unofficial-fontconfig) diff --git a/ports/freeglut/portfile.cmake b/ports/freeglut/portfile.cmake index ab95e3165..bec7489b8 100644 --- a/ports/freeglut/portfile.cmake +++ b/ports/freeglut/portfile.cmake @@ -1,5 +1,5 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/freeglut-3.0.0) + vcpkg_download_distfile(ARCHIVE URLS "http://downloads.sourceforge.net/project/freeglut/freeglut/3.0.0/freeglut-3.0.0.tar.gz" FILENAME "freeglut-3.0.0.tar.gz" diff --git a/ports/freeimage/portfile.cmake b/ports/freeimage/portfile.cmake index dc57a5691..237ed2466 100644 --- a/ports/freeimage/portfile.cmake +++ b/ports/freeimage/portfile.cmake @@ -1,6 +1,5 @@ -include(${CMAKE_TRIPLET_FILE}) include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/FreeImage) + vcpkg_download_distfile(ARCHIVE URLS "http://downloads.sourceforge.net/freeimage/FreeImage3180.zip" FILENAME "FreeImage3180.zip" diff --git a/ports/freetds/portfile.cmake b/ports/freetds/portfile.cmake index 23812f85a..a03fd0c9c 100644 --- a/ports/freetds/portfile.cmake +++ b/ports/freetds/portfile.cmake @@ -1,11 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/freetds-1.1.6) + vcpkg_download_distfile(ARCHIVE URLS "https://www.freetds.org/files/stable/freetds-1.1.6.tar.bz2" FILENAME "freetds-1.1.6.tar.bz2" SHA512 160c8638302fd36a3f42d031dbd58525cde899b64d320f6187ce5865ea2c049a1af63be419623e4cd18ccf229dd2ee7ec509bc5721c3371de0f31710dad7470d ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) set(BUILD_freetds_openssl OFF) if("openssl" IN_LIST FEATURES) diff --git a/ports/freetype-gl/0001-Use-external-Glew-and-Freetype.patch b/ports/freetype-gl/0001-Use-external-Glew-and-Freetype.patch deleted file mode 100644 index 6c33f9e0e..000000000 --- a/ports/freetype-gl/0001-Use-external-Glew-and-Freetype.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 653dae652bac66e4e96a94ba8ebfabb2227738b7 Mon Sep 17 00:00:00 2001 -From: Daniel Olivier -Date: Thu, 19 Oct 2017 21:26:09 -0400 -Subject: [PATCH] Use external Glew and Freetype - - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 4eb55e9..2546de6 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -74,13 +74,6 @@ if(NOT HAVE_M_PI) - endif() - endif() - --if(NOT MINGW AND (WIN32 OR WIN64)) -- set(GLEW_ROOT_DIR -- ${CMAKE_CURRENT_SOURCE_DIR}/windows/glew) -- set(ENV{FREETYPE_DIR} -- ${CMAKE_CURRENT_SOURCE_DIR}/windows/freetype) --endif() -- - find_package(OpenGL REQUIRED) - find_package(Freetype REQUIRED) - \ No newline at end of file diff --git a/ports/freetype-gl/CONTROL b/ports/freetype-gl/CONTROL index 57af93cbc..fd8d7c7ee 100644 --- a/ports/freetype-gl/CONTROL +++ b/ports/freetype-gl/CONTROL @@ -1,5 +1,5 @@ Source: freetype-gl -Version: 2019-03-29-1 +Version: 2019-03-29-2 Homepage: https://github.com/rougier/freetype-gl Description: OpenGL text using one vertex buffer, one texture and FreeType Build-Depends: glew, freetype diff --git a/ports/freetype-gl/portfile.cmake b/ports/freetype-gl/portfile.cmake index c23a21da9..86d7f678a 100644 --- a/ports/freetype-gl/portfile.cmake +++ b/ports/freetype-gl/portfile.cmake @@ -8,7 +8,6 @@ vcpkg_from_github( REF a91a3dda326ceaf66b7279bf64ba07014d3f81b8 SHA512 8e04573dfb400e14e2c1d3a2cd851a66f8218ccfdaa4f701ed9369d7f040d7028582e72af9b236af42d9d3c6c128014670e8ae0261c6f4770affd1aea1454b1e HEAD_REF master - PATCHES 0001-Use-external-Glew-and-Freetype.patch ) # make sure that no "internal" libraries are used by removing them diff --git a/ports/freexl/CONTROL b/ports/freexl/CONTROL index d0348a33a..92b358cd0 100644 --- a/ports/freexl/CONTROL +++ b/ports/freexl/CONTROL @@ -1,6 +1,5 @@ Source: freexl -Version: 1.0.4-5 +Version: 1.0.4-6 Homepage: https://www.gaia-gis.it/gaia-sins/freexl-sources Description: FreeXL is an open source library to extract valid data from within an Excel (.xls) spreadsheet Build-Depends: libiconv - diff --git a/ports/freexl/portfile.cmake b/ports/freexl/portfile.cmake index b606b651a..825378837 100644 --- a/ports/freexl/portfile.cmake +++ b/ports/freexl/portfile.cmake @@ -6,6 +6,7 @@ vcpkg_download_distfile(ARCHIVE FILENAME "freexl-${FREEXL_VERSION_STR}.tar.gz" SHA512 d72561f7b82e0281cb211fbf249e5e45411a7cdd009cfb58da3696f0a0341ea7df210883bfde794be28738486aeb4ffc67ec2c98fd2acde5280e246e204ce788 ) + if (VCPKG_TARGET_IS_WINDOWS) vcpkg_extract_source_archive_ex( ARCHIVE ${ARCHIVE} diff --git a/ports/gainput/portfile.cmake b/ports/gainput/portfile.cmake index 6175acb17..b84ed79dc 100644 --- a/ports/gainput/portfile.cmake +++ b/ports/gainput/portfile.cmake @@ -1,23 +1,19 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gainput-1.0.0) -vcpkg_download_distfile(ARCHIVE - URLS "http://github.com/jkuhlmann/gainput/archive/v1.0.0.zip" - FILENAME "gainput-1.0.0.zip" - SHA512 dab221290560298693f54bebced1da5ec3dfae2d2adbfd6ceb17b5b28dc2a637a49e479d49fe98680915b29beb5dd2d5c74258598233a053230696186593c88e +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO jkuhlmann/gainput + REF v1.0.0 + SHA512 56fdc4c0613d7260861885b270ebe9e624e940175f41e3ac82516e2eb0d6d229e405fbcc2e54608e7d6751c1d8658b5b5e186153193badc6487274cb284a8cd6 + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA + PREFER_NINJA OPTIONS -DGAINPUT_TESTS=OFF -DGAINPUT_SAMPLES=OFF - # Disable this option if project cannot be built with Ninja - # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2 - # OPTIONS_RELEASE -DOPTIMIZE=1 - # OPTIONS_DEBUG -DDEBUGGABLE=1 ) vcpkg_install_cmake() diff --git a/ports/gdk-pixbuf/portfile.cmake b/ports/gdk-pixbuf/portfile.cmake index ef65115d0..7a72623a7 100644 --- a/ports/gdk-pixbuf/portfile.cmake +++ b/ports/gdk-pixbuf/portfile.cmake @@ -4,13 +4,18 @@ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) set(GDK_PIXBUF_VERSION 2.36) set(GDK_PIXBUF_PATCH 9) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gdk-pixbuf-${GDK_PIXBUF_VERSION}.${GDK_PIXBUF_PATCH}) + vcpkg_download_distfile(ARCHIVE URLS "http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/${GDK_PIXBUF_VERSION}/gdk-pixbuf-${GDK_PIXBUF_VERSION}.${GDK_PIXBUF_PATCH}.tar.xz" FILENAME "gdk-pixbuf-${GDK_PIXBUF_VERSION}.${GDK_PIXBUF_PATCH}.tar.xz" - SHA512 ab8f2cda4490012936b094a1321e64b85e1fa1f8d070fae135a514f87f695201b845f4192e4a02954e2767d44314c0a95d727118853528182952d15890130261) + SHA512 ab8f2cda4490012936b094a1321e64b85e1fa1f8d070fae135a514f87f695201b845f4192e4a02954e2767d44314c0a95d727118853528182952d15890130261 +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) -vcpkg_extract_source_archive(${ARCHIVE}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) configure_file(${CMAKE_CURRENT_LIST_DIR}/config.h.linux ${SOURCE_PATH}/config.h.linux) diff --git a/ports/geographiclib/CONTROL b/ports/geographiclib/CONTROL index 67d657061..2738c3d74 100644 --- a/ports/geographiclib/CONTROL +++ b/ports/geographiclib/CONTROL @@ -1,4 +1,4 @@ Source: geographiclib -Version: 1.47-patch1-9 +Version: 1.47-patch1-10 Homepage: https://sourceforge.net/projects/geographiclib/ Description: a small set of C++ classes for performing conversions between geographic, UTM, UPS, MGRS, geocentric, and local cartesian coordinates, for gravity (e.g., EGM2008), geoid height, and geomagnetic field (e.g., WMM2010) calculations, and for solving geodesic problems. diff --git a/ports/geographiclib/portfile.cmake b/ports/geographiclib/portfile.cmake index 38e65c3db..e4fe5ad7a 100644 --- a/ports/geographiclib/portfile.cmake +++ b/ports/geographiclib/portfile.cmake @@ -1,7 +1,7 @@ include(vcpkg_common_functions) vcpkg_download_distfile(ARCHIVE - URLS "https://jaist.dl.sourceforge.net/project/geographiclib/distrib/GeographicLib-1.47-patch1.zip" + URLS "https://jaist.dl.sourceforge.net/project/geographiclib/distrib/archive/GeographicLib-1.47-patch1.zip" FILENAME "geographiclib-1.47-patch1.zip" SHA512 d8fdfd7ae093057ec1a4ab922457fe71a3fb9975df5b673c276d62a0e9c4f212dc63652830b9d89e3890bc96aafd335992943cf6a1bce8260acf932d1eb7abfd ) diff --git a/ports/gl3w/CONTROL b/ports/gl3w/CONTROL index 7ce058fbc..02550fdc5 100644 --- a/ports/gl3w/CONTROL +++ b/ports/gl3w/CONTROL @@ -1,5 +1,5 @@ Source: gl3w -Version: 2018-05-31-1 +Version: 2018-05-31-2 Homepage: https://github.com/skaslev/gl3w Description: Simple OpenGL core profile loading Build-Depends: opengl-registry diff --git a/ports/gl3w/portfile.cmake b/ports/gl3w/portfile.cmake index ca35eb2bf..d53fc61b1 100644 --- a/ports/gl3w/portfile.cmake +++ b/ports/gl3w/portfile.cmake @@ -6,16 +6,13 @@ vcpkg_from_github( REF 99ed321100d37032cb6bfa7dd8dea85f10c86132 SHA512 217f65644c73c33383b09893fa5ede066cc4b1cddab051feac11d7e939dba14ed637b297ea42a0426bc0a1a3bc665998a91c27ca10d28704ce9e2d3d90e73595 HEAD_REF master + PATCHES + 0001-enable-shared-build.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY ${CURRENT_INSTALLED_DIR}/include/GL/glcorearb.h DESTINATION ${SOURCE_PATH}/include/GL) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-enable-shared-build.patch -) - vcpkg_find_acquire_program(PYTHON3) vcpkg_execute_required_process( diff --git a/ports/glew/portfile.cmake b/ports/glew/portfile.cmake index 1a3bd2a10..796574df1 100644 --- a/ports/glew/portfile.cmake +++ b/ports/glew/portfile.cmake @@ -1,17 +1,16 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/glew-58abdfb190) - -# Don't change to vcpkg_from_github! The github-auto-generated archives are missing some files. +# Don't change to vcpkg_from_github! The sources in the git repository (archives) are missing some files that are distributed inside releases. # More info: https://github.com/nigels-com/glew/issues/31 and https://github.com/nigels-com/glew/issues/13 -vcpkg_download_distfile(ARCHIVE_FILE +vcpkg_download_distfile(ARCHIVE URLS "https://github.com/nigels-com/glew/releases/download/glew-2.1.0/glew-2.1.0.tgz" FILENAME "glew-2.1.0.tgz" SHA512 9a9b4d81482ccaac4b476c34ed537585ae754a82ebb51c3efa16d953c25cc3931be46ed2e49e79c730cd8afc6a1b78c97d52cd714044a339c3bc29734cd4d2ab ) + vcpkg_extract_source_archive_ex( - OUT_SOURCE_PATH ${SOURCE_PATH} - ARCHIVE ${ARCHIVE_FILE} + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} REF glew PATCHES fix-LNK2019.patch ) @@ -22,7 +21,7 @@ vcpkg_configure_cmake( DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_UTILS=OFF - ) +) vcpkg_install_cmake() vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/glew) diff --git a/ports/glfw3/CONTROL b/ports/glfw3/CONTROL index 48a13de9e..6c99ef4a7 100644 --- a/ports/glfw3/CONTROL +++ b/ports/glfw3/CONTROL @@ -1,4 +1,4 @@ Source: glfw3 -Version: 3.3-2 +Version: 3.3-3 Homepage: https://github.com/glfw/glfw Description: GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc. diff --git a/ports/glfw3/move-cmake-min-req.patch b/ports/glfw3/move-cmake-min-req.patch deleted file mode 100644 index 7b5c595df..000000000 --- a/ports/glfw3/move-cmake-min-req.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b1476bd..00fc0b9 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1,8 +1,8 @@ - set(CMAKE_LEGACY_CYGWIN_WIN32 OFF) - -+cmake_minimum_required(VERSION 2.8.12) - project(GLFW C) - --cmake_minimum_required(VERSION 2.8.12) - - if (NOT CMAKE_VERSION VERSION_LESS "3.0") - # Until all major package systems have moved to CMake 3, diff --git a/ports/glfw3/portfile.cmake b/ports/glfw3/portfile.cmake index 0ef2d50ba..5b399134b 100644 --- a/ports/glfw3/portfile.cmake +++ b/ports/glfw3/portfile.cmake @@ -7,7 +7,6 @@ vcpkg_from_github( SHA512 e74bb7ba0c1c3a524a193c4fb5a2d13ba0e75f8e309612ea19cdcc944859d6e2fe29d8b2e3db76236e1011b637564ddd5f4a176dcccfeb84d09bda060f08f774 HEAD_REF master PATCHES - move-cmake-min-req.patch fix-config.patch ) @@ -50,7 +49,6 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) endif() endif() -file(COPY ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/glfw3) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/glfw3/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/glfw3/copyright) +file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) vcpkg_copy_pdbs() diff --git a/ports/glibmm/CONTROL b/ports/glibmm/CONTROL index 4b2b8283f..4baf236e8 100644 --- a/ports/glibmm/CONTROL +++ b/ports/glibmm/CONTROL @@ -1,5 +1,5 @@ Source: glibmm -Version: 2.52.1-9 +Version: 2.52.1-10 Description: This is glibmm, a C++ API for parts of glib that are useful for C++. Homepage: https://www.gtkmm.org. Build-Depends: zlib, pcre, libffi, gettext, libiconv, glib, libsigcpp diff --git a/ports/glibmm/portfile.cmake b/ports/glibmm/portfile.cmake index 460e32cac..61e71a399 100644 --- a/ports/glibmm/portfile.cmake +++ b/ports/glibmm/portfile.cmake @@ -5,19 +5,18 @@ if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) message(FATAL_ERROR "Error: UWP builds are currently not supported.") endif() -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/glibmm-2.52.1) vcpkg_download_distfile(ARCHIVE URLS "http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.52/glibmm-2.52.1.tar.xz" FILENAME "glibmm-2.52.1.tar.xz" SHA512 702158762cb28972b315ab98dc00a62e532bda08b6e76dc2a2556e8cb381c2021290891887a4af2fbff5a62bab4d50581be73037dc8e0dc47d5febd6cbeb7bda ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/glibmm-api-variant.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-define-glibmmconfig.patch +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + glibmm-api-variant.patch + fix-define-glibmmconfig.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/google-cloud-cpp/CONTROL b/ports/google-cloud-cpp/CONTROL index df2e3c8a3..2d17390ee 100644 --- a/ports/google-cloud-cpp/CONTROL +++ b/ports/google-cloud-cpp/CONTROL @@ -1,5 +1,5 @@ -Source: google-cloud-cpp -Version: 0.14.0 -Build-Depends: grpc, curl[ssl], crc32c, googleapis -Description: C++ Client Libraries for Google Cloud Platform APIs. -Homepage: https://github.com/googleapis/google-cloud-cpp +Source: google-cloud-cpp +Version: 0.14.0-1 +Build-Depends: grpc, curl[ssl], crc32c, googleapis +Description: C++ Client Libraries for Google Cloud Platform APIs. +Homepage: https://github.com/googleapis/google-cloud-cpp diff --git a/ports/graphicsmagick/CONTROL b/ports/graphicsmagick/CONTROL index 430afc978..9f3d5b145 100644 --- a/ports/graphicsmagick/CONTROL +++ b/ports/graphicsmagick/CONTROL @@ -1,6 +1,5 @@ Source: graphicsmagick -Maintainer: josuegomes@gmail.com -Version: 1.3.33 +Version: 1.3.33-1 Build-Depends: zlib, bzip2, freetype, libjpeg-turbo, libpng, tiff Homepage: https://sourceforge.net/projects/graphicsmagick/ Description: Image processing library diff --git a/ports/gsl/CONTROL b/ports/gsl/CONTROL index af68d6f02..12b96a5a2 100644 --- a/ports/gsl/CONTROL +++ b/ports/gsl/CONTROL @@ -1,4 +1,4 @@ Source: gsl -Version: 2.4-3 +Version: 2.4-4 Homepage: https://www.gnu.org/software/gsl/ Description: The GNU Scientific Library is a numerical library for C and C++ programmers diff --git a/ports/gsl/portfile.cmake b/ports/gsl/portfile.cmake index 12c0526bc..161b2defa 100644 --- a/ports/gsl/portfile.cmake +++ b/ports/gsl/portfile.cmake @@ -1,23 +1,22 @@ include(vcpkg_common_functions) set(GSL_VERSION 2.4) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gsl-${GSL_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "ftp://ftp.gnu.org/gnu/gsl/gsl-${GSL_VERSION}.tar.gz" FILENAME "gsl-${GSL_VERSION}.tar.gz" SHA512 12442b023dd959e8b22a9c486646b5cedec7fdba0daf2604cda365cf96d10d99aefdec2b42e59c536cc071da1525373454e5ed6f4b15293b305ca9b1dc6db130 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + 0001-configure.patch + 0002-add-fp-control.patch +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001-configure.patch - ${CMAKE_CURRENT_LIST_DIR}/0002-add-fp-control.patch -) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -25,9 +24,7 @@ vcpkg_configure_cmake( ) vcpkg_install_cmake() - -# Handle copyright -file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/gsl) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/gsl/COPYING ${CURRENT_PACKAGES_DIR}/share/gsl/copyright) - vcpkg_copy_pdbs() + +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/gsoap/CONTROL b/ports/gsoap/CONTROL index f67780b3d..174bd57c8 100644 --- a/ports/gsoap/CONTROL +++ b/ports/gsoap/CONTROL @@ -1,5 +1,5 @@ Source: gsoap -Version: 2.8.93-1 +Version: 2.8.93-2 Build-Depends: curl Homepage: https://sourceforge.net/projects/gsoap2/ Description: The gSOAP toolkit is a C and C++ software development toolkit for SOAP and REST XML Web services and generic C/C++ XML data bindings. \ No newline at end of file diff --git a/ports/gsoap/portfile.cmake b/ports/gsoap/portfile.cmake index a75202f3c..3208614dc 100644 --- a/ports/gsoap/portfile.cmake +++ b/ports/gsoap/portfile.cmake @@ -1,11 +1,8 @@ include(vcpkg_common_functions) -set(GSOAP_VERSION 2.8) -set(GSOAP_SUB_VERSION .93) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gsoap-${GSOAP_VERSION}) vcpkg_download_distfile(ARCHIVE - URLS "https://ayera.dl.sourceforge.net/project/gsoap2/gsoap-${GSOAP_VERSION}/gsoap_${GSOAP_VERSION}${GSOAP_SUB_VERSION}.zip" - FILENAME "gsoap_${GSOAP_VERSION}${GSOAP_SUB_VERSION}.zip" + URLS "https://downloads.sourceforge.net/project/gsoap2/gsoap-2.8/gsoap_2.8.93.zip" + FILENAME "gsoap_2.8.93.zip" SHA512 45965d04e1c46e06803467887f62d9bea5909fa2d4c4d9ffc935f9fced014efed9169a0171a555067c89ef47b2def9983b277eecee18eb9e70d7198bc72b1ece ) diff --git a/ports/gtk/portfile.cmake b/ports/gtk/portfile.cmake index b915ce5f3..ad729ba01 100644 --- a/ports/gtk/portfile.cmake +++ b/ports/gtk/portfile.cmake @@ -1,13 +1,18 @@ include(vcpkg_common_functions) set(GTK_VERSION 3.22.19) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gtk+-${GTK_VERSION}) + vcpkg_download_distfile(ARCHIVE URLS "https://ftp.gnome.org/pub/gnome/sources/gtk+/3.22/gtk+-${GTK_VERSION}.tar.xz" FILENAME "gtk+-${GTK_VERSION}.tar.xz" - SHA512 c83198794433ee6eb29f8740d59bd7056cd36808b4bff1a99563ab1a1742e6635dab4f2a8be33317f74d3b336f0d1adc28dd91410da056b50a08c215f184dce2) + SHA512 c83198794433ee6eb29f8740d59bd7056cd36808b4bff1a99563ab1a1742e6635dab4f2a8be33317f74d3b336f0d1adc28dd91410da056b50a08c215f184dce2 +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) -vcpkg_extract_source_archive(${ARCHIVE}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/cmake DESTINATION ${SOURCE_PATH}) diff --git a/ports/gtkmm/CONTROL b/ports/gtkmm/CONTROL index 6ac1eede2..b346cd699 100644 --- a/ports/gtkmm/CONTROL +++ b/ports/gtkmm/CONTROL @@ -1,5 +1,5 @@ Source: gtkmm -Version: 3.22.2-1 +Version: 3.22.2-2 Homepage: https://www.gtkmm.org/ Description: gtkmm is the official C++ interface for the popular GUI library GTK+. Build-Depends: glib, atk, gtk, gdk-pixbuf, pango, cairo, libepoxy, gettext, glibmm, atkmm, cairomm, pangomm diff --git a/ports/gtkmm/README b/ports/gtkmm/README deleted file mode 100644 index ea1d8e0a6..000000000 --- a/ports/gtkmm/README +++ /dev/null @@ -1,3 +0,0 @@ -This is gtkmm, the C++ API for GTK+. -See http://www.gtkmm.org/ - diff --git a/ports/gtkmm/fix_charset.patch b/ports/gtkmm/fix_charset.patch deleted file mode 100644 index 027d74f99..000000000 --- a/ports/gtkmm/fix_charset.patch +++ /dev/null @@ -1,2053 +0,0 @@ -diff --git a/MSVC_Net2013/gdkmm.vcxproj b/MSVC_Net2013/gdkmm.vcxproj -index d9d08ac..8c6b528 100644 ---- a/MSVC_Net2013/gdkmm.vcxproj -+++ b/MSVC_Net2013/gdkmm.vcxproj -@@ -1,266 +1,267 @@ --??? -- -- -- -- Debug -- Win32 -- -- -- Debug -- x64 -- -- -- Release -- Win32 -- -- -- Release -- x64 -- -- -- -- gdkmm -- {976C8F9C-1A1D-4E23-B79E-EC9091BBEA0E} -- Win32Proj -- -- -- -- DynamicLibrary -- MultiByte -- v120 -- -- -- DynamicLibrary -- MultiByte -- v120 -- -- -- DynamicLibrary -- MultiByte -- v120 -- -- -- DynamicLibrary -- MultiByte -- v120 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- true -- true -- true -- true -- $(ProjectName)$(DebugDllSuffix) -- $(ProjectName)$(DebugDllSuffix) -- $(ProjectName)$(ReleaseDllSuffix) -- $(ProjectName)$(ReleaseDllSuffix) -- -- -- -- %(AdditionalOptions) -- Disabled -- _DEBUG;$(GdkMMBuildDefs);%(PreprocessorDefinitions) -- true -- EnableFastChecks -- MultiThreadedDebugDLL -- true -- -- -- Level3 -- EditAndContinue -- -- -- Generate gdkmm def file -- $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -- -- -+??? -+ -+ -+ -+ Debug -+ Win32 -+ -+ -+ Debug -+ x64 -+ -+ -+ Release -+ Win32 -+ -+ -+ Release -+ x64 -+ -+ -+ -+ gdkmm -+ {976C8F9C-1A1D-4E23-B79E-EC9091BBEA0E} -+ Win32Proj -+ 8.1 -+ -+ -+ -+ DynamicLibrary -+ Unicode -+ v120 -+ -+ -+ DynamicLibrary -+ Unicode -+ v120 -+ -+ -+ DynamicLibrary -+ Unicode -+ v120 -+ -+ -+ DynamicLibrary -+ Unicode -+ v120 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ true -+ true -+ true -+ true -+ $(ProjectName)$(DebugDllSuffix) -+ $(ProjectName)$(DebugDllSuffix) -+ $(ProjectName)$(ReleaseDllSuffix) -+ $(ProjectName)$(ReleaseDllSuffix) -+ -+ -+ -+ %(AdditionalOptions) -+ Disabled -+ _DEBUG;$(GdkMMBuildDefs);%(PreprocessorDefinitions) -+ true -+ EnableFastChecks -+ MultiThreadedDebugDLL -+ true -+ -+ -+ Level3 -+ EditAndContinue -+ -+ -+ Generate gdkmm def file -+ $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -+ -+ - %(AdditionalDependencies) -- $(OutDir)$(ProjectName)$(DebugDllSuffix).dll -- $(IntDir)\$(ProjectName).def -- true -- false -- -- -- -- -- -- -- %(AdditionalOptions) -- $(GdkMMBuildDefs);%(PreprocessorDefinitions) -- MultiThreadedDLL -- true -- -- -- Level3 -- ProgramDatabase -- -- -- Generate gdkmm def file -- $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -- -- -+ $(OutDir)$(ProjectName)$(DebugDllSuffix).dll -+ $(IntDir)\$(ProjectName).def -+ true -+ false -+ -+ -+ -+ -+ -+ -+ %(AdditionalOptions) -+ $(GdkMMBuildDefs);%(PreprocessorDefinitions) -+ MultiThreadedDLL -+ true -+ -+ -+ Level3 -+ ProgramDatabase -+ -+ -+ Generate gdkmm def file -+ $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -+ -+ - %(AdditionalDependencies) -- $(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll -- $(IntDir)\$(ProjectName).def -- true -- true -- false -- -- -- -- -- -- -- X64 -- -- -- %(AdditionalOptions) -- Disabled -- _DEBUG;$(GdkMMBuildDefs);%(PreprocessorDefinitions) -- true -- EnableFastChecks -- MultiThreadedDebugDLL -- true -- -- -- Level3 -- ProgramDatabase -- -- -- Generate gdkmm def file -- $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -- -- -+ $(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll -+ $(IntDir)\$(ProjectName).def -+ true -+ true -+ false -+ -+ -+ -+ -+ -+ -+ X64 -+ -+ -+ %(AdditionalOptions) -+ Disabled -+ _DEBUG;$(GdkMMBuildDefs);%(PreprocessorDefinitions) -+ true -+ EnableFastChecks -+ MultiThreadedDebugDLL -+ true -+ -+ -+ Level3 -+ ProgramDatabase -+ -+ -+ Generate gdkmm def file -+ $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -+ -+ - %(AdditionalDependencies) -- $(OutDir)$(ProjectName)$(DebugDllSuffix).dll -- $(IntDir)\$(ProjectName).def -- true -- false -- -- -- MachineX64 -- -- -- -- -- X64 -- -- -- %(AdditionalOptions) -- $(GdkMMBuildDefs);%(PreprocessorDefinitions) -- MultiThreadedDLL -- true -- -- -- Level3 -- ProgramDatabase -- -- -- Generate gdkmm def file -- $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -- -- -+ $(OutDir)$(ProjectName)$(DebugDllSuffix).dll -+ $(IntDir)\$(ProjectName).def -+ true -+ false -+ -+ -+ MachineX64 -+ -+ -+ -+ -+ X64 -+ -+ -+ %(AdditionalOptions) -+ $(GdkMMBuildDefs);%(PreprocessorDefinitions) -+ MultiThreadedDLL -+ true -+ -+ -+ Level3 -+ ProgramDatabase -+ -+ -+ Generate gdkmm def file -+ $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -+ -+ - %(AdditionalDependencies) -- $(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll -- $(IntDir)\$(ProjectName).def -- false -- true -- true -- -- -- MachineX64 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- {07324745-c9be-4d65-b08a-9c88188c0c28} -- false -- -- -- -- -- -- -\ No newline at end of file -+ $(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll -+ $(IntDir)\$(ProjectName).def -+ false -+ true -+ true -+ -+ -+ MachineX64 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ {07324745-c9be-4d65-b08a-9c88188c0c28} -+ false -+ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/MSVC_Net2013/gendef.vcxproj b/MSVC_Net2013/gendef.vcxproj -index 33dfe5e..01b9271 100644 ---- a/MSVC_Net2013/gendef.vcxproj -+++ b/MSVC_Net2013/gendef.vcxproj -@@ -21,26 +21,27 @@ - - {07324745-C9BE-4D65-B08A-9C88188C0C28} - Win32Proj -+ 8.1 - - - - Application -- MultiByte -+ Unicode - v120 - - - Application -- MultiByte -+ Unicode - v120 - - - Application -- MultiByte -+ Unicode - v120 - - - Application -- MultiByte -+ Unicode - v120 - - -diff --git a/MSVC_Net2013/gtkmm.vcxproj b/MSVC_Net2013/gtkmm.vcxproj -index 2c732f8..ad9d312 100644 ---- a/MSVC_Net2013/gtkmm.vcxproj -+++ b/MSVC_Net2013/gtkmm.vcxproj -@@ -1,700 +1,701 @@ --??? -- -- -- -- Debug -- Win32 -- -- -- Debug -- x64 -- -- -- Release -- Win32 -- -- -- Release -- x64 -- -- -- -- gtkmm -- {907B8D15-7E12-4136-A7E6-B6ED5E055D39} -- gtkmm -- Win32Proj -- -- -- -- DynamicLibrary -- MultiByte -- v120 -- -- -- DynamicLibrary -- MultiByte -- v120 -- -- -- DynamicLibrary -- MultiByte -- v120 -- -- -- DynamicLibrary -- MultiByte -- v120 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- true -- true -- true -- true -- $(ProjectName)$(DebugDllSuffix) -- $(ProjectName)$(DebugDllSuffix) -- $(ProjectName)$(ReleaseDllSuffix) -- $(ProjectName)$(ReleaseDllSuffix) -- -- -- -- %(AdditionalOptions) -- Disabled -- .\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories) -+??? -+ -+ -+ -+ Debug -+ Win32 -+ -+ -+ Debug -+ x64 -+ -+ -+ Release -+ Win32 -+ -+ -+ Release -+ x64 -+ -+ -+ -+ gtkmm -+ {907B8D15-7E12-4136-A7E6-B6ED5E055D39} -+ gtkmm -+ Win32Proj -+ 8.1 -+ -+ -+ -+ DynamicLibrary -+ Unicode -+ v120 -+ -+ -+ DynamicLibrary -+ Unicode -+ v120 -+ -+ -+ DynamicLibrary -+ Unicode -+ v120 -+ -+ -+ DynamicLibrary -+ Unicode -+ v120 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ true -+ true -+ true -+ true -+ $(ProjectName)$(DebugDllSuffix) -+ $(ProjectName)$(DebugDllSuffix) -+ $(ProjectName)$(ReleaseDllSuffix) -+ $(ProjectName)$(ReleaseDllSuffix) -+ -+ -+ -+ %(AdditionalOptions) -+ Disabled -+ .\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories) - _DEBUG;_NO_CRT_STDIO_INLINE;$(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions) -- true -- EnableFastChecks -- MultiThreadedDebugDLL -- true -- -- -- Level3 -- EditAndContinue -- -- -- Generate gtkmm def file -- $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -- -- -+ true -+ EnableFastChecks -+ MultiThreadedDebugDLL -+ true -+ -+ -+ Level3 -+ EditAndContinue -+ -+ -+ Generate gtkmm def file -+ $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -+ -+ - legacy_stdio_definitions.lib;%(AdditionalDependencies) -- $(OutDir)$(ProjectName)$(DebugDllSuffix).dll -- $(IntDir)\$(ProjectName).def -- true -- false -- -- -- -- -- -- -- %(AdditionalOptions) -- .\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories) -+ $(OutDir)$(ProjectName)$(DebugDllSuffix).dll -+ $(IntDir)\$(ProjectName).def -+ true -+ false -+ -+ -+ -+ -+ -+ -+ %(AdditionalOptions) -+ .\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories) - $(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions) -- MultiThreadedDLL -- true -- -- -- Level3 -- ProgramDatabase -- -- -- Generate gtkmm def file -- $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -- -- -+ MultiThreadedDLL -+ true -+ -+ -+ Level3 -+ ProgramDatabase -+ -+ -+ Generate gtkmm def file -+ $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -+ -+ - legacy_stdio_definitions.lib;%(AdditionalDependencies) -- $(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll -- $(IntDir)\$(ProjectName).def -- false -- true -- true -- -- -- -- -- -- -- X64 -- -- -- %(AdditionalOptions) -- Disabled -- .\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories) -+ $(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll -+ $(IntDir)\$(ProjectName).def -+ false -+ true -+ true -+ -+ -+ -+ -+ -+ -+ X64 -+ -+ -+ %(AdditionalOptions) -+ Disabled -+ .\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories) - _DEBUG;_NO_CRT_STDIO_INLINE;$(GtkMMBuildDefs);) -- true -- EnableFastChecks -- MultiThreadedDebugDLL -- true -- -- -- Level3 -- ProgramDatabase -- -- -- Generate gtkmm def file -- $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -- -- -+ true -+ EnableFastChecks -+ MultiThreadedDebugDLL -+ true -+ -+ -+ Level3 -+ ProgramDatabase -+ -+ -+ Generate gtkmm def file -+ $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -+ -+ - legacy_stdio_definitions.lib;%(AdditionalDependencies) -- $(OutDir)$(ProjectName)$(DebugDllSuffix).dll -- $(IntDir)\$(ProjectName).def -- true -- false -- -- -- MachineX64 -- -- -- -- -- X64 -- -- -- %(AdditionalOptions) -- .\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories) -+ $(OutDir)$(ProjectName)$(DebugDllSuffix).dll -+ $(IntDir)\$(ProjectName).def -+ true -+ false -+ -+ -+ MachineX64 -+ -+ -+ -+ -+ X64 -+ -+ -+ %(AdditionalOptions) -+ .\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories) - $(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions) -- MultiThreadedDLL -- true -- -- -- Level3 -- ProgramDatabase -- -- -- Generate gtkmm def file -- $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -- -- -+ MultiThreadedDLL -+ true -+ -+ -+ Level3 -+ ProgramDatabase -+ -+ -+ Generate gtkmm def file -+ $(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj -+ -+ - legacy_stdio_definitions.lib;%(AdditionalDependencies) -- $(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll -- $(IntDir)\$(ProjectName).def -- true -- true -- false -- -- -- MachineX64 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- {976c8f9c-1a1d-4e23-b79e-ec9091bbea0e} -- false -- -- -- {07324745-c9be-4d65-b08a-9c88188c0c28} -- false -- -- -- -- -- -- -\ No newline at end of file -+ $(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll -+ $(IntDir)\$(ProjectName).def -+ true -+ true -+ false -+ -+ -+ MachineX64 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ {976c8f9c-1a1d-4e23-b79e-ec9091bbea0e} -+ false -+ -+ -+ {07324745-c9be-4d65-b08a-9c88188c0c28} -+ false -+ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/MSVC_Net2013/gtkmm3-demo.vcxproj b/MSVC_Net2013/gtkmm3-demo.vcxproj -index 9c33d45..84a988a 100644 ---- a/MSVC_Net2013/gtkmm3-demo.vcxproj -+++ b/MSVC_Net2013/gtkmm3-demo.vcxproj -@@ -23,26 +23,27 @@ - {5A8BBE25-E8D8-487B-AD2D-690438F09FA1} - gtkmm3-demo - Win32Proj -+ 8.1 - - - - Application -- MultiByte -+ Unicode - v120 - - - Application -- MultiByte -+ Unicode - v120 - - - Application -- MultiByte -+ Unicode - v120 - - - Application -- MultiByte -+ Unicode - v120 - - -@@ -251,4 +252,4 @@ - - - -- -+ -\ No newline at end of file -diff --git a/MSVC_Net2013/install.vcxproj b/MSVC_Net2013/install.vcxproj -index 1df2f4b..a484bd6 100644 ---- a/MSVC_Net2013/install.vcxproj -+++ b/MSVC_Net2013/install.vcxproj -@@ -22,28 +22,29 @@ - {2093D218-190E-4194-9421-3BA7CBF33B10} - install - Win32Proj -+ 8.1 - - - - Utility -- MultiByte -+ Unicode - true - v120 - - - Utility -- MultiByte -+ Unicode - v120 - - - Utility -- MultiByte -+ Unicode - true - v120 - - - Utility -- MultiByte -+ Unicode - v120 - - diff --git a/ports/gtkmm/portfile.cmake b/ports/gtkmm/portfile.cmake index d3fc01bb7..23e939608 100644 --- a/ports/gtkmm/portfile.cmake +++ b/ports/gtkmm/portfile.cmake @@ -1,24 +1,22 @@ -# Glibmm uses winapi functions not available in WindowsStore, so gtkmm -# also if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) -message(FATAL_ERROR "Error: UWP builds are currently not supported.") + message(FATAL_ERROR "Error: UWP builds are currently not supported.") endif() include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gtkmm-3.22.2) vcpkg_download_distfile(ARCHIVE URLS "http://ftp.gnome.org/pub/GNOME/sources/gtkmm/3.22/gtkmm-3.22.2.tar.xz" FILENAME "gtkmm-3.22.2.tar.xz" SHA512 6e96b543e459481145ee0f56f31a7ad2466bd8ccdd2abf3205998aecede73d235149ca6e5ba6e8d20a4fd5345e310870d81ac2a716d4f78d1460ed685badbdc2 ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix_properties.patch ${CMAKE_CURRENT_LIST_DIR}/fix_charset.patch +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + fix_properties.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/msvc_recommended_pragmas.h DESTINATION ${SOURCE_PATH}/MSVC_Net2013) @@ -27,6 +25,7 @@ set(VS_PLATFORM ${VCPKG_TARGET_ARCHITECTURE}) if(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86) set(VS_PLATFORM "Win32") endif(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86) + vcpkg_build_msbuild( PROJECT_PATH ${SOURCE_PATH}/MSVC_Net2013/gtkmm.sln TARGET gtkmm @@ -96,6 +95,4 @@ file( vcpkg_copy_pdbs() -# Handle copyright and readme file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/gtkmm RENAME copyright) -file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/gtkmm RENAME readme.txt) diff --git a/ports/hdf5/portfile.cmake b/ports/hdf5/portfile.cmake index 1a148c2c3..2be080335 100644 --- a/ports/hdf5/portfile.cmake +++ b/ports/hdf5/portfile.cmake @@ -16,7 +16,6 @@ vcpkg_extract_source_archive_ex( PATCHES hdf5_config.patch ) -set(SOURCE_PATH ${SOURCE_PATH}/hdf5-1.10.5) if ("parallel" IN_LIST FEATURES) set(ENABLE_PARALLEL ON) @@ -30,10 +29,10 @@ else() set(ENABLE_CPP OFF) endif() -file(REMOVE ${SOURCE_PATH}/config/cmake_ext_mod/FindSZIP.cmake)#Outdated; does not find debug szip +file(REMOVE ${SOURCE_PATH}/config/cmake_ext_mod/FindSZIP.cmake)#Outdated; does not find debug szip vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} + SOURCE_PATH ${SOURCE_PATH}/hdf5-1.10.5 DISABLE_PARALLEL_CONFIGURE PREFER_NINJA OPTIONS diff --git a/ports/hyperscan/CONTROL b/ports/hyperscan/CONTROL index bf45c2238..2f04703a9 100644 --- a/ports/hyperscan/CONTROL +++ b/ports/hyperscan/CONTROL @@ -1,4 +1,4 @@ Source: hyperscan -Version: 5.0.1-1 +Version: 5.0.1-2 Description: A regular expression library with O(length of input) match times that takes advantage of Intel hardware to provide blazing speed. Build-Depends: boost-array, boost-chrono, boost-config, boost-core, boost-detail, boost-functional, boost-regex, boost-system, boost-thread, boost-type-traits, boost-unordered, boost-utility, boost-dynamic-bitset, boost-random, boost-graph, boost-multi-array, boost-icl, boost-ptr-container, python3, ragel \ No newline at end of file diff --git a/ports/hyperscan/portfile.cmake b/ports/hyperscan/portfile.cmake index be8410b38..2b48087ba 100644 --- a/ports/hyperscan/portfile.cmake +++ b/ports/hyperscan/portfile.cmake @@ -1,24 +1,18 @@ -# Build with 'vcpkg.exe install hyperscan:x86-windows-static-release'; Hyperscan doesn't support dynamic libraries on Windows. include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) - set(HYPERSCAN_VERSION 5.1.0) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/intel/hyperscan/archive/v${HYPERSCAN_VERSION}.zip" - FILENAME "v${HYPERSCAN_VERSION}.zip" - SHA512 89a826c1e66175f1781f57d0d430f2d5d245ab590acc4b5df6638c5f6fe43914db028f8bc86e566ea27b55883c91be0d8da079b3d7547899f7cf540b52a3cf0a + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO intel/hyperscan + REF v${HYPERSCAN_VERSION} + SHA512 5e6d11429e61dc061dd31e6b311a8c1dbfcd03af6e24d97b95eb2cef24dcd33d593064e5faa7c22807d785a8921bc410a69a43c4e5b3d7b4774f37c4a12a025d + HEAD_REF master ) -vcpkg_extract_source_archive_ex( - OUT_SOURCE_PATH SOURCE_PATH - ARCHIVE ${ARCHIVE} - REF ${HYPERSCAN_VERSION}) - vcpkg_find_acquire_program(PYTHON3) - -# Add python3 to path get_filename_component(PYTHON_PATH ${PYTHON3} DIRECTORY) vcpkg_add_to_path(PREPEND ${PYTHON_PATH}) vcpkg_add_to_path(${CURRENT_INSTALLED_DIR}/bin) @@ -31,11 +25,6 @@ vcpkg_configure_cmake( ) vcpkg_install_cmake() - -# Handle copyright -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/hyperscan RENAME copyright) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -# Post-build test for cmake libraries -# vcpkg_test_cmake(PACKAGE_NAME hs) +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/hypre/CONTROL b/ports/hypre/CONTROL index 91d281589..a4db2f1e7 100644 --- a/ports/hypre/CONTROL +++ b/ports/hypre/CONTROL @@ -1,5 +1,5 @@ Source: hypre -Version: 2.11.2-2 +Version: 2.11.2-3 Homepage: https://computation.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods Description: SCALABLE LINEAR SOLVERS AND MULTIGRID METHODS Build-Depends: mpi diff --git a/ports/hypre/fix-blas-vs14-math.patch b/ports/hypre/fix-blas-vs14-math.patch index 7fd0cd6fe..424b16eb0 100644 --- a/ports/hypre/fix-blas-vs14-math.patch +++ b/ports/hypre/fix-blas-vs14-math.patch @@ -1,5 +1,5 @@ ---- a/blas/f2c.h Fri Sep 11 18:57:56 2015 -+++ b/blas/f2c.h Thu Dec 22 18:20:08 2016 +--- a/src/blas/f2c.h Fri Sep 11 18:57:56 2015 ++++ b/src/blas/f2c.h Thu Dec 22 18:20:08 2016 @@ -190,18 +190,18 @@ typedef struct Namelist Namelist; diff --git a/ports/hypre/fix-export-global-data-symbols.patch b/ports/hypre/fix-export-global-data-symbols.patch index 79231f532..2714e365a 100644 --- a/ports/hypre/fix-export-global-data-symbols.patch +++ b/ports/hypre/fix-export-global-data-symbols.patch @@ -1,5 +1,5 @@ ---- a/utilities/_hypre_utilities.h Thu Jun 09 15:56:18 2016 -+++ b/utilities/_hypre_utilities.h Wed Jan 04 18:08:27 2017 +--- a/src/utilities/_hypre_utilities.h Thu Jun 09 15:56:18 2016 ++++ b/src/utilities/_hypre_utilities.h Wed Jan 04 18:08:27 2017 @@ -13,6 +13,7 @@ #ifndef hypre_UTILITIES_HEADER #define hypre_UTILITIES_HEADER diff --git a/ports/hypre/fix-lapack-vs14-math.patch b/ports/hypre/fix-lapack-vs14-math.patch index 68d905742..7be84aeb6 100644 --- a/ports/hypre/fix-lapack-vs14-math.patch +++ b/ports/hypre/fix-lapack-vs14-math.patch @@ -1,5 +1,5 @@ ---- a/lapack/f2c.h Fri Sep 11 18:57:56 2015 -+++ b/lapack/f2c.h Thu Dec 22 18:22:26 2016 +--- a/src/lapack/f2c.h Fri Sep 11 18:57:56 2015 ++++ b/src/lapack/f2c.h Thu Dec 22 18:22:26 2016 @@ -190,18 +190,18 @@ typedef struct Namelist Namelist; diff --git a/ports/hypre/fix-macro-to-template.patch b/ports/hypre/fix-macro-to-template.patch index 22994f96a..ca98e5d70 100644 --- a/ports/hypre/fix-macro-to-template.patch +++ b/ports/hypre/fix-macro-to-template.patch @@ -1,5 +1,5 @@ ---- a/struct_ls/pfmg3_setup_rap.c Thu Jun 09 15:56:18 2016 -+++ b/struct_ls/pfmg3_setup_rap.c Thu Dec 22 17:45:20 2016 +--- a/src/struct_ls/pfmg3_setup_rap.c Thu Jun 09 15:56:18 2016 ++++ b/src/struct_ls/pfmg3_setup_rap.c Thu Dec 22 17:45:20 2016 @@ -19,13 +19,28 @@ * allow for coarsening to be done in the x- and y-directions also. *--------------------------------------------------------------------------*/ diff --git a/ports/hypre/fix-root-cmakelists.patch b/ports/hypre/fix-root-cmakelists.patch index e69d6607e..b64914eb3 100644 --- a/ports/hypre/fix-root-cmakelists.patch +++ b/ports/hypre/fix-root-cmakelists.patch @@ -1,5 +1,5 @@ ---- a/CMakeLists.txt Mon Mar 13 21:37:24 2017 -+++ b/CMakeLists.txt Sun Aug 06 19:34:00 2017 +--- a/src/CMakeLists.txt Mon Mar 13 21:37:24 2017 ++++ b/src/CMakeLists.txt Sun Aug 06 19:34:00 2017 @@ -1,6 +1,8 @@ cmake_minimum_required (VERSION 2.8.8) project (hypre) diff --git a/ports/hypre/portfile.cmake b/ports/hypre/portfile.cmake index f8ab07b9d..92dd78a0d 100644 --- a/ports/hypre/portfile.cmake +++ b/ports/hypre/portfile.cmake @@ -1,20 +1,20 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/hypre-2.11.2/src) + vcpkg_download_distfile(ARCHIVE URLS "http://computation.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods/download/hypre-2.11.2.tar.gz" FILENAME "hypre-2.11.2.tar.gz" SHA512 a06321028121e5420fa944ce4fae5f9b96e6021ec2802e68ec3c349f19a20543ed7eff774a4735666c5807ce124eb571b3f86757c67e91faa1c683c3f657469f ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH PATCHES - ${CMAKE_CURRENT_LIST_DIR}/fix-root-cmakelists.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-macro-to-template.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-blas-vs14-math.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-lapack-vs14-math.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-export-global-data-symbols.patch + fix-root-cmakelists.patch + fix-macro-to-template.patch + fix-blas-vs14-math.patch + fix-lapack-vs14-math.patch + fix-export-global-data-symbols.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) @@ -24,7 +24,7 @@ else() endif() vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} + SOURCE_PATH ${SOURCE_PATH}/src PREFER_NINJA OPTIONS ${OPTIONS} @@ -42,4 +42,4 @@ vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright -file(COPY ${SOURCE_PATH}/../COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/hypre/copyright) +file(COPY ${SOURCE_PATH}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/hypre/copyright) diff --git a/ports/icu/CONTROL b/ports/icu/CONTROL index 238ac176e..4fccc8622 100644 --- a/ports/icu/CONTROL +++ b/ports/icu/CONTROL @@ -1,4 +1,4 @@ Source: icu -Version: 61.1-7 +Version: 61.1-8 Homepage: http://icu-project.org/apiref/icu4c/ Description: Mature and widely used Unicode and localization library. diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 9225246f3..97c1d086b 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -8,7 +8,6 @@ set(VERSION 61.1) set(VERSION2 61_1) set(ICU_VERSION_MAJOR 61) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/icu-${VERSION}/icu) vcpkg_download_distfile( ARCHIVE URLS "http://download.icu-project.org/files/icu4c/${VERSION}/icu4c-${VERSION2}-src.tgz" diff --git a/ports/intelrdfpmathlib/CONTROL b/ports/intelrdfpmathlib/CONTROL index 5c7fe7b59..c5c1cd071 100644 --- a/ports/intelrdfpmathlib/CONTROL +++ b/ports/intelrdfpmathlib/CONTROL @@ -1,3 +1,3 @@ Source: intelrdfpmathlib -Version: 20U2 +Version: 20U2-1 Description: Intel(R) Decimal Floating-Point Math Library diff --git a/ports/intelrdfpmathlib/portfile.cmake b/ports/intelrdfpmathlib/portfile.cmake index e463f0a77..fc9b0ed13 100644 --- a/ports/intelrdfpmathlib/portfile.cmake +++ b/ports/intelrdfpmathlib/portfile.cmake @@ -1,12 +1,17 @@ include(vcpkg_common_functions) + vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/IntelRDFPMathLib20U2) + vcpkg_download_distfile(ARCHIVE URLS "http://www.netlib.org/misc/intel/IntelRDFPMathLib20U2.tar.gz" FILENAME "IntelRDFPMathLib20U2.tar.gz" SHA512 4d445855f41b066b784f0c6b4e52f854df4129fa9d43569b1e1518f002b860f69796459c78de46a8ea24fb6e7aefe7f8bc1f253e78971a5ef202dab2a7b1b75a ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH +) set(LIB_SOURCE_PATH "${SOURCE_PATH}/LIBRARY") @@ -14,7 +19,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION "${LIB_SOURCE_PAT vcpkg_configure_cmake( SOURCE_PATH "${LIB_SOURCE_PATH}" - PREFER_NINJA + PREFER_NINJA OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) diff --git a/ports/io2d/find-package.patch b/ports/io2d/find-package.patch deleted file mode 100644 index 10d83f95b..000000000 --- a/ports/io2d/find-package.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff --git a/P0267_RefImpl/P0267_RefImpl/cairo/CMakeLists.txt b/P0267_RefImpl/P0267_RefImpl/cairo/CMakeLists.txt -index 3d4791c..1864b7a 100644 ---- a/P0267_RefImpl/P0267_RefImpl/cairo/CMakeLists.txt -+++ b/P0267_RefImpl/P0267_RefImpl/cairo/CMakeLists.txt -@@ -23,7 +23,15 @@ target_compile_features(io2d_cairo PUBLIC cxx_std_17) - - target_link_libraries(io2d_cairo PUBLIC io2d_core) - --if(MSVC) -+if(DEFINED VCPKG_TARGET_TRIPLET) -+ find_package(unofficial-cairo CONFIG REQUIRED) -+ set(CAIRO_INCLUDE_DIR) -+ set(CAIRO_LIB_DEBUG "CAIRO_LIB_DEBUG-NOTFOUND") -+ set(CAIRO_LIB_RELEASE unofficial::cairo::cairo) -+ find_package(unofficial-graphicsmagick CONFIG REQUIRED) -+ set(GRAPHICSMAGICK_INCLUDE_DIR) -+ set(GRAPHICSMAGICK_LIB unofficial::graphicsmagick::graphicsmagick) -+elseif(MSVC) - find_path(CAIRO_INCLUDE_DIR cairo.h) - find_path(GRAPHICSMAGICK_INCLUDE_DIR magick/api.h) - find_library(CAIRO_LIB_DEBUG cairod) -diff --git a/P0267_RefImpl/P0267_RefImpl/cairo/win32/CMakeLists.txt b/P0267_RefImpl/P0267_RefImpl/cairo/win32/CMakeLists.txt -index abb1501..b7a6e71 100644 ---- a/P0267_RefImpl/P0267_RefImpl/cairo/win32/CMakeLists.txt -+++ b/P0267_RefImpl/P0267_RefImpl/cairo/win32/CMakeLists.txt -@@ -24,20 +24,7 @@ target_compile_features(io2d_cairo_win32 PUBLIC cxx_std_17) - target_link_libraries(io2d_cairo_win32 PUBLIC io2d_cairo) - - if(MSVC) -- target_compile_definitions(io2d_cairo_win32 PUBLIC -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_WARNINGS) -- -- find_library(PIXMAN_LIB pixman-1) -- find_library(FREETYPE_LIB freetype) -- find_library(FONTCONFIG_LIB fontconfig) -- find_library(BZ_LIB bz2) -- find_library(JPEG_LIB jpeg) -- find_library(TIFF_LIB tiff) -- find_library(EXPAT_LIB expat) -- find_library(LZMA_LIB lzma) -- find_library(ICONV_LIB libiconv) -- find_library(CHARSET_LIB libcharset) -- -- target_link_libraries(io2d_cairo_win32 PUBLIC ${PIXMAN_LIB} ${FREETYPE_LIB} ${FONTCONFIG_LIB} ${BZ_LIB} ${JPEG_LIB} ${TIFF_LIB} ${EXPAT_LIB} ${LZMA_LIB} ${ICONV_LIB} ${CHARSET_LIB}) -+ target_compile_definitions(io2d_cairo_win32 PRIVATE -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_WARNINGS) - endif() - - install( diff --git a/ports/io2d/portfile.cmake b/ports/io2d/portfile.cmake index ceb553e9a..da0b23c88 100644 --- a/ports/io2d/portfile.cmake +++ b/ports/io2d/portfile.cmake @@ -1,8 +1,5 @@ - -# Allow use of vcpkg functions include(vcpkg_common_functions) -# For now, io2d is always a static library. vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( @@ -12,11 +9,9 @@ vcpkg_from_github( SHA512 2727342fbb31523583374ab6df6ff7542e80b4f94319cf0f293e8c085711fa10ed312b4fc4b91391112b5e27eaaae519cb4141ea9d4108ffb5b7383a043b38b8 HEAD_REF master PATCHES - find-package.patch fix-linux-build.patch ) -# Configure the library, using CMake if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL Darwin) set(IO2D_DEFAULT_OPTION "-DIO2D_DEFAULT=COREGRAPHICS_MAC") endif() @@ -31,11 +26,8 @@ vcpkg_configure_cmake( ${IO2D_DEFAULT_OPTION} ) -# Build + install the library, using CMake vcpkg_install_cmake() -# Don't have duplicate header files in both include/ and debug/include/ folders -# (within /installed/io2d_*/, as installed by vcpkg_install_cmake()): file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/io2d) @@ -51,6 +43,6 @@ if (NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL Darwin) ") endif() -file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/io2d RENAME copyright) +file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) vcpkg_test_cmake(PACKAGE_NAME io2d) diff --git a/ports/jbigkit/CONTROL b/ports/jbigkit/CONTROL index cc0a00aa2..c1c76a89c 100644 --- a/ports/jbigkit/CONTROL +++ b/ports/jbigkit/CONTROL @@ -1,4 +1,4 @@ Source: jbigkit -Version: 2.1-3 +Version: 2.1-4 Homepage: https://www.cl.cam.ac.uk/~mgk25/jbigkit Description: A software implementation of the JBIG1 data compression standard (ITU-T T.82) diff --git a/ports/jbigkit/portfile.cmake b/ports/jbigkit/portfile.cmake index 9e63a426f..25c87930a 100644 --- a/ports/jbigkit/portfile.cmake +++ b/ports/jbigkit/portfile.cmake @@ -5,13 +5,16 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) set(JBIGKIT_VERSION 2.1) set(JBIGKIT_HASH c4127480470ef90db1ef3bd2caa444df10b50ed8df0bc9997db7612cb48b49278baf44965028f1807a21028eb965d677e015466306b44683c4ec75a23e1922cf) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/jbigkit-${JBIGKIT_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "http://www.cl.cam.ac.uk/~mgk25/jbigkit/download/jbigkit-${JBIGKIT_VERSION}.tar.gz" FILENAME "jbigkit-${JBIGKIT_VERSION}.tar.gz" SHA512 ${JBIGKIT_HASH} ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/jwt-cpp/CONTROL b/ports/jwt-cpp/CONTROL index 4f44063fe..7815f1640 100644 --- a/ports/jwt-cpp/CONTROL +++ b/ports/jwt-cpp/CONTROL @@ -1,3 +1,3 @@ Source: jwt-cpp -Version: 2019-05-07 -Description: A header only library for creating and validating json web tokens in c++ \ No newline at end of file +Version: 2019-05-07-1 +Description: A header only library for creating and validating json web tokens in c++ diff --git a/ports/jwt-cpp/portfile.cmake b/ports/jwt-cpp/portfile.cmake index 89ff9b04c..3ac1a02a4 100644 --- a/ports/jwt-cpp/portfile.cmake +++ b/ports/jwt-cpp/portfile.cmake @@ -1,8 +1,6 @@ #header-only library include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/jwt-cpp) - vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH REPO Thalhammer/jwt-cpp REF 1d2b1bac13e54f99df4f890cd674ec149c135762 @@ -20,4 +18,4 @@ file(COPY ${HEADER_FILES} # Put the licence file where vcpkg expects it file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/jwt-cpp) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/jwt-cpp/LICENSE ${CURRENT_PACKAGES_DIR}/share/jwt-cpp/copyright) \ No newline at end of file +file(RENAME ${CURRENT_PACKAGES_DIR}/share/jwt-cpp/LICENSE ${CURRENT_PACKAGES_DIR}/share/jwt-cpp/copyright) diff --git a/ports/jxrlib/CONTROL b/ports/jxrlib/CONTROL index 8ed2805a4..ec07669f1 100644 --- a/ports/jxrlib/CONTROL +++ b/ports/jxrlib/CONTROL @@ -1,4 +1,4 @@ Source: jxrlib -Version: 1.1-8 +Version: 1.1-9 Homepage: https://github.com/4creators/jxrlib Description: Open source implementation of the jpegxr image format standard. diff --git a/ports/jxrlib/portfile.cmake b/ports/jxrlib/portfile.cmake index 76b0f61fa..8f65aaf74 100644 --- a/ports/jxrlib/portfile.cmake +++ b/ports/jxrlib/portfile.cmake @@ -2,8 +2,6 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src) - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO 4creators/jxrlib diff --git a/ports/kealib/CONTROL b/ports/kealib/CONTROL index bb2b4cd48..3c71c56b8 100644 --- a/ports/kealib/CONTROL +++ b/ports/kealib/CONTROL @@ -1,5 +1,5 @@ Source: kealib -Version: 1.4.11-1 +Version: 1.4.11-2 Build-Depends: hdf5[cpp], zlib, szip Homepage: https://bitbucket.org/chchrsc/kealib Description: kealib is gdal model using HDF5 standard. diff --git a/ports/kealib/portfile.cmake b/ports/kealib/portfile.cmake index 69a017208..3d27e296e 100644 --- a/ports/kealib/portfile.cmake +++ b/ports/kealib/portfile.cmake @@ -1,14 +1,14 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/kealib-1.4.11) + vcpkg_download_distfile(ARCHIVE URLS "https://bitbucket.org/chchrsc/kealib/downloads/kealib-1.4.11.tar.gz" FILENAME "kealib-1.4.11.tar.gz" SHA512 e080dfd51111f85ddf8ab1bd71aaf7ec6cbe814db29ed62806362ef83718f777935347d9063cf29085f21bf09d4277fd88f5269af6555304130f50d093d28f63 ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH PATCHES hdf5_include.patch ) @@ -41,4 +41,4 @@ file(INSTALL ${SOURCE_PATH}/python/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DI if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin) -endif() \ No newline at end of file +endif() diff --git a/ports/lcms/CMakeLists.txt b/ports/lcms/CMakeLists.txt index 10ccc0b02..07e62995f 100644 --- a/ports/lcms/CMakeLists.txt +++ b/ports/lcms/CMakeLists.txt @@ -1,66 +1,67 @@ cmake_minimum_required(VERSION 3.5) -project(lcms) +option(CMAKE_VERBOSE_MAKEFILE "Create verbose makefile" OFF) +option(BUILD_SHARED_LIBS "Create lcms as a shared library" ON) -set(SRCS -"src/cmstypes.c" -"src/cmsvirt.c" -"src/cmswtpnt.c" -"src/cmsxform.c" -"src/lcms2.def" -"src/lcms2_internal.h" -"src/cmsalpha.c" -"src/cmscam02.c" -"src/cmscgats.c" -"src/cmscnvrt.c" -"src/cmserr.c" -"src/cmsgamma.c" -"src/cmsgmt.c" -"src/cmshalf.c" -"src/cmsintrp.c" -"src/cmsio0.c" -"src/cmsio1.c" -"src/cmslut.c" -"src/cmsmd5.c" -"src/cmsmtrx.c" -"src/cmsnamed.c" -"src/cmsopt.c" -"src/cmspack.c" -"src/cmspcs.c" -"src/cmsplugin.c" -"src/cmsps2.c" -"src/cmssamp.c" -"src/cmssm.c" -) +project(little-cms) set(CMAKE_DEBUG_POSTFIX d) -add_definitions(-DUNICODE -D_UNICODE) +add_library(lcms + "${CMAKE_CURRENT_LIST_DIR}/src/cmstypes.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsvirt.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmswtpnt.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsxform.c" + "${CMAKE_CURRENT_LIST_DIR}/src/lcms2.def" + "${CMAKE_CURRENT_LIST_DIR}/src/lcms2_internal.h" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsalpha.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmscam02.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmscgats.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmscnvrt.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmserr.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsgamma.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsgmt.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmshalf.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsintrp.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsio0.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsio1.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmslut.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsmd5.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsmtrx.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsnamed.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsopt.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmspack.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmspcs.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsplugin.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmsps2.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmssamp.c" + "${CMAKE_CURRENT_LIST_DIR}/src/cmssm.c" +) if(BUILD_SHARED_LIBS) - add_definitions(-DCMS_DLL_BUILD) + target_compile_options(lcms PRIVATE -DCMS_DLL_BUILD) + target_compile_options(lcms PUBLIC -DCMS_DLL) endif() +target_compile_options(lcms PRIVATE -DUNICODE -D_UNICODE) -string(REPLACE "/utf-8" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") +target_include_directories(lcms PRIVATE "${CMAKE_CURRENT_LIST_DIR}/include") +set_target_properties(lcms PROPERTIES PUBLIC_HEADER "${CMAKE_CURRENT_LIST_DIR}/include/lcms2.h;${CMAKE_CURRENT_LIST_DIR}/include/lcms2_plugin.h") -include_directories( -"./include" +install(TARGETS lcms + EXPORT lcmsConfig + RUNTIME DESTINATION "bin" + LIBRARY DESTINATION "lib" + ARCHIVE DESTINATION "lib" + PUBLIC_HEADER DESTINATION "include" + COMPONENT dev ) -add_library(lcms2 ${SRCS}) - -if(NOT SKIP_INSTALL_HEADERS ) - - install(FILES - "./include/lcms2.h" - "./include/lcms2_plugin.h" - DESTINATION include - ) - -endif(NOT SKIP_INSTALL_HEADERS ) - -install(TARGETS lcms2 EXPORT lcms_EXPORT - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib +export(TARGETS lcms + NAMESPACE lcms:: + FILE "share/lcms/lcmsConfig.cmake" +) + +install(EXPORT lcmsConfig + DESTINATION "share/lcms" + NAMESPACE lcms:: ) diff --git a/ports/lcms/CONTROL b/ports/lcms/CONTROL index b42c827d4..135c7c406 100644 --- a/ports/lcms/CONTROL +++ b/ports/lcms/CONTROL @@ -1,5 +1,5 @@ Source: lcms -Version: 2.9 +Version: 2.9-1 Build-Depends: Homepage: https://github.com/mm2/Little-CMS Description: Little CMS. diff --git a/ports/lcms/portfile.cmake b/ports/lcms/portfile.cmake index deb6c9d3c..faeafdef5 100644 --- a/ports/lcms/portfile.cmake +++ b/ports/lcms/portfile.cmake @@ -1,32 +1,30 @@ include(vcpkg_common_functions) -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + set(ADDITIONAL_PATCH "shared.patch") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH REPO mm2/Little-CMS REF lcms2.9 SHA512 b565ed3714c9beaf13e15b3798abbc6c295443357c8db3299cecd9794620bb1d7c50ad258cf887c7bbf66efacb8d8699a7ee579f8c73598740915caa3044ae70 HEAD_REF master - PATCHES "${CMAKE_CURRENT_LIST_DIR}/remove_library_directive.patch" -) + PATCHES + remove_library_directive.patch + ${ADDITIONAL_PATCH} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS_DEBUG - -DSKIP_INSTALL_HEADERS=ON ) vcpkg_install_cmake() +vcpkg_copy_pdbs() +vcpkg_fixup_cmake_targets() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/lcms RENAME copyright) - -vcpkg_copy_pdbs() - -#patch header files to fix import/export issues -if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - vcpkg_apply_patches( - SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include - PATCHES "${CMAKE_CURRENT_LIST_DIR}/shared.patch") -endif() diff --git a/ports/lcms/shared.patch b/ports/lcms/shared.patch index 2d7506c52..ac5490486 100644 --- a/ports/lcms/shared.patch +++ b/ports/lcms/shared.patch @@ -1,5 +1,5 @@ ---- lcms2.h Wed Jul 20 08:46:01 2016 -+++ lcms2.h Mon Jan 30 15:01:12 2017 +--- a/include/lcms2.h Wed Jul 20 08:46:01 2016 ++++ b/include/lcms2.h Mon Jan 30 15:01:12 2017 @@ -212,6 +212,7 @@ #endif // CMS_USE_BIG_ENDIAN diff --git a/ports/libaiff/CONTROL b/ports/libaiff/CONTROL index 6dbed3fcf..490e53a7c 100644 --- a/ports/libaiff/CONTROL +++ b/ports/libaiff/CONTROL @@ -1,4 +1,4 @@ Source: libaiff -Version: 5.0-1 +Version: 5.0-2 Homepage: https://sourceforge.net/projects/aifftools Description: LibAiff is an open-source library, providing C applications transparent read & write operations for Audio Interchange File Format (AIFF) files, with the goal of supporting all of its features diff --git a/ports/libaiff/portfile.cmake b/ports/libaiff/portfile.cmake index 14f2848ba..ad8e7b7db 100644 --- a/ports/libaiff/portfile.cmake +++ b/ports/libaiff/portfile.cmake @@ -2,26 +2,23 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libaiff-5.0) vcpkg_download_distfile(ARCHIVE URLS "https://sourceforge.net/projects/aifftools/files/libaiff/LibAiff%205.0/libaiff-5.0-release.tar.gz" FILENAME "libaiff-5.0-release.tar.gz" SHA512 7800f9a3fbd0c5a17b8cc6c9b60181131d159ab5f5fb8e7de54e8f88c151717a988231de664a635e61940267c854a9ce83d58b12e322dcdda3aa8080c7b15f66 ) -vcpkg_extract_source_archive(${ARCHIVE}) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH PATCHES - "${CMAKE_CURRENT_LIST_DIR}/allow_utf_16_filename.patch" - "${CMAKE_CURRENT_LIST_DIR}/buffer_uninitialized.patch" + "${CMAKE_CURRENT_LIST_DIR}/allow_utf_16_filename.patch" + "${CMAKE_CURRENT_LIST_DIR}/buffer_uninitialized.patch" ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h DESTINATION ${SOURCE_PATH}/libaiff) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/libbson/CONTROL b/ports/libbson/CONTROL index f5ae2330d..42d87161b 100644 --- a/ports/libbson/CONTROL +++ b/ports/libbson/CONTROL @@ -1,4 +1,4 @@ Source: libbson -Version: 1.14.0-1 +Version: 1.14.0-3 Description: libbson is a library providing useful routines related to building, parsing, and iterating BSON documents. Homepage: https://github.com/mongodb/libbson diff --git a/ports/libbson/portfile.cmake b/ports/libbson/portfile.cmake index c682ae086..09d84266c 100644 --- a/ports/libbson/portfile.cmake +++ b/ports/libbson/portfile.cmake @@ -1,95 +1,94 @@ -include(vcpkg_common_functions) -set(BUILD_VERSION 1.14.0) - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO mongodb/mongo-c-driver - REF ${BUILD_VERSION} - SHA512 bf2bb835543dd2a445aac6cafa7bbbf90921ec41014534779924a5eb7cbd9fd532acd8146ce81dfcf1bcac33a78d8fce22b962ed7f776449e4357eccab8d6110 - HEAD_REF master - PATCHES fix-uwp.patch -) - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - set(ENABLE_STATIC ON) -else() - set(ENABLE_STATIC OFF) -endif() - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS - -DENABLE_MONGOC=OFF - -DENABLE_BSON=ON - -DENABLE_TESTS=OFF - -DENABLE_EXAMPLES=OFF - -DENABLE_STATIC=${ENABLE_STATIC} - -DBUILD_VERSION=${BUILD_VERSION} -) - -vcpkg_install_cmake() -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/libbson-static-1.0) -else() - vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/libbson-1.0) -endif() -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver) - -# This rename is needed because the official examples expect to use #include -# See Microsoft/vcpkg#904 -file(RENAME - ${CURRENT_PACKAGES_DIR}/include/libbson-1.0 - ${CURRENT_PACKAGES_DIR}/temp) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include) -file(RENAME ${CURRENT_PACKAGES_DIR}/temp ${CURRENT_PACKAGES_DIR}/include) - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - file(RENAME - ${CURRENT_PACKAGES_DIR}/lib/libbson-static-1.0.a - ${CURRENT_PACKAGES_DIR}/lib/libbson-1.0.a) - file(RENAME - ${CURRENT_PACKAGES_DIR}/debug/lib/libbson-static-1.0.a - ${CURRENT_PACKAGES_DIR}/debug/lib/libbson-1.0.a) - else() - file(RENAME - ${CURRENT_PACKAGES_DIR}/lib/bson-static-1.0.lib - ${CURRENT_PACKAGES_DIR}/lib/bson-1.0.lib) - file(RENAME - ${CURRENT_PACKAGES_DIR}/debug/lib/bson-static-1.0.lib - ${CURRENT_PACKAGES_DIR}/debug/lib/bson-1.0.lib) - endif() - - # drop the __declspec(dllimport) when building static - vcpkg_apply_patches( - SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include - PATCHES static.patch - ) - - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin) -endif() - -configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/libbson/copyright COPYONLY) -file(COPY ${SOURCE_PATH}/THIRD_PARTY_NOTICES DESTINATION ${CURRENT_PACKAGES_DIR}/share/libbson) - -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - set(PORT_POSTFIX "static-1.0") -else() - set(PORT_POSTFIX "1.0") -endif() - -# Create cmake files for _both_ find_package(libbson) and find_package(libbson-static-1.0)/find_package(libbson-1.0) -file(READ ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config.cmake LIBBSON_CONFIG_CMAKE) -string(REPLACE "/include/libbson-1.0" "/include" LIBBSON_CONFIG_CMAKE "${LIBBSON_CONFIG_CMAKE}") -string(REPLACE "bson-static-1.0" "bson-1.0" LIBBSON_CONFIG_CMAKE "${LIBBSON_CONFIG_CMAKE}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config.cmake "${LIBBSON_CONFIG_CMAKE}") -file(COPY ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libbson-${PORT_POSTFIX}) -file(COPY ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config-version.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libbson-${PORT_POSTFIX}) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config.cmake ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-config.cmake) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config-version.cmake ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-config-version.cmake) - -vcpkg_copy_pdbs() +include(vcpkg_common_functions) +set(BUILD_VERSION 1.14.0) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mongodb/mongo-c-driver + REF ${BUILD_VERSION} + SHA512 bf2bb835543dd2a445aac6cafa7bbbf90921ec41014534779924a5eb7cbd9fd532acd8146ce81dfcf1bcac33a78d8fce22b962ed7f776449e4357eccab8d6110 + HEAD_REF master + PATCHES fix-uwp.patch +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + set(ENABLE_STATIC ON) +else() + set(ENABLE_STATIC OFF) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DENABLE_MONGOC=OFF + -DENABLE_BSON=ON + -DENABLE_TESTS=OFF + -DENABLE_EXAMPLES=OFF + -DENABLE_STATIC=${ENABLE_STATIC} + -DBUILD_VERSION=${BUILD_VERSION} +) + +vcpkg_install_cmake() +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/libbson-static-1.0) +else() + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/libbson-1.0) +endif() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver) + +# This rename is needed because the official examples expect to use #include +# See Microsoft/vcpkg#904 +file(RENAME + ${CURRENT_PACKAGES_DIR}/include/libbson-1.0 + ${CURRENT_PACKAGES_DIR}/temp) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include) +file(RENAME ${CURRENT_PACKAGES_DIR}/temp ${CURRENT_PACKAGES_DIR}/include) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + file(RENAME + ${CURRENT_PACKAGES_DIR}/lib/libbson-static-1.0.a + ${CURRENT_PACKAGES_DIR}/lib/libbson-1.0.a) + file(RENAME + ${CURRENT_PACKAGES_DIR}/debug/lib/libbson-static-1.0.a + ${CURRENT_PACKAGES_DIR}/debug/lib/libbson-1.0.a) + else() + file(RENAME + ${CURRENT_PACKAGES_DIR}/lib/bson-static-1.0.lib + ${CURRENT_PACKAGES_DIR}/lib/bson-1.0.lib) + file(RENAME + ${CURRENT_PACKAGES_DIR}/debug/lib/bson-static-1.0.lib + ${CURRENT_PACKAGES_DIR}/debug/lib/bson-1.0.lib) + endif() + + # drop the __declspec(dllimport) when building static + file(READ ${CURRENT_PACKAGES_DIR}/include/bson/bson-macros.h LIBBSON_MACROS_H) + string(REPLACE "define BSON_API __declspec(dllimport)" "define BSON_API" LIBBSON_MACROS_H "${LIBBSON_MACROS_H}") + file(WRITE ${CURRENT_PACKAGES_DIR}/include/bson/bson-macros.h "${LIBBSON_MACROS_H}") + + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin) +endif() + +configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/libbson/copyright COPYONLY) +file(COPY ${SOURCE_PATH}/THIRD_PARTY_NOTICES DESTINATION ${CURRENT_PACKAGES_DIR}/share/libbson) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + set(PORT_POSTFIX "static-1.0") +else() + set(PORT_POSTFIX "1.0") +endif() + +# Create cmake files for _both_ find_package(libbson) and find_package(libbson-static-1.0)/find_package(libbson-1.0) +file(READ ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config.cmake LIBBSON_CONFIG_CMAKE) +string(REPLACE "/include/libbson-1.0" "/include" LIBBSON_CONFIG_CMAKE "${LIBBSON_CONFIG_CMAKE}") +string(REPLACE "bson-static-1.0" "bson-1.0" LIBBSON_CONFIG_CMAKE "${LIBBSON_CONFIG_CMAKE}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config.cmake "${LIBBSON_CONFIG_CMAKE}") +file(COPY ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libbson-${PORT_POSTFIX}) +file(COPY ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config-version.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libbson-${PORT_POSTFIX}) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config.cmake ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-config.cmake) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config-version.cmake ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-config-version.cmake) + +vcpkg_copy_pdbs() diff --git a/ports/libbson/static.patch b/ports/libbson/static.patch deleted file mode 100644 index 7710d5b6d..000000000 --- a/ports/libbson/static.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/bson/bson-macros.h -+++ b/bson/bson-macros.h -@@ -87,7 +87,7 @@ - #elif defined(BSON_COMPILATION) - #define BSON_API __declspec(dllexport) - #else --#define BSON_API __declspec(dllimport) -+#define BSON_API - #endif - #define BSON_CALL __cdecl - diff --git a/ports/libdatrie/CONTROL b/ports/libdatrie/CONTROL index 587063ec5..ddcdf9972 100644 --- a/ports/libdatrie/CONTROL +++ b/ports/libdatrie/CONTROL @@ -1,5 +1,5 @@ Source: libdatrie -Version: 0.2.10-2 +Version: 0.2.10-3 Homepage: https://linux.thai.net/pub/ThaiLinux/software/libthai Description: implementation of double-array structure for representing trie Build-Depends: libiconv diff --git a/ports/libdatrie/portfile.cmake b/ports/libdatrie/portfile.cmake index f7fefd248..74b8bbd80 100644 --- a/ports/libdatrie/portfile.cmake +++ b/ports/libdatrie/portfile.cmake @@ -2,17 +2,16 @@ set(LIBDATRIE_VERSION 0.2.10) include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libdatrie-${LIBDATRIE_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://linux.thai.net/pub/ThaiLinux/software/libthai/libdatrie-${LIBDATRIE_VERSION}.tar.xz" FILENAME "libdatrie-${LIBDATRIE_VERSION}.tar.xz" SHA512 ee68ded9d6e06c562da462d42e7e56098a82478d7b8547506200c3018b72536c4037a4e518924f779dc77d3ab139d93216bdb29ab4116b9dc9efd1a5d1eb9e31 ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH + PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-exports.patch" "${CMAKE_CURRENT_LIST_DIR}/fix-trietool.patch" ) diff --git a/ports/libdisasm/CMakeLists.txt b/ports/libdisasm/CMakeLists.txt index 9d640a9b9..c3a8dfa30 100644 --- a/ports/libdisasm/CMakeLists.txt +++ b/ports/libdisasm/CMakeLists.txt @@ -4,32 +4,32 @@ project(libdisasm C) set(CMAKE_DEBUG_POSTFIX d) set(SRCS - ia32_implicit.c - ia32_implicit.h - ia32_insn.c - ia32_insn.h - ia32_invariant.c - ia32_invariant.h - ia32_modrm.c - ia32_modrm.h - ia32_opcode_tables.c - ia32_opcode_tables.h - ia32_operand.c - ia32_operand.h - ia32_reg.c - ia32_reg.h - ia32_settings.c - ia32_settings.h - libdis.h - qword.h - x86_disasm.c - x86_format.c - x86_imm.c - x86_imm.h - x86_insn.c - x86_misc.c - x86_operand_list.c - x86_operand_list.h + libdisasm/ia32_implicit.c + libdisasm/ia32_implicit.h + libdisasm/ia32_insn.c + libdisasm/ia32_insn.h + libdisasm/ia32_invariant.c + libdisasm/ia32_invariant.h + libdisasm/ia32_modrm.c + libdisasm/ia32_modrm.h + libdisasm/ia32_opcode_tables.c + libdisasm/ia32_opcode_tables.h + libdisasm/ia32_operand.c + libdisasm/ia32_operand.h + libdisasm/ia32_reg.c + libdisasm/ia32_reg.h + libdisasm/ia32_settings.c + libdisasm/ia32_settings.h + libdisasm/libdis.h + libdisasm/qword.h + libdisasm/x86_disasm.c + libdisasm/x86_format.c + libdisasm/x86_imm.c + libdisasm/x86_imm.h + libdisasm/x86_insn.c + libdisasm/x86_misc.c + libdisasm/x86_operand_list.c + libdisasm/x86_operand_list.h ) include_directories(libdisasm) @@ -44,5 +44,5 @@ install( ) if(NOT DISABLE_INSTALL_HEADERS) - install(FILES libdis.h DESTINATION include) + install(FILES libdisasm/libdis.h DESTINATION include) endif() diff --git a/ports/libdisasm/CONTROL b/ports/libdisasm/CONTROL index dae49116d..32e725aa6 100644 --- a/ports/libdisasm/CONTROL +++ b/ports/libdisasm/CONTROL @@ -1,4 +1,4 @@ Source: libdisasm -Version: 0.23-2 +Version: 0.23-3 Homepage: https://sourceforge.net/projects/bastard Description: x86 Disassembler Library. diff --git a/ports/libdisasm/portfile.cmake b/ports/libdisasm/portfile.cmake index e4bbaba54..48b646652 100644 --- a/ports/libdisasm/portfile.cmake +++ b/ports/libdisasm/portfile.cmake @@ -2,24 +2,21 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(BASE_PATH ${CURRENT_BUILDTREES_DIR}/src/libdisasm-0.23) -set(SOURCE_PATH ${BASE_PATH}/libdisasm) - vcpkg_download_distfile(ARCHIVE URLS "https://sourceforge.net/projects/bastard/files/libdisasm/0.23/libdisasm-0.23.tar.gz" FILENAME "libdisasm-0.23.tar.gz" SHA512 29eecfbfd8168188242278a1a38f0c90770d0581a52d4600ae6343829dd0d6607b98329f12a3d7409d43dd56dca6a7d1eb25d58a001c2bfd3eb8474c0e7879e7 ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/sizeofvoid.patch +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH + PATCHES + sizeofvoid.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -29,4 +26,4 @@ vcpkg_configure_cmake( vcpkg_install_cmake() # Handle copyright -file(INSTALL ${BASE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libdisasm RENAME copyright) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/libdisasm/sizeofvoid.patch b/ports/libdisasm/sizeofvoid.patch index 428c5616c..1e4e008fc 100644 --- a/ports/libdisasm/sizeofvoid.patch +++ b/ports/libdisasm/sizeofvoid.patch @@ -1,7 +1,5 @@ -diff --git a/x86_disasm.c b/x86_disasm.c -index 04574fa..177bfb8 100644 ---- a/x86_disasm.c -+++ b/x86_disasm.c +--- a/libdisasm/x86_disasm.c ++++ b/libdisasm/x86_disasm.c @@ -35,7 +35,7 @@ unsigned int x86_disasm( unsigned char *buf, unsigned int buf_len, if ( offset >= buf_len ) { diff --git a/ports/libffi/CONTROL b/ports/libffi/CONTROL index b393491e1..2fb2301a9 100644 --- a/ports/libffi/CONTROL +++ b/ports/libffi/CONTROL @@ -1,4 +1,4 @@ Source: libffi -Version: 3.1-5 +Version: 3.1-6 Homepage: https://github.com/libffi/libffi Description: Portable, high level programming interface to various calling conventions diff --git a/ports/libffi/portfile.cmake b/ports/libffi/portfile.cmake index bbb4daf83..bc3084e74 100644 --- a/ports/libffi/portfile.cmake +++ b/ports/libffi/portfile.cmake @@ -30,13 +30,14 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_copy_pdbs() -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - vcpkg_apply_patches( - SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/auto-define-static-macro.patch - ) -endif() +file(READ ${CURRENT_PACKAGES_DIR}/include/ffi.h FFI_H) +string(REPLACE "/* *know* they are going to link with the static library. */" +"/* *know* they are going to link with the static library. */ + +#define FFI_BUILDING + +" FFI_H "${FFI_H}") +file(WRITE ${CURRENT_PACKAGES_DIR}/include/ffi.h "${FFI_H}") file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libffi) file(RENAME ${CURRENT_PACKAGES_DIR}/share/libffi/LICENSE ${CURRENT_PACKAGES_DIR}/share/libffi/copyright) diff --git a/ports/libgo/portfile.cmake b/ports/libgo/portfile.cmake index f0311eea4..75a5736f6 100644 --- a/ports/libgo/portfile.cmake +++ b/ports/libgo/portfile.cmake @@ -13,16 +13,17 @@ vcpkg_from_github( boost-168.patch ) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/XBased/xhook/archive/e18c450541892212ca4f11dc91fa269fabf9646f.tar.gz" - FILENAME "xhook-e18c450541892212ca4f11dc91fa269fabf9646f.tar.gz" +vcpkg_from_github( + OUT_SOURCE_PATH XHOOK_SOURCE_PATH + REPO XBased/xhook + REF e18c450541892212ca4f11dc91fa269fabf9646f SHA512 1bcf320f50cff13d92013a9f0ab5c818c2b6b63e9c1ac18c5dd69189e448d7a848f1678389d8b2c08c65f907afb3909e743f6c593d9cfb21e2bb67d5c294a166 + HEAD_REF master ) file(REMOVE_RECURSE ${SOURCE_PATH}/third_party) - -vcpkg_extract_source_archive(${ARCHIVE} ${SOURCE_PATH}/third_party) -file(RENAME ${SOURCE_PATH}/third_party/xhook-e18c450541892212ca4f11dc91fa269fabf9646f ${SOURCE_PATH}/third_party/xhook) +file(MAKE_DIRECTORY ${SOURCE_PATH}/third_party) +file(RENAME ${XHOOK_SOURCE_PATH} ${SOURCE_PATH}/third_party/xhook) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/libiconv/0003-Fix-uwp.patch b/ports/libiconv/0003-Fix-uwp.patch deleted file mode 100644 index 0b2444166..000000000 --- a/ports/libiconv/0003-Fix-uwp.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/libcharset/lib/localcharset.c b/libcharset/lib/localcharset.c -index 3aceb42..dadd95a 100644 ---- a/libcharset/lib/localcharset.c -+++ b/libcharset/lib/localcharset.c -@@ -455,7 +455,10 @@ locale_charset (void) - # endif - - #elif defined WIN32_NATIVE -- -+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP) -+ // GetACP() not available to UWP apps -+ codeset = NULL; -+#else - static char buf[2 + 10 + 1]; - - /* Woe32 has a function returning the locale's codepage as a number: -@@ -467,7 +470,7 @@ locale_charset (void) - encoding is the best bet. */ - sprintf (buf, "CP%u", GetACP ()); - codeset = buf; -- -+#endif - #elif defined OS2 - - const char *locale; diff --git a/ports/libiconv/portfile.cmake b/ports/libiconv/portfile.cmake index 4b84ecc5f..488cc3b2f 100644 --- a/ports/libiconv/portfile.cmake +++ b/ports/libiconv/portfile.cmake @@ -21,7 +21,6 @@ vcpkg_extract_source_archive_ex( PATCHES 0001-Add-export-definitions.patch 0002-Config-for-MSVC.patch - 0003-Fix-uwp.patch ) #Since libiconv uses automake, make and configure, we use a custom CMake file @@ -39,8 +38,6 @@ vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-iconv TARGET_PATH share/u vcpkg_copy_pdbs() -# Handle copyright -file(COPY ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/libiconv) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/libiconv/COPYING.LIB ${CURRENT_PACKAGES_DIR}/share/libiconv/copyright) +file(INSTALL ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) vcpkg_test_cmake(PACKAGE_NAME unofficial-iconv) diff --git a/ports/libics/CONTROL b/ports/libics/CONTROL index 115540291..727c63c02 100644 --- a/ports/libics/CONTROL +++ b/ports/libics/CONTROL @@ -1,3 +1,3 @@ -Source: libics -Version: 1.6.3 +Source: libics +Version: 1.6.3-1 Description: Reference library for ICS (Image Cytometry Standard), an open standard for writing images of any dimensionality and data type to file, together with associated information regarding the recording equipment or recorded subject. \ No newline at end of file diff --git a/ports/libics/cmakelists.patch b/ports/libics/cmakelists.patch deleted file mode 100644 index 9e7fa498f..000000000 --- a/ports/libics/cmakelists.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- CMakeLists.txt -+++ CMakeLists.txt -@@ -86,7 +86,8 @@ - endif() - - # Install --install(TARGETS libics libics_static DESTINATION lib) -+install(TARGETS libics DESTINATION bin) -+install(TARGETS libics_static DESTINATION lib) - install(FILES ${HEADERS} DESTINATION include) - - # Unit tests diff --git a/ports/libics/portfile.cmake b/ports/libics/portfile.cmake index f0d27363a..c8b439909 100644 --- a/ports/libics/portfile.cmake +++ b/ports/libics/portfile.cmake @@ -2,11 +2,9 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO svi-opensource/libics - REF b9532b738ad7f17569dfcaae74eb53d3c2959394 + REF b9532b738ad7f17569dfcaae74eb53d3c2959394 SHA512 a7c0d89125570021494feaf0a187e3a1695e92c85a03d59ac9729618cdddb2ae13af94e4ce93241acbbb9d28465f75297bf03f2c46061bb7a0bba7ec28a23da4 HEAD_REF master - PATCHES - cmakelists.patch ) vcpkg_configure_cmake( diff --git a/ports/libkml/CONTROL b/ports/libkml/CONTROL index d52ca4c01..3783e0d3d 100644 --- a/ports/libkml/CONTROL +++ b/ports/libkml/CONTROL @@ -1,5 +1,5 @@ Source: libkml -Version: 1.3.0-3 +Version: 1.3.0-4 Homepage: https://github.com/libkml/libkml Description: Reference implementation of OGC KML 2.2 Build-Depends: zlib, expat, minizip[bzip2], uriparser, boost-smart-ptr diff --git a/ports/libkml/portfile.cmake b/ports/libkml/portfile.cmake index 3a0af2329..a6e23b863 100644 --- a/ports/libkml/portfile.cmake +++ b/ports/libkml/portfile.cmake @@ -1,16 +1,13 @@ include(vcpkg_common_functions) + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libkml/libkml REF 1.3.0 SHA512 aa48158103d3af764bf98c1fb4cf3e1356b9cc6c8e79d80b96850916f0a8ccb1dac3a46427735dd0bf20647daa047d10e722ac3da2a214d4c1559bf6d5d7c853 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - "${CMAKE_CURRENT_LIST_DIR}/patch_empty_literal_on_vc.patch" + patch_empty_literal_on_vc.patch ) file(REMOVE ${SOURCE_PATH}/cmake/External_boost.cmake) diff --git a/ports/libmad/CONTROL b/ports/libmad/CONTROL index e3adc42be..e0666dcc4 100644 --- a/ports/libmad/CONTROL +++ b/ports/libmad/CONTROL @@ -1,3 +1,3 @@ Source: libmad -Version: 0.15.1-3 +Version: 0.15.1-4 Description: high-quality MPEG audio decoder diff --git a/ports/libmad/portfile.cmake b/ports/libmad/portfile.cmake index 9c1f43b56..d5831d301 100644 --- a/ports/libmad/portfile.cmake +++ b/ports/libmad/portfile.cmake @@ -2,17 +2,15 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libmad-0.15.1b) vcpkg_download_distfile(ARCHIVE URLS "http://download.sourceforge.net/mad/libmad-0.15.1b.tar.gz" FILENAME "libmad-0.15.1b.tar.gz" SHA512 2cad30347fb310dc605c46bacd9da117f447a5cabedd8fefdb24ab5de641429e5ec5ce8af7aefa6a75a3f545d3adfa255e3fa0a2d50971f76bc0c4fc0400cc45 ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/use_fpm_default.patch" +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH ) #The archive only contains a Visual Studio 6.0 era DSP project file, so use a custom CMakeLists.txt diff --git a/ports/libmad/use_fpm_default.patch b/ports/libmad/use_fpm_default.patch deleted file mode 100644 index f20c8265e..000000000 --- a/ports/libmad/use_fpm_default.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- mad.h 2004-01-23 10:36:03.000000000 +0100 -+++ mad.h 2017-08-12 16:03:38.060392600 +0200 -@@ -24,7 +24,7 @@ - extern "C" { - # endif - --# define FPM_INTEL -+# define FPM_DEFAULT ---- msvc++/mad.h 2017-08-12 16:04:30.678146600 +0200 -+++ msvc++/mad.h 2017-08-12 16:04:00.779378000 +0200 -@@ -24,7 +24,7 @@ - extern "C" { - # endif - --# define FPM_INTEL -+# define FPM_DEFAULT diff --git a/ports/libmicrohttpd/CONTROL b/ports/libmicrohttpd/CONTROL index 8bc6ac229..d073ad6d7 100644 --- a/ports/libmicrohttpd/CONTROL +++ b/ports/libmicrohttpd/CONTROL @@ -1,4 +1,4 @@ Source: libmicrohttpd -Version: 0.9.63 +Version: 0.9.63-1 Homepage: https://www.gnu.org/software/libmicrohttpd/ Description: GNU libmicrohttpd is a small C library that is supposed to make it easy to run an HTTP server as part of another application diff --git a/ports/libmicrohttpd/portfile.cmake b/ports/libmicrohttpd/portfile.cmake index 51f4780a9..73f711445 100644 --- a/ports/libmicrohttpd/portfile.cmake +++ b/ports/libmicrohttpd/portfile.cmake @@ -2,13 +2,16 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libmicrohttpd-0.9.63) vcpkg_download_distfile(ARCHIVE URLS "ftp://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.63.tar.gz" FILENAME "libmicrohttpd-0.9.63.tar.gz" SHA512 cb99e7af84fb6d7c0fd3894a9dc0fbff14959b35347506bd3211a65bbfad36455007b9e67493e97c9d8394834408df10eeabdc7758573e6aae0ba6f5f87afe17 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/libmspack/CONTROL b/ports/libmspack/CONTROL index c81f19005..7daf9894e 100644 --- a/ports/libmspack/CONTROL +++ b/ports/libmspack/CONTROL @@ -1,5 +1,5 @@ Source: libmspack -Version: 0.10.1-1 +Version: 0.10.1-2 Build-Depends: Homepage: https://www.cabextract.org.uk/libmspack Description: libmspack is a portable library for some loosely related Microsoft compression formats. diff --git a/ports/libmspack/portfile.cmake b/ports/libmspack/portfile.cmake index b476ad9a6..3da56e9cc 100644 --- a/ports/libmspack/portfile.cmake +++ b/ports/libmspack/portfile.cmake @@ -3,14 +3,17 @@ include(vcpkg_common_functions) set(LIB_NAME libmspack) set(LIB_VERSION 0.10.1alpha) set(LIB_FILENAME ${LIB_NAME}-${LIB_VERSION}.tar.gz) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://www.cabextract.org.uk/libmspack/${LIB_FILENAME}" FILENAME "${LIB_FILENAME}" SHA512 a7b5f7caa49190c5021f3e768b92f2e51cc0ce685c9ab6ed6fb36de885c73231b58d47a8a3b5c5aa5c9ac56c25c500eb683d84dbf11f09f97f6cb4fff5adc245 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h DESTINATION ${SOURCE_PATH}) diff --git a/ports/libmupdf/CONTROL b/ports/libmupdf/CONTROL index 28b287a00..215178ef5 100644 --- a/ports/libmupdf/CONTROL +++ b/ports/libmupdf/CONTROL @@ -1,5 +1,5 @@ Source: libmupdf -Version: 1.15.0-1 +Version: 1.15.0-2 Build-Depends: freetype, libjpeg-turbo, harfbuzz, zlib, curl, glfw3, openjpeg, jbig2dec Homepage: https://github.com/ArtifexSoftware/mupdf Description: a lightweight PDF, XPS, and E-book library diff --git a/ports/libmupdf/portfile.cmake b/ports/libmupdf/portfile.cmake index 937daa4c4..a00c4cc87 100644 --- a/ports/libmupdf/portfile.cmake +++ b/ports/libmupdf/portfile.cmake @@ -10,7 +10,6 @@ vcpkg_from_github( HEAD_REF master PATCHES Fix-error-C2169.patch - remove_opj_defines.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) @@ -27,6 +26,4 @@ file(COPY ${SOURCE_PATH}/include/mupdf DESTINATION ${CURRENT_PACKAGES_DIR}/inclu vcpkg_copy_pdbs() -#copyright -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/libmupdf/remove_opj_defines.patch b/ports/libmupdf/remove_opj_defines.patch deleted file mode 100644 index ec591d367..000000000 --- a/ports/libmupdf/remove_opj_defines.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/source/fitz/load-jpx.c b/source/fitz/load-jpx.c -index 65699ba..ea84778 100644 ---- a/source/fitz/load-jpx.c -+++ b/source/fitz/load-jpx.c -@@ -445,11 +445,6 @@ fz_load_jpx_info(fz_context *ctx, const unsigned char *data, size_t size, int *w - - #else /* HAVE_LURATECH */ - --#define OPJ_STATIC --#define OPJ_HAVE_INTTYPES_H --#if !defined(_MSC_VER) || _MSC_VER >= 1600 --#define OPJ_HAVE_STDINT_H --#endif - #define USE_JPIP - - #include diff --git a/ports/libodb-boost/portfile.cmake b/ports/libodb-boost/portfile.cmake index dc94a232f..ee429c9ab 100644 --- a/ports/libodb-boost/portfile.cmake +++ b/ports/libodb-boost/portfile.cmake @@ -1,11 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libodb-boost-2.4.0) + vcpkg_download_distfile(ARCHIVE URLS "http://www.codesynthesis.com/download/odb/2.4/libodb-boost-2.4.0.tar.gz" FILENAME "libodb-boost-2.4.0.tar.gz" SHA512 af716b0385cf4ea18b20dcd5880c69c43cfc195eec4ff196a8e438833306489c39ab06a494e5d60cd08ba0d94caa05bd07e5f3fa836d835bad15c8a2ad7de306 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt diff --git a/ports/libodb-mysql/CONTROL b/ports/libodb-mysql/CONTROL index 100fa70f5..0ac4e211a 100644 --- a/ports/libodb-mysql/CONTROL +++ b/ports/libodb-mysql/CONTROL @@ -1,5 +1,5 @@ Source: libodb-mysql -Version: 2.4.0-4 +Version: 2.4.0-5 Homepage: https://www.codesynthesis.com/products/odb/ Description: MySQL support for the ODB ORM library -Build-Depends: libodb, libmysql \ No newline at end of file +Build-Depends: libodb, libmysql diff --git a/ports/libodb-mysql/portfile.cmake b/ports/libodb-mysql/portfile.cmake index 6bba901bd..479d2726e 100644 --- a/ports/libodb-mysql/portfile.cmake +++ b/ports/libodb-mysql/portfile.cmake @@ -1,14 +1,14 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libodb-mysql-2.4.0) + vcpkg_download_distfile(ARCHIVE URLS "https://www.codesynthesis.com/download/odb/2.4/libodb-mysql-2.4.0.tar.gz" FILENAME "libodb-mysql-2.4.0.tar.gz" SHA512 c27b73c3f61dccdd149c11c122185f645a00d5bc346b366ee65b738f8719c39d03fad07a0d55b62b3db9e3ad2507679c24ddda331e5d110f367ad32f7cf8b910 ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH PATCHES ${CMAKE_CURRENT_LIST_DIR}/adapter_mysql_8.0.patch ) @@ -42,4 +42,4 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) vcpkg_copy_pdbs() -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/libodb-pgsql/portfile.cmake b/ports/libodb-pgsql/portfile.cmake index ed9f35034..c8a720340 100644 --- a/ports/libodb-pgsql/portfile.cmake +++ b/ports/libodb-pgsql/portfile.cmake @@ -1,11 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libodb-pgsql-2.4.0) + vcpkg_download_distfile(ARCHIVE URLS "http://www.codesynthesis.com/download/odb/2.4/libodb-pgsql-2.4.0.tar.gz" FILENAME "libodb-pgsql-2.4.0.tar.gz" SHA512 535515356233b815f144c0098940174f7a530e7fa4e930c0a9ebdc255fdb8bac8cdcceac31f25be4864105323e00bfe50808efa648e7c8ffb5a944e52f514b69 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt diff --git a/ports/libodb-sqlite/portfile.cmake b/ports/libodb-sqlite/portfile.cmake index 0df8888d4..113307abe 100644 --- a/ports/libodb-sqlite/portfile.cmake +++ b/ports/libodb-sqlite/portfile.cmake @@ -1,11 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libodb-sqlite-2.4.0) + vcpkg_download_distfile(ARCHIVE URLS "http://www.codesynthesis.com/download/odb/2.4/libodb-sqlite-2.4.0.tar.gz" FILENAME "libodb-sqlite-2.4.0.tar.gz" SHA512 af16da7c82cf8845ca3b393fbd8957a92b05ebc925a5191f20d414ab558345850073cd9c46457d0ef0edfb12ebcb27f267b934c9c69ef598380242fe920c8577 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt diff --git a/ports/libodb/portfile.cmake b/ports/libodb/portfile.cmake index 8965c008f..18dc60f73 100644 --- a/ports/libodb/portfile.cmake +++ b/ports/libodb/portfile.cmake @@ -1,13 +1,17 @@ include(vcpkg_common_functions) include(CMakePackageConfigHelpers) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libodb-2.4.0) vcpkg_download_distfile(ARCHIVE URLS "http://www.codesynthesis.com/download/odb/2.4/libodb-2.4.0.tar.gz" FILENAME "libodb-2.4.0.tar.gz" SHA512 f1311458634695eb6ba307ebfd492e3b260e7beb06db1c5c46df58c339756be4006322cdc4e42d055bf5b2ad14ce4656ddcafcc4e16c282034db8a77d255c3eb ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) + file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt ${CMAKE_CURRENT_LIST_DIR}/config.unix.h.in diff --git a/ports/libp7-baical/portfile.cmake b/ports/libp7-baical/portfile.cmake index fcc51caed..bae7c896e 100644 --- a/ports/libp7-baical/portfile.cmake +++ b/ports/libp7-baical/portfile.cmake @@ -10,14 +10,17 @@ endif() set(LIBP7_VERSION 4.4) set(LIBP7_HASH 500fefdf6fb01999ddb2accc8309cf8749fb7a65abb98faaf6d71a5ae3da4eac8c00c083905b01f7f6cc973387b605f2c4db0bb007562f76b7ad43b6abe2b91f) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libP7_v${LIBP7_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "http://baical.net/files/libP7_v${LIBP7_VERSION}.zip" FILENAME "libP7_v${LIBP7_VERSION}.zip" SHA512 ${LIBP7_HASH} ) -vcpkg_extract_source_archive(${ARCHIVE} ${SOURCE_PATH}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/libpng-apng/CONTROL b/ports/libpng-apng/CONTROL index cb199b9fe..2c282cb93 100644 --- a/ports/libpng-apng/CONTROL +++ b/ports/libpng-apng/CONTROL @@ -1,5 +1,5 @@ Source: libpng-apng -Version: 1.6.37 +Version: 1.6.37-1 Build-Depends: zlib Homepage: https://github.com/glennrp/libpng Description: libpng-apng is a library implementing an interface for reading and writing (A)PNG ((Animated) Portable Network Graphics) format files. This is backward compatible with the regular libpng, both in library usage and format. diff --git a/ports/libpng-apng/portfile.cmake b/ports/libpng-apng/portfile.cmake index 948b0a2f3..7d0804420 100644 --- a/ports/libpng-apng/portfile.cmake +++ b/ports/libpng-apng/portfile.cmake @@ -8,6 +8,10 @@ vcpkg_from_github( REF v${LIBPNG_APNG_VERSION} SHA512 aeb00b48347c9e84d31995b3fe7e40580029734aa8103d774eee5745f5ca1fd1fd91a15f32d492277ab94346e4e7f731ee9bfea1783f930094f9f87eb3d9397d HEAD_REF master + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/use-abort-on-all-platforms.patch + ${CMAKE_CURRENT_LIST_DIR}/skip-install-symlink.patch + ${CURRENT_BUILDTREES_DIR}/src/libpng-${LIBPNG_APNG_VERSION}-apng.patch ) vcpkg_download_distfile(LIBPNG_APNG_PATCH_ARCHIVE @@ -31,14 +35,6 @@ get_filename_component(GIT_EXE_PATH ${GIT} DIRECTORY) set(AWK_EXE_PATH "${GIT_EXE_PATH}/../usr/bin") set(ENV{PATH} "$ENV{PATH};${AWK_EXE_PATH}") -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/use-abort-on-all-platforms.patch - ${CMAKE_CURRENT_LIST_DIR}/skip-install-symlink.patch - ${CURRENT_BUILDTREES_DIR}/src/libpng-${LIBPNG_APNG_VERSION}-apng.patch -) - if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(PNG_STATIC_LIBS OFF) set(PNG_SHARED_LIBS ON) diff --git a/ports/libpopt/patches/0004-vcpkg-fixmsvc.patch b/ports/libpopt/0004-vcpkg-fixmsvc.patch similarity index 100% rename from ports/libpopt/patches/0004-vcpkg-fixmsvc.patch rename to ports/libpopt/0004-vcpkg-fixmsvc.patch diff --git a/ports/libpopt/cmake/CMakeLists.txt b/ports/libpopt/CMakeLists.txt similarity index 100% rename from ports/libpopt/cmake/CMakeLists.txt rename to ports/libpopt/CMakeLists.txt diff --git a/ports/libpopt/CONTROL b/ports/libpopt/CONTROL index 5ba1451b6..70cf3dae9 100644 --- a/ports/libpopt/CONTROL +++ b/ports/libpopt/CONTROL @@ -1,3 +1,3 @@ Source: libpopt -Version: 1.16-10~vcpkg1-1 +Version: 1.16-11 Description: Library for parsing command line parameters diff --git a/ports/libpopt/cmake/config.h.cmake b/ports/libpopt/config.h.cmake similarity index 100% rename from ports/libpopt/cmake/config.h.cmake rename to ports/libpopt/config.h.cmake diff --git a/ports/libpopt/cmake/popt.def b/ports/libpopt/popt.def similarity index 100% rename from ports/libpopt/cmake/popt.def rename to ports/libpopt/popt.def diff --git a/ports/libpopt/portfile.cmake b/ports/libpopt/portfile.cmake index ba50135d6..95970e78e 100644 --- a/ports/libpopt/portfile.cmake +++ b/ports/libpopt/portfile.cmake @@ -2,7 +2,6 @@ include(vcpkg_common_functions) set(LIBPOPT_VERSION 1.16) set(LIBPOPT_HASH bae2dd4e5d682ef023fdc77ae60c4aad01a3a576d45af9d78d22490c11e410e60edda37ede171920746d4ae0d5de3c060d15cecfd41ba75b727a811be828d694) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/popt-${LIBPOPT_VERSION}) vcpkg_download_distfile(ARCHIVE URLS @@ -11,16 +10,17 @@ vcpkg_download_distfile(ARCHIVE FILENAME "popt-${LIBPOPT_VERSION}.tar.gz" SHA512 ${LIBPOPT_HASH} ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/patches/0004-vcpkg-fixmsvc.patch" +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + 0004-vcpkg-fixmsvc.patch ) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/cmake/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/cmake/config.h.cmake DESTINATION ${SOURCE_PATH}) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/cmake/popt.def DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h.cmake DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/popt.def DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/libqrencode/portfile.cmake b/ports/libqrencode/portfile.cmake index 98a6d400e..450448dc3 100644 --- a/ports/libqrencode/portfile.cmake +++ b/ports/libqrencode/portfile.cmake @@ -6,7 +6,7 @@ vcpkg_from_github( REF v4.0.2 SHA512 847e32bd13358319f3beabde103b5335a6e11c3f9275425b74e89a00b0ee4d67af8a428f12acc8b80a0419382480e5aeb02e58602a69ee750c21b28f357af6bc HEAD_REF master - PATCHES + PATCHES fix-found-wingetopt.patch ) diff --git a/ports/libraw/CONTROL b/ports/libraw/CONTROL index 1d0c17203..20b415a47 100644 --- a/ports/libraw/CONTROL +++ b/ports/libraw/CONTROL @@ -1,5 +1,5 @@ Source: libraw -Version: 201903-1 +Version: 201903-2 Build-Depends: lcms, jasper Homepage: https://www.libraw.org Description: raw image decoder library diff --git a/ports/libraw/portfile.cmake b/ports/libraw/portfile.cmake index d834b80e9..91cf2d736 100644 --- a/ports/libraw/portfile.cmake +++ b/ports/libraw/portfile.cmake @@ -1,12 +1,5 @@ include(vcpkg_common_functions) -# Update to latest LibRaw-201903 snapshot at d4f05dd1b9b2d44c8f7e82043cbad3c724db2416 -# LibRaw publishes: -# - snapshots every 5-7 months (in master branch) -# - releases (0.18, 0.19, etc.) every 1-1.5 years. -# - security hotfixes for releases (0.19.1, 0.19.2, etc.) -# Hence, from user point of view, it is practical to refer to the latest snapshot, -# instead of the latest release. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LibRaw/LibRaw @@ -15,27 +8,20 @@ vcpkg_from_github( HEAD_REF master ) -set(LIBRAW_CMAKE_COMMIT "a71f3b83ee3dccd7be32f9a2f410df4d9bdbde0a") -set(LIBRAW_CMAKE_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/LibRaw-cmake-${LIBRAW_CMAKE_COMMIT}) -vcpkg_download_distfile(CMAKE_BUILD_ARCHIVE - URLS "https://github.com/LibRaw/LibRaw-cmake/archive/${LIBRAW_CMAKE_COMMIT}.zip" - FILENAME "LibRaw-cmake-${LIBRAW_CMAKE_COMMIT}" - SHA512 54216e6760e2339dc3bf4b4be533a13160047cabfc033a06da31f2226c43fc93eaea9672af83589e346ce9231c1a57910ac5e800759e692fe2cd9d53b7fba0c6 +vcpkg_from_github( + OUT_SOURCE_PATH LIBRAW_CMAKE_SOURCE_PATH + REPO LibRaw/LibRaw-cmake + REF a71f3b83ee3dccd7be32f9a2f410df4d9bdbde0a + SHA512 607e6f76bcb57534da4f0c864b7a421f1ed49244468b1b52abe77f65aa599cae80715520b3a951294321b812deffd4f163757c9949f337571aa54f414ccc58a5 + HEAD_REF master + PATCHES + findlibraw_debug_fix.patch + lcms2_debug_fix.patch ) -vcpkg_extract_source_archive(${CMAKE_BUILD_ARCHIVE} ${CURRENT_BUILDTREES_DIR}/src) - -# Copy the CMake build system from the external repo file(COPY ${LIBRAW_CMAKE_SOURCE_PATH}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY ${LIBRAW_CMAKE_SOURCE_PATH}/cmake DESTINATION ${SOURCE_PATH}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/findlibraw_debug_fix.patch - ${CMAKE_CURRENT_LIST_DIR}/lcms2_debug_fix.patch -) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/librsvg/CMakeLists.txt b/ports/librsvg/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/ports/librsvg/CONTROL b/ports/librsvg/CONTROL old mode 100755 new mode 100644 diff --git a/ports/librsvg/portfile.cmake b/ports/librsvg/portfile.cmake old mode 100755 new mode 100644 diff --git a/ports/librtmp/CONTROL b/ports/librtmp/CONTROL index f43270e5d..c353b087e 100644 --- a/ports/librtmp/CONTROL +++ b/ports/librtmp/CONTROL @@ -1,5 +1,5 @@ Source: librtmp -Version: 2.4-1 +Version: 2.4-2 Build-Depends: zlib, openssl Homepage: https://rtmpdump.mplayerhq.hu Description: RTMPDump Real-Time Messaging Protocol API diff --git a/ports/librtmp/portfile.cmake b/ports/librtmp/portfile.cmake index 25e41bbf7..609d098b8 100644 --- a/ports/librtmp/portfile.cmake +++ b/ports/librtmp/portfile.cmake @@ -2,25 +2,24 @@ include(vcpkg_common_functions) set(RTMPDUMP_VERSION 2.4) set(RTMPDUMP_FILENAME rtmpdump-${RTMPDUMP_VERSION}.tar.gz) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/rtmpdump) vcpkg_download_distfile(ARCHIVE URLS "http://rtmpdump.mplayerhq.hu/download/${RTMPDUMP_FILENAME}" FILENAME "${RTMPDUMP_FILENAME}" SHA512 a6253af95492739366dce620a2a6cc6f4f18d7f12f9ef2c747240259066ca135beeb02091d0f3dd8380c0c294a30d3f702ad3fad1dee1db4e70473078fb81609 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + fix_strncasecmp.patch + hide_netstackdump.patch +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/librtmp.def DESTINATION ${SOURCE_PATH}/librtmp) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/fix_strncasecmp.patch - ${CMAKE_CURRENT_LIST_DIR}/hide_netstackdump.patch -) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/libsamplerate/portfile.cmake b/ports/libsamplerate/portfile.cmake index 9cd648a6d..b2453f8a4 100644 --- a/ports/libsamplerate/portfile.cmake +++ b/ports/libsamplerate/portfile.cmake @@ -1,14 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libsamplerate-0.1.9) - vcpkg_download_distfile(ARCHIVE URLS "http://www.mega-nerd.com/SRC/libsamplerate-0.1.9.tar.gz" FILENAME "libsamplerate-0.1.9.tar.gz" SHA512 78596657963cbf06785e3e6e1190b093df71da52ca340e75bd8246a962cd79dd1c90fa5527c607cebcb296e2c1ee605015278b274e3b768f2f3fbeb0eadfb728 ) -vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/src) file(COPY ${SOURCE_PATH}/Win32/config.h DESTINATION ${SOURCE_PATH}/src) diff --git a/ports/libsigcpp/CONTROL b/ports/libsigcpp/CONTROL index c0393066b..617328c7b 100644 --- a/ports/libsigcpp/CONTROL +++ b/ports/libsigcpp/CONTROL @@ -1,3 +1,3 @@ Source: libsigcpp -Version: 2.10-1 +Version: 2.10-3 Description: Typesafe callback framework for C++ diff --git a/ports/libsigcpp/dont-import-symbols.patch b/ports/libsigcpp/dont-import-symbols.patch deleted file mode 100644 index b031d3baf..000000000 --- a/ports/libsigcpp/dont-import-symbols.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/sigc++config.h b/sigc++config.h -index e212700..8d7366e 100644 ---- a/sigc++config.h -+++ b/sigc++config.h -@@ -72,6 +72,8 @@ - - #endif /* !SIGC_MSC */ - -+#undef SIGC_DLL -+ - #ifdef SIGC_DLL - # if defined(SIGC_BUILD) && defined(_WINDLL) - # define SIGC_API __declspec(dllexport) diff --git a/ports/libsigcpp/portfile.cmake b/ports/libsigcpp/portfile.cmake index c98a26717..707e59010 100644 --- a/ports/libsigcpp/portfile.cmake +++ b/ports/libsigcpp/portfile.cmake @@ -1,12 +1,17 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libsigc++-2.10.0) + vcpkg_download_distfile(ARCHIVE URLS "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.10/libsigc++-2.10.0.tar.xz" FILENAME "libsigc++-2.10.0.tar.xz" - SHA512 5b96df21d6bd6ba41520c7219e77695a86aabc60b7259262c7a9f4b8475ce0e2fd8dc37bcf7c17e24e818ff28c262d682b964c83e215b51bdbe000f3f58794ae) + SHA512 5b96df21d6bd6ba41520c7219e77695a86aabc60b7259262c7a9f4b8475ce0e2fd8dc37bcf7c17e24e818ff28c262d682b964c83e215b51bdbe000f3f58794ae +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) -vcpkg_extract_source_archive(${ARCHIVE}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( @@ -18,10 +23,11 @@ vcpkg_install_cmake() vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - vcpkg_apply_patches( - SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/dont-import-symbols.patch) + file(READ ${CURRENT_PACKAGES_DIR}/include/sigc++config.h SIGCPPCONFIG_H) + string(REPLACE "endif /* !SIGC_MSC */" + "endif /* !SIGC_MSC */ +#undef SIGC_DLL" SIGCPPCONFIG_H "${SIGCPPCONFIG_H}") + file(WRITE ${CURRENT_PACKAGES_DIR}/include/sigc++config.h "${SIGCPPCONFIG_H}") endif() file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libsigcpp) diff --git a/ports/libsoundio/CONTROL b/ports/libsoundio/CONTROL index 9b2072115..52ab4845f 100644 --- a/ports/libsoundio/CONTROL +++ b/ports/libsoundio/CONTROL @@ -1,4 +1,4 @@ Source: libsoundio -Version: 2.0.0 +Version: 2.0.0-1 Description: libsoundio is C library providing cross-platform audio input and output. Homepage: http://libsound.io/ diff --git a/ports/libsoundio/fix_example.patch b/ports/libsoundio/fix_example.patch deleted file mode 100644 index 39bbb9b02..000000000 --- a/ports/libsoundio/fix_example.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/sio_microphone.c b/sio_microphone.c -index 0fa8cca..5c89656 100644 ---- a/sio_microphone.c -+++ b/sio_microphone.c -@@ -45,10 +45,13 @@ static int prioritized_sample_rates[] = { - 0, - }; - -- -+#ifdef _MSC_VER -+__declspec (noreturn) -+#else - __attribute__ ((cold)) - __attribute__ ((noreturn)) - __attribute__ ((format (printf, 1, 2))) -+#endif - static void panic(const char *format, ...) { - va_list ap; - va_start(ap, format); -diff --git a/sio_record.c b/sio_record.c -index 61d584d..c33b05e 100644 ---- a/sio_record.c -+++ b/sio_record.c -@@ -12,7 +12,12 @@ - #include - #include - #include -+#ifdef _WIN32 -+#include -+#define sleep(n) Sleep(n * 1000) -+#else - #include -+#endif - - struct RecordContext { - struct SoundIoRingBuffer *ring_buffer; diff --git a/ports/libsoundio/fix_test.patch b/ports/libsoundio/fix_test.patch deleted file mode 100644 index dc92c2d1b..000000000 --- a/ports/libsoundio/fix_test.patch +++ /dev/null @@ -1,82 +0,0 @@ -diff --git a/backend_disconnect_recover.c b/backend_disconnect_recover.c -index 046a150..7c89df7 100644 ---- a/backend_disconnect_recover.c -+++ b/backend_disconnect_recover.c -@@ -12,11 +12,20 @@ - #include - #include - #include -+#ifdef _WIN32 -+#include -+#define sleep(n) Sleep(n * 1000) -+#else - #include -+#endif - -+#ifdef _MSC_VER -+__declspec (noreturn) -+#else - __attribute__ ((cold)) - __attribute__ ((noreturn)) - __attribute__ ((format (printf, 1, 2))) -+#endif - static void panic(const char *format, ...) { - va_list ap; - va_start(ap, format); -diff --git a/overflow.c b/overflow.c -index 43b6d22..67947fe 100644 ---- a/overflow.c -+++ b/overflow.c -@@ -12,7 +12,12 @@ - #include - #include - #include -+#ifdef _WIN32 -+#include -+#define sleep(n) Sleep(n * 1000) -+#else - #include -+#endif - - static enum SoundIoFormat prioritized_formats[] = { - SoundIoFormatFloat32NE, -@@ -36,9 +41,13 @@ static enum SoundIoFormat prioritized_formats[] = { - SoundIoFormatInvalid, - }; - -+#ifdef _MSC_VER -+__declspec (noreturn) -+#else - __attribute__ ((cold)) - __attribute__ ((noreturn)) - __attribute__ ((format (printf, 1, 2))) -+#endif - static void panic(const char *format, ...) { - va_list ap; - va_start(ap, format); -diff --git a/underflow.c b/underflow.c -index 083e92d..32907de 100644 ---- a/underflow.c -+++ b/underflow.c -@@ -12,12 +12,21 @@ - #include - #include - #include -+#ifdef _WIN32 -+#include -+#define sleep(n) Sleep(n * 1000) -+#else - #include -+#endif - #include - -+#ifdef _MSC_VER -+__declspec (noreturn) -+#else - __attribute__ ((cold)) - __attribute__ ((noreturn)) - __attribute__ ((format (printf, 1, 2))) -+#endif - static void panic(const char *format, ...) { - va_list ap; - va_start(ap, format); diff --git a/ports/libsoundio/portfile.cmake b/ports/libsoundio/portfile.cmake index c298e0ab8..0e1b7f561 100644 --- a/ports/libsoundio/portfile.cmake +++ b/ports/libsoundio/portfile.cmake @@ -12,8 +12,6 @@ vcpkg_from_github( HEAD_REF master PATCHES fix_cmakelists.patch - fix_example.patch - fix_test.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIBS) diff --git a/ports/libstemmer/CONTROL b/ports/libstemmer/CONTROL index a1949a2be..57d28d855 100644 --- a/ports/libstemmer/CONTROL +++ b/ports/libstemmer/CONTROL @@ -1,4 +1,4 @@ Source: libstemmer -Version: 2017-9-4 +Version: 2017-9-5 Homepage: https://snowball.tartarus.org/ Description: Snowball is a small string processing language designed for creating stemming algorithms for use in Information Retrieval diff --git a/ports/libstemmer/portfile.cmake b/ports/libstemmer/portfile.cmake index ed4d86c4e..68580f440 100644 --- a/ports/libstemmer/portfile.cmake +++ b/ports/libstemmer/portfile.cmake @@ -2,13 +2,16 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libstemmer_c) vcpkg_download_distfile(ARCHIVE URLS "http://snowball.tartarus.org/dist/libstemmer_c.tgz" FILENAME "libstemmer_c.tgz" SHA512 9ab5b8bfd5b4071dbbd63d769e09fae3971b49ee441ad970aa95d90b3297f5ffc9deed1613d99974d1485bf3b69292663591957f52bbeddcadbf9d9a4af432f2 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/libtheora/CONTROL b/ports/libtheora/CONTROL index 6c5f93b2c..6485b120e 100644 --- a/ports/libtheora/CONTROL +++ b/ports/libtheora/CONTROL @@ -1,5 +1,5 @@ Source: libtheora -Version: 1.2.0alpha1-20170719~vcpkg1-3 +Version: 1.2.0alpha1-20170719-1 Homepage: https://github.com/xiph/theora Description: Theora is a free and open video compression format from the Xiph.org Foundation. Build-Depends: libogg diff --git a/ports/libtheora/portfile.cmake b/ports/libtheora/portfile.cmake index 50e6fc653..7d9080508 100644 --- a/ports/libtheora/portfile.cmake +++ b/ports/libtheora/portfile.cmake @@ -6,12 +6,8 @@ vcpkg_from_github( REF fa5707d68c2a4338d58aa8b6afc95539ba89fecb SHA512 e33da23a17e93709dfe4421b512cedbd9aab0d706f5650e0436f9c8e1cde76b902c3338d46750bb86d83e1bceb111ee84e90df36fb59b5c2e7f7aee1610752b2 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001-fix-uwp.patch + 0001-fix-uwp.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/libusb-win32/CONTROL b/ports/libusb-win32/CONTROL index a85b6a11c..6904f7066 100644 --- a/ports/libusb-win32/CONTROL +++ b/ports/libusb-win32/CONTROL @@ -1,4 +1,4 @@ Source: libusb-win32 -Version: 1.2.6.0-2 +Version: 1.2.6.0-3 Homepage: https://sourceforge.net/projects/libusb-win32 Description: Allows user space applications to access many USB device on Windows. diff --git a/ports/libusb-win32/portfile.cmake b/ports/libusb-win32/portfile.cmake index df12a9179..1164939fb 100644 --- a/ports/libusb-win32/portfile.cmake +++ b/ports/libusb-win32/portfile.cmake @@ -7,13 +7,16 @@ endif() set(LIBUSB_VERSION 1.2.6.0) set(LIBUSB_HASH 972438b7465a22882bc91a1238291240ee3cdb09f374454a027d003b150656d4c262553104f74418bb49b4a7ca2f1a4f72d20e689fa3a7728881bafc876267f4) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libusb-win32-src-${LIBUSB_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/${LIBUSB_VERSION}/libusb-win32-src-${LIBUSB_VERSION}.zip/download" FILENAME "libusb-win32-${LIBUSB_VERSION}.zip" SHA512 ${LIBUSB_HASH} ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/libusbmuxd/CONTROL b/ports/libusbmuxd/CONTROL index 05faa6a1c..f17e7222c 100644 --- a/ports/libusbmuxd/CONTROL +++ b/ports/libusbmuxd/CONTROL @@ -1,4 +1,4 @@ Source: libusbmuxd -Version: 1.2.77 +Version: 1.2.77-1 Description: A client library to multiplex connections from and to iOS devices Build-Depends: libplist diff --git a/ports/libusbmuxd/dllexport.patch b/ports/libusbmuxd/dllexport.patch deleted file mode 100644 index 15996ec01..000000000 --- a/ports/libusbmuxd/dllexport.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/include/usbmuxd.h b/include/usbmuxd.h -index 5a3b0c0..aa1c8d9 100644 ---- a/include/usbmuxd.h -+++ b/include/usbmuxd.h -@@ -24,7 +24,7 @@ - #define USBMUXD_H - #include - --#ifdef _MSC_VER -+#if defined(_MSC_VER) && defined(USBMUXD_EXPORTS) - #define USBMUXD_API_MSC __declspec( dllexport ) - #else - #ifdef HAVE_FVISIBILITY -diff --git a/src/libusbmuxd.c b/src/libusbmuxd.c -index b94c83c..1902a55 100644 ---- a/src/libusbmuxd.c -+++ b/src/libusbmuxd.c -@@ -34,7 +34,7 @@ - #include - #include - --#ifdef _MSC_VER -+#if defined(_MSC_VER) && defined(USBMUXD_EXPORTS) - #define USBMUXD_API __declspec( dllexport ) - #else - #define USBMUXD_API diff --git a/ports/libusbmuxd/portfile.cmake b/ports/libusbmuxd/portfile.cmake index d02ca0768..acf6bba6c 100644 --- a/ports/libusbmuxd/portfile.cmake +++ b/ports/libusbmuxd/portfile.cmake @@ -5,10 +5,9 @@ vcpkg_check_linkage(ONLY_DYNAMIC_CRT ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libimobiledevice-win32/libusbmuxd - REF a4422aa65f3635d99c3b80fad18f093ef3c5f653 + REF a4422aa65f3635d99c3b80fad18f093ef3c5f653 SHA512 9446bbcd6b901e6183f6e86d7fe7301c01182ae5b9330182fbca529bb1db54250cd6012256a420d457a7243388811c94bb2ecf5a0747238714d00b3850e60e8e HEAD_REF msvc-master - PATCHES dllexport.patch ) set(ENV{_CL_} "$ENV{_CL_} /GL-") diff --git a/ports/libuuid/CONTROL b/ports/libuuid/CONTROL index 265fdeebf..e5dc0c0b4 100644 --- a/ports/libuuid/CONTROL +++ b/ports/libuuid/CONTROL @@ -1,3 +1,3 @@ Source: libuuid -Version: 1.0.3-2 +Version: 1.0.3-3 Description: Universally unique id library diff --git a/ports/libuuid/portfile.cmake b/ports/libuuid/portfile.cmake index c5cd287f6..719478e24 100644 --- a/ports/libuuid/portfile.cmake +++ b/ports/libuuid/portfile.cmake @@ -4,14 +4,16 @@ if (NOT ((VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") OR (VCPKG_CMAKE_SYSTEM_NAME message(FATAL_ERROR "libuuid currently only supports unix platforms.") endif() -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}) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt diff --git a/ports/libvpx/CONTROL b/ports/libvpx/CONTROL index 85c40679d..52727e622 100644 --- a/ports/libvpx/CONTROL +++ b/ports/libvpx/CONTROL @@ -1,4 +1,4 @@ Source: libvpx -Version: 1.8.1 +Version: 1.8.1-1 Homepage: https://github.com/webmproject/libvpx Description: The reference software implementation for the video coding formats VP8 and VP9. diff --git a/ports/libvpx/portfile.cmake b/ports/libvpx/portfile.cmake index adfb9889c..5725b5358 100644 --- a/ports/libvpx/portfile.cmake +++ b/ports/libvpx/portfile.cmake @@ -5,17 +5,16 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) set(LIBVPX_VERSION 1.8.1) set(LIBVPX_HASH 615476a929e46befdd4782a39345ce55cd30176ecb2fcd8a875c31694ae2334b395dcab9c5ba58d53ceb572ed0c022d2a3748ca4bbd36092e22b01cf3c9b2e8e) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libvpx-${LIBVPX_VERSION}) - -string(REGEX REPLACE "\\\\" "/" SOURCE_PATH_UNIX ${SOURCE_PATH}) -string(REGEX REPLACE "\\\\" "/" CURRENT_PACKAGES_DIR_UNIX ${CURRENT_PACKAGES_DIR}) - vcpkg_download_distfile(ARCHIVE URLS "https://github.com/webmproject/libvpx/archive/v${LIBVPX_VERSION}/libvpx-${LIBVPX_VERSION}.tar.gz" FILENAME "libvpx-${LIBVPX_VERSION}.tar.gz" SHA512 ${LIBVPX_HASH} ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) vcpkg_find_acquire_program(YASM) vcpkg_find_acquire_program(PERL) @@ -55,7 +54,7 @@ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) vcpkg_execute_required_process( COMMAND ${BASH} --noprofile --norc - "${SOURCE_PATH_UNIX}/configure" + "${SOURCE_PATH}/configure" --target=${LIBVPX_TARGET_ARCH}-${LIBVPX_TARGET_VS} ${LIBVPX_CRT_LINKAGE} --disable-examples diff --git a/ports/libxmlpp/CONTROL b/ports/libxmlpp/CONTROL index 31b54a74c..247704f9f 100644 --- a/ports/libxmlpp/CONTROL +++ b/ports/libxmlpp/CONTROL @@ -1,4 +1,4 @@ Source: libxmlpp -Version: 2.40.1-3 +Version: 2.40.1-5 Description: a C++ wrapper for the libxml XML parser library. Build-Depends: libxml2, glibmm diff --git a/ports/libxmlpp/portfile.cmake b/ports/libxmlpp/portfile.cmake index 3919e4bf2..1b31ed225 100644 --- a/ports/libxmlpp/portfile.cmake +++ b/ports/libxmlpp/portfile.cmake @@ -3,21 +3,22 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) set(LIBXMLPP_VERSION 2.40.1) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libxml++-${LIBXMLPP_VERSION}) + vcpkg_download_distfile(ARCHIVE URLS "http://ftp.gnome.org/pub/GNOME/sources/libxml++/2.40/libxml++-${LIBXMLPP_VERSION}.tar.xz" FILENAME "libxml++-${LIBXMLPP_VERSION}.tar.xz" SHA512 a4ec2e8182d981c57bdcb8f0a203a3161f8c735ceb59fd212408b7a539d1dc826adf6717bed8f4d544ab08afd9c2fc861efe518e24bbd3a1c4b158e2ca48183a ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + fixAutoPtrExpired.patch +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -vcpkg_apply_patches( - SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libxml++-${LIBXMLPP_VERSION} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/fixAutoPtrExpired.patch" -) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/libxmp-lite/CONTROL b/ports/libxmp-lite/CONTROL index cbc01c58f..8ca5cbd41 100644 --- a/ports/libxmp-lite/CONTROL +++ b/ports/libxmp-lite/CONTROL @@ -1,4 +1,4 @@ Source: libxmp-lite -Version: 4.4.1-1 +Version: 4.4.1-2 Homepage: https://sourceforge.net/projects/xmp/ Description: Lightweight version of libxmp that supports MOD, S3M, XM and IT modules. diff --git a/ports/libxmp-lite/portfile.cmake b/ports/libxmp-lite/portfile.cmake index 5af0f25f3..e77290095 100644 --- a/ports/libxmp-lite/portfile.cmake +++ b/ports/libxmp-lite/portfile.cmake @@ -2,18 +2,18 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libxmp-lite-4.4.1) vcpkg_download_distfile(ARCHIVE URLS "http://sourceforge.net/projects/xmp/files/libxmp/4.4.1/libxmp-lite-4.4.1.tar.gz" FILENAME "libxmp-lite-4.4.1.tar.gz" SHA512 f27e3f9fb79ff15ce90b51fb29641c01cadf7455150da57cde6860c2ba075ed497650eb44ec9143bdd3538288228c609f7db6d862c9d73f007f686eccb05543e ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001-msvc-buildfix.patch - ${CMAKE_CURRENT_LIST_DIR}/0002-fix-symbols.patch + 0001-msvc-buildfix.patch + 0002-fix-symbols.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) @@ -26,5 +26,4 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_copy_pdbs() -# Handle copyright -file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/libxmp-lite RENAME copyright) +file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/llvm/CONTROL b/ports/llvm/CONTROL index cdfd41eba..b48d97660 100644 --- a/ports/llvm/CONTROL +++ b/ports/llvm/CONTROL @@ -1,5 +1,5 @@ Source: llvm -Version: 8.0.0-2 +Version: 8.0.0-3 Homepage: https://llvm.org/ Description: The LLVM Compiler Infrastructure Build-Depends: atlmfc (windows) diff --git a/ports/llvm/fix-build-error.patch b/ports/llvm/fix-build-error.patch index a311fb959..f48df44ac 100644 --- a/ports/llvm/fix-build-error.patch +++ b/ports/llvm/fix-build-error.patch @@ -1,7 +1,5 @@ -diff --git a/tools/clang/tools/libclang/CMakeLists.txt b/tools/clang/tools/libclang/CMakeLists.txt -index e539c83..09c1ea3 100644 ---- a/tools/clang/tools/libclang/CMakeLists.txt -+++ b/tools/clang/tools/libclang/CMakeLists.txt +--- a/tools/libclang/CMakeLists.txt ++++ b/tools/libclang/CMakeLists.txt @@ -56,10 +56,7 @@ if (TARGET clangTidyPlugin) endif() endif () diff --git a/ports/llvm/install-clang-modules-to-share.patch b/ports/llvm/install-clang-modules-to-share.patch new file mode 100644 index 000000000..fa5eed84b --- /dev/null +++ b/ports/llvm/install-clang-modules-to-share.patch @@ -0,0 +1,18 @@ +diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt +index be6d1d72..4749f64b 100644 +--- a/cmake/modules/CMakeLists.txt ++++ b/cmake/modules/CMakeLists.txt +@@ -1,11 +1,11 @@ + # Generate a list of CMake library targets so that other CMake projects can + # link against them. LLVM calls its version of this file LLVMExports.cmake, but + # the usual CMake convention seems to be ${Project}Targets.cmake. +-set(CLANG_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/clang) ++set(CLANG_INSTALL_PACKAGE_DIR share/clang) + set(clang_cmake_builddir "${CMAKE_BINARY_DIR}/${CLANG_INSTALL_PACKAGE_DIR}") + + # Keep this in sync with llvm/cmake/CMakeLists.txt! +-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm) ++set(LLVM_INSTALL_PACKAGE_DIR share/llvm) + set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") + + get_property(CLANG_EXPORTS GLOBAL PROPERTY CLANG_EXPORTS) diff --git a/ports/llvm/install-cmake-modules-to-share.patch b/ports/llvm/install-cmake-modules-to-share.patch deleted file mode 100644 index 0e789377a..000000000 --- a/ports/llvm/install-cmake-modules-to-share.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -urN llvm-8.0.0.src-orig/cmake/modules/CMakeLists.txt llvm-8.0.0.src/cmake/modules/CMakeLists.txt ---- llvm-8.0.0.src-orig/cmake/modules/CMakeLists.txt 2018-07-27 13:57:51.000000000 +0300 -+++ llvm-8.0.0.src/cmake/modules/CMakeLists.txt 2019-03-26 14:56:34.645434190 +0200 -@@ -1,4 +1,4 @@ --set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm) -+set(LLVM_INSTALL_PACKAGE_DIR share/llvm) - set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") - - # First for users who use an installed LLVM, create the LLVMExports.cmake file. -diff -urN llvm-8.0.0.src-orig/tools/clang/cmake/modules/CMakeLists.txt llvm-8.0.0.src/tools/clang/cmake/modules/CMakeLists.txt ---- llvm-8.0.0.src-orig/tools/clang/cmake/modules/CMakeLists.txt 2018-01-24 21:26:50.000000000 +0200 -+++ llvm-8.0.0.src/tools/clang/cmake/modules/CMakeLists.txt 2019-03-26 14:57:07.173362736 +0200 -@@ -1,11 +1,11 @@ - # Generate a list of CMake library targets so that other CMake projects can - # link against them. LLVM calls its version of this file LLVMExports.cmake, but - # the usual CMake convention seems to be ${Project}Targets.cmake. --set(CLANG_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/clang) -+set(CLANG_INSTALL_PACKAGE_DIR share/clang) - set(clang_cmake_builddir "${CMAKE_BINARY_DIR}/${CLANG_INSTALL_PACKAGE_DIR}") - - # Keep this in sync with llvm/cmake/CMakeLists.txt! --set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm) -+set(LLVM_INSTALL_PACKAGE_DIR share/llvm) - set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") - - get_property(CLANG_EXPORTS GLOBAL PROPERTY CLANG_EXPORTS) diff --git a/ports/llvm/install-llvm-modules-to-share.patch b/ports/llvm/install-llvm-modules-to-share.patch new file mode 100644 index 000000000..802cf183e --- /dev/null +++ b/ports/llvm/install-llvm-modules-to-share.patch @@ -0,0 +1,10 @@ +diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt +index f5cc0006..1d9c52ac 100644 +--- a/cmake/modules/CMakeLists.txt ++++ b/cmake/modules/CMakeLists.txt +@@ -1,4 +1,4 @@ +-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm) ++set(LLVM_INSTALL_PACKAGE_DIR share/llvm) + set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") + + # First for users who use an installed LLVM, create the LLVMExports.cmake file. diff --git a/ports/llvm/portfile.cmake b/ports/llvm/portfile.cmake index 67985d18c..1315f06ac 100644 --- a/ports/llvm/portfile.cmake +++ b/ports/llvm/portfile.cmake @@ -1,123 +1,129 @@ -# LLVM documentation recommends always using static library linkage when -# building with Microsoft toolchain; it's also the default on other platforms -set(VCPKG_LIBRARY_LINKAGE static) - -if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - message(FATAL_ERROR "llvm cannot currently be built for UWP") -endif() - -include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/llvm-8.0.0.src) -vcpkg_download_distfile(ARCHIVE - URLS "http://releases.llvm.org/8.0.0/llvm-8.0.0.src.tar.xz" - FILENAME "llvm-8.0.0.src.tar.xz" - SHA512 1602343b451b964f5d8c2d6b0654d89384c80d45883498c5f0e2f4196168dd4a1ed2a4dadb752076020243df42ffe46cb31d82ffc145d8e5874163cbb9686a1f -) -vcpkg_extract_source_archive(${ARCHIVE}) - -vcpkg_download_distfile(CLANG_ARCHIVE - URLS "http://releases.llvm.org/8.0.0/cfe-8.0.0.src.tar.xz" - FILENAME "cfe-8.0.0.src.tar.xz" - SHA512 98e540222719716985e5d8439116e47469cb01201ea91d1da7e46cb6633da099688d9352c3b65e5c5f660cbbae353b3d79bb803fc66b3be663f2b04b1feed1c3 -) -vcpkg_extract_source_archive(${CLANG_ARCHIVE} ${SOURCE_PATH}/tools) - -if(NOT EXISTS ${SOURCE_PATH}/tools/clang) - file(RENAME ${SOURCE_PATH}/tools/cfe-8.0.0.src ${SOURCE_PATH}/tools/clang) -endif() - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - install-cmake-modules-to-share.patch - fix-build-error.patch - fix-linux-build.patch -) - -vcpkg_find_acquire_program(PYTHON3) -get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) -set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}") - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS - -DLLVM_TARGETS_TO_BUILD=X86 - -DLLVM_INCLUDE_TOOLS=ON - -DLLVM_INCLUDE_UTILS=OFF - -DLLVM_INCLUDE_EXAMPLES=OFF - -DLLVM_INCLUDE_TESTS=OFF - -DLLVM_ABI_BREAKING_CHECKS=FORCE_OFF - -DLLVM_TOOLS_INSTALL_DIR=tools/llvm - -DLLVM_PARALLEL_LINK_JOBS=1 -) - -vcpkg_install_cmake() - -if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - file(GLOB EXE ${CURRENT_PACKAGES_DIR}/bin/*) - file(COPY ${EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/llvm) - file(REMOVE ${EXE}) -endif() - -if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - file(GLOB DEBUG_EXE ${CURRENT_PACKAGES_DIR}/debug/bin/*) - file(COPY ${DEBUG_EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/llvm) - file(REMOVE ${DEBUG_EXE}) -endif() - -vcpkg_fixup_cmake_targets(CONFIG_PATH share/clang TARGET_PATH share/clang) -vcpkg_fixup_cmake_targets(CONFIG_PATH share/llvm) -vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/llvm) - -if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - file(READ ${CURRENT_PACKAGES_DIR}/share/clang/ClangTargets-release.cmake RELEASE_MODULE) - string(REPLACE "\${_IMPORT_PREFIX}/bin" "\${_IMPORT_PREFIX}/tools/llvm" RELEASE_MODULE "${RELEASE_MODULE}") - file(WRITE ${CURRENT_PACKAGES_DIR}/share/clang/ClangTargets-release.cmake "${RELEASE_MODULE}") - - file(READ ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMExports-release.cmake RELEASE_MODULE) - string(REPLACE "\${_IMPORT_PREFIX}/bin" "\${_IMPORT_PREFIX}/tools/llvm" RELEASE_MODULE "${RELEASE_MODULE}") - file(WRITE ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMExports-release.cmake "${RELEASE_MODULE}") -endif() - -if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - file(READ ${CURRENT_PACKAGES_DIR}/share/clang/ClangTargets-debug.cmake DEBUG_MODULE) - string(REPLACE "\${_IMPORT_PREFIX}/debug/bin" "\${_IMPORT_PREFIX}/tools/llvm" DEBUG_MODULE "${DEBUG_MODULE}") - file(WRITE ${CURRENT_PACKAGES_DIR}/share/clang/ClangTargets-debug.cmake "${DEBUG_MODULE}") - - file(READ ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMExports-debug.cmake DEBUG_MODULE) - string(REPLACE "\${_IMPORT_PREFIX}/debug/bin" "\${_IMPORT_PREFIX}/tools/llvm" DEBUG_MODULE "${DEBUG_MODULE}") - file(WRITE ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMExports-debug.cmake "${DEBUG_MODULE}") -endif() - -if (EXISTS ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMConfig.cmake) - file(READ ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMConfig.cmake LLVM_TOOLS_MODULE) - string(REPLACE "\${LLVM_INSTALL_PREFIX}/bin" "\${LLVM_INSTALL_PREFIX}/tools/llvm" LLVM_TOOLS_MODULE "${LLVM_TOOLS_MODULE}") - file(WRITE ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMConfig.cmake "${LLVM_TOOLS_MODULE}") -endif() - -file(REMOVE_RECURSE - ${CURRENT_PACKAGES_DIR}/debug/include - ${CURRENT_PACKAGES_DIR}/debug/tools - ${CURRENT_PACKAGES_DIR}/debug/share - ${CURRENT_PACKAGES_DIR}/debug/bin - ${CURRENT_PACKAGES_DIR}/debug/msbuild-bin - ${CURRENT_PACKAGES_DIR}/bin - ${CURRENT_PACKAGES_DIR}/msbuild-bin - ${CURRENT_PACKAGES_DIR}/tools/msbuild-bin - ${CURRENT_PACKAGES_DIR}/include/llvm/BinaryFormat/WasmRelocs -) - -# Remove two empty include subdirectorys if they are indeed empty -file(GLOB MCANALYSISFILES ${CURRENT_PACKAGES_DIR}/include/llvm/MC/MCAnalysis/*) -if(NOT MCANALYSISFILES) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/llvm/MC/MCAnalysis) -endif() - -file(GLOB MACHOFILES ${CURRENT_PACKAGES_DIR}/include/llvm/TextAPI/MachO/*) -if(NOT MACHOFILES) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/llvm/TextAPI/MachO) -endif() - -# Handle copyright -file(INSTALL ${SOURCE_PATH}/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/llvm RENAME copyright) +include(vcpkg_common_functions) + +# LLVM documentation recommends always using static library linkage when +# building with Microsoft toolchain; it's also the default on other platforms +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "llvm cannot currently be built for UWP") +endif() + +vcpkg_download_distfile(ARCHIVE + URLS "http://releases.llvm.org/8.0.0/llvm-8.0.0.src.tar.xz" + FILENAME "llvm-8.0.0.src.tar.xz" + SHA512 1602343b451b964f5d8c2d6b0654d89384c80d45883498c5f0e2f4196168dd4a1ed2a4dadb752076020243df42ffe46cb31d82ffc145d8e5874163cbb9686a1f +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + install-llvm-modules-to-share.patch + fix-linux-build.patch +) + +vcpkg_download_distfile(CLANG_ARCHIVE + URLS "http://releases.llvm.org/8.0.0/cfe-8.0.0.src.tar.xz" + FILENAME "cfe-8.0.0.src.tar.xz" + SHA512 98e540222719716985e5d8439116e47469cb01201ea91d1da7e46cb6633da099688d9352c3b65e5c5f660cbbae353b3d79bb803fc66b3be663f2b04b1feed1c3 +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH CLANG_SOURCE_PATH + ARCHIVE ${CLANG_ARCHIVE} + PATCHES + fix-build-error.patch + install-clang-modules-to-share.patch +) + +if(NOT EXISTS ${SOURCE_PATH}/tools/clang) + file(RENAME ${CLANG_SOURCE_PATH} ${SOURCE_PATH}/tools/clang) +endif() + +vcpkg_find_acquire_program(PYTHON3) +get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) +set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}") + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DLLVM_TARGETS_TO_BUILD=X86 + -DLLVM_INCLUDE_TOOLS=ON + -DLLVM_INCLUDE_UTILS=OFF + -DLLVM_INCLUDE_EXAMPLES=OFF + -DLLVM_INCLUDE_TESTS=OFF + -DLLVM_ABI_BREAKING_CHECKS=FORCE_OFF + -DLLVM_TOOLS_INSTALL_DIR=tools/llvm + -DLLVM_PARALLEL_LINK_JOBS=1 +) + +vcpkg_install_cmake() + +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(GLOB EXE ${CURRENT_PACKAGES_DIR}/bin/*) + file(COPY ${EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/llvm) + file(REMOVE ${EXE}) +endif() + +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(GLOB DEBUG_EXE ${CURRENT_PACKAGES_DIR}/debug/bin/*) + file(COPY ${DEBUG_EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/llvm) + file(REMOVE ${DEBUG_EXE}) +endif() + +vcpkg_fixup_cmake_targets(CONFIG_PATH share/clang TARGET_PATH share/clang) +vcpkg_fixup_cmake_targets(CONFIG_PATH share/llvm) +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/llvm) + +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(READ ${CURRENT_PACKAGES_DIR}/share/clang/ClangTargets-release.cmake RELEASE_MODULE) + string(REPLACE "\${_IMPORT_PREFIX}/bin" "\${_IMPORT_PREFIX}/tools/llvm" RELEASE_MODULE "${RELEASE_MODULE}") + file(WRITE ${CURRENT_PACKAGES_DIR}/share/clang/ClangTargets-release.cmake "${RELEASE_MODULE}") + + file(READ ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMExports-release.cmake RELEASE_MODULE) + string(REPLACE "\${_IMPORT_PREFIX}/bin" "\${_IMPORT_PREFIX}/tools/llvm" RELEASE_MODULE "${RELEASE_MODULE}") + file(WRITE ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMExports-release.cmake "${RELEASE_MODULE}") +endif() + +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(READ ${CURRENT_PACKAGES_DIR}/share/clang/ClangTargets-debug.cmake DEBUG_MODULE) + string(REPLACE "\${_IMPORT_PREFIX}/debug/bin" "\${_IMPORT_PREFIX}/tools/llvm" DEBUG_MODULE "${DEBUG_MODULE}") + file(WRITE ${CURRENT_PACKAGES_DIR}/share/clang/ClangTargets-debug.cmake "${DEBUG_MODULE}") + + file(READ ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMExports-debug.cmake DEBUG_MODULE) + string(REPLACE "\${_IMPORT_PREFIX}/debug/bin" "\${_IMPORT_PREFIX}/tools/llvm" DEBUG_MODULE "${DEBUG_MODULE}") + file(WRITE ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMExports-debug.cmake "${DEBUG_MODULE}") +endif() + +if (EXISTS ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMConfig.cmake) + file(READ ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMConfig.cmake LLVM_TOOLS_MODULE) + string(REPLACE "\${LLVM_INSTALL_PREFIX}/bin" "\${LLVM_INSTALL_PREFIX}/tools/llvm" LLVM_TOOLS_MODULE "${LLVM_TOOLS_MODULE}") + file(WRITE ${CURRENT_PACKAGES_DIR}/share/llvm/LLVMConfig.cmake "${LLVM_TOOLS_MODULE}") +endif() + +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/tools + ${CURRENT_PACKAGES_DIR}/debug/share + ${CURRENT_PACKAGES_DIR}/debug/bin + ${CURRENT_PACKAGES_DIR}/debug/msbuild-bin + ${CURRENT_PACKAGES_DIR}/bin + ${CURRENT_PACKAGES_DIR}/msbuild-bin + ${CURRENT_PACKAGES_DIR}/tools/msbuild-bin + ${CURRENT_PACKAGES_DIR}/include/llvm/BinaryFormat/WasmRelocs +) + +# Remove two empty include subdirectorys if they are indeed empty +file(GLOB MCANALYSISFILES ${CURRENT_PACKAGES_DIR}/include/llvm/MC/MCAnalysis/*) +if(NOT MCANALYSISFILES) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/llvm/MC/MCAnalysis) +endif() + +file(GLOB MACHOFILES ${CURRENT_PACKAGES_DIR}/include/llvm/TextAPI/MachO/*) +if(NOT MACHOFILES) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/llvm/TextAPI/MachO) +endif() + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/llvm RENAME copyright) diff --git a/ports/lmdb/CONTROL b/ports/lmdb/CONTROL index eac4b017f..eb174de87 100644 --- a/ports/lmdb/CONTROL +++ b/ports/lmdb/CONTROL @@ -1,4 +1,4 @@ Source: lmdb -Version: 0.9.23-2 +Version: 0.9.23-3 Homepage: https://github.com/LMDB/lmdb Description: LMDB is an extraordinarily fast, memory-efficient database diff --git a/ports/lmdb/lmdb_45a88275d2a410e683bae4ef44881e0f55fa3c4d.patch b/ports/lmdb/lmdb_45a88275d2a410e683bae4ef44881e0f55fa3c4d.patch deleted file mode 100644 index e6d1f108c..000000000 --- a/ports/lmdb/lmdb_45a88275d2a410e683bae4ef44881e0f55fa3c4d.patch +++ /dev/null @@ -1,3958 +0,0 @@ -diff --git a/libraries/liblmdb/Makefile b/libraries/liblmdb/Makefile -index 0940c49..72d0984 100644 ---- a/libraries/liblmdb/Makefile -+++ b/libraries/liblmdb/Makefile -@@ -8,7 +8,7 @@ - # platforms; you should not need to change any of these. - # Read their descriptions in mdb.c if you do: - # --# - MDB_USE_POSIX_SEM -+# - MDB_USE_POSIX_MUTEX, MDB_USE_POSIX_SEM, MDB_USE_SYSV_SEM - # - MDB_DSYNC - # - MDB_FDATASYNC - # - MDB_FDATASYNC_WORKS -@@ -24,8 +24,9 @@ W = -W -Wall -Wno-unused-parameter -Wbad-function-cast -Wuninitialized - THREADS = -pthread - OPT = -O2 -g - CFLAGS = $(THREADS) $(OPT) $(W) $(XCFLAGS) --LDLIBS = --SOLIBS = -+LDLIBS = # -lntdll # Windows needs ntdll -+SOLIBS = # -lntdll -+SOEXT = .so - prefix = /usr/local - exec_prefix = $(prefix) - bindir = $(exec_prefix)/bin -@@ -37,7 +38,7 @@ mandir = $(datarootdir)/man - ######################################################################## - - IHDRS = lmdb.h --ILIBS = liblmdb.a liblmdb.so -+ILIBS = liblmdb.a liblmdb$(SOEXT) - IPROGS = mdb_stat mdb_copy mdb_dump mdb_load - IDOCS = mdb_stat.1 mdb_copy.1 mdb_dump.1 mdb_load.1 - PROGS = $(IPROGS) mtest mtest2 mtest3 mtest4 mtest5 -@@ -63,7 +64,7 @@ test: all - liblmdb.a: mdb.o midl.o - $(AR) rs $@ mdb.o midl.o - --liblmdb.so: mdb.lo midl.lo -+liblmdb$(SOEXT): mdb.lo midl.lo - # $(CC) $(LDFLAGS) -pthread -shared -Wl,-Bsymbolic -o $@ mdb.o midl.o $(SOLIBS) - $(CC) $(LDFLAGS) -pthread -shared -o $@ mdb.lo midl.lo $(SOLIBS) - -diff --git a/libraries/liblmdb/lmdb.h b/libraries/liblmdb/lmdb.h -index c4d05d1..30d5862 100644 ---- a/libraries/liblmdb/lmdb.h -+++ b/libraries/liblmdb/lmdb.h -@@ -53,14 +53,15 @@ - * - * Fix: Check for stale readers periodically, using the - * #mdb_reader_check function or the \ref mdb_stat_1 "mdb_stat" tool. -- * Stale writers will be cleared automatically on some systems: -+ * Stale writers will be cleared automatically on most systems: - * - Windows - automatic -+ * - BSD, systems using SysV semaphores - automatic - * - Linux, systems using POSIX mutexes with Robust option - automatic -- * - not on BSD, systems using POSIX semaphores. - * Otherwise just make all programs using the database close it; - * the lockfile is always reset on first open of the environment. - * -- * - On BSD systems or others configured with MDB_USE_POSIX_SEM, -+ * - On BSD systems or others configured with MDB_USE_SYSV_SEM or -+ * MDB_USE_POSIX_SEM, - * startup can fail due to semaphores owned by another userid. - * - * Fix: Open and close the database as the user which owns the -@@ -77,6 +78,11 @@ - * access to locks and lock file. Exceptions: On read-only filesystems - * or with the #MDB_NOLOCK flag described under #mdb_env_open(). - * -+ * - An LMDB configuration will often reserve considerable \b unused -+ * memory address space and maybe file size for future growth. -+ * This does not use actual memory or disk space, but users may need -+ * to understand the difference so they won't be scared off. -+ * - * - By default, in versions before 0.9.10, unused portions of the data - * file might receive garbage data from memory freed by other code. - * (This does not happen when using the #MDB_WRITEMAP flag.) As of -@@ -160,6 +166,8 @@ - #define _LMDB_H_ - - #include -+#include -+#include - - #ifdef __cplusplus - extern "C" { -@@ -172,6 +180,32 @@ typedef int mdb_mode_t; - typedef mode_t mdb_mode_t; - #endif - -+#ifdef _WIN32 -+# define MDB_FMT_Z "I" -+#else -+# define MDB_FMT_Z "z" /**< printf/scanf format modifier for size_t */ -+#endif -+ -+#ifndef MDB_VL32 -+/** Unsigned type used for mapsize, entry counts and page/transaction IDs. -+ * -+ * It is normally size_t, hence the name. Defining MDB_VL32 makes it -+ * uint64_t, but do not try this unless you know what you are doing. -+ */ -+typedef size_t mdb_size_t; -+# define MDB_SIZE_MAX SIZE_MAX /**< max #mdb_size_t */ -+/** #mdb_size_t printf formats, \b t = one of [diouxX] without quotes */ -+# define MDB_PRIy(t) MDB_FMT_Z #t -+/** #mdb_size_t scanf formats, \b t = one of [dioux] without quotes */ -+# define MDB_SCNy(t) MDB_FMT_Z #t -+#else -+typedef uint64_t mdb_size_t; -+# define MDB_SIZE_MAX UINT64_MAX -+# define MDB_PRIy(t) PRI##t##64 -+# define MDB_SCNy(t) SCN##t##64 -+# define mdb_env_create mdb_env_create_vl32 /**< Prevent mixing with non-VL32 builds */ -+#endif -+ - /** An abstraction for a file handle. - * On POSIX systems file handles are small integers. On Windows - * they're opaque pointers. -@@ -194,7 +228,7 @@ typedef int mdb_filehandle_t; - /** Library minor version */ - #define MDB_VERSION_MINOR 9 - /** Library patch version */ --#define MDB_VERSION_PATCH 18 -+#define MDB_VERSION_PATCH 70 - - /** Combine args a,b,c into a single integer for easy version comparisons */ - #define MDB_VERINT(a,b,c) (((a) << 24) | ((b) << 16) | (c)) -@@ -204,7 +238,7 @@ typedef int mdb_filehandle_t; - MDB_VERINT(MDB_VERSION_MAJOR,MDB_VERSION_MINOR,MDB_VERSION_PATCH) - - /** The release date of this library version */ --#define MDB_VERSION_DATE "February 5, 2016" -+#define MDB_VERSION_DATE "December 19, 2015" - - /** A stringifier for the version info */ - #define MDB_VERSTR(a,b,c,d) "LMDB " #a "." #b "." #c ": (" d ")" -@@ -306,7 +340,8 @@ typedef void (MDB_rel_func)(MDB_val *item, void *oldptr, void *newptr, void *rel - #define MDB_REVERSEKEY 0x02 - /** use sorted duplicates */ - #define MDB_DUPSORT 0x04 -- /** numeric keys in native byte order: either unsigned int or size_t. -+ /** numeric keys in native byte order, either unsigned int or #mdb_size_t. -+ * (lmdb expects 32-bit int <= size_t <= 32/64-bit mdb_size_t.) - * The keys must all be of the same size. */ - #define MDB_INTEGERKEY 0x08 - /** with #MDB_DUPSORT, sorted dup items have fixed size */ -@@ -383,7 +418,9 @@ typedef enum MDB_cursor_op { - MDB_PREV_NODUP, /**< Position at last data item of previous key */ - MDB_SET, /**< Position at specified key */ - MDB_SET_KEY, /**< Position at specified key, return key + data */ -- MDB_SET_RANGE /**< Position at first key greater than or equal to specified key. */ -+ MDB_SET_RANGE, /**< Position at first key greater than or equal to specified key. */ -+ MDB_PREV_MULTIPLE /**< Position at previous page and return key and up to -+ a page of duplicate data items. Only for #MDB_DUPFIXED */ - } MDB_cursor_op; - - /** @defgroup errors Return Codes -@@ -440,8 +477,10 @@ typedef enum MDB_cursor_op { - #define MDB_BAD_VALSIZE (-30781) - /** The specified DBI was changed unexpectedly */ - #define MDB_BAD_DBI (-30780) -+ /** Unexpected problem - txn should abort */ -+#define MDB_PROBLEM (-30779) - /** The last defined error code */ --#define MDB_LAST_ERRCODE MDB_BAD_DBI -+#define MDB_LAST_ERRCODE MDB_PROBLEM - /** @} */ - - /** @brief Statistics for a database in the environment */ -@@ -449,18 +488,18 @@ typedef struct MDB_stat { - unsigned int ms_psize; /**< Size of a database page. - This is currently the same for all databases. */ - unsigned int ms_depth; /**< Depth (height) of the B-tree */ -- size_t ms_branch_pages; /**< Number of internal (non-leaf) pages */ -- size_t ms_leaf_pages; /**< Number of leaf pages */ -- size_t ms_overflow_pages; /**< Number of overflow pages */ -- size_t ms_entries; /**< Number of data items */ -+ mdb_size_t ms_branch_pages; /**< Number of internal (non-leaf) pages */ -+ mdb_size_t ms_leaf_pages; /**< Number of leaf pages */ -+ mdb_size_t ms_overflow_pages; /**< Number of overflow pages */ -+ mdb_size_t ms_entries; /**< Number of data items */ - } MDB_stat; - - /** @brief Information about the environment */ - typedef struct MDB_envinfo { - void *me_mapaddr; /**< Address of map, if fixed */ -- size_t me_mapsize; /**< Size of the data memory map */ -- size_t me_last_pgno; /**< ID of the last used page */ -- size_t me_last_txnid; /**< ID of the last committed transaction */ -+ mdb_size_t me_mapsize; /**< Size of the data memory map */ -+ mdb_size_t me_last_pgno; /**< ID of the last used page */ -+ mdb_size_t me_last_txnid; /**< ID of the last committed transaction */ - unsigned int me_maxreaders; /**< max reader slots in the environment */ - unsigned int me_numreaders; /**< max reader slots used in the environment */ - } MDB_envinfo; -@@ -672,6 +711,7 @@ int mdb_env_copyfd(MDB_env *env, mdb_filehandle_t fd); - *
  • #MDB_CP_COMPACT - Perform compaction while copying: omit free - * pages and sequentially renumber all pages in output. This option - * consumes more CPU and runs more slowly than the default. -+ * Currently it fails if the environment has suffered a page leak. - * - * @return A non-zero error value on failure and 0 on success. - */ -@@ -829,7 +869,7 @@ int mdb_env_get_fd(MDB_env *env, mdb_filehandle_t *fd); - * an active write transaction. - * - */ --int mdb_env_set_mapsize(MDB_env *env, size_t size); -+int mdb_env_set_mapsize(MDB_env *env, mdb_size_t size); - - /** @brief Set the maximum number of threads/reader slots for the environment. - * -@@ -942,6 +982,10 @@ int mdb_env_set_assert(MDB_env *env, MDB_assert_func *func); - *
      - *
    • #MDB_RDONLY - * This transaction will not perform any write operations. -+ *
    • #MDB_NOSYNC -+ * Don't flush system buffers to disk when committing this transaction. -+ *
    • #MDB_NOMETASYNC -+ * Flush system buffers but omit metadata flush when committing this transaction. - *
    - * @param[out] txn Address where the new #MDB_txn handle will be stored - * @return A non-zero error value on failure and 0 on success. Some possible -@@ -974,7 +1018,7 @@ MDB_env *mdb_txn_env(MDB_txn *txn); - * @param[in] txn A transaction handle returned by #mdb_txn_begin() - * @return A transaction ID, valid if input is an active transaction. - */ --size_t mdb_txn_id(MDB_txn *txn); -+mdb_size_t mdb_txn_id(MDB_txn *txn); - - /** @brief Commit all the operations of a transaction into the database. - * -@@ -1084,7 +1128,8 @@ int mdb_txn_renew(MDB_txn *txn); - * keys must be unique and may have only a single data item. - *
  • #MDB_INTEGERKEY - * Keys are binary integers in native byte order, either unsigned int -- * or size_t, and will be sorted as such. -+ * or #mdb_size_t, and will be sorted as such. -+ * (lmdb expects 32-bit int <= size_t <= 32/64-bit mdb_size_t.) - * The keys must all be of the same size. - *
  • #MDB_DUPFIXED - * This flag may only be used in combination with #MDB_DUPSORT. This option -@@ -1524,7 +1569,7 @@ int mdb_cursor_del(MDB_cursor *cursor, unsigned int flags); - *
  • EINVAL - cursor is not initialized, or an invalid parameter was specified. - * - */ --int mdb_cursor_count(MDB_cursor *cursor, size_t *countp); -+int mdb_cursor_count(MDB_cursor *cursor, mdb_size_t *countp); - - /** @brief Compare two data items according to a particular database. - * -diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c -index d2e81e4..1d9e9fa 100644 ---- a/libraries/liblmdb/mdb.c -+++ b/libraries/liblmdb/mdb.c -@@ -35,9 +35,42 @@ - #ifndef _GNU_SOURCE - #define _GNU_SOURCE 1 - #endif -+#if defined(MDB_VL32) || defined(__WIN64__) -+#define _FILE_OFFSET_BITS 64 -+#endif - #ifdef _WIN32 - #include - #include -+ -+/* We use native NT APIs to setup the memory map, so that we can -+ * let the DB file grow incrementally instead of always preallocating -+ * the full size. These APIs are defined in and -+ * but those headers are meant for driver-level development and -+ * conflict with the regular user-level headers, so we explicitly -+ * declare them here. Using these APIs also means we must link to -+ * ntdll.dll, which is not linked by default in user code. -+ */ -+NTSTATUS WINAPI -+NtCreateSection(OUT PHANDLE sh, IN ACCESS_MASK acc, -+ IN void * oa OPTIONAL, -+ IN PLARGE_INTEGER ms OPTIONAL, -+ IN ULONG pp, IN ULONG aa, IN HANDLE fh OPTIONAL); -+ -+typedef enum _SECTION_INHERIT { -+ ViewShare = 1, -+ ViewUnmap = 2 -+} SECTION_INHERIT; -+ -+NTSTATUS WINAPI -+NtMapViewOfSection(IN PHANDLE sh, IN HANDLE ph, -+ IN OUT PVOID *addr, IN ULONG_PTR zbits, -+ IN SIZE_T cs, IN OUT PLARGE_INTEGER off OPTIONAL, -+ IN OUT PSIZE_T vs, IN SECTION_INHERIT ih, -+ IN ULONG at, IN ULONG pp); -+ -+NTSTATUS WINAPI -+NtClose(HANDLE h); -+ - /** getpid() returns int; MinGW defines pid_t but MinGW64 typedefs it - * as int64 which is wrong. MSVC doesn't define it at all, so just - * don't use it. -@@ -56,6 +89,10 @@ - # define SSIZE_MAX INT_MAX - # endif - #endif -+/* Windows uses 32-bit off_t to define our own -+ 64 bit offset type -+*/ -+#define offset_t __int64 - #else - #include - #include -@@ -68,6 +105,7 @@ - #include - #endif - #include -+#define offset_t off_t - #endif - - #if defined(__mips) && defined(__linux) -@@ -116,7 +154,9 @@ typedef SSIZE_T ssize_t; - #endif - - #if defined(__APPLE__) || defined (BSD) --# define MDB_USE_POSIX_SEM 1 -+# if !(defined(MDB_USE_POSIX_MUTEX) || defined(MDB_USE_POSIX_SEM)) -+# define MDB_USE_SYSV_SEM 1 -+# endif - # define MDB_FDATASYNC fsync - #elif defined(ANDROID) - # define MDB_FDATASYNC fsync -@@ -127,12 +167,22 @@ typedef SSIZE_T ssize_t; - #ifdef MDB_USE_POSIX_SEM - # define MDB_USE_HASH 1 - #include -+#elif defined(MDB_USE_SYSV_SEM) -+#include -+#include -+#ifdef _SEM_SEMUN_UNDEFINED -+union semun { -+ int val; -+ struct semid_ds *buf; -+ unsigned short *array; -+}; -+#endif /* _SEM_SEMUN_UNDEFINED */ - #else - #define MDB_USE_POSIX_MUTEX 1 --#endif --#endif -+#endif /* MDB_USE_POSIX_SEM */ -+#endif /* !_WIN32 */ - --#if defined(_WIN32) + defined(MDB_USE_POSIX_SEM) \ -+#if defined(_WIN32) + defined(MDB_USE_POSIX_SEM) + defined(MDB_USE_SYSV_SEM) \ - + defined(MDB_USE_POSIX_MUTEX) != 1 - # error "Ambiguous shared-lock implementation" - #endif -@@ -183,7 +233,7 @@ typedef SSIZE_T ssize_t; - - #if (BYTE_ORDER == LITTLE_ENDIAN) == (BYTE_ORDER == BIG_ENDIAN) - # error "Unknown or unsupported endianness (BYTE_ORDER)" --#elif (-6 & 5) || CHAR_BIT != 8 || UINT_MAX < 0xffffffff || ULONG_MAX % 0xFFFF -+#elif (-6 & 5) || CHAR_BIT!=8 || UINT_MAX!=0xffffffff || MDB_SIZE_MAX%UINT_MAX - # error "Two's complement, reasonably sized integer types, please" - #endif - -@@ -234,6 +284,8 @@ typedef SSIZE_T ssize_t; - #define MDB_NO_ROOT (MDB_LAST_ERRCODE + 10) - #ifdef _WIN32 - #define MDB_OWNERDEAD ((int) WAIT_ABANDONED) -+#elif defined MDB_USE_SYSV_SEM -+#define MDB_OWNERDEAD (MDB_LAST_ERRCODE + 11) - #elif defined(MDB_USE_POSIX_MUTEX) && defined(EOWNERDEAD) - #define MDB_OWNERDEAD EOWNERDEAD /**< #LOCK_MUTEX0() result if dead owner */ - #endif -@@ -256,16 +308,20 @@ typedef SSIZE_T ssize_t; - # define MDB_USE_ROBUST 0 - # else - # define MDB_USE_ROBUST 1 -+# endif -+#endif /* !MDB_USE_ROBUST */ -+ -+#if defined(MDB_USE_POSIX_MUTEX) && (MDB_USE_ROBUST) - /* glibc < 2.12 only provided _np API */ --# if defined(__GLIBC__) && GLIBC_VER < 0x02000c -+# if (defined(__GLIBC__) && GLIBC_VER < 0x02000c) || \ -+ (defined(PTHREAD_MUTEX_ROBUST_NP) && !defined(PTHREAD_MUTEX_ROBUST)) - # define PTHREAD_MUTEX_ROBUST PTHREAD_MUTEX_ROBUST_NP - # define pthread_mutexattr_setrobust(attr, flag) pthread_mutexattr_setrobust_np(attr, flag) - # define pthread_mutex_consistent(mutex) pthread_mutex_consistent_np(mutex) - # endif --# endif --#endif /* MDB_USE_ROBUST */ -+#endif /* MDB_USE_POSIX_MUTEX && MDB_USE_ROBUST */ - --#if defined(MDB_OWNERDEAD) && MDB_USE_ROBUST -+#if defined(MDB_OWNERDEAD) && (MDB_USE_ROBUST) - #define MDB_ROBUST_SUPPORTED 1 - #endif - -@@ -288,8 +344,10 @@ typedef HANDLE mdb_mutex_t, mdb_mutexref_t; - #define pthread_mutex_lock(x) WaitForSingleObject(*x, INFINITE) - #define pthread_cond_signal(x) SetEvent(*x) - #define pthread_cond_wait(cond,mutex) do{SignalObjectAndWait(*mutex, *cond, INFINITE, FALSE); WaitForSingleObject(*mutex, INFINITE);}while(0) --#define THREAD_CREATE(thr,start,arg) thr=CreateThread(NULL,0,start,arg,0,NULL) --#define THREAD_FINISH(thr) WaitForSingleObject(thr, INFINITE) -+#define THREAD_CREATE(thr,start,arg) \ -+ (((thr) = CreateThread(NULL, 0, start, arg, 0, NULL)) ? 0 : ErrCode()) -+#define THREAD_FINISH(thr) \ -+ (WaitForSingleObject(thr, INFINITE) ? ErrCode() : 0) - #define LOCK_MUTEX0(mutex) WaitForSingleObject(mutex, INFINITE) - #define UNLOCK_MUTEX(mutex) ReleaseMutex(mutex) - #define mdb_mutex_consistent(mutex) 0 -@@ -305,12 +363,10 @@ typedef HANDLE mdb_mutex_t, mdb_mutexref_t; - #else - #define MDB_PROCESS_QUERY_LIMITED_INFORMATION 0x1000 - #endif --#define Z "I" - #else - #define THREAD_RET void * - #define THREAD_CREATE(thr,start,arg) pthread_create(&thr,NULL,start,arg) - #define THREAD_FINISH(thr) pthread_join(thr,NULL) --#define Z "z" /**< printf format modifier for size_t */ - - /** For MDB_LOCK_FORMAT: True if readers take a pid lock in the lockfile */ - #define MDB_PIDLOCK 1 -@@ -329,12 +385,46 @@ mdb_sem_wait(sem_t *sem) - return rc; - } - -+#elif defined MDB_USE_SYSV_SEM -+ -+typedef struct mdb_mutex { -+ int semid; -+ int semnum; -+ int *locked; -+} mdb_mutex_t[1], *mdb_mutexref_t; -+ -+#define LOCK_MUTEX0(mutex) mdb_sem_wait(mutex) -+#define UNLOCK_MUTEX(mutex) do { \ -+ struct sembuf sb = { 0, 1, SEM_UNDO }; \ -+ sb.sem_num = (mutex)->semnum; \ -+ *(mutex)->locked = 0; \ -+ semop((mutex)->semid, &sb, 1); \ -+} while(0) -+ -+static int -+mdb_sem_wait(mdb_mutexref_t sem) -+{ -+ int rc, *locked = sem->locked; -+ struct sembuf sb = { 0, -1, SEM_UNDO }; -+ sb.sem_num = sem->semnum; -+ do { -+ if (!semop(sem->semid, &sb, 1)) { -+ rc = *locked ? MDB_OWNERDEAD : MDB_SUCCESS; -+ *locked = 1; -+ break; -+ } -+ } while ((rc = errno) == EINTR); -+ return rc; -+} -+ -+#define mdb_mutex_consistent(mutex) 0 -+ - #else /* MDB_USE_POSIX_MUTEX: */ - /** Shared mutex/semaphore as it is stored (mdb_mutex_t), and as - * local variables keep it (mdb_mutexref_t). - * -- * When #mdb_mutexref_t is a pointer declaration and #mdb_mutex_t is -- * not, then it is array[size 1] so it can be assigned to a pointer. -+ * An mdb_mutex_t can be assigned to an mdb_mutexref_t. They can -+ * be the same, or an array[size 1] and a pointer. - * @{ - */ - typedef pthread_mutex_t mdb_mutex_t[1], *mdb_mutexref_t; -@@ -349,7 +439,7 @@ typedef pthread_mutex_t mdb_mutex_t[1], *mdb_mutexref_t; - /** Mark mutex-protected data as repaired, after death of previous owner. - */ - #define mdb_mutex_consistent(mutex) pthread_mutex_consistent(mutex) --#endif /* MDB_USE_POSIX_SEM */ -+#endif /* MDB_USE_POSIX_SEM || MDB_USE_SYSV_SEM */ - - /** Get the error code for the last failed system function. - */ -@@ -374,12 +464,24 @@ typedef pthread_mutex_t mdb_mutex_t[1], *mdb_mutexref_t; - #define GET_PAGESIZE(x) ((x) = sysconf(_SC_PAGE_SIZE)) - #endif - -+#define Z MDB_FMT_Z /**< printf/scanf format modifier for size_t */ -+#define Yu MDB_PRIy(u) /**< printf format for #mdb_size_t */ -+#define Yd MDB_PRIy(d) /**< printf format for "signed #mdb_size_t" */ -+ - #if defined(_WIN32) || defined(MDB_USE_POSIX_SEM) - #define MNAME_LEN 32 -+#elif defined(MDB_USE_SYSV_SEM) -+#define MNAME_LEN (sizeof(int)) - #else - #define MNAME_LEN (sizeof(pthread_mutex_t)) - #endif - -+#ifdef MDB_USE_SYSV_SEM -+#define SYSV_SEM_FLAG 1 /**< SysV sems in lockfile format */ -+#else -+#define SYSV_SEM_FLAG 0 -+#endif -+ - /** @} */ - - #ifdef MDB_ROBUST_SUPPORTED -@@ -521,7 +623,7 @@ static txnid_t mdb_debug_start; - /** The version number for a database's datafile format. */ - #define MDB_DATA_VERSION ((MDB_DEVEL) ? 999 : 1) - /** The version number for a database's lockfile format. */ --#define MDB_LOCK_VERSION 1 -+#define MDB_LOCK_VERSION ((MDB_DEVEL) ? 999 : 1) - - /** @brief The max size of a key we can write, or 0 for computed max. - * -@@ -712,6 +814,9 @@ typedef struct MDB_txbody { - uint32_t mtb_format; - #if defined(_WIN32) || defined(MDB_USE_POSIX_SEM) - char mtb_rmname[MNAME_LEN]; -+#elif defined(MDB_USE_SYSV_SEM) -+ int mtb_semid; -+ int mtb_rlocked; - #else - /** Mutex protecting access to this table. - * This is the reader table lock used with LOCK_MUTEX(). -@@ -740,12 +845,19 @@ typedef struct MDB_txninfo { - #define mti_rmname mt1.mtb.mtb_rmname - #define mti_txnid mt1.mtb.mtb_txnid - #define mti_numreaders mt1.mtb.mtb_numreaders -+#ifdef MDB_USE_SYSV_SEM -+#define mti_semid mt1.mtb.mtb_semid -+#define mti_rlocked mt1.mtb.mtb_rlocked -+#endif - char pad[(sizeof(MDB_txbody)+CACHELINE-1) & ~(CACHELINE-1)]; - } mt1; - union { - #if defined(_WIN32) || defined(MDB_USE_POSIX_SEM) - char mt2_wmname[MNAME_LEN]; - #define mti_wmname mt2.mt2_wmname -+#elif defined MDB_USE_SYSV_SEM -+ int mt2_wlocked; -+#define mti_wlocked mt2.mt2_wlocked - #else - mdb_mutex_t mt2_wmutex; - #define mti_wmutex mt2.mt2_wmutex -@@ -760,12 +872,27 @@ typedef struct MDB_txninfo { - ((uint32_t) \ - ((MDB_LOCK_VERSION) \ - /* Flags which describe functionality */ \ -+ + (SYSV_SEM_FLAG << 18) \ - + (((MDB_PIDLOCK) != 0) << 16))) - /** @} */ - --/** Common header for all page types. -- * Overflow records occupy a number of contiguous pages with no -- * headers on any page after the first. -+/** Common header for all page types. The page type depends on #mp_flags. -+ * -+ * #P_BRANCH and #P_LEAF pages have unsorted '#MDB_node's at the end, with -+ * sorted #mp_ptrs[] entries referring to them. Exception: #P_LEAF2 pages -+ * omit mp_ptrs and pack sorted #MDB_DUPFIXED values after the page header. -+ * -+ * #P_OVERFLOW records occupy one or more contiguous pages where only the -+ * first has a page header. They hold the real data of #F_BIGDATA nodes. -+ * -+ * #P_SUBP sub-pages are small leaf "pages" with duplicate data. -+ * A node with flag #F_DUPDATA but not #F_SUBDATA contains a sub-page. -+ * (Duplicate data can also go in sub-databases, which use normal pages.) -+ * -+ * #P_META pages contain #MDB_meta, the start point of an LMDB snapshot. -+ * -+ * Each non-metapage up to #MDB_meta.%mm_last_pg is reachable exactly once -+ * in the snapshot: Either used by a database or listed in a freeDB record. - */ - typedef struct MDB_page { - #define mp_pgno mp_p.p_pgno -@@ -774,7 +901,7 @@ typedef struct MDB_page { - pgno_t p_pgno; /**< page number */ - struct MDB_page *p_next; /**< for in-memory list of freed pages */ - } mp_p; -- uint16_t mp_pad; -+ uint16_t mp_pad; /**< key size if this is a LEAF2 page */ - /** @defgroup mdb_page Page Flags - * @ingroup internal - * Flags for the page headers. -@@ -841,7 +968,9 @@ typedef struct MDB_page { - /** The number of overflow pages needed to store the given size. */ - #define OVPAGES(size, psize) ((PAGEHDRSZ-1 + (size)) / (psize) + 1) - -- /** Link in #MDB_txn.%mt_loose_pgs list */ -+ /** Link in #MDB_txn.%mt_loose_pgs list. -+ * Kept outside the page header, which is needed when reusing the page. -+ */ - #define NEXT_LOOSE_PAGE(p) (*(MDB_page **)((p) + 2)) - - /** Header for a single key/data pair within a page. -@@ -924,7 +1053,7 @@ typedef struct MDB_node { - #ifdef MISALIGNED_OK - #define COPY_PGNO(dst,src) dst = src - #else --#if SIZE_MAX > 4294967295UL -+#if MDB_SIZE_MAX > 0xffffffffU - #define COPY_PGNO(dst,src) do { \ - unsigned short *s, *d; \ - s = (unsigned short *)&(src); \ -@@ -965,13 +1094,13 @@ typedef struct MDB_db { - pgno_t md_branch_pages; /**< number of internal pages */ - pgno_t md_leaf_pages; /**< number of leaf pages */ - pgno_t md_overflow_pages; /**< number of overflow pages */ -- size_t md_entries; /**< number of data items */ -+ mdb_size_t md_entries; /**< number of data items */ - pgno_t md_root; /**< the root page of this tree */ - } MDB_db; - -- /** mdb_dbi_open flags */ - #define MDB_VALID 0x8000 /**< DB handle is valid, for me_dbflags */ - #define PERSISTENT_FLAGS (0xffff & ~(MDB_VALID)) -+ /** #mdb_dbi_open() flags */ - #define VALID_FLAGS (MDB_REVERSEKEY|MDB_DUPSORT|MDB_INTEGERKEY|MDB_DUPFIXED|\ - MDB_INTEGERDUP|MDB_REVERSEDUP|MDB_CREATE) - -@@ -995,14 +1124,25 @@ typedef struct MDB_meta { - uint32_t mm_magic; - /** Version number of this file. Must be set to #MDB_DATA_VERSION. */ - uint32_t mm_version; -+#ifdef MDB_VL32 -+ union { /* always zero since we don't support fixed mapping in MDB_VL32 */ -+ MDB_ID mmun_ull; -+ void *mmun_address; -+ } mm_un; -+#define mm_address mm_un.mmun_address -+#else - void *mm_address; /**< address for fixed mapping */ -- size_t mm_mapsize; /**< size of mmap region */ -+#endif -+ pgno_t mm_mapsize; /**< size of mmap region */ - MDB_db mm_dbs[CORE_DBS]; /**< first is free space, 2nd is main db */ - /** The size of pages used in this DB */ - #define mm_psize mm_dbs[FREE_DBI].md_pad - /** Any persistent environment flags. @ref mdb_env */ - #define mm_flags mm_dbs[FREE_DBI].md_flags -- pgno_t mm_last_pg; /**< last used page in file */ -+ /** Last used page in the datafile. -+ * Actually the file may be shorter if the freeDB lists the final pages. -+ */ -+ pgno_t mm_last_pg; - volatile txnid_t mm_txnid; /**< txnid that committed this page */ - } MDB_meta; - -@@ -1039,6 +1179,9 @@ struct MDB_txn { - /** Nested txn under this txn, set together with flag #MDB_TXN_HAS_CHILD */ - MDB_txn *mt_child; - pgno_t mt_next_pgno; /**< next unallocated page */ -+#ifdef MDB_VL32 -+ pgno_t mt_last_pgno; /**< last written page */ -+#endif - /** The ID of this transaction. IDs are integers incrementing from 1. - * Only committed write transactions increment the ID. If a transaction - * aborts, the ID may be re-used by the next writer. -@@ -1052,7 +1195,7 @@ struct MDB_txn { - * in this transaction, linked through #NEXT_LOOSE_PAGE(page). - */ - MDB_page *mt_loose_pgs; -- /* #Number of loose pages (#mt_loose_pgs) */ -+ /** Number of loose pages (#mt_loose_pgs) */ - int mt_loose_count; - /** The sorted list of dirty pages we temporarily wrote to disk - * because the dirty list was full. page numbers in here are -@@ -1085,6 +1228,19 @@ struct MDB_txn { - MDB_cursor **mt_cursors; - /** Array of flags for each DB */ - unsigned char *mt_dbflags; -+#ifdef MDB_VL32 -+ /** List of read-only pages (actually chunks) */ -+ MDB_ID3L mt_rpages; -+ /** We map chunks of 16 pages. Even though Windows uses 4KB pages, all -+ * mappings must begin on 64KB boundaries. So we round off all pgnos to -+ * a chunk boundary. We do the same on Linux for symmetry, and also to -+ * reduce the frequency of mmap/munmap calls. -+ */ -+#define MDB_RPAGE_CHUNK 16 -+#define MDB_TRPAGE_SIZE 4096 /**< size of #mt_rpages array of chunks */ -+#define MDB_TRPAGE_MAX (MDB_TRPAGE_SIZE-1) /**< maximum chunk index */ -+ unsigned int mt_rpcheck; /**< threshold for reclaiming unref'd chunks */ -+#endif - /** Number of DB records in use, or 0 when the txn is finished. - * This number only ever increments until the txn finishes; we - * don't decrement it when individual DB handles are closed. -@@ -1096,7 +1252,9 @@ struct MDB_txn { - * @{ - */ - /** #mdb_txn_begin() flags */ --#define MDB_TXN_BEGIN_FLAGS MDB_RDONLY -+#define MDB_TXN_BEGIN_FLAGS (MDB_NOMETASYNC|MDB_NOSYNC|MDB_RDONLY) -+#define MDB_TXN_NOMETASYNC MDB_NOMETASYNC /**< don't sync meta for this txn on commit */ -+#define MDB_TXN_NOSYNC MDB_NOSYNC /**< don't sync this txn on commit */ - #define MDB_TXN_RDONLY MDB_RDONLY /**< read-only transaction */ - /* internal txn flags */ - #define MDB_TXN_WRITEMAP MDB_WRITEMAP /**< copy of #MDB_env flag in writers */ -@@ -1162,10 +1320,24 @@ struct MDB_cursor { - #define C_SUB 0x04 /**< Cursor is a sub-cursor */ - #define C_DEL 0x08 /**< last op was a cursor_del */ - #define C_UNTRACK 0x40 /**< Un-track cursor when closing */ -+#define C_WRITEMAP MDB_TXN_WRITEMAP /**< Copy of txn flag */ -+/** Read-only cursor into the txn's original snapshot in the map. -+ * Set for read-only txns, and in #mdb_page_alloc() for #FREE_DBI when -+ * #MDB_DEVEL & 2. Only implements code which is necessary for this. -+ */ -+#define C_ORIG_RDONLY MDB_TXN_RDONLY - /** @} */ - unsigned int mc_flags; /**< @ref mdb_cursor */ - MDB_page *mc_pg[CURSOR_STACK]; /**< stack of pushed pages */ - indx_t mc_ki[CURSOR_STACK]; /**< stack of page indices */ -+#ifdef MDB_VL32 -+ MDB_page *mc_ovpg; /**< a referenced overflow page */ -+# define MC_OVPG(mc) ((mc)->mc_ovpg) -+# define MC_SET_OVPG(mc, pg) ((mc)->mc_ovpg = (pg)) -+#else -+# define MC_OVPG(mc) ((MDB_page *)0) -+# define MC_SET_OVPG(mc, pg) ((void)0) -+#endif - }; - - /** Context for sorted-dup records. -@@ -1195,6 +1367,9 @@ struct MDB_env { - HANDLE me_fd; /**< The main data file */ - HANDLE me_lfd; /**< The lock file */ - HANDLE me_mfd; /**< just for writing the meta pages */ -+#if defined(MDB_VL32) && defined(_WIN32) -+ HANDLE me_fmh; /**< File Mapping handle */ -+#endif - /** Failed to update the meta page. Probably an I/O error. */ - #define MDB_FATAL_ERROR 0x80000000U - /** Some fields are initialized. */ -@@ -1219,8 +1394,8 @@ struct MDB_env { - void *me_pbuf; /**< scratch area for DUPSORT put() */ - MDB_txn *me_txn; /**< current write transaction */ - MDB_txn *me_txn0; /**< prealloc'd write transaction */ -- size_t me_mapsize; /**< size of the data memory map */ -- off_t me_size; /**< current file size */ -+ mdb_size_t me_mapsize; /**< size of the data memory map */ -+ offset_t me_size; /**< current file size */ - pgno_t me_maxpg; /**< me_mapsize / me_psize */ - MDB_dbx *me_dbxs; /**< array of static DB info */ - uint16_t *me_dbflags; /**< array of flags from MDB_db.md_flags */ -@@ -1253,6 +1428,13 @@ struct MDB_env { - mdb_mutex_t me_rmutex; - mdb_mutex_t me_wmutex; - #endif -+#ifdef MDB_VL32 -+ MDB_ID3L me_rpages; /**< like #mt_rpages, but global to env */ -+ pthread_mutex_t me_rpmutex; /**< control access to #me_rpages */ -+#define MDB_ERPAGE_SIZE 16384 -+#define MDB_ERPAGE_MAX (MDB_ERPAGE_SIZE-1) -+ unsigned int me_rpcheck; -+#endif - void *me_userctx; /**< User-settable context */ - MDB_assert_func *me_assert_func; /**< Callback for assertion failures */ - }; -@@ -1298,7 +1480,7 @@ enum { - #define MDB_END_SLOT MDB_NOTLS /**< release any reader slot if #MDB_NOTLS */ - static void mdb_txn_end(MDB_txn *txn, unsigned mode); - --static int mdb_page_get(MDB_txn *txn, pgno_t pgno, MDB_page **mp, int *lvl); -+static int mdb_page_get(MDB_cursor *mc, pgno_t pgno, MDB_page **mp, int *lvl); - static int mdb_page_search_root(MDB_cursor *mc, - MDB_val *key, int modify); - #define MDB_PS_MODIFY 1 -@@ -1327,7 +1509,7 @@ static int mdb_node_add(MDB_cursor *mc, indx_t indx, - static void mdb_node_del(MDB_cursor *mc, int ksize); - static void mdb_node_shrink(MDB_page *mp, indx_t indx); - static int mdb_node_move(MDB_cursor *csrc, MDB_cursor *cdst, int fromleft); --static int mdb_node_read(MDB_txn *txn, MDB_node *leaf, MDB_val *data); -+static int mdb_node_read(MDB_cursor *mc, MDB_node *leaf, MDB_val *data); - static size_t mdb_leaf_size(MDB_env *env, MDB_val *key, MDB_val *data); - static size_t mdb_branch_size(MDB_env *env, MDB_val *key); - -@@ -1360,13 +1542,18 @@ static int mdb_reader_check0(MDB_env *env, int rlocked, int *dead); - static MDB_cmp_func mdb_cmp_memn, mdb_cmp_memnr, mdb_cmp_int, mdb_cmp_cint, mdb_cmp_long; - /** @endcond */ - --/** Compare two items pointing at size_t's of unknown alignment. */ -+/** Compare two items pointing at '#mdb_size_t's of unknown alignment. */ - #ifdef MISALIGNED_OK - # define mdb_cmp_clong mdb_cmp_long - #else - # define mdb_cmp_clong mdb_cmp_cint - #endif - -+/** True if we need #mdb_cmp_clong() instead of \b cmp for #MDB_INTEGERDUP */ -+#define NEED_CMP_CLONG(cmp, ksize) \ -+ (UINT_MAX < MDB_SIZE_MAX && \ -+ (cmp) == mdb_cmp_int && (ksize) == sizeof(mdb_size_t)) -+ - #ifdef _WIN32 - static SECURITY_DESCRIPTOR mdb_null_sd; - static SECURITY_ATTRIBUTES mdb_all_sa; -@@ -1407,6 +1594,7 @@ static char *const mdb_errstr[] = { - "MDB_BAD_TXN: Transaction must abort, has a child, or is invalid", - "MDB_BAD_VALSIZE: Unsupported size of key/DB name/data, or wrong DUPFIXED size", - "MDB_BAD_DBI: The specified DBI handle was closed/changed unexpectedly", -+ "MDB_PROBLEM: Unexpected problem - txn should abort", - }; - - char * -@@ -1417,8 +1605,9 @@ mdb_strerror(int err) - * This works as long as no function between the call to mdb_strerror - * and the actual use of the message uses more than 4K of stack. - */ -- char pad[4096]; -- char buf[1024], *ptr = buf; -+#define MSGSIZE 1024 -+#define PADSIZE 4096 -+ char buf[MSGSIZE+PADSIZE], *ptr = buf; - #endif - int i; - if (!err) -@@ -1450,7 +1639,7 @@ mdb_strerror(int err) - buf[0] = 0; - FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, -- NULL, err, 0, ptr, sizeof(buf), (va_list *)pad); -+ NULL, err, 0, ptr, MSGSIZE, (va_list *)buf+MSGSIZE); - return ptr; - #else - return strerror(err); -@@ -1550,20 +1739,20 @@ mdb_page_list(MDB_page *mp) - case P_LEAF|P_LEAF2: type = "LEAF2 page"; break; - case P_LEAF|P_LEAF2|P_SUBP: type = "LEAF2 sub-page"; break; - case P_OVERFLOW: -- fprintf(stderr, "Overflow page %"Z"u pages %u%s\n", -+ fprintf(stderr, "Overflow page %"Yu" pages %u%s\n", - pgno, mp->mp_pages, state); - return; - case P_META: -- fprintf(stderr, "Meta-page %"Z"u txnid %"Z"u\n", -+ fprintf(stderr, "Meta-page %"Yu" txnid %"Yu"\n", - pgno, ((MDB_meta *)METADATA(mp))->mm_txnid); - return; - default: -- fprintf(stderr, "Bad page %"Z"u flags 0x%u\n", pgno, mp->mp_flags); -+ fprintf(stderr, "Bad page %"Yu" flags 0x%X\n", pgno, mp->mp_flags); - return; - } - - nkeys = NUMKEYS(mp); -- fprintf(stderr, "%s %"Z"u numkeys %d%s\n", type, pgno, nkeys, state); -+ fprintf(stderr, "%s %"Yu" numkeys %d%s\n", type, pgno, nkeys, state); - - for (i=0; imn_data; - nsize = NODESIZE + key.mv_size; - if (IS_BRANCH(mp)) { -- fprintf(stderr, "key %d: page %"Z"u, %s\n", i, NODEPGNO(node), -+ fprintf(stderr, "key %d: page %"Yu", %s\n", i, NODEPGNO(node), - DKEY(&key)); - total += nsize; - } else { -@@ -1674,7 +1863,7 @@ static void mdb_audit(MDB_txn *txn) - } - } - if (freecount + count + NUM_METAS != txn->mt_next_pgno) { -- fprintf(stderr, "audit: %lu freecount: %lu count: %lu total: %lu next_pgno: %lu\n", -+ fprintf(stderr, "audit: %"Yu" freecount: %"Yu" count: %"Yu" total: %"Yu" next_pgno: %"Yu"\n", - txn->mt_txnid, freecount, count+NUM_METAS, - freecount+count+NUM_METAS, txn->mt_next_pgno); - } -@@ -1691,10 +1880,8 @@ int - mdb_dcmp(MDB_txn *txn, MDB_dbi dbi, const MDB_val *a, const MDB_val *b) - { - MDB_cmp_func *dcmp = txn->mt_dbxs[dbi].md_dcmp; --#if UINT_MAX < SIZE_MAX -- if (dcmp == mdb_cmp_int && a->mv_size == sizeof(size_t)) -+ if (NEED_CMP_CLONG(dcmp, a->mv_size)) - dcmp = mdb_cmp_clong; --#endif - return dcmp(a, b); - } - -@@ -1774,6 +1961,51 @@ mdb_dlist_free(MDB_txn *txn) - dl[0].mid = 0; - } - -+#ifdef MDB_VL32 -+static void -+mdb_page_unref(MDB_txn *txn, MDB_page *mp) -+{ -+ pgno_t pgno; -+ MDB_ID3L tl = txn->mt_rpages; -+ unsigned x, rem; -+ if (mp->mp_flags & (P_SUBP|P_DIRTY)) -+ return; -+ rem = mp->mp_pgno & (MDB_RPAGE_CHUNK-1); -+ pgno = mp->mp_pgno ^ rem; -+ x = mdb_mid3l_search(tl, pgno); -+ if (x != tl[0].mid && tl[x+1].mid == mp->mp_pgno) -+ x++; -+ if (tl[x].mref) -+ tl[x].mref--; -+} -+#define MDB_PAGE_UNREF(txn, mp) mdb_page_unref(txn, mp) -+ -+static void -+mdb_cursor_unref(MDB_cursor *mc) -+{ -+ int i; -+ if (!mc->mc_snum || !mc->mc_pg[0] || IS_SUBP(mc->mc_pg[0])) -+ return; -+ for (i=0; imc_snum; i++) -+ mdb_page_unref(mc->mc_txn, mc->mc_pg[i]); -+ if (mc->mc_ovpg) { -+ mdb_page_unref(mc->mc_txn, mc->mc_ovpg); -+ mc->mc_ovpg = 0; -+ } -+ mc->mc_snum = mc->mc_top = 0; -+ mc->mc_pg[0] = NULL; -+ mc->mc_flags &= ~C_INITIALIZED; -+} -+#define MDB_CURSOR_UNREF(mc, force) \ -+ (((force) || ((mc)->mc_flags & C_INITIALIZED)) \ -+ ? mdb_cursor_unref(mc) \ -+ : (void)0) -+ -+#else -+#define MDB_PAGE_UNREF(txn, mp) -+#define MDB_CURSOR_UNREF(mc, force) ((void)0) -+#endif /* MDB_VL32 */ -+ - /** Loosen or free a single page. - * Saves single pages to a list for future reuse - * in this same txn. It has been pulled from the freeDB -@@ -1803,7 +2035,7 @@ mdb_page_loose(MDB_cursor *mc, MDB_page *mp) - if (mp != dl[x].mptr) { /* bad cursor? */ - mc->mc_flags &= ~(C_INITIALIZED|C_EOF); - txn->mt_flags |= MDB_TXN_ERROR; -- return MDB_CORRUPTED; -+ return MDB_PROBLEM; - } - /* ok, it's ours */ - loose = 1; -@@ -1815,8 +2047,7 @@ mdb_page_loose(MDB_cursor *mc, MDB_page *mp) - } - } - if (loose) { -- DPRINTF(("loosen db %d page %"Z"u", DDBI(mc), -- mp->mp_pgno)); -+ DPRINTF(("loosen db %d page %"Yu, DDBI(mc), mp->mp_pgno)); - NEXT_LOOSE_PAGE(mp) = txn->mt_loose_pgs; - txn->mt_loose_pgs = mp; - txn->mt_loose_count++; -@@ -1842,7 +2073,7 @@ mdb_pages_xkeep(MDB_cursor *mc, unsigned pflags, int all) - { - enum { Mask = P_SUBP|P_DIRTY|P_LOOSE|P_KEEP }; - MDB_txn *txn = mc->mc_txn; -- MDB_cursor *m3; -+ MDB_cursor *m3, *m0 = mc; - MDB_xcursor *mx; - MDB_page *dp, *mp; - MDB_node *leaf; -@@ -1885,7 +2116,7 @@ mdb_pages_xkeep(MDB_cursor *mc, unsigned pflags, int all) - pgno_t pgno = txn->mt_dbs[i].md_root; - if (pgno == P_INVALID) - continue; -- if ((rc = mdb_page_get(txn, pgno, &dp, &level)) != MDB_SUCCESS) -+ if ((rc = mdb_page_get(m0, pgno, &dp, &level)) != MDB_SUCCESS) - break; - if ((dp->mp_flags & Mask) == pflags && level <= 1) - dp->mp_flags ^= P_KEEP; -@@ -2074,6 +2305,8 @@ mdb_page_dirty(MDB_txn *txn, MDB_page *mp) - * Do not modify the freedB, just merge freeDB records into me_pghead[] - * and move me_pglast to say which records were consumed. Only this - * function can create me_pghead and move me_pglast/mt_next_pgno. -+ * When #MDB_DEVEL & 2, it is not affected by #mdb_freelist_save(): it -+ * then uses the transaction's original snapshot of the freeDB. - * @param[in] mc cursor A cursor handle identifying the transaction and - * database for which we are allocating. - * @param[in] num the number of pages to allocate. -@@ -2111,8 +2344,7 @@ mdb_page_alloc(MDB_cursor *mc, int num, MDB_page **mp) - np = txn->mt_loose_pgs; - txn->mt_loose_pgs = NEXT_LOOSE_PAGE(np); - txn->mt_loose_count--; -- DPRINTF(("db %d use loose page %"Z"u", DDBI(mc), -- np->mp_pgno)); -+ DPRINTF(("db %d use loose page %"Yu, DDBI(mc), np->mp_pgno)); - *mp = np; - return MDB_SUCCESS; - } -@@ -2149,6 +2381,14 @@ mdb_page_alloc(MDB_cursor *mc, int num, MDB_page **mp) - last = env->me_pglast; - oldest = env->me_pgoldest; - mdb_cursor_init(&m2, txn, FREE_DBI, NULL); -+#if (MDB_DEVEL) & 2 /* "& 2" so MDB_DEVEL=1 won't hide bugs breaking freeDB */ -+ /* Use original snapshot. TODO: Should need less care in code -+ * which modifies the database. Maybe we can delete some code? -+ */ -+ m2.mc_flags |= C_ORIG_RDONLY; -+ m2.mc_db = &env->me_metas[(txn->mt_txnid-1) & 1]->mm_dbs[FREE_DBI]; -+ m2.mc_dbflag = (unsigned char *)""; /* probably unnecessary */ -+#endif - if (last) { - op = MDB_SET_RANGE; - key.mv_data = &last; /* will look up last+1 */ -@@ -2189,7 +2429,7 @@ mdb_page_alloc(MDB_cursor *mc, int num, MDB_page **mp) - } - np = m2.mc_pg[m2.mc_top]; - leaf = NODEPTR(np, m2.mc_ki[m2.mc_top]); -- if ((rc = mdb_node_read(txn, leaf, &data)) != MDB_SUCCESS) -+ if ((rc = mdb_node_read(&m2, leaf, &data)) != MDB_SUCCESS) - return rc; - - idl = (MDB_ID *) data.mv_data; -@@ -2206,10 +2446,10 @@ mdb_page_alloc(MDB_cursor *mc, int num, MDB_page **mp) - } - env->me_pglast = last; - #if (MDB_DEBUG) > 1 -- DPRINTF(("IDL read txn %"Z"u root %"Z"u num %u", -+ DPRINTF(("IDL read txn %"Yu" root %"Yu" num %u", - last, txn->mt_dbs[FREE_DBI].md_root, i)); - for (j = i; j; j--) -- DPRINTF(("IDL %"Z"u", idl[j])); -+ DPRINTF(("IDL %"Yu, idl[j])); - #endif - /* Merge in descending sorted order */ - mdb_midl_xmerge(mop, idl); -@@ -2224,6 +2464,20 @@ mdb_page_alloc(MDB_cursor *mc, int num, MDB_page **mp) - rc = MDB_MAP_FULL; - goto fail; - } -+#if defined(_WIN32) && !defined(MDB_VL32) -+ if (!(env->me_flags & MDB_RDONLY)) { -+ void *p; -+ p = (MDB_page *)(env->me_map + env->me_psize * pgno); -+ p = VirtualAlloc(p, env->me_psize * num, MEM_COMMIT, -+ (env->me_flags & MDB_WRITEMAP) ? PAGE_READWRITE: -+ PAGE_READONLY); -+ if (!p) { -+ DPUTS("VirtualAlloc failed"); -+ rc = ErrCode(); -+ goto fail; -+ } -+ } -+#endif - - search_done: - if (env->me_flags & MDB_WRITEMAP) { -@@ -2365,7 +2619,7 @@ mdb_page_touch(MDB_cursor *mc) - (rc = mdb_page_alloc(mc, 1, &np))) - goto fail; - pgno = np->mp_pgno; -- DPRINTF(("touched db %d page %"Z"u -> %"Z"u", DDBI(mc), -+ DPRINTF(("touched db %d page %"Yu" -> %"Yu, DDBI(mc), - mp->mp_pgno, pgno)); - mdb_cassert(mc, mp->mp_pgno != pgno); - mdb_midl_xappend(txn->mt_free_pgs, mp->mp_pgno); -@@ -2389,7 +2643,7 @@ mdb_page_touch(MDB_cursor *mc) - if (mp != dl[x].mptr) { /* bad cursor? */ - mc->mc_flags &= ~(C_INITIALIZED|C_EOF); - txn->mt_flags |= MDB_TXN_ERROR; -- return MDB_CORRUPTED; -+ return MDB_PROBLEM; - } - return 0; - } -@@ -2439,6 +2693,7 @@ done: - } - } - } -+ MDB_PAGE_UNREF(mc->mc_txn, mp); - return 0; - - fail: -@@ -2447,7 +2702,7 @@ fail: - } - - int --mdb_env_sync(MDB_env *env, int force) -+mdb_env_sync0(MDB_env *env, int force, pgno_t numpgs) - { - int rc = 0; - if (env->me_flags & MDB_RDONLY) -@@ -2456,7 +2711,7 @@ mdb_env_sync(MDB_env *env, int force) - if (env->me_flags & MDB_WRITEMAP) { - int flags = ((env->me_flags & MDB_MAPASYNC) && !force) - ? MS_ASYNC : MS_SYNC; -- if (MDB_MSYNC(env->me_map, env->me_mapsize, flags)) -+ if (MDB_MSYNC(env->me_map, env->me_psize * numpgs, flags)) - rc = ErrCode(); - #ifdef _WIN32 - else if (flags == MS_SYNC && MDB_FDATASYNC(env->me_fd)) -@@ -2476,6 +2731,13 @@ mdb_env_sync(MDB_env *env, int force) - return rc; - } - -+int -+mdb_env_sync(MDB_env *env, int force) -+{ -+ MDB_meta *m = mdb_env_pick_meta(env); -+ return mdb_env_sync0(env, force, m->mm_last_pg+1); -+} -+ - /** Back up parent txn's cursors, then grab the originals for tracking */ - static int - mdb_cursor_shadow(MDB_txn *src, MDB_txn *dst) -@@ -2720,6 +2982,9 @@ mdb_txn_renew0(MDB_txn *txn) - - /* Moved to here to avoid a data race in read TXNs */ - txn->mt_next_pgno = meta->mm_last_pg+1; -+#ifdef MDB_VL32 -+ txn->mt_last_pgno = txn->mt_next_pgno - 1; -+#endif - - txn->mt_flags = flags; - -@@ -2755,7 +3020,7 @@ mdb_txn_renew(MDB_txn *txn) - - rc = mdb_txn_renew0(txn); - if (rc == MDB_SUCCESS) { -- DPRINTF(("renew txn %"Z"u%c %p on mdbenv %p, root page %"Z"u", -+ DPRINTF(("renew txn %"Yu"%c %p on mdbenv %p, root page %"Yu, - txn->mt_txnid, (txn->mt_flags & MDB_TXN_RDONLY) ? 'r' : 'w', - (void *)txn, (void *)txn->mt_env, txn->mt_dbs[MAIN_DBI].md_root)); - } -@@ -2798,6 +3063,17 @@ mdb_txn_begin(MDB_env *env, MDB_txn *parent, unsigned int flags, MDB_txn **ret) - DPRINTF(("calloc: %s", strerror(errno))); - return ENOMEM; - } -+#ifdef MDB_VL32 -+ if (!parent) { -+ txn->mt_rpages = malloc(MDB_TRPAGE_SIZE * sizeof(MDB_ID3)); -+ if (!txn->mt_rpages) { -+ free(txn); -+ return ENOMEM; -+ } -+ txn->mt_rpages[0].mid = 0; -+ txn->mt_rpcheck = MDB_TRPAGE_SIZE/2; -+ } -+#endif - txn->mt_dbxs = env->me_dbxs; /* static */ - txn->mt_dbs = (MDB_db *) ((char *)txn + tsize); - txn->mt_dbflags = (unsigned char *)txn + size - env->me_maxdbs; -@@ -2825,6 +3101,9 @@ mdb_txn_begin(MDB_env *env, MDB_txn *parent, unsigned int flags, MDB_txn **ret) - parent->mt_child = txn; - txn->mt_parent = parent; - txn->mt_numdbs = parent->mt_numdbs; -+#ifdef MDB_VL32 -+ txn->mt_rpages = parent->mt_rpages; -+#endif - memcpy(txn->mt_dbs, parent->mt_dbs, txn->mt_numdbs * sizeof(MDB_db)); - /* Copy parent's mt_dbflags, but clear DB_NEW */ - for (i=0; imt_numdbs; i++) -@@ -2850,12 +3129,16 @@ renew: - rc = mdb_txn_renew0(txn); - } - if (rc) { -- if (txn != env->me_txn0) -+ if (txn != env->me_txn0) { -+#ifdef MDB_VL32 -+ free(txn->mt_rpages); -+#endif - free(txn); -+ } - } else { - txn->mt_flags |= flags; /* could not change txn=me_txn0 earlier */ - *ret = txn; -- DPRINTF(("begin txn %"Z"u%c %p on mdbenv %p, root page %"Z"u", -+ DPRINTF(("begin txn %"Yu"%c %p on mdbenv %p, root page %"Yu, - txn->mt_txnid, (flags & MDB_RDONLY) ? 'r' : 'w', - (void *) txn, (void *) env, txn->mt_dbs[MAIN_DBI].md_root)); - } -@@ -2870,7 +3153,7 @@ mdb_txn_env(MDB_txn *txn) - return txn->mt_env; - } - --size_t -+mdb_size_t - mdb_txn_id(MDB_txn *txn) - { - if(!txn) return 0; -@@ -2922,7 +3205,7 @@ mdb_txn_end(MDB_txn *txn, unsigned mode) - /* Export or close DBI handles opened in this txn */ - mdb_dbis_update(txn, mode & MDB_END_UPDATE); - -- DPRINTF(("%s txn %"Z"u%c %p on mdbenv %p, root page %"Z"u", -+ DPRINTF(("%s txn %"Yu"%c %p on mdbenv %p, root page %"Yu, - names[mode & MDB_END_OPMASK], - txn->mt_txnid, (txn->mt_flags & MDB_TXN_RDONLY) ? 'r' : 'w', - (void *) txn, (void *)env, txn->mt_dbs[MAIN_DBI].md_root)); -@@ -2976,7 +3259,31 @@ mdb_txn_end(MDB_txn *txn, unsigned mode) - - mdb_midl_free(pghead); - } -- -+#ifdef MDB_VL32 -+ if (!txn->mt_parent) { -+ MDB_ID3L el = env->me_rpages, tl = txn->mt_rpages; -+ unsigned i, x, n = tl[0].mid; -+ pthread_mutex_lock(&env->me_rpmutex); -+ for (i = 1; i <= n; i++) { -+ if (tl[i].mid & (MDB_RPAGE_CHUNK-1)) { -+ /* tmp overflow pages that we didn't share in env */ -+ munmap(tl[i].mptr, tl[i].mcnt * env->me_psize); -+ } else { -+ x = mdb_mid3l_search(el, tl[i].mid); -+ if (tl[i].mptr == el[x].mptr) { -+ el[x].mref--; -+ } else { -+ /* another tmp overflow page */ -+ munmap(tl[i].mptr, tl[i].mcnt * env->me_psize); -+ } -+ } -+ } -+ pthread_mutex_unlock(&env->me_rpmutex); -+ tl[0].mid = 0; -+ if (mode & MDB_END_FREE) -+ free(tl); -+ } -+#endif - if (mode & MDB_END_FREE) - free(txn); - } -@@ -3008,6 +3315,9 @@ mdb_txn_abort(MDB_txn *txn) - - /** Save the freelist as of this transaction to the freeDB. - * This changes the freelist. Keep trying until it stabilizes. -+ * -+ * When (MDB_DEVEL) & 2, the changes do not affect #mdb_page_alloc(), -+ * it then uses the transaction's original snapshot of the freeDB. - */ - static int - mdb_freelist_save(MDB_txn *txn) -@@ -3096,10 +3406,10 @@ mdb_freelist_save(MDB_txn *txn) - #if (MDB_DEBUG) > 1 - { - unsigned int i = free_pgs[0]; -- DPRINTF(("IDL write txn %"Z"u root %"Z"u num %u", -+ DPRINTF(("IDL write txn %"Yu" root %"Yu" num %u", - txn->mt_txnid, txn->mt_dbs[FREE_DBI].md_root, i)); - for (; i; i--) -- DPRINTF(("IDL %"Z"u", free_pgs[i])); -+ DPRINTF(("IDL %"Yu, free_pgs[i])); - } - #endif - continue; -@@ -3210,15 +3520,16 @@ mdb_page_flush(MDB_txn *txn, int keep) - MDB_ID2L dl = txn->mt_u.dirty_list; - unsigned psize = env->me_psize, j; - int i, pagecount = dl[0].mid, rc; -- size_t size = 0, pos = 0; -+ size_t size = 0; -+ offset_t pos = 0; - pgno_t pgno = 0; - MDB_page *dp = NULL; - #ifdef _WIN32 - OVERLAPPED ov; - #else - struct iovec iov[MDB_COMMIT_PAGES]; -- ssize_t wpos = 0, wsize = 0, wres; -- size_t next_pos = 1; /* impossible pos, so pos != next_pos */ -+ ssize_t wsize = 0, wres; -+ offset_t wpos = 0, next_pos = 1; /* impossible pos, so pos != next_pos */ - int n = 0; - #endif - -@@ -3266,7 +3577,7 @@ mdb_page_flush(MDB_txn *txn, int keep) - * the write offset, to at least save the overhead of a Seek - * system call. - */ -- DPRINTF(("committing page %"Z"u", pgno)); -+ DPRINTF(("committing page %"Yu, pgno)); - memset(&ov, 0, sizeof(ov)); - ov.Offset = pos & 0xffffffff; - ov.OffsetHigh = pos >> 16 >> 16; -@@ -3317,7 +3628,7 @@ retry_seek: - wpos = pos; - wsize = 0; - } -- DPRINTF(("committing page %"Z"u", pgno)); -+ DPRINTF(("committing page %"Yu, pgno)); - next_pos = pos + size; - iov[n].iov_len = size; - iov[n].iov_base = (char *)dp; -@@ -3325,6 +3636,10 @@ retry_seek: - n++; - #endif /* _WIN32 */ - } -+#ifdef MDB_VL32 -+ if (pgno > txn->mt_last_pgno) -+ txn->mt_last_pgno = pgno; -+#endif - - /* MIPS has cache coherency issues, this is a no-op everywhere else - * Note: for any size >= on-chip cache size, entire on-chip cache is -@@ -3526,7 +3841,7 @@ mdb_txn_commit(MDB_txn *txn) - !(txn->mt_flags & (MDB_TXN_DIRTY|MDB_TXN_SPILLS))) - goto done; - -- DPRINTF(("committing txn %"Z"u %p on mdbenv %p, root page %"Z"u", -+ DPRINTF(("committing txn %"Yu" %p on mdbenv %p, root page %"Yu, - txn->mt_txnid, (void*)txn, (void*)env, txn->mt_dbs[MAIN_DBI].md_root)); - - /* Update DB root pointers */ -@@ -3564,9 +3879,12 @@ mdb_txn_commit(MDB_txn *txn) - mdb_audit(txn); - #endif - -- if ((rc = mdb_page_flush(txn, 0)) || -- (rc = mdb_env_sync(env, 0)) || -- (rc = mdb_env_write_meta(txn))) -+ if ((rc = mdb_page_flush(txn, 0))) -+ goto fail; -+ if (!F_ISSET(txn->mt_flags, MDB_TXN_NOSYNC) && -+ (rc = mdb_env_sync0(env, 0, txn->mt_next_pgno))) -+ goto fail; -+ if ((rc = mdb_env_write_meta(txn))) - goto fail; - end_mode = MDB_END_COMMITTED|MDB_END_UPDATE; - -@@ -3621,7 +3939,7 @@ mdb_env_read_header(MDB_env *env, MDB_meta *meta) - p = (MDB_page *)&pbuf; - - if (!F_ISSET(p->mp_flags, P_META)) { -- DPRINTF(("page %"Z"u not a meta page", p->mp_pgno)); -+ DPRINTF(("page %"Yu" not a meta page", p->mp_pgno)); - return MDB_INVALID; - } - -@@ -3691,7 +4009,6 @@ mdb_env_init_meta(MDB_env *env, MDB_meta *meta) - p = calloc(NUM_METAS, psize); - if (!p) - return ENOMEM; -- - p->mp_pgno = 0; - p->mp_flags = P_META; - *(MDB_meta *)METADATA(p) = *meta; -@@ -3722,8 +4039,8 @@ mdb_env_write_meta(MDB_txn *txn) - MDB_env *env; - MDB_meta meta, metab, *mp; - unsigned flags; -- size_t mapsize; -- off_t off; -+ mdb_size_t mapsize; -+ offset_t off; - int rc, len, toggle; - char *ptr; - HANDLE mfd; -@@ -3734,11 +4051,11 @@ mdb_env_write_meta(MDB_txn *txn) - #endif - - toggle = txn->mt_txnid & 1; -- DPRINTF(("writing meta page %d for root page %"Z"u", -+ DPRINTF(("writing meta page %d for root page %"Yu, - toggle, txn->mt_dbs[MAIN_DBI].md_root)); - - env = txn->mt_env; -- flags = env->me_flags; -+ flags = txn->mt_flags | env->me_flags; - mp = env->me_metas[toggle]; - mapsize = env->me_metas[toggle ^ 1]->mm_mapsize; - /* Persist any increases of mapsize config */ -@@ -3867,6 +4184,9 @@ mdb_env_create(MDB_env **env) - #ifdef MDB_USE_POSIX_SEM - e->me_rmutex = SEM_FAILED; - e->me_wmutex = SEM_FAILED; -+#elif defined MDB_USE_SYSV_SEM -+ e->me_rmutex->semid = -1; -+ e->me_wmutex->semid = -1; - #endif - e->me_pid = getpid(); - GET_PAGESIZE(e->me_os_psize); -@@ -3875,6 +4195,19 @@ mdb_env_create(MDB_env **env) - return MDB_SUCCESS; - } - -+#ifdef _WIN32 -+/** @brief Map a result from an NTAPI call to WIN32. */ -+static DWORD -+mdb_nt2win32(NTSTATUS st) -+{ -+ OVERLAPPED o = {0}; -+ DWORD br; -+ o.Internal = st; -+ GetOverlappedResult(NULL, &o, &br, FALSE); -+ return GetLastError(); -+} -+#endif -+ - static int ESECT - mdb_env_map(MDB_env *env, void *addr) - { -@@ -3882,42 +4215,51 @@ mdb_env_map(MDB_env *env, void *addr) - unsigned int flags = env->me_flags; - #ifdef _WIN32 - int rc; -+ int access = SECTION_MAP_READ; - HANDLE mh; -- LONG sizelo, sizehi; -- size_t msize; -+ void *map; -+ SIZE_T msize; -+ ULONG pageprot = PAGE_READONLY, secprot, alloctype; - -+ if (flags & MDB_WRITEMAP) { -+ access |= SECTION_MAP_WRITE; -+ pageprot = PAGE_READWRITE; -+ } - if (flags & MDB_RDONLY) { -- /* Don't set explicit map size, use whatever exists */ -+ secprot = PAGE_READONLY; - msize = 0; -- sizelo = 0; -- sizehi = 0; -+ alloctype = 0; - } else { -+ secprot = PAGE_READWRITE; - msize = env->me_mapsize; -- sizelo = msize & 0xffffffff; -- sizehi = msize >> 16 >> 16; /* only needed on Win64 */ -- -- /* Windows won't create mappings for zero length files. -- * and won't map more than the file size. -- * Just set the maxsize right now. -- */ -- if (SetFilePointer(env->me_fd, sizelo, &sizehi, 0) != (DWORD)sizelo -- || !SetEndOfFile(env->me_fd) -- || SetFilePointer(env->me_fd, 0, NULL, 0) != 0) -- return ErrCode(); -+ alloctype = MEM_RESERVE; - } - -- mh = CreateFileMapping(env->me_fd, NULL, flags & MDB_WRITEMAP ? -- PAGE_READWRITE : PAGE_READONLY, -- sizehi, sizelo, NULL); -- if (!mh) -- return ErrCode(); -- env->me_map = MapViewOfFileEx(mh, flags & MDB_WRITEMAP ? -- FILE_MAP_WRITE : FILE_MAP_READ, -- 0, 0, msize, addr); -- rc = env->me_map ? 0 : ErrCode(); -- CloseHandle(mh); -+ rc = NtCreateSection(&mh, access, NULL, NULL, secprot, SEC_RESERVE, env->me_fd); - if (rc) -- return rc; -+ return mdb_nt2win32(rc); -+ map = addr; -+#ifdef MDB_VL32 -+ msize = NUM_METAS * env->me_psize; -+#endif -+ rc = NtMapViewOfSection(mh, GetCurrentProcess(), &map, 0, 0, NULL, &msize, ViewUnmap, alloctype, pageprot); -+#ifdef MDB_VL32 -+ env->me_fmh = mh; -+#else -+ NtClose(mh); -+#endif -+ if (rc) -+ return mdb_nt2win32(rc); -+ env->me_map = map; -+#else -+#ifdef MDB_VL32 -+ (void) flags; -+ env->me_map = mmap(addr, NUM_METAS * env->me_psize, PROT_READ, MAP_SHARED, -+ env->me_fd, 0); -+ if (env->me_map == MAP_FAILED) { -+ env->me_map = NULL; -+ return ErrCode(); -+ } - #else - int prot = PROT_READ; - if (flags & MDB_WRITEMAP) { -@@ -3951,6 +4293,7 @@ mdb_env_map(MDB_env *env, void *addr) - */ - if (addr && env->me_map != addr) - return EBUSY; /* TODO: Make a new MDB_* error code? */ -+#endif - - p = (MDB_page *)env->me_map; - env->me_metas[0] = METADATA(p); -@@ -3960,15 +4303,17 @@ mdb_env_map(MDB_env *env, void *addr) - } - - int ESECT --mdb_env_set_mapsize(MDB_env *env, size_t size) -+mdb_env_set_mapsize(MDB_env *env, mdb_size_t size) - { - /* If env is already open, caller is responsible for making - * sure there are no active txns. - */ - if (env->me_map) { -- int rc; - MDB_meta *meta; -+#ifndef MDB_VL32 - void *old; -+ int rc; -+#endif - if (env->me_txn) - return EINVAL; - meta = mdb_env_pick_meta(env); -@@ -3976,16 +4321,21 @@ mdb_env_set_mapsize(MDB_env *env, size_t size) - size = meta->mm_mapsize; - { - /* Silently round up to minimum if the size is too small */ -- size_t minsize = (meta->mm_last_pg + 1) * env->me_psize; -+ mdb_size_t minsize = (meta->mm_last_pg + 1) * env->me_psize; - if (size < minsize) - size = minsize; - } -+#ifndef MDB_VL32 -+ /* For MDB_VL32 this bit is a noop since we dynamically remap -+ * chunks of the DB anyway. -+ */ - munmap(env->me_map, env->me_mapsize); - env->me_mapsize = size; - old = (env->me_flags & MDB_FIXEDMAP) ? env->me_map : NULL; - rc = mdb_env_map(env, old); - if (rc) - return rc; -+#endif /* !MDB_VL32 */ - } - env->me_mapsize = size; - if (env->me_psize) -@@ -4021,7 +4371,7 @@ mdb_env_get_maxreaders(MDB_env *env, unsigned int *readers) - } - - static int ESECT --mdb_fsize(HANDLE fd, size_t *size) -+mdb_fsize(HANDLE fd, mdb_size_t *size) - { - #ifdef _WIN32 - LARGE_INTEGER fsize; -@@ -4135,7 +4485,7 @@ mdb_env_open2(MDB_env *env) - /* Make sure mapsize >= committed data size. Even when using - * mm_mapsize, which could be broken in old files (ITS#7789). - */ -- size_t minsize = (meta.mm_last_pg + 1) * meta.mm_psize; -+ mdb_size_t minsize = (meta.mm_last_pg + 1) * meta.mm_psize; - if (env->me_mapsize < minsize) - env->me_mapsize = minsize; - } -@@ -4154,6 +4504,18 @@ mdb_env_open2(MDB_env *env) - return rc; - newenv = 0; - } -+#ifdef _WIN32 -+ /* For FIXEDMAP, make sure the file is non-empty before we attempt to map it */ -+ if (newenv) { -+ char dummy = 0; -+ DWORD len; -+ rc = WriteFile(env->me_fd, &dummy, 1, &len, NULL); -+ if (!rc) { -+ rc = ErrCode(); -+ return rc; -+ } -+ } -+#endif - - rc = mdb_env_map(env, (flags & MDB_FIXEDMAP) ? meta.mm_address : NULL); - if (rc) -@@ -4183,13 +4545,13 @@ mdb_env_open2(MDB_env *env) - - DPRINTF(("opened database version %u, pagesize %u", - meta->mm_version, env->me_psize)); -- DPRINTF(("using meta page %d", (int) (meta->mm_txnid & 1))); -- DPRINTF(("depth: %u", db->md_depth)); -- DPRINTF(("entries: %"Z"u", db->md_entries)); -- DPRINTF(("branch pages: %"Z"u", db->md_branch_pages)); -- DPRINTF(("leaf pages: %"Z"u", db->md_leaf_pages)); -- DPRINTF(("overflow pages: %"Z"u", db->md_overflow_pages)); -- DPRINTF(("root: %"Z"u", db->md_root)); -+ DPRINTF(("using meta page %d", (int) (meta->mm_txnid & 1))); -+ DPRINTF(("depth: %u", db->md_depth)); -+ DPRINTF(("entries: %"Yu, db->md_entries)); -+ DPRINTF(("branch pages: %"Yu, db->md_branch_pages)); -+ DPRINTF(("leaf pages: %"Yu, db->md_leaf_pages)); -+ DPRINTF(("overflow pages: %"Yu, db->md_overflow_pages)); -+ DPRINTF(("root: %"Yu, db->md_root)); - } - #endif - -@@ -4465,8 +4827,12 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl) - # define MDB_CLOEXEC 0 - #endif - #endif -+#ifdef MDB_USE_SYSV_SEM -+ int semid; -+ union semun semu; -+#endif - int rc; -- off_t size, rsize; -+ offset_t size, rsize; - - #ifdef _WIN32 - wchar_t *wlpath; -@@ -4616,19 +4982,42 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl) - env->me_wmutex = sem_open(env->me_txns->mti_wmname, - O_CREAT|O_EXCL, mode, 1); - if (env->me_wmutex == SEM_FAILED) goto fail_errno; -+#elif defined(MDB_USE_SYSV_SEM) -+ unsigned short vals[2] = {1, 1}; -+ key_t key = ftok(lpath, 'M'); -+ if (key == -1) -+ goto fail_errno; -+ semid = semget(key, 2, (mode & 0777) | IPC_CREAT); -+ if (semid < 0) -+ goto fail_errno; -+ semu.array = vals; -+ if (semctl(semid, 0, SETALL, semu) < 0) -+ goto fail_errno; -+ env->me_txns->mti_semid = semid; -+ env->me_txns->mti_rlocked = 0; -+ env->me_txns->mti_wlocked = 0; - #else /* MDB_USE_POSIX_MUTEX: */ - pthread_mutexattr_t mattr; - -- if ((rc = pthread_mutexattr_init(&mattr)) -- || (rc = pthread_mutexattr_setpshared(&mattr, PTHREAD_PROCESS_SHARED)) -+ /* Solaris needs this before initing a robust mutex. Otherwise -+ * it may skip the init and return EBUSY "seems someone already -+ * inited" or EINVAL "it was inited differently". -+ */ -+ memset(env->me_txns->mti_rmutex, 0, sizeof(*env->me_txns->mti_rmutex)); -+ memset(env->me_txns->mti_wmutex, 0, sizeof(*env->me_txns->mti_wmutex)); -+ -+ if ((rc = pthread_mutexattr_init(&mattr)) != 0) -+ goto fail; -+ rc = pthread_mutexattr_setpshared(&mattr, PTHREAD_PROCESS_SHARED); - #ifdef MDB_ROBUST_SUPPORTED -- || (rc = pthread_mutexattr_setrobust(&mattr, PTHREAD_MUTEX_ROBUST)) -+ if (!rc) rc = pthread_mutexattr_setrobust(&mattr, PTHREAD_MUTEX_ROBUST); - #endif -- || (rc = pthread_mutex_init(env->me_txns->mti_rmutex, &mattr)) -- || (rc = pthread_mutex_init(env->me_txns->mti_wmutex, &mattr))) -- goto fail; -+ if (!rc) rc = pthread_mutex_init(env->me_txns->mti_rmutex, &mattr); -+ if (!rc) rc = pthread_mutex_init(env->me_txns->mti_wmutex, &mattr); - pthread_mutexattr_destroy(&mattr); --#endif /* _WIN32 || MDB_USE_POSIX_SEM */ -+ if (rc) -+ goto fail; -+#endif /* _WIN32 || ... */ - - env->me_txns->mti_magic = MDB_MAGIC; - env->me_txns->mti_format = MDB_LOCK_FORMAT; -@@ -4636,6 +5025,9 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl) - env->me_txns->mti_numreaders = 0; - - } else { -+#ifdef MDB_USE_SYSV_SEM -+ struct semid_ds buf; -+#endif - if (env->me_txns->mti_magic != MDB_MAGIC) { - DPUTS("lock region has invalid magic"); - rc = MDB_INVALID; -@@ -4661,8 +5053,33 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl) - if (env->me_rmutex == SEM_FAILED) goto fail_errno; - env->me_wmutex = sem_open(env->me_txns->mti_wmname, 0); - if (env->me_wmutex == SEM_FAILED) goto fail_errno; -+#elif defined(MDB_USE_SYSV_SEM) -+ semid = env->me_txns->mti_semid; -+ semu.buf = &buf; -+ /* check for read access */ -+ if (semctl(semid, 0, IPC_STAT, semu) < 0) -+ goto fail_errno; -+ /* check for write access */ -+ if (semctl(semid, 0, IPC_SET, semu) < 0) -+ goto fail_errno; - #endif - } -+#ifdef MDB_USE_SYSV_SEM -+ env->me_rmutex->semid = semid; -+ env->me_wmutex->semid = semid; -+ env->me_rmutex->semnum = 0; -+ env->me_wmutex->semnum = 1; -+ env->me_rmutex->locked = &env->me_txns->mti_rlocked; -+ env->me_wmutex->locked = &env->me_txns->mti_wlocked; -+#endif -+#ifdef MDB_VL32 -+#ifdef _WIN32 -+ env->me_rpmutex = CreateMutex(NULL, FALSE, NULL); -+#else -+ pthread_mutex_init(&env->me_rpmutex, NULL); -+#endif -+#endif -+ - return MDB_SUCCESS; - - fail_errno: -@@ -4701,6 +5118,17 @@ mdb_env_open(MDB_env *env, const char *path, unsigned int flags, mdb_mode_t mode - if (env->me_fd!=INVALID_HANDLE_VALUE || (flags & ~(CHANGEABLE|CHANGELESS))) - return EINVAL; - -+#ifdef MDB_VL32 -+ if (flags & MDB_WRITEMAP) { -+ /* silently ignore WRITEMAP in 32 bit mode */ -+ flags ^= MDB_WRITEMAP; -+ } -+ if (flags & MDB_FIXEDMAP) { -+ /* cannot support FIXEDMAP */ -+ return EINVAL; -+ } -+#endif -+ - len = strlen(path); - if (flags & MDB_NOSUBDIR) { - rc = len + sizeof(LOCKSUFF) + len + 1; -@@ -4730,6 +5158,17 @@ mdb_env_open(MDB_env *env, const char *path, unsigned int flags, mdb_mode_t mode - (env->me_dirty_list = calloc(MDB_IDL_UM_SIZE, sizeof(MDB_ID2))))) - rc = ENOMEM; - } -+#ifdef MDB_VL32 -+ if (!rc) { -+ env->me_rpages = malloc(MDB_ERPAGE_SIZE * sizeof(MDB_ID3)); -+ if (!env->me_rpages) { -+ rc = ENOMEM; -+ goto leave; -+ } -+ env->me_rpages[0].mid = 0; -+ env->me_rpcheck = MDB_ERPAGE_SIZE/2; -+ } -+#endif - env->me_flags = flags |= MDB_ENV_ACTIVE; - if (rc) - goto leave; -@@ -4828,6 +5267,16 @@ mdb_env_open(MDB_env *env, const char *path, unsigned int flags, mdb_mode_t mode - txn->mt_dbiseqs = (unsigned int *)(txn->mt_cursors + env->me_maxdbs); - txn->mt_dbflags = (unsigned char *)(txn->mt_dbiseqs + env->me_maxdbs); - txn->mt_env = env; -+#ifdef MDB_VL32 -+ txn->mt_rpages = malloc(MDB_TRPAGE_SIZE * sizeof(MDB_ID3)); -+ if (!txn->mt_rpages) { -+ free(txn); -+ rc = ENOMEM; -+ goto leave; -+ } -+ txn->mt_rpages[0].mid = 0; -+ txn->mt_rpcheck = MDB_TRPAGE_SIZE/2; -+#endif - txn->mt_dbxs = env->me_dbxs; - txn->mt_flags = MDB_TXN_FINISHED; - env->me_txn0 = txn; -@@ -4866,6 +5315,15 @@ mdb_env_close0(MDB_env *env, int excl) - free(env->me_dbflags); - free(env->me_path); - free(env->me_dirty_list); -+#ifdef MDB_VL32 -+ if (env->me_txn0 && env->me_txn0->mt_rpages) -+ free(env->me_txn0->mt_rpages); -+ { unsigned int x; -+ for (x=1; x<=env->me_rpages[0].mid; x++) -+ munmap(env->me_rpages[x].mptr, env->me_rpages[x].mcnt * env->me_psize); -+ } -+ free(env->me_rpages); -+#endif - free(env->me_txn0); - mdb_midl_free(env->me_free_pgs); - -@@ -4883,7 +5341,11 @@ mdb_env_close0(MDB_env *env, int excl) - } - - if (env->me_map) { -+#ifdef MDB_VL32 -+ munmap(env->me_map, NUM_METAS*env->me_psize); -+#else - munmap(env->me_map, env->me_mapsize); -+#endif - } - if (env->me_mfd != env->me_fd && env->me_mfd != INVALID_HANDLE_VALUE) - (void) close(env->me_mfd); -@@ -4924,6 +5386,16 @@ mdb_env_close0(MDB_env *env, int excl) - sem_unlink(env->me_txns->mti_wmname); - } - } -+#elif defined(MDB_USE_SYSV_SEM) -+ if (env->me_rmutex->semid != -1) { -+ /* If we have the filelock: If we are the -+ * only remaining user, clean up semaphores. -+ */ -+ if (excl == 0) -+ mdb_env_excl_lock(env, &excl); -+ if (excl > 0) -+ semctl(env->me_rmutex->semid, 0, IPC_RMID); -+ } - #endif - munmap((void *)env->me_txns, (env->me_maxreaders-1)*sizeof(MDB_reader)+sizeof(MDB_txninfo)); - } -@@ -4938,6 +5410,14 @@ mdb_env_close0(MDB_env *env, int excl) - #endif - (void) close(env->me_lfd); - } -+#ifdef MDB_VL32 -+#ifdef _WIN32 -+ if (env->me_fmh) CloseHandle(env->me_fmh); -+ if (env->me_rpmutex) CloseHandle(env->me_rpmutex); -+#else -+ pthread_mutex_destroy(&env->me_rpmutex); -+#endif -+#endif - - env->me_flags &= ~(MDB_ENV_ACTIVE|MDB_ENV_TXKEY); - } -@@ -4961,18 +5441,18 @@ mdb_env_close(MDB_env *env) - free(env); - } - --/** Compare two items pointing at aligned size_t's */ -+/** Compare two items pointing at aligned #mdb_size_t's */ - static int - mdb_cmp_long(const MDB_val *a, const MDB_val *b) - { -- return (*(size_t *)a->mv_data < *(size_t *)b->mv_data) ? -1 : -- *(size_t *)a->mv_data > *(size_t *)b->mv_data; -+ return (*(mdb_size_t *)a->mv_data < *(mdb_size_t *)b->mv_data) ? -1 : -+ *(mdb_size_t *)a->mv_data > *(mdb_size_t *)b->mv_data; - } - - /** Compare two items pointing at aligned unsigned int's. - * - * This is also set as #MDB_INTEGERDUP|#MDB_DUPFIXED's #MDB_dbx.%md_dcmp, -- * but #mdb_cmp_clong() is called instead if the data type is size_t. -+ * but #mdb_cmp_clong() is called instead if the data type is #mdb_size_t. - */ - static int - mdb_cmp_int(const MDB_val *a, const MDB_val *b) -@@ -5077,7 +5557,7 @@ mdb_node_search(MDB_cursor *mc, MDB_val *key, int *exactp) - - nkeys = NUMKEYS(mp); - -- DPRINTF(("searching %u keys in %s %spage %"Z"u", -+ DPRINTF(("searching %u keys in %s %spage %"Yu, - nkeys, IS_LEAF(mp) ? "leaf" : "branch", IS_SUBP(mp) ? "sub-" : "", - mdb_dbg_pgno(mp))); - -@@ -5089,7 +5569,7 @@ mdb_node_search(MDB_cursor *mc, MDB_val *key, int *exactp) - * alignment is guaranteed. Use faster mdb_cmp_int. - */ - if (cmp == mdb_cmp_cint && IS_BRANCH(mp)) { -- if (NODEPTR(mp, 1)->mn_ksize == sizeof(size_t)) -+ if (NODEPTR(mp, 1)->mn_ksize == sizeof(mdb_size_t)) - cmp = mdb_cmp_long; - else - cmp = mdb_cmp_int; -@@ -5125,7 +5605,7 @@ mdb_node_search(MDB_cursor *mc, MDB_val *key, int *exactp) - DPRINTF(("found leaf index %u [%s], rc = %i", - i, DKEY(&nodekey), rc)); - else -- DPRINTF(("found branch index %u [%s -> %"Z"u], rc = %i", -+ DPRINTF(("found branch index %u [%s -> %"Yu"], rc = %i", - i, DKEY(&nodekey), NODEPGNO(node), rc)); - #endif - if (rc == 0) -@@ -5173,7 +5653,7 @@ static void - mdb_cursor_pop(MDB_cursor *mc) - { - if (mc->mc_snum) { -- DPRINTF(("popping page %"Z"u off db %d cursor %p", -+ DPRINTF(("popping page %"Yu" off db %d cursor %p", - mc->mc_pg[mc->mc_top]->mp_pgno, DDBI(mc), (void *) mc)); - - mc->mc_snum--; -@@ -5189,7 +5669,7 @@ mdb_cursor_pop(MDB_cursor *mc) - static int - mdb_cursor_push(MDB_cursor *mc, MDB_page *mp) - { -- DPRINTF(("pushing page %"Z"u on db %d cursor %p", mp->mp_pgno, -+ DPRINTF(("pushing page %"Yu" on db %d cursor %p", mp->mp_pgno, - DDBI(mc), (void *) mc)); - - if (mc->mc_snum >= CURSOR_STACK) { -@@ -5204,21 +5684,309 @@ mdb_cursor_push(MDB_cursor *mc, MDB_page *mp) - return MDB_SUCCESS; - } - --/** Find the address of the page corresponding to a given page number. -+#ifdef MDB_VL32 -+/** Map a read-only page. -+ * There are two levels of tracking in use, a per-txn list and a per-env list. -+ * ref'ing and unref'ing the per-txn list is faster since it requires no -+ * locking. Pages are cached in the per-env list for global reuse, and a lock -+ * is required. Pages are not immediately unmapped when their refcnt goes to -+ * zero; they hang around in case they will be reused again soon. -+ * -+ * When the per-txn list gets full, all pages with refcnt=0 are purged from the -+ * list and their refcnts in the per-env list are decremented. -+ * -+ * When the per-env list gets full, all pages with refcnt=0 are purged from the -+ * list and their pages are unmapped. -+ * -+ * @note "full" means the list has reached its respective rpcheck threshold. -+ * This threshold slowly raises if no pages could be purged on a given check, -+ * and returns to its original value when enough pages were purged. -+ * -+ * If purging doesn't free any slots, filling the per-txn list will return -+ * MDB_TXN_FULL, and filling the per-env list returns MDB_MAP_FULL. -+ * -+ * Reference tracking in a txn is imperfect, pages can linger with non-zero -+ * refcnt even without active references. It was deemed to be too invasive -+ * to add unrefs in every required location. However, all pages are unref'd -+ * at the end of the transaction. This guarantees that no stale references -+ * linger in the per-env list. -+ * -+ * Usually we map chunks of 16 pages at a time, but if an overflow page begins -+ * at the tail of the chunk we extend the chunk to include the entire overflow -+ * page. Unfortunately, pages can be turned into overflow pages after their -+ * chunk was already mapped. In that case we must remap the chunk if the -+ * overflow page is referenced. If the chunk's refcnt is 0 we can just remap -+ * it, otherwise we temporarily map a new chunk just for the overflow page. -+ * -+ * @note this chunk handling means we cannot guarantee that a data item -+ * returned from the DB will stay alive for the duration of the transaction: -+ * We unref pages as soon as a cursor moves away from the page -+ * A subsequent op may cause a purge, which may unmap any unref'd chunks -+ * The caller must copy the data if it must be used later in the same txn. -+ * -+ * Also - our reference counting revolves around cursors, but overflow pages -+ * aren't pointed to by a cursor's page stack. We have to remember them -+ * explicitly, in the added mc_ovpg field. A single cursor can only hold a -+ * reference to one overflow page at a time. -+ * - * @param[in] txn the transaction for this access. - * @param[in] pgno the page number for the page to retrieve. - * @param[out] ret address of a pointer where the page's address will be stored. -- * @param[out] lvl dirty_list inheritance level of found page. 1=current txn, 0=mapped page. - * @return 0 on success, non-zero on failure. - */ - static int --mdb_page_get(MDB_txn *txn, pgno_t pgno, MDB_page **ret, int *lvl) -+mdb_rpage_get(MDB_txn *txn, pgno_t pg0, MDB_page **ret) - { - MDB_env *env = txn->mt_env; -+ MDB_page *p; -+ MDB_ID3L tl = txn->mt_rpages; -+ MDB_ID3L el = env->me_rpages; -+ MDB_ID3 id3; -+ unsigned x, rem; -+ pgno_t pgno; -+ int rc, retries = 1; -+#ifdef _WIN32 -+ LARGE_INTEGER off; -+ SIZE_T len; -+#define SET_OFF(off,val) off.QuadPart = val -+#define MAP(rc,env,addr,len,off) \ -+ addr = NULL; \ -+ rc = NtMapViewOfSection(env->me_fmh, GetCurrentProcess(), &addr, 0, \ -+ len, &off, &len, ViewUnmap, (env->me_flags & MDB_RDONLY) ? 0 : MEM_RESERVE, PAGE_READONLY); \ -+ if (rc) rc = mdb_nt2win32(rc) -+#else -+ offset_t off; -+ size_t len; -+#define SET_OFF(off,val) off = val -+#define MAP(rc,env,addr,len,off) \ -+ addr = mmap(NULL, len, PROT_READ, MAP_SHARED, env->me_fd, off); \ -+ rc = (addr == MAP_FAILED) ? errno : 0 -+#endif -+ -+ /* remember the offset of the actual page number, so we can -+ * return the correct pointer at the end. -+ */ -+ rem = pg0 & (MDB_RPAGE_CHUNK-1); -+ pgno = pg0 ^ rem; -+ -+ id3.mid = 0; -+ x = mdb_mid3l_search(tl, pgno); -+ if (x <= tl[0].mid && tl[x].mid == pgno) { -+ if (x != tl[0].mid && tl[x+1].mid == pg0) -+ x++; -+ /* check for overflow size */ -+ p = (MDB_page *)((char *)tl[x].mptr + rem * env->me_psize); -+ if (IS_OVERFLOW(p) && p->mp_pages + rem > tl[x].mcnt) { -+ id3.mcnt = p->mp_pages + rem; -+ len = id3.mcnt * env->me_psize; -+ SET_OFF(off, pgno * env->me_psize); -+ MAP(rc, env, id3.mptr, len, off); -+ if (rc) -+ return rc; -+ /* check for local-only page */ -+ if (rem) { -+ mdb_tassert(txn, tl[x].mid != pg0); -+ /* hope there's room to insert this locally. -+ * setting mid here tells later code to just insert -+ * this id3 instead of searching for a match. -+ */ -+ id3.mid = pg0; -+ goto notlocal; -+ } else { -+ /* ignore the mapping we got from env, use new one */ -+ tl[x].mptr = id3.mptr; -+ tl[x].mcnt = id3.mcnt; -+ /* if no active ref, see if we can replace in env */ -+ if (!tl[x].mref) { -+ unsigned i; -+ pthread_mutex_lock(&env->me_rpmutex); -+ i = mdb_mid3l_search(el, tl[x].mid); -+ if (el[i].mref == 1) { -+ /* just us, replace it */ -+ munmap(el[i].mptr, el[i].mcnt * env->me_psize); -+ el[i].mptr = tl[x].mptr; -+ el[i].mcnt = tl[x].mcnt; -+ } else { -+ /* there are others, remove ourself */ -+ el[i].mref--; -+ } -+ pthread_mutex_unlock(&env->me_rpmutex); -+ } -+ } -+ } -+ id3.mptr = tl[x].mptr; -+ id3.mcnt = tl[x].mcnt; -+ tl[x].mref++; -+ goto ok; -+ } -+ -+notlocal: -+ if (tl[0].mid >= MDB_TRPAGE_MAX - txn->mt_rpcheck) { -+ unsigned i, y; -+ /* purge unref'd pages from our list and unref in env */ -+ pthread_mutex_lock(&env->me_rpmutex); -+retry: -+ y = 0; -+ for (i=1; i<=tl[0].mid; i++) { -+ if (!tl[i].mref) { -+ if (!y) y = i; -+ /* tmp overflow pages don't go to env */ -+ if (tl[i].mid & (MDB_RPAGE_CHUNK-1)) { -+ munmap(tl[i].mptr, tl[i].mcnt * env->me_psize); -+ continue; -+ } -+ x = mdb_mid3l_search(el, tl[i].mid); -+ el[x].mref--; -+ } -+ } -+ pthread_mutex_unlock(&env->me_rpmutex); -+ if (!y) { -+ /* we didn't find any unref'd chunks. -+ * if we're out of room, fail. -+ */ -+ if (tl[0].mid >= MDB_TRPAGE_MAX) -+ return MDB_TXN_FULL; -+ /* otherwise, raise threshold for next time around -+ * and let this go. -+ */ -+ txn->mt_rpcheck /= 2; -+ } else { -+ /* we found some unused; consolidate the list */ -+ for (i=y+1; i<= tl[0].mid; i++) -+ if (tl[i].mref) -+ tl[y++] = tl[i]; -+ tl[0].mid = y-1; -+ /* decrease the check threshold toward its original value */ -+ if (!txn->mt_rpcheck) -+ txn->mt_rpcheck = 1; -+ while (txn->mt_rpcheck < tl[0].mid && txn->mt_rpcheck < MDB_TRPAGE_SIZE/2) -+ txn->mt_rpcheck *= 2; -+ } -+ } -+ if (tl[0].mid < MDB_TRPAGE_SIZE) { -+ id3.mref = 1; -+ if (id3.mid) -+ goto found; -+ /* don't map past last written page in read-only envs */ -+ if ((env->me_flags & MDB_RDONLY) && pgno + MDB_RPAGE_CHUNK-1 > txn->mt_last_pgno) -+ id3.mcnt = txn->mt_last_pgno + 1 - pgno; -+ else -+ id3.mcnt = MDB_RPAGE_CHUNK; -+ len = id3.mcnt * env->me_psize; -+ id3.mid = pgno; -+ -+ /* search for page in env */ -+ pthread_mutex_lock(&env->me_rpmutex); -+ x = mdb_mid3l_search(el, pgno); -+ if (x <= el[0].mid && el[x].mid == pgno) { -+ id3.mptr = el[x].mptr; -+ id3.mcnt = el[x].mcnt; -+ /* check for overflow size */ -+ p = (MDB_page *)((char *)id3.mptr + rem * env->me_psize); -+ if (IS_OVERFLOW(p) && p->mp_pages + rem > id3.mcnt) { -+ id3.mcnt = p->mp_pages + rem; -+ len = id3.mcnt * env->me_psize; -+ SET_OFF(off, pgno * env->me_psize); -+ MAP(rc, env, id3.mptr, len, off); -+ if (rc) -+ goto fail; -+ if (!el[x].mref) { -+ munmap(el[x].mptr, env->me_psize * el[x].mcnt); -+ el[x].mptr = id3.mptr; -+ el[x].mcnt = id3.mcnt; -+ } else { -+ id3.mid = pg0; -+ pthread_mutex_unlock(&env->me_rpmutex); -+ goto found; -+ } -+ } -+ el[x].mref++; -+ pthread_mutex_unlock(&env->me_rpmutex); -+ goto found; -+ } -+ if (el[0].mid >= MDB_ERPAGE_MAX - env->me_rpcheck) { -+ /* purge unref'd pages */ -+ unsigned i, y = 0; -+ for (i=1; i<=el[0].mid; i++) { -+ if (!el[i].mref) { -+ if (!y) y = i; -+ munmap(el[i].mptr, env->me_psize * el[i].mcnt); -+ } -+ } -+ if (!y) { -+ if (retries) { -+ /* see if we can unref some local pages */ -+ retries--; -+ id3.mid = 0; -+ goto retry; -+ } -+ if (el[0].mid >= MDB_ERPAGE_MAX) { -+ pthread_mutex_unlock(&env->me_rpmutex); -+ return MDB_MAP_FULL; -+ } -+ env->me_rpcheck /= 2; -+ } else { -+ for (i=y+1; i<= el[0].mid; i++) -+ if (el[i].mref) -+ el[y++] = el[i]; -+ el[0].mid = y-1; -+ if (!env->me_rpcheck) -+ env->me_rpcheck = 1; -+ while (env->me_rpcheck < el[0].mid && env->me_rpcheck < MDB_ERPAGE_SIZE/2) -+ env->me_rpcheck *= 2; -+ } -+ } -+ SET_OFF(off, pgno * env->me_psize); -+ MAP(rc, env, id3.mptr, len, off); -+ if (rc) { -+fail: -+ pthread_mutex_unlock(&env->me_rpmutex); -+ return rc; -+ } -+ /* check for overflow size */ -+ p = (MDB_page *)((char *)id3.mptr + rem * env->me_psize); -+ if (IS_OVERFLOW(p) && p->mp_pages + rem > id3.mcnt) { -+ id3.mcnt = p->mp_pages + rem; -+ munmap(id3.mptr, len); -+ len = id3.mcnt * env->me_psize; -+ MAP(rc, env, id3.mptr, len, off); -+ if (rc) -+ goto fail; -+ } -+ mdb_mid3l_insert(el, &id3); -+ pthread_mutex_unlock(&env->me_rpmutex); -+found: -+ mdb_mid3l_insert(tl, &id3); -+ } else { -+ return MDB_TXN_FULL; -+ } -+ok: -+ p = (MDB_page *)((char *)id3.mptr + rem * env->me_psize); -+#if MDB_DEBUG /* we don't need this check any more */ -+ if (IS_OVERFLOW(p)) { -+ mdb_tassert(txn, p->mp_pages + rem <= id3.mcnt); -+ } -+#endif -+ *ret = p; -+ return MDB_SUCCESS; -+} -+#endif -+ -+/** Find the address of the page corresponding to a given page number. -+ * @param[in] mc the cursor accessing the page. -+ * @param[in] pgno the page number for the page to retrieve. -+ * @param[out] ret address of a pointer where the page's address will be stored. -+ * @param[out] lvl dirty_list inheritance level of found page. 1=current txn, 0=mapped page. -+ * @return 0 on success, non-zero on failure. -+ */ -+static int -+mdb_page_get(MDB_cursor *mc, pgno_t pgno, MDB_page **ret, int *lvl) -+{ -+ MDB_txn *txn = mc->mc_txn; - MDB_page *p = NULL; - int level; - -- if (! (txn->mt_flags & (MDB_TXN_RDONLY|MDB_TXN_WRITEMAP))) { -+ if (! (mc->mc_flags & (C_ORIG_RDONLY|C_WRITEMAP))) { - MDB_txn *tx2 = txn; - level = 1; - do { -@@ -5233,8 +6001,7 @@ mdb_page_get(MDB_txn *txn, pgno_t pgno, MDB_page **ret, int *lvl) - MDB_ID pn = pgno << 1; - x = mdb_midl_search(tx2->mt_spill_pgs, pn); - if (x <= tx2->mt_spill_pgs[0] && tx2->mt_spill_pgs[x] == pn) { -- p = (MDB_page *)(env->me_map + env->me_psize * pgno); -- goto done; -+ goto mapped; - } - } - if (dl[0].mid) { -@@ -5248,15 +6015,26 @@ mdb_page_get(MDB_txn *txn, pgno_t pgno, MDB_page **ret, int *lvl) - } while ((tx2 = tx2->mt_parent) != NULL); - } - -- if (pgno < txn->mt_next_pgno) { -- level = 0; -- p = (MDB_page *)(env->me_map + env->me_psize * pgno); -- } else { -- DPRINTF(("page %"Z"u not found", pgno)); -+ if (pgno >= txn->mt_next_pgno) { -+ DPRINTF(("page %"Yu" not found", pgno)); - txn->mt_flags |= MDB_TXN_ERROR; - return MDB_PAGE_NOTFOUND; - } - -+ level = 0; -+ -+mapped: -+ { -+#ifdef MDB_VL32 -+ int rc = mdb_rpage_get(txn, pgno, &p); -+ if (rc) -+ return rc; -+#else -+ MDB_env *env = txn->mt_env; -+ p = (MDB_page *)(env->me_map + env->me_psize * pgno); -+#endif -+ } -+ - done: - *ret = p; - if (lvl) -@@ -5278,13 +6056,13 @@ mdb_page_search_root(MDB_cursor *mc, MDB_val *key, int flags) - MDB_node *node; - indx_t i; - -- DPRINTF(("branch page %"Z"u has %u keys", mp->mp_pgno, NUMKEYS(mp))); -+ DPRINTF(("branch page %"Yu" has %u keys", mp->mp_pgno, NUMKEYS(mp))); - /* Don't assert on branch pages in the FreeDB. We can get here - * while in the process of rebalancing a FreeDB branch page; we must - * let that proceed. ITS#8336 - */ - mdb_cassert(mc, !mc->mc_dbi || NUMKEYS(mp) > 1); -- DPRINTF(("found index 0 to page %"Z"u", NODEPGNO(NODEPTR(mp, 0)))); -+ DPRINTF(("found index 0 to page %"Yu, NODEPGNO(NODEPTR(mp, 0)))); - - if (flags & (MDB_PS_FIRST|MDB_PS_LAST)) { - i = 0; -@@ -5308,7 +6086,7 @@ mdb_page_search_root(MDB_cursor *mc, MDB_val *key, int flags) - mdb_cassert(mc, i < NUMKEYS(mp)); - node = NODEPTR(mp, i); - -- if ((rc = mdb_page_get(mc->mc_txn, NODEPGNO(node), &mp, NULL)) != 0) -+ if ((rc = mdb_page_get(mc, NODEPGNO(node), &mp, NULL)) != 0) - return rc; - - mc->mc_ki[mc->mc_top] = i; -@@ -5329,7 +6107,7 @@ mdb_page_search_root(MDB_cursor *mc, MDB_val *key, int flags) - return MDB_CORRUPTED; - } - -- DPRINTF(("found leaf page %"Z"u for key [%s]", mp->mp_pgno, -+ DPRINTF(("found leaf page %"Yu" for key [%s]", mp->mp_pgno, - key ? DKEY(key) : "null")); - mc->mc_flags |= C_INITIALIZED; - mc->mc_flags &= ~C_EOF; -@@ -5350,7 +6128,7 @@ mdb_page_search_lowest(MDB_cursor *mc) - MDB_node *node = NODEPTR(mp, 0); - int rc; - -- if ((rc = mdb_page_get(mc->mc_txn, NODEPGNO(node), &mp, NULL)) != 0) -+ if ((rc = mdb_page_get(mc, NODEPGNO(node), &mp, NULL)) != 0) - return rc; - - mc->mc_ki[mc->mc_top] = 0; -@@ -5402,7 +6180,7 @@ mdb_page_search(MDB_cursor *mc, MDB_val *key, int flags) - return MDB_NOTFOUND; - if ((leaf->mn_flags & (F_DUPDATA|F_SUBDATA)) != F_SUBDATA) - return MDB_INCOMPATIBLE; /* not a named DB */ -- rc = mdb_node_read(mc->mc_txn, leaf, &data); -+ rc = mdb_node_read(&mc2, leaf, &data); - if (rc) - return rc; - memcpy(&flags, ((char *) data.mv_data + offsetof(MDB_db, md_flags)), -@@ -5425,14 +6203,26 @@ mdb_page_search(MDB_cursor *mc, MDB_val *key, int flags) - } - - mdb_cassert(mc, root > 1); -- if (!mc->mc_pg[0] || mc->mc_pg[0]->mp_pgno != root) -- if ((rc = mdb_page_get(mc->mc_txn, root, &mc->mc_pg[0], NULL)) != 0) -+ if (!mc->mc_pg[0] || mc->mc_pg[0]->mp_pgno != root) { -+#ifdef MDB_VL32 -+ if (mc->mc_pg[0]) -+ MDB_PAGE_UNREF(mc->mc_txn, mc->mc_pg[0]); -+#endif -+ if ((rc = mdb_page_get(mc, root, &mc->mc_pg[0], NULL)) != 0) - return rc; -+ } - -+#ifdef MDB_VL32 -+ { -+ int i; -+ for (i=1; imc_snum; i++) -+ MDB_PAGE_UNREF(mc->mc_txn, mc->mc_pg[i]); -+ } -+#endif - mc->mc_snum = 1; - mc->mc_top = 0; - -- DPRINTF(("db %d root page %"Z"u has flags 0x%X", -+ DPRINTF(("db %d root page %"Yu" has flags 0x%X", - DDBI(mc), root, mc->mc_pg[0]->mp_flags)); - - if (flags & MDB_PS_MODIFY) { -@@ -5457,7 +6247,7 @@ mdb_ovpage_free(MDB_cursor *mc, MDB_page *mp) - MDB_ID pn = pg << 1; - int rc; - -- DPRINTF(("free ov page %"Z"u (%d)", pg, ovpages)); -+ DPRINTF(("free ov page %"Yu" (%d)", pg, ovpages)); - /* If the page is dirty or on the spill list we just acquired it, - * so we should give it back to our current free list, if any. - * Otherwise put it onto the list of pages we freed in this txn. -@@ -5498,7 +6288,7 @@ mdb_ovpage_free(MDB_cursor *mc, MDB_page *mp) - j = ++(dl[0].mid); - dl[j] = ix; /* Unsorted. OK when MDB_TXN_ERROR. */ - txn->mt_flags |= MDB_TXN_ERROR; -- return MDB_CORRUPTED; -+ return MDB_PROBLEM; - } - } - txn->mt_dirty_room++; -@@ -5523,18 +6313,22 @@ release: - } - - /** Return the data associated with a given node. -- * @param[in] txn The transaction for this operation. -+ * @param[in] mc The cursor for this operation. - * @param[in] leaf The node being read. - * @param[out] data Updated to point to the node's data. - * @return 0 on success, non-zero on failure. - */ - static int --mdb_node_read(MDB_txn *txn, MDB_node *leaf, MDB_val *data) -+mdb_node_read(MDB_cursor *mc, MDB_node *leaf, MDB_val *data) - { - MDB_page *omp; /* overflow page */ - pgno_t pgno; - int rc; - -+ if (MC_OVPG(mc)) { -+ MDB_PAGE_UNREF(mc->mc_txn, MC_OVPG(mc)); -+ MC_SET_OVPG(mc, NULL); -+ } - if (!F_ISSET(leaf->mn_flags, F_BIGDATA)) { - data->mv_size = NODEDSZ(leaf); - data->mv_data = NODEDATA(leaf); -@@ -5545,11 +6339,12 @@ mdb_node_read(MDB_txn *txn, MDB_node *leaf, MDB_val *data) - */ - data->mv_size = NODEDSZ(leaf); - memcpy(&pgno, NODEDATA(leaf), sizeof(pgno)); -- if ((rc = mdb_page_get(txn, pgno, &omp, NULL)) != 0) { -- DPRINTF(("read overflow page %"Z"u failed", pgno)); -+ if ((rc = mdb_page_get(mc, pgno, &omp, NULL)) != 0) { -+ DPRINTF(("read overflow page %"Yu" failed", pgno)); - return rc; - } - data->mv_data = METADATA(omp); -+ MC_SET_OVPG(mc, omp); - - return MDB_SUCCESS; - } -@@ -5560,7 +6355,7 @@ mdb_get(MDB_txn *txn, MDB_dbi dbi, - { - MDB_cursor mc; - MDB_xcursor mx; -- int exact = 0; -+ int exact = 0, rc; - DKBUF; - - DPRINTF(("===> get db %u key [%s]", dbi, DKEY(key))); -@@ -5572,7 +6367,12 @@ mdb_get(MDB_txn *txn, MDB_dbi dbi, - return MDB_BAD_TXN; - - mdb_cursor_init(&mc, txn, dbi, &mx); -- return mdb_cursor_set(&mc, key, data, MDB_SET, &exact); -+ rc = mdb_cursor_set(&mc, key, data, MDB_SET, &exact); -+ /* unref all the pages when MDB_VL32 - caller must copy the data -+ * before doing anything else -+ */ -+ MDB_CURSOR_UNREF(&mc, 1); -+ return rc; - } - - /** Find a sibling for a page. -@@ -5589,13 +6389,19 @@ mdb_cursor_sibling(MDB_cursor *mc, int move_right) - int rc; - MDB_node *indx; - MDB_page *mp; -+#ifdef MDB_VL32 -+ MDB_page *op; -+#endif - - if (mc->mc_snum < 2) { - return MDB_NOTFOUND; /* root has no siblings */ - } - -+#ifdef MDB_VL32 -+ op = mc->mc_pg[mc->mc_top]; -+#endif - mdb_cursor_pop(mc); -- DPRINTF(("parent page is page %"Z"u, index %u", -+ DPRINTF(("parent page is page %"Yu", index %u", - mc->mc_pg[mc->mc_top]->mp_pgno, mc->mc_ki[mc->mc_top])); - - if (move_right ? (mc->mc_ki[mc->mc_top] + 1u >= NUMKEYS(mc->mc_pg[mc->mc_top])) -@@ -5618,8 +6424,10 @@ mdb_cursor_sibling(MDB_cursor *mc, int move_right) - } - mdb_cassert(mc, IS_BRANCH(mc->mc_pg[mc->mc_top])); - -+ MDB_PAGE_UNREF(mc->mc_txn, op); -+ - indx = NODEPTR(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top]); -- if ((rc = mdb_page_get(mc->mc_txn, NODEPGNO(indx), &mp, NULL)) != 0) { -+ if ((rc = mdb_page_get(mc, NODEPGNO(indx), &mp, NULL)) != 0) { - /* mc will be inconsistent if caller does mc_snum++ as above */ - mc->mc_flags &= ~(C_INITIALIZED|C_EOF); - return rc; -@@ -5640,11 +6448,12 @@ mdb_cursor_next(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op) - MDB_node *leaf; - int rc; - -- if (mc->mc_flags & C_EOF) { -+ if ((mc->mc_flags & C_EOF) || -+ ((mc->mc_flags & C_DEL) && op == MDB_NEXT_DUP)) { - return MDB_NOTFOUND; - } -- -- mdb_cassert(mc, mc->mc_flags & C_INITIALIZED); -+ if (!(mc->mc_flags & C_INITIALIZED)) -+ return mdb_cursor_first(mc, key, data); - - mp = mc->mc_pg[mc->mc_top]; - -@@ -5659,6 +6468,9 @@ mdb_cursor_next(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op) - return rc; - } - } -+ else { -+ MDB_CURSOR_UNREF(&mc->mc_xcursor->mx_cursor, 0); -+ } - } else { - mc->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); - if (op == MDB_NEXT_DUP) -@@ -5666,7 +6478,7 @@ mdb_cursor_next(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op) - } - } - -- DPRINTF(("cursor_next: top page is %"Z"u in cursor %p", -+ DPRINTF(("cursor_next: top page is %"Yu" in cursor %p", - mdb_dbg_pgno(mp), (void *) mc)); - if (mc->mc_flags & C_DEL) { - mc->mc_flags ^= C_DEL; -@@ -5680,12 +6492,12 @@ mdb_cursor_next(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op) - return rc; - } - mp = mc->mc_pg[mc->mc_top]; -- DPRINTF(("next page is %"Z"u, key index %u", mp->mp_pgno, mc->mc_ki[mc->mc_top])); -+ DPRINTF(("next page is %"Yu", key index %u", mp->mp_pgno, mc->mc_ki[mc->mc_top])); - } else - mc->mc_ki[mc->mc_top]++; - - skip: -- DPRINTF(("==> cursor points to page %"Z"u with %u keys, key index %u", -+ DPRINTF(("==> cursor points to page %"Yu" with %u keys, key index %u", - mdb_dbg_pgno(mp), NUMKEYS(mp), mc->mc_ki[mc->mc_top])); - - if (IS_LEAF2(mp)) { -@@ -5701,7 +6513,7 @@ skip: - mdb_xcursor_init1(mc, leaf); - } - if (data) { -- if ((rc = mdb_node_read(mc->mc_txn, leaf, data)) != MDB_SUCCESS) -+ if ((rc = mdb_node_read(mc, leaf, data)) != MDB_SUCCESS) - return rc; - - if (F_ISSET(leaf->mn_flags, F_DUPDATA)) { -@@ -5723,7 +6535,12 @@ mdb_cursor_prev(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op) - MDB_node *leaf; - int rc; - -- mdb_cassert(mc, mc->mc_flags & C_INITIALIZED); -+ if (!(mc->mc_flags & C_INITIALIZED)) { -+ rc = mdb_cursor_last(mc, key, data); -+ if (rc) -+ return rc; -+ mc->mc_ki[mc->mc_top]++; -+ } - - mp = mc->mc_pg[mc->mc_top]; - -@@ -5740,6 +6557,9 @@ mdb_cursor_prev(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op) - return rc; - } - } -+ else { -+ MDB_CURSOR_UNREF(&mc->mc_xcursor->mx_cursor, 0); -+ } - } else { - mc->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); - if (op == MDB_PREV_DUP) -@@ -5747,7 +6567,7 @@ mdb_cursor_prev(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op) - } - } - -- DPRINTF(("cursor_prev: top page is %"Z"u in cursor %p", -+ DPRINTF(("cursor_prev: top page is %"Yu" in cursor %p", - mdb_dbg_pgno(mp), (void *) mc)); - - mc->mc_flags &= ~(C_EOF|C_DEL); -@@ -5759,11 +6579,13 @@ mdb_cursor_prev(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op) - } - mp = mc->mc_pg[mc->mc_top]; - mc->mc_ki[mc->mc_top] = NUMKEYS(mp) - 1; -- DPRINTF(("prev page is %"Z"u, key index %u", mp->mp_pgno, mc->mc_ki[mc->mc_top])); -+ DPRINTF(("prev page is %"Yu", key index %u", mp->mp_pgno, mc->mc_ki[mc->mc_top])); - } else - mc->mc_ki[mc->mc_top]--; - -- DPRINTF(("==> cursor points to page %"Z"u with %u keys, key index %u", -+ mc->mc_flags &= ~C_EOF; -+ -+ DPRINTF(("==> cursor points to page %"Yu" with %u keys, key index %u", - mdb_dbg_pgno(mp), NUMKEYS(mp), mc->mc_ki[mc->mc_top])); - - if (IS_LEAF2(mp)) { -@@ -5779,7 +6601,7 @@ mdb_cursor_prev(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op) - mdb_xcursor_init1(mc, leaf); - } - if (data) { -- if ((rc = mdb_node_read(mc->mc_txn, leaf, data)) != MDB_SUCCESS) -+ if ((rc = mdb_node_read(mc, leaf, data)) != MDB_SUCCESS) - return rc; - - if (F_ISSET(leaf->mn_flags, F_DUPDATA)) { -@@ -5806,8 +6628,10 @@ mdb_cursor_set(MDB_cursor *mc, MDB_val *key, MDB_val *data, - if (key->mv_size == 0) - return MDB_BAD_VALSIZE; - -- if (mc->mc_xcursor) -+ if (mc->mc_xcursor) { -+ MDB_CURSOR_UNREF(&mc->mc_xcursor->mx_cursor, 0); - mc->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); -+ } - - /* See if we're already on the right page */ - if (mc->mc_flags & C_INITIALIZED) { -@@ -5873,6 +6697,7 @@ mdb_cursor_set(MDB_cursor *mc, MDB_val *key, MDB_val *data, - } - } - rc = 0; -+ mc->mc_flags &= ~C_EOF; - goto set2; - } - } -@@ -5961,25 +6786,23 @@ set1: - } else if (op == MDB_GET_BOTH || op == MDB_GET_BOTH_RANGE) { - MDB_val olddata; - MDB_cmp_func *dcmp; -- if ((rc = mdb_node_read(mc->mc_txn, leaf, &olddata)) != MDB_SUCCESS) -+ if ((rc = mdb_node_read(mc, leaf, &olddata)) != MDB_SUCCESS) - return rc; - dcmp = mc->mc_dbx->md_dcmp; --#if UINT_MAX < SIZE_MAX -- if (dcmp == mdb_cmp_int && olddata.mv_size == sizeof(size_t)) -+ if (NEED_CMP_CLONG(dcmp, olddata.mv_size)) - dcmp = mdb_cmp_clong; --#endif - rc = dcmp(data, &olddata); - if (rc) { - if (op == MDB_GET_BOTH || rc > 0) - return MDB_NOTFOUND; - rc = 0; -- *data = olddata; - } -+ *data = olddata; - - } else { - if (mc->mc_xcursor) - mc->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); -- if ((rc = mdb_node_read(mc->mc_txn, leaf, data)) != MDB_SUCCESS) -+ if ((rc = mdb_node_read(mc, leaf, data)) != MDB_SUCCESS) - return rc; - } - } -@@ -5999,8 +6822,10 @@ mdb_cursor_first(MDB_cursor *mc, MDB_val *key, MDB_val *data) - int rc; - MDB_node *leaf; - -- if (mc->mc_xcursor) -+ if (mc->mc_xcursor) { -+ MDB_CURSOR_UNREF(&mc->mc_xcursor->mx_cursor, 0); - mc->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); -+ } - - if (!(mc->mc_flags & C_INITIALIZED) || mc->mc_top) { - rc = mdb_page_search(mc, NULL, MDB_PS_FIRST); -@@ -6028,7 +6853,7 @@ mdb_cursor_first(MDB_cursor *mc, MDB_val *key, MDB_val *data) - if (rc) - return rc; - } else { -- if ((rc = mdb_node_read(mc->mc_txn, leaf, data)) != MDB_SUCCESS) -+ if ((rc = mdb_node_read(mc, leaf, data)) != MDB_SUCCESS) - return rc; - } - } -@@ -6043,8 +6868,10 @@ mdb_cursor_last(MDB_cursor *mc, MDB_val *key, MDB_val *data) - int rc; - MDB_node *leaf; - -- if (mc->mc_xcursor) -+ if (mc->mc_xcursor) { -+ MDB_CURSOR_UNREF(&mc->mc_xcursor->mx_cursor, 0); - mc->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); -+ } - - if (!(mc->mc_flags & C_EOF)) { - -@@ -6073,7 +6900,7 @@ mdb_cursor_last(MDB_cursor *mc, MDB_val *key, MDB_val *data) - if (rc) - return rc; - } else { -- if ((rc = mdb_node_read(mc->mc_txn, leaf, data)) != MDB_SUCCESS) -+ if ((rc = mdb_node_read(mc, leaf, data)) != MDB_SUCCESS) - return rc; - } - } -@@ -6119,7 +6946,7 @@ mdb_cursor_get(MDB_cursor *mc, MDB_val *key, MDB_val *data, - if (F_ISSET(leaf->mn_flags, F_DUPDATA)) { - rc = mdb_cursor_get(&mc->mc_xcursor->mx_cursor, data, NULL, MDB_GET_CURRENT); - } else { -- rc = mdb_node_read(mc->mc_txn, leaf, data); -+ rc = mdb_node_read(mc, leaf, data); - } - } - } -@@ -6169,10 +6996,7 @@ mdb_cursor_get(MDB_cursor *mc, MDB_val *key, MDB_val *data, - rc = MDB_INCOMPATIBLE; - break; - } -- if (!(mc->mc_flags & C_INITIALIZED)) -- rc = mdb_cursor_first(mc, key, data); -- else -- rc = mdb_cursor_next(mc, key, data, MDB_NEXT_DUP); -+ rc = mdb_cursor_next(mc, key, data, MDB_NEXT_DUP); - if (rc == MDB_SUCCESS) { - if (mc->mc_xcursor->mx_cursor.mc_flags & C_INITIALIZED) { - MDB_cursor *mx; -@@ -6187,24 +7011,38 @@ fetchm: - } - } - break; -+ case MDB_PREV_MULTIPLE: -+ if (data == NULL) { -+ rc = EINVAL; -+ break; -+ } -+ if (!(mc->mc_db->md_flags & MDB_DUPFIXED)) { -+ rc = MDB_INCOMPATIBLE; -+ break; -+ } -+ if (!(mc->mc_flags & C_INITIALIZED)) -+ rc = mdb_cursor_last(mc, key, data); -+ else -+ rc = MDB_SUCCESS; -+ if (rc == MDB_SUCCESS) { -+ MDB_cursor *mx = &mc->mc_xcursor->mx_cursor; -+ if (mx->mc_flags & C_INITIALIZED) { -+ rc = mdb_cursor_sibling(mx, 0); -+ if (rc == MDB_SUCCESS) -+ goto fetchm; -+ } else { -+ rc = MDB_NOTFOUND; -+ } -+ } -+ break; - case MDB_NEXT: - case MDB_NEXT_DUP: - case MDB_NEXT_NODUP: -- if (!(mc->mc_flags & C_INITIALIZED)) -- rc = mdb_cursor_first(mc, key, data); -- else -- rc = mdb_cursor_next(mc, key, data, op); -+ rc = mdb_cursor_next(mc, key, data, op); - break; - case MDB_PREV: - case MDB_PREV_DUP: - case MDB_PREV_NODUP: -- if (!(mc->mc_flags & C_INITIALIZED)) { -- rc = mdb_cursor_last(mc, key, data); -- if (rc) -- break; -- mc->mc_flags |= C_INITIALIZED; -- mc->mc_ki[mc->mc_top]++; -- } - rc = mdb_cursor_prev(mc, key, data, op); - break; - case MDB_FIRST: -@@ -6225,7 +7063,7 @@ fetchm: - MDB_node *leaf = NODEPTR(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top]); - if (!F_ISSET(leaf->mn_flags, F_DUPDATA)) { - MDB_GET_KEY(leaf, key); -- rc = mdb_node_read(mc->mc_txn, leaf, data); -+ rc = mdb_node_read(mc, leaf, data); - break; - } - } -@@ -6487,10 +7325,8 @@ more: - if (flags == MDB_CURRENT) - goto current; - dcmp = mc->mc_dbx->md_dcmp; --#if UINT_MAX < SIZE_MAX -- if (dcmp == mdb_cmp_int && olddata.mv_size == sizeof(size_t)) -+ if (NEED_CMP_CLONG(dcmp, olddata.mv_size)) - dcmp = mdb_cmp_clong; --#endif - /* does data match? */ - if (!dcmp(data, &olddata)) { - if (flags & (MDB_NODUPDATA|MDB_APPENDDUP)) -@@ -6609,7 +7445,7 @@ current: - int level, ovpages, dpages = OVPAGES(data->mv_size, env->me_psize); - - memcpy(&pg, olddata.mv_data, sizeof(pg)); -- if ((rc2 = mdb_page_get(mc->mc_txn, pg, &omp, &level)) != 0) -+ if ((rc2 = mdb_page_get(mc, pg, &omp, &level)) != 0) - return rc2; - ovpages = omp->mp_pages; - -@@ -6641,8 +7477,13 @@ current: - /* Note - this page is already counted in parent's dirty_room */ - rc2 = mdb_mid2l_insert(mc->mc_txn->mt_u.dirty_list, &id2); - mdb_cassert(mc, rc2 == 0); -+ /* Currently we make the page look as with put() in the -+ * parent txn, in case the user peeks at MDB_RESERVEd -+ * or unused parts. Some users treat ovpages specially. -+ */ - if (!(flags & MDB_RESERVE)) { -- /* Copy end of page, adjusting alignment so -+ /* Skip the part where LMDB will put *data. -+ * Copy end of page, adjusting alignment so - * compiler may copy words instead of bytes. - */ - off = (PAGEHDRSZ + data->mv_size) & -sizeof(size_t); -@@ -6728,7 +7569,7 @@ new_sub: - */ - if (do_sub) { - int xflags, new_dupdata; -- size_t ecount; -+ mdb_size_t ecount; - put_sub: - xdata.mv_size = 0; - xdata.mv_data = ""; -@@ -6810,7 +7651,7 @@ put_sub: - return rc; - bad_sub: - if (rc == MDB_KEYEXIST) /* should not happen, we deleted that item */ -- rc = MDB_CORRUPTED; -+ rc = MDB_PROBLEM; - } - mc->mc_txn->mt_flags |= MDB_TXN_ERROR; - return rc; -@@ -6910,7 +7751,7 @@ mdb_cursor_del(MDB_cursor *mc, unsigned int flags) - pgno_t pg; - - memcpy(&pg, NODEDATA(leaf), sizeof(pg)); -- if ((rc = mdb_page_get(mc->mc_txn, pg, &omp, NULL)) || -+ if ((rc = mdb_page_get(mc, pg, &omp, NULL)) || - (rc = mdb_ovpage_free(mc, omp))) - goto fail; - } -@@ -6939,7 +7780,7 @@ mdb_page_new(MDB_cursor *mc, uint32_t flags, int num, MDB_page **mp) - - if ((rc = mdb_page_alloc(mc, num, &np))) - return rc; -- DPRINTF(("allocated new mpage %"Z"u, page size %u", -+ DPRINTF(("allocated new mpage %"Yu", page size %u", - np->mp_pgno, mc->mc_txn->mt_env->me_psize)); - np->mp_flags = flags | P_DIRTY; - np->mp_lower = (PAGEHDRSZ-PAGEBASE); -@@ -7039,7 +7880,7 @@ mdb_node_add(MDB_cursor *mc, indx_t indx, - - mdb_cassert(mc, mp->mp_upper >= mp->mp_lower); - -- DPRINTF(("add to %s %spage %"Z"u index %i, data size %"Z"u key size %"Z"u [%s]", -+ DPRINTF(("add to %s %spage %"Yu" index %i, data size %"Z"u key size %"Z"u [%s]", - IS_LEAF(mp) ? "leaf" : "branch", - IS_SUBP(mp) ? "sub-" : "", - mdb_dbg_pgno(mp), indx, data ? data->mv_size : 0, -@@ -7080,7 +7921,7 @@ mdb_node_add(MDB_cursor *mc, indx_t indx, - goto full; - if ((rc = mdb_page_new(mc, P_OVERFLOW, ovpages, &ofp))) - return rc; -- DPRINTF(("allocated overflow page %"Z"u", ofp->mp_pgno)); -+ DPRINTF(("allocated overflow page %"Yu, ofp->mp_pgno)); - flags |= F_BIGDATA; - goto update; - } else { -@@ -7137,7 +7978,7 @@ update: - return MDB_SUCCESS; - - full: -- DPRINTF(("not enough room in page %"Z"u, got %u ptrs", -+ DPRINTF(("not enough room in page %"Yu", got %u ptrs", - mdb_dbg_pgno(mp), NUMKEYS(mp))); - DPRINTF(("upper-lower = %u - %u = %"Z"d", mp->mp_upper,mp->mp_lower,room)); - DPRINTF(("node size = %"Z"u", node_size)); -@@ -7160,7 +8001,7 @@ mdb_node_del(MDB_cursor *mc, int ksize) - MDB_node *node; - char *base; - -- DPRINTF(("delete node %u on %s page %"Z"u", indx, -+ DPRINTF(("delete node %u on %s page %"Yu, indx, - IS_LEAF(mp) ? "leaf" : "branch", mdb_dbg_pgno(mp))); - numkeys = NUMKEYS(mp); - mdb_cassert(mc, indx < numkeys); -@@ -7269,7 +8110,8 @@ mdb_xcursor_init0(MDB_cursor *mc) - mx->mx_cursor.mc_dbflag = &mx->mx_dbflag; - mx->mx_cursor.mc_snum = 0; - mx->mx_cursor.mc_top = 0; -- mx->mx_cursor.mc_flags = C_SUB; -+ MC_SET_OVPG(&mx->mx_cursor, NULL); -+ mx->mx_cursor.mc_flags = C_SUB | (mc->mc_flags & (C_ORIG_RDONLY|C_WRITEMAP)); - mx->mx_dbx.md_name.mv_size = 0; - mx->mx_dbx.md_name.mv_data = NULL; - mx->mx_dbx.md_cmp = mc->mc_dbx->md_dcmp; -@@ -7288,12 +8130,12 @@ mdb_xcursor_init1(MDB_cursor *mc, MDB_node *node) - { - MDB_xcursor *mx = mc->mc_xcursor; - -+ mx->mx_cursor.mc_flags &= C_SUB|C_ORIG_RDONLY|C_WRITEMAP; - if (node->mn_flags & F_SUBDATA) { - memcpy(&mx->mx_db, NODEDATA(node), sizeof(MDB_db)); - mx->mx_cursor.mc_pg[0] = 0; - mx->mx_cursor.mc_snum = 0; - mx->mx_cursor.mc_top = 0; -- mx->mx_cursor.mc_flags = C_SUB; - } else { - MDB_page *fp = NODEDATA(node); - mx->mx_db.md_pad = 0; -@@ -7306,7 +8148,7 @@ mdb_xcursor_init1(MDB_cursor *mc, MDB_node *node) - COPY_PGNO(mx->mx_db.md_root, fp->mp_pgno); - mx->mx_cursor.mc_snum = 1; - mx->mx_cursor.mc_top = 0; -- mx->mx_cursor.mc_flags = C_INITIALIZED|C_SUB; -+ mx->mx_cursor.mc_flags |= C_INITIALIZED; - mx->mx_cursor.mc_pg[0] = fp; - mx->mx_cursor.mc_ki[0] = 0; - if (mc->mc_db->md_flags & MDB_DUPFIXED) { -@@ -7316,13 +8158,11 @@ mdb_xcursor_init1(MDB_cursor *mc, MDB_node *node) - mx->mx_db.md_flags |= MDB_INTEGERKEY; - } - } -- DPRINTF(("Sub-db -%u root page %"Z"u", mx->mx_cursor.mc_dbi, -+ DPRINTF(("Sub-db -%u root page %"Yu, mx->mx_cursor.mc_dbi, - mx->mx_db.md_root)); - mx->mx_dbflag = DB_VALID|DB_USRVALID|DB_DIRTY; /* DB_DIRTY guides mdb_cursor_touch */ --#if UINT_MAX < SIZE_MAX -- if (mx->mx_dbx.md_cmp == mdb_cmp_int && mx->mx_db.md_pad == sizeof(size_t)) -+ if (NEED_CMP_CLONG(mx->mx_dbx.md_cmp, mx->mx_db.md_pad)) - mx->mx_dbx.md_cmp = mdb_cmp_clong; --#endif - } - - -@@ -7345,7 +8185,7 @@ mdb_xcursor_init2(MDB_cursor *mc, MDB_xcursor *src_mx, int new_dupdata) - mx->mx_cursor.mc_flags |= C_INITIALIZED; - mx->mx_cursor.mc_ki[0] = 0; - mx->mx_dbflag = DB_VALID|DB_USRVALID|DB_DIRTY; /* DB_DIRTY guides mdb_cursor_touch */ --#if UINT_MAX < SIZE_MAX -+#if UINT_MAX < MDB_SIZE_MAX /* matches mdb_xcursor_init1:NEED_CMP_CLONG() */ - mx->mx_dbx.md_cmp = src_mx->mx_dbx.md_cmp; - #endif - } else if (!(mx->mx_cursor.mc_flags & C_INITIALIZED)) { -@@ -7353,7 +8193,7 @@ mdb_xcursor_init2(MDB_cursor *mc, MDB_xcursor *src_mx, int new_dupdata) - } - mx->mx_db = src_mx->mx_db; - mx->mx_cursor.mc_pg[0] = src_mx->mx_cursor.mc_pg[0]; -- DPRINTF(("Sub-db -%u root page %"Z"u", mx->mx_cursor.mc_dbi, -+ DPRINTF(("Sub-db -%u root page %"Yu, mx->mx_cursor.mc_dbi, - mx->mx_db.md_root)); - } - -@@ -7372,7 +8212,8 @@ mdb_cursor_init(MDB_cursor *mc, MDB_txn *txn, MDB_dbi dbi, MDB_xcursor *mx) - mc->mc_top = 0; - mc->mc_pg[0] = 0; - mc->mc_ki[0] = 0; -- mc->mc_flags = 0; -+ MC_SET_OVPG(mc, NULL); -+ mc->mc_flags = txn->mt_flags & (C_ORIG_RDONLY|C_WRITEMAP); - if (txn->mt_dbs[dbi].md_flags & MDB_DUPSORT) { - mdb_tassert(txn, mx != NULL); - mc->mc_xcursor = mx; -@@ -7437,7 +8278,7 @@ mdb_cursor_renew(MDB_txn *txn, MDB_cursor *mc) - - /* Return the count of duplicate data items for the current key */ - int --mdb_cursor_count(MDB_cursor *mc, size_t *countp) -+mdb_cursor_count(MDB_cursor *mc, mdb_size_t *countp) - { - MDB_node *leaf; - -@@ -7471,6 +8312,9 @@ mdb_cursor_count(MDB_cursor *mc, size_t *countp) - void - mdb_cursor_close(MDB_cursor *mc) - { -+ if (mc) { -+ MDB_CURSOR_UNREF(mc, 0); -+ } - if (mc && !mc->mc_backup) { - /* remove from txn, if tracked */ - if ((mc->mc_flags & C_UNTRACK) && mc->mc_txn->mt_cursors) { -@@ -7522,7 +8366,7 @@ mdb_update_key(MDB_cursor *mc, MDB_val *key) - char kbuf2[DKBUF_MAXKEYSIZE*2+1]; - k2.mv_data = NODEKEY(node); - k2.mv_size = node->mn_ksize; -- DPRINTF(("update key %u (ofs %u) [%s] to [%s] on page %"Z"u", -+ DPRINTF(("update key %u (ofs %u) [%s] to [%s] on page %"Yu, - indx, ptr, - mdb_dkey(&k2, kbuf2), - DKEY(key), -@@ -7670,7 +8514,7 @@ mdb_node_move(MDB_cursor *csrc, MDB_cursor *cdst, int fromleft) - return rc; - } - -- DPRINTF(("moving %s node %u [%s] on page %"Z"u to node %u on page %"Z"u", -+ DPRINTF(("moving %s node %u [%s] on page %"Yu" to node %u on page %"Yu, - IS_LEAF(csrc->mc_pg[csrc->mc_top]) ? "leaf" : "branch", - csrc->mc_ki[csrc->mc_top], - DKEY(&key), -@@ -7764,7 +8608,7 @@ mdb_node_move(MDB_cursor *csrc, MDB_cursor *cdst, int fromleft) - key.mv_size = NODEKSZ(srcnode); - key.mv_data = NODEKEY(srcnode); - } -- DPRINTF(("update separator for source page %"Z"u to [%s]", -+ DPRINTF(("update separator for source page %"Yu" to [%s]", - csrc->mc_pg[csrc->mc_top]->mp_pgno, DKEY(&key))); - mdb_cursor_copy(csrc, &mn); - mn.mc_snum--; -@@ -7795,7 +8639,7 @@ mdb_node_move(MDB_cursor *csrc, MDB_cursor *cdst, int fromleft) - key.mv_size = NODEKSZ(srcnode); - key.mv_data = NODEKEY(srcnode); - } -- DPRINTF(("update separator for destination page %"Z"u to [%s]", -+ DPRINTF(("update separator for destination page %"Yu" to [%s]", - cdst->mc_pg[cdst->mc_top]->mp_pgno, DKEY(&key))); - mdb_cursor_copy(cdst, &mn); - mn.mc_snum--; -@@ -7841,7 +8685,7 @@ mdb_page_merge(MDB_cursor *csrc, MDB_cursor *cdst) - psrc = csrc->mc_pg[csrc->mc_top]; - pdst = cdst->mc_pg[cdst->mc_top]; - -- DPRINTF(("merging page %"Z"u into %"Z"u", psrc->mp_pgno, pdst->mp_pgno)); -+ DPRINTF(("merging page %"Yu" into %"Yu, psrc->mp_pgno, pdst->mp_pgno)); - - mdb_cassert(csrc, csrc->mc_snum > 1); /* can't merge root page */ - mdb_cassert(csrc, cdst->mc_snum > 1); -@@ -7898,7 +8742,7 @@ mdb_page_merge(MDB_cursor *csrc, MDB_cursor *cdst) - } - } - -- DPRINTF(("dst page %"Z"u now has %u keys (%.1f%% filled)", -+ DPRINTF(("dst page %"Yu" now has %u keys (%.1f%% filled)", - pdst->mp_pgno, NUMKEYS(pdst), - (float)PAGEFILL(cdst->mc_txn->mt_env, pdst) / 10)); - -@@ -7986,6 +8830,7 @@ mdb_cursor_copy(const MDB_cursor *csrc, MDB_cursor *cdst) - cdst->mc_snum = csrc->mc_snum; - cdst->mc_top = csrc->mc_top; - cdst->mc_flags = csrc->mc_flags; -+ MC_SET_OVPG(cdst, MC_OVPG(csrc)); - - for (i=0; imc_snum; i++) { - cdst->mc_pg[i] = csrc->mc_pg[i]; -@@ -8014,14 +8859,14 @@ mdb_rebalance(MDB_cursor *mc) - minkeys = 1; - thresh = FILL_THRESHOLD; - } -- DPRINTF(("rebalancing %s page %"Z"u (has %u keys, %.1f%% full)", -+ DPRINTF(("rebalancing %s page %"Yu" (has %u keys, %.1f%% full)", - IS_LEAF(mc->mc_pg[mc->mc_top]) ? "leaf" : "branch", - mdb_dbg_pgno(mc->mc_pg[mc->mc_top]), NUMKEYS(mc->mc_pg[mc->mc_top]), - (float)PAGEFILL(mc->mc_txn->mt_env, mc->mc_pg[mc->mc_top]) / 10)); - - if (PAGEFILL(mc->mc_txn->mt_env, mc->mc_pg[mc->mc_top]) >= thresh && - NUMKEYS(mc->mc_pg[mc->mc_top]) >= minkeys) { -- DPRINTF(("no need to rebalance page %"Z"u, above fill threshold", -+ DPRINTF(("no need to rebalance page %"Yu", above fill threshold", - mdb_dbg_pgno(mc->mc_pg[mc->mc_top]))); - return MDB_SUCCESS; - } -@@ -8069,7 +8914,7 @@ mdb_rebalance(MDB_cursor *mc) - if (rc) - return rc; - mc->mc_db->md_root = NODEPGNO(NODEPTR(mp, 0)); -- rc = mdb_page_get(mc->mc_txn,mc->mc_db->md_root,&mc->mc_pg[0],NULL); -+ rc = mdb_page_get(mc, mc->mc_db->md_root, &mc->mc_pg[0], NULL); - if (rc) - return rc; - mc->mc_db->md_depth--; -@@ -8130,7 +8975,7 @@ mdb_rebalance(MDB_cursor *mc) - DPUTS("reading right neighbor"); - mn.mc_ki[ptop]++; - node = NODEPTR(mc->mc_pg[ptop], mn.mc_ki[ptop]); -- rc = mdb_page_get(mc->mc_txn,NODEPGNO(node),&mn.mc_pg[mn.mc_top],NULL); -+ rc = mdb_page_get(mc, NODEPGNO(node), &mn.mc_pg[mn.mc_top], NULL); - if (rc) - return rc; - mn.mc_ki[mn.mc_top] = 0; -@@ -8142,7 +8987,7 @@ mdb_rebalance(MDB_cursor *mc) - DPUTS("reading left neighbor"); - mn.mc_ki[ptop]--; - node = NODEPTR(mc->mc_pg[ptop], mn.mc_ki[ptop]); -- rc = mdb_page_get(mc->mc_txn,NODEPGNO(node),&mn.mc_pg[mn.mc_top],NULL); -+ rc = mdb_page_get(mc, NODEPGNO(node), &mn.mc_pg[mn.mc_top], NULL); - if (rc) - return rc; - mn.mc_ki[mn.mc_top] = NUMKEYS(mn.mc_pg[mn.mc_top]) - 1; -@@ -8150,7 +8995,7 @@ mdb_rebalance(MDB_cursor *mc) - fromleft = 1; - } - -- DPRINTF(("found neighbor page %"Z"u (%u keys, %.1f%% full)", -+ DPRINTF(("found neighbor page %"Yu" (%u keys, %.1f%% full)", - mn.mc_pg[mn.mc_top]->mp_pgno, NUMKEYS(mn.mc_pg[mn.mc_top]), - (float)PAGEFILL(mc->mc_txn->mt_env, mn.mc_pg[mn.mc_top]) / 10)); - -@@ -8207,8 +9052,6 @@ mdb_cursor_del0(MDB_cursor *mc) - if (m3->mc_pg[mc->mc_top] == mp) { - if (m3->mc_ki[mc->mc_top] == ki) { - m3->mc_flags |= C_DEL; -- if (mc->mc_db->md_flags & MDB_DUPSORT) -- m3->mc_xcursor->mx_cursor.mc_flags &= ~C_INITIALIZED; - } else if (m3->mc_ki[mc->mc_top] > ki) { - m3->mc_ki[mc->mc_top]--; - } -@@ -8242,11 +9085,21 @@ mdb_cursor_del0(MDB_cursor *mc) - continue; - if (m3->mc_pg[mc->mc_top] == mp) { - /* if m3 points past last node in page, find next sibling */ -- if (m3->mc_ki[mc->mc_top] >= nkeys) { -- rc = mdb_cursor_sibling(m3, 1); -- if (rc == MDB_NOTFOUND) { -- m3->mc_flags |= C_EOF; -- rc = MDB_SUCCESS; -+ if (m3->mc_ki[mc->mc_top] >= mc->mc_ki[mc->mc_top]) { -+ if (m3->mc_ki[mc->mc_top] >= nkeys) { -+ rc = mdb_cursor_sibling(m3, 1); -+ if (rc == MDB_NOTFOUND) { -+ m3->mc_flags |= C_EOF; -+ rc = MDB_SUCCESS; -+ continue; -+ } -+ } -+ if (mc->mc_db->md_flags & MDB_DUPSORT) { -+ MDB_node *node = NODEPTR(m3->mc_pg[m3->mc_top], m3->mc_ki[m3->mc_top]); -+ if (node->mn_flags & F_DUPDATA) { -+ mdb_xcursor_init1(m3, node); -+ m3->mc_xcursor->mx_cursor.mc_flags |= C_DEL; -+ } - } - } - } -@@ -8352,7 +9205,7 @@ mdb_page_split(MDB_cursor *mc, MDB_val *newkey, MDB_val *newdata, pgno_t newpgno - newindx = mc->mc_ki[mc->mc_top]; - nkeys = NUMKEYS(mp); - -- DPRINTF(("-----> splitting %s page %"Z"u and adding [%s] at index %i/%i", -+ DPRINTF(("-----> splitting %s page %"Yu" and adding [%s] at index %i/%i", - IS_LEAF(mp) ? "leaf" : "branch", mp->mp_pgno, - DKEY(newkey), mc->mc_ki[mc->mc_top], nkeys)); - -@@ -8360,7 +9213,7 @@ mdb_page_split(MDB_cursor *mc, MDB_val *newkey, MDB_val *newdata, pgno_t newpgno - if ((rc = mdb_page_new(mc, mp->mp_flags, 1, &rp))) - return rc; - rp->mp_pad = mp->mp_pad; -- DPRINTF(("new right sibling: page %"Z"u", rp->mp_pgno)); -+ DPRINTF(("new right sibling: page %"Yu, rp->mp_pgno)); - - /* Usually when splitting the root page, the cursor - * height is 1. But when called from mdb_update_key, -@@ -8378,7 +9231,7 @@ mdb_page_split(MDB_cursor *mc, MDB_val *newkey, MDB_val *newdata, pgno_t newpgno - mc->mc_pg[0] = pp; - mc->mc_ki[0] = 0; - mc->mc_db->md_root = pp->mp_pgno; -- DPRINTF(("root split! new root = %"Z"u", pp->mp_pgno)); -+ DPRINTF(("root split! new root = %"Yu, pp->mp_pgno)); - new_root = mc->mc_db->md_depth++; - - /* Add left (implicit) pointer. */ -@@ -8395,7 +9248,7 @@ mdb_page_split(MDB_cursor *mc, MDB_val *newkey, MDB_val *newdata, pgno_t newpgno - ptop = 0; - } else { - ptop = mc->mc_top-1; -- DPRINTF(("parent branch page is %"Z"u", mc->mc_pg[ptop]->mp_pgno)); -+ DPRINTF(("parent branch page is %"Yu, mc->mc_pg[ptop]->mp_pgno)); - } - - mdb_cursor_copy(mc, &mn); -@@ -8776,11 +9629,12 @@ mdb_put(MDB_txn *txn, MDB_dbi dbi, - #ifndef MDB_WBUF - #define MDB_WBUF (1024*1024) - #endif -+#define MDB_EOF 0x10 /**< #mdb_env_copyfd1() is done reading */ - -- /** State needed for a compacting copy. */ -+ /** State needed for a double-buffering compacting copy. */ - typedef struct mdb_copy { - pthread_mutex_t mc_mutex; -- pthread_cond_t mc_cond; -+ pthread_cond_t mc_cond; /**< Condition variable for #mc_new */ - char *mc_wbuf[2]; - char *mc_over[2]; - MDB_env *mc_env; -@@ -8789,10 +9643,9 @@ typedef struct mdb_copy { - int mc_olen[2]; - pgno_t mc_next_pgno; - HANDLE mc_fd; -- int mc_status; -- volatile int mc_new; -- int mc_toggle; -- -+ int mc_toggle; /**< Buffer number in provider */ -+ int mc_new; /**< (0-2 buffers to write) | (#MDB_EOF at end) */ -+ volatile int mc_error; /**< Error code, never cleared if set */ - } mdb_copy; - - /** Dedicated writer thread for compacting copy. */ -@@ -8811,20 +9664,16 @@ mdb_env_copythr(void *arg) - #endif - - pthread_mutex_lock(&my->mc_mutex); -- my->mc_new = 0; -- pthread_cond_signal(&my->mc_cond); - for(;;) { - while (!my->mc_new) - pthread_cond_wait(&my->mc_cond, &my->mc_mutex); -- if (my->mc_new < 0) { -- my->mc_new = 0; -+ if (my->mc_new == 0 + MDB_EOF) /* 0 buffers, just EOF */ - break; -- } -- my->mc_new = 0; - wsize = my->mc_wlen[toggle]; - ptr = my->mc_wbuf[toggle]; - again: -- while (wsize > 0) { -+ rc = MDB_SUCCESS; -+ while (wsize > 0 && !my->mc_error) { - DO_WRITE(rc, my->mc_fd, ptr, wsize, len); - if (!rc) { - rc = ErrCode(); -@@ -8840,8 +9689,7 @@ again: - } - } - if (rc) { -- my->mc_status = rc; -- break; -+ my->mc_error = rc; - } - /* If there's an overflow page tail, write it too */ - if (my->mc_olen[toggle]) { -@@ -8852,39 +9700,41 @@ again: - } - my->mc_wlen[toggle] = 0; - toggle ^= 1; -+ /* Return the empty buffer to provider */ -+ my->mc_new--; - pthread_cond_signal(&my->mc_cond); - } -- pthread_cond_signal(&my->mc_cond); - pthread_mutex_unlock(&my->mc_mutex); - return (THREAD_RET)0; - #undef DO_WRITE - } - -- /** Tell the writer thread there's a buffer ready to write */ -+ /** Give buffer and/or #MDB_EOF to writer thread, await unused buffer. -+ * -+ * @param[in] my control structure. -+ * @param[in] adjust (1 to hand off 1 buffer) | (MDB_EOF when ending). -+ */ - static int ESECT --mdb_env_cthr_toggle(mdb_copy *my, int st) -+mdb_env_cthr_toggle(mdb_copy *my, int adjust) - { -- int toggle = my->mc_toggle ^ 1; - pthread_mutex_lock(&my->mc_mutex); -- if (my->mc_status) { -- pthread_mutex_unlock(&my->mc_mutex); -- return my->mc_status; -- } -- while (my->mc_new == 1) -- pthread_cond_wait(&my->mc_cond, &my->mc_mutex); -- my->mc_new = st; -- my->mc_toggle = toggle; -+ my->mc_new += adjust; - pthread_cond_signal(&my->mc_cond); -+ while (my->mc_new & 2) /* both buffers in use */ -+ pthread_cond_wait(&my->mc_cond, &my->mc_mutex); - pthread_mutex_unlock(&my->mc_mutex); -- return 0; -+ -+ my->mc_toggle ^= (adjust & 1); -+ /* Both threads reset mc_wlen, to be safe from threading errors */ -+ my->mc_wlen[my->mc_toggle] = 0; -+ return my->mc_error; - } - - /** Depth-first tree traversal for compacting copy. */ - static int ESECT - mdb_env_cwalk(mdb_copy *my, pgno_t *pg, int flags) - { -- MDB_cursor mc; -- MDB_txn *txn = my->mc_txn; -+ MDB_cursor mc = {0}; - MDB_node *ni; - MDB_page *mo, *mp, *leaf; - char *buf, *ptr; -@@ -8896,10 +9746,10 @@ mdb_env_cwalk(mdb_copy *my, pgno_t *pg, int flags) - return MDB_SUCCESS; - - mc.mc_snum = 1; -- mc.mc_top = 0; -- mc.mc_txn = txn; -+ mc.mc_txn = my->mc_txn; -+ mc.mc_flags = my->mc_txn->mt_flags & (C_ORIG_RDONLY|C_WRITEMAP); - -- rc = mdb_page_get(my->mc_txn, *pg, &mc.mc_pg[0], NULL); -+ rc = mdb_page_get(&mc, *pg, &mc.mc_pg[0], NULL); - if (rc) - return rc; - rc = mdb_page_search_root(&mc, NULL, MDB_PS_FIRST); -@@ -8943,7 +9793,8 @@ mdb_env_cwalk(mdb_copy *my, pgno_t *pg, int flags) - } - - memcpy(&pg, NODEDATA(ni), sizeof(pg)); -- rc = mdb_page_get(txn, pg, &omp, NULL); -+ memcpy(NODEDATA(ni), &my->mc_next_pgno, sizeof(pgno_t)); -+ rc = mdb_page_get(&mc, pg, &omp, NULL); - if (rc) - goto done; - if (my->mc_wlen[toggle] >= MDB_WBUF) { -@@ -8965,7 +9816,6 @@ mdb_env_cwalk(mdb_copy *my, pgno_t *pg, int flags) - goto done; - toggle = my->mc_toggle; - } -- memcpy(NODEDATA(ni), &mo->mp_pgno, sizeof(pgno_t)); - } else if (ni->mn_flags & F_SUBDATA) { - MDB_db db; - -@@ -8994,7 +9844,7 @@ mdb_env_cwalk(mdb_copy *my, pgno_t *pg, int flags) - again: - ni = NODEPTR(mp, mc.mc_ki[mc.mc_top]); - pg = NODEPGNO(ni); -- rc = mdb_page_get(txn, pg, &mp, NULL); -+ rc = mdb_page_get(&mc, pg, &mp, NULL); - if (rc) - goto done; - mc.mc_top++; -@@ -9043,47 +9893,56 @@ mdb_env_copyfd1(MDB_env *env, HANDLE fd) - { - MDB_meta *mm; - MDB_page *mp; -- mdb_copy my; -+ mdb_copy my = {0}; - MDB_txn *txn = NULL; - pthread_t thr; -- int rc; -+ pgno_t root, new_root; -+ int rc = MDB_SUCCESS; - - #ifdef _WIN32 -- my.mc_mutex = CreateMutex(NULL, FALSE, NULL); -- my.mc_cond = CreateEvent(NULL, FALSE, FALSE, NULL); -+ if (!(my.mc_mutex = CreateMutex(NULL, FALSE, NULL)) || -+ !(my.mc_cond = CreateEvent(NULL, FALSE, FALSE, NULL))) { -+ rc = ErrCode(); -+ goto done; -+ } - my.mc_wbuf[0] = _aligned_malloc(MDB_WBUF*2, env->me_os_psize); -- if (my.mc_wbuf[0] == NULL) -- return errno; -+ if (my.mc_wbuf[0] == NULL) { -+ /* _aligned_malloc() sets errno, but we use Windows error codes */ -+ rc = ERROR_NOT_ENOUGH_MEMORY; -+ goto done; -+ } - #else -- pthread_mutex_init(&my.mc_mutex, NULL); -- pthread_cond_init(&my.mc_cond, NULL); -+ if ((rc = pthread_mutex_init(&my.mc_mutex, NULL)) != 0) -+ return rc; -+ if ((rc = pthread_cond_init(&my.mc_cond, NULL)) != 0) -+ goto done2; - #ifdef HAVE_MEMALIGN - my.mc_wbuf[0] = memalign(env->me_os_psize, MDB_WBUF*2); -- if (my.mc_wbuf[0] == NULL) -- return errno; -+ if (my.mc_wbuf[0] == NULL) { -+ rc = errno; -+ goto done; -+ } - #else -- rc = posix_memalign((void **)&my.mc_wbuf[0], env->me_os_psize, MDB_WBUF*2); -- if (rc) -- return rc; -+ { -+ void *p; -+ if ((rc = posix_memalign(&p, env->me_os_psize, MDB_WBUF*2)) != 0) -+ goto done; -+ my.mc_wbuf[0] = p; -+ } - #endif - #endif - memset(my.mc_wbuf[0], 0, MDB_WBUF*2); - my.mc_wbuf[1] = my.mc_wbuf[0] + MDB_WBUF; -- my.mc_wlen[0] = 0; -- my.mc_wlen[1] = 0; -- my.mc_olen[0] = 0; -- my.mc_olen[1] = 0; - my.mc_next_pgno = NUM_METAS; -- my.mc_status = 0; -- my.mc_new = 1; -- my.mc_toggle = 0; - my.mc_env = env; - my.mc_fd = fd; -- THREAD_CREATE(thr, mdb_env_copythr, &my); -+ rc = THREAD_CREATE(thr, mdb_env_copythr, &my); -+ if (rc) -+ goto done; - - rc = mdb_txn_begin(env, NULL, MDB_RDONLY, &txn); - if (rc) -- return rc; -+ goto finish; - - mp = (MDB_page *)my.mc_wbuf[0]; - memset(mp, 0, NUM_METAS * env->me_psize); -@@ -9099,57 +9958,64 @@ mdb_env_copyfd1(MDB_env *env, HANDLE fd) - *(MDB_meta *)METADATA(mp) = *mm; - mm = (MDB_meta *)METADATA(mp); - -- /* Count the number of free pages, subtract from lastpg to find -- * number of active pages -- */ -- { -+ /* Set metapage 1 with current main DB */ -+ root = new_root = txn->mt_dbs[MAIN_DBI].md_root; -+ if (root != P_INVALID) { -+ /* Count free pages + freeDB pages. Subtract from last_pg -+ * to find the new last_pg, which also becomes the new root. -+ */ - MDB_ID freecount = 0; - MDB_cursor mc; - MDB_val key, data; - mdb_cursor_init(&mc, txn, FREE_DBI, NULL); - while ((rc = mdb_cursor_get(&mc, &key, &data, MDB_NEXT)) == 0) - freecount += *(MDB_ID *)data.mv_data; -+ if (rc != MDB_NOTFOUND) -+ goto finish; - freecount += txn->mt_dbs[FREE_DBI].md_branch_pages + - txn->mt_dbs[FREE_DBI].md_leaf_pages + - txn->mt_dbs[FREE_DBI].md_overflow_pages; - -- /* Set metapage 1 */ -- mm->mm_last_pg = txn->mt_next_pgno - freecount - 1; -+ new_root = txn->mt_next_pgno - 1 - freecount; -+ mm->mm_last_pg = new_root; - mm->mm_dbs[MAIN_DBI] = txn->mt_dbs[MAIN_DBI]; -- if (mm->mm_last_pg > NUM_METAS-1) { -- mm->mm_dbs[MAIN_DBI].md_root = mm->mm_last_pg; -- mm->mm_txnid = 1; -- } else { -- mm->mm_dbs[MAIN_DBI].md_root = P_INVALID; -- } -+ mm->mm_dbs[MAIN_DBI].md_root = new_root; -+ } else { -+ /* When the DB is empty, handle it specially to -+ * fix any breakage like page leaks from ITS#8174. -+ */ -+ mm->mm_dbs[MAIN_DBI].md_flags = txn->mt_dbs[MAIN_DBI].md_flags; -+ } -+ if (root != P_INVALID || mm->mm_dbs[MAIN_DBI].md_flags) { -+ mm->mm_txnid = 1; /* use metapage 1 */ - } -+ - my.mc_wlen[0] = env->me_psize * NUM_METAS; - my.mc_txn = txn; -- pthread_mutex_lock(&my.mc_mutex); -- while(my.mc_new) -- pthread_cond_wait(&my.mc_cond, &my.mc_mutex); -- pthread_mutex_unlock(&my.mc_mutex); -- rc = mdb_env_cwalk(&my, &txn->mt_dbs[MAIN_DBI].md_root, 0); -- if (rc == MDB_SUCCESS && my.mc_wlen[my.mc_toggle]) -- rc = mdb_env_cthr_toggle(&my, 1); -- mdb_env_cthr_toggle(&my, -1); -- pthread_mutex_lock(&my.mc_mutex); -- while(my.mc_new) -- pthread_cond_wait(&my.mc_cond, &my.mc_mutex); -- pthread_mutex_unlock(&my.mc_mutex); -- THREAD_FINISH(thr); -+ rc = mdb_env_cwalk(&my, &root, 0); -+ if (rc == MDB_SUCCESS && root != new_root) { -+ rc = MDB_INCOMPATIBLE; /* page leak or corrupt DB */ -+ } - -+finish: -+ if (rc) -+ my.mc_error = rc; -+ mdb_env_cthr_toggle(&my, 1 | MDB_EOF); -+ rc = THREAD_FINISH(thr); - mdb_txn_abort(txn); -+ -+done: - #ifdef _WIN32 -- CloseHandle(my.mc_cond); -- CloseHandle(my.mc_mutex); -- _aligned_free(my.mc_wbuf[0]); -+ if (my.mc_wbuf[0]) _aligned_free(my.mc_wbuf[0]); -+ if (my.mc_cond) CloseHandle(my.mc_cond); -+ if (my.mc_mutex) CloseHandle(my.mc_mutex); - #else -+ free(my.mc_wbuf[0]); - pthread_cond_destroy(&my.mc_cond); -+done2: - pthread_mutex_destroy(&my.mc_mutex); -- free(my.mc_wbuf[0]); - #endif -- return rc; -+ return rc ? rc : my.mc_error; - } - - /** Copy environment as-is. */ -@@ -9159,7 +10025,7 @@ mdb_env_copyfd0(MDB_env *env, HANDLE fd) - MDB_txn *txn = NULL; - mdb_mutexref_t wmutex = NULL; - int rc; -- size_t wsize, w3; -+ mdb_size_t wsize, w3; - char *ptr; - #ifdef _WIN32 - DWORD len, w2; -@@ -9220,7 +10086,7 @@ mdb_env_copyfd0(MDB_env *env, HANDLE fd) - - w3 = txn->mt_next_pgno * env->me_psize; - { -- size_t fsize = 0; -+ mdb_size_t fsize = 0; - if ((rc = mdb_fsize(env->me_fd, &fsize))) - goto leave; - if (w3 > fsize) -@@ -9659,11 +10525,19 @@ mdb_drop0(MDB_cursor *mc, int subs) - - /* DUPSORT sub-DBs have no ovpages/DBs. Omit scanning leaves. - * This also avoids any P_LEAF2 pages, which have no nodes. -+ * Also if the DB doesn't have sub-DBs and has no overflow -+ * pages, omit scanning leaves. - */ -- if (mc->mc_flags & C_SUB) -+ if ((mc->mc_flags & C_SUB) || -+ (!subs && !mc->mc_db->md_overflow_pages)) - mdb_cursor_pop(mc); - - mdb_cursor_copy(mc, &mx); -+#ifdef MDB_VL32 -+ /* bump refcount for mx's pages */ -+ for (i=0; imc_snum; i++) -+ mdb_page_get(&mx, mc->mc_pg[i]->mp_pgno, &mx.mc_pg[i], NULL); -+#endif - while (mc->mc_snum > 0) { - MDB_page *mp = mc->mc_pg[mc->mc_top]; - unsigned n = NUMKEYS(mp); -@@ -9674,7 +10548,7 @@ mdb_drop0(MDB_cursor *mc, int subs) - MDB_page *omp; - pgno_t pg; - memcpy(&pg, NODEDATA(ni), sizeof(pg)); -- rc = mdb_page_get(txn, pg, &omp, NULL); -+ rc = mdb_page_get(mc, pg, &omp, NULL); - if (rc != 0) - goto done; - mdb_cassert(mc, IS_OVERFLOW(omp)); -@@ -9682,6 +10556,9 @@ mdb_drop0(MDB_cursor *mc, int subs) - pg, omp->mp_pages); - if (rc) - goto done; -+ mc->mc_db->md_overflow_pages -= omp->mp_pages; -+ if (!mc->mc_db->md_overflow_pages && !subs) -+ break; - } else if (subs && (ni->mn_flags & F_SUBDATA)) { - mdb_xcursor_init1(mc, ni); - rc = mdb_drop0(&mc->mc_xcursor->mx_cursor, 0); -@@ -9689,6 +10566,8 @@ mdb_drop0(MDB_cursor *mc, int subs) - goto done; - } - } -+ if (!subs && !mc->mc_db->md_overflow_pages) -+ goto pop; - } else { - if ((rc = mdb_midl_need(&txn->mt_free_pgs, n)) != 0) - goto done; -@@ -9710,6 +10589,7 @@ mdb_drop0(MDB_cursor *mc, int subs) - /* no more siblings, go back to beginning - * of previous level. - */ -+pop: - mdb_cursor_pop(mc); - mc->mc_ki[0] = 0; - for (i=1; imc_snum; i++) { -@@ -9723,6 +10603,8 @@ mdb_drop0(MDB_cursor *mc, int subs) - done: - if (rc) - txn->mt_flags |= MDB_TXN_ERROR; -+ /* drop refcount for mx's pages */ -+ MDB_CURSOR_UNREF(&mx, 0); - } else if (rc == MDB_NOTFOUND) { - rc = MDB_SUCCESS; - } -@@ -9842,7 +10724,7 @@ mdb_reader_list(MDB_env *env, MDB_msg_func *func, void *ctx) - if (mr[i].mr_pid) { - txnid_t txnid = mr[i].mr_txnid; - sprintf(buf, txnid == (txnid_t)-1 ? -- "%10d %"Z"x -\n" : "%10d %"Z"x %"Z"u\n", -+ "%10d %"Z"x -\n" : "%10d %"Z"x %"Yu"\n", - (int)mr[i].mr_pid, (size_t)mr[i].mr_tid, txnid); - if (first) { - first = 0; -@@ -9947,7 +10829,7 @@ mdb_reader_check0(MDB_env *env, int rlocked, int *dead) - } - for (; j - #include "lmdb.h" - --#ifdef _WIN32 --#define Z "I" --#else --#define Z "z" --#endif -+#define Yu MDB_PRIy(u) - - #define PRINT 1 - static int mode; -@@ -115,7 +111,7 @@ static int dumpit(MDB_txn *txn, MDB_dbi dbi, char *name) - if (name) - printf("database=%s\n", name); - printf("type=btree\n"); -- printf("mapsize=%" Z "u\n", info.me_mapsize); -+ printf("mapsize=%"Yu"\n", info.me_mapsize); - if (info.me_mapaddr) - printf("mapaddr=%p\n", info.me_mapaddr); - printf("maxreaders=%u\n", info.me_maxreaders); -diff --git a/libraries/liblmdb/mdb_load.c b/libraries/liblmdb/mdb_load.c -index 053cc88..73dfe8c 100644 ---- a/libraries/liblmdb/mdb_load.c -+++ b/libraries/liblmdb/mdb_load.c -@@ -25,7 +25,7 @@ static int mode; - - static char *subname = NULL; - --static size_t lineno; -+static mdb_size_t lineno; - static int version; - - static int flags; -@@ -38,11 +38,7 @@ static MDB_envinfo info; - - static MDB_val kbuf, dbuf; - --#ifdef _WIN32 --#define Z "I" --#else --#define Z "z" --#endif -+#define Yu MDB_PRIy(u) - - #define STRLENOF(s) (sizeof(s)-1) - -@@ -73,7 +69,7 @@ static void readhdr(void) - if (!strncmp(dbuf.mv_data, "VERSION=", STRLENOF("VERSION="))) { - version=atoi((char *)dbuf.mv_data+STRLENOF("VERSION=")); - if (version > 3) { -- fprintf(stderr, "%s: line %" Z "d: unsupported VERSION %d\n", -+ fprintf(stderr, "%s: line %"Yu": unsupported VERSION %d\n", - prog, lineno, version); - exit(EXIT_FAILURE); - } -@@ -83,7 +79,7 @@ static void readhdr(void) - if (!strncmp((char *)dbuf.mv_data+STRLENOF("FORMAT="), "print", STRLENOF("print"))) - mode |= PRINT; - else if (strncmp((char *)dbuf.mv_data+STRLENOF("FORMAT="), "bytevalue", STRLENOF("bytevalue"))) { -- fprintf(stderr, "%s: line %" Z "d: unsupported FORMAT %s\n", -+ fprintf(stderr, "%s: line %"Yu": unsupported FORMAT %s\n", - prog, lineno, (char *)dbuf.mv_data+STRLENOF("FORMAT=")); - exit(EXIT_FAILURE); - } -@@ -94,7 +90,7 @@ static void readhdr(void) - subname = strdup((char *)dbuf.mv_data+STRLENOF("database=")); - } else if (!strncmp(dbuf.mv_data, "type=", STRLENOF("type="))) { - if (strncmp((char *)dbuf.mv_data+STRLENOF("type="), "btree", STRLENOF("btree"))) { -- fprintf(stderr, "%s: line %" Z "d: unsupported type %s\n", -+ fprintf(stderr, "%s: line %"Yu": unsupported type %s\n", - prog, lineno, (char *)dbuf.mv_data+STRLENOF("type=")); - exit(EXIT_FAILURE); - } -@@ -104,7 +100,7 @@ static void readhdr(void) - if (ptr) *ptr = '\0'; - i = sscanf((char *)dbuf.mv_data+STRLENOF("mapaddr="), "%p", &info.me_mapaddr); - if (i != 1) { -- fprintf(stderr, "%s: line %" Z "d: invalid mapaddr %s\n", -+ fprintf(stderr, "%s: line %"Yu": invalid mapaddr %s\n", - prog, lineno, (char *)dbuf.mv_data+STRLENOF("mapaddr=")); - exit(EXIT_FAILURE); - } -@@ -112,9 +108,10 @@ static void readhdr(void) - int i; - ptr = memchr(dbuf.mv_data, '\n', dbuf.mv_size); - if (ptr) *ptr = '\0'; -- i = sscanf((char *)dbuf.mv_data+STRLENOF("mapsize="), "%" Z "u", &info.me_mapsize); -+ i = sscanf((char *)dbuf.mv_data+STRLENOF("mapsize="), -+ "%" MDB_SCNy(u), &info.me_mapsize); - if (i != 1) { -- fprintf(stderr, "%s: line %" Z "d: invalid mapsize %s\n", -+ fprintf(stderr, "%s: line %"Yu": invalid mapsize %s\n", - prog, lineno, (char *)dbuf.mv_data+STRLENOF("mapsize=")); - exit(EXIT_FAILURE); - } -@@ -124,7 +121,7 @@ static void readhdr(void) - if (ptr) *ptr = '\0'; - i = sscanf((char *)dbuf.mv_data+STRLENOF("maxreaders="), "%u", &info.me_maxreaders); - if (i != 1) { -- fprintf(stderr, "%s: line %" Z "d: invalid maxreaders %s\n", -+ fprintf(stderr, "%s: line %"Yu": invalid maxreaders %s\n", - prog, lineno, (char *)dbuf.mv_data+STRLENOF("maxreaders=")); - exit(EXIT_FAILURE); - } -@@ -140,12 +137,12 @@ static void readhdr(void) - if (!dbflags[i].bit) { - ptr = memchr(dbuf.mv_data, '=', dbuf.mv_size); - if (!ptr) { -- fprintf(stderr, "%s: line %" Z "d: unexpected format\n", -+ fprintf(stderr, "%s: line %"Yu": unexpected format\n", - prog, lineno); - exit(EXIT_FAILURE); - } else { - *ptr = '\0'; -- fprintf(stderr, "%s: line %" Z "d: unrecognized keyword ignored: %s\n", -+ fprintf(stderr, "%s: line %"Yu": unrecognized keyword ignored: %s\n", - prog, lineno, (char *)dbuf.mv_data); - } - } -@@ -155,7 +152,7 @@ static void readhdr(void) - - static void badend(void) - { -- fprintf(stderr, "%s: line %" Z "d: unexpected end of input\n", -+ fprintf(stderr, "%s: line %"Yu": unexpected end of input\n", - prog, lineno); - } - -@@ -213,7 +210,7 @@ badend: - buf->mv_data = realloc(buf->mv_data, buf->mv_size*2); - if (!buf->mv_data) { - Eof = 1; -- fprintf(stderr, "%s: line %" Z "d: out of memory, line too long\n", -+ fprintf(stderr, "%s: line %"Yu": out of memory, line too long\n", - prog, lineno); - return EOF; - } -@@ -405,7 +402,7 @@ int main(int argc, char *argv[]) - - rc = readline(&data, &dbuf); - if (rc) { -- fprintf(stderr, "%s: line %" Z "d: failed to read key value\n", prog, lineno); -+ fprintf(stderr, "%s: line %"Yu": failed to read key value\n", prog, lineno); - goto txn_abort; - } - -@@ -420,7 +417,7 @@ int main(int argc, char *argv[]) - if (batch == 100) { - rc = mdb_txn_commit(txn); - if (rc) { -- fprintf(stderr, "%s: line %" Z "d: txn_commit: %s\n", -+ fprintf(stderr, "%s: line %"Yu": txn_commit: %s\n", - prog, lineno, mdb_strerror(rc)); - goto env_close; - } -@@ -440,7 +437,7 @@ int main(int argc, char *argv[]) - rc = mdb_txn_commit(txn); - txn = NULL; - if (rc) { -- fprintf(stderr, "%s: line %" Z "d: txn_commit: %s\n", -+ fprintf(stderr, "%s: line %"Yu": txn_commit: %s\n", - prog, lineno, mdb_strerror(rc)); - goto env_close; - } -diff --git a/libraries/liblmdb/mdb_stat.c b/libraries/liblmdb/mdb_stat.c -index a5cda2f..0343a65 100644 ---- a/libraries/liblmdb/mdb_stat.c -+++ b/libraries/liblmdb/mdb_stat.c -@@ -17,11 +17,8 @@ - #include - #include "lmdb.h" - --#ifdef _WIN32 --#define Z "I" --#else --#define Z "z" --#endif -+#define Z MDB_FMT_Z -+#define Yu MDB_PRIy(u) - - static void prstat(MDB_stat *ms) - { -@@ -29,10 +26,10 @@ static void prstat(MDB_stat *ms) - printf(" Page size: %u\n", ms->ms_psize); - #endif - printf(" Tree depth: %u\n", ms->ms_depth); -- printf(" Branch pages: %"Z"u\n", ms->ms_branch_pages); -- printf(" Leaf pages: %"Z"u\n", ms->ms_leaf_pages); -- printf(" Overflow pages: %"Z"u\n", ms->ms_overflow_pages); -- printf(" Entries: %"Z"u\n", ms->ms_entries); -+ printf(" Branch pages: %"Yu"\n", ms->ms_branch_pages); -+ printf(" Leaf pages: %"Yu"\n", ms->ms_leaf_pages); -+ printf(" Overflow pages: %"Yu"\n", ms->ms_overflow_pages); -+ printf(" Entries: %"Yu"\n", ms->ms_entries); - } - - static void usage(char *prog) -@@ -125,11 +122,11 @@ int main(int argc, char *argv[]) - (void)mdb_env_info(env, &mei); - printf("Environment Info\n"); - printf(" Map address: %p\n", mei.me_mapaddr); -- printf(" Map size: %"Z"u\n", mei.me_mapsize); -+ printf(" Map size: %"Yu"\n", mei.me_mapsize); - printf(" Page size: %u\n", mst.ms_psize); -- printf(" Max pages: %"Z"u\n", mei.me_mapsize / mst.ms_psize); -- printf(" Number of pages used: %"Z"u\n", mei.me_last_pgno+1); -- printf(" Last transaction ID: %"Z"u\n", mei.me_last_txnid); -+ printf(" Max pages: %"Yu"\n", mei.me_mapsize / mst.ms_psize); -+ printf(" Number of pages used: %"Yu"\n", mei.me_last_pgno+1); -+ printf(" Last transaction ID: %"Yu"\n", mei.me_last_txnid); - printf(" Max readers: %u\n", mei.me_maxreaders); - printf(" Number of readers used: %u\n", mei.me_numreaders); - } -@@ -156,7 +153,7 @@ int main(int argc, char *argv[]) - if (freinfo) { - MDB_cursor *cursor; - MDB_val key, data; -- size_t pages = 0, *iptr; -+ mdb_size_t pages = 0, *iptr; - - printf("Freelist Status\n"); - dbi = 0; -@@ -176,7 +173,7 @@ int main(int argc, char *argv[]) - pages += *iptr; - if (freinfo > 1) { - char *bad = ""; -- size_t pg, prev; -+ mdb_size_t pg, prev; - ssize_t i, j, span = 0; - j = *iptr++; - for (i = j, prev = 1; --i >= 0; ) { -@@ -187,20 +184,20 @@ int main(int argc, char *argv[]) - pg += span; - for (; i >= span && iptr[i-span] == pg; span++, pg++) ; - } -- printf(" Transaction %"Z"u, %"Z"d pages, maxspan %"Z"d%s\n", -- *(size_t *)key.mv_data, j, span, bad); -+ printf(" Transaction %"Yu", %"Z"d pages, maxspan %"Z"d%s\n", -+ *(mdb_size_t *)key.mv_data, j, span, bad); - if (freinfo > 2) { - for (--j; j >= 0; ) { - pg = iptr[j]; - for (span=1; --j >= 0 && iptr[j] == pg+span; span++) ; -- printf(span>1 ? " %9"Z"u[%"Z"d]\n" : " %9"Z"u\n", -+ printf(span>1 ? " %9"Yu"[%"Z"d]\n" : " %9"Yu"\n", - pg, span); - } - } - } - } - mdb_cursor_close(cursor); -- printf(" Free pages: %"Z"u\n", pages); -+ printf(" Free pages: %"Yu"\n", pages); - } - - rc = mdb_open(txn, subname, 0, &dbi); -diff --git a/libraries/liblmdb/midl.c b/libraries/liblmdb/midl.c -index 5c6d841..9748d8d 100644 ---- a/libraries/liblmdb/midl.c -+++ b/libraries/liblmdb/midl.c -@@ -3,7 +3,7 @@ - /* $OpenLDAP$ */ - /* This work is part of OpenLDAP Software . - * -- * Copyright 2000-2015 The OpenLDAP Foundation. -+ * Copyright 2000-2016 The OpenLDAP Foundation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without -@@ -354,5 +354,67 @@ int mdb_mid2l_append( MDB_ID2L ids, MDB_ID2 *id ) - return 0; - } - -+#ifdef MDB_VL32 -+unsigned mdb_mid3l_search( MDB_ID3L ids, MDB_ID id ) -+{ -+ /* -+ * binary search of id in ids -+ * if found, returns position of id -+ * if not found, returns first position greater than id -+ */ -+ unsigned base = 0; -+ unsigned cursor = 1; -+ int val = 0; -+ unsigned n = (unsigned)ids[0].mid; -+ -+ while( 0 < n ) { -+ unsigned pivot = n >> 1; -+ cursor = base + pivot + 1; -+ val = CMP( id, ids[cursor].mid ); -+ -+ if( val < 0 ) { -+ n = pivot; -+ -+ } else if ( val > 0 ) { -+ base = cursor; -+ n -= pivot + 1; -+ -+ } else { -+ return cursor; -+ } -+ } -+ -+ if( val > 0 ) { -+ ++cursor; -+ } -+ return cursor; -+} -+ -+int mdb_mid3l_insert( MDB_ID3L ids, MDB_ID3 *id ) -+{ -+ unsigned x, i; -+ -+ x = mdb_mid3l_search( ids, id->mid ); -+ -+ if( x < 1 ) { -+ /* internal error */ -+ return -2; -+ } -+ -+ if ( x <= ids[0].mid && ids[x].mid == id->mid ) { -+ /* duplicate */ -+ return -1; -+ } -+ -+ /* insert id */ -+ ids[0].mid++; -+ for (i=(unsigned)ids[0].mid; i>x; i--) -+ ids[i] = ids[i-1]; -+ ids[x] = *id; -+ -+ return 0; -+} -+#endif /* MDB_VL32 */ -+ - /** @} */ - /** @} */ -diff --git a/libraries/liblmdb/midl.h b/libraries/liblmdb/midl.h -index 2331e78..dc532c4 100644 ---- a/libraries/liblmdb/midl.h -+++ b/libraries/liblmdb/midl.h -@@ -11,7 +11,7 @@ - /* $OpenLDAP$ */ - /* This work is part of OpenLDAP Software . - * -- * Copyright 2000-2015 The OpenLDAP Foundation. -+ * Copyright 2000-2016 The OpenLDAP Foundation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without -@@ -26,7 +26,7 @@ - #ifndef _MDB_MIDL_H_ - #define _MDB_MIDL_H_ - --#include -+#include "lmdb.h" - - #ifdef __cplusplus - extern "C" { -@@ -42,7 +42,7 @@ extern "C" { - /** A generic unsigned ID number. These were entryIDs in back-bdb. - * Preferably it should have the same size as a pointer. - */ --typedef size_t MDB_ID; -+typedef mdb_size_t MDB_ID; - - /** An IDL is an ID List, a sorted array of IDs. The first - * element of the array is a counter for how many actual -@@ -55,7 +55,11 @@ typedef MDB_ID *MDB_IDL; - /* IDL sizes - likely should be even bigger - * limiting factors: sizeof(ID), thread stack size - */ -+#ifdef MDB_VL32 -+#define MDB_IDL_LOGN 14 /* DB_SIZE is 2^14, UM_SIZE is 2^15 */ -+#else - #define MDB_IDL_LOGN 16 /* DB_SIZE is 2^16, UM_SIZE is 2^17 */ -+#endif - #define MDB_IDL_DB_SIZE (1< -+#include "MagnumExternal/OpenGL/KHR/khrplatform.h" - typedef unsigned int GLenum; - typedef unsigned char GLboolean; - typedef unsigned int GLbitfield; diff --git a/ports/magnum/CONTROL b/ports/magnum/CONTROL index cc0720af9..3e99db730 100644 --- a/ports/magnum/CONTROL +++ b/ports/magnum/CONTROL @@ -1,7 +1,7 @@ Source: magnum -Version: 2019.01-1 +Version: 2019.01-2 Build-Depends: corrade[utility] -Description: C++11/C++14 graphics middleware for games and data visualization +Description: C++11/C++14 graphics middleware for games and data visualization Homepage: https://magnum.graphics/ Default-Features: anyimageimporter, anyaudioimporter, anyimageconverter, anysceneimporter, debugtools, gl, meshtools, primitives, scenegraph, shaders, text, texturetools, trade, sdl2application diff --git a/ports/magnum/portfile.cmake b/ports/magnum/portfile.cmake index 29d8ea733..3d77bcd23 100644 --- a/ports/magnum/portfile.cmake +++ b/ports/magnum/portfile.cmake @@ -5,15 +5,10 @@ vcpkg_from_github( REF v2019.01 SHA512 1edce0a38af90bd456a827b073d30d470a13b47797d62ba22001643be7519722c6886498a63be5e2ee65b8649a7eb2c217bbe2cd36ab4f4523d91aaee573ffd5 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/001-sdl-includes.patch - ${CMAKE_CURRENT_LIST_DIR}/002-tools-path.patch - ${CMAKE_CURRENT_LIST_DIR}/003-glfw-find-module.patch - ${CMAKE_CURRENT_LIST_DIR}/004-khrplatform-include.patch + 001-sdl-includes.patch + 002-tools-path.patch + 003-glfw-find-module.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) diff --git a/ports/mdnsresponder/CONTROL b/ports/mdnsresponder/CONTROL index cfac2cca9..a94e7866c 100644 --- a/ports/mdnsresponder/CONTROL +++ b/ports/mdnsresponder/CONTROL @@ -1,4 +1,4 @@ Source: mdnsresponder -Version: 765.30.11 +Version: 765.30.11-1 Description: The mDNSResponder project is a component of Bonjour, Apple's ease-of-use IP networking initiative. -Homepage: https://developer.apple.com/bonjour/ \ No newline at end of file +Homepage: https://developer.apple.com/bonjour/ diff --git a/ports/mdnsresponder/portfile.cmake b/ports/mdnsresponder/portfile.cmake index df86db75c..46ab04ddb 100644 --- a/ports/mdnsresponder/portfile.cmake +++ b/ports/mdnsresponder/portfile.cmake @@ -1,11 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mDNSResponder-765.30.11) -vcpkg_download_distfile(ARCHIVE_FILE + +vcpkg_download_distfile(ARCHIVE URLS https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-765.30.11.tar.gz FILENAME mDNSResponder-765.30.11.tar.gz SHA512 dfdea663ec1089058c2225ede13d70241dfec8311ff7fb8d29c8d386f5077a4104455d78f8777496cce96b8ff289b73ed1aec2bf65c52154b866fc1b7675ef90 ) -vcpkg_extract_source_archive(${ARCHIVE_FILE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) IF (TRIPLET_SYSTEM_ARCH MATCHES "x86") SET(BUILD_ARCH "Win32") @@ -82,4 +86,4 @@ file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/mdnsresponder/copyright ) -vcpkg_copy_pdbs() \ No newline at end of file +vcpkg_copy_pdbs() diff --git a/ports/meschach/CONTROL b/ports/meschach/CONTROL index d54e03952..2a9d86976 100644 --- a/ports/meschach/CONTROL +++ b/ports/meschach/CONTROL @@ -1,4 +1,4 @@ Source: meschach -Version: 1.2b-2 +Version: 1.2b-3 Homepage: https://homepage.math.uiowa.edu/~dstewart/meschach Description: Matrix computations in C diff --git a/ports/meschach/portfile.cmake b/ports/meschach/portfile.cmake index 1ec6fcd04..6c4a6f6c0 100644 --- a/ports/meschach/portfile.cmake +++ b/ports/meschach/portfile.cmake @@ -2,13 +2,17 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src) vcpkg_download_distfile(ARCHIVE URLS "http://homepage.math.uiowa.edu/~dstewart/meschach/mesch12b.tar.gz" FILENAME "mesch12b.tar.gz" SHA512 9051e1502b8c9741400c61fd6038e514887f305f267ba4e97d747423de3da1270f835f65b2d1f538f8938677060bc0fcfd7a94022d74fbfd31a0450116e9d79e ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + NO_REMOVE_ONE_LEVEL +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/milerius-sfml-imgui/CONTROL b/ports/milerius-sfml-imgui/CONTROL index 7d3ec477d..0414fc11a 100644 --- a/ports/milerius-sfml-imgui/CONTROL +++ b/ports/milerius-sfml-imgui/CONTROL @@ -1,4 +1,4 @@ -Source: milerius-sfml-imgui -Version: 1.1-2 -Description: imgui dll for sfml usage -Build-Depends: sfml (windows), imgui +Source: milerius-sfml-imgui +Version: 1.1-2 +Description: imgui dll for sfml usage +Build-Depends: sfml, imgui diff --git a/ports/milerius-sfml-imgui/FixFindPackageIssue.patch b/ports/milerius-sfml-imgui/FixFindPackageIssue.patch index be47cfada..a3d8053dd 100644 --- a/ports/milerius-sfml-imgui/FixFindPackageIssue.patch +++ b/ports/milerius-sfml-imgui/FixFindPackageIssue.patch @@ -1,53 +1,53 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 27b8bd8..33fe623 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -2,7 +2,7 @@ if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) - message(FATAL_ERROR "Prevented in-tree built. Please create a build directory outside of the source code and call cmake from there") - endif () - --project(sfml-imgui) -+project(milerius-sfml-imgui) - cmake_minimum_required(VERSION 3.9) - set(CMAKE_EXPORT_COMPILE_COMMANDS ON) - -@@ -26,7 +26,7 @@ include(CMakePackageConfigHelpers) - - install(TARGETS - ${PROJECT_NAME} -- EXPORT sfml-imgui-targets -+ EXPORT milerius-sfml-imgui-targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -@@ -39,7 +39,7 @@ install(EXPORT ${PROJECT_NAME}-targets - ) - - configure_package_config_file( -- "${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}-config.cmake.in" -+ "${PROJECT_SOURCE_DIR}/cmake/sfml-imgui-config.cmake.in" - "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" - INSTALL_DESTINATION lib/cmake/${PROJECT_NAME} - ) -@@ -51,6 +51,6 @@ install(FILES - install(DIRECTORY - ${CMAKE_CURRENT_SOURCE_DIR}/sfml-imgui - DESTINATION -- ${CMAKE_INSTALL_INCLUDEDIR}/sfml-imgui -+ ${CMAKE_INSTALL_INCLUDEDIR}/ - FILES_MATCHING PATTERN "*.h*" - ) -diff --git a/cmake/sfml-imgui-config.cmake.in b/cmake/sfml-imgui-config.cmake.in -index cd790be..e1bdd77 100644 ---- a/cmake/sfml-imgui-config.cmake.in -+++ b/cmake/sfml-imgui-config.cmake.in -@@ -2,5 +2,5 @@ - find_package(SFML CONFIG REQUIRED graphics) - find_package(imgui CONFIG REQUIRED) - find_package(OpenGL REQUIRED) --include("${CMAKE_CURRENT_LIST_DIR}/sfml-imgui-targets.cmake") --check_required_components("sfml-imgui") -\ No newline at end of file -+include("${CMAKE_CURRENT_LIST_DIR}/milerius-sfml-imgui-targets.cmake") -+check_required_components("milerius-sfml-imgui") -\ No newline at end of file +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 27b8bd8..33fe623 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2,7 +2,7 @@ if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) + message(FATAL_ERROR "Prevented in-tree built. Please create a build directory outside of the source code and call cmake from there") + endif () + +-project(sfml-imgui) ++project(milerius-sfml-imgui) + cmake_minimum_required(VERSION 3.9) + set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + +@@ -26,7 +26,7 @@ include(CMakePackageConfigHelpers) + + install(TARGETS + ${PROJECT_NAME} +- EXPORT sfml-imgui-targets ++ EXPORT milerius-sfml-imgui-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +@@ -39,7 +39,7 @@ install(EXPORT ${PROJECT_NAME}-targets + ) + + configure_package_config_file( +- "${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}-config.cmake.in" ++ "${PROJECT_SOURCE_DIR}/cmake/sfml-imgui-config.cmake.in" + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" + INSTALL_DESTINATION lib/cmake/${PROJECT_NAME} + ) +@@ -51,6 +51,6 @@ install(FILES + install(DIRECTORY + ${CMAKE_CURRENT_SOURCE_DIR}/sfml-imgui + DESTINATION +- ${CMAKE_INSTALL_INCLUDEDIR}/sfml-imgui ++ ${CMAKE_INSTALL_INCLUDEDIR}/ + FILES_MATCHING PATTERN "*.h*" + ) +diff --git a/cmake/sfml-imgui-config.cmake.in b/cmake/sfml-imgui-config.cmake.in +index cd790be..e1bdd77 100644 +--- a/cmake/sfml-imgui-config.cmake.in ++++ b/cmake/sfml-imgui-config.cmake.in +@@ -2,5 +2,5 @@ + find_package(SFML CONFIG REQUIRED graphics) + find_package(imgui CONFIG REQUIRED) + find_package(OpenGL REQUIRED) +-include("${CMAKE_CURRENT_LIST_DIR}/sfml-imgui-targets.cmake") +-check_required_components("sfml-imgui") +\ No newline at end of file ++include("${CMAKE_CURRENT_LIST_DIR}/milerius-sfml-imgui-targets.cmake") ++check_required_components("milerius-sfml-imgui") +\ No newline at end of file diff --git a/ports/milerius-sfml-imgui/portfile.cmake b/ports/milerius-sfml-imgui/portfile.cmake index c5191cb85..b154a59df 100644 --- a/ports/milerius-sfml-imgui/portfile.cmake +++ b/ports/milerius-sfml-imgui/portfile.cmake @@ -1,25 +1,25 @@ -include(vcpkg_common_functions) - -vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO Milerius/imgui-sfml-shared - REF 1.1 - SHA512 191184f7b302f643bd7c241b69d9f9edc0d03c6f5a0b3a49f57ac84f3828202f8065291fb17993073a2c07f1237ba491de677c47e2f8160dc70ea77f20eb1946 - HEAD_REF master - PATCHES FixFindPackageIssue.patch -) - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA -) - -vcpkg_install_cmake() -vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/milerius-sfml-imgui) -vcpkg_copy_pdbs() - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/milerius-sfml-imgui) +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Milerius/imgui-sfml-shared + REF 1.1 + SHA512 191184f7b302f643bd7c241b69d9f9edc0d03c6f5a0b3a49f57ac84f3828202f8065291fb17993073a2c07f1237ba491de677c47e2f8160dc70ea77f20eb1946 + HEAD_REF master + PATCHES FixFindPackageIssue.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/milerius-sfml-imgui) +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/milerius-sfml-imgui) file(RENAME ${CURRENT_PACKAGES_DIR}/share/milerius-sfml-imgui/LICENSE ${CURRENT_PACKAGES_DIR}/share/milerius-sfml-imgui/copyright) \ No newline at end of file diff --git a/ports/miniupnpc/CONTROL b/ports/miniupnpc/CONTROL index 8238e64f7..a639f1ab9 100644 --- a/ports/miniupnpc/CONTROL +++ b/ports/miniupnpc/CONTROL @@ -1,3 +1,3 @@ Source: miniupnpc -Version: 2.1 +Version: 2.1-1 Description: UPnP client library/tool to access Internet Gateway Devices diff --git a/ports/miniupnpc/portfile.cmake b/ports/miniupnpc/portfile.cmake index 2c9aa9ec6..1b886b957 100644 --- a/ports/miniupnpc/portfile.cmake +++ b/ports/miniupnpc/portfile.cmake @@ -6,11 +6,10 @@ vcpkg_from_github( REF miniupnpc_2_1 SHA512 f2ab5116c094982f7838ccab460d3db07a99de1094448277fc45841e0e64ea1b4216d75a7e5dd471c79ff9b0132b89e4d801c3ad1b60d55631c12c916df658f5 HEAD_REF master + PATCHES + cmakelists.diff ) -vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/cmakelists.diff) - string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "dynamic" MINIUPNPC_BUILD_SHARED) string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "static" MINIUPNPC_BUILD_STATIC) @@ -28,4 +27,3 @@ vcpkg_install_cmake() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/miniupnpc RENAME copyright) - diff --git a/ports/mman/CONTROL b/ports/mman/CONTROL index 6ef51acb9..75a043f79 100644 --- a/ports/mman/CONTROL +++ b/ports/mman/CONTROL @@ -1,4 +1,4 @@ Source: mman -Version: git-f5ff813-2 +Version: git-f5ff813-3 Homepage: https://github.com/witwall/mman-win32 Description: A light implementation of the mmap functions for MinGW. diff --git a/ports/mman/portfile.cmake b/ports/mman/portfile.cmake index f4eb270c8..5918d370a 100644 --- a/ports/mman/portfile.cmake +++ b/ports/mman/portfile.cmake @@ -6,12 +6,8 @@ vcpkg_from_github( REF f5ff813c53935c3078f48e1f03a6944c4e7b459c SHA512 49c9a63a0a3c6fa585a76e65425f6fb1fdaa23cc87e53d5afb7a1298bcd4956298c076ee78f24dd5df5f5a0c5f6244c6abb63b40818e4d2546185fa37a73bf0d HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/mman-static.patch + mman-static.patch ) vcpkg_configure_cmake( diff --git a/ports/modp-base64/CONTROL b/ports/modp-base64/CONTROL index 3f277871a..983cce9d5 100644 --- a/ports/modp-base64/CONTROL +++ b/ports/modp-base64/CONTROL @@ -1,3 +1,3 @@ Source: modp-base64 -Version: +Version: v2.0.0 Description: diff --git a/ports/modp-base64/portfile.cmake b/ports/modp-base64/portfile.cmake index 3ff058474..e2fdc248c 100644 --- a/ports/modp-base64/portfile.cmake +++ b/ports/modp-base64/portfile.cmake @@ -1,12 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/modp-base64-v2.0.0) vcpkg_download_distfile(ARCHIVE URLS "https://web.archive.org/web/20060620024518/http://modp.com:80/release/base64/modp-base64-v2.0.0.tar.bz2" FILENAME "modp-base64-v2.0.0.tar.bz2" SHA512 474e20cbbc47f31af5e981a6a9028fcec57e3ae9bb5ba979aa5c5c4cab6f301208fe6f441a0106df4c223d89fb6f18b19ab8812cf9f3c9900e54524e35b45720 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt @@ -19,8 +22,6 @@ file(COPY DESTINATION ${SOURCE_PATH}/src ) - - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/mongo-c-driver/CONTROL b/ports/mongo-c-driver/CONTROL index ad9f9438f..18f189170 100644 --- a/ports/mongo-c-driver/CONTROL +++ b/ports/mongo-c-driver/CONTROL @@ -1,5 +1,5 @@ Source: mongo-c-driver -Version: 1.14.0-4 +Version: 1.14.0-5 Build-Depends: libbson, openssl (!windows), zlib Description: Client library written in C for MongoDB. Homepage: https://github.com/mongodb/mongo-c-driver diff --git a/ports/mongo-c-driver/fix-uwp.patch b/ports/mongo-c-driver/fix-uwp.patch deleted file mode 100644 index 973c17b5c..000000000 --- a/ports/mongo-c-driver/fix-uwp.patch +++ /dev/null @@ -1,156 +0,0 @@ ---- a/src/libbson/CMakeLists.txt -+++ b/src/libbson/CMakeLists.txt -@@ -217,6 +217,9 @@ set (HEADERS_FORWARDING - ${PROJECT_SOURCE_DIR}/src/bson/forwarding/bson.h - ) - -+add_definitions(-D_CRT_SECURE_NO_WARNINGS) -+ -+if (NOT ENABLE_STATIC MATCHES "ON|AUTO") - add_library (bson_shared SHARED ${SOURCES} ${HEADERS} ${HEADERS_FORWARDING}) - set (CMAKE_CXX_VISIBILITY_PRESET hidden) - set_target_properties (bson_shared PROPERTIES COMPILE_DEFINITIONS "BSON_COMPILATION;JSONSL_PARSE_NAN") -@@ -258,16 +261,21 @@ if (WIN32) - # must be handled specially since we can't resolve them - set (BSON_SYSTEM_LIBRARIES ${BSON_SYSTEM_LIBRARIES} ws2_32) - endif () -+endif () - - if (ENABLE_STATIC MATCHES "ON|AUTO") - add_library (bson_static STATIC ${SOURCES} ${HEADERS} ${HEADERS_FORWARDING}) -+ set(CMAKE_CXX_VISIBILITY_PRESET hidden) - set_target_properties (bson_static PROPERTIES COMPILE_DEFINITIONS "BSON_COMPILATION;BSON_STATIC;JSONSL_PARSE_NAN") - set_target_properties (bson_static PROPERTIES VERSION 0.0.0) - set_target_properties (bson_static PROPERTIES OUTPUT_NAME "bson-static-${BSON_API_VERSION}") -+ set(THREADS_PREFER_PTHREAD_FLAG 1) -+ find_package (Threads REQUIRED) - target_link_libraries (bson_static Threads::Threads) - if (RT_LIBRARY) - target_link_libraries (bson_static ${RT_LIBRARY}) - endif () -+ find_library(M_LIBRARY m) - if (M_LIBRARY) - target_link_libraries (bson_static ${M_LIBRARY}) - endif () -@@ -282,7 +290,7 @@ function (add_example bin src) - add_executable (${bin} ${BSON_EXAMPLE_SOURCES}) - - # Link against the shared lib like normal apps -- target_link_libraries (${bin} bson_shared) -+ target_link_libraries (${bin} bson_shared bson_static) - - set (EXAMPLES ${EXAMPLES} ${bin}) - endfunction () -@@ -304,6 +312,7 @@ set (BSON_HEADER_INSTALL_DIR - "${CMAKE_INSTALL_INCLUDEDIR}/libbson-${BSON_API_VERSION}" - ) - -+if (NOT ENABLE_STATIC MATCHES "ON|AUTO") - install ( - TARGETS bson_shared ${EXAMPLES} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -@@ -311,6 +320,7 @@ install ( - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR} - ) -+endif () - if (ENABLE_STATIC MATCHES "ON|AUTO") - install ( - TARGETS bson_static ${EXAMPLES} ---- a/src/libmongoc/CMakeLists.txt -+++ b/src/libmongoc/CMakeLists.txt -@@ -609,6 +609,7 @@ if (WIN32) - set (LIBRARIES ${LIBRARIES} ws2_32) - endif () - -+if (NOT MONGOC_ENABLE_STATIC) - add_library (mongoc_shared SHARED ${SOURCES} ${HEADERS} ${HEADERS_FORWARDING}) - set_target_properties (mongoc_shared PROPERTIES CMAKE_CXX_VISIBILITY_PRESET hidden) - target_link_libraries (mongoc_shared ${LIBRARIES} ${BSON_LIBRARIES}) -@@ -617,6 +618,7 @@ target_compile_definitions (mongoc_shared PUBLIC MONGOC_COMPILATION ${BSON_DEFIN - - set_target_properties (mongoc_shared PROPERTIES VERSION 0.0.0 SOVERSION 0) - set_target_properties (mongoc_shared PROPERTIES OUTPUT_NAME "mongoc-${MONGOC_API_VERSION}" PREFIX "lib") -+endif () - - if (MONGOC_ENABLE_STATIC) - add_library (mongoc_static STATIC ${SOURCES} ${HEADERS} ${HEADERS_FORWARDING}) -@@ -639,7 +641,11 @@ if (ENABLE_APPLE_FRAMEWORK) - endif () - - add_executable (mongoc-stat ${PROJECT_SOURCE_DIR}/../../src/tools/mongoc-stat.c) -+if (MONGOC_ENABLE_STATIC) -+target_link_libraries (mongoc-stat mongoc_static) -+else () - target_link_libraries (mongoc-stat mongoc_shared) -+endif () - - # mongoc-stat works if shared memory performance counters are enabled. - if (ENABLE_SHM_COUNTERS STREQUAL "ON") -@@ -870,6 +876,7 @@ file (COPY ${PROJECT_SOURCE_DIR}/tests/json DESTINATION ${PROJECT_BINARY_DIR}/te - file (COPY ${PROJECT_SOURCE_DIR}/tests/x509gen DESTINATION ${PROJECT_BINARY_DIR}/tests) - file (COPY ${PROJECT_SOURCE_DIR}/tests/release_files DESTINATION ${PROJECT_BINARY_DIR}/tests) - -+if (NOT MONGOC_ENABLE_STATIC) - install ( - TARGETS mongoc_shared ${EXAMPLES} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -@@ -877,10 +884,11 @@ install ( - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR} - ) -+endif () - - if (MONGOC_ENABLE_STATIC) - install ( -- TARGETS mongoc_shared mongoc_static ${EXAMPLES} -+ TARGETS mongoc_static ${EXAMPLES} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ---- a/src/libmongoc/src/mongoc/mongoc-gridfs-file.c -+++ b/src/libmongoc/src/mongoc/mongoc-gridfs-file.c -@@ -765,7 +765,7 @@ _mongoc_gridfs_file_refresh_page (mongoc_gridfs_file_t *file) - bson_t query; - bson_t child; - bson_t opts; -- const bson_t *chunk; -+ const bson_t *chunk = NULL; - const char *key; - bson_iter_t iter; - int64_t existing_chunks; ---- a/src/libmongoc/src/mongoc/mongoc-handshake.c -+++ b/src/libmongoc/src/mongoc/mongoc-handshake.c -@@ -286,7 +286,8 @@ _get_os_version (void) - char *ret = bson_malloc (HANDSHAKE_OS_VERSION_MAX); - bool found = false; - --#ifdef _WIN32 -+#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -+#elif defined (_WIN32) - OSVERSIONINFO osvi; - ZeroMemory (&osvi, sizeof (OSVERSIONINFO)); - osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); ---- a/src/libmongoc/src/mongoc/mongoc-util.c -+++ b/src/libmongoc/src/mongoc/mongoc-util.c -@@ -84,7 +84,11 @@ _mongoc_hex_md5 (const char *input) - void - _mongoc_usleep (int64_t usec) - { - #ifdef _WIN32 -+#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) -+ if (usec / 1000 > MAXDWORD || usec < 0) -+ __fastfail(-1); -+ Sleep((DWORD)(usec / 1000)); -+#else - LARGE_INTEGER ft; - HANDLE timer; - -@@ -80,6 +85,7 @@ _mongoc_usleep (int64_t usec) - SetWaitableTimer (timer, &ft, 0, NULL, NULL, 0); - WaitForSingleObject (timer, INFINITE); - CloseHandle (timer); -+#endif - #else - BSON_ASSERT (usec >= 0); - usleep ((useconds_t) usec); diff --git a/ports/mongo-c-driver/portfile.cmake b/ports/mongo-c-driver/portfile.cmake index 800bf971c..958ffbcde 100644 --- a/ports/mongo-c-driver/portfile.cmake +++ b/ports/mongo-c-driver/portfile.cmake @@ -7,7 +7,6 @@ vcpkg_from_github( REF ${BUILD_VERSION} SHA512 bf2bb835543dd2a445aac6cafa7bbbf90921ec41014534779924a5eb7cbd9fd532acd8146ce81dfcf1bcac33a78d8fce22b962ed7f776449e4357eccab8d6110 HEAD_REF master - PATCHES fix-uwp.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS @@ -79,11 +78,9 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL static) endif() # drop the __declspec(dllimport) when building static - vcpkg_apply_patches( - SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include - PATCHES - static.patch - ) + file(READ ${CURRENT_PACKAGES_DIR}/include/mongoc/mongoc-macros.h MONGOC_MACROS_H) + string(REPLACE "define MONGOC_API __declspec(dllimport)" "define MONGOC_API" MONGOC_MACROS_H "${MONGOC_MACROS_H}") + file(WRITE ${CURRENT_PACKAGES_DIR}/include/mongoc/mongoc-macros.h "${MONGOC_MACROS_H}") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin) endif() diff --git a/ports/mongo-c-driver/static.patch b/ports/mongo-c-driver/static.patch deleted file mode 100644 index 0f7fa98bb..000000000 --- a/ports/mongo-c-driver/static.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/mongoc/mongoc-macros.h -+++ b/mongoc/mongoc-macros.h -@@ -40,7 +40,7 @@ - #elif defined(MONGOC_COMPILATION) - #define MONGOC_API __declspec(dllexport) - #else --#define MONGOC_API __declspec(dllimport) -+#define MONGOC_API - #endif - #define MONGOC_CALL __cdecl - diff --git a/ports/monkeys-audio/CONTROL b/ports/monkeys-audio/CONTROL index fdd72f340..2062fe40a 100644 --- a/ports/monkeys-audio/CONTROL +++ b/ports/monkeys-audio/CONTROL @@ -1,5 +1,5 @@ Source: monkeys-audio -Version: 4.8.3 +Version: 4.8.3-1 Homepage: https://monkeysaudio.com Description: Monkey's Audio is an excellent audio compression tool which has multiple advantages over traditional methods. Audio files compressed with it ends with .ape extension. diff --git a/ports/monkeys-audio/portfile.cmake b/ports/monkeys-audio/portfile.cmake index 719db6e29..a958f2a88 100644 --- a/ports/monkeys-audio/portfile.cmake +++ b/ports/monkeys-audio/portfile.cmake @@ -6,12 +6,7 @@ endif() vcpkg_check_linkage(ONLY_STATIC_LIBRARY ONLY_STATIC_CRT) -if(EXISTS ${CURRENT_BUILDTREES_DIR}/src/MAC_SDK_483.zip.extracted) - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src) -endif() - set(VERSION 4.7) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/483) vcpkg_download_distfile(ARCHIVE URLS "http://monkeysaudio.com/files/MAC_SDK_483.zip" @@ -19,7 +14,11 @@ vcpkg_download_distfile(ARCHIVE SHA512 c080aa87997def3b970050f6bd334b6908884cc521f192abc02d774a8b3067207781dcab30f052015d4ae891fc6390c6f0b33ed319d9d7fd0850dab6fcded8f0 ) -vcpkg_extract_source_archive(${ARCHIVE} ${SOURCE_PATH}) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + NO_REMOVE_ONE_LEVEL +) file(REMOVE ${SOURCE_PATH}/Shared/MACDll.dll @@ -39,7 +38,6 @@ file(COPY ${SOURCE_PATH}/Shared/ file(REMOVE ${CURRENT_PACKAGES_DIR}/include/monkeys-audio/MACDll.h) file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/Console.lib ${CURRENT_PACKAGES_DIR}/debug/lib/Console.lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/tools/monkeys-audio/Console.exe ${CURRENT_PACKAGES_DIR}/tools/monkeys-audio/mac.exe) vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) diff --git a/ports/moos-core/CONTROL b/ports/moos-core/CONTROL index 2534bb905..15a5a5e1f 100644 --- a/ports/moos-core/CONTROL +++ b/ports/moos-core/CONTROL @@ -1,4 +1,4 @@ Source: moos-core -Version: 10.4.0-3 +Version: 10.4.0-4 Description: A very light weight, easy to use middleware. Homepage: https://sites.google.com/site/moossoftware/ diff --git a/ports/moos-essential/CONTROL b/ports/moos-essential/CONTROL index 06cc1c0f0..32fd954e3 100644 --- a/ports/moos-essential/CONTROL +++ b/ports/moos-essential/CONTROL @@ -1,5 +1,5 @@ Source: moos-essential -Version: 10.0.1-1 +Version: 10.0.1-2 Description: a set of useful applications that leverage the core-moos communications layer. Homepage: https://sites.google.com/site/moossoftware/ Build-Depends: moos-core diff --git a/ports/moos-essential/portfile.cmake b/ports/moos-essential/portfile.cmake index f0a55923e..634b1530e 100644 --- a/ports/moos-essential/portfile.cmake +++ b/ports/moos-essential/portfile.cmake @@ -6,14 +6,8 @@ vcpkg_from_github( REF b897ea86dba8b61412dc48ac0cfb5ff34cdaf5f6 SHA512 7284744d211dcdcb0cd321eec96f3632ccda690e8894261f4f09a06bc8faefb2de68f4f2f755f4eeef5bb586044e98ac65cdd18c15193a1a4632bd2f4208c52f HEAD_REF master -) - -message(STATUS "MOOS Essential Source Path: ${SOURCE_PATH}") -message(STATUS "MOOS Essential CMAKE_CURRENT_LIST_DIR: ${CMAKE_CURRENT_LIST_DIR}") - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix.patch + PATCHES + fix.patch ) vcpkg_configure_cmake( @@ -39,5 +33,3 @@ endif() file(WRITE ${CURRENT_PACKAGES_DIR}/include/fake_header.h "// fake header to pass vcpkg post install check \n") file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright "see moos-core for copyright\n" ) -# -# diff --git a/ports/mpfr/portfile.cmake b/ports/mpfr/portfile.cmake index 17f78a2e7..5837976dd 100644 --- a/ports/mpfr/portfile.cmake +++ b/ports/mpfr/portfile.cmake @@ -1,12 +1,16 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mpfr-4.0.2) + vcpkg_download_distfile(ARCHIVE URLS "http://www.mpfr.org/mpfr-4.0.2/mpfr-4.0.2.tar.xz" FILENAME "mpfr-4.0.2.tar.xz" SHA512 d583555d08863bf36c89b289ae26bae353d9a31f08ee3894520992d2c26e5683c4c9c193d7ad139632f71c0a476d85ea76182702a98bf08dde7b6f65a54f8b88 ) -vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) + file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( diff --git a/ports/msgpack/CONTROL b/ports/msgpack/CONTROL index dab3515b9..1715eb780 100644 --- a/ports/msgpack/CONTROL +++ b/ports/msgpack/CONTROL @@ -1,4 +1,4 @@ Source: msgpack -Version: 3.2.0 +Version: 3.2.0-1 Homepage: https://github.com/msgpack/msgpack-c Description: MessagePack is an efficient binary serialization format, which lets you exchange data among multiple languages like JSON, except that it's faster and smaller. diff --git a/ports/msgpack/add-static-lib-option.patch b/ports/msgpack/add-static-lib-option.patch deleted file mode 100644 index 349a413fb..000000000 --- a/ports/msgpack/add-static-lib-option.patch +++ /dev/null @@ -1,84 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index f92363e..b0becbb 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -196,27 +196,28 @@ IF (MSGPACK_ENABLE_SHARED) - ${CMAKE_CURRENT_SOURCE_DIR} - ) - ENDIF () -+IF (MSGPACK_ENABLE_STATIC) -+ ADD_LIBRARY (msgpackc-static STATIC -+ ${msgpackc_SOURCES} -+ ${msgpackc_HEADERS} -+ ) - --ADD_LIBRARY (msgpackc-static STATIC -- ${msgpackc_SOURCES} -- ${msgpackc_HEADERS} --) -- --TARGET_INCLUDE_DIRECTORIES (msgpackc-static -- PUBLIC -- $ -- $ -- $ -- PRIVATE -- ${CMAKE_CURRENT_SOURCE_DIR} --) -+ TARGET_INCLUDE_DIRECTORIES (msgpackc-static -+ PUBLIC -+ $ -+ $ -+ $ -+ PRIVATE -+ ${CMAKE_CURRENT_SOURCE_DIR} -+ ) -+ SET_TARGET_PROPERTIES (msgpackc-static PROPERTIES OUTPUT_NAME "msgpackc" COMPILE_DEFINITIONS MSGPACK_DLLEXPORT=) -+ENDIF () - --IF (NOT MSGPACK_ENABLE_SHARED) -+IF (MSGPACK_ENABLE_STATIC AND NOT MSGPACK_ENABLE_SHARED) - # Add alias for subdirectories - ADD_LIBRARY (msgpackc ALIAS msgpackc-static) - ENDIF () - --SET_TARGET_PROPERTIES (msgpackc-static PROPERTIES OUTPUT_NAME "msgpackc") - IF (MSGPACK_ENABLE_SHARED) - IF (MSVC) - SET_TARGET_PROPERTIES (msgpackc PROPERTIES IMPORT_SUFFIX "_import.lib") -@@ -239,14 +240,18 @@ IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" ST - IF (MSGPACK_ENABLE_SHARED) - SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 -DPIC") - ENDIF () -- SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3" ) -+ IF (MSGPACK_ENABLE_STATIC) -+ SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3" ) -+ ENDIF () - ENDIF () - - IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - IF (MSGPACK_ENABLE_SHARED) - SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") - ENDIF () -- SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") -+ IF (MSGPACK_ENABLE_STATIC) -+ SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") -+ ENDIF () - ENDIF () - - IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") -@@ -278,10 +283,12 @@ IF (MSGPACK_BUILD_EXAMPLES) - ADD_SUBDIRECTORY (example) - ENDIF () - --IF (MSGPACK_ENABLE_SHARED) -+IF (MSGPACK_ENABLE_SHARED AND MSGPACK_ENABLE_STATIC) - SET (MSGPACK_INSTALLTARGETS msgpackc msgpackc-static) --ELSE() -+ELSEIF (MSGPACK_ENABLE_STATIC) - SET (MSGPACK_INSTALLTARGETS msgpackc-static) -+ELSE () -+ SET (MSGPACK_INSTALLTARGETS msgpackc) - ENDIF () - - INSTALL (TARGETS ${MSGPACK_INSTALLTARGETS} EXPORT msgpack-targets diff --git a/ports/msgpack/portfile.cmake b/ports/msgpack/portfile.cmake index c9249a2bc..b0939176c 100644 --- a/ports/msgpack/portfile.cmake +++ b/ports/msgpack/portfile.cmake @@ -4,10 +4,8 @@ vcpkg_from_github( REPO msgpack/msgpack-c REF cpp-3.2.0 SHA512 698fcdd5b427373997d0c89ff2cd09c44cf3b165defd381ff3cd9e14ecb83841064754a42aab99441a3b17aa26e3daec8f83e40d6d482c4b443b21b313278d14 - HEAD_REF master) - -vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/add-static-lib-option.patch) + HEAD_REF master +) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) set(MSGPACK_ENABLE_SHARED OFF) diff --git a/ports/nanort/CONTROL b/ports/nanort/CONTROL index a9938434f..6b45af8d4 100644 --- a/ports/nanort/CONTROL +++ b/ports/nanort/CONTROL @@ -1,4 +1,4 @@ Source: nanort -Version: 2019-08-20 +Version: 2019-08-20-1 Description: Single header only modern ray tracing kernel Homepage: https://github.com/lighttransport/nanort diff --git a/ports/nanort/portfile.cmake b/ports/nanort/portfile.cmake index 49197523e..3c9ff0295 100644 --- a/ports/nanort/portfile.cmake +++ b/ports/nanort/portfile.cmake @@ -1,47 +1,13 @@ -# Single header only library - include(vcpkg_common_functions) -function(shorten_ref REF SHORTENED_REF) - set(REF_MAX_LENGTH 10) - string(LENGTH ${REF} REF_LENGTH) - math(EXPR FROM_REF ${REF_LENGTH}-${REF_MAX_LENGTH}) - if(FROM_REF LESS 0) - set(FROM_REF 0) - endif() - string(SUBSTRING ${REF} ${FROM_REF} ${REF_LENGTH} SUB_REF) - set(${SHORTENED_REF} ${SUB_REF} PARENT_SCOPE) -endfunction() - -set(SOURCE_VERSION c85fe7a10be5baf8242c81288718c244f25d0183) -shorten_ref(${SOURCE_VERSION} SHORTED_VERSION) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/lighttransport-nanort-${SHORTED_VERSION}) - -file(MAKE_DIRECTORY ${SOURCE_PATH}) - -# See ports/nlohmann-json/portfile.cmake -function(download_src SUBPATH SHA512) - vcpkg_download_distfile( - FILE - URLS "https://raw.githubusercontent.com/lighttransport/nanort/master/${SUBPATH}" - FILENAME "lighttransport-nanort-${SHORTED_VERSION}/${SUBPATH}" - SHA512 ${SHA512} - ) - get_filename_component(SUBPATH_DIR "${SOURCE_PATH}/${SUBPATH}" DIRECTORY) - file(COPY ${FILE} DESTINATION ${SUBPATH_DIR}) -endfunction() - -download_src( - nanort.h - 3e1f6f5fa295ebc472e37daf106c3871873f0bea4e3175cd4042b5649f581a90bfb9f2db989fa1994c82a2de78e40ecbcafd188b68bf10b5983a41b48e53dcbc -) - -download_src( - LICENSE - 454b304dcfae816d7a569ccbe29cc9c4bd68aa7ac41467bfa33b39aaf5be4620df5aeb6989319aaa04f305c053c068559b39c7a38c0bee1d4f194b2bc1aac240 +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO lighttransport/nanort + REF c85fe7a10be5baf8242c81288718c244f25d0183 + SHA512 0917ffdc51db9d5f936fc79d5b3d1886c5163470e650a2613200417a9e7a344b75c76c115f64160877d6a3480f7eda7884f3097927eb371267cc6d3c30afed37 + HEAD_REF master ) file(COPY ${SOURCE_PATH}/nanort.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) -# Handle copyright configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/netcdf-cxx4/CONTROL b/ports/netcdf-cxx4/CONTROL index 8ef872966..c207f0007 100644 --- a/ports/netcdf-cxx4/CONTROL +++ b/ports/netcdf-cxx4/CONTROL @@ -1,5 +1,5 @@ Source: netcdf-cxx4 -Version: 4.3.0-4 +Version: 4.3.0-5 Build-Depends: netcdf-c Homepage: https://github.com/Unidata/netcdf-cxx4 Description: a set of machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data. diff --git a/ports/netcdf-cxx4/portfile.cmake b/ports/netcdf-cxx4/portfile.cmake index 961694965..0b361cdf1 100644 --- a/ports/netcdf-cxx4/portfile.cmake +++ b/ports/netcdf-cxx4/portfile.cmake @@ -4,8 +4,6 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) set(HDF5_USE_STATIC_LIBRARIES ON) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/netcdf-cxx4-4.3.0) - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Unidata/netcdf-cxx4 diff --git a/ports/nghttp2/CONTROL b/ports/nghttp2/CONTROL index 2e8489e0a..0f0fa2475 100644 --- a/ports/nghttp2/CONTROL +++ b/ports/nghttp2/CONTROL @@ -1,4 +1,4 @@ Source: nghttp2 -Version: 1.39.2 +Version: 1.39.2-1 Homepage: https://github.com/nghttp2/nghttp2 Description: Implementation of the Hypertext Transfer Protocol version 2 in C diff --git a/ports/nghttp2/portfile.cmake b/ports/nghttp2/portfile.cmake index 05a639d06..e92925312 100644 --- a/ports/nghttp2/portfile.cmake +++ b/ports/nghttp2/portfile.cmake @@ -4,14 +4,14 @@ set(LIB_NAME nghttp2) set(LIB_VERSION 1.39.2) set(LIB_FILENAME ${LIB_NAME}-${LIB_VERSION}.tar.gz) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION}) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/nghttp2/nghttp2/releases/download/v${LIB_VERSION}/${LIB_FILENAME}" - FILENAME "${LIB_FILENAME}" - SHA512 1623a6bd9de1ca4d0742919b973eaefd570b250eb109697e5cf2240d2062789d1ca58632fdff32bb17f524b102fade0e30ab3f400dc2c128bfb91a75277f13e0 +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO nghttp2/nghttp2 + REF v${LIB_VERSION} + SHA512 1ddfb8c6538e209e39199fb5e2f9c262d58d188f25c98cd03f9f733bb261055b7625f0f79863731b112e69bc40c9d6a7d10d4fe69f56c615127e03277ee3af1d + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -23,7 +23,6 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -# Remove unwanted files file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/man) @@ -33,7 +32,6 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) endif() -# License and man file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${LIB_NAME} RENAME copyright) vcpkg_copy_pdbs() diff --git a/ports/nmslib/CONTROL b/ports/nmslib/CONTROL index f57463d95..288fc7377 100644 --- a/ports/nmslib/CONTROL +++ b/ports/nmslib/CONTROL @@ -1,5 +1,5 @@ Source: nmslib -Version: 1.8.1 +Version: 1.8.2 Homepage: https://github.com/searchivarius/nmslib Description: Non-Metric Space Library (NMSLIB) is an efficient similarity search library and a toolkit for evaluation of k-NN methods for generic non-metric spaces. # diff --git a/ports/nmslib/portfile.cmake b/ports/nmslib/portfile.cmake index 9b8adc231..d250c0977 100644 --- a/ports/nmslib/portfile.cmake +++ b/ports/nmslib/portfile.cmake @@ -8,13 +8,9 @@ vcpkg_from_github( REF c9fc0b862f09260b558cf81e94e0d58aca15d9e9 SHA512 ac9c79e3ac991dd58f239f7e0b2bd6c3185907aa283bc42098aadddac87b361867f002664cc14853822f92a491d95269578bea01aa00477e39a40424320000a1 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/fix-headers.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-cmake-order.patch + fix-headers.patch + fix-cmake-order.patch ) set(WITH_EXTRAS OFF) diff --git a/ports/nrf-ble-driver/001-arm64-support.patch b/ports/nrf-ble-driver/001-arm64-support.patch index 03cec37b6..2c9705399 100644 --- a/ports/nrf-ble-driver/001-arm64-support.patch +++ b/ports/nrf-ble-driver/001-arm64-support.patch @@ -1,14 +1,14 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 99daa24..9a18ee5 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -259,6 +259,9 @@ endforeach(SD_API_VER) - # Additional special linkage libraries - foreach(SD_API_VER ${SD_API_VERS}) - if(WIN32) -+ # arm64-windows support -+ target_link_libraries(${NRF_BLE_DRIVER_${SD_API_VER}_STATIC_LIB} PRIVATE "advapi32") -+ target_link_libraries(${NRF_BLE_DRIVER_${SD_API_VER}_SHARED_LIB} PRIVATE "advapi32") - elseif(APPLE) - target_link_libraries(${NRF_BLE_DRIVER_${SD_API_VER}_STATIC_LIB} PRIVATE "-framework CoreFoundation" "-framework IOKit") - target_link_libraries(${NRF_BLE_DRIVER_${SD_API_VER}_SHARED_LIB} PRIVATE "-framework CoreFoundation" "-framework IOKit") +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 99daa24..9a18ee5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -259,6 +259,9 @@ endforeach(SD_API_VER) + # Additional special linkage libraries + foreach(SD_API_VER ${SD_API_VERS}) + if(WIN32) ++ # arm64-windows support ++ target_link_libraries(${NRF_BLE_DRIVER_${SD_API_VER}_STATIC_LIB} PRIVATE "advapi32") ++ target_link_libraries(${NRF_BLE_DRIVER_${SD_API_VER}_SHARED_LIB} PRIVATE "advapi32") + elseif(APPLE) + target_link_libraries(${NRF_BLE_DRIVER_${SD_API_VER}_STATIC_LIB} PRIVATE "-framework CoreFoundation" "-framework IOKit") + target_link_libraries(${NRF_BLE_DRIVER_${SD_API_VER}_SHARED_LIB} PRIVATE "-framework CoreFoundation" "-framework IOKit") diff --git a/ports/nrf-ble-driver/CONTROL b/ports/nrf-ble-driver/CONTROL index 275f3d824..b148716a9 100644 --- a/ports/nrf-ble-driver/CONTROL +++ b/ports/nrf-ble-driver/CONTROL @@ -1,4 +1,4 @@ -Source: nrf-ble-driver -Version: 4.1.1-1 -Description: BLE driver is a library for Bluetooth Low Energy communication using Nordic Semiconductor development kits. -Build-Depends: asio, catch2 \ No newline at end of file +Source: nrf-ble-driver +Version: 4.1.1-2 +Description: BLE driver is a library for Bluetooth Low Energy communication using Nordic Semiconductor development kits. +Build-Depends: asio, catch2 diff --git a/ports/ode/CONTROL b/ports/ode/CONTROL index 4d0a0b724..3754de88b 100644 --- a/ports/ode/CONTROL +++ b/ports/ode/CONTROL @@ -1,4 +1,4 @@ Source: ode -Version: 0.15.1-2 +Version: 0.15.1-3 Homepage: https://bitbucket.org/odedevs/ode/src/default/ Description: Open Dynamics Engine diff --git a/ports/ode/portfile.cmake b/ports/ode/portfile.cmake index 13a31e335..729740c45 100644 --- a/ports/ode/portfile.cmake +++ b/ports/ode/portfile.cmake @@ -1,16 +1,18 @@ include(vcpkg_common_functions) + set(SOURCE_VERSION 0.15.1) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ode-${SOURCE_VERSION}) + vcpkg_download_distfile(ARCHIVE URLS "https://bitbucket.org/odedevs/ode/downloads/ode-${SOURCE_VERSION}.tar.gz" FILENAME "ode-${SOURCE_VERSION}.tar.gz" SHA512 e30623374c8f7c45359d6d837313698ca28da7b5a2d26c7171da16ccd6f95c4a49aad731c432db6ca2911886948a2e7ea93a96ade5a1639b945a825d8ac87249 ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-add-static-runtime-option.patch" +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + 0001-add-static-runtime-option.patch ) if (TRIPLET_SYSTEM_ARCH MATCHES "arm") diff --git a/ports/opencl/CONTROL b/ports/opencl/CONTROL index a07242b15..9ddd88dd4 100644 --- a/ports/opencl/CONTROL +++ b/ports/opencl/CONTROL @@ -1,7 +1,7 @@ Source: opencl -Version: 2.2 (2018.08.31) +Version: 2.2-2 Homepage: https://github.com/KhronosGroup/OpenCL-Headers Description: C/C++ headers and ICD loader (Installable Client Driver) for OpenCL Feature: wdk -Description: Windows Driver Kit support \ No newline at end of file +Description: Windows Driver Kit support diff --git a/ports/opencl/portfile.cmake b/ports/opencl/portfile.cmake index fc58e873f..00683d1a7 100644 --- a/ports/opencl/portfile.cmake +++ b/ports/opencl/portfile.cmake @@ -9,7 +9,6 @@ else() set(WITH_WDK OFF) endif() -# OpenCL C headers vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/OpenCL-Headers @@ -66,51 +65,35 @@ vcpkg_configure_cmake( PREFER_NINJA OPTIONS -DOPENCL_ICD_LOADER_HEADERS_DIR=${CURRENT_PACKAGES_DIR}/include - -DOPENCL_ICD_LOADER_REQUIRE_WDK=${WITH_WDK} + -DOPENCL_ICD_LOADER_REQUIRE_WDK=${WITH_WDK} ) vcpkg_build_cmake(TARGET OpenCL) -if(VCPKG_TARGET_IS_WINDOWS) - file(INSTALL - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/OpenCL.lib" - DESTINATION - ${CURRENT_PACKAGES_DIR}/lib - ) - - file(INSTALL - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/OpenCL.lib" - DESTINATION - ${CURRENT_PACKAGES_DIR}/debug/lib - ) -endif(VCPKG_TARGET_IS_WINDOWS) -if(VCPKG_TARGET_IS_LINUX) - file(INSTALL - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libOpenCL.a" - DESTINATION - ${CURRENT_PACKAGES_DIR}/lib - ) - - file(INSTALL - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libOpenCL.a" - DESTINATION - ${CURRENT_PACKAGES_DIR}/debug/lib - ) -endif(VCPKG_TARGET_IS_LINUX) +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${VCPKG_TARGET_STATIC_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${VCPKG_TARGET_STATIC_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) +else() + if(VCPKG_TARGET_IS_WINDOWS) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + elseif(VCPKG_TARGET_IS_LINUX) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}.1" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}.1.2" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}.1" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}.1.2" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + elseif(VCPKG_TARGET_IS_OSX) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}OpenCL${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + endif() +endif() -file(INSTALL - "${SOURCE_PATH}/LICENSE" - DESTINATION - ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright -) -file(COPY - ${CMAKE_CURRENT_LIST_DIR}/usage - DESTINATION - ${CURRENT_PACKAGES_DIR}/share/${PORT} -) +vcpkg_copy_pdbs() -file(COPY - ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake - DESTINATION - ${CURRENT_PACKAGES_DIR}/share/${PORT} -) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) diff --git a/ports/openni2/CONTROL b/ports/openni2/CONTROL index a68d575ba..a8fa4a2ac 100644 --- a/ports/openni2/CONTROL +++ b/ports/openni2/CONTROL @@ -1,5 +1,5 @@ Source: openni2 -Version: 2.2.0.33-10 +Version: 2.2.0.33-11 Build-Depends: kinectsdk1 Homepage: https://github.com/OpenNI/OpenNI2 Description: OpenNI is open source library for access to Natural Interaction (NI) devices such as RGB-D camera. diff --git a/ports/openni2/portfile.cmake b/ports/openni2/portfile.cmake index b7064a12c..92071e537 100644 --- a/ports/openni2/portfile.cmake +++ b/ports/openni2/portfile.cmake @@ -26,10 +26,6 @@ vcpkg_from_github( file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) file(COPY ${SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) -get_filename_component(SOURCE_DIR_NAME "${SOURCE_PATH}" NAME) - -# Use fresh copy of sources for building and modification -set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${SOURCE_DIR_NAME}") file(TO_NATIVE_PATH ${CURRENT_INSTALLED_DIR} NATIVE_INSTALLED_DIR) configure_file("${SOURCE_PATH}/Source/Drivers/Kinect/Kinect.vcxproj" "${SOURCE_PATH}/Source/Drivers/Kinect/Kinect.vcxproj" @ONLY) diff --git a/ports/openssl-uwp/CONTROL b/ports/openssl-uwp/CONTROL index aa0348e0b..c11c10124 100644 --- a/ports/openssl-uwp/CONTROL +++ b/ports/openssl-uwp/CONTROL @@ -1,3 +1,3 @@ Source: openssl-uwp -Version: 1.0.2r +Version: 1.0.2r-1 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-uwp/fix-uwp-rs4.patch b/ports/openssl-uwp/fix-uwp-rs4.patch deleted file mode 100644 index d5a33909e..000000000 --- a/ports/openssl-uwp/fix-uwp-rs4.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/ms/winrtdef.h b/ms/winrtdef.h -index b1a7598..6ba2e1d 100644 ---- a/ms/winrtdef.h -+++ b/ms/winrtdef.h -@@ -6,9 +6,11 @@ - #if defined(OPENSSL_WINAPP) - //Include stdio.h to replace fprintf - # include -+#if !defined(NTDDI_VERSION) || (NTDDI_VERSION < NTDDI_WIN10_RS4) - # ifdef getenv - # undef getenv - # endif -+#endif - # ifdef setenv - # undef setenv - # endif -@@ -32,7 +34,9 @@ - # undef GetModuleHandle - # define GetModuleHandle winrt_GetModuleHandle - # endif -+#if !defined(NTDDI_WIN10_RS4) || (NTDDI_VERSION < NTDDI_WIN10_RS4) - # define getenv winrt_getenv -+#endif - # define setenv winrt_getenv - - int winrt_GetTickCount(void); diff --git a/ports/openssl-uwp/portfile.cmake b/ports/openssl-uwp/portfile.cmake index 239f98d2b..0a80bc326 100644 --- a/ports/openssl-uwp/portfile.cmake +++ b/ports/openssl-uwp/portfile.cmake @@ -37,8 +37,7 @@ vcpkg_from_github( SHA512 3045693fca4b042b69675f6164d8cc82106582cf31081d65a0adbd528f04e77fa48b3761f3be7bdf8ab962a093b28fec0ae6d7da02058f2b049f79b784c39c2e HEAD_REF master PATCHES - ${CMAKE_CURRENT_LIST_DIR}/fix-uwp-rs4.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-uwp-configure-unicode.patch + fix-uwp-configure-unicode.patch ) file(REMOVE_RECURSE ${SOURCE_PATH}/tmp32dll) diff --git a/ports/orc/CONTROL b/ports/orc/CONTROL index 3ab0d5903..cb359deba 100644 --- a/ports/orc/CONTROL +++ b/ports/orc/CONTROL @@ -1,5 +1,5 @@ Source: orc -Version: 1.5.6 +Version: 1.5.6-1 Homepage: https://orc.apache.org/ Build-Depends: zlib, protobuf, lz4, snappy, zstd, gtest Description: The smallest, fastest columnar storage for Hadoop workloads. diff --git a/ports/otl/CONTROL b/ports/otl/CONTROL index 809586035..15ea50774 100644 --- a/ports/otl/CONTROL +++ b/ports/otl/CONTROL @@ -1,4 +1,4 @@ -Source: otl -Version: 4.0.443 -Description: Oracle, Odbc and DB2-CLI Template Library -Homepage: http://otl.sourceforge.net/ +Source: otl +Version: 4.0.443-2 +Description: Oracle, Odbc and DB2-CLI Template Library +Homepage: http://otl.sourceforge.net/ diff --git a/ports/otl/portfile.cmake b/ports/otl/portfile.cmake index f577641dc..e63628c1f 100644 --- a/ports/otl/portfile.cmake +++ b/ports/otl/portfile.cmake @@ -1,19 +1,16 @@ -include(vcpkg_common_functions) - -vcpkg_download_distfile(ARCHIVE - # This URL is not stable becuase they use the same name for minor releases which changes the hash below. - # if you know a stable download URL then please update it. - URLS "http://otl.sourceforge.net/otlv4_h2.zip" - FILENAME "otl-4.0.443.zip" - SHA512 7f1e9080f097da648050dcc60e5e54f7801bbdcbd5e4609dc14424a1881995c06f045e92bdabfca754461324dbf0e882c8542816799c4ec3c0a1a7fc6c150fa4 -) - -vcpkg_extract_source_archive_ex( - OUT_SOURCE_PATH SOURCE_PATH - ARCHIVE ${ARCHIVE} - NO_REMOVE_ONE_LEVEL - REF 4.0.443 -) - -file(INSTALL ${SOURCE_PATH}/otlv4.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/otl) -file(INSTALL ${SOURCE_PATH}/otlv4.h DESTINATION ${CURRENT_PACKAGES_DIR}/share/otl RENAME copyright) +include(vcpkg_common_functions) + +vcpkg_download_distfile(ARCHIVE + URLS "http://otl.sourceforge.net/otlv4_h2.zip" + FILENAME "otlv4_h2-4.0.443.zip" + SHA512 90a90d909586aae2088c87b5899244c01eef58aed7183d73b9be647f9c7a7bdcdc2f50f5c3cb564330b0061fb63e85f1b5522b4cf9390bc9baa5e2cb97ea3f3e +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + NO_REMOVE_ONE_LEVEL +) + +file(INSTALL ${SOURCE_PATH}/otlv4.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/otl) +file(INSTALL ${SOURCE_PATH}/otlv4.h DESTINATION ${CURRENT_PACKAGES_DIR}/share/otl RENAME copyright) diff --git a/ports/pangomm/CONTROL b/ports/pangomm/CONTROL index 7ebd7433e..a35d35804 100644 --- a/ports/pangomm/CONTROL +++ b/ports/pangomm/CONTROL @@ -1,5 +1,5 @@ Source: pangomm -Version: 2.40.1-1 +Version: 2.40.1-2 Homepage: https://ftp.gnome.org/pub/GNOME/sources/pangomm Description: pangomm is the official C++ interface for the Pango font layout library. See, for instance, the Pango::Layout class. Build-Depends: glib, gettext, cairo, fontconfig, freetype, harfbuzz, pango, cairomm, glibmm diff --git a/ports/pangomm/README b/ports/pangomm/README deleted file mode 100644 index 37c05b4ee..000000000 --- a/ports/pangomm/README +++ /dev/null @@ -1,3 +0,0 @@ -This is pangomm, a C++ API for Pango. -See http://www.gtkmm.org/ - diff --git a/ports/pangomm/portfile.cmake b/ports/pangomm/portfile.cmake index aecbcdaf4..b5af1d070 100644 --- a/ports/pangomm/portfile.cmake +++ b/ports/pangomm/portfile.cmake @@ -1,15 +1,17 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pangomm-2.40.1) + vcpkg_download_distfile(ARCHIVE URLS "http://ftp.gnome.org/pub/GNOME/sources/pangomm/2.40/pangomm-2.40.1.tar.xz" FILENAME "pangomm-2.40.1.tar.xz" SHA512 bed19800b76e69cc51abeb5997bdc2f687f261ebcbe36aeee51f1fbf5010a46f4b9469033c34a912502001d9985135fd5c7f7574d3de8ba33cc5832520c6aa6f ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix_properties.patch ${CMAKE_CURRENT_LIST_DIR}/fix_charset.patch +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + fix_properties.patch + fix_charset.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/msvc_recommended_pragmas.h DESTINATION ${SOURCE_PATH}/MSVC_Net2013) @@ -17,7 +19,8 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/msvc_recommended_pragmas.h DESTINATION ${SOU set(VS_PLATFORM ${VCPKG_TARGET_ARCHITECTURE}) if(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86) set(VS_PLATFORM "Win32") -endif(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86) +endif() + vcpkg_build_msbuild( PROJECT_PATH ${SOURCE_PATH}/MSVC_Net2013/pangomm.sln TARGET pangomm @@ -59,6 +62,4 @@ file( vcpkg_copy_pdbs() -# Handle copyright and readme file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/pangomm RENAME copyright) -file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/pangomm RENAME readme.txt) diff --git a/ports/pcre/CONTROL b/ports/pcre/CONTROL index e12915711..4eb5b394c 100644 --- a/ports/pcre/CONTROL +++ b/ports/pcre/CONTROL @@ -1,4 +1,4 @@ Source: pcre -Version: 8.41-3 +Version: 8.41-4 Homepage: https://www.pcre.org/ Description: Perl Compatible Regular Expressions diff --git a/ports/pcre/portfile.cmake b/ports/pcre/portfile.cmake index 35f37e33b..8c816f0ab 100644 --- a/ports/pcre/portfile.cmake +++ b/ports/pcre/portfile.cmake @@ -1,18 +1,22 @@ -set(PCRE_VERSION 8.41) include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pcre-${PCRE_VERSION}) + +set(PCRE_VERSION 8.41) + vcpkg_download_distfile(ARCHIVE - URLS "https://ftp.pcre.org/pub/pcre/pcre-${PCRE_VERSION}.zip" + URLS "https://ftp.pcre.org/pub/pcre/pcre-${PCRE_VERSION}.zip" "https://downloads.sourceforge.net/project/pcre/pcre/${PCRE_VERSION}/pcre-${PCRE_VERSION}.zip" FILENAME "pcre-${PCRE_VERSION}.zip" SHA512 a3fd57090a5d9ce9d608aeecd59f42f04deea5b86a5c5899bdb25b18d8ec3a89b2b52b62e325c6485a87411eb65f1421604f80c3eaa653bd7dbab05ad22795ea ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-option-2.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-arm-config-define.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-arm64-config-define.patch) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + fix-option-2.patch + fix-arm-config-define.patch + fix-arm64-config-define.patch +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -56,4 +60,4 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc) file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) -vcpkg_copy_pdbs() \ No newline at end of file +vcpkg_copy_pdbs() diff --git a/ports/pdal/0003-fix-copy-vendor.patch b/ports/pdal/0003-fix-copy-vendor.patch index a29ad9018..3aad7af32 100644 --- a/ports/pdal/0003-fix-copy-vendor.patch +++ b/ports/pdal/0003-fix-copy-vendor.patch @@ -33,6 +33,15 @@ index 43e446a..c4c7d6f 100644 # # CPACK +@@ -348,7 +373,7 @@ add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source) + + export( + TARGETS +- ${PDAL_BASE_LIB_NAME} ${PDAL_UTIL_LIB_NAME} ++ ${PDAL_BASE_LIB_NAME} ${PDAL_ARBITER_LIB_NAME} ${PDAL_KAZHDAN_LIB_NAME} ${PDAL_UTIL_LIB_NAME} + FILE + "${PDAL_BINARY_DIR}/PDALTargets.cmake") + diff --git a/cmake/directories.cmake b/cmake/directories.cmake index f079ec7..8e366e8 100644 --- a/cmake/directories.cmake diff --git a/ports/pdal/CONTROL b/ports/pdal/CONTROL index 7c465df4e..9dbec2ab9 100644 --- a/ports/pdal/CONTROL +++ b/ports/pdal/CONTROL @@ -1,4 +1,4 @@ Source: pdal -Version: 1.7.1-5 +Version: 1.7.1-6 Description: PDAL - Point Data Abstraction Library is a library for manipulating point cloud data. Build-Depends: gdal, geos, jsoncpp, libgeotiff, laszip diff --git a/ports/pdal/portfile.cmake b/ports/pdal/portfile.cmake index 650849224..6961199a7 100644 --- a/ports/pdal/portfile.cmake +++ b/ports/pdal/portfile.cmake @@ -1,10 +1,7 @@ -# vcpkg portfile.cmake for PDAL -# -# NOTE: update the version string for new PDAL release -set(PDAL_VERSION_STR "1.7.1") - include(vcpkg_common_functions) +set(PDAL_VERSION_STR "1.7.1") + vcpkg_download_distfile(ARCHIVE URLS "http://download.osgeo.org/pdal/PDAL-${PDAL_VERSION_STR}-src.tar.gz" FILENAME "PDAL-${PDAL_VERSION_STR}-src.tar.gz" diff --git a/ports/pdcurses/CONTROL b/ports/pdcurses/CONTROL index 3ea97de0b..928000072 100644 --- a/ports/pdcurses/CONTROL +++ b/ports/pdcurses/CONTROL @@ -1,4 +1,4 @@ Source: pdcurses -Version: 3.8 +Version: 3.8-1 Homepage: https://sourceforge.net/projects/pdcurses/ Description: Public Domain Curses - a curses library for environments that don't fit the termcap/terminfo model. diff --git a/ports/pdcurses/portfile.cmake b/ports/pdcurses/portfile.cmake index 72c54e403..a1c76fda3 100644 --- a/ports/pdcurses/portfile.cmake +++ b/ports/pdcurses/portfile.cmake @@ -14,21 +14,10 @@ vcpkg_from_github( HEAD_REF master ) -file(REMOVE_RECURSE - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET} -) +set(PDC_NMAKE_CMD ${NMAKE} /A -f ${SOURCE_PATH}/wincon/Makefile.vc WIDE=Y UTF8=Y) -file(GLOB SOURCES ${SOURCE_PATH}/*) - -file(COPY ${SOURCES} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) - -set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}") - -set(PDC_NMAKE_CMD ${NMAKE} /A -f ${SOURCE_PATH}/wincon/Makefile.vc WIDE=Y UTF8=Y) - - -set(PDC_NMAKE_CWD ${SOURCE_PATH}/wincon) -set(PDC_PDCLIB ${SOURCE_PATH}/wincon/pdcurses) +set(PDC_NMAKE_CWD ${SOURCE_PATH}/wincon) +set(PDC_PDCLIB ${SOURCE_PATH}/wincon/pdcurses) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(PDC_NMAKE_CMD ${PDC_NMAKE_CMD} DLL=Y) @@ -73,7 +62,7 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") endif() file( - COPY ${SOURCE_PATH}/curses.h ${SOURCE_PATH}/panel.h + COPY ${SOURCE_PATH}/curses.h ${SOURCE_PATH}/panel.h DESTINATION ${CURRENT_PACKAGES_DIR}/include ) file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/pdcurses RENAME copyright) diff --git a/ports/physfs/CONTROL b/ports/physfs/CONTROL index 07b90bcdf..037db0947 100644 --- a/ports/physfs/CONTROL +++ b/ports/physfs/CONTROL @@ -1,5 +1,5 @@ Source: physfs -Version: 3.0.2 +Version: 3.0.2-1 Homepage: https://icculus.org/physfs/ Description: a library to provide abstract access to various archives Build-Depends: zlib diff --git a/ports/physfs/portfile.cmake b/ports/physfs/portfile.cmake index 92f1cd4ee..2e841ac7e 100644 --- a/ports/physfs/portfile.cmake +++ b/ports/physfs/portfile.cmake @@ -1,11 +1,12 @@ include(vcpkg_common_functions) set(PHYSFS_VERSION 3.0.2) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/physfs-${PHYSFS_VERSION}) + vcpkg_download_distfile(ARCHIVE URLS "https://icculus.org/physfs/downloads/physfs-${PHYSFS_VERSION}.tar.bz2" FILENAME "physfs-${PHYSFS_VERSION}.tar.bz2" SHA512 4024b6c3348e0b6fc1036aac330192112dfe17de3e3d14773be9f06e9a062df5a1006869f21162b4e0b584989f463788a35e64186b1913225c073fea62754472 ) + vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE ${ARCHIVE} @@ -13,12 +14,12 @@ vcpkg_extract_source_archive_ex( ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PHYSFS_STATIC) -string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PHYSFS_SHARED) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PHYSFS_SHARED) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS + OPTIONS -DPHYSFS_BUILD_STATIC=${PHYSFS_STATIC} -DPHYSFS_BUILD_SHARED=${PHYSFS_SHARED} -DPHYSFS_BUILD_TEST=OFF @@ -29,6 +30,4 @@ vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -# Handle copyright -file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/physfs) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/physfs/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/physfs/copyright) +file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/picojson/CONTROL b/ports/picojson/CONTROL index 4a3614202..72ac9c513 100644 --- a/ports/picojson/CONTROL +++ b/ports/picojson/CONTROL @@ -1,5 +1,5 @@ Source: picojson -Version: 1.3.0 +Version: 1.3.0-1 Homepage: https://github.com/kazuho/picojson Description: A header-file-only, JSON parser serializer in C++. diff --git a/ports/picojson/portfile.cmake b/ports/picojson/portfile.cmake index c155275d3..1919e6130 100644 --- a/ports/picojson/portfile.cmake +++ b/ports/picojson/portfile.cmake @@ -1,19 +1,15 @@ - include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/picojson-rel-v1.3.0) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/kazuho/picojson/archive/rel/v1.3.0.zip" - FILENAME "picojson-1.3.0.zip" - SHA512 d1da5748b6a03e92ca4fa475a918842f5eede955f747359fa4d9d85f9ed9efac8b3748a306c2f9f71b9924099ba5e1f8f949e50cdf6f26bc3778865121725ddf + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO kazuho/picojson + REF v1.3.0 + SHA512 76d5a6b3b9e1151198eee707faffcbbba28a2842daccf03d99a5d02ae017f9517ef3ac9da4acc74a4fc1357feaf19e14a15c34698a1d4cb65acb6d23b566b284 + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) -# Put the licence file where vcpkg expects it -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/picojson) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/picojson/LICENSE ${CURRENT_PACKAGES_DIR}/share/picojson/copyright) +file(INSTALL ${SOURCE_PATH}/picojson.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) -# Copy the header files -file(INSTALL ${SOURCE_PATH}/picojson.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/picojson) +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) vcpkg_copy_pdbs() - diff --git a/ports/plib/CONTROL b/ports/plib/CONTROL index b5abf0011..3b6b99c71 100644 --- a/ports/plib/CONTROL +++ b/ports/plib/CONTROL @@ -1,3 +1,3 @@ Source: plib -Version: 1.8.5-3 +Version: 1.8.5-4 Description: A suite of portable game libraries diff --git a/ports/plib/portfile.cmake b/ports/plib/portfile.cmake index ed0f03af0..73fe786ac 100644 --- a/ports/plib/portfile.cmake +++ b/ports/plib/portfile.cmake @@ -2,13 +2,16 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/plib-1.8.5) vcpkg_download_distfile(ARCHIVE URLS "http://plib.sourceforge.net/dist/plib-1.8.5.tar.gz" FILENAME "plib-1.8.5.tar.gz" SHA512 17154cc77243fe576c2bcbcb0285b98aef1a0634658f5473e95fe0ac8fa3ed477dbe5620e44ccf0b7cc616f812af0cd44d6fcbba0c563180d3b61c9d6f158e1d ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) @@ -21,5 +24,4 @@ vcpkg_install_cmake() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -# Handle copyright -file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/plib RENAME copyright) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/pmdk/CONTROL b/ports/pmdk/CONTROL index 803544c91..b0af698c5 100644 --- a/ports/pmdk/CONTROL +++ b/ports/pmdk/CONTROL @@ -1,3 +1,3 @@ Source: pmdk -Version: 1.6-1 +Version: 1.6-3 Description: Persistent Memory Development Kit diff --git a/ports/pmdk/addPowerShellExecutionPolicy.patch b/ports/pmdk/addPowerShellExecutionPolicy.patch deleted file mode 100644 index 692ff176a..000000000 --- a/ports/pmdk/addPowerShellExecutionPolicy.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/src/windows/srcversion/srcversion.vcxproj b/src/windows/srcversion/srcversion.vcxproj -index 8761197..795d1a7 100644 ---- a/src/windows/srcversion/srcversion.vcxproj -+++ b/src/windows/srcversion/srcversion.vcxproj -@@ -72,7 +72,7 @@ - - - -- powershell.exe -file "$(SolutionDir)..\utils\SRCVERSION.ps1" $(SRCVERSION) -+ powershell.exe -ExecutionPolicy Bypass -file "$(SolutionDir)..\utils\SRCVERSION.ps1" $(SRCVERSION) - __NON_EXISTENT_FILE__ - generate srcversion.h - -@@ -99,7 +99,7 @@ - - - -- powershell.exe -file "$(SolutionDir)..\utils\SRCVERSION.ps1" $(SRCVERSION) -+ powershell.exe -ExecutionPolicy Bypass -file "$(SolutionDir)..\utils\SRCVERSION.ps1" $(SRCVERSION) - __NON_EXISTENT_FILE__ - generate srcversion.h - diff --git a/ports/pmdk/portfile.cmake b/ports/pmdk/portfile.cmake index 4bede2bb9..b4ed6c41d 100644 --- a/ports/pmdk/portfile.cmake +++ b/ports/pmdk/portfile.cmake @@ -8,21 +8,16 @@ elseif (TRIPLET_SYSTEM_ARCH MATCHES "x86") message(FATAL_ERROR "x86 is not supported. Please use pmdk:x64-windows instead.") endif() -# Download source +set(PMDK_VERSION "1.6") + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pmem/pmdk - REF 1.6 + REF ${PMDK_VERSION} SHA512 f66e4edf1937d51abfa7c087b65a64109cd3d2a8d9587d6c4fc28a1003d67ec1f35a0011c9a9d0bfe76ad7227be83e86582f8405c988eac828d8ae5d0a399483 HEAD_REF master - PATCHES - "${CMAKE_CURRENT_LIST_DIR}/addPowerShellExecutionPolicy.patch" - "${CMAKE_CURRENT_LIST_DIR}/v141.patch" ) -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/PMDK.sln diff --git a/ports/pmdk/v141.patch b/ports/pmdk/v141.patch deleted file mode 100644 index f77abe93f..000000000 --- a/ports/pmdk/v141.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/common/util.h b/src/common/util.h -index 04b098f..33a64c2 100644 ---- a/src/common/util.h -+++ b/src/common/util.h -@@ -284,7 +284,7 @@ typedef enum { - #error MSVC ports of util_atomic_ only work on X86_64 - #endif - --#if _MSC_VER > 1911 -+#if _MSC_VER >= 2000 - #error util_atomic_ utility functions not tested with this version of VC++ - #error These utility functions are not future proof, as they are not - #error based on publicly available documentation. diff --git a/ports/portmidi/CONTROL b/ports/portmidi/CONTROL index 57550e485..07ba19c0c 100644 --- a/ports/portmidi/CONTROL +++ b/ports/portmidi/CONTROL @@ -1,4 +1,4 @@ Source: portmidi -Version: 0.217.1 +Version: 0.217.1-1 Homepage: https://sourceforge.net/projects/portmedia/ Description: Free, cross-platform, open-source I/O library for MIDI diff --git a/ports/portmidi/portfile.cmake b/ports/portmidi/portfile.cmake index 557f4a1ca..f2f63bfec 100644 --- a/ports/portmidi/portfile.cmake +++ b/ports/portmidi/portfile.cmake @@ -4,13 +4,16 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") message(FATAL_ERROR "WindowsStore not supported") endif() -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/portmidi) vcpkg_download_distfile(ARCHIVE URLS "https://downloads.sourceforge.net/project/portmedia/portmidi/217/portmidi-src-217.zip" FILENAME "portmidi-src-217.zip" SHA512 d08d4d57429d26d292b5fe6868b7c7a32f2f1d2428f6695cd403a697e2d91629bd4380242ab2720e8f21c895bb75cb56b709fb663a20e8e623120e50bfc5d90b ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) # Mark portmidi-static as static, disable pmjni library depending on the Java SDK diff --git a/ports/pqp/CMakeLists.txt b/ports/pqp/CMakeLists.txt index e46f17895..dab50802f 100644 --- a/ports/pqp/CMakeLists.txt +++ b/ports/pqp/CMakeLists.txt @@ -1,12 +1,13 @@ cmake_minimum_required(VERSION 3.0) project(pqp) -include_directories(${SOURCE}/src) +set(SOURCE_CUSTOM_DIR "PQP_v1.3") +include_directories(${SOURCE_CUSTOM_DIR}/src) file(GLOB SRCS - "${SOURCE}/src/*.cpp") + "${SOURCE_CUSTOM_DIR}/src/*.cpp") file(GLOB HDRS - "${SOURCE}/src/*.h") + "${SOURCE_CUSTOM_DIR}/src/*.h") add_library(pqp STATIC ${SRCS}) @@ -18,4 +19,4 @@ install(TARGETS pqp EXPORT pqpConfig foreach (file ${HDRS}) get_filename_component(dir ${file} DIRECTORY) install(FILES ${file} DESTINATION include/ CONFIGURATIONS Release) -endforeach() \ No newline at end of file +endforeach() diff --git a/ports/pqp/CONTROL b/ports/pqp/CONTROL index 35986cf9f..8525cacbf 100644 --- a/ports/pqp/CONTROL +++ b/ports/pqp/CONTROL @@ -1,4 +1,4 @@ Source: pqp -Version: 1.3-3 +Version: 1.3-4 Homepage: https://gamma.cs.unc.edu/SSV/ Description: a proximity query package diff --git a/ports/pqp/fix-math-functions.patch b/ports/pqp/fix-math-functions.patch index 6f81d1b2e..51a4f15d5 100644 --- a/ports/pqp/fix-math-functions.patch +++ b/ports/pqp/fix-math-functions.patch @@ -1,7 +1,5 @@ -diff --git a/src/PQP_Compile.h b/src/PQP_Compile.h -index f76c981..8a70710 100644 ---- a/src/PQP_Compile.h -+++ b/src/PQP_Compile.h +--- a/PQP_v1.3/src/PQP_Compile.h ++++ b/PQP_v1.3/src/PQP_Compile.h @@ -44,10 +44,10 @@ // prevents compiler warnings when PQP_REAL is float diff --git a/ports/pqp/portfile.cmake b/ports/pqp/portfile.cmake index a674e3af3..56b36a0ff 100644 --- a/ports/pqp/portfile.cmake +++ b/ports/pqp/portfile.cmake @@ -2,17 +2,17 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pqp-1.3/PQP_v1.3) vcpkg_download_distfile(ARCHIVE URLS "http://gamma.cs.unc.edu/software/downloads/SSV/pqp-1.3.tar.gz" FILENAME "pqp-1.3.tar.gz" SHA512 baad7b050b13a6d13de5110cdec443048a3543b65b0d3b30d1b5f737b46715052661f762ef71345d39978c0c788a30a3a935717664806b4729722ee3594ebdc1 ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-math-functions.patch" +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + fix-math-functions.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) @@ -20,8 +20,6 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS - -DSOURCE=${SOURCE_PATH} ) vcpkg_install_cmake() diff --git a/ports/proj4/0004-CMake-skip-msvc-check.patch b/ports/proj4/0004-CMake-skip-msvc-check.patch deleted file mode 100644 index be9021da0..000000000 --- a/ports/proj4/0004-CMake-skip-msvc-check.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/project-config-version.cmake.in b/project-config-version.cmake.in -index ce2820c..f90706c 100644 ---- a/project-config-version.cmake.in -+++ b/project-config-version.cmake.in -@@ -18,10 +18,6 @@ elseif (NOT (APPLE OR (NOT DEFINED CMAKE_SIZEOF_VOID_P) OR - # since a multi-architecture library is built for that platform). - set (REASON "sizeof(*void) = @CMAKE_SIZEOF_VOID_P@") - set (PACKAGE_VERSION_UNSUITABLE TRUE) --elseif (MSVC AND NOT MSVC_VERSION STREQUAL "@MSVC_VERSION@") -- # Reject if there's a mismatch in MSVC compiler versions -- set (REASON "_MSC_VER = @MSVC_VERSION@") -- set (PACKAGE_VERSION_UNSUITABLE TRUE) - elseif (NOT CMAKE_CROSSCOMPILING STREQUAL "@CMAKE_CROSSCOMPILING@") - # Reject if there's a mismatch in ${CMAKE_CROSSCOMPILING} - set (REASON "cross-compiling = @CMAKE_CROSSCOMPILING@") diff --git a/ports/proj4/CONTROL b/ports/proj4/CONTROL index f2a6ae8b6..790b8f70f 100644 --- a/ports/proj4/CONTROL +++ b/ports/proj4/CONTROL @@ -1,4 +1,4 @@ Source: proj4 -Version: 4.9.3-4 +Version: 4.9.3-5 Homepage: https://download.osgeo.org/proj Description: PROJ.4 library for cartographic projections diff --git a/ports/proj4/portfile.cmake b/ports/proj4/portfile.cmake index 8ea13cafc..70878aae6 100644 --- a/ports/proj4/portfile.cmake +++ b/ports/proj4/portfile.cmake @@ -16,7 +16,6 @@ vcpkg_extract_source_archive_ex( 0001-CMake-add-detection-of-recent-visual-studio-versions.patch 0002-CMake-fix-error-by-only-setting-properties-for-targe.patch 0003-CMake-configurable-cmake-config-install-location.patch - 0004-CMake-skip-msvc-check.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") diff --git a/ports/pybind11/CONTROL b/ports/pybind11/CONTROL index acaedef63..4b2ae8ca7 100644 --- a/ports/pybind11/CONTROL +++ b/ports/pybind11/CONTROL @@ -1,5 +1,5 @@ Source: pybind11 -Version: 2.3.0 +Version: 2.3.0-1 Homepage: https://github.com/pybind/pybind11 Description: pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code. Build-Depends: python3 (windows) \ No newline at end of file diff --git a/ports/pybind11/aliastemplates.patch b/ports/pybind11/aliastemplates.patch deleted file mode 100644 index a692ad583..000000000 --- a/ports/pybind11/aliastemplates.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 598ec67e4d6727dd9455bcc9959e32fee02a80ac Mon Sep 17 00:00:00 2001 -From: Michael Goulding -Date: Wed, 18 Jul 2018 10:59:15 -0700 -Subject: [PATCH 1/2] VS 15.8.0 Preview 4.0 has a bug with alias templates - ---- - include/pybind11/detail/common.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/pybind11/detail/common.h b/include/pybind11/detail/common.h -index 3c6722891..89d922190 100644 ---- a/include/pybind11/detail/common.h -+++ b/include/pybind11/detail/common.h -@@ -476,7 +476,7 @@ template struct void_t_impl { using type = void; }; - template using void_t = typename void_t_impl::type; - - /// Compile-time all/any/none of that check the boolean value of all template types --#ifdef __cpp_fold_expressions -+#if (!defined(_MSC_VER) || ( _MSC_VER >= 1916 )) && defined(__cpp_fold_expressions) - template using all_of = bool_constant<(Ts::value && ...)>; - template using any_of = bool_constant<(Ts::value || ...)>; - #elif !defined(_MSC_VER) - -From 7d534251ca67c5e725ed549900f04adeb5ddb99e Mon Sep 17 00:00:00 2001 -From: Michael Goulding -Date: Thu, 19 Jul 2018 10:27:41 -0700 -Subject: [PATCH 2/2] Address feedback - ---- - include/pybind11/detail/common.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/pybind11/detail/common.h b/include/pybind11/detail/common.h -index 89d922190..8d65b260d 100644 ---- a/include/pybind11/detail/common.h -+++ b/include/pybind11/detail/common.h -@@ -476,7 +476,7 @@ template struct void_t_impl { using type = void; }; - template using void_t = typename void_t_impl::type; - - /// Compile-time all/any/none of that check the boolean value of all template types --#if (!defined(_MSC_VER) || ( _MSC_VER >= 1916 )) && defined(__cpp_fold_expressions) -+#if defined(__cpp_fold_expressions) && !(defined(_MSC_VER) && (_MSC_VER < 1916)) - template using all_of = bool_constant<(Ts::value && ...)>; - template using any_of = bool_constant<(Ts::value || ...)>; - #elif !defined(_MSC_VER) diff --git a/ports/pybind11/portfile.cmake b/ports/pybind11/portfile.cmake index 71786016d..e97841d32 100644 --- a/ports/pybind11/portfile.cmake +++ b/ports/pybind11/portfile.cmake @@ -6,8 +6,6 @@ vcpkg_from_github( REF e43e1cc01ae6d4e4e5ba10557a057d7f3d5ece0d SHA512 546a0501c420cbbb21fb458192bae6c8d34bdd4bdbfe47fed22869e09429d6404b4e399e30c36c6d658bf8002339d051efde33685b03a00797b9cfe476cfb98e HEAD_REF master - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/aliastemplates.patch ) vcpkg_find_acquire_program(PYTHON3) diff --git a/ports/python2/CONTROL b/ports/python2/CONTROL index c0510dcac..4b03ff8cf 100644 --- a/ports/python2/CONTROL +++ b/ports/python2/CONTROL @@ -1,3 +1,3 @@ Source: python2 -Version: 2.7.15-1 -Description: The Python programming language as an embeddable library \ No newline at end of file +Version: 2.7.15-2 +Description: The Python programming language as an embeddable library diff --git a/ports/python2/portfile.cmake b/ports/python2/portfile.cmake index 0c53ec128..ea11b33b5 100644 --- a/ports/python2/portfile.cmake +++ b/ports/python2/portfile.cmake @@ -1,4 +1,4 @@ -# Patches are from: +# Patches are from: # - https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/tree/master/patches/2.7.13/Windows-MSVC/1900 # - https://github.com/Microsoft/vcpkg/tree/master/ports/python3 @@ -11,21 +11,10 @@ set(PYTHON_VERSION_MAJOR 2) set(PYTHON_VERSION_MINOR 7) set(PYTHON_VERSION_PATCH 15) set(PYTHON_VERSION ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.${PYTHON_VERSION_PATCH}) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/python-${PYTHON_VERSION}) include(vcpkg_common_functions) -vcpkg_download_distfile( - PYTHON_ARCHIVE - URLS https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz - FILENAME Python-${PYTHON_VERSION}.tar.xz - SHA512 27ea43eb45fc68f3d2469d5f07636e10801dee11635a430ec8ec922ed790bb426b072da94df885e4dfa1ea8b7a24f2f56dd92f9b0f51e162330f161216bd6de6 -) - -vcpkg_extract_source_archive(${PYTHON_ARCHIVE}) - set(_PYTHON_PATCHES "") - if (VCPKG_LIBRARY_LINKAGE STREQUAL static) list(APPEND _PYTHON_PATCHES ${CMAKE_CURRENT_LIST_DIR}/004-static-library-msvc.patch @@ -36,8 +25,17 @@ if (VCPKG_CRT_LINKAGE STREQUAL static) list(APPEND _PYTHON_PATCHES ${CMAKE_CURRENT_LIST_DIR}/005-static-crt-msvc.patch) endif() -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} + +vcpkg_download_distfile(ARCHIVE + URLS https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz + FILENAME Python-${PYTHON_VERSION}.tar.xz + SHA512 27ea43eb45fc68f3d2469d5f07636e10801dee11635a430ec8ec922ed790bb426b072da94df885e4dfa1ea8b7a24f2f56dd92f9b0f51e162330f161216bd6de6 +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES PATCHES ${CMAKE_CURRENT_LIST_DIR}/001-build-msvc.patch ${CMAKE_CURRENT_LIST_DIR}/002-build-msvc.patch diff --git a/ports/qcustomplot/portfile.cmake b/ports/qcustomplot/portfile.cmake index 1f3385eb2..d35c67d01 100644 --- a/ports/qcustomplot/portfile.cmake +++ b/ports/qcustomplot/portfile.cmake @@ -1,6 +1,6 @@ include(vcpkg_common_functions) -set(QCP_VERSION 2.0.1) +set(QCP_VERSION 2.0.1) vcpkg_download_distfile(ARCHIVE URLS "https://www.qcustomplot.com/release/${QCP_VERSION}/QCustomPlot.tar.gz" diff --git a/ports/qscintilla/CONTROL b/ports/qscintilla/CONTROL index ee8a7be2f..3e8d82c92 100644 --- a/ports/qscintilla/CONTROL +++ b/ports/qscintilla/CONTROL @@ -1,5 +1,5 @@ Source: qscintilla -Version: 2.10-8 +Version: 2.10-9 Homepage: https://sourceforge.net/projects/pyqt Description: QScintilla is a port to Qt of the Scintilla editing component. Features syntax highlighting, code-completion and much more (Barebone build without python bindings (missing dependeny PyQt) and without QtDesigner plugin) Build-Depends: qt5-base, qt5-macextras (osx), qt5-winextras (windows) diff --git a/ports/qscintilla/portfile.cmake b/ports/qscintilla/portfile.cmake index 111001f12..d979f3135 100644 --- a/ports/qscintilla/portfile.cmake +++ b/ports/qscintilla/portfile.cmake @@ -1,11 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/QScintilla_gpl-2.10) + vcpkg_download_distfile(ARCHIVE URLS "https://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.10/QScintilla_gpl-2.10.zip" FILENAME "QScintilla_gpl-2.10.zip" SHA512 7c580cfee03af1056f530af756a0ff9cc2396a5419fa23aecc66a6bc8809a4fb154788956220bb0b068a5c214d571c053271c3906d6d541196fbbf7c6dbec917 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) vcpkg_find_acquire_program(PYTHON3) diff --git a/ports/qt5-script/CONTROL b/ports/qt5-script/CONTROL old mode 100755 new mode 100644 diff --git a/ports/qt5-script/portfile.cmake b/ports/qt5-script/portfile.cmake old mode 100755 new mode 100644 diff --git a/ports/quickfix/CONTROL b/ports/quickfix/CONTROL index b0d8e7d6b..243a18fee 100644 --- a/ports/quickfix/CONTROL +++ b/ports/quickfix/CONTROL @@ -1,5 +1,5 @@ Source: quickfix -Version: 1.15.1 +Version: 1.15.1-1 Build-Depends: openssl Homepage: https://github.com/quickfix/quickfix Description: QuickFIX is a free and open source implementation of the FIX protocol. diff --git a/ports/quirc/CONTROL b/ports/quirc/CONTROL index 0fedf24c2..039269055 100644 --- a/ports/quirc/CONTROL +++ b/ports/quirc/CONTROL @@ -1,3 +1,3 @@ Source: quirc -Version: 1.0-3 +Version: 1.0-4 Description: quirc is one of the C library available for scanning QR Codes diff --git a/ports/quirc/portfile.cmake b/ports/quirc/portfile.cmake index d45b283b4..5305f0835 100644 --- a/ports/quirc/portfile.cmake +++ b/ports/quirc/portfile.cmake @@ -8,16 +8,12 @@ vcpkg_from_github( REF v1.0 SHA512 a556b08f2e2c710648b342fd06a855aa577b2b8c047c45a1c47cf54cde9963faf612978afba80bfd60a6f4f63156566f549ea303f09ed6e5348c1c30f5d77c13 HEAD_REF master + PATCHES + patch-for-msvc.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/patch-for-msvc.patch -) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/ragel/0001-Remove-unistd.h-include-1.patch b/ports/ragel/0001-Remove-unistd.h-include-1.patch deleted file mode 100644 index 2cdc39b72..000000000 --- a/ports/ragel/0001-Remove-unistd.h-include-1.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 4a337ce9475c75497f4221cadd9d2dd8126835c7 Mon Sep 17 00:00:00 2001 -From: vlj -Date: Tue, 4 Oct 2016 17:54:22 +0200 -Subject: [PATCH 1/2] Remove unistd.h include 1 - ---- - ragel-6.10/ragel/main.cpp | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/ragel-6.10/ragel/main.cpp b/ragel-6.10/ragel/main.cpp -index f5fbd7b..e3bcc18 100644 ---- a/ragel-6.10/ragel/main.cpp -+++ b/ragel-6.10/ragel/main.cpp -@@ -24,7 +24,6 @@ - #include - #include - #include --#include - #include - #include - #include --- -2.10.0.windows.1 - diff --git a/ports/ragel/0001-remove-unistd-h.patch b/ports/ragel/0001-remove-unistd-h.patch new file mode 100644 index 000000000..fba598e0c --- /dev/null +++ b/ports/ragel/0001-remove-unistd-h.patch @@ -0,0 +1,14 @@ +diff --git a/ragel/main.cpp b/ragel/main.cpp +index f5fbd7b..947b1c8 100644 +--- a/ragel/main.cpp ++++ b/ragel/main.cpp +@@ -24,9 +24,7 @@ + #include + #include + #include +-#include + #include +-#include + #include + #include + #include diff --git a/ports/ragel/0002-Remove-unistd.h-include-2.patch b/ports/ragel/0002-Remove-unistd.h-include-2.patch deleted file mode 100644 index b2c0e497a..000000000 --- a/ports/ragel/0002-Remove-unistd.h-include-2.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 259bb8be3f66e32063652cb4f1a456b7327ca513 Mon Sep 17 00:00:00 2001 -From: vlj -Date: Tue, 4 Oct 2016 17:54:38 +0200 -Subject: [PATCH 2/2] Remove unistd.h include 2 - ---- - ragel-6.10/ragel/main.cpp | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/ragel-6.10/ragel/main.cpp b/ragel-6.10/ragel/main.cpp -index e3bcc18..947b1c8 100644 ---- a/ragel-6.10/ragel/main.cpp -+++ b/ragel-6.10/ragel/main.cpp -@@ -25,7 +25,6 @@ - #include - #include - #include --#include - #include - #include - #include --- -2.10.0.windows.1 - diff --git a/ports/ragel/CONTROL b/ports/ragel/CONTROL index 1e23db117..abec9f49a 100644 --- a/ports/ragel/CONTROL +++ b/ports/ragel/CONTROL @@ -1,4 +1,4 @@ Source: ragel -Version: 6.10-2 +Version: 6.10-3 Homepage: https://www.colm.net/files/ragel Description: Ragel State Machine Compiler diff --git a/ports/ragel/portfile.cmake b/ports/ragel/portfile.cmake index 820ded5df..037f34289 100644 --- a/ports/ragel/portfile.cmake +++ b/ports/ragel/portfile.cmake @@ -1,22 +1,21 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ragel-6.10) + vcpkg_download_distfile(ARCHIVE URLS "http://www.colm.net/files/ragel/ragel-6.10.tar.gz" FILENAME "ragel-6.10.tar.gz" SHA512 6c1fe4f6fa8546ae28b92ccfbae94355ff0d3cea346b9ae8ce4cf6c2bdbeb823e0ccd355332643ea72d3befd533a8b3030ddbf82be7ffa811c2c58cbb01aaa38 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + 0001-remove-unistd-h.patch +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h DESTINATION ${SOURCE_PATH}/ragel) -vcpkg_apply_patches( - SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src - PATCHES - "${CMAKE_CURRENT_LIST_DIR}/0001-Remove-unistd.h-include-1.patch" - "${CMAKE_CURRENT_LIST_DIR}/0002-Remove-unistd.h-include-2.patch" -) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/rapidjson/CONTROL b/ports/rapidjson/CONTROL index 53d344628..b0b944f01 100644 --- a/ports/rapidjson/CONTROL +++ b/ports/rapidjson/CONTROL @@ -1,4 +1,4 @@ Source: rapidjson -Version: d87b698-1 +Version: 2019-06-28 Description: A fast JSON parser/generator for C++ with both SAX/DOM style API Homepage: http://rapidjson.org/ \ No newline at end of file diff --git a/ports/rapidjson/arm64-endian.patch b/ports/rapidjson/arm64-endian.patch deleted file mode 100644 index 81fd92132..000000000 --- a/ports/rapidjson/arm64-endian.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/include/rapidjson/rapidjson.h b/include/rapidjson/rapidjson.h -index 053b2ce..1e0b8f3 100644 ---- a/include/rapidjson/rapidjson.h -+++ b/include/rapidjson/rapidjson.h -@@ -236,7 +236,7 @@ - # define RAPIDJSON_ENDIAN RAPIDJSON_BIGENDIAN - # elif defined(__i386__) || defined(__alpha__) || defined(__ia64) || defined(__ia64__) || defined(_M_IX86) || defined(_M_IA64) || defined(_M_ALPHA) || defined(__amd64) || defined(__amd64__) || defined(_M_AMD64) || defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || defined(__bfin__) - # define RAPIDJSON_ENDIAN RAPIDJSON_LITTLEENDIAN --# elif defined(_MSC_VER) && defined(_M_ARM) -+# elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64)) - # define RAPIDJSON_ENDIAN RAPIDJSON_LITTLEENDIAN - # elif defined(RAPIDJSON_DOXYGEN_RUNNING) - # define RAPIDJSON_ENDIAN diff --git a/ports/rapidjson/portfile.cmake b/ports/rapidjson/portfile.cmake index 7438c0e33..da251429d 100644 --- a/ports/rapidjson/portfile.cmake +++ b/ports/rapidjson/portfile.cmake @@ -7,7 +7,6 @@ vcpkg_from_github( REF d87b698d0fcc10a5f632ecbc80a9cb2a8fa094a5 SHA512 1770668c954e1bfa40da3956ccf2252703d2addb058bb8c0bf579abac585262452d0e15dcfed9ac2fa358c0da305d706226fdab8310b584017aba98e4f31db4f HEAD_REF master - PATCHES arm64-endian.patch ) # Use RapidJSON's own build process, skipping examples and tests @@ -22,17 +21,14 @@ vcpkg_configure_cmake( ) vcpkg_install_cmake() -# Move CMake config files to the right place vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) -# Delete redundant directories file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/share/doc) -# Put the licence file where vcpkg expects it -file(COPY ${SOURCE_PATH}/license.txt ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/rapidjson) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/rapidjson/license.txt ${CURRENT_PACKAGES_DIR}/share/rapidjson/copyright) - file(READ "${CURRENT_PACKAGES_DIR}/share/rapidjson/RapidJSONConfig.cmake" _contents) string(REPLACE "\${RapidJSON_SOURCE_DIR}" "\${RapidJSON_CMAKE_DIR}/../.." _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/rapidjson/RapidJSONConfig.cmake" "${_contents}\nset(RAPIDJSON_INCLUDE_DIRS \"\${RapidJSON_INCLUDE_DIRS}\")\n") -# Note: adding this extra setting for RAPIDJSON_INCLUDE_DIRS maintains compatibility with previous rapidjson versions + +file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) + diff --git a/ports/rapidxml/CONTROL b/ports/rapidxml/CONTROL index bfc1eb77b..672fe47d2 100644 --- a/ports/rapidxml/CONTROL +++ b/ports/rapidxml/CONTROL @@ -1,4 +1,4 @@ Source: rapidxml -Version: 1.13 +Version: 1.13-1 Homepage: https://sourceforge.net/projects/rapidxml Description: RapidXml is an attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility. diff --git a/ports/rapidxml/portfile.cmake b/ports/rapidxml/portfile.cmake index dd8f0d4c2..ef0cd959a 100644 --- a/ports/rapidxml/portfile.cmake +++ b/ports/rapidxml/portfile.cmake @@ -1,12 +1,16 @@ #header-only library include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/rapidxml-1.13) + vcpkg_download_distfile(ARCHIVE URLS "https://sourceforge.net/projects/rapidxml/files/rapidxml/rapidxml%201.13/rapidxml-1.13.zip/download" FILENAME "rapidxml-1.13.zip" SHA512 6c10583e6631ccdb0217d0a5381172cb4c1046226de6ef1acf398d85e81d145228e14c3016aefcd7b70a1db8631505b048d8b4f5d4b0dbf1811d2482eefdd265 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) # Handle copyright file(COPY ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/rapidxml) diff --git a/ports/readline-win32/portfile.cmake b/ports/readline-win32/portfile.cmake index 51ad377e7..b7c60e073 100644 --- a/ports/readline-win32/portfile.cmake +++ b/ports/readline-win32/portfile.cmake @@ -8,13 +8,11 @@ vcpkg_from_github( HEAD_REF master ) -set(SOURCE_PATH "${SOURCE_PATH}/src/readline/5.0/readline-5.0-src") - -file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/src/readline/5.0/readline-5.0-src) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h DESTINATION ${SOURCE_PATH}/src/readline/5.0/readline-5.0-src) vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} + SOURCE_PATH ${SOURCE_PATH}/src/readline/5.0/readline-5.0-src PREFER_NINJA ) @@ -22,10 +20,9 @@ vcpkg_install_cmake() # Copy headers file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include/readline) -file(GLOB headers "${SOURCE_PATH}/*.h") +file(GLOB headers "${SOURCE_PATH}/src/readline/5.0/readline-5.0-src/*.h") file(COPY ${headers} DESTINATION ${CURRENT_PACKAGES_DIR}/include/readline) vcpkg_copy_pdbs() -# Handle copyright -file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +file(INSTALL ${SOURCE_PATH}/src/readline/5.0/readline-5.0-src/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/readosm/CONTROL b/ports/readosm/CONTROL index caf32bf4b..104ef3b5c 100644 --- a/ports/readosm/CONTROL +++ b/ports/readosm/CONTROL @@ -1,5 +1,5 @@ Source: readosm -Version: 1.1.0-1 +Version: 1.1.0-2 Homepage: https://www.gaia-gis.it/gaia-sins/readosm-sources Description: ReadOSM is an open source library to extract valid data from within an Open Street Map input file (.osm or .osm.pbf) Build-Depends: expat, zlib diff --git a/ports/readosm/portfile.cmake b/ports/readosm/portfile.cmake index 5bd5a134f..8059a6ffa 100644 --- a/ports/readosm/portfile.cmake +++ b/ports/readosm/portfile.cmake @@ -1,17 +1,17 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/readosm-1.1.0) + vcpkg_download_distfile(ARCHIVE URLS "http://www.gaia-gis.it/gaia-sins/readosm-sources/readosm-1.1.0.tar.gz" FILENAME "readosm-1.1.0.tar.gz" SHA512 d3581f564c4461c6a1a3d5fd7d18a262c884b2ac935530064bfaebd6c05d692fb92cc600fb40e87e03f7160ebf0eeeb05f51a0e257935d056b233fe28fc01a11 ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-version-macro.patch + fix-makefiles.patch + fix-version-macro.patch ) find_program(NMAKE nmake) diff --git a/ports/restbed/CONTROL b/ports/restbed/CONTROL index 53f6ea0de..7259f92c6 100644 --- a/ports/restbed/CONTROL +++ b/ports/restbed/CONTROL @@ -1,8 +1,8 @@ Source: restbed -Version: 4.16-07-28-2018-1 +Version: 4.16-07-28-2018-2 Description: Corvusoft's Restbed framework brings asynchronous RESTful functionality to C++11 applications. Build-Depends: asio Feature: openssl Build-Depends: openssl -Description: Secure over the wire communication allowing you to transmit private data online. \ No newline at end of file +Description: Secure over the wire communication allowing you to transmit private data online. diff --git a/ports/restbed/portfile.cmake b/ports/restbed/portfile.cmake index 7b4a2d944..5c653bd4f 100644 --- a/ports/restbed/portfile.cmake +++ b/ports/restbed/portfile.cmake @@ -2,24 +2,23 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) +set(USE_OPENSSL OFF) +if("openssl" IN_LIST FEATURES) + set(ADDITIONAL_PATCH "add_openssl_support.patch") + set(USE_OPENSSL ON) +endif() + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Corvusoft/restbed REF 0f8af8d8ed183a88e208adeb22da0080d5d74d1e SHA512 f0175a10c88f1ad4f16c8e4cff7ceea7b80c56b0724b59791c23e91f1ecf146dfdbda9e9238d31a35f21d8cdcc413b586cc633725dd0ba87de6b599a7087916f HEAD_REF master - PATCHES cmake.patch + PATCHES + cmake.patch + ${ADDITIONAL_PATCH} ) -set(USE_OPENSSL OFF) -if("openssl" IN_LIST FEATURES) - vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES add_openssl_support.patch - ) - set(USE_OPENSSL ON) -endif() - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/rxcpp/CONTROL b/ports/rxcpp/CONTROL index cbf204688..b34395f12 100644 --- a/ports/rxcpp/CONTROL +++ b/ports/rxcpp/CONTROL @@ -1,4 +1,4 @@ Source: rxcpp -Version: 4.1.0 -Homepage: https://github.com/ReactiveX/RxCpp +Version: 4.1.0-1 +Homepage: https://github.com/Reactive-Extensions/RxCpp Description: Reactive Extensions for C++ diff --git a/ports/rxcpp/portfile.cmake b/ports/rxcpp/portfile.cmake index 538551e70..b98701132 100644 --- a/ports/rxcpp/portfile.cmake +++ b/ports/rxcpp/portfile.cmake @@ -1,7 +1,3 @@ -#header-only library -include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/RxCpp-4.1.0) - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ReactiveX/RxCpp diff --git a/ports/sais/CONTROL b/ports/sais/CONTROL index 3c6262c6b..a889a827f 100644 --- a/ports/sais/CONTROL +++ b/ports/sais/CONTROL @@ -1,3 +1,3 @@ Source: sais -Version: 2.4.1 +Version: 2.4.1-1 Description: An implementation of the induced sorting algorithm diff --git a/ports/sais/portfile.cmake b/ports/sais/portfile.cmake index 0387f1313..0e68fccc1 100644 --- a/ports/sais/portfile.cmake +++ b/ports/sais/portfile.cmake @@ -1,12 +1,16 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sais-2.4.1) + vcpkg_download_distfile(ARCHIVE URLS "https://sites.google.com/site/yuta256/sais-2.4.1.zip" FILENAME "sais-2.4.1.zip" SHA512 6f6dd11f842f680bebc1d9b7f6b75752c9589c600fdd5e6373bb7290a686f1de35d4cc3226347e717f89a295363f7fee0ae8b1aa05ad341f4c2ea056fb5b1425 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -20,7 +24,4 @@ vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - - -# Handle copyright -file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/sais RENAME copyright) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/sciter/CONTROL b/ports/sciter/CONTROL index 0cd3bb219..10beb200a 100644 --- a/ports/sciter/CONTROL +++ b/ports/sciter/CONTROL @@ -1,5 +1,4 @@ Source: sciter -Version: 4.2.6.9-1 +Version: 4.2.6.9-2 Homepage: https://github.com/c-smile/sciter-sdk Description: Sciter is an embeddable HTML/CSS/scripting engine. -Maintainer: andrew.fedoniouk@gmail.com, ehysta@gmail.com diff --git a/ports/sciter/portfile.cmake b/ports/sciter/portfile.cmake index d94cc5469..05fb42408 100644 --- a/ports/sciter/portfile.cmake +++ b/ports/sciter/portfile.cmake @@ -6,7 +6,6 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") message(FATAL_ERROR "Sciter only supports Windows Desktop") endif() - # header-only library set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) @@ -19,20 +18,13 @@ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x86) set(SCITER_ARCH 32) endif() - -# check out the `https://github.com/c-smile/sciter-sdk/archive/${SCITER_REVISION}.tar.gz` -# hash checksum can be obtained with `curl -L -o tmp.tgz ${URL} && vcpkg hash tmp.tgz` vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO c-smile/sciter-sdk REF ${SCITER_REVISION} SHA512 ${SCITER_SHA} -) - -# disable stdafx.h -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001_patch_stdafx.patch + PATCHES + 0001_patch_stdafx.patch ) # install include directory diff --git a/ports/sdl1-net/portfile.cmake b/ports/sdl1-net/portfile.cmake index 8bdf4bd3c..0c1d0e130 100644 --- a/ports/sdl1-net/portfile.cmake +++ b/ports/sdl1-net/portfile.cmake @@ -1,12 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SDL_net-1.2.8) + vcpkg_download_distfile(ARCHIVE URLS "https://www.libsdl.org/projects/SDL_net/release/SDL_net-1.2.8.tar.gz" FILENAME "SDL_net-1.2.8.tar.gz" SHA512 2766ca55343127c619958ab3a3ae3052a27a676839f10a158f7dfc071b8db38c2f1fc853e8add32b9fef94ab07eaa986f46a68e264e8087b57c990af30ea9a0b ) -vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/sdl2-net/CONTROL b/ports/sdl2-net/CONTROL index 9270c5a82..6b4d33ead 100644 --- a/ports/sdl2-net/CONTROL +++ b/ports/sdl2-net/CONTROL @@ -1,5 +1,5 @@ Source: sdl2-net -Version: 2.0.1-7 +Version: 2.0.1-8 Homepage: https://www.libsdl.org/projects/SDL_net Description: Networking library for SDL Build-Depends: sdl2 diff --git a/ports/sdl2-net/portfile.cmake b/ports/sdl2-net/portfile.cmake index b047be96b..70cea05c8 100644 --- a/ports/sdl2-net/portfile.cmake +++ b/ports/sdl2-net/portfile.cmake @@ -1,11 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SDL2_net-2.0.1) + vcpkg_download_distfile(ARCHIVE URLS "https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.0.1.tar.gz" FILENAME "SDL2_net-2.0.1.tar.gz" - SHA512 d27faee3cddc3592dae38947e6c1df0cbaa95f82fde9c87db6d11f6312d868cea74f6830ad07ceeb3d0d75e9424cebf39e54fddf9a1147e8d9e664609de92b7a) + SHA512 d27faee3cddc3592dae38947e6c1df0cbaa95f82fde9c87db6d11f6312d868cea74f6830ad07ceeb3d0d75e9424cebf39e54fddf9a1147e8d9e664609de92b7a +) -vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) @@ -21,5 +25,4 @@ vcpkg_fixup_cmake_targets() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -file(COPY ${SOURCE_PATH}/COPYING.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sdl2-net) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/sdl2-net/COPYING.txt ${CURRENT_PACKAGES_DIR}/share/sdl2-net/copyright) +file(INSTALL ${SOURCE_PATH}/COPYING.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/seqan/CONTROL b/ports/seqan/CONTROL index 09185ccf4..82b7aae89 100644 --- a/ports/seqan/CONTROL +++ b/ports/seqan/CONTROL @@ -1,3 +1,3 @@ Source: seqan -Version: 2.4.0 +Version: 2.4.0-1 Description: SeqAn is an open source C++ library of efficient algorithms and data structures for the analysis of sequences with the focus on biological data. diff --git a/ports/seqan/portfile.cmake b/ports/seqan/portfile.cmake index 8741a7090..1fef42f0a 100644 --- a/ports/seqan/portfile.cmake +++ b/ports/seqan/portfile.cmake @@ -1,14 +1,16 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/seqan-library-2.4.0) + vcpkg_download_distfile(ARCHIVE URLS "http://packages.seqan.de/seqan-library/seqan-library-2.4.0.zip" FILENAME "seqan-library-2.4.0.zip" SHA512 9a1b4fe9dff9ad49a8761798a6a6eaeebce683ccb5e2dd78ea4b8829093918606830a16ea458d67bf3f652531ddc55b550c12cb257be913bb187c8940d96a575 ) -vcpkg_extract_source_archive(${ARCHIVE}) -# Handle copyright -file(INSTALL ${SOURCE_PATH}/share/doc/seqan/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/seqan RENAME copyright) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) -# Copy the seqan header files file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.h") + +file(INSTALL ${SOURCE_PATH}/share/doc/seqan/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/seqan RENAME copyright) diff --git a/ports/sfgui/CONTROL b/ports/sfgui/CONTROL index cd9f17ab9..944b8df2c 100644 --- a/ports/sfgui/CONTROL +++ b/ports/sfgui/CONTROL @@ -1,5 +1,5 @@ Source: sfgui -Version: 0.4.0 +Version: 0.4.0-2 Homepage: https://github.com/TankOs/SFGUI Description: simple and fast graphical user interface library Build-Depends: sfml diff --git a/ports/sfgui/portfile.cmake b/ports/sfgui/portfile.cmake index 16eeb5618..9ab01a19e 100644 --- a/ports/sfgui/portfile.cmake +++ b/ports/sfgui/portfile.cmake @@ -6,7 +6,6 @@ vcpkg_from_github( REF 0.4.0 SHA512 15456c6080b7095bcdcec08489b2b91b5cfc36cdf3c0b645b305072e7e835837eb4f95b59371ff176630b2b7ae51da475d8ea0bde5ff7fc0ba74c463bf5f54cf HEAD_REF master - PATCHES "${CMAKE_CURRENT_LIST_DIR}/use-sfml-targets.patch" ) file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindSFML.cmake) @@ -16,7 +15,7 @@ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SFGUI_BUILD_SHARED_LIB vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS + OPTIONS -DSFGUI_BUILD_DOC=OFF -DSFGUI_BUILD_EXAMPLES=OFF -DSFGUI_BUILD_SHARED_LIBS=${SFGUI_BUILD_SHARED_LIBS} @@ -24,13 +23,16 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_copy_pdbs() - -file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfgui RENAME copyright) +if(VCPKG_TARGET_IS_WINDOWS) + vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) + file(GLOB_RECURSE SFGUI_DOC_RELEASE ${CURRENT_PACKAGES_DIR}/*.md) + file(GLOB_RECURSE SFGUI_DOC_DEBUG ${CURRENT_PACKAGES_DIR}/debug/*.md) + file(REMOVE ${SFGUI_DOC_RELEASE} ${SFGUI_DOC_DEBUG}) +else() + vcpkg_fixup_cmake_targets(CONFIG_PATH share/SFGUI/cmake) +endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/cmake) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -file(GLOB_RECURSE SFGUI_DOC_RELEASE ${CURRENT_PACKAGES_DIR}/*.md) -file(GLOB_RECURSE SFGUI_DOC_DEBUG ${CURRENT_PACKAGES_DIR}/debug/*.md) -file(REMOVE ${SFGUI_DOC_RELEASE} ${SFGUI_DOC_DEBUG}) +file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfgui RENAME copyright) diff --git a/ports/sfgui/use-sfml-targets.patch b/ports/sfgui/use-sfml-targets.patch deleted file mode 100644 index 337949f5a..000000000 --- a/ports/sfgui/use-sfml-targets.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index abc9be0..eb999f5 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -190,7 +190,6 @@ endif() - - include_directories( "${INCLUDE_PATH}" ) - include_directories( "${SOURCE_PATH}" ) --include_directories( SYSTEM "${SFML_INCLUDE_DIR}" ) - include_directories( SYSTEM "${PROJECT_SOURCE_DIR}/extlibs/libELL/include" ) - - # Set the library output directory -@@ -244,7 +243,7 @@ if( WIN32 ) - endif() - - add_definitions( -DWIN32 ) -- target_link_libraries( sfgui ${SFML_LIBRARIES} ${SFML_DEPENDENCIES} ${OPENGL_gl_LIBRARY} ) -+ target_link_libraries( sfgui sfml-graphics sfml-window sfml-system ${OPENGL_gl_LIBRARY} ) - - if( CMAKE_COMPILER_IS_GNUCXX ) - if( SFGUI_BUILD_SHARED_LIBS ) -@@ -261,11 +260,11 @@ elseif( APPLE ) - mark_as_advanced( COREFOUNDATION_LIBRARY ) - - include_directories( SYSTEM /System/Library/Frameworks/CoreFoundation.framework/Headers ) -- target_link_libraries( sfgui ${SFML_LIBRARIES} ${SFML_DEPENDENCIES} ${OPENGL_gl_LIBRARY} ${COREFOUNDATION_LIBRARY} ) -+ target_link_libraries( sfgui sfml-graphics sfml-window sfml-system ${OPENGL_gl_LIBRARY} ${COREFOUNDATION_LIBRARY} ) - set( SHARE_PATH "${CMAKE_INSTALL_PREFIX}/share/SFGUI" ) - set( LIB_PATH "lib" ) - elseif( "${CMAKE_SYSTEM_NAME}" MATCHES "Linux" ) -- target_link_libraries( sfgui ${SFML_LIBRARIES} ${SFML_DEPENDENCIES} ${OPENGL_gl_LIBRARY} ${X11_LIBRARIES} ) -+ target_link_libraries( sfgui sfml-graphics sfml-window sfml-system ${OPENGL_gl_LIBRARY} ${X11_LIBRARIES} ) - set( SHARE_PATH "${CMAKE_INSTALL_PREFIX}/share/SFGUI" ) - - if( LIB_SUFFIX ) -@@ -274,7 +273,7 @@ elseif( "${CMAKE_SYSTEM_NAME}" MATCHES "Linux" ) - set( LIB_PATH "lib" ) - endif() - else() -- target_link_libraries( sfgui ${SFML_LIBRARIES} ${SFML_DEPENDENCIES} ${OPENGL_gl_LIBRARY} ) -+ target_link_libraries( sfgui sfml-graphics sfml-window sfml-system ${OPENGL_gl_LIBRARY} ) - set( SHARE_PATH "${CMAKE_INSTALL_PREFIX}/share/SFGUI" ) - set( LIB_PATH "lib" ) - endif() diff --git a/ports/sfml/CONTROL b/ports/sfml/CONTROL index 606095d88..4aa91716f 100644 --- a/ports/sfml/CONTROL +++ b/ports/sfml/CONTROL @@ -1,5 +1,5 @@ -Source: sfml -Version: 2.5.1-2 -Homepage: https://github.com/sfml/sfml -Description: Simple and fast multimedia library -Build-Depends: freetype, libflac, libogg, libvorbis, openal-soft, stb +Source: sfml +Version: 2.5.1-3 +Homepage: https://github.com/sfml/sfml +Description: Simple and fast multimedia library +Build-Depends: freetype, libflac, libogg, libvorbis, openal-soft, stb diff --git a/ports/sfml/portfile.cmake b/ports/sfml/portfile.cmake index 2281d5ac3..793489b97 100644 --- a/ports/sfml/portfile.cmake +++ b/ports/sfml/portfile.cmake @@ -1,57 +1,57 @@ - -include(vcpkg_common_functions) -vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH - REPO SFML/SFML - REF 2.5.1 - HEAD_REF master - SHA512 7aed2fc29d1da98e6c4d598d5c86cf536cb4eb5c2079cdc23bb8e502288833c052579dadbe0ce13ad6461792d959bf6d9660229f54c54cf90a541c88c6b03d59 - PATCHES use-system-freetype.patch -) - -file(REMOVE_RECURSE ${SOURCE_PATH}/extlibs) -# Without this, we get error: list sub-command REMOVE_DUPLICATES requires list to be present. -file(MAKE_DIRECTORY ${SOURCE_PATH}/extlibs/libs) -file(WRITE ${SOURCE_PATH}/extlibs/libs/x "") -# The embedded FindFreetype doesn't properly handle debug libraries -file(REMOVE_RECURSE ${SOURCE_PATH}/cmake/Modules/FindFreetype.cmake) - -if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - message("SFML currently requires the following libraries from the system package manager:\n libudev\n libx11\n libxrandr\n opengl\n\nThese can be installed on Ubuntu systems via apt-get install libx11-dev libxrandr-dev libxi-dev libudev-dev libgl1-mesa-dev") -endif() - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS - -DSFML_BUILD_FRAMEWORKS=OFF - -DSFML_USE_SYSTEM_DEPS=ON - -DSFML_MISC_INSTALL_PREFIX=share/sfml - -DSFML_GENERATE_PDB=OFF -) - -vcpkg_install_cmake() -vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/SFML) -vcpkg_copy_pdbs() - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - FILE(READ ${CURRENT_PACKAGES_DIR}/share/sfml/SFMLConfig.cmake SFML_CONFIG) - FILE(WRITE ${CURRENT_PACKAGES_DIR}/share/sfml/SFMLConfig.cmake "set(SFML_STATIC_LIBRARIES true)\ninclude(CMakeFindDependencyMacro)\nfind_dependency(Freetype)\n${SFML_CONFIG}") -endif() - -# move sfml-main to manual link dir -if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib) - file(COPY ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) - file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib) - file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) - file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib) - file(GLOB FILES "${CURRENT_PACKAGES_DIR}/share/sfml/SFML*Targets-*.cmake") - foreach(FILE ${FILES}) - file(READ "${FILE}" _contents) - string(REPLACE "/lib/sfml-main" "/lib/manual-link/sfml-main" _contents "${_contents}") - file(WRITE "${FILE}" "${_contents}") - endforeach() -endif() - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) - -file(INSTALL ${SOURCE_PATH}/license.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfml RENAME copyright) + +include(vcpkg_common_functions) +vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH + REPO SFML/SFML + REF 2.5.1 + HEAD_REF master + SHA512 7aed2fc29d1da98e6c4d598d5c86cf536cb4eb5c2079cdc23bb8e502288833c052579dadbe0ce13ad6461792d959bf6d9660229f54c54cf90a541c88c6b03d59 + PATCHES use-system-freetype.patch +) + +file(REMOVE_RECURSE ${SOURCE_PATH}/extlibs) +# Without this, we get error: list sub-command REMOVE_DUPLICATES requires list to be present. +file(MAKE_DIRECTORY ${SOURCE_PATH}/extlibs/libs) +file(WRITE ${SOURCE_PATH}/extlibs/libs/x "") +# The embedded FindFreetype doesn't properly handle debug libraries +file(REMOVE_RECURSE ${SOURCE_PATH}/cmake/Modules/FindFreetype.cmake) + +if(VCPKG_TARGET_IS_LINUX) + message(STATUS "SFML currently requires the following libraries from the system package manager:\n libudev\n libx11\n libxrandr\n opengl\n\nThese can be installed on Ubuntu systems via apt-get install libx11-dev libxrandr-dev libxi-dev libudev-dev libgl1-mesa-dev") +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DSFML_BUILD_FRAMEWORKS=OFF + -DSFML_USE_SYSTEM_DEPS=ON + -DSFML_MISC_INSTALL_PREFIX=share/sfml + -DSFML_GENERATE_PDB=OFF +) + +vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/SFML) +vcpkg_copy_pdbs() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + FILE(READ ${CURRENT_PACKAGES_DIR}/share/sfml/SFMLConfig.cmake SFML_CONFIG) + FILE(WRITE ${CURRENT_PACKAGES_DIR}/share/sfml/SFMLConfig.cmake "set(SFML_STATIC_LIBRARIES true)\ninclude(CMakeFindDependencyMacro)\nfind_dependency(Freetype)\n${SFML_CONFIG}") +endif() + +# move sfml-main to manual link dir +if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib) + file(COPY ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib) + file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib) + file(GLOB FILES "${CURRENT_PACKAGES_DIR}/share/sfml/SFML*Targets-*.cmake") + foreach(FILE ${FILES}) + file(READ "${FILE}" _contents) + string(REPLACE "/lib/sfml-main" "/lib/manual-link/sfml-main" _contents "${_contents}") + file(WRITE "${FILE}" "${_contents}") + endforeach() +endif() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) + +file(INSTALL ${SOURCE_PATH}/license.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfml RENAME copyright) diff --git a/ports/sfml/use-system-freetype.patch b/ports/sfml/use-system-freetype.patch index c58fc1b95..4d895b741 100644 --- a/ports/sfml/use-system-freetype.patch +++ b/ports/sfml/use-system-freetype.patch @@ -1,13 +1,11 @@ -diff --git a/src/sfml/Graphics/CMakeLists.txt b/src/sfml/Graphics/CMakeLists.txt -index 883c758..76f3b6f 100644 ---- a/src/sfml/Graphics/CMakeLists.txt -+++ b/src/sfml/Graphics/CMakeLists.txt -@@ -135,7 +135,7 @@ if(SFML_OS_ANDROID) - endif() - - sfml_find_package(Freetype INCLUDE "FREETYPE_INCLUDE_DIRS" LINK "FREETYPE_LIBRARY") --target_link_libraries(sfml-graphics PRIVATE Freetype) -+target_link_libraries(sfml-graphics PRIVATE Freetype::Freetype) - - # add preprocessor symbols - target_compile_definitions(sfml-graphics PRIVATE "STBI_FAILURE_USERMSG") +--- a/src/SFML/Graphics/CMakeLists.txt ++++ b/src/SFML/Graphics/CMakeLists.txt +@@ -135,7 +135,7 @@ if(SFML_OS_ANDROID) + endif() + + sfml_find_package(Freetype INCLUDE "FREETYPE_INCLUDE_DIRS" LINK "FREETYPE_LIBRARY") +-target_link_libraries(sfml-graphics PRIVATE Freetype) ++target_link_libraries(sfml-graphics PRIVATE Freetype::Freetype) + + # add preprocessor symbols + target_compile_definitions(sfml-graphics PRIVATE "STBI_FAILURE_USERMSG") diff --git a/ports/shapelib/CONTROL b/ports/shapelib/CONTROL index 338be3ebe..283b66b44 100644 --- a/ports/shapelib/CONTROL +++ b/ports/shapelib/CONTROL @@ -1,4 +1,4 @@ Source: shapelib -Version: 1.4.1-1 +Version: 1.4.1-2 Homepage: https://download.osgeo.org/shapelib Description: Shapefile C Library is simple C API for reading and writing ESRI Shapefiles diff --git a/ports/shapelib/portfile.cmake b/ports/shapelib/portfile.cmake index eed76736f..788e21e2e 100644 --- a/ports/shapelib/portfile.cmake +++ b/ports/shapelib/portfile.cmake @@ -2,18 +2,18 @@ include(vcpkg_common_functions) set(SHAPELIB_VERSION 1.4.1) set(SHAPELIB_HASH e3e02dde8006773fed25d630896e79fd79d2008a029cc86b157fe0d92c143a9fab930fdb93d9700d4e1397c3b23ae4b86e91db1dbaca1c5388d4e3aea0309341) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/shapelib-${SHAPELIB_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "http://download.osgeo.org/shapelib/shapelib-${SHAPELIB_VERSION}.zip" FILENAME "shapelib-${SHAPELIB_VERSION}.zip" SHA512 ${SHAPELIB_HASH} ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/option-build-test.patch +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + option-build-test.patch ) vcpkg_configure_cmake( diff --git a/ports/so5extra/CONTROL b/ports/so5extra/CONTROL index fbe4a1e16..f64744684 100644 --- a/ports/so5extra/CONTROL +++ b/ports/so5extra/CONTROL @@ -1,4 +1,4 @@ Source: so5extra -Version: 1.3.1-1 +Version: 1.3.1-2 Description: A set of additional tools for SObjectizer framework. Build-Depends: sobjectizer diff --git a/ports/so5extra/portfile.cmake b/ports/so5extra/portfile.cmake index 71e1cb443..506dd363c 100644 --- a/ports/so5extra/portfile.cmake +++ b/ports/so5extra/portfile.cmake @@ -1,17 +1,20 @@ include(vcpkg_common_functions) set(VERSION 1.3.1) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/so5extra-${VERSION}/dev/so_5_extra) vcpkg_download_distfile(ARCHIVE URLS "https://sourceforge.net/projects/sobjectizer/files/sobjectizer/so_5_extra/so5extra-${VERSION}.tar.bz2/download" FILENAME "so5extra-${VERSION}.tar.bz2" SHA512 58532426f85121f8f6c3b18a70950c048c8a695a7fca7be5d9c95434bdabdb2bfcf73d755737434a8d8aa5f3051785e13e7e293e057527c72047dad293a56ae7 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} + SOURCE_PATH ${SOURCE_PATH}/dev/so_5_extra PREFER_NINJA OPTIONS -DSO5EXTRA_INSTALL=ON @@ -20,9 +23,6 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/so5extra) -# Remove unnecessary stuff. -# These paths are empty and should be removed too. file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib ${CURRENT_PACKAGES_DIR}/debug) -# Handle copyright -file(INSTALL ${SOURCE_PATH}/../../LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/so5extra RENAME copyright) +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/so5extra RENAME copyright) diff --git a/ports/sobjectizer/CONTROL b/ports/sobjectizer/CONTROL index b965a8464..538cf7fdb 100644 --- a/ports/sobjectizer/CONTROL +++ b/ports/sobjectizer/CONTROL @@ -1,4 +1,4 @@ Source: sobjectizer -Version: 5.6.1 +Version: 5.6.1-1 Homepage: https://github.com/Stiffstream/sobjectizer Description: SObjectizer is a C++ in-process message dispatching framework with implementation of Actor Model, Publish-Subscribe Model and CSP-like channels. diff --git a/ports/sobjectizer/portfile.cmake b/ports/sobjectizer/portfile.cmake index 537f64d9d..6eb634fa8 100644 --- a/ports/sobjectizer/portfile.cmake +++ b/ports/sobjectizer/portfile.cmake @@ -1,14 +1,17 @@ include(vcpkg_common_functions) set(VERSION 5.6.1) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/so-${VERSION}/dev) vcpkg_download_distfile(ARCHIVE URLS "https://sourceforge.net/projects/sobjectizer/files/sobjectizer/SObjectizer%20Core%20v.5.6/so-${VERSION}.tar.bz2" FILENAME "so-${VERSION}.tar.bz2" SHA512 f043a2d9025fe98d407023291100a79c2fbbd9d61e7c24602311e7383607b0fc1ec6108bfaea5f98021ebb942b3494f0380a2357bcaed01f92ede5dba0ab9cf0 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) set(SOBJECTIZER_BUILD_STATIC ON) @@ -19,7 +22,7 @@ else() endif() vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} + SOURCE_PATH ${SOURCE_PATH}/dev PREFER_NINJA OPTIONS -DSOBJECTIZER_BUILD_STATIC=${SOBJECTIZER_BUILD_STATIC} @@ -31,6 +34,4 @@ vcpkg_install_cmake() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/sobjectizer) -# Handle copyright -file(COPY ${SOURCE_PATH}/../LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/sobjectizer) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/sobjectizer/LICENSE ${CURRENT_PACKAGES_DIR}/share/sobjectizer/copyright) +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/soil/CONTROL b/ports/soil/CONTROL index 412857025..156582b38 100644 --- a/ports/soil/CONTROL +++ b/ports/soil/CONTROL @@ -1,3 +1,3 @@ Source: soil -Version: 2008.07.07-1 +Version: 2008.07.07-2 Description: Simple OpenGL Image Library diff --git a/ports/soil/portfile.cmake b/ports/soil/portfile.cmake index 69073e22d..f97be5259 100644 --- a/ports/soil/portfile.cmake +++ b/ports/soil/portfile.cmake @@ -1,13 +1,15 @@ include(vcpkg_common_functions) -set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/Simple OpenGL Image Library") vcpkg_download_distfile(ARCHIVE URLS "http://www.lonesock.net/files/soil.zip" FILENAME "soil-2008.07.07.zip" SHA512 a575a84aa65b7556320779d635561341f5cf156418d0462473e5d1eb082829be3bcb30600b4887af75aeddd3715de16bdb3ca1668ebaa93eea62bacf22b79548 ) -vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt @@ -25,5 +27,4 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -# Handle copyright -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/soil RENAME copyright) +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/soundtouch/CMakeLists.txt b/ports/soundtouch/CMakeLists.txt index a15daefe4..075c8ee2d 100644 --- a/ports/soundtouch/CMakeLists.txt +++ b/ports/soundtouch/CMakeLists.txt @@ -13,15 +13,18 @@ else() set(TYPE_SUFFIX $<$:D>) endif() -file(GLOB SOUNDTOUCH_SOURCES source/SoundTouch/*.cpp) +configure_file("${CMAKE_CURRENT_LIST_DIR}/include/soundtouch_config.h.in" ${CMAKE_CURRENT_BINARY_DIR}/include/soundtouch_config.h) + +file(GLOB SOUNDTOUCH_SOURCES "${CMAKE_CURRENT_LIST_DIR}/source/SoundTouch/*.cpp") add_library(libsoundtouch ${SOUNDTOUCH_SOURCES}) -target_include_directories(libsoundtouch PUBLIC include) +target_include_directories(libsoundtouch PUBLIC "${CMAKE_CURRENT_LIST_DIR}/include") +target_include_directories(libsoundtouch PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/include") set_target_properties(libsoundtouch PROPERTIES OUTPUT_NAME SoundTouch${TYPE_SUFFIX}${ARCH_SUFFIX}) -if(BUILD_SHARED_LIBS) +if(WIN32 AND BUILD_SHARED_LIBS) target_compile_definitions(libsoundtouch PRIVATE -DDLL_EXPORTS) target_sources(libsoundtouch PRIVATE - source/SoundTouchDLL/SoundTouchDLL.cpp - source/SoundTouchDLL/SoundTouchDLL.rc + "${CMAKE_CURRENT_LIST_DIR}/source/SoundTouchDLL/SoundTouchDLL.cpp" + "${CMAKE_CURRENT_LIST_DIR}/source/SoundTouchDLL/SoundTouchDLL.rc" ) endif() diff --git a/ports/soundtouch/CONTROL b/ports/soundtouch/CONTROL index f14e579b3..7ce1c2ba6 100644 --- a/ports/soundtouch/CONTROL +++ b/ports/soundtouch/CONTROL @@ -1,5 +1,5 @@ Source: soundtouch -Version: 2.0.0-3 +Version: 2.0.0-4 Homepage: https://www.surina.net/soundtouch 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 (windows) diff --git a/ports/soundtouch/portfile.cmake b/ports/soundtouch/portfile.cmake index c9fbd3623..5f77e2a63 100644 --- a/ports/soundtouch/portfile.cmake +++ b/ports/soundtouch/portfile.cmake @@ -7,14 +7,17 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") endif() set(VERSION 2.0.0) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/soundtouch) vcpkg_download_distfile(ARCHIVE URLS "https://www.surina.net/soundtouch/soundtouch-${VERSION}.zip" FILENAME "soundtouch-${VERSION}.zip" SHA512 50ef36b6cd21c16e235b908c5518e29b159b11f658a014c47fe767d3d8acebaefefec0ce253b4ed322cbd26387c69c0ed464ddace0c098e61d56d55c198117a5 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) @@ -27,5 +30,4 @@ vcpkg_install_cmake() file(INSTALL ${SOURCE_PATH}/source/SoundTouchDLL/SoundTouchDLL.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) -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) +file(INSTALL ${SOURCE_PATH}/COPYING.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/spaceland/CONTROL b/ports/spaceland/CONTROL index 97b5a9156..183d9392c 100644 --- a/ports/spaceland/CONTROL +++ b/ports/spaceland/CONTROL @@ -1,4 +1,4 @@ Source: spaceland -Version: 7.8.2-3 +Version: 7.8.2-4 Description: Spaceland Lib (sl) is a suite for geometric computation, specifically adapted to OpenGL. Build-Depends: zlib diff --git a/ports/spaceland/portfile.cmake b/ports/spaceland/portfile.cmake index def38d6d1..861af9db3 100644 --- a/ports/spaceland/portfile.cmake +++ b/ports/spaceland/portfile.cmake @@ -2,15 +2,16 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sl-7.8.2-Source) - vcpkg_download_distfile(ARCHIVE URLS "http://vic.crs4.it/vic/download/pkgs/sl-7.8.2-Source.tar.gz" FILENAME "sl-7.8.2-Source.tar.gz" SHA512 1391dac1474ddb47d0cf0eb7baeb7db68d6356c2116f732dd57b8a050739523282ded0643cc466640f2b22f25dd6bfced00ede4e041b7ff83754a99ae6725d7d ) -vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -27,10 +28,4 @@ vcpkg_configure_cmake( vcpkg_install_cmake() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -# Handle license -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/spaceland) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/spaceland/COPYING ${CURRENT_PACKAGES_DIR}/share/spaceland/license) - -# Handle copyright -file(COPY ${SOURCE_PATH}/copyright.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/spaceland) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/spaceland/copyright.txt ${CURRENT_PACKAGES_DIR}/share/spaceland/copyright) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/spatialite-tools/CONTROL b/ports/spatialite-tools/CONTROL index 3ba32121c..73a698dee 100644 --- a/ports/spatialite-tools/CONTROL +++ b/ports/spatialite-tools/CONTROL @@ -1,5 +1,5 @@ Source: spatialite-tools -Version: 4.3.0-1 +Version: 4.3.0-2 Homepage: https://www.gaia-gis.it/fossil/spatialite-tools/index Description: Contains spatialite.exe and other command line tools to work with SpatiaLite databases (import, export, SQL queries) Build-Depends: sqlite3, libspatialite, geos, readosm, proj4, zlib, libiconv, expat diff --git a/ports/spatialite-tools/portfile.cmake b/ports/spatialite-tools/portfile.cmake index 25de070ee..2f23dbb7e 100644 --- a/ports/spatialite-tools/portfile.cmake +++ b/ports/spatialite-tools/portfile.cmake @@ -2,21 +2,21 @@ include(vcpkg_common_functions) option(BUILD_DEBUG_TOOLS "Build debug version of tools" OFF) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/spatialite-tools-4.3.0) vcpkg_download_distfile(ARCHIVE URLS "http://www.gaia-gis.it/gaia-sins/spatialite-tools-sources/spatialite-tools-4.3.0.tar.gz" FILENAME "spatialite-tools-4.3.0.tar.gz" SHA512 e1de27c1c65ff2ff0b08583113517bea74edf33fff59ad6e9c77492ea3ae87d9c0f17d7670ee6602b32eea73ad3678bb5410ef2c6fac6e213bf2e341a907db88 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + fix-makefiles.patch +) find_program(NMAKE nmake) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch -) - set(LDIR "\"${CURRENT_INSTALLED_DIR}\"") if(VCPKG_CRT_LINKAGE STREQUAL dynamic) diff --git a/ports/speexdsp/CMakeLists.txt b/ports/speexdsp/CMakeLists.txt index dd0edfe09..a1dec7f3b 100644 --- a/ports/speexdsp/CMakeLists.txt +++ b/ports/speexdsp/CMakeLists.txt @@ -1,17 +1,15 @@ -# CMAKE project for libspeexdsp cmake_minimum_required(VERSION 3.1) -option(SOURCE_PATH "Root directory.") -option(USE_SSE "Use SSE") +option(USE_SSE "Use SSE" ON) project (libspeexdsp) -file(GLOB_RECURSE LIBSPEEXDSP_SOURCES "${SOURCE_PATH}/libspeexdsp/*.c") -list(FILTER LIBSPEEXDSP_SOURCES EXCLUDE REGEX "${SOURCE_PATH}/libspeexdsp/test.*\\.c") -file(GLOB_RECURSE LIBSPEEXDSP_HEADERS "${SOURCE_PATH}/libspeexdsp/*.h") -file(GLOB_RECURSE LIBSPEEXDSP_HEADERS_PUBLIC "${SOURCE_PATH}/include/**/*.h") +file(GLOB_RECURSE LIBSPEEXDSP_SOURCES "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/*.c") +list(FILTER LIBSPEEXDSP_SOURCES EXCLUDE REGEX "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/test.*\\.c") +file(GLOB_RECURSE LIBSPEEXDSP_HEADERS "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/*.h") +file(GLOB_RECURSE LIBSPEEXDSP_HEADERS_PUBLIC "${CMAKE_CURRENT_LIST_DIR}/include/**/*.h") if (BUILD_SHARED_LIBS) add_definitions(-D_WINDOWS -D_USRDLL) - list(APPEND LIBSPEEXDSP_SOURCES "${SOURCE_PATH}/win32/libspeexdsp.def") + list(APPEND LIBSPEEXDSP_SOURCES "${CMAKE_CURRENT_LIST_DIR}/win32/libspeexdsp.def") else () add_definitions(-D_LIB) endif () @@ -22,8 +20,8 @@ if (USE_SSE) add_definitions(-D_USE_SSE -D_USE_SSE2) endif() -include_directories("${SOURCE_PATH}/include" - "${SOURCE_PATH}/win32") +include_directories("${CMAKE_CURRENT_LIST_DIR}/include" + "${CMAKE_CURRENT_LIST_DIR}/win32") add_library(libspeexdsp ${LIBSPEEXDSP_SOURCES} ${LIBSPEEXDSP_HEADERS}) set_target_properties(libspeexdsp PROPERTIES PUBLIC_HEADER "${LIBSPEEXDSP_HEADERS_PUBLIC}") diff --git a/ports/speexdsp/CONTROL b/ports/speexdsp/CONTROL index ce181ae58..749633995 100644 --- a/ports/speexdsp/CONTROL +++ b/ports/speexdsp/CONTROL @@ -1,5 +1,5 @@ Source: speexdsp -Version: 1.2.0 +Version: 1.2.0-1 Homepage: https://ftp.osuosl.org/pub/xiph/releases/speex/ Description: A patent-free, Open Source/Free Software DSP library. Build-Depends: diff --git a/ports/speexdsp/portfile.cmake b/ports/speexdsp/portfile.cmake index 44d340d1e..4e4bc5742 100644 --- a/ports/speexdsp/portfile.cmake +++ b/ports/speexdsp/portfile.cmake @@ -1,31 +1,33 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/speexdsp-1.2.0) -set(CMAKE_PATH ${CMAKE_CURRENT_LIST_DIR}) -vcpkg_download_distfile(ARCHIVE_FILE + +vcpkg_download_distfile(ARCHIVE URLS "http://downloads.xiph.org/releases/speex/speexdsp-1.2.0.tar.gz" FILENAME "speexdsp-1.2.0.tar.gz" SHA512 e357cd5377415ea66c862302c7cf8bf6a10063cacd903f0846478975b87974cf5bdf00e2c6759d8f4f453c4c869cf284e9dc948a84a83d7b2ab96bd5405c05ec ) -vcpkg_extract_source_archive(${ARCHIVE_FILE}) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) set(USE_SSE OFF) -set(USE_NEON OFF) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(USE_SSE ON) endif() vcpkg_configure_cmake( - SOURCE_PATH ${CMAKE_PATH} + SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS -DSOURCE_PATH=${SOURCE_PATH} -DUSE_SSE=${USE_SSE} + OPTIONS + -DUSE_SSE=${USE_SSE} ) vcpkg_install_cmake() +vcpkg_copy_pdbs() -# Remove debug include file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -# Copy copright information -file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/speexdsp" RENAME "copyright") - -vcpkg_copy_pdbs() +file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "copyright") diff --git a/ports/sqlitecpp/CONTROL b/ports/sqlitecpp/CONTROL index 8d0fb047e..8f6017a29 100644 --- a/ports/sqlitecpp/CONTROL +++ b/ports/sqlitecpp/CONTROL @@ -1,5 +1,5 @@ Source: sqlitecpp -Version: 2.3.0 +Version: 2.3.0-1 Build-Depends: sqlite3 Homepage: https://github.com/SRombauts/SQLiteCpp Description: SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper. diff --git a/ports/sqlitecpp/portfile.cmake b/ports/sqlitecpp/portfile.cmake index b57573d73..210ca3dd6 100644 --- a/ports/sqlitecpp/portfile.cmake +++ b/ports/sqlitecpp/portfile.cmake @@ -7,12 +7,9 @@ vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH REF 09dd10886c560ab5af41cfe694567f34c88cd101 HEAD_REF master SHA512 d0a440e2e96fca9aac7fe73d46bb6508825a82547dca1e9c93d8c3ca46878fa137e7a2a7a865bcfa641d0236e26307a3342d55fc83578552a37eec7565642d91 -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001-Find-external-sqlite3.patch) + 0001-Find-external-sqlite3.patch +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/sqlpp11/CONTROL b/ports/sqlpp11/CONTROL index b371f0a8c..92e303dec 100644 --- a/ports/sqlpp11/CONTROL +++ b/ports/sqlpp11/CONTROL @@ -1,4 +1,4 @@ Source: sqlpp11 -Version: 0.58-1 +Version: 0.58-2 Description: A type safe embedded domain specific language for SQL queries and results in C++. Build-Depends: date diff --git a/ports/sqlpp11/FixForMSVC.patch b/ports/sqlpp11/FixForMSVC.patch deleted file mode 100644 index 753590707..000000000 --- a/ports/sqlpp11/FixForMSVC.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/include/sqlpp11/char_sequence.h b/include/sqlpp11/char_sequence.h -index 5759525..96cdbd0 100644 ---- a/include/sqlpp11/char_sequence.h -+++ b/include/sqlpp11/char_sequence.h -@@ -54,16 +54,16 @@ namespace sqlpp - } - }; - -- template -+ template - struct make_char_sequence_impl; - -- template -+ template - struct make_char_sequence_impl> - { - using type = char_sequence; - }; - -- template -+ template - using make_char_sequence = - typename make_char_sequence_impl>::type; - } // namespace sqlpp diff --git a/ports/sqlpp11/portfile.cmake b/ports/sqlpp11/portfile.cmake index 7fe915213..dbc502382 100644 --- a/ports/sqlpp11/portfile.cmake +++ b/ports/sqlpp11/portfile.cmake @@ -3,10 +3,9 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rbock/sqlpp11 - REF 0.58 + REF 0.58 SHA512 c391e72638a748e0e25b53176dc371ba468bc14bdcb6dda2f2418c4ab4d620ebc5507ee284ff81c3104888d0d959703c6c91b55ccd69a8641b07dcb20cd56209 HEAD_REF master - PATCHES FixForMSVC.patch ) # Use sqlpp11's own build process, skipping tests diff --git a/ports/sundials/CONTROL b/ports/sundials/CONTROL index 101325d37..ae45b9d88 100644 --- a/ports/sundials/CONTROL +++ b/ports/sundials/CONTROL @@ -1,4 +1,4 @@ Source: sundials -Version: 3.1.1-1 +Version: 3.1.1-2 Homepage: https://computation.llnl.gov/projects/sundials Description: SUNDIALS (SUite of Nonlinear and DIfferential/ALgebraic equation Solvers) diff --git a/ports/sundials/portfile.cmake b/ports/sundials/portfile.cmake index da4d9c4a2..a76728659 100644 --- a/ports/sundials/portfile.cmake +++ b/ports/sundials/portfile.cmake @@ -1,19 +1,18 @@ include(vcpkg_common_functions) set(ARCHIVE_NAME "sundials-3.1.1") -set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/${ARCHIVE_NAME}") -vcpkg_download_distfile(ARCHIVE_FILE +vcpkg_download_distfile(ARCHIVE URLS "https://computation.llnl.gov/projects/sundials/download/${ARCHIVE_NAME}.tar.gz" FILENAME "${ARCHIVE_NAME}.tar.gz" SHA512 3e8fc7183c5503943f1ba00c73b04c1614a48b6e6cb90559ec5481f9acffaa19acd97bd961611b251ebdc032f1a13f0919b0ab0cdfe9d9b4ddc99d40bef5719f ) -vcpkg_extract_source_archive(${ARCHIVE_FILE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/uwp-c4703-warning.patch + uwp-c4703-warning.patch ) vcpkg_configure_cmake( @@ -47,7 +46,7 @@ if(DEBUG_DLLS) file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) endif() -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/sundials RENAME copyright) +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) file(REMOVE "${CURRENT_PACKAGES_DIR}/LICENSE") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/LICENSE") diff --git a/ports/systemc/CONTROL b/ports/systemc/CONTROL index 4f1bd67d9..c62d20c76 100644 --- a/ports/systemc/CONTROL +++ b/ports/systemc/CONTROL @@ -1,3 +1,3 @@ Source: systemc -Version: 2.3.3-3 +Version: 2.3.3-4 Description: A set of C++ classes and macros which provide an event-driven simulation kernel in C++ diff --git a/ports/systemc/portfile.cmake b/ports/systemc/portfile.cmake index 8ecb7e8fb..b7fb57b1f 100644 --- a/ports/systemc/portfile.cmake +++ b/ports/systemc/portfile.cmake @@ -14,7 +14,6 @@ vcpkg_extract_source_archive_ex( REF ${SYSTEMC_VERSION} PATCHES install.patch - tlm_correct_dependency.patch ) vcpkg_configure_cmake( diff --git a/ports/szip/CONTROL b/ports/szip/CONTROL index 8f1fedbc6..54ebf9b7b 100644 --- a/ports/szip/CONTROL +++ b/ports/szip/CONTROL @@ -1,4 +1,4 @@ Source: szip -Version: 2.1.1-5 +Version: 2.1.1-6 Homepage: https://support.hdfgroup.org/ftp/lib-external/szip Description: Szip compression software, providing lossless compression of scientific data diff --git a/ports/szip/portfile.cmake b/ports/szip/portfile.cmake index cffb1693c..ab669cebc 100644 --- a/ports/szip/portfile.cmake +++ b/ports/szip/portfile.cmake @@ -1,6 +1,5 @@ include(vcpkg_common_functions) -#set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/szip-2.1.1) vcpkg_download_distfile(ARCHIVE URLS "https://support.hdfgroup.org/ftp/lib-external/szip/2.1.1/src/szip-2.1.1.tar.gz" FILENAME "szip-2.1.1.tar.gz" diff --git a/ports/tclap/CONTROL b/ports/tclap/CONTROL index 652593d40..e6a1d9ff7 100644 --- a/ports/tclap/CONTROL +++ b/ports/tclap/CONTROL @@ -1,4 +1,4 @@ Source: tclap -Version: 1.2.2 +Version: 1.2.2-1 Homepage: https://sourceforge.net/projects/tclap/ Description: Templatized command-line argument parser for C++ diff --git a/ports/tclap/portfile.cmake b/ports/tclap/portfile.cmake index 96337418a..7e1fb4460 100644 --- a/ports/tclap/portfile.cmake +++ b/ports/tclap/portfile.cmake @@ -1,18 +1,18 @@ -#header-only library include(vcpkg_common_functions) -set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/tclap-1.2.2") + vcpkg_download_distfile(ARCHIVE URLS "http://downloads.sourceforge.net/project/tclap/tclap-1.2.2.tar.gz" FILENAME "tclap-1.2.2.tar.gz" SHA512 516ec17f82a61277922bc8c0ed66973300bf42a738847fbbd2912c6405c34f94a13e47dc964854a5b26a9a9f1f518cce682ca54e769d6016851656c647866107 ) -vcpkg_extract_source_archive(${ARCHIVE}) -# Copy all header files +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} +) + file(COPY "${SOURCE_PATH}/include/tclap" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "*.h") -# Handle copyright -file(COPY "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/tclap") -file(RENAME "${CURRENT_PACKAGES_DIR}/share/tclap/COPYING" "${CURRENT_PACKAGES_DIR}/share/tclap/copyright") +file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/ports/tesseract/CONTROL b/ports/tesseract/CONTROL index a24dd9435..775452089 100644 --- a/ports/tesseract/CONTROL +++ b/ports/tesseract/CONTROL @@ -1,12 +1,12 @@ -Source: tesseract -Version: 4.1.0-2 -Homepage: https://github.com/tesseract-ocr/tesseract -Description: An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. -Build-Depends: leptonica - -Feature: training_tools -Description: build training tools -Build-Depends: icu, pango, cairo, fontconfig - -Feature: cpu_independed -Description: build on any cpu extension commands support +Source: tesseract +Version: 4.1.0-3 +Homepage: https://github.com/tesseract-ocr/tesseract +Description: An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. +Build-Depends: leptonica + +Feature: training_tools +Description: build training tools +Build-Depends: icu, pango, cairo, fontconfig + +Feature: cpu_independed +Description: build on any cpu extension commands support diff --git a/ports/tgc/CONTROL b/ports/tgc/CONTROL index 85466c147..7961312cb 100644 --- a/ports/tgc/CONTROL +++ b/ports/tgc/CONTROL @@ -1,4 +1,4 @@ Source: tgc -Version: 2019-08-11 +Version: 2019-08-11-1 Description: A tiny garbage collector for C Homepage: https://github.com/orangeduck/tgc diff --git a/ports/tgc/portfile.cmake b/ports/tgc/portfile.cmake index ebd9c66c3..4efe63c21 100644 --- a/ports/tgc/portfile.cmake +++ b/ports/tgc/portfile.cmake @@ -2,34 +2,12 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_VERSION 35207051557c79ea25942c021fb18856c72af8e3) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/orangeduck-tgc-${SOURCE_VERSION}) - -file(MAKE_DIRECTORY ${SOURCE_PATH}) - -# See ports/nlohmann-json/portfile.cmake -function(download_src SUBPATH SHA512) - vcpkg_download_distfile( - FILE - URLS "https://raw.githubusercontent.com/orangeduck/tgc/master/${SUBPATH}" - FILENAME "orangeduck-tgc-${SOURCE_VERSION}/${SUBPATH}" - SHA512 ${SHA512} - ) - get_filename_component(SUBPATH_DIR "${SOURCE_PATH}/${SUBPATH}" DIRECTORY) - file(COPY ${FILE} DESTINATION ${SUBPATH_DIR}) -endfunction() - -download_src( - tgc.h - 55944055fa83cfc1cbdf026f6ea65d42c1704800d26a7cb6d31a0afcfc61a2ca61d5e539edbf354c4572a885dbc6f38cbb6593cbb66d5dc78eb7d3b66d613dd8 -) -download_src( - tgc.c - 942eefd9b02558f94315023734e9b3b74e326d5a705e9e8809cb4ddb0c6272d8ba9b9715f7d53d7a6151b8cff1377561d169a310c48d200698f9d26ba2c106c3 -) -download_src( - LICENSE.md - 89c46e23f61d2912f47a10e807ee823e78b708804c5cfea2382e1d5a9955f0f1a67e421453b5868db2f71229aae8b83c271bb1cf89631b43e91e5d6c4fcbf1a7 +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO orangeduck/tgc + REF 35207051557c79ea25942c021fb18856c72af8e3 + SHA512 d56153cfb00ad4941c7c88e6cc54b54812466e95b61581e9f71e41b6200746e2143344f0d292032e92f7c90eaa60d0df91120b36e3aad0e354836df6d28e2c35 + HEAD_REF master ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) @@ -47,8 +25,6 @@ vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-${PORT} TARGET_PATH share file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -# Handle copyright configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) -# CMake integration test vcpkg_test_cmake(PACKAGE_NAME unofficial-${PORT}) diff --git a/ports/think-cell-range/CONTROL b/ports/think-cell-range/CONTROL index 985f07175..907280cf5 100644 --- a/ports/think-cell-range/CONTROL +++ b/ports/think-cell-range/CONTROL @@ -1,5 +1,4 @@ Source: think-cell-range -Maintainer: jfrederich@gmail.com Version: 498839d-1 Description: think-cell's range library Homepage: https://github.com/think-cell/range diff --git a/ports/tidy-html5/CONTROL b/ports/tidy-html5/CONTROL index e2fc58b1d..2d891ec0a 100644 --- a/ports/tidy-html5/CONTROL +++ b/ports/tidy-html5/CONTROL @@ -1,4 +1,4 @@ Source: tidy-html5 -Version: 5.7.28 +Version: 5.7.28-1 Homepage: https://github.com/htacg/tidy-html5 Description: Tidy tidies HTML and XML. It can tidy your documents by itself, and developers can easily integrate its features into even more powerful tools. diff --git a/ports/tidy-html5/portfile.cmake b/ports/tidy-html5/portfile.cmake index 0d6e695ae..e0e504311 100644 --- a/ports/tidy-html5/portfile.cmake +++ b/ports/tidy-html5/portfile.cmake @@ -8,8 +8,6 @@ vcpkg_from_github( REF d1b906991a7587688d384b648c55731f9be52506 SHA512 ac1229f95db9ab6367d7650e27b87e76a0874e01c9d404e8c5fb75ba2761318218b658a4f7522188fda8008974393a333a8a5fbed8e3a472c98445f13e459ad5 HEAD_REF master - PATCHES - remove_execution_character_set.patch ) vcpkg_configure_cmake( diff --git a/ports/tidy-html5/remove_execution_character_set.patch b/ports/tidy-html5/remove_execution_character_set.patch deleted file mode 100644 index 9f5ebf3e7..000000000 --- a/ports/tidy-html5/remove_execution_character_set.patch +++ /dev/null @@ -1,90 +0,0 @@ -diff --git a/src/language_en.h b/src/language_en.h -index ab191e0..e1cd96b 100644 ---- a/src/language_en.h -+++ b/src/language_en.h -@@ -18,10 +18,6 @@ - * Created by Jim Derry on 11/28/15. - */ - --#ifdef _MSC_VER --#pragma execution_character_set("utf-8") --#endif -- - #include "language.h" - #include "access.h" - #include "message.h" -diff --git a/src/language_en_gb.h b/src/language_en_gb.h -index a89f0fe..7b14d6f 100644 ---- a/src/language_en_gb.h -+++ b/src/language_en_gb.h -@@ -31,10 +31,6 @@ - * PO_REVISION_DATE=2016-03-24 10:59:55 - */ - --#ifdef _MSC_VER --#pragma execution_character_set("utf-8") --#endif -- - #include "language.h" - #include "access.h" - #include "message.h" -diff --git a/src/language_es.h b/src/language_es.h -index db09f2a..1e474b5 100644 ---- a/src/language_es.h -+++ b/src/language_es.h -@@ -31,10 +31,6 @@ - * PO_REVISION_DATE=2016-03-24 10:59:55 - */ - --#ifdef _MSC_VER --#pragma execution_character_set("utf-8") --#endif -- - #include "language.h" - #include "access.h" - #include "message.h" -diff --git a/src/language_es_mx.h b/src/language_es_mx.h -index 5574b3b..530c9f1 100644 ---- a/src/language_es_mx.h -+++ b/src/language_es_mx.h -@@ -31,10 +31,6 @@ - * PO_REVISION_DATE=2016-03-24 10:59:55 - */ - --#ifdef _MSC_VER --#pragma execution_character_set("utf-8") --#endif -- - #include "language.h" - #include "access.h" - #include "message.h" -diff --git a/src/language_fr.h b/src/language_fr.h -index c87ae7b..91baa5e 100644 ---- a/src/language_fr.h -+++ b/src/language_fr.h -@@ -31,10 +31,6 @@ - * PO_REVISION_DATE= - */ - --#ifdef _MSC_VER --#pragma execution_character_set("utf-8") --#endif -- - #include "language.h" - #include "access.h" - #include "message.h" -diff --git a/src/language_zh_cn.h b/src/language_zh_cn.h -index 1c35fef..218203d 100644 ---- a/src/language_zh_cn.h -+++ b/src/language_zh_cn.h -@@ -31,10 +31,6 @@ - * PO_REVISION_DATE=2016-03-24 10:59:55 - */ - --#ifdef _MSC_VER --#pragma execution_character_set("utf-8") --#endif -- - #include "language.h" - #include "access.h" - #include "message.h" diff --git a/ports/tinyfiledialogs/CONTROL b/ports/tinyfiledialogs/CONTROL index 485cc4351..9654ca0c0 100644 --- a/ports/tinyfiledialogs/CONTROL +++ b/ports/tinyfiledialogs/CONTROL @@ -1,3 +1,3 @@ Source: tinyfiledialogs -Version: 3.3.8 +Version: 3.3.8-1 Description: Highly portable and cross-platform dialogs for native inputbox, passwordbox, colorpicker and more diff --git a/ports/tinyfiledialogs/portfile.cmake b/ports/tinyfiledialogs/portfile.cmake index 73fd52d91..5b281a63e 100644 --- a/ports/tinyfiledialogs/portfile.cmake +++ b/ports/tinyfiledialogs/portfile.cmake @@ -2,33 +2,24 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SHA 21998464c84ddaa9f911d8d05378d6f23a3a3671) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SHA}) - -vcpkg_download_distfile(HEADERFILE - URLS "https://sourceforge.net/p/tinyfiledialogs/code/ci/${SHA}/tree/tinyfiledialogs.h?format=raw" - FILENAME "tinyfiledialogs-h-${SHA}" - SHA512 3f15192e2e2ba674308330eca88f5f2430980b93a53389125fab4de0fce775b9a0e2a0464a3a69bd86e362715c866504e752bfea402f1072005f6da3c97316d8 -) -vcpkg_download_distfile(SOURCEFILE - URLS "https://sourceforge.net/p/tinyfiledialogs/code/ci/${SHA}/tree/tinyfiledialogs.c?format=raw" - FILENAME "tinyfiledialogs-c-${SHA}" - SHA512 b03260ba84872b3cf4eae2fed3a1770480021e3d4109f5ef243a433da48e443b7f244b105a16ce9d5655e086774d9098628e56b1559a6862fb5add547210ca58 +vcpkg_from_git( + OUT_SOURCE_PATH SOURCE_PATH + URL https://git.code.sf.net/p/tinyfiledialogs/code + REF 331f93e903e0555399bf81479114dda978a77d7c ) -configure_file(${HEADERFILE} ${SOURCE_PATH}/tinyfiledialogs.h COPYONLY) -configure_file(${SOURCEFILE} ${SOURCE_PATH}/tinyfiledialogs.c COPYONLY) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA ) + vcpkg_install_cmake() vcpkg_fixup_cmake_targets() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(READ ${HEADERFILE} _contents) +file(READ ${CURRENT_PACKAGES_DIR}/include/tinyfiledialogs/tinyfiledialogs.h _contents) string(SUBSTRING "${_contents}" 0 1024 _contents) file(WRITE ${CURRENT_PACKAGES_DIR}/share/tinyfiledialogs/copyright "${_contents}") diff --git a/ports/tinythread/CONTROL b/ports/tinythread/CONTROL index c837708ce..d7c8112c7 100644 --- a/ports/tinythread/CONTROL +++ b/ports/tinythread/CONTROL @@ -1,4 +1,4 @@ Source: tinythread -Version: 1.1-2 +Version: 1.1-3 Homepage: https://tinythreadpp.bitsnbites.eu/ Description: Implements a fairly compatible subset of the C++11 thread management classes diff --git a/ports/tinythread/portfile.cmake b/ports/tinythread/portfile.cmake index 550a192bc..94a180176 100644 --- a/ports/tinythread/portfile.cmake +++ b/ports/tinythread/portfile.cmake @@ -2,17 +2,19 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/TinyThread++-1.1") vcpkg_download_distfile(ARCHIVE URLS "http://tinythreadpp.bitsnbites.eu/files/TinyThread%2B%2B-1.1-src.tar.bz2" FILENAME "TinyThread++-1.1.tar.bz2" SHA512 407f54fcf3f68dd7fec25e9e0749a1803dffa5d52d606905155714d29f519b5eae64ff654b11768fecc32c0123a78c48be37c47993e0caf157a63349a2f869c6 ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/torch-th/CONTROL b/ports/torch-th/CONTROL index 1ffe36b0a..906734f38 100644 --- a/ports/torch-th/CONTROL +++ b/ports/torch-th/CONTROL @@ -1,4 +1,4 @@ Source: torch-th -Version: 2019-04-19-1 +Version: 2019-04-19-2 Homepage: https://github.com/torch/torch7 Description: Torch's TH library diff --git a/ports/torch-th/portfile.cmake b/ports/torch-th/portfile.cmake index 2b653da22..0d7224600 100644 --- a/ports/torch-th/portfile.cmake +++ b/ports/torch-th/portfile.cmake @@ -8,11 +8,8 @@ vcpkg_from_github( REF dde9e56fb61eee040d7f3dba2331c6d6c095aee8 SHA512 ef813e6f583f26019da362be1e5d9886ecf3306a2b41e5f7a73d432872eacd2745e0cf26bfcc691452f87611e02e302c54f07b2f3a3288744535e57d154a73db HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/debug.patch" + PATCHES + debug.patch ) vcpkg_configure_cmake( diff --git a/ports/urdfdom/CONTROL b/ports/urdfdom/CONTROL index 7420aaca6..5a54bce56 100644 --- a/ports/urdfdom/CONTROL +++ b/ports/urdfdom/CONTROL @@ -1,5 +1,5 @@ Source: urdfdom -Version: 1.0.3-1 +Version: 1.0.3-2 Homepage: https://github.com/ros/urdfdom Description: Provides core data structures and a simple XML parsers for populating the class data structures from an URDF file. Build-Depends: console-bridge, tinyxml, urdfdom-headers diff --git a/ports/urdfdom/portfile.cmake b/ports/urdfdom/portfile.cmake index cf5b3220b..a1f445d47 100644 --- a/ports/urdfdom/portfile.cmake +++ b/ports/urdfdom/portfile.cmake @@ -8,13 +8,9 @@ vcpkg_from_github( REF 1.0.3 SHA512 240181d9c61dd7544f16a79a400d9a2c4dc0a682bef165b46529efcb4b31e2a34e27896933b60b9ddbaa5c4a8d575ebda42752599ff3b0a98d1eeef8f9b0b7a7 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001_use_math_defines.patch - ${CMAKE_CURRENT_LIST_DIR}/0002_fix_exports.patch + 0001_use_math_defines.patch + 0002_fix_exports.patch ) vcpkg_configure_cmake( diff --git a/ports/utf8proc/CONTROL b/ports/utf8proc/CONTROL index 4afe2da7c..56a348e36 100644 --- a/ports/utf8proc/CONTROL +++ b/ports/utf8proc/CONTROL @@ -1,4 +1,4 @@ Source: utf8proc -Version: 2.4.0 +Version: 2.4.0-1 Homepage: https://github.com/JuliaLang/utf8proc Description: Clean C library for processing UTF-8 Unicode data. diff --git a/ports/utf8proc/fix-buildsystem.patch b/ports/utf8proc/fix-buildsystem.patch deleted file mode 100644 index 17af16c9b..000000000 --- a/ports/utf8proc/fix-buildsystem.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index be676ba..7a2b6d8 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -13,9 +13,9 @@ set(SO_MAJOR 2) - set(SO_MINOR 1) - set(SO_PATCH 0) - --add_definitions ( -- -DUTF8PROC_EXPORTS --) -+if(BUILD_SHARED_LIBS) -+ add_definitions(-DUTF8PROC_EXPORTS -DUTF8PROC_SHARED) -+endif() - - if (NOT MSVC) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -std=c99 -pedantic -Wall") -@@ -31,3 +31,10 @@ set_target_properties (utf8proc PROPERTIES - VERSION "${SO_MAJOR}.${SO_MINOR}.${SO_PATCH}" - SOVERSION ${SO_MAJOR} - ) -+ -+install(TARGETS utf8proc -+ RUNTIME DESTINATION bin -+ ARCHIVE DESTINATION lib -+ LIBRARY DESTINATION lib) -+ -+install(FILES utf8proc.h DESTINATION include) -diff --git a/utf8proc.h b/utf8proc.h -index edf46d4..7b3f11a 100644 ---- a/utf8proc.h -+++ b/utf8proc.h -@@ -120,13 +120,13 @@ typedef bool utf8proc_bool; - #endif - #include - --#ifdef _WIN32 -+#if defined _WIN32 && defined UTF8PROC_SHARED - # ifdef UTF8PROC_EXPORTS - # define UTF8PROC_DLLEXPORT __declspec(dllexport) - # else - # define UTF8PROC_DLLEXPORT __declspec(dllimport) - # endif --#elif __GNUC__ >= 4 -+#elif __GNUC__ >= 4 && defined UTF8PROC_SHARED - # define UTF8PROC_DLLEXPORT __attribute__ ((visibility("default"))) - #else - # define UTF8PROC_DLLEXPORT diff --git a/ports/utf8proc/portfile.cmake b/ports/utf8proc/portfile.cmake index 113f4d6d8..b4dd9f50c 100644 --- a/ports/utf8proc/portfile.cmake +++ b/ports/utf8proc/portfile.cmake @@ -1,12 +1,11 @@ include(vcpkg_common_functions) + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO JuliaLang/utf8proc REF v2.4.0 - SHA512 2bbd056b488cd30faca26618389d8af84edc39ade9b705e147b676bf39eee65b40239d01c32c46dfc2a289d79e869ed1bb3c347365603dcaab2f69e34427441a) - -vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-buildsystem.patch) + SHA512 2bbd056b488cd30faca26618389d8af84edc39ade9b705e147b676bf39eee65b40239d01c32c46dfc2a289d79e869ed1bb3c347365603dcaab2f69e34427441a +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/valijson/CONTROL b/ports/valijson/CONTROL index 4ea2b5d1e..c5394a48b 100644 --- a/ports/valijson/CONTROL +++ b/ports/valijson/CONTROL @@ -1,3 +1,3 @@ Source: valijson -Version: 2018-11-17 -Description: Header-only C++ library for JSON Schema validation \ No newline at end of file +Version: 2018-11-17-1 +Description: Header-only C++ library for JSON Schema validation diff --git a/ports/valijson/portfile.cmake b/ports/valijson/portfile.cmake index 6c0b84530..aeb739983 100644 --- a/ports/valijson/portfile.cmake +++ b/ports/valijson/portfile.cmake @@ -1,9 +1,8 @@ #header-only library include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/valijson) - -vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH REPO tristanpenman/valijson REF dd084d747448bb56ddfeab5946b4f2f4617b99c4 SHA512 ee241eefc816360608f86792a4c25abadea79cbffc94d7e31a2dbd0a483ed4d7a303b6d2410b99ab7694e58a3d299f0df0baa52fa16f89e9233d90b190a4d799 @@ -25,4 +24,4 @@ file(COPY ${SOURCE_PATH}/include/compat/optional.hpp # Put the licence file where vcpkg expects it file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/valijson) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/valijson/LICENSE ${CURRENT_PACKAGES_DIR}/share/valijson/copyright) \ No newline at end of file +file(RENAME ${CURRENT_PACKAGES_DIR}/share/valijson/LICENSE ${CURRENT_PACKAGES_DIR}/share/valijson/copyright) diff --git a/ports/wavpack/CONTROL b/ports/wavpack/CONTROL index d823de39d..0481b7c0c 100644 --- a/ports/wavpack/CONTROL +++ b/ports/wavpack/CONTROL @@ -1,4 +1,4 @@ Source: wavpack -Version: 5.1.0-2 +Version: 5.1.0-3 Homepage: https://github.com/dbry/WavPack Description: WavPack encode/decode library, command-line programs, and several plugins diff --git a/ports/wavpack/portfile.cmake b/ports/wavpack/portfile.cmake index c23efa1cb..cb19e4a64 100644 --- a/ports/wavpack/portfile.cmake +++ b/ports/wavpack/portfile.cmake @@ -1,5 +1,4 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/00d9a4ac58a52b52495736be614cb06ba102663c) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH diff --git a/ports/wildmidi/0002-use-ansi.patch b/ports/wildmidi/0002-use-ansi.patch deleted file mode 100644 index 68acb7b34..000000000 --- a/ports/wildmidi/0002-use-ansi.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/src/file_io.c b/src/file_io.c -index 9db9759..7110e8b 100644 ---- a/src/file_io.c -+++ b/src/file_io.c -@@ -118,7 +118,7 @@ void *_WM_BufferFile(const char *filename, uint32_t *size) { - #elif defined(_WIN32) - int buffer_fd; - HANDLE h; -- WIN32_FIND_DATA wfd; -+ WIN32_FIND_DATAA wfd; - #elif defined(__OS2__) || defined(__EMX__) - int buffer_fd; - HDIR h = HDIR_CREATE; -@@ -186,7 +186,7 @@ void *_WM_BufferFile(const char *filename, uint32_t *size) { - } - *size = f.ff_fsize; - #elif defined(_WIN32) -- if ((h = FindFirstFile(buffer_file, &wfd)) == INVALID_HANDLE_VALUE) { -+ if ((h = FindFirstFileA(buffer_file, &wfd)) == INVALID_HANDLE_VALUE) { - _WM_GLOBAL_ERROR(__FUNCTION__, __LINE__, WM_ERR_STAT, filename, ENOENT); - free(buffer_file); - return NULL; diff --git a/ports/wildmidi/CONTROL b/ports/wildmidi/CONTROL index 35e0bfffc..0c6b401ff 100644 --- a/ports/wildmidi/CONTROL +++ b/ports/wildmidi/CONTROL @@ -1,4 +1,4 @@ Source: wildmidi -Version: 0.4.3 +Version: 0.4.3-1 Homepage: https://github.com/Mindwerks/wildmidi Description: MIDI software synthesizer library. diff --git a/ports/wildmidi/portfile.cmake b/ports/wildmidi/portfile.cmake index d3765f790..ac872c1a0 100644 --- a/ports/wildmidi/portfile.cmake +++ b/ports/wildmidi/portfile.cmake @@ -8,7 +8,6 @@ vcpkg_from_github( HEAD_REF master PATCHES 0001-add-install-target.patch - 0002-use-ansi.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) diff --git a/ports/wtl/CONTROL b/ports/wtl/CONTROL index d56cb1c3b..f5fb51483 100644 --- a/ports/wtl/CONTROL +++ b/ports/wtl/CONTROL @@ -1,6 +1,5 @@ Source: wtl -Maintainer: jfrederich@gmail.com -Version: 10.0-3 +Version: 10.0-4 Homepage: https://sourceforge.net/projects/wtl/ Description: Windows Template Library (WTL) is a C++ library for developing Windows applications and UI components. Build-Depends: diff --git a/ports/wtl/portfile.cmake b/ports/wtl/portfile.cmake index dce8e1432..81ae30bb5 100644 --- a/ports/wtl/portfile.cmake +++ b/ports/wtl/portfile.cmake @@ -1,16 +1,19 @@ -#header-only library include(vcpkg_common_functions) + vcpkg_download_distfile(ARCHIVE URLS "https://downloads.sourceforge.net/project/wtl/WTL%2010/WTL%2010.0.9163/WTL10_9163.zip" FILENAME "WTL10_9163.zip" SHA512 feb7fb1c456e44ad05610f31f8c0f964eb6ce3eadf65a389219051f0ea2547069727666616622631cd90e25ea4a682a7c88c7089a374181870717246ad44e035 ) -vcpkg_extract_source_archive(${ARCHIVE}) -file(INSTALL ${CURRENT_BUILDTREES_DIR}/src/Include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/wtl FILES_MATCHING PATTERN "*.h") +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + NO_REMOVE_ONE_LEVEL +) -file(COPY ${CURRENT_BUILDTREES_DIR}/src/MS-PL.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/wtl) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/wtl/MS-PL.txt ${CURRENT_PACKAGES_DIR}/share/wtl/copyright) +file(INSTALL ${SOURCE_PATH}/Include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT} FILES_MATCHING PATTERN "*.h") +file(COPY ${SOURCE_PATH}/Samples DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(COPY ${SOURCE_PATH}/AppWizard DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) -file(COPY ${CURRENT_BUILDTREES_DIR}/src/Samples DESTINATION ${CURRENT_PACKAGES_DIR}/share/wtl) -file(COPY ${CURRENT_BUILDTREES_DIR}/src/AppWizard DESTINATION ${CURRENT_PACKAGES_DIR}/share/wtl) +file(INSTALL ${SOURCE_PATH}/MS-PL.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/x-plane/CONTROL b/ports/x-plane/CONTROL index a2b267ed0..c151e8719 100644 --- a/ports/x-plane/CONTROL +++ b/ports/x-plane/CONTROL @@ -1,3 +1,3 @@ Source: x-plane -Version: 3.0.1 -Description: The X-Plane Plugin SDK. \ No newline at end of file +Version: 3.0.1-1 +Description: The X-Plane Plugin SDK. diff --git a/ports/x-plane/portfile.cmake b/ports/x-plane/portfile.cmake index cfc5fedd3..78a8b4295 100644 --- a/ports/x-plane/portfile.cmake +++ b/ports/x-plane/portfile.cmake @@ -4,15 +4,15 @@ if (VCPKG_TARGET_ARCHITECTURE STREQUAL x86) message(FATAL_ERROR "the x-plane SDK cannot be built for the x86 architecture") endif() -vcpkg_download_distfile( - OUT_SOURCE_PATH +vcpkg_download_distfile(ARCHIVE URLS http://developer.x-plane.com/wp-content/plugins/code-sample-generation/sample_templates/XPSDK301.zip FILENAME XPSDK301.zip SHA512 3044d606039be8230f35a5992d322d4c009b4056f8fb17e929a9f5c2204c084e2c83ddad10801b21727645ec957c8942b83938f81256ec3778dbe75df525e62a ) -vcpkg_extract_source_archive( - ${OUT_SOURCE_PATH} ${CURRENT_PACKAGES_DIR}/temp/ +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} ) file(MAKE_DIRECTORY @@ -20,24 +20,20 @@ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib ) -file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/CHeaders/Widgets/ DESTINATION ${CURRENT_PACKAGES_DIR}/include) -file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/CHeaders/Wrappers/ DESTINATION ${CURRENT_PACKAGES_DIR}/include) -file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/CHeaders/XPLM/ DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/CHeaders/Widgets/ DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/CHeaders/Wrappers/ DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/CHeaders/XPLM/ DESTINATION ${CURRENT_PACKAGES_DIR}/include) if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Win/XPLM_64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/) - file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Win/XPWidgets_64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/) - file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Win/XPLM_64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/) - file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Win/XPWidgets_64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/) + file(COPY ${SOURCE_PATH}/Libraries/Win/XPLM_64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/) + file(COPY ${SOURCE_PATH}/Libraries/Win/XPWidgets_64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/) + file(COPY ${SOURCE_PATH}/Libraries/Win/XPLM_64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/) + file(COPY ${SOURCE_PATH}/Libraries/Win/XPWidgets_64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/) elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") - file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Mac/XPLM.framework/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib/) - file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Mac/XPWidgets.framework/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib/) - file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Mac/XPLM.framework/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/) - file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Mac/XPWidgets.framework/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/) + file(COPY ${SOURCE_PATH}/Libraries/Mac/XPLM.framework/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib/) + file(COPY ${SOURCE_PATH}/Libraries/Mac/XPWidgets.framework/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib/) + file(COPY ${SOURCE_PATH}/Libraries/Mac/XPLM.framework/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/) + file(COPY ${SOURCE_PATH}/Libraries/Mac/XPWidgets.framework/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/) endif() -# Handle copyright -file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/x-plane/) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/x-plane/license.txt ${CURRENT_PACKAGES_DIR}/share/x-plane/copyright) - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/temp/) \ No newline at end of file +file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/x-plane/ RENAME copyright) diff --git a/ports/x265/CONTROL b/ports/x265/CONTROL index fcfb78170..3d8f1c050 100644 --- a/ports/x265/CONTROL +++ b/ports/x265/CONTROL @@ -1,4 +1,4 @@ Source: x265 -Version: 3.0-1 +Version: 3.0-2 Homepage: https://bitbucket.org/multicoreware/x265 Description: x265 is a H.265 / HEVC video encoder application library, designed to encode video or images into an H.265 / HEVC encoded bitstream. diff --git a/ports/x265/portfile.cmake b/ports/x265/portfile.cmake index 987e72246..8ee0fa4de 100644 --- a/ports/x265/portfile.cmake +++ b/ports/x265/portfile.cmake @@ -6,11 +6,8 @@ vcpkg_from_bitbucket( REF 3.0 SHA512 698fd31bf30c65896717225de69714523bcbd3d835474f777bf32c3a6d6dbbf941a09db076e13e76917a5ca014c89fca924fcb0ea3d15bc09748b6fc834a4ba2 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/disable-install-pdb.patch + PATCHES + disable-install-pdb.patch ) set(ENABLE_ASSEMBLY OFF) diff --git a/ports/xalan-c/CONTROL b/ports/xalan-c/CONTROL index e29297ed8..b87743cc3 100644 --- a/ports/xalan-c/CONTROL +++ b/ports/xalan-c/CONTROL @@ -1,5 +1,5 @@ Source: xalan-c -Version: 1.11-8 +Version: 1.11-9 Homepage: https://github.com/apache/xalan-c Description: Xalan is an XSLT processor for transforming XML documents into HTML, text, or other XML document types Build-Depends: xerces-c diff --git a/ports/zookeeper/portfile.cmake b/ports/zookeeper/portfile.cmake index 2e315a61f..8fee1483c 100644 --- a/ports/zookeeper/portfile.cmake +++ b/ports/zookeeper/portfile.cmake @@ -10,21 +10,19 @@ vcpkg_download_distfile(ARCHIVE vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH - ARCHIVE ${ARCHIVE} + ARCHIVE ${ARCHIVE} PATCHES cmake.patch win32.patch ) -set(SOURCE_PATH ${SOURCE_PATH}/zookeeper-client/zookeeper-client-c) - set(WANT_SYNCAPI OFF) if("sync" IN_LIST FEATURES) set(WANT_SYNCAPI ON) endif() vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} + SOURCE_PATH ${SOURCE_PATH}/zookeeper-client/zookeeper-client-c DISABLE_PARALLEL_CONFIGURE PREFER_NINJA OPTIONS @@ -34,7 +32,7 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/zookeeper RENAME copyright) +file(INSTALL ${SOURCE_PATH}/zookeeper-client/zookeeper-client-c/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/zookeeper RENAME copyright) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) diff --git a/ports/zstd/CONTROL b/ports/zstd/CONTROL index bab75367d..47cdf1eff 100644 --- a/ports/zstd/CONTROL +++ b/ports/zstd/CONTROL @@ -1,4 +1,4 @@ Source: zstd -Version: 1.4.0 +Version: 1.4.0-1 Description: Zstandard - Fast real-time compression algorithm Homepage: https://facebook.github.io/zstd/ diff --git a/ports/zstd/enable-debug-mode.patch b/ports/zstd/enable-debug-mode.patch deleted file mode 100644 index a3e829032..000000000 --- a/ports/zstd/enable-debug-mode.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt -index 1e2921d..31fe3d5 100644 ---- a/build/cmake/CMakeLists.txt -+++ b/build/cmake/CMakeLists.txt -@@ -12,7 +12,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9) - SET(ZSTD_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..") - - # Ensure Release build even if not invoked via Makefile --SET(CMAKE_BUILD_TYPE "Release") -+# SET(CMAKE_BUILD_TYPE "Release") - - LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules") - INCLUDE(GNUInstallDirs) diff --git a/ports/zstd/portfile.cmake b/ports/zstd/portfile.cmake index 4b7522c76..c8efe2812 100644 --- a/ports/zstd/portfile.cmake +++ b/ports/zstd/portfile.cmake @@ -5,7 +5,6 @@ vcpkg_from_github( REF v1.4.0 SHA512 8614934e25eb1e82b554c483bc9d2d055f51344697295e83b22a8d726321b12068cfa7f7d2a9fe28a2de7c9edda59733826277efc7046e13674d6f7f02af5671 HEAD_REF dev - PATCHES enable-debug-mode.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") diff --git a/scripts/boost/generate-ports.ps1 b/scripts/boost/generate-ports.ps1 index d51b37f7e..5f5897718 100644 --- a/scripts/boost/generate-ports.ps1 +++ b/scripts/boost/generate-ports.ps1 @@ -13,9 +13,9 @@ function TransformReference() [string]$library ) - if ($library -match "python|fiber") + if ($library -match "fiber") { - # These two only work on windows desktop + # these only work on windows desktop "$library (windows)" } elseif ($library -match "type[_-]erasure|contract") @@ -47,12 +47,12 @@ function Generate() $sanitizedName = $name -replace "_","-" $versionsuffix = "" - if ($Name -eq "python" -or $Name -eq "asio" -or $Name -eq "mpi") + if ($Name -eq "asio" -or $Name -eq "mpi") { $versionsuffix = "-1" } - if ($Name -eq "test") + if ($Name -eq "python" -or $Name -eq "test") { $versionsuffix = "-2" } @@ -363,7 +363,7 @@ foreach ($library in $libraries) if ($library -eq "python") { - $deps += @("python3") + $deps += @("python3 (!osx&!linux)") $needsBuild = $true } elseif ($library -eq "iostreams") diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index afdd9c1b3..d89d5a15b 100644 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -17,7 +17,7 @@ fi # Argument parsing vcpkgDisableMetrics="OFF" vcpkgUseSystem=false -vcpkgAllowAppleClang=OFF +vcpkgAllowAppleClang=false for var in "$@" do if [ "$var" = "-disableMetrics" -o "$var" = "--disableMetrics" ]; then @@ -25,7 +25,7 @@ do elif [ "$var" = "-useSystemBinaries" -o "$var" = "--useSystemBinaries" ]; then vcpkgUseSystem=true elif [ "$var" = "-allowAppleClang" -o "$var" = "--allowAppleClang" ]; then - vcpkgAllowAppleClang=ON + vcpkgAllowAppleClang=true elif [ "$var" = "-help" -o "$var" = "--help" ]; then echo "Usage: ./bootstrap-vcpkg.sh [options]" echo @@ -242,7 +242,15 @@ else fetchTool "cmake" "$UNAME" cmakeExe || exit 1 fetchTool "ninja" "$UNAME" ninjaExe || exit 1 fi -selectCXX CXX || exit 1 +if [ "$os" = "osx" ]; then + if [ "$vcpkgAllowAppleClang" = "true" ] ; then + CXX=clang + else + selectCXX CXX || exit 1 + fi +else + selectCXX CXX || exit 1 +fi # Do the build buildDir="$vcpkgRootDir/toolsrc/build.rel" diff --git a/scripts/cmake/vcpkg_apply_patches.cmake b/scripts/cmake/vcpkg_apply_patches.cmake index 9698917de..8957fca27 100644 --- a/scripts/cmake/vcpkg_apply_patches.cmake +++ b/scripts/cmake/vcpkg_apply_patches.cmake @@ -49,7 +49,7 @@ function(vcpkg_apply_patches) ) if(error_code AND NOT _ap_QUIET) - message(STATUS "Applying patch failed. This is expected if this patch was previously applied.") + message(FATAL_ERROR "Applying patch failed. Patch needs to be updated to work with source being used by vcpkg!") endif() math(EXPR PATCHNUM "${PATCHNUM}+1") diff --git a/scripts/cmake/vcpkg_common_definitions.cmake b/scripts/cmake/vcpkg_common_definitions.cmake index 28177fbbf..60afeaf36 100644 --- a/scripts/cmake/vcpkg_common_definitions.cmake +++ b/scripts/cmake/vcpkg_common_definitions.cmake @@ -55,6 +55,7 @@ endif() #Helper variables for libraries if(VCPKG_TARGET_IS_WINDOWS) set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".lib") + set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".lib") set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dll") set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".lib") set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "") @@ -69,6 +70,7 @@ if(VCPKG_TARGET_IS_WINDOWS) #set(VCPKG_FIND_LIBRARY_PREFIXES "lib" "") elseif(VCPKG_TARGET_IS_OSX) set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a") + set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX "") set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dylib") set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "lib") set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "lib") @@ -76,6 +78,7 @@ elseif(VCPKG_TARGET_IS_OSX) set(VCPKG_FIND_LIBRARY_PREFIXES "lib" "") else() set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a") + set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX "") set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".so") set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "lib") set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "lib") diff --git a/scripts/cmake/vcpkg_extract_source_archive_ex.cmake b/scripts/cmake/vcpkg_extract_source_archive_ex.cmake index a775c2094..67916d09d 100644 --- a/scripts/cmake/vcpkg_extract_source_archive_ex.cmake +++ b/scripts/cmake/vcpkg_extract_source_archive_ex.cmake @@ -5,6 +5,7 @@ ## ## Usage ## ```cmake ## vcpkg_extract_source_archive_ex( +## SKIP_PATCH_CHECK ## OUT_SOURCE_PATH ## ARCHIVE <${ARCHIVE}> ## [REF <1.0.0>] @@ -14,6 +15,9 @@ ## ) ## ``` ## ## Parameters +## ### SKIP_PATCH_CHECK +## If this option is set the failure to apply a patch is ignored. +## ## ### OUT_SOURCE_PATH ## Specifies the out-variable that will contain the extracted location. ## @@ -51,7 +55,13 @@ include(vcpkg_apply_patches) include(vcpkg_extract_source_archive) function(vcpkg_extract_source_archive_ex) - cmake_parse_arguments(_vesae "NO_REMOVE_ONE_LEVEL" "OUT_SOURCE_PATH;ARCHIVE;REF;WORKING_DIRECTORY" "PATCHES" ${ARGN}) + cmake_parse_arguments( + _vesae + "NO_REMOVE_ONE_LEVEL;SKIP_PATCH_CHECK" + "OUT_SOURCE_PATH;ARCHIVE;REF;WORKING_DIRECTORY" + "PATCHES" + ${ARGN} + ) if(NOT _vesae_ARCHIVE) message(FATAL_ERROR "Must specify ARCHIVE parameter to vcpkg_extract_source_archive_ex()") @@ -115,7 +125,14 @@ function(vcpkg_extract_source_archive_ex) endif() endif() + if (_vesae_SKIP_PATCH_CHECK) + set (QUIET QUIET) + else() + set (QUIET) + endif() + vcpkg_apply_patches( + ${QUIET} SOURCE_PATH ${TEMP_SOURCE_PATH} PATCHES ${_vesae_PATCHES} ) diff --git a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake index 3b5370bcd..c383fcb56 100644 --- a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake +++ b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake @@ -178,3 +178,5 @@ function(vcpkg_fixup_cmake_targets) file(WRITE ${CMAKE_FILE} "${_contents}") endforeach() endfunction() + + diff --git a/scripts/cmake/vcpkg_from_github.cmake b/scripts/cmake/vcpkg_from_github.cmake index c0d657bbc..a822ee40e 100644 --- a/scripts/cmake/vcpkg_from_github.cmake +++ b/scripts/cmake/vcpkg_from_github.cmake @@ -172,6 +172,7 @@ function(vcpkg_from_github) endif() vcpkg_extract_source_archive_ex( + SKIP_PATCH_CHECK OUT_SOURCE_PATH SOURCE_PATH ARCHIVE "${downloaded_file_path}" REF "${SANITIZED_HEAD_REF}"