From 8641dfd9dd6d3bf190515822060872a56ee37906 Mon Sep 17 00:00:00 2001 From: Victor Romero Date: Thu, 28 Feb 2019 23:53:42 -0800 Subject: [PATCH] Modify `vcpkg_fixup_cmake_targets()` (#5459) * some libraries export LibraryDepends.cmake instead of Targets.cmake. Those file also need the fix of #1044 should close #4753 * prefered the general solution #4622. hopefully solved the issue within #4150 replaced the regex with something more readable (also ident is lost) should close: #4753 #4633 #4150 and maybe more * Hash vcpkg_fixup_cmake_targets.cmake * [boost] Fix use of find_package(Boost) with cache variables [socket-io-client] Fix install * reversed change back to use regex replace * [glbinding] Fix _IMPORT_PREFIX depth in *-export.cmake files * [tinyspline] Ignore warnings treated as errors * [libevent, liblemon, libpng, smpeg2, zlib] Fix apply patches * [libsodium] Fix apply patches * [folly] Link correct libraries in debug and release * [vtk] Remove unset of _IMPORT_PREFIX * [tinyspline] Do not treat warnings as errors * [smpeg2] Fix double* to int comparison * [nvtt] Define value for HAVE_UNISTD_H in MacOS * [libui] Fix MacOS X build * [zlib] Fix download URL * [qhull] Update to v7.2.1 * [podofo] Set value for HAVE_UNISTD_H in MacOS * [mongo-cxx-driver,ogre,podofo,qhull] Bump CONTROL version * [mongo-c-driver] Set _IMPORT_PREFIX * [tmxparser] Bump CONTROL version * [qhull,vxl] Bump CONTROL version --- .gitignore | 1 + ports/boost-vcpkg-helpers/CONTROL | 2 +- ports/folly/CONTROL | 2 +- ports/folly/portfile.cmake | 14 ++ ports/glbinding/CONTROL | 2 +- ports/glbinding/portfile.cmake | 28 ++- ports/libevent/CONTROL | 2 +- ports/libevent/portfile.cmake | 6 +- ports/liblemon/CONTROL | 2 +- ports/liblemon/portfile.cmake | 13 +- ports/libpng/CONTROL | 2 +- ports/libpng/portfile.cmake | 8 +- ports/libsodium/CONTROL | 2 +- ports/libsodium/portfile.cmake | 6 +- .../{fix-cmake.patch => 001-fix-cmake.patch} | 0 ports/libui/002-fix-macosx-build.patch | 19 ++ ports/libui/CONTROL | 2 +- ports/libui/portfile.cmake | 3 +- ports/mongo-c-driver/CONTROL | 2 +- ports/mongo-c-driver/portfile.cmake | 19 ++ ports/mongo-cxx-driver/CONTROL | 2 +- ...ne-value-for-HAVE_UNISTD_H-in-mac-os.patch | 16 ++ ports/nvtt/CONTROL | 2 +- ports/nvtt/portfile.cmake | 2 + ports/ogre/CONTROL | 2 +- ports/podofo/002-HAVE_UNISTD_H.patch | 15 ++ ports/podofo/CONTROL | 2 +- ports/podofo/portfile.cmake | 4 +- ports/qhull/CONTROL | 2 +- ports/qhull/portfile.cmake | 4 +- ...atch => 001-correct-sdl-headers-dir.patch} | 0 ports/smpeg2/002-use-SDL2-headers.patch | 229 ++++++++++++++++++ ...003-fix-double-ptr-to-int-comparison.patch | 13 + ports/smpeg2/CMakeLists.txt | 3 + ports/smpeg2/CONTROL | 2 +- ports/smpeg2/portfile.cmake | 23 +- ports/socket-io-client/CONTROL | 2 +- ports/socket-io-client/fix-install.patch | 22 ++ ports/socket-io-client/portfile.cmake | 13 +- ...001-do-not-treat-warnings-as-errors.patch} | 34 +-- ports/tinyspline/CONTROL | 2 +- ports/tinyspline/portfile.cmake | 4 +- ports/tmxparser/CONTROL | 2 +- ports/vtk/portfile.cmake | 9 + ports/vxl/CONTROL | 2 +- ports/zlib/CONTROL | 2 +- ports/zlib/portfile.cmake | 15 +- scripts/buildsystems/vcpkg.cmake | 5 +- scripts/cmake/vcpkg_fixup_cmake_targets.cmake | 33 +-- toolsrc/src/vcpkg/build.cpp | 4 +- 50 files changed, 493 insertions(+), 112 deletions(-) rename ports/libui/{fix-cmake.patch => 001-fix-cmake.patch} (100%) create mode 100644 ports/libui/002-fix-macosx-build.patch create mode 100644 ports/nvtt/001-define-value-for-HAVE_UNISTD_H-in-mac-os.patch create mode 100644 ports/podofo/002-HAVE_UNISTD_H.patch rename ports/smpeg2/{correct-sdl-headers-dir.patch => 001-correct-sdl-headers-dir.patch} (100%) create mode 100644 ports/smpeg2/002-use-SDL2-headers.patch create mode 100644 ports/smpeg2/003-fix-double-ptr-to-int-comparison.patch create mode 100644 ports/socket-io-client/fix-install.patch rename ports/tinyspline/{cmake.patch => 001-do-not-treat-warnings-as-errors.patch} (73%) diff --git a/.gitignore b/.gitignore index befc51d8e..d0e202f1d 100644 --- a/.gitignore +++ b/.gitignore @@ -309,3 +309,4 @@ __pycache__/ ############################################################ # vcpkg - End ############################################################ +archives diff --git a/ports/boost-vcpkg-helpers/CONTROL b/ports/boost-vcpkg-helpers/CONTROL index 42e02b3aa..37f7081cf 100644 --- a/ports/boost-vcpkg-helpers/CONTROL +++ b/ports/boost-vcpkg-helpers/CONTROL @@ -1,3 +1,3 @@ Source: boost-vcpkg-helpers -Version: 4 +Version: 5 Description: a set of vcpkg-internal scripts used to modularize boost diff --git a/ports/folly/CONTROL b/ports/folly/CONTROL index d5dd6754a..e780db110 100644 --- a/ports/folly/CONTROL +++ b/ports/folly/CONTROL @@ -1,5 +1,5 @@ Source: folly -Version: 2019.01.28.00 +Version: 2019.01.28.00-1 Description: An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows Build-Depends: openssl, libevent, double-conversion, glog, gflags, boost-chrono, boost-context, boost-conversion, boost-crc, boost-date-time, boost-filesystem, boost-multi-index, boost-program-options, boost-regex, boost-system, boost-thread Default-Features: zlib diff --git a/ports/folly/portfile.cmake b/ports/folly/portfile.cmake index 72b3485ff..8ef2ad566 100644 --- a/ports/folly/portfile.cmake +++ b/ports/folly/portfile.cmake @@ -76,6 +76,20 @@ vcpkg_copy_pdbs() vcpkg_fixup_cmake_targets(CONFIG_PATH share/folly) +# Release folly-targets.cmake does not link to the right libraries in debug mode. +# We substitute with generator expressions so that the right libraries are linked for debug and release. +set(FOLLY_TARGETS_CMAKE "${CURRENT_PACKAGES_DIR}/share/folly/folly-targets.cmake") +FILE(READ ${FOLLY_TARGETS_CMAKE} _contents) +STRING(REPLACE +[[ +"Threads::Threads;Iphlpapi.lib;Ws2_32.lib;${_IMPORT_PREFIX}/lib/boost_context-vc140-mt.lib;${_IMPORT_PREFIX}/lib/boost_chrono-vc140-mt.lib;${_IMPORT_PREFIX}/lib/boost_date_time-vc140-mt.lib;${_IMPORT_PREFIX}/lib/boost_filesystem-vc140-mt.lib;${_IMPORT_PREFIX}/lib/boost_program_options-vc140-mt.lib;${_IMPORT_PREFIX}/lib/boost_regex-vc140-mt.lib;${_IMPORT_PREFIX}/lib/boost_system-vc140-mt.lib;${_IMPORT_PREFIX}/lib/boost_thread-vc140-mt.lib;${_IMPORT_PREFIX}/lib/boost_atomic-vc140-mt.lib;${_IMPORT_PREFIX}/lib/double-conversion.lib;${_IMPORT_PREFIX}/lib/ssleay32.lib;${_IMPORT_PREFIX}/lib/libeay32.lib;${_IMPORT_PREFIX}/lib/zlib.lib;gflags;glog::glog;event" +]] +[[ +"Threads::Threads;Iphlpapi.lib;Ws2_32.lib;\$<\$>:${_IMPORT_PREFIX}/lib/boost_context-vc140-mt.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/boost_context-vc140-mt-gd.lib>;\$<\$>:${_IMPORT_PREFIX}/lib/boost_chrono-vc140-mt.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/boost_chrono-vc140-mt-gd.lib>;\$<\$>:${_IMPORT_PREFIX}/lib/boost_date_time-vc140-mt.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/boost_date_time-vc140-mt-gd.lib>;\$<\$>:${_IMPORT_PREFIX}/lib/boost_filesystem-vc140-mt.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/boost_filesystem-vc140-mt-gd.lib>;\$<\$>:${_IMPORT_PREFIX}/lib/boost_program_options-vc140-mt.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/boost_program_options-vc140-mt-gd.lib>;\$<\$>:${_IMPORT_PREFIX}/lib/boost_regex-vc140-mt.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/boost_regex-vc140-mt-gd.lib>;\$<\$>:${_IMPORT_PREFIX}/lib/boost_system-vc140-mt.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/boost_system-vc140-mt-gd.lib>;\$<\$>:${_IMPORT_PREFIX}/lib/boost_thread-vc140-mt.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/boost_thread-vc140-mt-gd.lib>;\$<\$>:${_IMPORT_PREFIX}/lib/boost_atomic-vc140-mt.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/boost_atomic-vc140-mt-gd.lib>;\$<\$>:${_IMPORT_PREFIX}/lib/double-conversion.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/double-conversion.lib>;\$<\$>:${_IMPORT_PREFIX}/lib/ssleay32.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/ssleay32.lib>;\$<\$>:${_IMPORT_PREFIX}/lib/libeay32.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/libeay32.lib>;\$<\$>:${_IMPORT_PREFIX}/lib/zlib.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/zlibd.lib>;gflags;glog::glog;event" +]] + _contents "${_contents}") +FILE(WRITE ${FOLLY_TARGETS_CMAKE} "${_contents}") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright diff --git a/ports/glbinding/CONTROL b/ports/glbinding/CONTROL index 9671eda4b..f63cec773 100644 --- a/ports/glbinding/CONTROL +++ b/ports/glbinding/CONTROL @@ -1,3 +1,3 @@ Source: glbinding -Version: 3.0.2-4 +Version: 3.0.2-5 Description: glbinding is an MIT licensed, cross-platform C++ binding for the OpenGL API diff --git a/ports/glbinding/portfile.cmake b/ports/glbinding/portfile.cmake index d7a896723..e645e5021 100644 --- a/ports/glbinding/portfile.cmake +++ b/ports/glbinding/portfile.cmake @@ -22,10 +22,32 @@ vcpkg_install_cmake() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -vcpkg_fixup_cmake_targets(CONFIG_PATH share/glbinding/cmake/glbinding TARGET_PATH share/glbinding/cmake/glbinding) -vcpkg_fixup_cmake_targets(CONFIG_PATH share/glbinding/cmake/glbinding-aux TARGET_PATH share/glbinding/cmake/glbinding-aux) +vcpkg_fixup_cmake_targets(CONFIG_PATH share/glbinding/cmake) -file(WRITE ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-config.cmake "include(\${CMAKE_CURRENT_LIST_DIR}/cmake/glbinding/glbinding-export.cmake)\ninclude(\${CMAKE_CURRENT_LIST_DIR}/cmake/glbinding-aux/glbinding-aux-export.cmake)\nset(glbinding_FOUND TRUE)\n") +# _IMPORT_PREFIX needs to go up one extra level in the directory tree. +# These files should be modified. +# /share/glbinding/glbinding-export.cmake +# /share/glbinding-aux/glbinding-aux-export.cmake +file(GLOB_RECURSE TARGET_CMAKES "${CURRENT_PACKAGES_DIR}/*-export.cmake") +foreach(TARGET_CMAKE IN LISTS TARGET_CMAKES) + file(READ ${TARGET_CMAKE} _contents) + string(REPLACE +[[ +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +]] +[[ +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +]] + _contents "${_contents}") + file(WRITE ${TARGET_CMAKE} "${_contents}") +endforeach() + +file(WRITE ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-config.cmake "include(\${CMAKE_CURRENT_LIST_DIR}/glbinding/glbinding-export.cmake)\ninclude(\${CMAKE_CURRENT_LIST_DIR}/glbinding-aux/glbinding-aux-export.cmake)\nset(glbinding_FOUND TRUE)\n") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) # Handle copyright diff --git a/ports/libevent/CONTROL b/ports/libevent/CONTROL index f260b6d01..67cd29d7c 100644 --- a/ports/libevent/CONTROL +++ b/ports/libevent/CONTROL @@ -1,4 +1,4 @@ Source: libevent -Version: 2.1.8-3 +Version: 2.1.8-4 Build-Depends: openssl Description: An event notification library diff --git a/ports/libevent/portfile.cmake b/ports/libevent/portfile.cmake index 251624e3f..61bbb9847 100644 --- a/ports/libevent/portfile.cmake +++ b/ports/libevent/portfile.cmake @@ -9,12 +9,8 @@ vcpkg_from_github( REPO libevent/libevent REF release-2.1.8-stable SHA512 0d5c872dc797b69ab8ea4b83aebcbac20735b8c6f5adfcc2950aa4d6013d240f5fac3376e817da75ae0ccead50cec0d931619e135a050add438777457b086549 -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - "${CMAKE_CURRENT_LIST_DIR}/fix-target-files.patch" + "fix-target-files.patch" ) vcpkg_configure_cmake( diff --git a/ports/liblemon/CONTROL b/ports/liblemon/CONTROL index 704f02d9a..3e072b7ae 100644 --- a/ports/liblemon/CONTROL +++ b/ports/liblemon/CONTROL @@ -1,3 +1,3 @@ Source: liblemon -Version: 1.3.1-2 +Version: 1.3.1-3 Description: Library for Efficient Modeling and Optimization in Networks diff --git a/ports/liblemon/portfile.cmake b/ports/liblemon/portfile.cmake index 6cc2c9618..689903024 100644 --- a/ports/liblemon/portfile.cmake +++ b/ports/liblemon/portfile.cmake @@ -6,19 +6,20 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") endif() set(VERSION 1.3.1) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/lemon-${VERSION}) + vcpkg_download_distfile(ARCHIVE URLS "http://lemon.cs.elte.hu/pub/sources/lemon-${VERSION}.zip" FILENAME "lemon-${VERSION}.zip" SHA512 86d15914b8c3cd206a20c37dbe3b8ca4b553060567a07603db7b6f8dd7dcf9cb043cca31660ff1b7fb77e359b59fac5ca0aab57fd415fda5ecca0f42eade6567 ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${VERSION} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/cmake.patch - ${CMAKE_CURRENT_LIST_DIR}/fixup-targets.patch + "cmake.patch" + "fixup-targets.patch" ) vcpkg_configure_cmake( diff --git a/ports/libpng/CONTROL b/ports/libpng/CONTROL index 7f3de459d..378e1a139 100644 --- a/ports/libpng/CONTROL +++ b/ports/libpng/CONTROL @@ -1,4 +1,4 @@ Source: libpng -Version: 1.6.36 +Version: 1.6.36-1 Build-Depends: zlib Description: libpng is a library implementing an interface for reading and writing PNG (Portable Network Graphics) format files. diff --git a/ports/libpng/portfile.cmake b/ports/libpng/portfile.cmake index 01edce90d..51237b675 100644 --- a/ports/libpng/portfile.cmake +++ b/ports/libpng/portfile.cmake @@ -6,13 +6,9 @@ vcpkg_from_github( REF v1.6.36 SHA512 aeb00b48347c9e84d31995b3fe7e40580029734aa8103d774eee5745f5ca1fd1fd91a15f32d492277ab94346e4e7f731ee9bfea1783f930094f9f87eb3d9397d HEAD_REF master -) - -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 + "use-abort-on-all-platforms.patch" + "skip-install-symlink.patch" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) diff --git a/ports/libsodium/CONTROL b/ports/libsodium/CONTROL index 643ba68f4..b84d40caf 100644 --- a/ports/libsodium/CONTROL +++ b/ports/libsodium/CONTROL @@ -1,3 +1,3 @@ Source: libsodium -Version: 1.0.17 +Version: 1.0.17-1 Description: A modern and easy-to-use crypto library diff --git a/ports/libsodium/portfile.cmake b/ports/libsodium/portfile.cmake index 42e9150bd..60628b08e 100644 --- a/ports/libsodium/portfile.cmake +++ b/ports/libsodium/portfile.cmake @@ -6,12 +6,8 @@ vcpkg_from_github( REF 1.0.17 SHA512 faf6ab57d113b6b1614b51390823a646f059018327b6f493e9e918a908652d0932a75a1a6683032b7a3869f516f387d67acdf944568387feddff7b2f5b6e77d6 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/disable-tests.patch + "disable-tests.patch" ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") diff --git a/ports/libui/fix-cmake.patch b/ports/libui/001-fix-cmake.patch similarity index 100% rename from ports/libui/fix-cmake.patch rename to ports/libui/001-fix-cmake.patch diff --git a/ports/libui/002-fix-macosx-build.patch b/ports/libui/002-fix-macosx-build.patch new file mode 100644 index 000000000..a5b91c7a2 --- /dev/null +++ b/ports/libui/002-fix-macosx-build.patch @@ -0,0 +1,19 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 50c997f..a23b84d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -16,7 +16,13 @@ cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) + # TODO figure out what other variables must be set with CACHE + # TODO figure out if FORCE is needed here + # TODO figure out whether STRING "" is best or if something else is better; also what FORCE does because I forget and later I say it's needed +-set(CMAKE_OSX_DEPLOYMENT_TARGET "10.8" CACHE STRING "" FORCE) ++ ++# VCPKG PATCH NOTE: Fix build on MacOS ++# Due to a bug in CMake (https://gitlab.kitware.com/cmake/cmake/issues/18396) we change CMAKE_OSX_DEPLOYMENT_TARGET to "10.9". ++# See the discussion here: ++# * https://github.com/andlabs/libui/issues/422 ++# * https://github.com/andlabs/libui/issues/457 ++set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "" FORCE) + + # we want to disable incremental linking + # see also: diff --git a/ports/libui/CONTROL b/ports/libui/CONTROL index d1a70f0d5..919f7a12c 100644 --- a/ports/libui/CONTROL +++ b/ports/libui/CONTROL @@ -1,3 +1,3 @@ Source: libui -Version: 2018-11-03 +Version: 2018-11-03-1 Description: Simple and portable (but not inflexible) native GUI library in C. diff --git a/ports/libui/portfile.cmake b/ports/libui/portfile.cmake index 4f543a89b..77c2d44df 100644 --- a/ports/libui/portfile.cmake +++ b/ports/libui/portfile.cmake @@ -7,7 +7,8 @@ vcpkg_from_github( SHA512 3a9fb27d0c376479f58ba2fc5be3579efa5f462776a7e725313b92413ce78f3ca60897e63b580c419eeaee2cd2101de2be1ee5af80a547ef433c6284a3053d45 HEAD_REF master PATCHES - fix-cmake.patch + "001-fix-cmake.patch" + "002-fix-macosx-build.patch" ) vcpkg_configure_cmake( diff --git a/ports/mongo-c-driver/CONTROL b/ports/mongo-c-driver/CONTROL index d19dec51c..de0b8b9f7 100644 --- a/ports/mongo-c-driver/CONTROL +++ b/ports/mongo-c-driver/CONTROL @@ -1,4 +1,4 @@ Source: mongo-c-driver -Version: 1.9.5-2 +Version: 1.9.5-3 Build-Depends: libbson, openssl (uwp) Description: Client library written in C for MongoDB. diff --git a/ports/mongo-c-driver/portfile.cmake b/ports/mongo-c-driver/portfile.cmake index a3c5f2d31..1ab39a491 100644 --- a/ports/mongo-c-driver/portfile.cmake +++ b/ports/mongo-c-driver/portfile.cmake @@ -32,6 +32,7 @@ vcpkg_configure_cmake( ) vcpkg_install_cmake() + if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/libmongoc-static-1.0") else() @@ -86,6 +87,24 @@ endif() # Create cmake files for _both_ find_package(mongo-c-driver) and find_package(libmongoc-static-1.0)/find_package(libmongoc-1.0) file(READ ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/libmongoc-${PORT_POSTFIX}-config.cmake LIBMONGOC_CONFIG_CMAKE) + +# Patch: Set _IMPORT_PREFIX and replace PACKAGE_PREFIX_DIR +string(REPLACE +[[ +get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) +]] +[[ +# VCPKG PATCH SET IMPORT_PREFIX +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +if(_IMPORT_PREFIX STREQUAL "/") + set(_IMPORT_PREFIX "") +endif() +]] + LIBMONGOC_CONFIG_CMAKE "${LIBMONGOC_CONFIG_CMAKE}") +string(REPLACE [[PACKAGE_PREFIX_DIR]] [[_IMPORT_PREFIX]] LIBMONGOC_CONFIG_CMAKE "${LIBMONGOC_CONFIG_CMAKE}") + string(REPLACE "/include/libmongoc-1.0" "/include" LIBMONGOC_CONFIG_CMAKE "${LIBMONGOC_CONFIG_CMAKE}") string(REPLACE "mongoc-static-1.0" "mongoc-1.0" LIBMONGOC_CONFIG_CMAKE "${LIBMONGOC_CONFIG_CMAKE}") file(WRITE ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/libmongoc-${PORT_POSTFIX}-config.cmake "${LIBMONGOC_CONFIG_CMAKE}") diff --git a/ports/mongo-cxx-driver/CONTROL b/ports/mongo-cxx-driver/CONTROL index 3a8e6108f..4d89b54c0 100644 --- a/ports/mongo-cxx-driver/CONTROL +++ b/ports/mongo-cxx-driver/CONTROL @@ -1,4 +1,4 @@ Source: mongo-cxx-driver -Version: 3.2.0-1 +Version: 3.2.0-2 Build-Depends: libbson, mongo-c-driver, boost-smart-ptr, boost-optional, boost-utility Description: MongoDB C++ Driver. diff --git a/ports/nvtt/001-define-value-for-HAVE_UNISTD_H-in-mac-os.patch b/ports/nvtt/001-define-value-for-HAVE_UNISTD_H-in-mac-os.patch new file mode 100644 index 000000000..915f247c8 --- /dev/null +++ b/ports/nvtt/001-define-value-for-HAVE_UNISTD_H-in-mac-os.patch @@ -0,0 +1,16 @@ +diff --git a/src/nvconfig.h.in b/src/nvconfig.h.in +index 16da646..ada6be0 100644 +--- a/src/nvconfig.h.in ++++ b/src/nvconfig.h.in +@@ -1,7 +1,11 @@ + #ifndef NV_CONFIG + #define NV_CONFIG + ++#if NV_OS_DARWIN & !NV_OS_IOS ++#cmakedefine01 HAVE_UNISTD_H ++#else + #cmakedefine HAVE_UNISTD_H ++#endif + #cmakedefine HAVE_STDARG_H + #cmakedefine HAVE_SIGNAL_H + #cmakedefine HAVE_EXECINFO_H diff --git a/ports/nvtt/CONTROL b/ports/nvtt/CONTROL index 31ff5ecf4..19ef69da0 100644 --- a/ports/nvtt/CONTROL +++ b/ports/nvtt/CONTROL @@ -1,3 +1,3 @@ Source: nvtt -Version: 2.1.0 +Version: 2.1.0-1 Description: Texture processing tools with support for Direct3D 10 and 11 formats. \ No newline at end of file diff --git a/ports/nvtt/portfile.cmake b/ports/nvtt/portfile.cmake index 237a71b65..30e2e5cc6 100644 --- a/ports/nvtt/portfile.cmake +++ b/ports/nvtt/portfile.cmake @@ -18,6 +18,8 @@ vcpkg_from_github( REF 2.1.0 SHA512 6c5c9588af57023fc384de080cbe5c5ccd8707d04a9533384c606efd09730d780cb21bcf2d3576102a3facd2f281cacb2625958d74575e71550fd98da92e38b6 HEAD_REF master + PATCHES + "001-define-value-for-HAVE_UNISTD_H-in-mac-os.patch" ) vcpkg_configure_cmake( diff --git a/ports/ogre/CONTROL b/ports/ogre/CONTROL index 288e558e9..d7543d10b 100644 --- a/ports/ogre/CONTROL +++ b/ports/ogre/CONTROL @@ -1,5 +1,5 @@ Source: ogre -Version: 1.11.3-3 +Version: 1.11.3-4 Build-Depends: freeimage, freetype, zlib, zziplib Description: 3D Object-Oriented Graphics Rendering Engine diff --git a/ports/podofo/002-HAVE_UNISTD_H.patch b/ports/podofo/002-HAVE_UNISTD_H.patch new file mode 100644 index 000000000..6aed4b279 --- /dev/null +++ b/ports/podofo/002-HAVE_UNISTD_H.patch @@ -0,0 +1,15 @@ +diff --git a/podofo_config.h.in b/podofo_config.h.in +index fea9ada..a813c7b 100644 +--- a/podofo_config.h.in ++++ b/podofo_config.h.in +@@ -59,3 +59,10 @@ + #cmakedefine PODOFO_HAVE_OPENSSL_NO_RC4 + #cmakedefine PODOFO_HAVE_LIBIDN + #cmakedefine PODOFO_HAVE_UNISTRING_LIB ++ ++/* Fix build for MacOS 10.13 */ ++#if defined(__APPLE__) && !defined(__IOS__) ++#cmakedefine01 HAVE_UNISTD_H ++#else ++#cmakedefine HAVE_UNISTD_H ++#endif diff --git a/ports/podofo/CONTROL b/ports/podofo/CONTROL index 9b6abdb17..233a7011c 100644 --- a/ports/podofo/CONTROL +++ b/ports/podofo/CONTROL @@ -1,5 +1,5 @@ Source: podofo -Version: 0.9.6-3 +Version: 0.9.6-5 Description: PoDoFo is a library to work with the PDF file format Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openssl (!windows&!uwp), freetype diff --git a/ports/podofo/portfile.cmake b/ports/podofo/portfile.cmake index a0b27a7a7..5fa631b18 100644 --- a/ports/podofo/portfile.cmake +++ b/ports/podofo/portfile.cmake @@ -10,7 +10,9 @@ vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE ${ARCHIVE} REF ${PODOFO_VERSION} - PATCHES unique_ptr.patch + PATCHES + "unique_ptr.patch" + "002-HAVE_UNISTD_H.patch" ) set(PODOFO_NO_FONTMANAGER ON) diff --git a/ports/qhull/CONTROL b/ports/qhull/CONTROL index 411b3ee7c..337ac13c3 100644 --- a/ports/qhull/CONTROL +++ b/ports/qhull/CONTROL @@ -1,3 +1,3 @@ Source: qhull -Version: 2015.2-3 +Version: 7.2.1-2 Description: computes the convex hull, Delaunay triangulation, Voronoi diagram diff --git a/ports/qhull/portfile.cmake b/ports/qhull/portfile.cmake index c13287b0f..04fadcf8d 100644 --- a/ports/qhull/portfile.cmake +++ b/ports/qhull/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO qhull/qhull - REF 5a79a0009454c86e9848646b3c296009125231bf # Qhull 2015.2 - SHA512 ebcbf452eff420c62f92b734e5359b275493930b3e6798801eb1a81aa4fbf631b41e298a6071698c3b18c0939c55ddbc1b66b7019091bb4988dcfc7deb25e287 + REF v7.2.1 # Qhull 2015.2 + SHA512 8f5177ea45f82fa28f13e95105497e7e29086d7301e1cb8d3860fff09ebf8d0f01cfcb0f044c422f0ac0ba94b845bba223232e5eeb613bf671f65a569b8766d0 HEAD_REF master ) diff --git a/ports/smpeg2/correct-sdl-headers-dir.patch b/ports/smpeg2/001-correct-sdl-headers-dir.patch similarity index 100% rename from ports/smpeg2/correct-sdl-headers-dir.patch rename to ports/smpeg2/001-correct-sdl-headers-dir.patch diff --git a/ports/smpeg2/002-use-SDL2-headers.patch b/ports/smpeg2/002-use-SDL2-headers.patch new file mode 100644 index 000000000..9737c6d7b --- /dev/null +++ b/ports/smpeg2/002-use-SDL2-headers.patch @@ -0,0 +1,229 @@ +diff --git a/MPEG.cpp b/MPEG.cpp +index 1645965..9d44166 100644 +--- a/MPEG.cpp ++++ b/MPEG.cpp +@@ -1,4 +1,4 @@ +-#include "SDL.h" ++#include "SDL2/SDL.h" + + #include "MPEG.h" + +diff --git a/MPEG.h b/MPEG.h +index ca04260..d0b0d55 100644 +--- a/MPEG.h ++++ b/MPEG.h +@@ -28,7 +28,7 @@ + #include + #include + +-#include "SDL.h" ++#include "SDL2/SDL.h" + + #include "MPEGerror.h" + #include "MPEGstream.h" +diff --git a/MPEGaction.h b/MPEGaction.h +index f9da3a3..ea0b94f 100644 +--- a/MPEGaction.h ++++ b/MPEGaction.h +@@ -24,7 +24,7 @@ + #ifndef _MPEGACTION_H_ + #define _MPEGACTION_H_ + +-#include "SDL.h" ++#include "SDL2/SDL.h" + #include "MPEGframe.h" + + typedef enum { +diff --git a/MPEGaudio.h b/MPEGaudio.h +index 3f315d2..2ec4377 100644 +--- a/MPEGaudio.h ++++ b/MPEGaudio.h +@@ -24,7 +24,7 @@ + #ifndef _MPEGAUDIO_H_ + #define _MPEGAUDIO_H_ + +-#include "SDL.h" ++#include "SDL2/SDL.h" + #include "MPEGerror.h" + #include "MPEGaction.h" + +diff --git a/MPEGlist.h b/MPEGlist.h +index 3a58a5f..fe0dbac 100644 +--- a/MPEGlist.h ++++ b/MPEGlist.h +@@ -6,7 +6,7 @@ + #ifndef _MPEGLIST_H_ + #define _MPEGLIST_H_ + +-#include "SDL.h" ++#include "SDL2/SDL.h" + + class MPEGlist { + public: +diff --git a/MPEGring.cpp b/MPEGring.cpp +index 6d9dabb..0350d54 100644 +--- a/MPEGring.cpp ++++ b/MPEGring.cpp +@@ -23,7 +23,7 @@ + #include + #include + +-#include "SDL_timer.h" ++#include "SDL2/SDL_timer.h" + + #include "MPEGring.h" + +diff --git a/MPEGring.h b/MPEGring.h +index 89172ac..550fbcc 100644 +--- a/MPEGring.h ++++ b/MPEGring.h +@@ -24,8 +24,8 @@ + #ifndef _MPEGRING_H + #define _MPEGRING_H + +-#include "SDL_types.h" +-#include "SDL_thread.h" ++#include "SDL2/SDL_types.h" ++#include "SDL2/SDL_thread.h" + + class MPEG_ring { + public: +diff --git a/MPEGstream.h b/MPEGstream.h +index b96c631..50e0c3a 100644 +--- a/MPEGstream.h ++++ b/MPEGstream.h +@@ -22,7 +22,7 @@ + #ifndef _MPEGSTREAM_H_ + #define _MPEGSTREAM_H_ + +-#include "SDL_types.h" ++#include "SDL2/SDL_types.h" + #include "MPEGerror.h" + #include "MPEGvideo.h" + #include "MPEGaudio.h" +diff --git a/MPEGsystem.h b/MPEGsystem.h +index 823b679..28454b3 100644 +--- a/MPEGsystem.h ++++ b/MPEGsystem.h +@@ -6,8 +6,8 @@ + #define _MPEGSYSTEM_H_ + #define USE_SYSTEM_TIMESTAMP + +-#include "SDL.h" +-#include "SDL_thread.h" ++#include "SDL2/SDL.h" ++#include "SDL2/SDL_thread.h" + #include "MPEGerror.h" + + class MPEGstream; +diff --git a/MPEGvideo.h b/MPEGvideo.h +index 12da092..9f1ed43 100644 +--- a/MPEGvideo.h ++++ b/MPEGvideo.h +@@ -24,8 +24,8 @@ + #ifndef _MPEGVIDEO_H_ + #define _MPEGVIDEO_H_ + +-#include "SDL.h" +-#include "SDL_thread.h" ++#include "SDL2/SDL.h" ++#include "SDL2/SDL_thread.h" + #include "MPEGerror.h" + #include "MPEGaction.h" + +diff --git a/README.SDL_mixer b/README.SDL_mixer +index c01b575..5cacc4f 100644 +--- a/README.SDL_mixer ++++ b/README.SDL_mixer +@@ -5,7 +5,7 @@ You can have the SDL mixer library mix audio from a movie by hooking into + the SDL mixer music hooks: + + #include "smpeg.h" +-#include "SDL_mixer.h" ++#include "SDL2/SDL_mixer.h" + + .. set up the mixer audio ... + +diff --git a/acinclude/sdl2.m4 b/acinclude/sdl2.m4 +index 93bc4b0..776ad42 100644 +--- a/acinclude/sdl2.m4 ++++ b/acinclude/sdl2.m4 +@@ -84,7 +84,7 @@ dnl + #include + #include + #include +-#include "SDL.h" ++#include "SDL2/SDL.h" + + char* + my_strdup (char *str) +@@ -167,7 +167,7 @@ int main (int argc, char *argv[]) + LIBS="$LIBS $SDL_LIBS" + AC_TRY_LINK([ + #include +-#include "SDL.h" ++#include "SDL2/SDL.h" + + int main(int argc, char *argv[]) + { return 0; } +diff --git a/configure b/configure +index 4ac7e60..ee1d934 100644 +--- a/configure ++++ b/configure +@@ -15270,7 +15270,7 @@ else + #include + #include + #include +-#include "SDL.h" ++#include "SDL2/SDL.h" + + char* + my_strdup (char *str) +@@ -15367,7 +15367,7 @@ $as_echo "no" >&6; } + /* end confdefs.h. */ + + #include +-#include "SDL.h" ++#include "SDL2/SDL.h" + + int main(int argc, char *argv[]) + { return 0; } +diff --git a/video/gdith.cpp b/video/gdith.cpp +index c56da96..53ba388 100644 +--- a/video/gdith.cpp ++++ b/video/gdith.cpp +@@ -52,7 +52,7 @@ + #include "video.h" + #include "proto.h" + #include "dither.h" +-#include "SDL_timer.h" ++#include "SDL2/SDL_timer.h" + + #ifdef __STDC__ + #include +diff --git a/video/readfile.cpp b/video/readfile.cpp +index eb71194..a19e66d 100644 +--- a/video/readfile.cpp ++++ b/video/readfile.cpp +@@ -56,7 +56,7 @@ + #include + #include + +-#include "SDL_endian.h" ++#include "SDL2/SDL_endian.h" + #include "video.h" + #include "proto.h" + #include "util.h" +diff --git a/video/video.h b/video/video.h +index 96de89b..a35095b 100644 +--- a/video/video.h ++++ b/video/video.h +@@ -400,7 +400,7 @@ extern unsigned int cacheMiss[8][8]; + #define __SCO__ 1 + #endif + +-#include "SDL_endian.h" ++#include "SDL2/SDL_endian.h" + #if SDL_BYTEORDER == SDL_BIG_ENDIAN + #ifdef LITTLE_ENDIAN_ARCHITECTURE + #undef LITTLE_ENDIAN_ARCHITECTURE diff --git a/ports/smpeg2/003-fix-double-ptr-to-int-comparison.patch b/ports/smpeg2/003-fix-double-ptr-to-int-comparison.patch new file mode 100644 index 000000000..31128a848 --- /dev/null +++ b/ports/smpeg2/003-fix-double-ptr-to-int-comparison.patch @@ -0,0 +1,13 @@ +diff --git a/audio/mpegtoraw.cpp b/audio/mpegtoraw.cpp +index 493c870..a4eabdc 100644 +--- a/audio/mpegtoraw.cpp ++++ b/audio/mpegtoraw.cpp +@@ -448,7 +448,7 @@ int Play_MPEGaudio(MPEGaudio *audio, Uint8 *stream, int len) + if (audio->timestamp[0] != -1){ + double timeshift = audio->Time() - audio->timestamp[0]; + double correction = 0; +- assert(audio->timestamp >= 0); ++ assert(audio->timestamp[0] >= 0); + if (fabs(timeshift) > 1.0){ + correction = -timeshift; + #ifdef DEBUG_TIMESTAMP_SYNC diff --git a/ports/smpeg2/CMakeLists.txt b/ports/smpeg2/CMakeLists.txt index aa36bbb21..87a3586be 100644 --- a/ports/smpeg2/CMakeLists.txt +++ b/ports/smpeg2/CMakeLists.txt @@ -8,6 +8,9 @@ include_directories(${SDL_INCLUDE_DIR}) include_directories(${SDL_INCLUDE_DIR}/SDL2) include_directories(${CMAKE_SOURCE_DIR}) +if(MSVC) + add_definitions(-D_CRT_SECURE_NO_WARNINGS) +endif() add_definitions(-DNOCONTROLS -DTHREADED_AUDIO) # some c++ code just assumes memset is available diff --git a/ports/smpeg2/CONTROL b/ports/smpeg2/CONTROL index 0b0bee21e..0de1c4700 100644 --- a/ports/smpeg2/CONTROL +++ b/ports/smpeg2/CONTROL @@ -1,4 +1,4 @@ Source: smpeg2 -Version: 2.0.0-3 +Version: 2.0.0-5 Description: SDL MPEG Player Library Build-Depends: sdl2 diff --git a/ports/smpeg2/portfile.cmake b/ports/smpeg2/portfile.cmake index 7639ca264..a7c6e9b07 100644 --- a/ports/smpeg2/portfile.cmake +++ b/ports/smpeg2/portfile.cmake @@ -1,17 +1,22 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/smpeg2-2.0.0) + +set(VERSION 2.0.0) vcpkg_download_distfile(ARCHIVE - URLS "https://www.libsdl.org/projects/smpeg/release/smpeg2-2.0.0.tar.gz" - FILENAME "smpeg2-2.0.0.tar.gz" - SHA512 80a779d01e7aa76778ef6ceea8041537db9e4b354df413214c4413c875cb98551891cef98fa0f057cc6a3222e4983da9ae65b86bdad2f87f9e2a6751837e2baf) + URLS "https://www.libsdl.org/projects/smpeg/release/smpeg2-${VERSION}.tar.gz" + FILENAME "smpeg2-${VERSION}.tar.gz" + SHA512 80a779d01e7aa76778ef6ceea8041537db9e4b354df413214c4413c875cb98551891cef98fa0f057cc6a3222e4983da9ae65b86bdad2f87f9e2a6751837e2baf +) -vcpkg_extract_source_archive(${ARCHIVE}) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${VERSION} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/correct-sdl-headers-dir.patch) + "001-correct-sdl-headers-dir.patch" + "002-use-SDL2-headers.patch" + "003-fix-double-ptr-to-int-comparison.patch" +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/socket-io-client/CONTROL b/ports/socket-io-client/CONTROL index 92a5f20c8..bd7b036a8 100644 --- a/ports/socket-io-client/CONTROL +++ b/ports/socket-io-client/CONTROL @@ -1,4 +1,4 @@ Source: socket-io-client -Version: 1.6.1 +Version: 1.6.1-1 Description: C++11 implementation of Socket.IO client Build-Depends: boost, rapidjson, websocketpp diff --git a/ports/socket-io-client/fix-install.patch b/ports/socket-io-client/fix-install.patch new file mode 100644 index 000000000..2c9cc0e82 --- /dev/null +++ b/ports/socket-io-client/fix-install.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8c2fad3..3f322b2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -72,13 +72,11 @@ list(APPEND TARGET_LIBRARIES sioclient_tls) + endif() + + install(FILES ${ALL_HEADERS} +- DESTINATION "${CMAKE_CURRENT_LIST_DIR}/build/include" ++ DESTINATION include + ) + + install(TARGETS ${TARGET_LIBRARIES} +- DESTINATION "${CMAKE_CURRENT_LIST_DIR}/build/lib/${CMAKE_BUILD_TYPE}" +-) +- +-install(FILES ${Boost_LIBRARIES} +- DESTINATION "${CMAKE_CURRENT_LIST_DIR}/build/lib/${CMAKE_BUILD_TYPE}" ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib + ) diff --git a/ports/socket-io-client/portfile.cmake b/ports/socket-io-client/portfile.cmake index eed7a4d65..c7d33d23d 100644 --- a/ports/socket-io-client/portfile.cmake +++ b/ports/socket-io-client/portfile.cmake @@ -1,27 +1,24 @@ include(vcpkg_common_functions) +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO socketio/socket.io-client-cpp REF 1.6.1 SHA512 01c9c172e58a16b25af07c6bde593507792726aca28a9b202ed9531d51cd7e77c7e7d536102e50265d66de96e9708616075902dfdcfc72983758755381bad707 HEAD_REF master + PATCHES fix-install.patch ) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - 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 + PREFER_NINJA ) vcpkg_install_cmake() -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include) -file(COPY ${SOURCE_PATH}/build/include - DESTINATION ${CURRENT_PACKAGES_DIR}/include - FILES_MATCHING PATTERN "*.h") +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/socket-io-client/copyright COPYONLY) diff --git a/ports/tinyspline/cmake.patch b/ports/tinyspline/001-do-not-treat-warnings-as-errors.patch similarity index 73% rename from ports/tinyspline/cmake.patch rename to ports/tinyspline/001-do-not-treat-warnings-as-errors.patch index 593ed9012..576174891 100644 --- a/ports/tinyspline/cmake.patch +++ b/ports/tinyspline/001-do-not-treat-warnings-as-errors.patch @@ -1,16 +1,18 @@ -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 02dfb83..030a0b5 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -386,11 +386,9 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - - # TINYSPLINE_LIBRARY_C_FLAGS - set(TINYSPLINE_LIBRARY_C_FLAGS "${TINYSPLINE_LIBRARY_C_FLAGS} /Wall") -- set(TINYSPLINE_LIBRARY_C_FLAGS "${TINYSPLINE_LIBRARY_C_FLAGS} /WX") - - # TINYSPLINE_LIBRARY_CXX_FLAGS - set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /Wall") -- set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /WX") - set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4514") - set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4710") - set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4350") +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 02dfb83..52f5125 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -386,11 +386,11 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + + # TINYSPLINE_LIBRARY_C_FLAGS + set(TINYSPLINE_LIBRARY_C_FLAGS "${TINYSPLINE_LIBRARY_C_FLAGS} /Wall") +- set(TINYSPLINE_LIBRARY_C_FLAGS "${TINYSPLINE_LIBRARY_C_FLAGS} /WX") ++ # set(TINYSPLINE_LIBRARY_C_FLAGS "${TINYSPLINE_LIBRARY_C_FLAGS} /WX") + + # TINYSPLINE_LIBRARY_CXX_FLAGS + set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /Wall") +- set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /WX") ++ # set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /WX") + set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4514") + set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4710") + set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4350") diff --git a/ports/tinyspline/CONTROL b/ports/tinyspline/CONTROL index ef83e311b..f1f4739c9 100644 --- a/ports/tinyspline/CONTROL +++ b/ports/tinyspline/CONTROL @@ -1,3 +1,3 @@ Source: tinyspline -Version: 0.2.0-1 +Version: 0.2.0-3 Description: Library for NURBS, B-Splines, and B?zier curves, allowing you to handle splines with ease diff --git a/ports/tinyspline/portfile.cmake b/ports/tinyspline/portfile.cmake index a290cf3a7..5d202b7ca 100644 --- a/ports/tinyspline/portfile.cmake +++ b/ports/tinyspline/portfile.cmake @@ -1,4 +1,5 @@ include(vcpkg_common_functions) + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO msteinbeck/tinyspline @@ -6,9 +7,10 @@ vcpkg_from_github( SHA512 50cf4927b311eeca6de7954f1b8d585cbf71355f5e5b0aac2f92f5f4ba37986df16eb3251f94a2304d27dab27d4f6b838b410f53e30de28bab53facf194eb640 HEAD_REF master PATCHES - cmake.patch + "001-do-not-treat-warnings-as-errors.patch" ) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH}/src PREFER_NINJA diff --git a/ports/tmxparser/CONTROL b/ports/tmxparser/CONTROL index 66132e4fd..7a3e3e2f8 100644 --- a/ports/tmxparser/CONTROL +++ b/ports/tmxparser/CONTROL @@ -1,4 +1,4 @@ Source: tmxparser -Version: 2.1.0-1 +Version: 2.1.0-2 Description: C++11 library for parsing the maps generated by the Map Editor called Tiled. Build-Depends: zlib, tinyxml2 diff --git a/ports/vtk/portfile.cmake b/ports/vtk/portfile.cmake index 8b6123eb7..4a838417c 100644 --- a/ports/vtk/portfile.cmake +++ b/ports/vtk/portfile.cmake @@ -293,6 +293,15 @@ endforeach() # them here shouldn't cause any problems. file(READ "${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets.cmake" VTK_TARGETS_CONTENT) string(REGEX REPLACE "${CURRENT_INSTALLED_DIR}/lib/[^\\.]*\\.lib" "" VTK_TARGETS_CONTENT "${VTK_TARGETS_CONTENT}") + +# Remove unset of _IMPORT_PREFIX in VTKTargets.cmake +STRING(REPLACE [[set(_IMPORT_PREFIX)]] +[[ +# VCPKG: The value of _IMPORT_PREFIX should not be unset. +#set(_IMPORT_PREFIX) +]] +VTK_TARGETS_CONTENT "${VTK_TARGETS_CONTENT}") + file(WRITE "${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets.cmake" "${VTK_TARGETS_CONTENT}") # Remove any remaining stray absolute references to the installed directory. diff --git a/ports/vxl/CONTROL b/ports/vxl/CONTROL index d9340d9f3..84fcd2bd1 100644 --- a/ports/vxl/CONTROL +++ b/ports/vxl/CONTROL @@ -1,5 +1,5 @@ Source: vxl -Version: v1.18.0-2 +Version: v1.18.0-3 Build-Depends: bzip2, libgeotiff, libjpeg-turbo, libpng, tiff, zlib, expat, shapelib # Build-Depends: bzip2, dcmtk, libgeotiff, libjpeg-turbo, openjpeg, libpng, tiff, zlib Description: A multi-platform collection of C++ software libraries for Computer Vision and Image Understanding. diff --git a/ports/zlib/CONTROL b/ports/zlib/CONTROL index c55963783..2138e31af 100644 --- a/ports/zlib/CONTROL +++ b/ports/zlib/CONTROL @@ -1,3 +1,3 @@ Source: zlib -Version: 1.2.11-3 +Version: 1.2.11-5 Description: A compression library diff --git a/ports/zlib/portfile.cmake b/ports/zlib/portfile.cmake index bc36b2781..78030309b 100644 --- a/ports/zlib/portfile.cmake +++ b/ports/zlib/portfile.cmake @@ -1,16 +1,19 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/zlib-1.2.11) + +set(VERSION 1.2.11) + vcpkg_download_distfile(ARCHIVE_FILE - URLS "http://www.zlib.net/zlib-1.2.11.tar.gz" "https://downloads.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz" + URLS "http://www.zlib.net/zlib-${VERSION}.tar.gz" "https://downloads.sourceforge.net/project/libpng/zlib/${VERSION}/zlib-${VERSION}.tar.gz" FILENAME "zlib1211.tar.gz" SHA512 73fd3fff4adeccd4894084c15ddac89890cd10ef105dd5e1835e1e9bbb6a49ff229713bd197d203edfa17c2727700fce65a2a235f07568212d820dca88b528ae ) -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_FILE} + REF ${VERSION} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/cmake_dont_build_more_than_needed.patch + "cmake_dont_build_more_than_needed.patch" ) # This is generated during the cmake build diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake index 4ffb123d4..a946ce889 100644 --- a/scripts/buildsystems/vcpkg.cmake +++ b/scripts/buildsystems/vcpkg.cmake @@ -188,9 +188,10 @@ macro(find_package name) include(${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/${_vcpkg_lowercase_name}/vcpkg-cmake-wrapper.cmake) elseif("${name}" STREQUAL "Boost" AND EXISTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/boost") # Checking for the boost headers disables this wrapper unless the user has installed at least one boost library - unset(Boost_USE_STATIC_LIBS) - unset(Boost_USE_MULTITHREADED) + set(Boost_USE_STATIC_LIBS OFF) + set(Boost_USE_MULTITHREADED ON) unset(Boost_USE_STATIC_RUNTIME) + unset(Boost_USE_STATIC_RUNTIME CACHE) set(Boost_COMPILER "-vc140") _find_package(${ARGV}) elseif("${name}" STREQUAL "ICU" AND EXISTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/unicode/utf.h") diff --git a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake index ea9923df3..982f414b6 100644 --- a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake +++ b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake @@ -6,6 +6,9 @@ # # Transform all references matching /bin/*.exe to /tools//*.exe # +# Fix ${_IMPORT_PREFIX} in auto generated targets to be one folder deeper. +# Replace ${CURRENT_INSTALLED_DIR} with ${_IMPORT_PREFIX} in configs/targets. +# # :: # vcpkg_fixup_cmake_targets([CONFIG_PATH ]) # @@ -126,32 +129,22 @@ function(vcpkg_fixup_cmake_targets) endforeach() endif() - file(GLOB_RECURSE MAIN_TARGETS "${RELEASE_SHARE}/*[Tt]argets.cmake") - foreach(MAIN_TARGET IN LISTS MAIN_TARGETS) - file(READ ${MAIN_TARGET} _contents) + #Fix ${_IMPORT_PREFIX} in cmake generated targets and configs; + #Since those can be renamed we have to check in every *.cmake + file(GLOB_RECURSE MAIN_CMAKES "${RELEASE_SHARE}/*.cmake") + foreach(MAIN_CMAKE IN LISTS MAIN_CMAKES) + file(READ ${MAIN_CMAKE} _contents) string(REGEX REPLACE "get_filename_component\\(_IMPORT_PREFIX \"\\\${CMAKE_CURRENT_LIST_FILE}\" PATH\\)(\nget_filename_component\\(_IMPORT_PREFIX \"\\\${_IMPORT_PREFIX}\" PATH\\))*" "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)" - _contents "${_contents}") - string(REPLACE "${CURRENT_INSTALLED_DIR}" "_INVALID_ROOT_" _contents "${_contents}") - string(REGEX REPLACE "_INVALID_ROOT_/[^\";>]*" "" _contents "${_contents}") - string(REGEX REPLACE ";;+" ";" _contents "${_contents}") - string(REGEX REPLACE "\";\"" "\"\"" _contents "${_contents}") - file(WRITE ${MAIN_TARGET} "${_contents}") - endforeach() - - file(GLOB_RECURSE MAIN_CONFIGS "${RELEASE_SHARE}/*[Cc]onfig.cmake") - foreach(MAIN_CONFIG IN LISTS MAIN_CONFIGS) - file(READ ${MAIN_CONFIG} _contents) - string(REGEX REPLACE - "get_filename_component\\(_IMPORT_PREFIX \"\\\${CMAKE_CURRENT_LIST_FILE}\" PATH\\)(\nget_filename_component\\(_IMPORT_PREFIX \"\\\${_IMPORT_PREFIX}\" PATH\\))*" - "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)" - _contents "${_contents}") - string(REGEX REPLACE + _contents "${_contents}") # see #1044 for details why this replacement is necessary. See #4782 why it must be a regex. + string(REGEX REPLACE "get_filename_component\\(PACKAGE_PREFIX_DIR \"\\\${CMAKE_CURRENT_LIST_DIR}/\\.\\./(\\.\\./)*\" ABSOLUTE\\)" "get_filename_component(PACKAGE_PREFIX_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../../\" ABSOLUTE)" _contents "${_contents}") - file(WRITE ${MAIN_CONFIG} "${_contents}") + #Fix wrongly absolute paths to install dir with the correct dir using ${_IMPORT_PREFIX} + string(REPLACE "${CURRENT_INSTALLED_DIR}" [[${_IMPORT_PREFIX}]] _contents "${_contents}") + file(WRITE ${MAIN_CMAKE} "${_contents}") endforeach() # Remove /debug// if it's empty. diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index c0afd7772..f20367e00 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -512,7 +512,9 @@ namespace vcpkg::Build } } - abi_tag_entries.emplace_back(AbiEntry{"vcpkg_fixup_cmake_targets", "1"}); + abi_tag_entries.emplace_back(AbiEntry{ + "vcpkg_fixup_cmake_targets", + vcpkg::Hash::get_file_hash(fs, paths.scripts / "cmake" / "vcpkg_fixup_cmake_targets.cmake", "SHA1")}); abi_tag_entries.emplace_back(AbiEntry{"triplet", pre_build_info.triplet_abi_tag});