aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/maintainers/portfile-functions.md1
-rw-r--r--docs/maintainers/vcpkg_check_features.md71
-rw-r--r--docs/maintainers/vcpkg_configure_cmake.md6
-rw-r--r--docs/specifications/ports-overlay.md4
-rw-r--r--ports/angle/CMakeLists.txt57
-rw-r--r--ports/angle/CONTROL2
-rw-r--r--ports/angle/portfile.cmake4
-rw-r--r--ports/asio/CMakeLists.txt5
-rw-r--r--ports/asio/CONTROL2
-rw-r--r--ports/asio/portfile.cmake5
-rw-r--r--ports/boost-variant/CONTROL2
-rw-r--r--ports/boost-variant/fix-regression-1.70.patch47
-rw-r--r--ports/boost-variant/portfile.cmake6
-rw-r--r--ports/cpp-httplib/CONTROL4
-rw-r--r--ports/cpp-httplib/portfile.cmake23
-rw-r--r--ports/curl/0005_remove_imp_suffix.patch13
-rw-r--r--ports/curl/portfile.cmake11
-rw-r--r--ports/darknet/CONTROL2
-rw-r--r--ports/darknet/portfile.cmake22
-rw-r--r--ports/duilib/CONTROL2
-rw-r--r--ports/duilib/portfile.cmake1
-rw-r--r--ports/flann/CONTROL2
-rw-r--r--ports/flann/portfile.cmake1
-rw-r--r--ports/freetype/0002-Add-CONFIG_INSTALL_PATH-option.patch11
-rw-r--r--ports/freetype/0003-Fix-UWP.patch26
-rw-r--r--ports/freetype/0004-Fix-DLL-install.patch13
-rw-r--r--ports/freetype/CONTROL2
-rw-r--r--ports/freetype/portfile.cmake6
-rw-r--r--ports/freexl/CONTROL2
-rw-r--r--ports/freexl/portfile.cmake238
-rw-r--r--ports/glslang/CMakeLists-targets.patch241
-rw-r--r--ports/glslang/CMakeLists-windows.patch12
-rw-r--r--ports/glslang/CONTROL4
-rw-r--r--ports/glslang/portfile.cmake7
-rw-r--r--ports/harfbuzz/portfile.cmake1
-rw-r--r--ports/idevicerestore/CONTROL2
-rw-r--r--ports/idevicerestore/libcurl_imp.patch40
-rw-r--r--ports/idevicerestore/portfile.cmake13
-rw-r--r--ports/libftdi/CONTROL2
-rw-r--r--ports/libftdi/export-cmake.patch24
-rw-r--r--ports/libftdi/portfile.cmake1
-rw-r--r--ports/libftdi/shared-static.patch18
-rw-r--r--ports/libideviceactivation/CONTROL2
-rw-r--r--ports/libideviceactivation/libcurl_imp.patch40
-rw-r--r--ports/libideviceactivation/portfile.cmake15
-rw-r--r--ports/libmikmod/CONTROL2
-rw-r--r--ports/libmikmod/cmake_policy.patch13
-rw-r--r--ports/libmikmod/name_conflict.patch13
-rw-r--r--ports/libmikmod/portfile.cmake9
-rw-r--r--ports/libmupdf/CMakeLists.txt2
-rw-r--r--ports/libmupdf/CONTROL2
-rw-r--r--ports/libmupdf/portfile.cmake4
-rw-r--r--ports/libpmemobj-cpp/CONTROL2
-rw-r--r--ports/libpmemobj-cpp/portfile.cmake1
-rw-r--r--ports/libu2f-server/CMakeLists.txt30
-rw-r--r--ports/libu2f-server/CONTROL4
-rw-r--r--ports/libu2f-server/portfile.cmake31
-rw-r--r--ports/libu2f-server/strndup-fix.patch31
-rw-r--r--ports/libu2f-server/u2f-server-version.h94
-rw-r--r--ports/libu2f-server/windows.patch41
-rw-r--r--ports/libxslt/CONTROL2
-rw-r--r--ports/libxslt/portfile.cmake24
-rw-r--r--ports/magnum/CONTROL12
-rw-r--r--ports/msix/CONTROL2
-rw-r--r--ports/msix/portfile.cmake1
-rw-r--r--ports/oniguruma/CONTROL3
-rw-r--r--ports/openssl-unix/CONTROL2
-rw-r--r--ports/openssl-unix/portfile.cmake5
-rw-r--r--ports/openssl-windows/CONTROL2
-rw-r--r--ports/openssl-windows/portfile.cmake6
-rw-r--r--ports/openvdb/0001-fix-cmake-modules.patch207
-rw-r--r--ports/openvdb/0001-remove-pkgconfig.patch129
-rw-r--r--ports/openvdb/0002-add-custom-options.patch14
-rw-r--r--ports/openvdb/0002-fix-cmake-modules.patch1125
-rw-r--r--ports/openvdb/0003-build-only-necessary-targets.patch282
-rw-r--r--ports/openvdb/0003-fix-cmake.patch90
-rw-r--r--ports/openvdb/0004-add-necessary-head.patch59
-rw-r--r--ports/openvdb/CONTROL4
-rw-r--r--ports/openvdb/blosc.patch24
-rw-r--r--ports/openvdb/portfile.cmake35
-rw-r--r--ports/range-v3-vs2015/CONTROL1
-rw-r--r--ports/range-v3/CONTROL2
-rw-r--r--ports/restclient-cpp/CONTROL2
-rw-r--r--ports/restclient-cpp/portfile.cmake3
-rw-r--r--ports/shaderc/0001-Add-a-virtual-destructor.patch23
-rw-r--r--ports/shaderc/0001-Do-not-generate-build-version.inc.patch30
-rw-r--r--ports/shaderc/CONTROL4
-rw-r--r--ports/shaderc/build-version.inc8
-rw-r--r--ports/shaderc/disable-update-version.patch41
-rw-r--r--ports/shaderc/fix-install.patch26
-rw-r--r--ports/shaderc/portfile.cmake14
-rw-r--r--ports/spirv-headers/CONTROL2
-rw-r--r--ports/spirv-headers/portfile.cmake4
-rw-r--r--ports/spirv-tools/CMake-targets.patch119
-rw-r--r--ports/spirv-tools/CONTROL4
-rw-r--r--ports/spirv-tools/comment-distutils.patch22
-rw-r--r--ports/spirv-tools/portfile.cmake7
-rw-r--r--ports/thrift/CONTROL2
-rw-r--r--ports/thrift/portfile.cmake1
-rw-r--r--ports/tidy-html5/CONTROL2
-rw-r--r--ports/tidy-html5/portfile.cmake1
-rw-r--r--ports/wpilib/CONTROL2
-rw-r--r--ports/wpilib/portfile.cmake4
-rw-r--r--ports/xsimd/CONTROL3
-rw-r--r--ports/xsimd/portfile.cmake8
-rw-r--r--ports/xtensor/CONTROL3
-rw-r--r--ports/xtensor/portfile.cmake20
-rw-r--r--ports/zziplib/CONTROL2
-rw-r--r--ports/zziplib/portfile.cmake1
-rw-r--r--scripts/cmake/vcpkg_check_features.cmake112
-rw-r--r--scripts/cmake/vcpkg_common_definitions.cmake14
-rw-r--r--scripts/cmake/vcpkg_common_functions.cmake2
-rw-r--r--scripts/cmake/vcpkg_configure_cmake.cmake9
-rw-r--r--scripts/cmake/vcpkg_execute_build_process.cmake4
-rw-r--r--scripts/cmake/vcpkg_execute_required_process.cmake4
-rw-r--r--scripts/cmake/vcpkg_execute_required_process_repeat.cmake4
-rw-r--r--scripts/cmake/vcpkg_find_acquire_program.cmake40
-rw-r--r--scripts/cmake/vcpkg_prettify_command.cmake26
-rw-r--r--scripts/ports.cmake4
-rw-r--r--scripts/toolchains/windows.cmake6
-rw-r--r--toolsrc/include/vcpkg/vcpkgcmdarguments.h1
-rw-r--r--toolsrc/include/vcpkg/vcpkgpaths.h11
-rw-r--r--toolsrc/src/vcpkg.cpp4
-rw-r--r--toolsrc/src/vcpkg/build.cpp37
-rw-r--r--toolsrc/src/vcpkg/commands.integrate.cpp19
-rw-r--r--toolsrc/src/vcpkg/help.cpp2
-rw-r--r--toolsrc/src/vcpkg/vcpkgcmdarguments.cpp30
-rw-r--r--toolsrc/src/vcpkg/vcpkgpaths.cpp61
128 files changed, 2696 insertions, 1375 deletions
diff --git a/docs/maintainers/portfile-functions.md b/docs/maintainers/portfile-functions.md
index c4b810dc0..b98d89192 100644
--- a/docs/maintainers/portfile-functions.md
+++ b/docs/maintainers/portfile-functions.md
@@ -6,6 +6,7 @@
- [vcpkg\_apply\_patches](vcpkg_apply_patches.md)
- [vcpkg\_build\_cmake](vcpkg_build_cmake.md)
- [vcpkg\_build\_msbuild](vcpkg_build_msbuild.md)
+- [vcpkg\_check\_features](vcpkg_check_features.md)
- [vcpkg\_check\_linkage](vcpkg_check_linkage.md)
- [vcpkg\_clean\_msbuild](vcpkg_clean_msbuild.md)
- [vcpkg\_configure\_cmake](vcpkg_configure_cmake.md)
diff --git a/docs/maintainers/vcpkg_check_features.md b/docs/maintainers/vcpkg_check_features.md
new file mode 100644
index 000000000..46ee9051a
--- /dev/null
+++ b/docs/maintainers/vcpkg_check_features.md
@@ -0,0 +1,71 @@
+# vcpkg_check_features
+
+Check if one or more features are a part of the package installation.
+
+## Usage
+```cmake
+vcpkg_check_features(
+ <feature1> <output_variable1>
+ [<feature2> <output_variable2>]
+ ...
+)
+```
+
+`vcpkg_check_features` accepts a list of (feature, output_variable) pairs. If a feature is specified, the corresponding output variable will be set as `ON`, or `OFF` otherwise. The syntax is similar to the `PROPERTIES` argument of `set_target_properties`.
+
+`vcpkg_check_features` will create a variable `FEATURE_OPTIONS` in the parent scope, which you can pass as a part of `OPTIONS` argument when calling functions like `vcpkg_config_cmake`:
+```cmake
+vcpkg_config_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_TESTING=ON
+ ${FEATURE_OPTIONS}
+)
+```
+
+## Notes
+```cmake
+vcpkg_check_features(<feature> <output_variable>)
+```
+can be used as a replacement of:
+```cmake
+if(<feature> IN_LIST FEATURES)
+ set(<output_variable> ON)
+else()
+ set(<output_variable> OFF)
+endif()
+```
+
+However, if you have a feature that was checked like this before:
+```cmake
+if(<feature> IN_LIST FEATURES)
+ set(<output_variable> OFF)
+else()
+ set(<output_variable> ON)
+endif()
+```
+then you should not use `vcpkg_check_features` instead. [```oniguruma```](https://github.com/microsoft/vcpkg/blob/master/ports/oniguruma/portfile.cmake), for example, has a feature named `non-posix` which is checked with:
+```cmake
+if("non-posix" IN_LIST FEATURES)
+ set(ENABLE_POSIX_API OFF)
+else()
+ set(ENABLE_POSIX_API ON)
+endif()
+```
+and by replacing these code with:
+```cmake
+vcpkg_check_features(non-posix ENABLE_POSIX_API)
+```
+is totally wrong.
+
+`vcpkg_check_features` is supposed to be called only once. Otherwise, the `FEATURE_OPTIONS` variable set by a previous call will be overwritten.
+
+## Examples
+
+* [czmq](https://github.com/microsoft/vcpkg/blob/master/ports/czmq/portfile.cmake)
+* [xsimd](https://github.com/microsoft/vcpkg/blob/master/ports/xsimd/portfile.cmake)
+* [xtensor](https://github.com/microsoft/vcpkg/blob/master/ports/xtensor/portfile.cmake)
+
+## Source
+[scripts/cmake/vcpkg_check_features.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_check_features.cmake)
diff --git a/docs/maintainers/vcpkg_configure_cmake.md b/docs/maintainers/vcpkg_configure_cmake.md
index f61a6fa20..b78ef54d9 100644
--- a/docs/maintainers/vcpkg_configure_cmake.md
+++ b/docs/maintainers/vcpkg_configure_cmake.md
@@ -8,6 +8,7 @@ vcpkg_configure_cmake(
SOURCE_PATH <${SOURCE_PATH}>
[PREFER_NINJA]
[DISABLE_PARALLEL_CONFIGURE]
+ [NO_CHARSET_FLAG]
[GENERATOR <"NMake Makefiles">]
[OPTIONS <-DUSE_THIS_IN_ALL_BUILDS=1>...]
[OPTIONS_RELEASE <-DOPTIMIZE=1>...]
@@ -27,6 +28,11 @@ Disables running the CMake configure step in parallel.
This is needed for libraries which write back into their source directory during configure.
+### NO_CHARSET_FLAG
+Disables passing `utf-8` as the default character set to `CMAKE_C_FLAGS` and `CMAKE_CXX_FLAGS`.
+
+This is needed for libraries that set their own source code's character set.
+
### GENERATOR
Specifies the precise generator to use.
diff --git a/docs/specifications/ports-overlay.md b/docs/specifications/ports-overlay.md
index e877f5010..d486cfe19 100644
--- a/docs/specifications/ports-overlay.md
+++ b/docs/specifications/ports-overlay.md
@@ -45,6 +45,8 @@ From a user experience perspective, a user expresses interest in adding addition
* `vcpkg install sqlite3 --overlay-ports=\\share\org\custom-ports`
* a file listing paths to the former two.
+ > NOTE: Reading paths from a text file is not available in the current implementation, some revisions to this part of the specification are being made and will be implemented in a future date.
+
* `vcpkg install sqlite3 --overlay-ports=..\port-repos.txt`
_port-repos.txt_
@@ -129,6 +131,8 @@ Given the following directory structure:
* #### Example #3:
+ > NOTE: Reading paths from a text file is not available in the current implementation, some revisions to this part of the specification are being made and will be implemented in a future date.
+
Given the content of `preferred-ports.txt` as:
```
diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt
index f83f6294e..7d791db84 100644
--- a/ports/angle/CMakeLists.txt
+++ b/ports/angle/CMakeLists.txt
@@ -42,25 +42,25 @@ include_directories(include src ${CMAKE_CURRENT_BINARY_DIR}/include)
##########
# angle::common
if(WIN32)
- set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_mac|_posix")
+ set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_mac|_posix|android_")
elseif(LINUX)
- set(ANGLE_COMMON_PLATFORM_FILTER "_win|_mac")
+ set(ANGLE_COMMON_PLATFORM_FILTER "_win|_mac|android_")
elseif(APPLE)
- set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_win")
+ set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_win|android_")
endif()
file(GLOB ANGLE_COMMON_SOURCES
- "src/common/*.h"
- "src/common/*.inl"
- "src/common/*.cpp"
- "src/common/third_party/base/anglebase/*.h"
- "src/common/third_party/base/anglebase/*.cc"
- "src/common/third_party/base/anglebase/containers/*.h"
- "src/common/third_party/base/anglebase/numerics/*.h"
- "src/common/third_party/base/anglebase/numerics/*.cc"
- "src/common/third_party/xxhash/*.h"
- "src/common/third_party/xxhash/*.c"
- "src/common/third_party/smhasher/src/*.h"
- "src/common/third_party/smhasher/src/*.cpp")
+ "src/common/*.h"
+ "src/common/*.inl"
+ "src/common/*.cpp"
+ "src/common/third_party/base/anglebase/*.h"
+ "src/common/third_party/base/anglebase/*.cc"
+ "src/common/third_party/base/anglebase/containers/*.h"
+ "src/common/third_party/base/anglebase/numerics/*.h"
+ "src/common/third_party/base/anglebase/numerics/*.cc"
+ "src/common/third_party/xxhash/*.h"
+ "src/common/third_party/xxhash/*.c"
+ "src/common/third_party/smhasher/src/*.h"
+ "src/common/third_party/smhasher/src/*.cpp")
list(FILTER ANGLE_COMMON_SOURCES EXCLUDE REGEX "_unittest|event_tracer|${ANGLE_COMMON_PLATFORM_FILTER}")
add_library(angle_common STATIC ${ANGLE_COMMON_SOURCES})
target_include_directories(angle_common PUBLIC src/common/third_party/base)
@@ -191,6 +191,32 @@ if(WIN32)
add_library(angle::renderer::d3d ALIAS angle_renderer_d3d)
endif()
+## angle::gpu_info_util
+file(GLOB ANGLE_GPU_INFO_UTIL_SOURCES
+ "src/gpu_info_util/SystemInfo.h"
+ "src/gpu_info_util/SystemInfo_internal.h"
+ "src/gpu_info_util/SystemInfo.cpp"
+)
+add_library(angle_gpu_info_util STATIC ${ANGLE_GPU_INFO_UTIL_SOURCES})
+if(WIN32)
+ target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_win.cpp")
+ target_link_libraries(angle_gpu_info_util PRIVATE setupapi.lib dxgi.lib)
+elseif(APPLE)
+ target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_mac.mm")
+ find_library(IOKit IOKit)
+ find_library(CoreFoundation CoreFoundation)
+ find_library(CoreGraphics CoreGraphics)
+ target_link_libraries(angle_gpu_info_util PRIVATE ${IOKit} ${CoreFoundation} ${CoreGraphics})
+elseif(LINUX)
+ target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_linux.cpp" "src/gpu_info_util/SystemInfo_x11.cpp")
+ target_compile_definitions(angle_gpu_info_util PRIVATE GPU_INFO_USE_X11)
+ target_link_libraries(angle_gpu_info_util PRIVATE X11 Xi Xext)
+elseif(ANDROID)
+ target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_android.cpp")
+endif()
+target_link_libraries(angle_gpu_info_util PRIVATE angle::common)
+add_library(angle::gpu_info_util ALIAS angle_gpu_info_util)
+
## Core libANGLE library
if(WIN32)
set(LIBANGLE_SOURCES_PLATFORM
@@ -252,6 +278,7 @@ add_library(libANGLE STATIC ${LIBANGLE_SOURCES})
target_link_libraries(libANGLE PRIVATE
angle::common
angle::image_util
+ angle::gpu_info_util
angle::translator
angle::preprocessor
${LIBANGLE_RENDERER_PLATFORM}
diff --git a/ports/angle/CONTROL b/ports/angle/CONTROL
index cac71fae2..faa26f276 100644
--- a/ports/angle/CONTROL
+++ b/ports/angle/CONTROL
@@ -1,5 +1,5 @@
Source: angle
-Version: 2019-03-13-c2ee2cc-3
+Version: 2019-06-13
Homepage: https://github.com/google/angle
Description: A conformant OpenGL ES implementation for Windows, Mac and Linux.
The goal of ANGLE is to allow users of multiple operating systems to seamlessly run WebGL and other OpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs available for that platform. ANGLE currently provides translation from OpenGL ES 2.0 and 3.0 to desktop OpenGL, OpenGL ES, Direct3D 9, and Direct3D 11. Support for translation from OpenGL ES to Vulkan is underway, and future plans include compute shader support (ES 3.1) and MacOS support.
diff --git a/ports/angle/portfile.cmake b/ports/angle/portfile.cmake
index f0bda4a3d..48a6f7a3c 100644
--- a/ports/angle/portfile.cmake
+++ b/ports/angle/portfile.cmake
@@ -15,8 +15,8 @@ endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO google/angle
- REF chromium/3672
- SHA512 dd6a05f0f1f4544b8646c41ffcb4d5e3b41f5261771ada47889345a24d4e55e6370df55a26c354a7073efcde307644cec6c6064ea6fe498ed6b52c3017249f81
+ REF 0d3cf7085c8e953e78d4fa0656b26ee93d005452
+ SHA512 91550749933e278a72ae1094178ea28b36ee2b2fa553549477596ee772d1a39653386b3f3a9f168b0840a1511b7d31384b4e2d53cd5b5629028ca9c5a18a9288
PATCHES
001-fix-uwp.patch
)
diff --git a/ports/asio/CMakeLists.txt b/ports/asio/CMakeLists.txt
index aa7354e76..4241b1ffc 100644
--- a/ports/asio/CMakeLists.txt
+++ b/ports/asio/CMakeLists.txt
@@ -3,11 +3,6 @@ project(asio)
add_library(asio INTERFACE)
-# Always use "ASIO_STANDALONE" to avoid boost dependency
-file(READ "asio/include/asio/detail/config.hpp" _contents)
-string(REPLACE "defined(ASIO_STANDALONE)" "!defined(VCPKG_DISABLE_ASIO_STANDALONE)" _contents "${_contents}")
-file(WRITE "asio/include/asio/detail/config.hpp" "${_contents}")
-
# Export target
install(TARGETS asio
EXPORT asio
diff --git a/ports/asio/CONTROL b/ports/asio/CONTROL
index 49a2be94c..c0da68a9b 100644
--- a/ports/asio/CONTROL
+++ b/ports/asio/CONTROL
@@ -1,4 +1,4 @@
Source: asio
-Version: 1.12.2-1
+Version: 1.12.2-2
Homepage: https://github.com/chriskohlhoff/asio
Description: Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach.
diff --git a/ports/asio/portfile.cmake b/ports/asio/portfile.cmake
index f9b3b739d..6c6d438a1 100644
--- a/ports/asio/portfile.cmake
+++ b/ports/asio/portfile.cmake
@@ -9,6 +9,11 @@ vcpkg_from_github(
HEAD_REF master
)
+# Always use "ASIO_STANDALONE" to avoid boost dependency
+file(READ "${SOURCE_PATH}/asio/include/asio/detail/config.hpp" _contents)
+string(REPLACE "defined(ASIO_STANDALONE)" "!defined(VCPKG_DISABLE_ASIO_STANDALONE)" _contents "${_contents}")
+file(WRITE "${SOURCE_PATH}/asio/include/asio/detail/config.hpp" "${_contents}")
+
# CMake install
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
diff --git a/ports/boost-variant/CONTROL b/ports/boost-variant/CONTROL
index 395d00758..5aec459fd 100644
--- a/ports/boost-variant/CONTROL
+++ b/ports/boost-variant/CONTROL
@@ -1,6 +1,6 @@
# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
Source: boost-variant
-Version: 1.69.0
+Version: 1.70.0
Build-Depends: boost-assert, boost-bind, boost-config, boost-core, boost-detail, boost-functional, boost-integer, boost-move, boost-mpl, boost-preprocessor, boost-static-assert, boost-throw-exception, boost-type-index, boost-type-traits, boost-utility, boost-vcpkg-helpers
Homepage: https://github.com/boostorg/variant
Description: Boost variant module
diff --git a/ports/boost-variant/fix-regression-1.70.patch b/ports/boost-variant/fix-regression-1.70.patch
new file mode 100644
index 000000000..79c0e2c23
--- /dev/null
+++ b/ports/boost-variant/fix-regression-1.70.patch
@@ -0,0 +1,47 @@
+diff --git a/include/boost/variant/detail/apply_visitor_unary.hpp b/include/boost/variant/detail/apply_visitor_unary.hpp
+index 71610cb..c3a741e 100644
+--- a/include/boost/variant/detail/apply_visitor_unary.hpp
++++ b/include/boost/variant/detail/apply_visitor_unary.hpp
+@@ -23,6 +23,7 @@
+ # include <boost/mpl/size.hpp>
+ # include <boost/utility/declval.hpp>
+ # include <boost/core/enable_if.hpp>
++# include <boost/type_traits/copy_cv_ref.hpp>
+ # include <boost/type_traits/remove_reference.hpp>
+ # include <boost/variant/detail/has_result_type.hpp>
+ #endif
+@@ -85,7 +86,7 @@ namespace detail { namespace variant {
+ // This class serves only metaprogramming purposes. none of its methods must be called at runtime!
+ template <class Visitor, class Variant>
+ struct result_multideduce1 {
+- typedef typename Variant::types types;
++ typedef typename remove_reference<Variant>::type::types types;
+ typedef typename boost::mpl::begin<types>::type begin_it;
+ typedef typename boost::mpl::advance<
+ begin_it, boost::mpl::int_<boost::mpl::size<types>::type::value - 1>
+@@ -95,14 +96,14 @@ struct result_multideduce1 {
+ struct deduce_impl {
+ typedef typename boost::mpl::next<It>::type next_t;
+ typedef typename boost::mpl::deref<It>::type value_t;
+- typedef decltype(true ? boost::declval< Visitor& >()( boost::declval< value_t >() )
++ typedef decltype(true ? boost::declval< Visitor& >()( boost::declval< copy_cv_ref_t< value_t, Variant > >() )
+ : boost::declval< typename deduce_impl<next_t>::type >()) type;
+ };
+
+ template <class Dummy>
+ struct deduce_impl<last_it, Dummy> {
+ typedef typename boost::mpl::deref<last_it>::type value_t;
+- typedef decltype(boost::declval< Visitor& >()( boost::declval< value_t >() )) type;
++ typedef decltype(boost::declval< Visitor& >()( boost::declval< copy_cv_ref_t< value_t, Variant > >() )) type;
+ };
+
+ typedef typename deduce_impl<begin_it>::type type;
+@@ -132,7 +133,7 @@ inline decltype(auto) apply_visitor(Visitor&& visitor, Visitable&& visitable,
+ boost::detail::variant::has_result_type<Visitor>
+ >::type* = 0)
+ {
+- boost::detail::variant::result_wrapper1<Visitor, typename remove_reference<Visitable>::type> cpp14_vis(::boost::forward<Visitor>(visitor));
++ boost::detail::variant::result_wrapper1<Visitor, Visitable> cpp14_vis(::boost::forward<Visitor>(visitor));
+ return ::boost::forward<Visitable>(visitable).apply_visitor(cpp14_vis);
+ }
+
diff --git a/ports/boost-variant/portfile.cmake b/ports/boost-variant/portfile.cmake
index 95352b3f0..a1d8be528 100644
--- a/ports/boost-variant/portfile.cmake
+++ b/ports/boost-variant/portfile.cmake
@@ -5,9 +5,11 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO boostorg/variant
- REF boost-1.69.0
- SHA512 281f2a89317603e4875d35388d941c3a174024618f2f9c255344e69d43d43509de2947e35374d8498e337326c7637805160a84f3b2b4da8811660c8429e11be0
+ REF boost-1.70.0
+ SHA512 e5a555c666bd692a5ed6e556a66d93db82707357ae5f7e62af8565e5bf56b134adefb3049c38af72f420a969308f120b8270a9e9187eac984b74573b8e9e1d75
HEAD_REF master
+ PATCHES
+ fix-regression-1.70.patch
)
include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
diff --git a/ports/cpp-httplib/CONTROL b/ports/cpp-httplib/CONTROL
new file mode 100644
index 000000000..66d4938f0
--- /dev/null
+++ b/ports/cpp-httplib/CONTROL
@@ -0,0 +1,4 @@
+Source: cpp-httplib
+Version: 0.2.0
+Homepage: https://github.com/yhirose/cpp-httplib
+Description: A single file C++11 header-only HTTP/HTTPS server and client library
diff --git a/ports/cpp-httplib/portfile.cmake b/ports/cpp-httplib/portfile.cmake
new file mode 100644
index 000000000..9e85b57e3
--- /dev/null
+++ b/ports/cpp-httplib/portfile.cmake
@@ -0,0 +1,23 @@
+include(vcpkg_common_functions)
+
+set(VERSION 0.2.0)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO yhirose/cpp-httplib
+ REF 2f8479016fa9af9a63056571992b31c32741d89b
+ SHA512 2f17a6a95c849a5c873a65e8da8bf85311f0152e439a973354c24d02ee9e6c3b0f3a456b60f90637ea4588d9ac09f7e41f42199de61315754e5fe9eecbb657ed
+ HEAD_REF master
+)
+
+file(
+ COPY ${SOURCE_PATH}/httplib.h
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
+)
+
+# Handle copyright
+configure_file(
+ ${SOURCE_PATH}/LICENSE
+ ${CURRENT_PACKAGES_DIR}/share/cpp-httplib/copyright
+ COPYONLY
+)
diff --git a/ports/curl/0005_remove_imp_suffix.patch b/ports/curl/0005_remove_imp_suffix.patch
new file mode 100644
index 000000000..356af2d52
--- /dev/null
+++ b/ports/curl/0005_remove_imp_suffix.patch
@@ -0,0 +1,13 @@
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index eca9a8a..6f72955 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -97,7 +97,7 @@ endif()
+ set_target_properties(${LIB_NAME} PROPERTIES PREFIX "")
+ set_target_properties(${LIB_NAME} PROPERTIES IMPORT_PREFIX "")
+
+-if(WIN32)
++if(WIN32 AND 0)
+ if(BUILD_SHARED_LIBS)
+ # Add "_imp" as a suffix before the extension to avoid conflicting with the statically linked "libcurl.lib"
+ set_target_properties(${LIB_NAME} PROPERTIES IMPORT_SUFFIX "_imp.lib")
diff --git a/ports/curl/portfile.cmake b/ports/curl/portfile.cmake
index 5366fe88c..091fe9205 100644
--- a/ports/curl/portfile.cmake
+++ b/ports/curl/portfile.cmake
@@ -11,6 +11,7 @@ vcpkg_from_github(
0002_fix_uwp.patch
0003_fix_libraries.patch
0004_nghttp2_staticlib.patch
+ 0005_remove_imp_suffix.patch
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" CURL_STATICLIB)
@@ -140,17 +141,23 @@ if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/curl${EXECUTABLE_SUFFIX}")
endif()
endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/libcurl_imp.lib OR EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/libcurl-d_imp.lib)
+ # Because vcpkg only ever installs one or the other, there is no need to have the libraries be different names.
+ # Using the same name improves compatibility, because downstream projects can always rely on "libcurl.lib"
+ message(FATAL_ERROR "Curl's import library name should be consistent with the static library name.")
+endif()
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
else()
file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/curl-config ${CURRENT_PACKAGES_DIR}/debug/bin/curl-config)
endif()
file(READ ${CURRENT_PACKAGES_DIR}/include/curl/curl.h CURL_H)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
string(REPLACE "#ifdef CURL_STATICLIB" "#if 1" CURL_H "${CURL_H}")
else()
string(REPLACE "#ifdef CURL_STATICLIB" "#if 0" CURL_H "${CURL_H}")
diff --git a/ports/darknet/CONTROL b/ports/darknet/CONTROL
index 393503485..d31d4ef1d 100644
--- a/ports/darknet/CONTROL
+++ b/ports/darknet/CONTROL
@@ -1,5 +1,5 @@
Source: darknet
-Version: 0.2.5-3
+Version: 0.2.5-4
Description: Darknet is an open source neural network framework written in C and CUDA. You only look once (YOLO) is a state-of-the-art, real-time object detection system, best example of darknet functionalities.
Build-Depends: pthreads (windows), stb
Default-Features: weights
diff --git a/ports/darknet/portfile.cmake b/ports/darknet/portfile.cmake
index 3733420ad..3fb49e687 100644
--- a/ports/darknet/portfile.cmake
+++ b/ports/darknet/portfile.cmake
@@ -16,21 +16,23 @@ vcpkg_from_github(
HEAD_REF master
)
-set(ENABLE_CUDA OFF)
-if("cuda" IN_LIST FEATURES)
- set(ENABLE_CUDA ON)
-endif()
-
-set(ENABLE_OPENCV OFF)
-if("opencv" IN_LIST FEATURES)
- set(ENABLE_OPENCV ON)
-endif()
+vcpkg_check_features(
+ "cuda" ENABLE_CUDA
+ "opencv" ENABLE_OPENCV
+)
if("opencv-cuda" IN_LIST FEATURES)
set(ENABLE_OPENCV ON)
set(ENABLE_CUDA ON)
endif()
+if (ENABLE_CUDA)
+ if (NOT VCPKG_CMAKE_SYSTEM_NAME AND NOT ENV{CUDACXX})
+ #CMake looks for nvcc only in PATH and CUDACXX env vars for the Ninja generator. Since we filter path on vcpkg and CUDACXX env var is not set by CUDA installer on Windows, CMake cannot find CUDA when using Ninja generator, so we need to manually enlight it if necessary (https://gitlab.kitware.com/cmake/cmake/issues/19173). Otherwise we could just disable Ninja and use MSBuild, but unfortunately CUDA installer does not integrate with some distributions of MSBuild (like the ones inside Build Tools), making CUDA unavailable otherwise in those cases, which we want to avoid
+ set(ENV{CUDACXX} "$ENV{CUDA_PATH}/bin/nvcc.exe")
+ endif()
+endif()
+
if("weights" IN_LIST FEATURES)
vcpkg_download_distfile(YOLOV3_WEIGHTS
URLS "https://pjreddie.com/media/files/yolov3.weights"
@@ -60,7 +62,7 @@ file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
DISABLE_PARALLEL_CONFIGURE #since darknet configures a file inside source tree, it is better to disable parallel configure
- #PREFER_NINJA #it does not work with cuda on windows https://gitlab.kitware.com/cmake/cmake/issues/19173
+ PREFER_NINJA
OPTIONS
-DINSTALL_BIN_DIR:STRING=bin
-DINSTALL_LIB_DIR:STRING=lib
diff --git a/ports/duilib/CONTROL b/ports/duilib/CONTROL
index 9154664ea..cb4c7ed3f 100644
--- a/ports/duilib/CONTROL
+++ b/ports/duilib/CONTROL
@@ -1,3 +1,3 @@
Source: duilib
-Version: 2019-4-28-1
+Version: 2019-4-28-2
Description: Duilib is a free open source DirectUI interface library under Windows. It is widely accepted by major Internet companies due to its simple and easy to expand design and stable and efficient implementation. It is widely used in IM, video client, stock market software, navigation software, and mobile phone assistive software. Duilib is still evolving, and will continue to improve in many aspects such as documentation, examples, animations, and rendering engines.
diff --git a/ports/duilib/portfile.cmake b/ports/duilib/portfile.cmake
index 7e30c9940..5556d22cd 100644
--- a/ports/duilib/portfile.cmake
+++ b/ports/duilib/portfile.cmake
@@ -16,6 +16,7 @@ vcpkg_from_github(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}/DuiLib
PREFER_NINJA
+ NO_CHARSET_FLAG
)
vcpkg_build_cmake()
diff --git a/ports/flann/CONTROL b/ports/flann/CONTROL
index c2aba2e18..fdcbb8ecc 100644
--- a/ports/flann/CONTROL
+++ b/ports/flann/CONTROL
@@ -1,5 +1,5 @@
Source: flann
-Version: 1.9.1
+Version: 1.9.1-1
Homepage: https://github.com/mariusmuja/flann
Build-Depends: lz4
Description: Fast Library for Approximate Nearest Neighbors
diff --git a/ports/flann/portfile.cmake b/ports/flann/portfile.cmake
index baf79035a..ec9637212 100644
--- a/ports/flann/portfile.cmake
+++ b/ports/flann/portfile.cmake
@@ -16,6 +16,7 @@ vcpkg_from_github(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
+ DISABLE_PARALLEL_CONFIGURE
OPTIONS
-DBUILD_EXAMPLES=OFF
-DBUILD_TESTS=OFF
diff --git a/ports/freetype/0002-Add-CONFIG_INSTALL_PATH-option.patch b/ports/freetype/0002-Add-CONFIG_INSTALL_PATH-option.patch
index 993576160..65f9631ca 100644
--- a/ports/freetype/0002-Add-CONFIG_INSTALL_PATH-option.patch
+++ b/ports/freetype/0002-Add-CONFIG_INSTALL_PATH-option.patch
@@ -1,23 +1,22 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 32324d6..89a73a4 100644
+index a418c44..db48e9f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -151,6 +151,9 @@ option(FT_WITH_BZIP2 "Support bzip2 compressed fonts." OFF)
+@@ -156,6 +156,8 @@ option(FT_WITH_BZIP2 "Support bzip2 compressed fonts." OFF)
option(FT_WITH_PNG "Support PNG compressed OpenType embedded bitmaps." OFF)
option(FT_WITH_HARFBUZZ "Improve auto-hinting of OpenType fonts." OFF)
+# vcpkg config install path
+option(CONFIG_INSTALL_PATH "location to install cmake config files" lib/cmake/freetype)
-+
# Disallow in-source builds
- if ("${PROJECT_BINARY_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}")
-@@ -475,7 +478,7 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
+ if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
+@@ -488,7 +490,7 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
COMPONENT libraries)
install(
EXPORT freetype-targets
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype
-+ DESTINATION ${CONFIG_INSTALL_PATH}
++ DESTINATION ${CONFIG_INSTALL_PATH}
FILE freetype-config.cmake
COMPONENT headers)
endif ()
diff --git a/ports/freetype/0003-Fix-UWP.patch b/ports/freetype/0003-Fix-UWP.patch
index 937942189..b3a04188c 100644
--- a/ports/freetype/0003-Fix-UWP.patch
+++ b/ports/freetype/0003-Fix-UWP.patch
@@ -1,8 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 89a73a4..fe9bc65 100644
+index db48e9f..5c35276 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -321,6 +321,10 @@ else ()
+@@ -328,6 +328,10 @@ else ()
list(APPEND BASE_SRCS src/base/ftdebug.c)
endif ()
@@ -14,14 +14,14 @@ index 89a73a4..fe9bc65 100644
list(APPEND BASE_SRCS builds/mac/freetype-Info.plist)
endif ()
diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h
-index 9664404..f56335a 100644
+index 4f2eaca..1e01fe4 100644
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
-@@ -1066,6 +1066,11 @@ FT_BEGIN_HEADER
- /* Especially for TrueType fonts see also the documentation for */
- /* @FT_Size_Metrics. */
- /* */
-+
+@@ -1038,6 +1038,11 @@ FT_BEGIN_HEADER
+ * Especially for TrueType fonts see also the documentation for
+ * @FT_Size_Metrics.
+ */
++
+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
+#define generic GenericFromFreeTypeLibrary
+#endif
@@ -29,7 +29,7 @@ index 9664404..f56335a 100644
typedef struct FT_FaceRec_
{
FT_Long num_faces;
-@@ -1942,6 +1947,9 @@ FT_BEGIN_HEADER
+@@ -1910,6 +1915,9 @@ FT_BEGIN_HEADER
} FT_GlyphSlotRec;
@@ -40,28 +40,26 @@ index 9664404..f56335a 100644
/*************************************************************************/
/*************************************************************************/
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
-index 8d07e35..ce6fffd 100644
+index 3f8619d..edf03b6 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
-@@ -491,6 +491,10 @@
+@@ -528,6 +528,9 @@
return error;
}
+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
+#define generic GenericFromFreeTypeLibrary
+#endif
-+
static void
ft_glyphslot_clear( FT_GlyphSlot slot )
-@@ -1151,6 +1155,10 @@
+@@ -1195,6 +1198,9 @@
FT_FREE( face );
}
+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
+#undef generic
+#endif
-+
static void
Destroy_Driver( FT_Driver driver )
diff --git a/ports/freetype/0004-Fix-DLL-install.patch b/ports/freetype/0004-Fix-DLL-install.patch
deleted file mode 100644
index 8d70b993f..000000000
--- a/ports/freetype/0004-Fix-DLL-install.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index fe9bc65..dd8a878 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -478,6 +478,8 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
- EXPORT freetype-targets
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+# DLL is RUNTIME
-+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- FRAMEWORK DESTINATION Library/Frameworks
- COMPONENT libraries)
- install(
diff --git a/ports/freetype/CONTROL b/ports/freetype/CONTROL
index 21b6c59f4..91116126d 100644
--- a/ports/freetype/CONTROL
+++ b/ports/freetype/CONTROL
@@ -1,5 +1,5 @@
Source: freetype
-Version: 2.9.1-2
+Version: 2.10.0
Build-Depends: zlib, bzip2, libpng
Homepage: https://www.freetype.org/
Description: A library to render fonts.
diff --git a/ports/freetype/portfile.cmake b/ports/freetype/portfile.cmake
index 654cff2b9..39d462a34 100644
--- a/ports/freetype/portfile.cmake
+++ b/ports/freetype/portfile.cmake
@@ -1,10 +1,10 @@
include(vcpkg_common_functions)
-set(FT_VERSION 2.9.1)
+set(FT_VERSION 2.10.0)
vcpkg_download_distfile(ARCHIVE
URLS "https://download-mirror.savannah.gnu.org/releases/freetype/freetype-${FT_VERSION}.tar.bz2" "https://downloads.sourceforge.net/project/freetype/freetype2/${FT_VERSION}/freetype-${FT_VERSION}.tar.bz2"
FILENAME "freetype-${FT_VERSION}.tar.bz2"
- SHA512 856766e1f3f4c7dc8afb2b5ee991138c8b642c6a6e5e007cd2bc04ae58bde827f082557cf41bf541d97e8485f7fd064d10390d1ee597f19d1daed6c152e27708
+ SHA512 dfad66f419ea9577f09932e0730c0c887bdcbdbc8152fa7477a0c39d69a5b68476761deed6864ddcc5cf18d100a7a3f728049768e24afcb04b1a74b25b6acf7e
)
if(NOT ${VCPKG_LIBRARY_LINKAGE} STREQUAL "dynamic")
@@ -16,7 +16,6 @@ if(NOT ${VCPKG_LIBRARY_LINKAGE} STREQUAL "dynamic")
0001-Fix-install-command.patch
0002-Add-CONFIG_INSTALL_PATH-option.patch
0003-Fix-UWP.patch
- 0004-Fix-DLL-install.patch
)
else()
vcpkg_extract_source_archive_ex(
@@ -27,7 +26,6 @@ else()
0001-Fix-install-command.patch
0002-Add-CONFIG_INSTALL_PATH-option.patch
0003-Fix-UWP.patch
- 0004-Fix-DLL-install.patch
0005-Fix-DLL-EXPORTS.patch
)
endif()
diff --git a/ports/freexl/CONTROL b/ports/freexl/CONTROL
index 00f97f562..dc4ec446a 100644
--- a/ports/freexl/CONTROL
+++ b/ports/freexl/CONTROL
@@ -1,5 +1,5 @@
Source: freexl
-Version: 1.0.4-1
+Version: 1.0.4-2
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 ff8879fba..e770d61f1 100644
--- a/ports/freexl/portfile.cmake
+++ b/ports/freexl/portfile.cmake
@@ -1,90 +1,180 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/freexl-1.0.4)
+set(FREEXL_VERSION_STR "1.0.4")
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/freexl-${FREEXL_VERSION_STR})
vcpkg_download_distfile(ARCHIVE
- URLS "http://www.gaia-gis.it/gaia-sins/freexl-sources/freexl-1.0.4.tar.gz"
- FILENAME "freexl-1.0.4.tar.gz"
+ URLS "http://www.gaia-gis.it/gaia-sins/freexl-sources/freexl-${FREEXL_VERSION_STR}.tar.gz"
+ FILENAME "freexl-${FREEXL_VERSION_STR}.tar.gz"
SHA512 d72561f7b82e0281cb211fbf249e5e45411a7cdd009cfb58da3696f0a0341ea7df210883bfde794be28738486aeb4ffc67ec2c98fd2acde5280e246e204ce788
)
-vcpkg_extract_source_archive(${ARCHIVE})
+if (CMAKE_HOST_WIN32)
+ vcpkg_extract_source_archive(${ARCHIVE})
+ vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-sources.patch
+ )
+ find_program(NMAKE nmake)
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch
- ${CMAKE_CURRENT_LIST_DIR}/fix-sources.patch
-)
-find_program(NMAKE nmake)
-
-set(LIBS_ALL_DBG
- "\"${CURRENT_INSTALLED_DIR}/debug/lib/libiconv.lib\" \
- \"${CURRENT_INSTALLED_DIR}/debug/lib/libcharset.lib\""
- )
-set(LIBS_ALL_REL
- "\"${CURRENT_INSTALLED_DIR}/lib/libiconv.lib\" \
- \"${CURRENT_INSTALLED_DIR}/lib/libcharset.lib\""
- )
-
-
-if(VCPKG_CRT_LINKAGE STREQUAL dynamic)
- set(CL_FLAGS_DBG "/MDd /Zi")
- set(CL_FLAGS_REL "/MD /Ox")
-else()
- set(CL_FLAGS_DBG "/MTd /Zi")
- set(CL_FLAGS_REL "/MT /Ox")
-endif()
+ set(LIBS_ALL_DBG
+ "\"${CURRENT_INSTALLED_DIR}/debug/lib/libiconv.lib\" \
+ \"${CURRENT_INSTALLED_DIR}/debug/lib/libcharset.lib\""
+ )
+ set(LIBS_ALL_REL
+ "\"${CURRENT_INSTALLED_DIR}/lib/libiconv.lib\" \
+ \"${CURRENT_INSTALLED_DIR}/lib/libcharset.lib\""
+ )
-################
-# Debug build
-################
-if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
- message(STATUS "Building ${TARGET_TRIPLET}-dbg")
+ if(VCPKG_CRT_LINKAGE STREQUAL dynamic)
+ set(CL_FLAGS_DBG "/MDd /Zi")
+ set(CL_FLAGS_REL "/MD /Ox")
+ else()
+ set(CL_FLAGS_DBG "/MTd /Zi")
+ set(CL_FLAGS_REL "/MT /Ox")
+ endif()
- file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/debug" INST_DIR_DBG)
- vcpkg_execute_required_process(
- COMMAND ${NMAKE} -f makefile.vc clean install
- INST_DIR="${INST_DIR_DBG}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=/debug" "CL_FLAGS=${CL_FLAGS_DBG}" "LIBS_ALL=${LIBS_ALL_DBG}"
- WORKING_DIRECTORY ${SOURCE_PATH}
- LOGNAME nmake-build-${TARGET_TRIPLET}-debug
- )
- message(STATUS "Building ${TARGET_TRIPLET}-dbg done")
- vcpkg_copy_pdbs()
-endif()
-################
-# Release build
-################
-if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
- message(STATUS "Building ${TARGET_TRIPLET}-rel")
-
- file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR_REL)
- vcpkg_execute_required_process(
- COMMAND ${NMAKE} -f makefile.vc clean install
- INST_DIR="${INST_DIR_REL}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=" "CL_FLAGS=${CL_FLAGS_REL}" "LIBS_ALL=${LIBS_ALL_REL}"
- WORKING_DIRECTORY ${SOURCE_PATH}
- LOGNAME nmake-build-${TARGET_TRIPLET}-release
- )
- message(STATUS "Building ${TARGET_TRIPLET}-rel done")
-endif()
+ ################
+ # Debug build
+ ################
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg")
+
+ file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/debug" INST_DIR_DBG)
+ vcpkg_execute_required_process(
+ COMMAND ${NMAKE} -f makefile.vc clean install
+ INST_DIR="${INST_DIR_DBG}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=/debug" "CL_FLAGS=${CL_FLAGS_DBG}" "LIBS_ALL=${LIBS_ALL_DBG}"
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME nmake-build-${TARGET_TRIPLET}-debug
+ )
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg done")
+ vcpkg_copy_pdbs()
+ endif()
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/freexl RENAME copyright)
-
-if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/freexl_i.lib)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/freexl_i.lib)
-else()
- file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/freexl.lib)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/freexl.lib)
+ ################
+ # Release build
+ ################
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
- file(RENAME ${CURRENT_PACKAGES_DIR}/lib/freexl_i.lib ${CURRENT_PACKAGES_DIR}/lib/freexl.lib)
+ message(STATUS "Building ${TARGET_TRIPLET}-rel")
+
+ file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR_REL)
+ vcpkg_execute_required_process(
+ COMMAND ${NMAKE} -f makefile.vc clean install
+ INST_DIR="${INST_DIR_REL}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=" "CL_FLAGS=${CL_FLAGS_REL}" "LIBS_ALL=${LIBS_ALL_REL}"
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME nmake-build-${TARGET_TRIPLET}-release
+ )
+ message(STATUS "Building ${TARGET_TRIPLET}-rel done")
endif()
- if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
- file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/freexl_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/freexl.lib)
+
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+ file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/freexl RENAME copyright)
+
+ if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/freexl_i.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/freexl_i.lib)
+ else()
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/freexl.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/freexl.lib)
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/freexl_i.lib ${CURRENT_PACKAGES_DIR}/lib/freexl.lib)
+ endif()
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/freexl_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/freexl.lib)
+ endif()
endif()
-endif()
+elseif (CMAKE_HOST_UNIX OR CMAKE_HOST_APPLE) # Build in UNIX
+
+ # Check build system first
+ find_program(MAKE make)
+ if (NOT MAKE)
+ message(FATAL_ERROR "MAKE not found")
+ endif()
+
+ # CI error logs appear to indicate that it doesn't like ./configure in the same source dir
+ # so extract the source into separate debug/release source directories
+ set(SOURCE_ROOT_DEBUG ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-debug)
+ set(SOURCE_ROOT_RELEASE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-release)
+ set(SOURCE_PATH_DEBUG ${SOURCE_ROOT_DEBUG}/freexl-${FREEXL_VERSION_STR})
+ set(SOURCE_PATH_RELEASE ${SOURCE_ROOT_RELEASE}/freexl-${FREEXL_VERSION_STR})
+
+ file(REMOVE_RECURSE ${SOURCE_ROOT_DEBUG})
+ file(REMOVE_RECURSE ${SOURCE_ROOT_RELEASE})
+
+ vcpkg_extract_source_archive(${ARCHIVE} ${SOURCE_ROOT_DEBUG})
+ vcpkg_extract_source_archive(${ARCHIVE} ${SOURCE_ROOT_RELEASE})
+
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ ################
+ # Release build
+ ################
+ message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
+ set(OUT_PATH_RELEASE ${SOURCE_PATH_RELEASE}/../../make-build-${TARGET_TRIPLET}-release)
+ file(MAKE_DIRECTORY ${OUT_PATH_RELEASE})
+ vcpkg_execute_required_process(
+ COMMAND "${SOURCE_PATH_RELEASE}/configure" --prefix=${OUT_PATH_RELEASE} "${FREEXL_CONFIGURE_ARGS_REL}"
+ WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
+ LOGNAME config-${TARGET_TRIPLET}-rel
+ )
+
+ message(STATUS "Building ${TARGET_TRIPLET}-rel")
+ vcpkg_execute_required_process(
+ COMMAND make
+ WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
+ LOGNAME make-build-${TARGET_TRIPLET}-release
+ )
+
+ message(STATUS "Installing ${TARGET_TRIPLET}-rel")
+ vcpkg_execute_required_process(
+ COMMAND make install
+ WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
+ LOGNAME make-install-${TARGET_TRIPLET}-release
+ )
+
+ file(COPY ${OUT_PATH_RELEASE}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
+ file(COPY ${OUT_PATH_RELEASE}/include DESTINATION ${CURRENT_PACKAGES_DIR})
+ file(COPY ${SOURCE_PATH_RELEASE}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/freexl)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/share/freexl/COPYING ${CURRENT_PACKAGES_DIR}/share/freexl/copyright)
+ message(STATUS "Installing ${TARGET_TRIPLET}-rel done")
+ endif()
+
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ ################
+ # Debug build
+ ################
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
+ set(OUT_PATH_DEBUG ${SOURCE_PATH_DEBUG}/../../make-build-${TARGET_TRIPLET}-debug)
+ file(MAKE_DIRECTORY ${OUT_PATH_DEBUG})
+ vcpkg_execute_required_process(
+ COMMAND "${SOURCE_PATH_DEBUG}/configure" --prefix=${OUT_PATH_DEBUG} "${FREEXL_CONFIGURE_ARGS_DBG}"
+ WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
+ LOGNAME config-${TARGET_TRIPLET}-debug
+ )
+
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg")
+ vcpkg_execute_required_process(
+ COMMAND make
+ WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
+ LOGNAME make-build-${TARGET_TRIPLET}-debug
+ )
+
+ message(STATUS "Installing ${TARGET_TRIPLET}-dbg")
+ vcpkg_execute_required_process(
+ COMMAND make install
+ WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
+ LOGNAME make-install-${TARGET_TRIPLET}-debug
+ )
+
+ file(COPY ${OUT_PATH_DEBUG}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
+ message(STATUS "Installing ${TARGET_TRIPLET}-dbg done")
+ endif()
+
+else()# Other build system
+ message(FATAL_ERROR "Unsupported build system.")
+endif()
message(STATUS "Packaging ${TARGET_TRIPLET} done")
diff --git a/ports/glslang/CMakeLists-targets.patch b/ports/glslang/CMakeLists-targets.patch
index 73661fa35..36e923d92 100644
--- a/ports/glslang/CMakeLists-targets.patch
+++ b/ports/glslang/CMakeLists-targets.patch
@@ -1,133 +1,108 @@
-diff --git a/ChooseMSVCCRT.cmake b/ChooseMSVCCRT.cmake
-index 2097881..f0cddd7 100644
---- a/ChooseMSVCCRT.cmake
-+++ b/ChooseMSVCCRT.cmake
-@@ -102,4 +102,4 @@ set(MSVC_CRT
- MT
- MTd)
-
--choose_msvc_crt(MSVC_CRT)
-+# choose_msvc_crt(MSVC_CRT)
-diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt
-index 5bb3f0e..e7be6e6 100644
---- a/OGLCompilersDLL/CMakeLists.txt
-+++ b/OGLCompilersDLL/CMakeLists.txt
-@@ -9,6 +9,12 @@ if(WIN32)
- endif(WIN32)
-
- if(ENABLE_GLSLANG_INSTALL)
-- install(TARGETS OGLCompiler
-- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+ install(TARGETS OGLCompiler EXPORT glslangConfig
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ )
-+ export(TARGETS OGLCompiler
-+ NAMESPACE glslang::
-+ FILE "${CMAKE_CURRENT_BINARY_DIR}/OGLCompiler-config.cmake"
-+ )
- endif(ENABLE_GLSLANG_INSTALL)
-diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt
-index b682419..3a10f1a 100755
---- a/SPIRV/CMakeLists.txt
-+++ b/SPIRV/CMakeLists.txt
-@@ -64,8 +64,14 @@ if(WIN32)
- endif(WIN32)
-
- if(ENABLE_GLSLANG_INSTALL)
-- install(TARGETS SPIRV SPVRemapper
-- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+ install(TARGETS SPIRV EXPORT glslangConfig
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ )
-+ export(TARGETS SPIRV
-+ NAMESPACE glslang::
-+ FILE "${CMAKE_CURRENT_BINARY_DIR}/glslang-config.cmake"
-+ )
-
- install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SPIRV/)
- endif(ENABLE_GLSLANG_INSTALL)
-diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
-index 7a50ab6..b70345e 100644
---- a/glslang/CMakeLists.txt
-+++ b/glslang/CMakeLists.txt
-@@ -97,8 +97,19 @@ if(WIN32)
- endif(WIN32)
-
- if(ENABLE_GLSLANG_INSTALL)
-- install(TARGETS glslang
-- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+ install(TARGETS glslang EXPORT glslangConfig
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ )
-+ export(TARGETS glslang
-+ NAMESPACE glslang::
-+ FILE "${CMAKE_CURRENT_BINARY_DIR}/glslang-config.cmake"
-+ )
-+ install(
-+ EXPORT glslangConfig
-+ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/glslang"
-+ NAMESPACE glslang::
-+ )
- endif(ENABLE_GLSLANG_INSTALL)
-
- if(ENABLE_GLSLANG_INSTALL)
-diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt
-index 1bf49e1..edd733c 100644
---- a/glslang/OSDependent/Unix/CMakeLists.txt
-+++ b/glslang/OSDependent/Unix/CMakeLists.txt
-@@ -3,6 +3,12 @@ set_property(TARGET OSDependent PROPERTY FOLDER glslang)
- set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON)
-
- if(ENABLE_GLSLANG_INSTALL)
-- install(TARGETS OSDependent
-- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+ install(TARGETS OSDependent EXPORT glslangConfig
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ )
-+ export(TARGETS OSDependent
-+ NAMESPACE glslang::
-+ FILE "${CMAKE_CURRENT_BINARY_DIR}/OSDependent-config.cmake"
-+ )
- endif(ENABLE_GLSLANG_INSTALL)
-diff --git a/glslang/OSDependent/Windows/CMakeLists.txt b/glslang/OSDependent/Windows/CMakeLists.txt
-index f257418..cadd70d 100644
---- a/glslang/OSDependent/Windows/CMakeLists.txt
-+++ b/glslang/OSDependent/Windows/CMakeLists.txt
-@@ -15,6 +15,12 @@ if(WIN32)
- endif(WIN32)
-
- if(ENABLE_GLSLANG_INSTALL)
-- install(TARGETS OSDependent
-- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+ install(TARGETS OSDependent EXPORT glslangConfig
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ )
-+ export(TARGETS OSDependent
-+ NAMESPACE glslang::
-+ FILE "${CMAKE_CURRENT_BINARY_DIR}/OSDependent-config.cmake"
-+ )
- endif(ENABLE_GLSLANG_INSTALL)
-diff --git a/hlsl/CMakeLists.txt b/hlsl/CMakeLists.txt
-index 98dfad7..94d96a0 100755
---- a/hlsl/CMakeLists.txt
-+++ b/hlsl/CMakeLists.txt
-@@ -26,6 +26,12 @@ if(WIN32)
- endif(WIN32)
-
- if(ENABLE_GLSLANG_INSTALL)
-- install(TARGETS HLSL
-- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+ install(TARGETS HLSL EXPORT glslangConfig
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ )
-+ export(TARGETS HLSL
-+ NAMESPACE glslang::
-+ FILE "${CMAKE_CURRENT_BINARY_DIR}/HLSL-config.cmake"
-+ )
- endif(ENABLE_GLSLANG_INSTALL)
+diff --git a/ChooseMSVCCRT.cmake b/ChooseMSVCCRT.cmake
+index 2097881..f6320a9 100644
+--- a/ChooseMSVCCRT.cmake
++++ b/ChooseMSVCCRT.cmake
+@@ -102,4 +102,3 @@ set(MSVC_CRT
+ MT
+ MTd)
+
+-choose_msvc_crt(MSVC_CRT)
+diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt
+index 5bb3f0e..90ba3be 100644
+--- a/OGLCompilersDLL/CMakeLists.txt
++++ b/OGLCompilersDLL/CMakeLists.txt
+@@ -9,6 +9,7 @@ if(WIN32)
+ endif(WIN32)
+
+ if(ENABLE_GLSLANG_INSTALL)
+- install(TARGETS OGLCompiler
+- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
++ install(TARGETS OGLCompiler EXPORT glslangConfig
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif(ENABLE_GLSLANG_INSTALL)
+diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt
+index 1997e74..e2a0229 100644
+--- a/SPIRV/CMakeLists.txt
++++ b/SPIRV/CMakeLists.txt
+@@ -46,7 +46,6 @@ endif(ENABLE_NV_EXTENSIONS)
+ add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS})
+ set_property(TARGET SPIRV PROPERTY FOLDER glslang)
+ set_property(TARGET SPIRV PROPERTY POSITION_INDEPENDENT_CODE ON)
+-target_include_directories(SPIRV PUBLIC ..)
+
+ if (ENABLE_SPVREMAPPER)
+ add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
+@@ -78,13 +77,13 @@ if(WIN32)
+ endif(WIN32)
+
+ if(ENABLE_GLSLANG_INSTALL)
+- if(BUILD_SHARED_LIBS)
++ if(BUILD_SHARED_LIBS OR TRUE)
+ if (ENABLE_SPVREMAPPER)
+ install(TARGETS SPVRemapper
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif()
+- install(TARGETS SPIRV
++ install(TARGETS SPIRV EXPORT glslangConfig
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ else()
+diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
+index 5f51476..7f11498 100644
+--- a/glslang/CMakeLists.txt
++++ b/glslang/CMakeLists.txt
+@@ -86,7 +86,6 @@ add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${H
+ set_property(TARGET glslang PROPERTY FOLDER glslang)
+ set_property(TARGET glslang PROPERTY POSITION_INDEPENDENT_CODE ON)
+ target_link_libraries(glslang OGLCompiler OSDependent)
+-target_include_directories(glslang PUBLIC ..)
+
+ if(WIN32 AND BUILD_SHARED_LIBS)
+ set_target_properties(glslang PROPERTIES PREFIX "")
+@@ -105,10 +104,15 @@ if(WIN32)
+ endif(WIN32)
+
+ if(ENABLE_GLSLANG_INSTALL)
+- if(BUILD_SHARED_LIBS)
+- install(TARGETS glslang
++ if(BUILD_SHARED_LIBS OR TRUE)
++ install(TARGETS glslang EXPORT glslangConfig
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
++ install(
++ EXPORT glslangConfig
++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/glslang"
++ NAMESPACE glslang::
++ )
+ else()
+ install(TARGETS glslang
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt
+index e652f45..a9673fe 100644
+--- a/glslang/OSDependent/Unix/CMakeLists.txt
++++ b/glslang/OSDependent/Unix/CMakeLists.txt
+@@ -20,6 +20,6 @@ else()
+ endif()
+
+ if(ENABLE_GLSLANG_INSTALL)
+- install(TARGETS OSDependent
++ install(TARGETS OSDependent EXPORT glslangConfig
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif(ENABLE_GLSLANG_INSTALL)
+diff --git a/hlsl/CMakeLists.txt b/hlsl/CMakeLists.txt
+index f918d7a..329800f 100644
+--- a/hlsl/CMakeLists.txt
++++ b/hlsl/CMakeLists.txt
+@@ -32,8 +32,8 @@ if(WIN32)
+ endif(WIN32)
+
+ if(ENABLE_GLSLANG_INSTALL)
+- if(BUILD_SHARED_LIBS)
+- install(TARGETS HLSL
++ if(BUILD_SHARED_LIBS OR TRUE)
++ install(TARGETS HLSL EXPORT glslangConfig
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ else()
diff --git a/ports/glslang/CMakeLists-windows.patch b/ports/glslang/CMakeLists-windows.patch
new file mode 100644
index 000000000..76ccf6077
--- /dev/null
+++ b/ports/glslang/CMakeLists-windows.patch
@@ -0,0 +1,12 @@
+diff --git a/glslang/OSDependent/Windows/CMakeLists.txt b/glslang/OSDependent/Windows/CMakeLists.txt
+index f257418..82a3f3c 100644
+--- a/glslang/OSDependent/Windows/CMakeLists.txt
++++ b/glslang/OSDependent/Windows/CMakeLists.txt
+@@ -15,6 +15,6 @@ if(WIN32)
+ endif(WIN32)
+
+ if(ENABLE_GLSLANG_INSTALL)
+- install(TARGETS OSDependent
++ install(TARGETS OSDependent EXPORT glslangConfig
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif(ENABLE_GLSLANG_INSTALL)
diff --git a/ports/glslang/CONTROL b/ports/glslang/CONTROL
index f3a25620c..2d16ad41b 100644
--- a/ports/glslang/CONTROL
+++ b/ports/glslang/CONTROL
@@ -1,4 +1,4 @@
Source: glslang
-Version: 2018-03-02-2
+Version: 2019-03-05
Homepage: https://github.com/KhronosGroup/glslang
-Description: Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator
+Description: Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator \ No newline at end of file
diff --git a/ports/glslang/portfile.cmake b/ports/glslang/portfile.cmake
index 77e15052d..003aa26aa 100644
--- a/ports/glslang/portfile.cmake
+++ b/ports/glslang/portfile.cmake
@@ -5,11 +5,12 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO KhronosGroup/glslang
- REF b5b5f918c6b72d7cf2ee73641cc6c6ddb211ca70
- SHA512 ec0f7a23fa60457a481c7b3acf4c127c3bf898d23655d346aeafb304f74e798d632c83d676873f2c764d241de6dc4392cff8d6ce0ee509a4b74ee2233b01c008
+ REF f88e5824d2cfca5edc58c7c2101ec9a4ec36afac
+ SHA512 92dc287e8930db6e00bde23b770f763dc3cf8a405a37b682bbd65e1dbde1f1f5161543fcc70b09eef07a5ce8bbe8f368ef84ac75003c122f42d1f6b9eaa8bd50
HEAD_REF master
PATCHES
CMakeLists-targets.patch
+ CMakeLists-windows.patch
)
vcpkg_configure_cmake(
@@ -20,8 +21,6 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
-vcpkg_fixup_cmake_targets()
-
file(RENAME "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/tools")
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin")
diff --git a/ports/harfbuzz/portfile.cmake b/ports/harfbuzz/portfile.cmake
index 93c1da645..d7fbd9a0d 100644
--- a/ports/harfbuzz/portfile.cmake
+++ b/ports/harfbuzz/portfile.cmake
@@ -71,6 +71,7 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
vcpkg_fixup_cmake_targets()
+
vcpkg_copy_pdbs()
if (HAVE_GLIB)
diff --git a/ports/idevicerestore/CONTROL b/ports/idevicerestore/CONTROL
index 36c31d97c..ca6cabbd0 100644
--- a/ports/idevicerestore/CONTROL
+++ b/ports/idevicerestore/CONTROL
@@ -1,4 +1,4 @@
Source: idevicerestore
-Version: 1.0.12-2
+Version: 1.0.12-3
Description: Restore/upgrade firmware of iOS devices
Build-Depends: libimobiledevice, curl, libirecovery, libzip \ No newline at end of file
diff --git a/ports/idevicerestore/libcurl_imp.patch b/ports/idevicerestore/libcurl_imp.patch
deleted file mode 100644
index f93dfb2b5..000000000
--- a/ports/idevicerestore/libcurl_imp.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff --git a/idevicerestore.vcxproj b/idevicerestore.vcxproj
-index fa209fae..cf89306b 100644
---- a/idevicerestore.vcxproj
-+++ b/idevicerestore.vcxproj
-@@ -94,7 +94,7 @@
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_WINSOCK_DEPRECATED_NO_WARNINGS</PreprocessorDefinitions>
- </ClCompile>
- <Link>
-- <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Ws2_32.lib;libcurl.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+ <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Ws2_32.lib;libcurl-d_imp.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-@@ -105,7 +105,7 @@
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_WINSOCK_DEPRECATED_NO_WARNINGS</PreprocessorDefinitions>
- </ClCompile>
- <Link>
-- <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Ws2_32.lib;libcurl.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+ <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Ws2_32.lib;libcurl-d_imp.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-@@ -120,7 +120,7 @@
- <Link>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
-- <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Ws2_32.lib;libcurl.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+ <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Ws2_32.lib;libcurl_imp.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-@@ -135,7 +135,7 @@
- <Link>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
-- <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Ws2_32.lib;libcurl.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+ <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Ws2_32.lib;libcurl_imp.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
diff --git a/ports/idevicerestore/portfile.cmake b/ports/idevicerestore/portfile.cmake
index 271c249c6..67aeb4c37 100644
--- a/ports/idevicerestore/portfile.cmake
+++ b/ports/idevicerestore/portfile.cmake
@@ -6,20 +6,9 @@ vcpkg_from_github(
REF 1.0.12
SHA512 ba623be56c2f37853516d7d4c32e16f1ec72f33d512f18aa812ce6830af4b9e389f7af5321888dd0ddd168e282b652e379b60f90970680e213eabf489f406915
HEAD_REF msvc-master
+ PATCHES libcurl_d.patch
)
-if(${VCPKG_LIBRARY_LINKAGE} MATCHES dynamic)
- vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- libcurl_imp.patch)
-else()
- vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- libcurl_d.patch)
-endif()
-
vcpkg_install_msbuild(
SOURCE_PATH ${SOURCE_PATH}
PROJECT_SUBPATH idevicerestore.vcxproj
diff --git a/ports/libftdi/CONTROL b/ports/libftdi/CONTROL
index 3c50a00e2..16ebe6fab 100644
--- a/ports/libftdi/CONTROL
+++ b/ports/libftdi/CONTROL
@@ -1,4 +1,4 @@
Source: libftdi
-Version: 0.20
+Version: 0.20-1
Build-Depends: libusb-win32
Description: FTDI USB driver with bitbang mode (v0.20)
diff --git a/ports/libftdi/export-cmake.patch b/ports/libftdi/export-cmake.patch
deleted file mode 100644
index 29078c25d..000000000
--- a/ports/libftdi/export-cmake.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 1c326fe..3c1d9ab 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -47,14 +47,19 @@ if(WIN32 OR 1)
-
- if(BUILD_SHARED_LIBS)
- install( TARGETS ftdi
-+ EXPORT ftdi
- COMPONENT sharedlibs
- )
-
-+ target_link_libraries(ftdi PUBLIC $<INSTALL_INTERFACE:include>)
- else()
- install( TARGETS ftdi-static
-+ EXPORT ftdi
- COMPONENT staticlibs
- )
-+ target_link_libraries(ftdi-static PUBLIC $<INSTALL_INTERFACE:include>)
- endif()
-+ install(EXPORT ftdi FILE libftdi-config.cmake NAMESPACE libftdi:: DESTINATION share/libftdi)
-
- install( FILES ${c_headers}
- DESTINATION include
diff --git a/ports/libftdi/portfile.cmake b/ports/libftdi/portfile.cmake
index 29e5bc42d..318e21a9e 100644
--- a/ports/libftdi/portfile.cmake
+++ b/ports/libftdi/portfile.cmake
@@ -13,7 +13,6 @@ vcpkg_extract_source_archive_ex(
PATCHES
libusb-win32.patch
shared-static.patch
- export-cmake.patch
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/exports.def DESTINATION ${SOURCE_PATH}/src)
diff --git a/ports/libftdi/shared-static.patch b/ports/libftdi/shared-static.patch
index dad7aa0c5..3197fb823 100644
--- a/ports/libftdi/shared-static.patch
+++ b/ports/libftdi/shared-static.patch
@@ -1,5 +1,5 @@
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 071ae90..b42bbcd 100644
+index 071ae90..f91f6f7 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -4,7 +4,7 @@ include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}
@@ -11,6 +11,15 @@ index 071ae90..b42bbcd 100644
set(c_headers ftdi.h)
add_library(ftdi SHARED ${c_sources})
+@@ -14,7 +14,7 @@ set_target_properties(ftdi PROPERTIES VERSION ${VERSION_FIXUP}.${MINOR_VERSION}.
+
+ # Static library
+ add_library(ftdi-static STATIC ${c_sources})
+-set_target_properties(ftdi-static PROPERTIES OUTPUT_NAME "ftdi")
++set_target_properties(ftdi-static PROPERTIES OUTPUT_NAME "ftdi-static")
+
+ # Prevent clobbering each other during the build
+ set_target_properties(ftdi PROPERTIES CLEAN_DIRECT_OUTPUT 1)
@@ -24,7 +24,7 @@ set_target_properties(ftdi-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
target_link_libraries(ftdi ${LIBUSB_LIBRARIES})
@@ -20,7 +29,7 @@ index 071ae90..b42bbcd 100644
install( TARGETS ftdi
LIBRARY DESTINATION lib${LIB_SUFFIX}
-@@ -41,23 +41,24 @@ if(${UNIX})
+@@ -41,23 +41,29 @@ if(${UNIX})
COMPONENT headers
)
@@ -33,15 +42,20 @@ index 071ae90..b42bbcd 100644
+ if(BUILD_SHARED_LIBS)
install( TARGETS ftdi
- DESTINATION bin
++ EXPORT ftdi
COMPONENT sharedlibs
)
++ target_include_directories(ftdi PUBLIC $<INSTALL_INTERFACE:include>)
+ else()
install( TARGETS ftdi-static
- DESTINATION bin
++ EXPORT ftdi
COMPONENT staticlibs
)
++ target_include_directories(ftdi-static PUBLIC $<INSTALL_INTERFACE:include>)
+ endif()
++ install(EXPORT ftdi FILE libftdi-config.cmake NAMESPACE libftdi:: DESTINATION share/libftdi)
install( FILES ${c_headers}
DESTINATION include
diff --git a/ports/libideviceactivation/CONTROL b/ports/libideviceactivation/CONTROL
index cbc1aef46..8ff0a857e 100644
--- a/ports/libideviceactivation/CONTROL
+++ b/ports/libideviceactivation/CONTROL
@@ -1,4 +1,4 @@
Source: libideviceactivation
-Version: 1.2.68
+Version: 1.2.68-1
Description: A library to handle the activation process of iOS devices
Build-Depends: libimobiledevice, libxml2, curl \ No newline at end of file
diff --git a/ports/libideviceactivation/libcurl_imp.patch b/ports/libideviceactivation/libcurl_imp.patch
deleted file mode 100644
index bf1bfefac..000000000
--- a/ports/libideviceactivation/libcurl_imp.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff --git a/libideviceactivation.vcxproj b/libideviceactivation.vcxproj
-index ba473f7a..47a20d15 100644
---- a/libideviceactivation.vcxproj
-+++ b/libideviceactivation.vcxproj
-@@ -76,7 +76,7 @@
- <ProgramDataBaseFileName>$(OutDir)$(ProjectName).pdb</ProgramDataBaseFileName>
- </ClCompile>
- <Link>
-- <AdditionalDependencies>libcurl.lib;libxml2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+ <AdditionalDependencies>libcurl-d_imp.lib;libxml2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-@@ -89,7 +89,7 @@
- <ProgramDataBaseFileName>$(OutDir)$(ProjectName).pdb</ProgramDataBaseFileName>
- </ClCompile>
- <Link>
-- <AdditionalDependencies>libcurl.lib;libxml2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+ <AdditionalDependencies>libcurl-d_imp.lib;libxml2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-@@ -106,7 +106,7 @@
- <Link>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
-- <AdditionalDependencies>libcurl.lib;libxml2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+ <AdditionalDependencies>libcurl_imp.lib;libxml2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-@@ -123,7 +123,7 @@
- <Link>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
-- <AdditionalDependencies>libcurl.lib;libxml2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+ <AdditionalDependencies>libcurl_imp.lib;libxml2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
diff --git a/ports/libideviceactivation/portfile.cmake b/ports/libideviceactivation/portfile.cmake
index a904b52ef..7e4776c69 100644
--- a/ports/libideviceactivation/portfile.cmake
+++ b/ports/libideviceactivation/portfile.cmake
@@ -5,23 +5,12 @@ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY ONLY_DYNAMIC_CRT)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO libimobiledevice-win32/libideviceactivation
- REF v1.2.68
+ REF v1.2.68
SHA512 c2742bba2d90c21e853255c9ef1b9a63560c3e65541a0a3daaace9b0c48d236b7947008dbcd6e42622251015b686758ebc6b564e379d831cb4f52af812430140
HEAD_REF msvc-master
+ PATCHES libcurl_d.patch
)
-if(${VCPKG_LIBRARY_LINKAGE} MATCHES dynamic)
- vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- libcurl_imp.patch)
-else()
- vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- libcurl_d.patch)
-endif()
-
vcpkg_install_msbuild(
SOURCE_PATH ${SOURCE_PATH}
PROJECT_SUBPATH libideviceactivation.sln
diff --git a/ports/libmikmod/CONTROL b/ports/libmikmod/CONTROL
index 6a02a4ae4..bc289f59c 100644
--- a/ports/libmikmod/CONTROL
+++ b/ports/libmikmod/CONTROL
@@ -1,5 +1,5 @@
Source: libmikmod
-Version: 3.3.11.1-3
+Version: 3.3.11.1-4
Homepage: https://sourceforge.net/projects/mikmod/
Description: Mikmod is a module player and library supporting many formats, including mod, s3m, it, and xm.
Build-Depends: openal-soft
diff --git a/ports/libmikmod/cmake_policy.patch b/ports/libmikmod/cmake_policy.patch
deleted file mode 100644
index 17d48278a..000000000
--- a/ports/libmikmod/cmake_policy.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b4d31d3..67951e6 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -23,6 +23,8 @@
- #
- # (This copyright notice applies only to this file)
-
-+cmake_policy(SET CMP0003 NEW)
-+
- PROJECT(libmikmod C)
- CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
- LIST(APPEND CMAKE_MODULE_PATH "${libmikmod_SOURCE_DIR}/cmake")
diff --git a/ports/libmikmod/name_conflict.patch b/ports/libmikmod/name_conflict.patch
new file mode 100644
index 000000000..be0ba1d28
--- /dev/null
+++ b/ports/libmikmod/name_conflict.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 53a174e..5983882 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -404,7 +404,7 @@ IF (ENABLE_STATIC)
+
+ SET_TARGET_PROPERTIES(
+ mikmod-static
+- PROPERTIES OUTPUT_NAME "mikmod"
++ PROPERTIES OUTPUT_NAME "mikmod-static"
+ )
+ SET_TARGET_PROPERTIES(
+ ${LIBMIKMOD_LIBS}
diff --git a/ports/libmikmod/portfile.cmake b/ports/libmikmod/portfile.cmake
index 1ec5d6773..ef0b6d5e0 100644
--- a/ports/libmikmod/portfile.cmake
+++ b/ports/libmikmod/portfile.cmake
@@ -23,9 +23,15 @@ vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
PATCHES
fix-missing-dll.patch
- cmake_policy.patch
+ name_conflict.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 # Disable this option if project cannot be built with Ninja
@@ -42,6 +48,7 @@ vcpkg_configure_cmake(
-DENABLE_STDOUT=ON
-DENABLE_WAV=ON
-DOPENAL_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include
+ -DENABLE_STATIC=${ENABLE_STATIC}
OPTIONS_RELEASE -DENABLE_SIMD=ON
OPTIONS_DEBUG -DENABLE_SIMD=OFF
)
diff --git a/ports/libmupdf/CMakeLists.txt b/ports/libmupdf/CMakeLists.txt
index 6018c50aa..daafef74c 100644
--- a/ports/libmupdf/CMakeLists.txt
+++ b/ports/libmupdf/CMakeLists.txt
@@ -22,7 +22,7 @@ file(GLOB_RECURSE SOURCES "source/*.c" "generated/*.c")
list(FILTER SOURCES EXCLUDE REGEX "source/tools/[a-z]*\\.c$")
add_library(libmupdf ${SOURCES})
-target_compile_definitions(libmupdf PRIVATE -DSHARE_JPEG -DFZ_ENABLE_JS=0 -DNO_ICC)
+target_compile_definitions(libmupdf PRIVATE -DSHARE_JPEG -DFZ_ENABLE_JS=0 -DFZ_ENABLE_ICC=0)
target_include_directories(libmupdf
PUBLIC
include
diff --git a/ports/libmupdf/CONTROL b/ports/libmupdf/CONTROL
index 4de343cb3..1285b8c85 100644
--- a/ports/libmupdf/CONTROL
+++ b/ports/libmupdf/CONTROL
@@ -1,5 +1,5 @@
Source: libmupdf
-Version: 1.12.0-2
+Version: 1.15.0
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 0569b5505..937daa4c4 100644
--- a/ports/libmupdf/portfile.cmake
+++ b/ports/libmupdf/portfile.cmake
@@ -5,8 +5,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO ArtifexSoftware/mupdf
- REF 1.12.0
- SHA512 893a1958e34355acf73624e9c47f4a97adf13d5fe33604ac384df9ac22a56ef7c18e02143eaffc3c2a08f460e4c71fee00c094b6d6696f8446977bb18f65e3da
+ REF 1.15.0
+ SHA512 9f47a79a2040ff3da885f54d143a7c44712f8a08650fca1d2be21199a7103364a35e28a1832708c2b7752b11c95bf0755ae6c922afc35ee8ae639da7a6ac03b0
HEAD_REF master
PATCHES
Fix-error-C2169.patch
diff --git a/ports/libpmemobj-cpp/CONTROL b/ports/libpmemobj-cpp/CONTROL
index ebc46931b..ec1eb3628 100644
--- a/ports/libpmemobj-cpp/CONTROL
+++ b/ports/libpmemobj-cpp/CONTROL
@@ -1,4 +1,4 @@
Source: libpmemobj-cpp
-Version: 1.6
+Version: 1.6-1
#Build-Depends: pmdk
Description: C++ bindings for libpmemobj (https://github.com/pmem/pmdk). \ No newline at end of file
diff --git a/ports/libpmemobj-cpp/portfile.cmake b/ports/libpmemobj-cpp/portfile.cmake
index 563dd67d7..457711404 100644
--- a/ports/libpmemobj-cpp/portfile.cmake
+++ b/ports/libpmemobj-cpp/portfile.cmake
@@ -15,6 +15,7 @@ set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH}")
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
+ DISABLE_PARALLEL_CONFIGURE
OPTIONS
-DBUILD_TESTS=OFF
-DBUILD_EXAMPLES=OFF
diff --git a/ports/libu2f-server/CMakeLists.txt b/ports/libu2f-server/CMakeLists.txt
new file mode 100644
index 000000000..5e1f50e52
--- /dev/null
+++ b/ports/libu2f-server/CMakeLists.txt
@@ -0,0 +1,30 @@
+cmake_minimum_required(VERSION 3.5)
+
+project(libu2f-server C)
+
+file(GLOB_RECURSE LIBU2F_SERVER_HEADERS u2f-server/*.h)
+file(GLOB_RECURSE LIBU2F_SERVER_SOURCE u2f-server/*.c)
+
+add_library(libu2f-server ${LIBU2F_SERVER_SOURCE})
+
+target_include_directories(libu2f-server PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<INSTALL_INTERFACE:include>)
+target_compile_definitions(libu2f-server PRIVATE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE)
+
+find_package(json-c CONFIG REQUIRED)
+find_package(OpenSSL REQUIRED)
+target_link_libraries(libu2f-server PRIVATE OpenSSL::SSL OpenSSL::Crypto json-c::json-c)
+
+install(TARGETS libu2f-server
+ EXPORT libu2f-serverConfig
+ RUNTIME DESTINATION "bin"
+ ARCHIVE DESTINATION "lib"
+ LIBRARY DESTINATION "lib"
+)
+
+INSTALL(FILES ${LIBU2F_SERVER_HEADERS} DESTINATION "include/libu2f-server")
+
+install(EXPORT libu2f-serverConfig
+ FILE libu2f-serverConfig.cmake
+ NAMESPACE libu2f-server::
+ DESTINATION "share/libu2f-server"
+) \ No newline at end of file
diff --git a/ports/libu2f-server/CONTROL b/ports/libu2f-server/CONTROL
new file mode 100644
index 000000000..26803fbb7
--- /dev/null
+++ b/ports/libu2f-server/CONTROL
@@ -0,0 +1,4 @@
+Source: libu2f-server
+Version: 1.1.0
+Build-Depends: openssl, json-c
+Description: Yubico Universal 2nd Factor (U2F) Server C Library
diff --git a/ports/libu2f-server/portfile.cmake b/ports/libu2f-server/portfile.cmake
new file mode 100644
index 000000000..86e5d9bbe
--- /dev/null
+++ b/ports/libu2f-server/portfile.cmake
@@ -0,0 +1,31 @@
+include(vcpkg_common_functions)
+
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Yubico/libu2f-server
+ REF libu2f-server-1.1.0
+ SHA512 085f8e7d74c1efb347747b8930386f18ba870f668f82e9bd479c9f8431585c5dc7f95b2f6b82bdd3a6de0c06f8cb2fbf51c363ced54255a936ab96536158ee59
+ HEAD_REF master
+ PATCHES
+ windows.patch
+ strndup-fix.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/u2f-server-version.h DESTINATION ${SOURCE_PATH}/u2f-server)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ )
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+vcpkg_copy_pdbs()
+
+# Handle copyright
+configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
diff --git a/ports/libu2f-server/strndup-fix.patch b/ports/libu2f-server/strndup-fix.patch
new file mode 100644
index 000000000..f5b7ffd8a
--- /dev/null
+++ b/ports/libu2f-server/strndup-fix.patch
@@ -0,0 +1,31 @@
+diff --git a/u2f-server/core.c b/u2f-server/core.c
+index 294c94b..746932b 100644
+--- a/u2f-server/core.c
++++ b/u2f-server/core.c
+@@ -211,7 +211,7 @@ u2fs_rc u2fs_set_keyHandle(u2fs_ctx_t * ctx, const char *keyHandle)
+ ctx->keyHandle = NULL;
+ }
+
+- ctx->keyHandle = strndup(keyHandle, strlen(keyHandle));
++ ctx->keyHandle = strdup(keyHandle);
+
+ if (ctx->keyHandle == NULL)
+ return U2FS_MEMORY_ERROR;
+@@ -726,7 +726,7 @@ static u2fs_rc decode_clientData(const char *clientData, char **output)
+ fprintf(stderr, "clientData: %s\n", data);
+ }
+
+- *output = strndup(data, strlen(data));
++ *output = strdup(data);
+
+ free(data);
+ data = NULL;
+@@ -870,7 +870,7 @@ u2fs_rc u2fs_registration_verify(u2fs_ctx_t * ctx, const char *response,
+ goto failure;
+
+ u2fs_EC_KEY_t *key_ptr;
+- (*output)->keyHandle = strndup(buf, strlen(buf));
++ (*output)->keyHandle = strdup(buf);
+
+ rc = decode_user_key(user_public_key, &key_ptr);
+ if (rc != U2FS_OK)
diff --git a/ports/libu2f-server/u2f-server-version.h b/ports/libu2f-server/u2f-server-version.h
new file mode 100644
index 000000000..b38ccac81
--- /dev/null
+++ b/ports/libu2f-server/u2f-server-version.h
@@ -0,0 +1,94 @@
+/*
+* Copyright (c) 2014 Yubico AB
+* All rights reserved.
+*
+* 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.
+*
+* 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 THE COPYRIGHT
+* OWNER OR CONTRIBUTORS 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.
+*/
+
+#ifndef U2F_SERVER_VERSION_H
+#define U2F_SERVER_VERSION_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * U2FS_VERSION_STRING
+ *
+ * Pre-processor symbol with a string that describe the header file
+ * version number. Used together with u2fs_check_version() to verify
+ * header file and run-time library consistency.
+ */
+#define U2FS_VERSION_STRING "1.1.0"
+
+/**
+ * U2FS_VERSION_NUMBER
+ *
+ * Pre-processor symbol with a hexadecimal value describing the header
+ * file version number. For example, when the header version is 1.2.3
+ * this symbol will have the value 0x01020300. The last two digits
+ * are only used between public releases, and will otherwise be 00.
+ */
+#define U2FS_VERSION_NUMBER 0x01010000
+
+/**
+ * U2FS_VERSION_MAJOR
+ *
+ * Pre-processor symbol with a decimal value that describe the major
+ * level of the header file version number. For example, when the
+ * header version is 1.2.3 this symbol will be 1.
+ */
+#define U2FS_VERSION_MAJOR 1
+
+/**
+ * U2FS_VERSION_MINOR
+ *
+ * Pre-processor symbol with a decimal value that describe the minor
+ * level of the header file version number. For example, when the
+ * header version is 1.2.3 this symbol will be 2.
+ */
+#define U2FS_VERSION_MINOR 1
+
+/**
+ * U2FS_VERSION_PATCH
+ *
+ * Pre-processor symbol with a decimal value that describe the patch
+ * level of the header file version number. For example, when the
+ * header version is 1.2.3 this symbol will be 3.
+ */
+#define U2FS_VERSION_PATCH 0
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/ports/libu2f-server/windows.patch b/ports/libu2f-server/windows.patch
new file mode 100644
index 000000000..2cc68ec9b
--- /dev/null
+++ b/ports/libu2f-server/windows.patch
@@ -0,0 +1,41 @@
+diff --git a/u2f-server/cdecode.c b/u2f-server/cdecode.c
+index 6fff114..dc05ca5 100644
+--- a/u2f-server/cdecode.c
++++ b/u2f-server/cdecode.c
+@@ -5,7 +5,7 @@ This is part of the libb64 project, and has been placed in the public domain.
+ For details, see http://sourceforge.net/projects/libb64
+ */
+
+-#include <b64/cdecode.h>
++#include "b64/cdecode.h"
+
+ int base64_decode_value(char value_in)
+ {
+diff --git a/u2f-server/cencode.c b/u2f-server/cencode.c
+index eebb24a..f3b7fa4 100644
+--- a/u2f-server/cencode.c
++++ b/u2f-server/cencode.c
+@@ -5,7 +5,7 @@ This is part of the libb64 project, and has been placed in the public domain.
+ For details, see http://sourceforge.net/projects/libb64
+ */
+
+-#include <b64/cencode.h>
++#include "b64/cencode.h"
+
+ const int CHARS_PER_LINE = 72;
+
+diff --git a/u2f-server/core.c b/u2f-server/core.c
+index da440ec..294c94b 100644
+--- a/u2f-server/core.c
++++ b/u2f-server/core.c
+@@ -30,8 +30,7 @@
+ #include "internal.h"
+
+ #include <string.h>
+-#include <unistd.h>
+-#include <json.h>
++#include <json-c/json.h>
+ #include "crypto.h"
+ #include "b64/cencode.h"
+ #include "b64/cdecode.h"
+ \ No newline at end of file
diff --git a/ports/libxslt/CONTROL b/ports/libxslt/CONTROL
index 965079523..e1de01067 100644
--- a/ports/libxslt/CONTROL
+++ b/ports/libxslt/CONTROL
@@ -1,5 +1,5 @@
Source: libxslt
-Version: 1.1.29
+Version: 1.1.33
Homepage: http://xmlsoft.org/XSLT/
Description: Libxslt is a XSLT library implemented in C for XSLT 1.0 and most of EXSLT
Build-Depends: libxml2
diff --git a/ports/libxslt/portfile.cmake b/ports/libxslt/portfile.cmake
index 2343ba99f..a688c374b 100644
--- a/ports/libxslt/portfile.cmake
+++ b/ports/libxslt/portfile.cmake
@@ -7,21 +7,19 @@
#
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libxslt-1.1.29)
-vcpkg_download_distfile(ARCHIVE
- URLS "ftp://xmlsoft.org/libxslt/libxslt-1.1.29.tar.gz"
- FILENAME "libxslt-1.1.29.tar.gz"
- SHA512 a1ce555a74a9dabe65e8f64bb66e27e77760fd76940d88f2d59f58dd63ca73c8ae59f3fcbd8e76c8f92ff992fb0c09328528c20ea38ccac83e63252106bf5f31
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO GNOME/libxslt
+ REF v1.1.33
+ SHA512 2c20b2af3c19952b25b10dca0d95fe227602f7f815db352b04dd061c52c458d745f92c597ce08ac9207ba0fbe0169ea2fb78263d8590743717553f84463fe1d9
+ HEAD_REF master
+ PATCHES
+ 0001-Fix-makefile.patch
)
-vcpkg_extract_source_archive(${ARCHIVE})
find_program(NMAKE nmake)
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}/
- PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-makefile.patch
-)
-
set(SCRIPTS_DIR ${SOURCE_PATH}/win32)
set(CONFIGURE_COMMAND_TEMPLATE cscript configure.js
@@ -170,7 +168,7 @@ else()
endif()
# Handle copyright
-file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libxslt)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/libxslt/COPYING ${CURRENT_PACKAGES_DIR}/share/libxslt/copyright)
+file(COPY ${SOURCE_PATH}/Copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/libxslt)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libxslt/Copyright ${CURRENT_PACKAGES_DIR}/share/libxslt/copyright)
vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/magnum/CONTROL b/ports/magnum/CONTROL
index 89bcff28e..44acd700e 100644
--- a/ports/magnum/CONTROL
+++ b/ports/magnum/CONTROL
@@ -117,6 +117,18 @@ Feature: windowlesswglapplication
Description: WindowlessWglApplication library
Build-Depends: magnum[gl]
+Feature: eglcontext
+Description: EglContext library
+Build-Depends: magnum[gl]
+
+Feature: cglcontext
+Description: CglContext library
+Build-Depends: magnum[gl]
+
+Feature: glxcontext
+Description: GlxContext library
+Build-Depends: magnum[gl]
+
Feature: wglcontext
Description: WglContext library
Build-Depends: magnum[gl]
diff --git a/ports/msix/CONTROL b/ports/msix/CONTROL
index ae41a6ba1..848e95be3 100644
--- a/ports/msix/CONTROL
+++ b/ports/msix/CONTROL
@@ -1,5 +1,5 @@
Source: msix
-Version: MsixCoreInstaller-preview
+Version: MsixCoreInstaller-preview-1
Build-Depends: xerces-c, zlib, openssl (!uwp&!windows)
Description: The MSIX Packaging SDK project is an effort to enable developers on a variety of platforms to pack and unpack packages for the purposes of distribution from either the Microsoft Store, or their own content distribution networks.
The MSIX Packaging APIs that a client app would use to interact with .msix/.appx packages are a subset of those documented here. See sample/ExtractContentsSample/ExtractContentsSample.cpp for additional details.
diff --git a/ports/msix/portfile.cmake b/ports/msix/portfile.cmake
index 1445e5845..7d8924ee6 100644
--- a/ports/msix/portfile.cmake
+++ b/ports/msix/portfile.cmake
@@ -31,6 +31,7 @@ endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
+ NO_CHARSET_FLAG
OPTIONS
-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
-DINSTALL_LIBMSIX=ON
diff --git a/ports/oniguruma/CONTROL b/ports/oniguruma/CONTROL
index 1780b4505..768083b4e 100644
--- a/ports/oniguruma/CONTROL
+++ b/ports/oniguruma/CONTROL
@@ -1,6 +1,7 @@
Source: oniguruma
-Version: 6.9.2
+Version: 6.9.2-2
Description: Modern and flexible regular expressions library
+Homepage: https://github.com/kkos/oniguruma
Feature: non-posix
Description: Disable POSIX API
diff --git a/ports/openssl-unix/CONTROL b/ports/openssl-unix/CONTROL
index 59f686133..4b6ec7405 100644
--- a/ports/openssl-unix/CONTROL
+++ b/ports/openssl-unix/CONTROL
@@ -1,3 +1,3 @@
Source: openssl-unix
-Version: 1.0.2q
+Version: 1.0.2s
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-unix/portfile.cmake b/ports/openssl-unix/portfile.cmake
index 03e358b4b..a5915f1b9 100644
--- a/ports/openssl-unix/portfile.cmake
+++ b/ports/openssl-unix/portfile.cmake
@@ -10,14 +10,15 @@ if(EXISTS "${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h")
return()
endif()
-set(OPENSSL_VERSION 1.0.2q)
vcpkg_find_acquire_program(PERL)
+set(OPENSSL_VERSION 1.0.2s)
+
vcpkg_download_distfile(OPENSSL_SOURCE_ARCHIVE
URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.0.2/openssl-${OPENSSL_VERSION}.tar.gz"
FILENAME "openssl-${OPENSSL_VERSION}.tar.gz"
- SHA512 403e6cad42db3ba860c3fa4fa81c1b7b02f0b873259e5c19a7fc8e42de0854602555f1b1ca74f4e3a7737a4cbd3aac063061e628ec86534586500819fae7fec0
+ SHA512 9f745452c4f777df694158e95003cde78a2cf8199bc481a563ec36644664c3c1415a774779b9791dd18f2aeb57fa1721cb52b3db12d025955e970071d5b66d2a
)
vcpkg_extract_source_archive_ex(
diff --git a/ports/openssl-windows/CONTROL b/ports/openssl-windows/CONTROL
index bdbf764ab..33c30e638 100644
--- a/ports/openssl-windows/CONTROL
+++ b/ports/openssl-windows/CONTROL
@@ -1,3 +1,3 @@
Source: openssl-windows
-Version: 1.0.2q-2
+Version: 1.0.2s-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-windows/portfile.cmake b/ports/openssl-windows/portfile.cmake
index 856e0979e..3506be9ab 100644
--- a/ports/openssl-windows/portfile.cmake
+++ b/ports/openssl-windows/portfile.cmake
@@ -10,17 +10,17 @@ if(EXISTS "${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h")
return()
endif()
-set(OPENSSL_VERSION 1.0.2q)
-
vcpkg_find_acquire_program(PERL)
+set(OPENSSL_VERSION 1.0.2s)
+
get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH}")
vcpkg_download_distfile(ARCHIVE
URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.0.2/openssl-${OPENSSL_VERSION}.tar.gz"
FILENAME "openssl-${OPENSSL_VERSION}.tar.gz"
- SHA512 403e6cad42db3ba860c3fa4fa81c1b7b02f0b873259e5c19a7fc8e42de0854602555f1b1ca74f4e3a7737a4cbd3aac063061e628ec86534586500819fae7fec0
+ SHA512 9f745452c4f777df694158e95003cde78a2cf8199bc481a563ec36644664c3c1415a774779b9791dd18f2aeb57fa1721cb52b3db12d025955e970071d5b66d2a
)
vcpkg_extract_source_archive_ex(
diff --git a/ports/openvdb/0001-fix-cmake-modules.patch b/ports/openvdb/0001-fix-cmake-modules.patch
deleted file mode 100644
index 03cc2461e..000000000
--- a/ports/openvdb/0001-fix-cmake-modules.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-diff --git a/cmake/FindBlosc.cmake b/cmake/FindBlosc.cmake
-index 2d9d9d3..e9b4abc 100644
---- a/cmake/FindBlosc.cmake
-+++ b/cmake/FindBlosc.cmake
-@@ -37,11 +37,7 @@
-
- FIND_PACKAGE ( PackageHandleStandardArgs )
-
--FIND_PATH( BLOSC_LOCATION include/blosc.h
-- "$ENV{BLOSC_ROOT}"
-- NO_DEFAULT_PATH
-- NO_SYSTEM_ENVIRONMENT_PATH
-- )
-+FIND_PATH( BLOSC_LOCATION include/blosc.h)
-
- FIND_PACKAGE_HANDLE_STANDARD_ARGS ( Blosc
- REQUIRED_VARS BLOSC_LOCATION
-@@ -53,7 +49,7 @@ IF ( BLOSC_FOUND )
- CACHE STRING "Blosc library directories")
-
- SET ( _blosc_library_name "blosc" )
--
-+
- # Static library setup
- IF (Blosc_USE_STATIC_LIBS)
- SET(CMAKE_FIND_LIBRARY_SUFFIXES_BACKUP ${CMAKE_FIND_LIBRARY_SUFFIXES})
-@@ -69,7 +65,7 @@ IF ( BLOSC_FOUND )
- NO_DEFAULT_PATH
- NO_SYSTEM_ENVIRONMENT_PATH
- )
--
-+
- # Static library tear down
- IF (Blosc_USE_STATIC_LIBS)
- SET( CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_BACKUP} )
-diff --git a/cmake/FindGLEW.cmake b/cmake/FindGLEW.cmake
-index 0b72457..75951a6 100644
---- a/cmake/FindGLEW.cmake
-+++ b/cmake/FindGLEW.cmake
-@@ -39,11 +39,7 @@
-
- FIND_PACKAGE ( PackageHandleStandardArgs )
-
--FIND_PATH( GLEW_LOCATION include/GL/glew.h
-- "$ENV{GLEW_ROOT}"
-- NO_DEFAULT_PATH
-- NO_SYSTEM_ENVIRONMENT_PATH
-- )
-+FIND_PATH( GLEW_LOCATION include/GL/glew.h)
-
- FIND_PACKAGE_HANDLE_STANDARD_ARGS ( GLEW
- REQUIRED_VARS GLEW_LOCATION
-diff --git a/cmake/FindGLFW3.cmake b/cmake/FindGLFW3.cmake
-index cea0b86..07ea09e 100644
---- a/cmake/FindGLFW3.cmake
-+++ b/cmake/FindGLFW3.cmake
-@@ -39,11 +39,7 @@
-
- FIND_PACKAGE ( PackageHandleStandardArgs )
-
--FIND_PATH( GLFW3_LOCATION include/GLFW/glfw3.h
-- "$ENV{GLFW3_ROOT}"
-- NO_DEFAULT_PATH
-- NO_SYSTEM_ENVIRONMENT_PATH
--)
-+FIND_PATH( GLFW3_LOCATION include/GLFW/glfw3.h)
-
- FIND_PACKAGE_HANDLE_STANDARD_ARGS ( GLFW3
- REQUIRED_VARS GLFW3_LOCATION
-@@ -59,7 +59,7 @@ IF (GLFW3_FOUND)
- NO_CMAKE_SYSTEM_PATH
- )
- ELSE (GLFW3_USE_STATIC_LIBS)
-- FIND_LIBRARY ( GLFW3_glfw_LIBRARY glfw
-+ FIND_LIBRARY ( GLFW3_glfw_LIBRARY glfw3dll
- PATHS ${GLFW3_LOCATION}/lib
- PATH_SUFFIXES ${GLFW3_PATH_SUFFIXES}
- NO_DEFAULT_PATH
-diff --git a/cmake/FindILMBase.cmake b/cmake/FindILMBase.cmake
-index 664affd..5197110 100644
---- a/cmake/FindILMBase.cmake
-+++ b/cmake/FindILMBase.cmake
-@@ -43,11 +43,7 @@
-
- FIND_PACKAGE ( PackageHandleStandardArgs )
-
--FIND_PATH ( ILMBASE_LOCATION include/OpenEXR/IlmBaseConfig.h
-- "$ENV{ILMBASE_ROOT}"
-- NO_DEFAULT_PATH
-- NO_SYSTEM_ENVIRONMENT_PATH
-- )
-+FIND_PATH ( ILMBASE_LOCATION include/OpenEXR/IlmBaseConfig.h)
-
- FIND_PACKAGE_HANDLE_STANDARD_ARGS ( ILMBase
- REQUIRED_VARS ILMBASE_LOCATION
-@@ -70,11 +66,13 @@ IF ( ILMBASE_FOUND )
- SET ( IEXMATH_LIBRARY_NAME IexMath-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
- SET ( ILMTHREAD_LIBRARY_NAME IlmThread-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
- SET ( IMATH_LIBRARY_NAME Imath-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
-+ SET ( HALF_LIBRARY_NAME Half-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
- ELSE ( ILMBASE_NAMESPACE_VERSIONING )
- SET ( IEX_LIBRARY_NAME Iex )
- SET ( IEXMATH_LIBRARY_NAME IexMath )
- SET ( ILMTHREAD_LIBRARY_NAME IlmThread )
- SET ( IMATH_LIBRARY_NAME Imath )
-+ SET ( HALF_LIBRARY_NAME Half )
- ENDIF ( ILMBASE_NAMESPACE_VERSIONING )
-
- SET ( ILMBASE_INCLUDE_DIRS
-@@ -84,7 +82,7 @@ IF ( ILMBASE_FOUND )
- SET ( ILMBASE_LIBRARYDIR ${ILMBASE_LOCATION}/lib
- CACHE STRING "ILMBase library directories")
- SET ( ILMBASE_FOUND TRUE )
--
-+
- SET ( ORIGINAL_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
- IF (Ilmbase_USE_STATIC_LIBS)
- IF (APPLE)
-@@ -129,14 +127,14 @@ IF ( ILMBASE_FOUND )
- ELSEIF (WIN32)
- # Link library
- SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
-- FIND_LIBRARY ( Ilmbase_HALF_LIBRARY Half PATHS ${ILMBASE_LIBRARYDIR} )
-+ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY ${HALF_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
- FIND_LIBRARY ( Ilmbase_IEX_LIBRARY ${IEX_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
- FIND_LIBRARY ( Ilmbase_IEXMATH_LIBRARY ${IEXMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
- FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY ${ILMTHREAD_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
- FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY ${IMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
- # Load library
- SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
-- FIND_LIBRARY ( Ilmbase_HALF_DLL Half PATHS ${ILMBASE_LOCATION}/bin
-+ FIND_LIBRARY ( Ilmbase_HALF_DLL ${HALF_LIBRARY_NAME} PATHS ${ILMBASE_LOCATION}/bin
- NO_DEFAULT_PATH
- NO_SYSTEM_ENVIRONMENT_PATH
- )
-@@ -157,7 +155,7 @@ IF ( ILMBASE_FOUND )
- NO_SYSTEM_ENVIRONMENT_PATH
- )
- ELSE (APPLE)
-- FIND_LIBRARY ( Ilmbase_HALF_LIBRARY Half PATHS ${ILMBASE_LIBRARYDIR}
-+ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY ${HALF_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
- NO_DEFAULT_PATH
- NO_SYSTEM_ENVIRONMENT_PATH
- )
-diff --git a/cmake/FindOpenEXR.cmake b/cmake/FindOpenEXR.cmake
-index 6d69c03..5ecf8fa 100644
---- a/cmake/FindOpenEXR.cmake
-+++ b/cmake/FindOpenEXR.cmake
-@@ -38,11 +38,7 @@
-
- FIND_PACKAGE ( PackageHandleStandardArgs )
-
--FIND_PATH ( OPENEXR_LOCATION include/OpenEXR/OpenEXRConfig.h
-- ENV OPENEXR_ROOT
-- NO_DEFAULT_PATH
-- NO_SYSTEM_ENVIRONMENT_PATH
-- )
-+FIND_PATH ( OPENEXR_LOCATION include/OpenEXR/OpenEXRConfig.h)
-
- FIND_PACKAGE_HANDLE_STANDARD_ARGS ( OpenEXR
- REQUIRED_VARS OPENEXR_LOCATION
-@@ -59,7 +55,7 @@ IF ( OPENEXR_FOUND )
- FILE ( STRINGS "${OPENEXR_LOCATION}/include/OpenEXR/OpenEXRConfig.h" _openexr_version_minor_string REGEX "#define OPENEXR_VERSION_MINOR ")
- STRING ( REGEX REPLACE "#define OPENEXR_VERSION_MINOR" "" _openexr_version_minor_unstrip "${_openexr_version_minor_string}")
- STRING ( STRIP "${_openexr_version_minor_unstrip}" OPENEXR_VERSION_MINOR )
--
-+
- MESSAGE ( STATUS "Found OpenEXR v${OPENEXR_VERSION_MAJOR}.${OPENEXR_VERSION_MINOR} at ${OPENEXR_LOCATION}" )
-
- IF ( OPENEXR_NAMESPACE_VERSIONING )
-@@ -67,7 +63,7 @@ IF ( OPENEXR_FOUND )
- ELSE ( OPENEXR_NAMESPACE_VERSIONING )
- SET ( ILMIMF_LIBRARY_NAME IlmImf )
- ENDIF ( OPENEXR_NAMESPACE_VERSIONING )
--
-+
- SET ( OPENEXR_INCLUDE_DIRS
- ${OPENEXR_LOCATION}/include
- ${OPENEXR_LOCATION}/include/OpenEXR
-@@ -120,6 +116,5 @@ IF ( OPENEXR_FOUND )
- ENDIF ()
-
- # SET( Openexr_ILMIMF_LIBRARY ${OPENEXR_ILMIMF_LIBRARY_PATH} CACHE STRING "Openexr's IlmImf library")
--
--ENDIF ( OPENEXR_FOUND )
-
-+ENDIF ( OPENEXR_FOUND )
-diff --git a/cmake/FindTBB.cmake b/cmake/FindTBB.cmake
-index 8a56ec0..9f5a7b4 100644
---- a/cmake/FindTBB.cmake
-+++ b/cmake/FindTBB.cmake
-@@ -42,14 +42,7 @@ FIND_PACKAGE ( PackageHandleStandardArgs )
-
- # SET ( TBB_FOUND FALSE )
-
--FIND_PATH( TBB_LOCATION include/tbb/tbb.h
-- "$ENV{TBB_ROOT}"
-- NO_DEFAULT_PATH
-- NO_CMAKE_ENVIRONMENT_PATH
-- NO_CMAKE_PATH
-- NO_SYSTEM_ENVIRONMENT_PATH
-- NO_CMAKE_SYSTEM_PATH
-- )
-+FIND_PATH( TBB_LOCATION include/tbb/tbb.h)
-
- FIND_PACKAGE_HANDLE_STANDARD_ARGS ( TBB
- REQUIRED_VARS TBB_LOCATION
diff --git a/ports/openvdb/0001-remove-pkgconfig.patch b/ports/openvdb/0001-remove-pkgconfig.patch
new file mode 100644
index 000000000..01803d531
--- /dev/null
+++ b/ports/openvdb/0001-remove-pkgconfig.patch
@@ -0,0 +1,129 @@
+diff --git a/cmake/FindBlosc.cmake b/cmake/FindBlosc.cmake
+index 03e361e..b44f46d 100644
+--- a/cmake/FindBlosc.cmake
++++ b/cmake/FindBlosc.cmake
+@@ -104,11 +104,6 @@ else()
+ endif()
+ endif()
+
+-# Additionally try and use pkconfig to find blosc
+-
+-find_package(PkgConfig)
+-pkg_check_modules(PC_Blosc QUIET blosc)
+-
+ # ------------------------------------------------------------------------
+ # Search for blosc include DIR
+ # ------------------------------------------------------------------------
+diff --git a/cmake/FindCppUnit.cmake b/cmake/FindCppUnit.cmake
+index fb8a28b..fea685e 100644
+--- a/cmake/FindCppUnit.cmake
++++ b/cmake/FindCppUnit.cmake
+@@ -106,11 +106,6 @@ else()
+ endif()
+ endif()
+
+-# Additionally try and use pkconfig to find cppunit
+-
+-find_package(PkgConfig)
+-pkg_check_modules(PC_CppUnit QUIET cppunit)
+-
+ # ------------------------------------------------------------------------
+ # Search for CppUnit include DIR
+ # ------------------------------------------------------------------------
+diff --git a/cmake/FindIlmBase.cmake b/cmake/FindIlmBase.cmake
+index f0a0d7f..9f31355 100644
+--- a/cmake/FindIlmBase.cmake
++++ b/cmake/FindIlmBase.cmake
+@@ -152,11 +152,6 @@ else()
+ endif()
+ endif()
+
+-# Additionally try and use pkconfig to find IlmBase
+-
+-find_package(PkgConfig)
+-pkg_check_modules(PC_IlmBase QUIET IlmBase)
+-
+ # ------------------------------------------------------------------------
+ # Search for IlmBase include DIR
+ # ------------------------------------------------------------------------
+diff --git a/cmake/FindLog4cplus.cmake b/cmake/FindLog4cplus.cmake
+index 6890724..10dc931 100644
+--- a/cmake/FindLog4cplus.cmake
++++ b/cmake/FindLog4cplus.cmake
+@@ -106,11 +106,6 @@ else()
+ endif()
+ endif()
+
+-# Additionally try and use pkconfig to find log4cplus
+-
+-find_package(PkgConfig)
+-pkg_check_modules(PC_Log4cplus QUIET log4cplus)
+-
+ # ------------------------------------------------------------------------
+ # Search for Log4cplus include DIR
+ # ------------------------------------------------------------------------
+diff --git a/cmake/FindOpenEXR.cmake b/cmake/FindOpenEXR.cmake
+index 302c1df..3d00c3d 100644
+--- a/cmake/FindOpenEXR.cmake
++++ b/cmake/FindOpenEXR.cmake
+@@ -145,11 +145,6 @@ else()
+ endif()
+ endif()
+
+-# Additionally try and use pkconfig to find OpenEXR
+-
+-find_package(PkgConfig)
+-pkg_check_modules(PC_OpenEXR QUIET OpenEXR)
+-
+ # ------------------------------------------------------------------------
+ # Search for OpenEXR include DIR
+ # ------------------------------------------------------------------------
+diff --git a/cmake/FindOpenVDB.cmake b/cmake/FindOpenVDB.cmake
+index 783dfed..1fd43be 100644
+--- a/cmake/FindOpenVDB.cmake
++++ b/cmake/FindOpenVDB.cmake
+@@ -153,11 +153,6 @@ else()
+ endif()
+ endif()
+
+-# Additionally try and use pkconfig to find OpenVDB
+-
+-find_package(PkgConfig)
+-pkg_check_modules(PC_OpenVDB QUIET OpenVDB)
+-
+ # This CMake module supports being called from external packages AND from
+ # within the OpenVDB repository for building openvdb components with the
+ # core library build disabled. Determine where we are being called from:
+diff --git a/cmake/FindTBB.cmake b/cmake/FindTBB.cmake
+index 01696ce..8fe73e5 100644
+--- a/cmake/FindTBB.cmake
++++ b/cmake/FindTBB.cmake
+@@ -141,11 +141,6 @@ else()
+ endif()
+ endif()
+
+-# Additionally try and use pkconfig to find Tbb
+-
+-find_package(PkgConfig)
+-pkg_check_modules(PC_Tbb QUIET tbb)
+-
+ # ------------------------------------------------------------------------
+ # Search for tbb include DIR
+ # ------------------------------------------------------------------------
+diff --git a/cmake/OpenVDBGLFW3Setup.cmake b/cmake/OpenVDBGLFW3Setup.cmake
+index 3a29dc7..4dc6269 100644
+--- a/cmake/OpenVDBGLFW3Setup.cmake
++++ b/cmake/OpenVDBGLFW3Setup.cmake
+@@ -77,12 +77,6 @@ else()
+ endif()
+ endif()
+
+-# Additionally try and use pkconfig to find glfw, though we only use
+-# pkg-config to re-direct to the cmake. In other words, glfw's cmake is
+-# expected to be installed
+-find_package(PkgConfig)
+-pkg_check_modules(PC_glfw3 QUIET glfw3)
+-
+ if(PC_glfw3_FOUND)
+ foreach(DIR ${PC_glfw3_LIBRARY_DIRS})
+ list(APPEND _GLFW3_ROOT_SEARCH_DIR ${DIR})
diff --git a/ports/openvdb/0002-add-custom-options.patch b/ports/openvdb/0002-add-custom-options.patch
deleted file mode 100644
index 5e8d49091..000000000
--- a/ports/openvdb/0002-add-custom-options.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b35ec70..801e7df 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -38,6 +38,9 @@ if(CCACHE_FOUND)
- set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
- endif(CCACHE_FOUND)
-
-+OPTION ( OPENVDB_BUILD_TOOLS "Build OpenVDB utilities" OFF )
-+OPTION ( OPENVDB_STATIC "Build statically linked library" OFF )
-+OPTION ( OPENVDB_SHARED "Build dynamically linked library" ON )
- OPTION ( OPENVDB_BUILD_UNITTESTS "Build the OpenVDB unit tests" ON )
- OPTION ( OPENVDB_BUILD_DOCS "Build the OpenVDB documentation" OFF )
- OPTION ( OPENVDB_BUILD_PYTHON_MODULE "Build the pyopenvdb Python module" ON )
diff --git a/ports/openvdb/0002-fix-cmake-modules.patch b/ports/openvdb/0002-fix-cmake-modules.patch
new file mode 100644
index 000000000..7b36161c5
--- /dev/null
+++ b/ports/openvdb/0002-fix-cmake-modules.patch
@@ -0,0 +1,1125 @@
+diff --git a/cmake/FindBlosc.cmake b/cmake/FindBlosc.cmake
+index e8b57a2..61ba83b 100644
+--- a/cmake/FindBlosc.cmake
++++ b/cmake/FindBlosc.cmake
+@@ -1,4 +1,4 @@
+-# Copyright (c) 2012-2019 DreamWorks Animation LLC
++# Copyright (c) 2012-2016 DreamWorks Animation LLC
+ #
+ # All rights reserved. This software is distributed under the
+ # Mozilla Public License 2.0 ( http://www.mozilla.org/MPL/2.0/ )
+@@ -24,190 +24,51 @@
+ # IN NO EVENT SHALL THE COPYRIGHT HOLDERS' AND CONTRIBUTORS' AGGREGATE
+ # LIABILITY FOR ALL CLAIMS REGARDLESS OF THEIR BASIS EXCEED US$250.00.
+ #
+-#[=======================================================================[.rst:
+
+-FindBlosc
+----------
+-
+-Find Blosc include dirs and libraries
+-
+-Use this module by invoking find_package with the form::
+-
+- find_package(Blosc
+- [version] [EXACT] # Minimum or EXACT version e.g. 1.5.0
+- [REQUIRED] # Fail with error if Blosc is not found
+- )
+-
+-IMPORTED Targets
+-^^^^^^^^^^^^^^^^
+-
+-``Blosc::blosc``
+- This module defines IMPORTED target Blosc::Blosc, if Blosc has been found.
+-
+-Result Variables
+-^^^^^^^^^^^^^^^^
+-
+-This will define the following variables:
+-
+-``Blosc_FOUND``
+- True if the system has the Blosc library.
+-``Blosc_VERSION``
+- The version of the Blosc library which was found.
+-``Blosc_INCLUDE_DIRS``
+- Include directories needed to use Blosc.
+-``Blosc_LIBRARIES``
+- Libraries needed to link to Blosc.
+-``Blosc_LIBRARY_DIRS``
+- Blosc library directories.
+-
+-Cache Variables
+-^^^^^^^^^^^^^^^
+-
+-The following cache variables may also be set:
+-
+-``Blosc_INCLUDE_DIR``
+- The directory containing ``blosc.h``.
+-``Blosc_LIBRARY``
+- The path to the Blosc library.
+-
+-Hints
+-^^^^^
+-
+-Instead of explicitly setting the cache variables, the following variables
+-may be provided to tell this module where to look.
+-
+-``BLOSC_ROOT``
+- Preferred installation prefix.
+-``BLOSC_INCLUDEDIR``
+- Preferred include directory e.g. <prefix>/include
+-``BLOSC_LIBRARYDIR``
+- Preferred library directory e.g. <prefix>/lib
+-``SYSTEM_LIBRARY_PATHS``
+- Paths appended to all include and lib searches.
+-
+-#]=======================================================================]
+-
+-mark_as_advanced(
+- Blosc_INCLUDE_DIR
+- Blosc_LIBRARY
+-)
+-
+-# Append BLOSC_ROOT or $ENV{BLOSC_ROOT} if set (prioritize the direct cmake var)
+-set(_BLOSC_ROOT_SEARCH_DIR "")
+-
+-if(BLOSC_ROOT)
+- list(APPEND _BLOSC_ROOT_SEARCH_DIR ${BLOSC_ROOT})
+-else()
+- set(_ENV_BLOSC_ROOT $ENV{BLOSC_ROOT})
+- if(_ENV_BLOSC_ROOT)
+- list(APPEND _BLOSC_ROOT_SEARCH_DIR ${_ENV_BLOSC_ROOT})
+- endif()
+-endif()
+-
+-# ------------------------------------------------------------------------
+-# Search for blosc include DIR
+-# ------------------------------------------------------------------------
+-
+-set(_BLOSC_INCLUDE_SEARCH_DIRS "")
+-list(APPEND _BLOSC_INCLUDE_SEARCH_DIRS
+- ${BLOSC_INCLUDEDIR}
+- ${_BLOSC_ROOT_SEARCH_DIR}
+- ${PC_Blosc_INCLUDE_DIRS}
+- ${SYSTEM_LIBRARY_PATHS}
+-)
++# -*- cmake -*-
++# - Find Blosc
++#
++# Author : Nicholas Yue yue.nicholas@gmail.com
++#
++# BLOSC_FOUND set if Blosc is found.
++# BLOSC_INCLUDE_DIR Blosc's include directory
++# BLOSC_LIBRARYDIR Blosc's library directory
++# BLOSC_LIBRARIES all Blosc libraries
+
+-# Look for a standard blosc header file.
+-find_path(Blosc_INCLUDE_DIR blosc.h
+- NO_DEFAULT_PATH
+- PATHS ${_BLOSC_INCLUDE_SEARCH_DIRS}
+- PATH_SUFFIXES include
+-)
++FIND_PACKAGE ( PackageHandleStandardArgs )
+
+-if(EXISTS "${Blosc_INCLUDE_DIR}/blosc.h")
+- file(STRINGS "${Blosc_INCLUDE_DIR}/blosc.h"
+- _blosc_version_major_string REGEX "#define BLOSC_VERSION_MAJOR +[0-9]+ "
+- )
+- string(REGEX REPLACE "#define BLOSC_VERSION_MAJOR +([0-9]+).*$" "\\1"
+- _blosc_version_major_string "${_blosc_version_major_string}"
+- )
+- string(STRIP "${_blosc_version_major_string}" Blosc_VERSION_MAJOR)
++FIND_PATH( BLOSC_LOCATION include/blosc.h)
+
+- file(STRINGS "${Blosc_INCLUDE_DIR}/blosc.h"
+- _blosc_version_minor_string REGEX "#define BLOSC_VERSION_MINOR +[0-9]+ "
++FIND_PACKAGE_HANDLE_STANDARD_ARGS ( Blosc
++ REQUIRED_VARS BLOSC_LOCATION
+ )
+- string(REGEX REPLACE "#define BLOSC_VERSION_MINOR +([0-9]+).*$" "\\1"
+- _blosc_version_minor_string "${_blosc_version_minor_string}"
+- )
+- string(STRIP "${_blosc_version_minor_string}" Blosc_VERSION_MINOR)
+-
+- unset(_blosc_version_major_string)
+- unset(_blosc_version_minor_string)
+-
+- set(Blosc_VERSION ${Blosc_VERSION_MAJOR}.${Blosc_VERSION_MINOR})
+-endif()
+-
+-# ------------------------------------------------------------------------
+-# Search for blosc lib DIR
+-# ------------------------------------------------------------------------
+
+-set(_BLOSC_LIBRARYDIR_SEARCH_DIRS "")
+-list(APPEND _BLOSC_LIBRARYDIR_SEARCH_DIRS
+- ${BLOSC_LIBRARYDIR}
+- ${_BLOSC_ROOT_SEARCH_DIR}
+- ${PC_Blosc_LIBRARY_DIRS}
+- ${SYSTEM_LIBRARY_PATHS}
+-)
++IF ( BLOSC_FOUND )
+
+-# Static library setup
+-if(UNIX AND BLOSC_USE_STATIC_LIBS)
+- set(_BLOSC_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+- set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+-endif()
++# SET ( BLOSC_LIBRARYDIR ${BLOSC_LOCATION}/lib
++# CACHE STRING "Blosc library directories")
+
+-set(BLOSC_PATH_SUFFIXES
+- lib64
+- lib
+-)
++ SET ( _blosc_library_name "blosc" )
+
+-find_library(Blosc_LIBRARY blosc
+- NO_DEFAULT_PATH
+- PATHS ${_BLOSC_LIBRARYDIR_SEARCH_DIRS}
+- PATH_SUFFIXES ${BLOSC_PATH_SUFFIXES}
+-)
++ # Static library setup
++ IF (Blosc_USE_STATIC_LIBS)
++ SET(CMAKE_FIND_LIBRARY_SUFFIXES_BACKUP ${CMAKE_FIND_LIBRARY_SUFFIXES})
++ IF (WIN32)
++ SET ( _blosc_library_name "libblosc" )
++ ELSE ()
++ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
++ ENDIF ()
++ ENDIF()
+
+-if(UNIX AND BLOSC_USE_STATIC_LIBS)
+- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_BLOSC_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
+- unset(_BLOSC_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
+-endif()
+-
+-# ------------------------------------------------------------------------
+-# Cache and set Blosc_FOUND
+-# ------------------------------------------------------------------------
+-
+-include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(Blosc
+- FOUND_VAR Blosc_FOUND
+- REQUIRED_VARS
+- Blosc_LIBRARY
+- Blosc_INCLUDE_DIR
+- VERSION_VAR Blosc_VERSION
+-)
++ FIND_LIBRARY ( BLOSC_blosc_LIBRARY ${_blosc_library_name}
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
+
+-if(Blosc_FOUND)
+- set(Blosc_LIBRARIES ${Blosc_LIBRARY})
+- set(Blosc_INCLUDE_DIRS ${Blosc_INCLUDE_DIR})
+- set(Blosc_DEFINITIONS ${PC_Blosc_CFLAGS_OTHER})
++ # Static library tear down
++ IF (Blosc_USE_STATIC_LIBS)
++ SET( CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_BACKUP} )
++ ENDIF()
+
+- get_filename_component(Blosc_LIBRARY_DIRS ${Blosc_LIBRARY} DIRECTORY)
++ SET( BLOSC_INCLUDE_DIR "${BLOSC_LOCATION}/include" CACHE STRING "Blosc include directory" )
+
+- if(NOT TARGET Blosc::blosc)
+- add_library(Blosc::blosc UNKNOWN IMPORTED)
+- set_target_properties(Blosc::blosc PROPERTIES
+- IMPORTED_LOCATION "${Blosc_LIBRARIES}"
+- INTERFACE_COMPILE_DEFINITIONS "${Blosc_DEFINITIONS}"
+- INTERFACE_INCLUDE_DIRECTORIES "${Blosc_INCLUDE_DIRS}"
+- )
+- endif()
+-elseif(Blosc_FIND_REQUIRED)
+- message(FATAL_ERROR "Unable to find Blosc")
+-endif()
++ENDIF ( BLOSC_FOUND )
+diff --git a/cmake/FindIlmBase.cmake b/cmake/FindIlmBase.cmake
+index 7f71a72..bb14fb4 100644
+--- a/cmake/FindIlmBase.cmake
++++ b/cmake/FindIlmBase.cmake
+@@ -1,4 +1,4 @@
+-# Copyright (c) 2012-2019 DreamWorks Animation LLC
++# Copyright (c) 2012-2016 DreamWorks Animation LLC
+ #
+ # All rights reserved. This software is distributed under the
+ # Mozilla Public License 2.0 ( http://www.mozilla.org/MPL/2.0/ )
+@@ -24,309 +24,162 @@
+ # IN NO EVENT SHALL THE COPYRIGHT HOLDERS' AND CONTRIBUTORS' AGGREGATE
+ # LIABILITY FOR ALL CLAIMS REGARDLESS OF THEIR BASIS EXCEED US$250.00.
+ #
+-#[=======================================================================[.rst:
+
+-FindIlmBase
+------------
+-
+-Find IlmBase include dirs and libraries
+-
+-Use this module by invoking find_package with the form::
+-
+- find_package(IlmBase
+- [version] [EXACT] # Minimum or EXACT version
+- [REQUIRED] # Fail with error if IlmBase is not found
+- [COMPONENTS <libs>...] # IlmBase libraries by their canonical name
+- # e.g. "Half" for "libHalf"
+- )
+-
+-IMPORTED Targets
+-^^^^^^^^^^^^^^^^
+-
+-``IlmBase::Half``
+- The Half library target.
+-``IlmBase::Iex``
+- The Iex library target.
+-``IlmBase::IexMath``
+- The IexMath library target.
+-``IlmBase::IlmThread``
+- The IlmThread library target.
+-``IlmBase::Imath``
+- The Imath library target.
+-
+-Result Variables
+-^^^^^^^^^^^^^^^^
+-
+-This will define the following variables:
+-
+-``IlmBase_FOUND``
+- True if the system has the IlmBase library.
+-``IlmBase_VERSION``
+- The version of the IlmBase library which was found.
+-``IlmBase_INCLUDE_DIRS``
+- Include directories needed to use IlmBase.
+-``IlmBase_LIBRARIES``
+- Libraries needed to link to IlmBase.
+-``IlmBase_LIBRARY_DIRS``
+- IlmBase library directories.
+-``IlmBase_{COMPONENT}_FOUND``
+- True if the system has the named IlmBase component.
+-
+-Cache Variables
+-^^^^^^^^^^^^^^^
+-
+-The following cache variables may also be set:
+-
+-``IlmBase_INCLUDE_DIR``
+- The directory containing ``IlmBase/config-auto.h``.
+-``IlmBase_{COMPONENT}_LIBRARY``
+- Individual component libraries for IlmBase
+-``IlmBase_{COMPONENT}_DLL``
+- Individual component dlls for IlmBase on Windows.
+-
+-Hints
+-^^^^^
+-
+-Instead of explicitly setting the cache variables, the following variables
+-may be provided to tell this module where to look.
+-
+-``ILMBASE_ROOT``
+- Preferred installation prefix.
+-``ILMBASE_INCLUDEDIR``
+- Preferred include directory e.g. <prefix>/include
+-``ILMBASE_LIBRARYDIR``
+- Preferred library directory e.g. <prefix>/lib
+-``SYSTEM_LIBRARY_PATHS``
+- Paths appended to all include and lib searches.
+-
+-#]=======================================================================]
+-
+-# Support new if() IN_LIST operator
+-if(POLICY CMP0057)
+- cmake_policy(SET CMP0057 NEW)
+-endif()
+-
+-mark_as_advanced(
+- IlmBase_INCLUDE_DIR
+- IlmBase_LIBRARY
+-)
+-
+-set(_ILMBASE_COMPONENT_LIST
+- Half
+- Iex
+- IexMath
+- IlmThread
+- Imath
+-)
+-
+-if(IlmBase_FIND_COMPONENTS)
+- set(ILMBASE_COMPONENTS_PROVIDED TRUE)
+- set(_IGNORED_COMPONENTS "")
+- foreach(COMPONENT ${IlmBase_FIND_COMPONENTS})
+- if(NOT ${COMPONENT} IN_LIST _ILMBASE_COMPONENT_LIST)
+- list(APPEND _IGNORED_COMPONENTS ${COMPONENT})
+- endif()
+- endforeach()
+-
+- if(_IGNORED_COMPONENTS)
+- message(STATUS "Ignoring unknown components of IlmBase:")
+- foreach(COMPONENT ${_IGNORED_COMPONENTS})
+- message(STATUS " ${COMPONENT}")
+- endforeach()
+- list(REMOVE_ITEM IlmBase_FIND_COMPONENTS ${_IGNORED_COMPONENTS})
+- endif()
+-else()
+- set(ILMBASE_COMPONENTS_PROVIDED FALSE)
+- set(IlmBase_FIND_COMPONENTS ${_ILMBASE_COMPONENT_LIST})
+-endif()
+-
+-# Append ILMBASE_ROOT or $ENV{ILMBASE_ROOT} if set (prioritize the direct cmake var)
+-set(_ILMBASE_ROOT_SEARCH_DIR "")
+-
+-if(ILMBASE_ROOT)
+- list(APPEND _ILMBASE_ROOT_SEARCH_DIR ${ILMBASE_ROOT})
+-else()
+- set(_ENV_ILMBASE_ROOT $ENV{ILMBASE_ROOT})
+- if(_ENV_ILMBASE_ROOT)
+- list(APPEND _ILMBASE_ROOT_SEARCH_DIR ${_ENV_ILMBASE_ROOT})
+- endif()
+-endif()
+-
+-# ------------------------------------------------------------------------
+-# Search for IlmBase include DIR
+-# ------------------------------------------------------------------------
+-
+-set(_ILMBASE_INCLUDE_SEARCH_DIRS "")
+-list(APPEND _ILMBASE_INCLUDE_SEARCH_DIRS
+- ${ILMBASE_INCLUDEDIR}
+- ${_ILMBASE_ROOT_SEARCH_DIR}
+- ${PC_IlmBase_INCLUDEDIR}
+- ${SYSTEM_LIBRARY_PATHS}
+-)
+-
+-# Look for a standard IlmBase header file.
+-find_path(IlmBase_INCLUDE_DIR IlmBaseConfig.h
+- NO_DEFAULT_PATH
+- PATHS ${_ILMBASE_INCLUDE_SEARCH_DIRS}
+- PATH_SUFFIXES include/OpenEXR OpenEXR
+-)
+-
+-if(EXISTS "${IlmBase_INCLUDE_DIR}/IlmBaseConfig.h")
+- # Get the ILMBASE version information from the config header
+- file(STRINGS "${IlmBase_INCLUDE_DIR}/IlmBaseConfig.h"
+- _ilmbase_version_major_string REGEX "#define ILMBASE_VERSION_MAJOR "
+- )
+- string(REGEX REPLACE "#define ILMBASE_VERSION_MAJOR" ""
+- _ilmbase_version_major_string "${_ilmbase_version_major_string}"
+- )
+- string(STRIP "${_ilmbase_version_major_string}" IlmBase_VERSION_MAJOR)
+-
+- file(STRINGS "${IlmBase_INCLUDE_DIR}/IlmBaseConfig.h"
+- _ilmbase_version_minor_string REGEX "#define ILMBASE_VERSION_MINOR "
+- )
+- string(REGEX REPLACE "#define ILMBASE_VERSION_MINOR" ""
+- _ilmbase_version_minor_string "${_ilmbase_version_minor_string}"
+- )
+- string(STRIP "${_ilmbase_version_minor_string}" IlmBase_VERSION_MINOR)
+-
+- unset(_ilmbase_version_major_string)
+- unset(_ilmbase_version_minor_string)
+-
+- set(IlmBase_VERSION ${IlmBase_VERSION_MAJOR}.${IlmBase_VERSION_MINOR})
+-endif()
+-
+-# ------------------------------------------------------------------------
+-# Search for ILMBASE lib DIR
+-# ------------------------------------------------------------------------
+-
+-set(_ILMBASE_LIBRARYDIR_SEARCH_DIRS "")
+-
+-# Append to _ILMBASE_LIBRARYDIR_SEARCH_DIRS in priority order
+-
+-list(APPEND _ILMBASE_LIBRARYDIR_SEARCH_DIRS
+- ${ILMBASE_LIBRARYDIR}
+- ${_ILMBASE_ROOT_SEARCH_DIR}
+- ${PC_IlmBase_LIBDIR}
+- ${SYSTEM_LIBRARY_PATHS}
+-)
+-
+-# Build suffix directories
+-
+-set(ILMBASE_PATH_SUFFIXES
+- lib64
+- lib
+-)
+-
+-if(UNIX)
+- list(INSERT ILMBASE_PATH_SUFFIXES 0 lib/x86_64-linux-gnu)
+-endif()
+-
+-set(_ILMBASE_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+-
+-# library suffix handling
+-if(WIN32)
+- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
+- "-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.lib"
+- )
+-else()
+- if(ILMBASE_USE_STATIC_LIBS)
+- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
+- "-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.a"
+- )
+- else()
+- if(APPLE)
+- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
+- "-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.dylib"
+- )
+- else()
+- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
+- "-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.so"
+- )
+- endif()
+- endif()
+-endif()
+-
+-set(IlmBase_LIB_COMPONENTS "")
+-
+-foreach(COMPONENT ${IlmBase_FIND_COMPONENTS})
+- find_library(IlmBase_${COMPONENT}_LIBRARY ${COMPONENT}
+- NO_DEFAULT_PATH
+- PATHS ${_ILMBASE_LIBRARYDIR_SEARCH_DIRS}
+- PATH_SUFFIXES ${ILMBASE_PATH_SUFFIXES}
+- )
+- list(APPEND IlmBase_LIB_COMPONENTS ${IlmBase_${COMPONENT}_LIBRARY})
+-
+- if(WIN32 AND NOT ILMBASE_USE_STATIC_LIBS)
+- set(_ILMBASE_TMP ${CMAKE_FIND_LIBRARY_SUFFIXES})
+- set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
+- find_library(IlmBase_${COMPONENT}_DLL ${COMPONENT}
+- NO_DEFAULT_PATH
+- PATHS ${_ILMBASE_LIBRARYDIR_SEARCH_DIRS}
+- PATH_SUFFIXES bin
+- )
+- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_ILMBASE_TMP})
+- unset(_ILMBASE_TMP)
+- endif()
+-
+- if(IlmBase_${COMPONENT}_LIBRARY)
+- set(IlmBase_${COMPONENT}_FOUND TRUE)
+- else()
+- set(IlmBase_${COMPONENT}_FOUND FALSE)
+- endif()
+-endforeach()
+-
+-# reset lib suffix
+-
+-set(CMAKE_FIND_LIBRARY_SUFFIXES ${_ILMBASE_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
+-unset(_ILMBASE_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
+-
+-# ------------------------------------------------------------------------
+-# Cache and set ILMBASE_FOUND
+-# ------------------------------------------------------------------------
+-
+-include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(IlmBase
+- FOUND_VAR IlmBase_FOUND
+- REQUIRED_VARS
+- IlmBase_INCLUDE_DIR
+- IlmBase_LIB_COMPONENTS
+- VERSION_VAR IlmBase_VERSION
+- HANDLE_COMPONENTS
+-)
++#-*-cmake-*-
++# - Find ILMBase
++#
++# Author : Nicholas Yue yue.nicholas@gmail.com
++#
++# This auxiliary CMake file helps in find the ILMBASE headers and libraries
++#
++# ILMBASE_FOUND set if ILMBASE is found.
++# ILMBASE_INCLUDE_DIR ILMBASE's include directory
++# ILMBASE_LIBRARYDIR ILMBASE's include directory
++# Ilmbase_HALF_LIBRARY ILMBASE's Half libraries
++# Ilmbase_IEX_LIBRARY ILMBASE's Iex libraries
++# Ilmbase_IEXMATH_LIBRARY ILMBASE's IexMath libraries
++# Ilmbase_ILMTHREAD_LIBRARY ILMBASE's IlmThread libraries
++# Ilmbase_IMATH_LIBRARY ILMBASE's Imath libraries
+
+-if(IlmBase_FOUND)
+- set(IlmBase_LIBRARIES ${IlmBase_LIB_COMPONENTS})
++FIND_PACKAGE ( PackageHandleStandardArgs )
+
+- # We have to add both include and include/OpenEXR to the include
+- # path in case OpenEXR and IlmBase are installed separately
++FIND_PATH ( ILMBASE_LOCATION include/OpenEXR/IlmBaseConfig.h)
+
+- set(IlmBase_INCLUDE_DIRS)
+- list(APPEND IlmBase_INCLUDE_DIRS
+- ${IlmBase_INCLUDE_DIR}/../
+- ${IlmBase_INCLUDE_DIR}
++FIND_PACKAGE_HANDLE_STANDARD_ARGS ( ILMBase
++ REQUIRED_VARS ILMBASE_LOCATION
+ )
+- set(IlmBase_DEFINITIONS ${PC_IlmBase_CFLAGS_OTHER})
+-
+- set(IlmBase_LIBRARY_DIRS "")
+- foreach(LIB ${IlmBase_LIB_COMPONENTS})
+- get_filename_component(_ILMBASE_LIBDIR ${LIB} DIRECTORY)
+- list(APPEND IlmBase_LIBRARY_DIRS ${_ILMBASE_LIBDIR})
+- endforeach()
+- list(REMOVE_DUPLICATES IlmBase_LIBRARY_DIRS)
+-
+- # Configure imported targets
+-
+- foreach(COMPONENT ${IlmBase_FIND_COMPONENTS})
+- if(NOT TARGET IlmBase::${COMPONENT})
+- add_library(IlmBase::${COMPONENT} UNKNOWN IMPORTED)
+- set_target_properties(IlmBase::${COMPONENT} PROPERTIES
+- IMPORTED_LOCATION "${IlmBase_${COMPONENT}_LIBRARY}"
+- INTERFACE_COMPILE_OPTIONS "${IlmBase_DEFINITIONS}"
+- INTERFACE_INCLUDE_DIRECTORIES "${IlmBase_INCLUDE_DIRS}"
+- )
+- endif()
+- endforeach()
+
+-elseif(IlmBase_FIND_REQUIRED)
+- message(FATAL_ERROR "Unable to find IlmBase")
+-endif()
++OPTION ( ILMBASE_NAMESPACE_VERSIONING "Namespace versioning of libraries" ON )
++
++IF ( ILMBASE_FOUND )
++
++ FILE ( STRINGS "${ILMBASE_LOCATION}/include/OpenEXR/IlmBaseConfig.h" _ilmbase_version_major_string REGEX "#define ILMBASE_VERSION_MAJOR ")
++ STRING ( REGEX REPLACE "#define ILMBASE_VERSION_MAJOR" "" _ilmbase_version_major_unstrip "${_ilmbase_version_major_string}")
++ STRING ( STRIP "${_ilmbase_version_major_unstrip}" ILMBASE_VERSION_MAJOR )
++
++ FILE ( STRINGS "${ILMBASE_LOCATION}/include/OpenEXR/IlmBaseConfig.h" _ilmbase_version_minor_string REGEX "#define ILMBASE_VERSION_MINOR ")
++ STRING ( REGEX REPLACE "#define ILMBASE_VERSION_MINOR" "" _ilmbase_version_minor_unstrip "${_ilmbase_version_minor_string}")
++ STRING ( STRIP "${_ilmbase_version_minor_unstrip}" ILMBASE_VERSION_MINOR )
++
++ IF ( ILMBASE_NAMESPACE_VERSIONING )
++ SET ( IEX_LIBRARY_NAME Iex-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
++ SET ( IEXMATH_LIBRARY_NAME IexMath-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
++ SET ( ILMTHREAD_LIBRARY_NAME IlmThread-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
++ SET ( IMATH_LIBRARY_NAME Imath-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
++ SET ( HALF_LIBRARY_NAME Half-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
++ ELSE ( ILMBASE_NAMESPACE_VERSIONING )
++ SET ( IEX_LIBRARY_NAME Iex )
++ SET ( IEXMATH_LIBRARY_NAME IexMath )
++ SET ( ILMTHREAD_LIBRARY_NAME IlmThread )
++ SET ( IMATH_LIBRARY_NAME Imath )
++ SET ( HALF_LIBRARY_NAME Half )
++ ENDIF ( ILMBASE_NAMESPACE_VERSIONING )
++
++ SET ( ILMBASE_INCLUDE_DIRS
++ ${ILMBASE_LOCATION}/include
++ ${ILMBASE_LOCATION}/include/OpenEXR
++ CACHE STRING "ILMBase include directories")
++ SET ( ILMBASE_LIBRARYDIR ${ILMBASE_LOCATION}/lib
++ CACHE STRING "ILMBase library directories")
++ SET ( ILMBASE_FOUND TRUE )
++
++ SET ( ORIGINAL_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
++ IF (Ilmbase_USE_STATIC_LIBS)
++ IF (APPLE)
++ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
++ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY Half PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_IEX_LIBRARY Iex PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY IlmThread PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY Imath PATHS ${ILMBASE_LIBRARYDIR} )
++ ELSEIF (WIN32)
++ # Link library
++ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
++ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY Half_static PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_IEX_LIBRARY Iex_static PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY IlmThread_static PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY Imath_static PATHS ${ILMBASE_LIBRARYDIR} )
++ ELSE (APPLE)
++ SET ( CMAKE_FIND_LIBRARY_SUFFIXES ".a")
++ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY Half PATHS ${ILMBASE_LIBRARYDIR}
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ FIND_LIBRARY ( Ilmbase_IEX_LIBRARY Iex PATHS ${ILMBASE_LIBRARYDIR}
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY IlmThread PATHS ${ILMBASE_LIBRARYDIR}
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY Imath PATHS ${ILMBASE_LIBRARYDIR}
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ ENDIF (APPLE)
++ ELSE (Ilmbase_USE_STATIC_LIBS)
++ IF (APPLE)
++ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib")
++ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY Half PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_IEX_LIBRARY Iex PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY IlmThread PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY Imath PATHS ${ILMBASE_LIBRARYDIR} )
++ ELSEIF (WIN32)
++ # Link library
++ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
++ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY ${HALF_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_IEX_LIBRARY ${IEX_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_IEXMATH_LIBRARY ${IEXMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY ${ILMTHREAD_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY ${IMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
++ # Load library
++ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
++ FIND_LIBRARY ( Ilmbase_HALF_DLL ${HALF_LIBRARY_NAME} PATHS ${ILMBASE_LOCATION}/bin
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ FIND_LIBRARY ( Ilmbase_IEX_DLL ${IEX_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ FIND_LIBRARY ( Ilmbase_IEXMATH_DLL ${IEXMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ FIND_LIBRARY ( Ilmbase_ILMTHREAD_DLL ${ILMTHREAD_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ FIND_LIBRARY ( Ilmbase_IMATH_DLL ${IMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ ELSE (APPLE)
++ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY ${HALF_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ FIND_LIBRARY ( Ilmbase_IEX_LIBRARY ${IEX_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ FIND_LIBRARY ( Ilmbase_IEXMATH_LIBRARY ${IEXMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY ${ILMTHREAD_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY ${IMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
++ NO_DEFAULT_PATH
++ NO_SYSTEM_ENVIRONMENT_PATH
++ )
++ ENDIF (APPLE)
++ ENDIF ()
++ # MUST reset
++ SET(CMAKE_FIND_LIBRARY_SUFFIXES ${ORIGINAL_CMAKE_FIND_LIBRARY_SUFFIXES})
++
++ELSE ( ILMBASE_FOUND )
++ MESSAGE ( FATAL_ERROR "Unable to find ILMBase, ILMBASE_ROOT = $ENV{ILMBASE_ROOT}")
++ENDIF ( ILMBASE_FOUND )
+diff --git a/cmake/FindOpenEXR.cmake b/cmake/FindOpenEXR.cmake
+index 2f771ad..a381c6d 100644
+--- a/cmake/FindOpenEXR.cmake
++++ b/cmake/FindOpenEXR.cmake
+@@ -1,324 +1,87 @@
+-# Copyright (c) 2012-2019 DreamWorks Animation LLC
+-#
+-# All rights reserved. This software is distributed under the
+-# Mozilla Public License 2.0 ( http://www.mozilla.org/MPL/2.0/ )
+-#
+-# Redistributions of source code must retain the above copyright
+-# and license notice and the following restrictions and disclaimer.
+-#
+-# * Neither the name of DreamWorks Animation 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 THE COPYRIGHT
+-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY 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.
+-# IN NO EVENT SHALL THE COPYRIGHT HOLDERS' AND CONTRIBUTORS' AGGREGATE
+-# LIABILITY FOR ALL CLAIMS REGARDLESS OF THEIR BASIS EXCEED US$250.00.
+-#
+-#[=======================================================================[.rst:
+-
+-FindOpenEXR
+------------
+-
+-Find OpenEXR include dirs and libraries
+-
+-Use this module by invoking find_package with the form::
+-
+- find_package(OpenEXR
+- [version] [EXACT] # Minimum or EXACT version
+- [REQUIRED] # Fail with error if OpenEXR is not found
+- [COMPONENTS <libs>...] # OpenEXR libraries by their canonical name
+- # e.g. "IlmImf" for "libIlmImf"
+- )
+-
+-IMPORTED Targets
+-^^^^^^^^^^^^^^^^
+-
+-``OpenEXR::IlmImf``
+- The IlmImf library target.
+-``OpenEXR::IlmImfUtil``
+- The IlmImfUtil library target.
+-
+-Result Variables
+-^^^^^^^^^^^^^^^^
+-
+-This will define the following variables:
+-
+-``OpenEXR_FOUND``
+- True if the system has the OpenEXR library.
+-``OpenEXR_VERSION``
+- The version of the OpenEXR library which was found.
+-``OpenEXR_INCLUDE_DIRS``
+- Include directories needed to use OpenEXR.
+-``OpenEXR_LIBRARIES``
+- Libraries needed to link to OpenEXR.
+-``OpenEXR_LIBRARY_DIRS``
+- OpenEXR library directories.
+-``OpenEXR_DEFINITIONS``
+- Definitions to use when compiling code that uses OpenEXR.
+-``OpenEXR_{COMPONENT}_FOUND``
+- True if the system has the named OpenEXR component.
+-
+-Cache Variables
+-^^^^^^^^^^^^^^^
+-
+-The following cache variables may also be set:
+-
+-``OpenEXR_INCLUDE_DIR``
+- The directory containing ``OpenEXR/config-auto.h``.
+-``OpenEXR_{COMPONENT}_LIBRARY``
+- Individual component libraries for OpenEXR
+-``OpenEXR_{COMPONENT}_DLL``
+- Individual component dlls for OpenEXR on Windows.
+-
+-Hints
+-^^^^^
+-
+-Instead of explicitly setting the cache variables, the following variables
+-may be provided to tell this module where to look.
+-
+-``OPENEXR_ROOT``
+- Preferred installation prefix.
+-``OPENEXR_INCLUDEDIR``
+- Preferred include directory e.g. <prefix>/include
+-``OPENEXR_LIBRARYDIR``
+- Preferred library directory e.g. <prefix>/lib
+-``SYSTEM_LIBRARY_PATHS``
+- Paths appended to all include and lib searches.
+-
+-#]=======================================================================]
+-
+-# Support new if() IN_LIST operator
+-if(POLICY CMP0057)
+- cmake_policy(SET CMP0057 NEW)
+-endif()
+-
+-mark_as_advanced(
+- OpenEXR_INCLUDE_DIR
+- OpenEXR_LIBRARY
+-)
+-
+-set(_OPENEXR_COMPONENT_LIST
+- IlmImf
+- IlmImfUtil
+-)
+-
+-if(OpenEXR_FIND_COMPONENTS)
+- set(OPENEXR_COMPONENTS_PROVIDED TRUE)
+- set(_IGNORED_COMPONENTS "")
+- foreach(COMPONENT ${OpenEXR_FIND_COMPONENTS})
+- if(NOT ${COMPONENT} IN_LIST _OPENEXR_COMPONENT_LIST)
+- list(APPEND _IGNORED_COMPONENTS ${COMPONENT})
+- endif()
+- endforeach()
+-
+- if(_IGNORED_COMPONENTS)
+- message(STATUS "Ignoring unknown components of OpenEXR:")
+- foreach(COMPONENT ${_IGNORED_COMPONENTS})
+- message(STATUS " ${COMPONENT}")
+- endforeach()
+- list(REMOVE_ITEM OpenEXR_FIND_COMPONENTS ${_IGNORED_COMPONENTS})
+- endif()
+-else()
+- set(OPENEXR_COMPONENTS_PROVIDED FALSE)
+- set(OpenEXR_FIND_COMPONENTS ${_OPENEXR_COMPONENT_LIST})
+-endif()
+-
+-# Append OPENEXR_ROOT or $ENV{OPENEXR_ROOT} if set (prioritize the direct cmake var)
+-set(_OPENEXR_ROOT_SEARCH_DIR "")
+-
+-if(OPENEXR_ROOT)
+- list(APPEND _OPENEXR_ROOT_SEARCH_DIR ${OPENEXR_ROOT})
+-else()
+- set(_ENV_OPENEXR_ROOT $ENV{OPENEXR_ROOT})
+- if(_ENV_OPENEXR_ROOT)
+- list(APPEND _OPENEXR_ROOT_SEARCH_DIR ${_ENV_OPENEXR_ROOT})
+- endif()
+-endif()
+-
+-# ------------------------------------------------------------------------
+-# Search for OpenEXR include DIR
+-# ------------------------------------------------------------------------
+-
+-set(_OPENEXR_INCLUDE_SEARCH_DIRS "")
+-list(APPEND _OPENEXR_INCLUDE_SEARCH_DIRS
+- ${OPENEXR_INCLUDEDIR}
+- ${_OPENEXR_ROOT_SEARCH_DIR}
+- ${PC_OpenEXR_INCLUDEDIR}
+- ${SYSTEM_LIBRARY_PATHS}
+-)
+-
+-# Look for a standard OpenEXR header file.
+-find_path(OpenEXR_INCLUDE_DIR OpenEXRConfig.h
+- NO_DEFAULT_PATH
+- PATHS ${_OPENEXR_INCLUDE_SEARCH_DIRS}
+- PATH_SUFFIXES include/OpenEXR OpenEXR
+-)
+-
+-if(EXISTS "${OpenEXR_INCLUDE_DIR}/OpenEXRConfig.h")
+- # Get the EXR version information from the config header
+- file(STRINGS "${OpenEXR_INCLUDE_DIR}/OpenEXRConfig.h"
+- _openexr_version_major_string REGEX "#define OPENEXR_VERSION_MAJOR "
+- )
+- string(REGEX REPLACE "#define OPENEXR_VERSION_MAJOR" ""
+- _openexr_version_major_string "${_openexr_version_major_string}"
+- )
+- string(STRIP "${_openexr_version_major_string}" OpenEXR_VERSION_MAJOR)
+-
+- file(STRINGS "${OpenEXR_INCLUDE_DIR}/OpenEXRConfig.h"
+- _openexr_version_minor_string REGEX "#define OPENEXR_VERSION_MINOR "
+- )
+- string(REGEX REPLACE "#define OPENEXR_VERSION_MINOR" ""
+- _openexr_version_minor_string "${_openexr_version_minor_string}"
+- )
+- string(STRIP "${_openexr_version_minor_string}" OpenEXR_VERSION_MINOR)
+-
+- unset(_openexr_version_major_string)
+- unset(_openexr_version_minor_string)
+-
+- set(OpenEXR_VERSION ${OpenEXR_VERSION_MAJOR}.${OpenEXR_VERSION_MINOR})
+-endif()
+-
+-# ------------------------------------------------------------------------
+-# Search for OPENEXR lib DIR
+-# ------------------------------------------------------------------------
+-
+-set(_OPENEXR_LIBRARYDIR_SEARCH_DIRS "")
+-
+-# Append to _OPENEXR_LIBRARYDIR_SEARCH_DIRS in priority order
+-
+-list(APPEND _OPENEXR_LIBRARYDIR_SEARCH_DIRS
+- ${OPENEXR_LIBRARYDIR}
+- ${_OPENEXR_ROOT_SEARCH_DIR}
+- ${PC_OpenEXR_LIBDIR}
+- ${SYSTEM_LIBRARY_PATHS}
+-)
+-
+-# Build suffix directories
+-
+-set(OPENEXR_PATH_SUFFIXES
+- lib64
+- lib
+-)
+-
+-if(UNIX )
+- list(INSERT OPENEXR_PATH_SUFFIXES 0 lib/x86_64-linux-gnu)
+-endif()
+-
+-set(_OPENEXR_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+-
+-# library suffix handling
+-if(WIN32)
+- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
+- "-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.lib"
+- )
+-else()
+- if(OPENEXR_USE_STATIC_LIBS)
+- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
+- "-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.a"
+- )
+- else()
+- if(APPLE)
+- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
+- "-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.dylib"
+- )
+- else()
+- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
+- "-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.so"
+- )
+- endif()
+- endif()
+-endif()
+-
+-set(OpenEXR_LIB_COMPONENTS "")
+-
+-foreach(COMPONENT ${OpenEXR_FIND_COMPONENTS})
+- find_library(OpenEXR_${COMPONENT}_LIBRARY ${COMPONENT}
+- NO_DEFAULT_PATH
+- PATHS ${_OPENEXR_LIBRARYDIR_SEARCH_DIRS}
+- PATH_SUFFIXES ${OPENEXR_PATH_SUFFIXES}
+- )
+- list(APPEND OpenEXR_LIB_COMPONENTS ${OpenEXR_${COMPONENT}_LIBRARY})
+-
+- if(WIN32 AND NOT OPENEXR_USE_STATIC_LIBS)
+- set(_OPENEXR_TMP ${CMAKE_FIND_LIBRARY_SUFFIXES})
+- set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
+- find_library(OpenEXR_${COMPONENT}_DLL ${COMPONENT}
+- NO_DEFAULT_PATH
+- PATHS ${_OPENEXR_LIBRARYDIR_SEARCH_DIRS}
+- PATH_SUFFIXES bin
+- )
+- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_OPENEXR_TMP})
+- unset(_OPENEXR_TMP)
+- endif()
+-
+- if(OpenEXR_${COMPONENT}_LIBRARY)
+- set(OpenEXR_${COMPONENT}_FOUND TRUE)
+- else()
+- set(OpenEXR_${COMPONENT}_FOUND FALSE)
+- endif()
+-endforeach()
+-
+-# reset lib suffix
+-
+-set(CMAKE_FIND_LIBRARY_SUFFIXES ${_OPENEXR_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
+-unset(_OPENEXR_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
+-
+-# ------------------------------------------------------------------------
+-# Cache and set OPENEXR_FOUND
+-# ------------------------------------------------------------------------
+-
+-include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(OpenEXR
+- FOUND_VAR OpenEXR_FOUND
+- REQUIRED_VARS
+- OpenEXR_INCLUDE_DIR
+- OpenEXR_LIB_COMPONENTS
+- VERSION_VAR OpenEXR_VERSION
+- HANDLE_COMPONENTS
+-)
+-
+-if(OpenEXR_FOUND)
+- set(OpenEXR_LIBRARIES ${OpenEXR_LIB_COMPONENTS})
+-
+- # We have to add both include and include/OpenEXR to the include
+- # path in case OpenEXR and IlmBase are installed separately
+-
+- set(OpenEXR_INCLUDE_DIRS)
+- list(APPEND OpenEXR_INCLUDE_DIRS
+- ${OpenEXR_INCLUDE_DIR}/../
+- ${OpenEXR_INCLUDE_DIR}
+- )
+- set(OpenEXR_DEFINITIONS ${PC_OpenEXR_CFLAGS_OTHER})
+-
+- set(OpenEXR_LIBRARY_DIRS "")
+- foreach(LIB ${OpenEXR_LIB_COMPONENTS})
+- get_filename_component(_OPENEXR_LIBDIR ${LIB} DIRECTORY)
+- list(APPEND OpenEXR_LIBRARY_DIRS ${_OPENEXR_LIBDIR})
+- endforeach()
+- list(REMOVE_DUPLICATES OpenEXR_LIBRARY_DIRS)
+-
+- # Configure imported target
+-
+- foreach(COMPONENT ${OpenEXR_FIND_COMPONENTS})
+- if(NOT TARGET OpenEXR::${COMPONENT})
+- add_library(OpenEXR::${COMPONENT} UNKNOWN IMPORTED)
+- set_target_properties(OpenEXR::${COMPONENT} PROPERTIES
+- IMPORTED_LOCATION "${OpenEXR_${COMPONENT}_LIBRARY}"
+- INTERFACE_COMPILE_OPTIONS "${OpenEXR_DEFINITIONS}"
+- INTERFACE_INCLUDE_DIRECTORIES "${OpenEXR_INCLUDE_DIRS}"
+- )
+- endif()
+- endforeach()
+-elseif(OpenEXR_FIND_REQUIRED)
+- message(FATAL_ERROR "Unable to find OpenEXR")
+-endif()
++include(FindPackageHandleStandardArgs)
++
++find_path(OpenEXR_INCLUDE_DIRS OpenEXR/OpenEXRConfig.h)
++find_path(OPENEXR_INCLUDE_PATHS NAMES ImfRgbaFile.h PATH_SUFFIXES OpenEXR)
++
++file(STRINGS "${OpenEXR_INCLUDE_DIRS}/OpenEXR/OpenEXRConfig.h" OPENEXR_CONFIG_H)
++
++string(REGEX REPLACE "^.*define OPENEXR_VERSION_MAJOR ([0-9]+).*$" "\\1" OpenEXR_VERSION_MAJOR "${OPENEXR_CONFIG_H}")
++string(REGEX REPLACE "^.*define OPENEXR_VERSION_MINOR ([0-9]+).*$" "\\1" OpenEXR_VERSION_MINOR "${OPENEXR_CONFIG_H}")
++set(OpenEXR_LIB_SUFFIX "${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}")
++
++include(SelectLibraryConfigurations)
++
++if(NOT OpenEXR_BASE_LIBRARY)
++ find_library(OpenEXR_BASE_LIBRARY_RELEASE NAMES IlmImf-${OpenEXR_LIB_SUFFIX})
++ find_library(OpenEXR_BASE_LIBRARY_DEBUG NAMES IlmImf-${OpenEXR_LIB_SUFFIX}_d)
++ select_library_configurations(OpenEXR_BASE)
++endif()
++
++if(NOT OpenEXR_UTIL_LIBRARY)
++ find_library(OpenEXR_UTIL_LIBRARY_RELEASE NAMES IlmImfUtil-${OpenEXR_LIB_SUFFIX})
++ find_library(OpenEXR_UTIL_LIBRARY_DEBUG NAMES IlmImfUtil-${OpenEXR_LIB_SUFFIX}_d)
++ select_library_configurations(OpenEXR_UTIL)
++endif()
++
++if(NOT OpenEXR_HALF_LIBRARY)
++ find_library(OpenEXR_HALF_LIBRARY_RELEASE NAMES Half-${OpenEXR_LIB_SUFFIX})
++ find_library(OpenEXR_HALF_LIBRARY_DEBUG NAMES Half-${OpenEXR_LIB_SUFFIX}_d)
++ select_library_configurations(OpenEXR_HALF)
++endif()
++
++if(NOT OpenEXR_IEX_LIBRARY)
++ find_library(OpenEXR_IEX_LIBRARY_RELEASE NAMES Iex-${OpenEXR_LIB_SUFFIX})
++ find_library(OpenEXR_IEX_LIBRARY_DEBUG NAMES Iex-${OpenEXR_LIB_SUFFIX}_d)
++ select_library_configurations(OpenEXR_IEX)
++endif()
++
++if(NOT OpenEXR_MATH_LIBRARY)
++ find_library(OpenEXR_MATH_LIBRARY_RELEASE NAMES Imath-${OpenEXR_LIB_SUFFIX})
++ find_library(OpenEXR_MATH_LIBRARY_DEBUG NAMES Imath-${OpenEXR_LIB_SUFFIX}_d)
++ select_library_configurations(OpenEXR_MATH)
++endif()
++
++if(NOT OpenEXR_THREAD_LIBRARY)
++ find_library(OpenEXR_THREAD_LIBRARY_RELEASE NAMES IlmThread-${OpenEXR_LIB_SUFFIX})
++ find_library(OpenEXR_THREAD_LIBRARY_DEBUG NAMES IlmThread-${OpenEXR_LIB_SUFFIX}_d)
++ select_library_configurations(OpenEXR_THREAD)
++endif()
++
++if(NOT OpenEXR_IEXMATH_LIBRARY)
++ find_library(OpenEXR_IEXMATH_LIBRARY_RELEASE NAMES IexMath-${OpenEXR_LIB_SUFFIX})
++ find_library(OpenEXR_IEXMATH_LIBRARY_DEBUG NAMES IexMath-${OpenEXR_LIB_SUFFIX}d)
++ select_library_configurations(OpenEXR_IEXMATH)
++endif()
++
++set(OPENEXR_HALF_LIBRARY "${OpenEXR_HALF_LIBRARY}")
++set(OPENEXR_IEX_LIBRARY "${OpenEXR_IEX_LIBRARY}")
++set(OPENEXR_IMATH_LIBRARY "${OpenEXR_MATH_LIBRARY}")
++set(OPENEXR_ILMIMF_LIBRARY "${OpenEXR_BASE_LIBRARY}")
++set(OPENEXR_ILMIMFUTIL_LIBRARY "${OpenEXR_UTIL_LIBRARY}")
++set(OPENEXR_ILMTHREAD_LIBRARY "${OpenEXR_THREAD_LIBRARY}")
++
++set(OpenEXR_LIBRARY "${OpenEXR_BASE_LIBRARY}")
++
++set(OpenEXR_LIBRARIES
++ ${OpenEXR_LIBRARY}
++ ${OpenEXR_MATH_LIBRARY}
++ ${OpenEXR_IEXMATH_LIBRARY}
++ ${OpenEXR_UTIL_LIBRARY}
++ ${OpenEXR_HALF_LIBRARY}
++ ${OpenEXR_IEX_LIBRARY}
++ ${OpenEXR_THREAD_LIBRARY}
++)
++
++set(OPENEXR_LIBRARIES
++ ${OPENEXR_HALF_LIBRARY}
++ ${OPENEXR_IEX_LIBRARY}
++ ${OPENEXR_IMATH_LIBRARY}
++ ${OPENEXR_ILMIMF_LIBRARY}
++ ${OPENEXR_ILMTHREAD_LIBRARY}
++)
++
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenEXR REQUIRED_VARS OpenEXR_LIBRARIES OpenEXR_INCLUDE_DIRS)
++
++if(OpenEXR_FOUND)
++ set(OPENEXR_FOUND 1)
++endif()
diff --git a/ports/openvdb/0003-build-only-necessary-targets.patch b/ports/openvdb/0003-build-only-necessary-targets.patch
deleted file mode 100644
index 8be8263a5..000000000
--- a/ports/openvdb/0003-build-only-necessary-targets.patch
+++ /dev/null
@@ -1,282 +0,0 @@
-diff --git a/openvdb/CMakeLists.txt b/openvdb/CMakeLists.txt
-index 9404dbc..94daf8c 100644
---- a/openvdb/CMakeLists.txt
-+++ b/openvdb/CMakeLists.txt
-@@ -29,28 +29,31 @@ PROJECT ( OpenVDBCore )
-
- set(CMAKE_CXX_STANDARD 11)
-
-+IF ( OPENVDB_BUILD_TOOLS )
- IF ( USE_GLFW3 )
- FIND_PACKAGE ( GLFW3 REQUIRED )
- SET ( OPENVDB_USE_GLFW_FLAG "-DOPENVDB_USE_GLFW_3" )
- IF ( UNIX AND NOT APPLE )
-- SET ( GLFW_DEPENDENT_LIBRARIES "X11;Xi;Xrandr;Xinerama;Xcursor;Xxf86vm" )
-- ENDIF ( UNIX AND NOT APPLE )
-+ SET ( GLFW_DEPENDENT_LIBRARIES "X11;Xi;Xrandr;Xinerama;Xcursor;Xxf86vm" )
-+ ENDIF ()
- SET ( GLFW_LINK_LIBRARY ${GLFW3_glfw_LIBRARY} )
- SET ( GLFW_INCLUDE_DIRECTORY ${GLFW3_INCLUDE_DIR} CACHE STRING "GLFW3 include directory")
- ELSE ()
- FIND_PACKAGE ( GLFW REQUIRED )
- IF ( UNIX AND NOT APPLE )
-- SET ( GLFW_DEPENDENT_LIBRARIES "X11;Xi;Xrandr;Xinerama;Xcursor;Xxf86vm" )
-+ SET ( GLFW_DEPENDENT_LIBRARIES "X11;Xi;Xrandr;Xinerama;Xcursor;Xxf86vm" )
- ENDIF ()
- SET ( GLFW_LINK_LIBRARY ${GLFW_glfw_LIBRARY} )
- SET ( GLFW_INCLUDE_DIRECTORY ${GLFW_INCLUDE_DIR} CACHE STRING "GLFW include directory")
- ENDIF ()
-+ENDIF ()
-
-+IF ( OPENVDB_BUILD_TOOLS )
- IF (WIN32)
- FIND_PACKAGE ( GLEW REQUIRED )
--ELSE ()
-- FIND_PACKAGE ( Threads REQUIRED )
--ENDIF()
-+ENDIF ()
-+ENDIF ()
-+FIND_PACKAGE ( Threads REQUIRED )
-
- # Determine OpenVDB version
- #define OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER 4
-@@ -130,7 +133,12 @@ INCLUDE_DIRECTORIES ( SYSTEM ${BLOSC_INCLUDE_DIR} )
- INCLUDE_DIRECTORIES ( SYSTEM ${CPPUNIT_INCLUDE_DIR} )
-
- IF (WIN32)
-- ADD_DEFINITIONS ( -D_WIN32 -DNOMINMAX -DHALF_EXPORTS -DOPENVDB_DLL )
-+ ADD_DEFINITIONS ( -D__TBB_NO_IMPLICIT_LINKAGE )
-+ ADD_DEFINITIONS ( -D__TBBMALLOC_NO_IMPLICIT_LINKAGE )
-+ ADD_DEFINITIONS ( -D_WIN32 -DNOMINMAX )
-+ IF ( OPENVDB_SHARED )
-+ ADD_DEFINITIONS ( -DOPENEXR_DLL -DOPENVDB_DLL )
-+ ENDIF ()
- ELSE ()
- ADD_DEFINITIONS ( -pthread -fPIC )
- ENDIF ()
-@@ -170,16 +178,21 @@ SET ( OPENVDB_LIBRARY_SOURCE_FILES
-
- SET_SOURCE_FILES_PROPERTIES ( ${OPENVDB_LIBRARY_SOURCE_FILES}
- PROPERTIES
-- COMPILE_FLAGS "-DOPENVDB_PRIVATE -DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG}"
-+ COMPILE_FLAGS "-DOPENVDB_PRIVATE -DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} $<$<CXX_COMPILER_ID:MSVC>:/bigobj>"
- )
--
-+
-+IF ( OPENVDB_STATIC )
- ADD_LIBRARY ( openvdb_static STATIC
- ${OPENVDB_LIBRARY_SOURCE_FILES}
- )
-+ENDIF ()
-+IF ( OPENVDB_SHARED )
- ADD_LIBRARY ( openvdb_shared SHARED
- ${OPENVDB_LIBRARY_SOURCE_FILES}
- )
-+ENDIF ()
-
-+IF ( OPENVDB_STATIC )
- TARGET_LINK_LIBRARIES ( openvdb_static
- ${Boost_IOSTREAMS_LIBRARY}
- ${Boost_SYSTEM_LIBRARY}
-@@ -188,6 +201,8 @@ TARGET_LINK_LIBRARIES ( openvdb_static
- ${ZLIB_LIBRARY}
- ${BLOSC_blosc_LIBRARY}
- )
-+ENDIF ()
-+IF ( OPENVDB_SHARED )
- TARGET_LINK_LIBRARIES ( openvdb_shared
- ${Boost_IOSTREAMS_LIBRARY}
- ${Boost_SYSTEM_LIBRARY}
-@@ -196,7 +211,9 @@ TARGET_LINK_LIBRARIES ( openvdb_shared
- ${ZLIB_LIBRARY}
- ${BLOSC_blosc_LIBRARY}
- )
-+ENDIF ()
-
-+IF ( OPENVDB_STATIC )
- IF (WIN32)
- SET_TARGET_PROPERTIES ( openvdb_static
- PROPERTIES OUTPUT_NAME libopenvdb
-@@ -205,8 +222,10 @@ ELSE()
- SET_TARGET_PROPERTIES ( openvdb_static
- PROPERTIES OUTPUT_NAME openvdb
- )
--ENDIF()
-+ENDIF ()
-+ENDIF ()
-
-+IF ( OPENVDB_SHARED )
- SET_TARGET_PROPERTIES(
- openvdb_shared
- PROPERTIES
-@@ -214,13 +233,15 @@ SET_TARGET_PROPERTIES(
- SOVERSION ${OPENVDB_MAJOR_VERSION_NUMBER}.${OPENVDB_MINOR_VERSION_NUMBER}
- VERSION ${OPENVDB_MAJOR_VERSION_NUMBER}.${OPENVDB_MINOR_VERSION_NUMBER}.${OPENVDB_PATCH_VERSION_NUMBER}
- )
-+ENDIF ()
-
- SET ( VDB_PRINT_SOURCE_FILES cmd/openvdb_print/main.cc )
- SET_SOURCE_FILES_PROPERTIES ( ${VDB_PRINT_SOURCE_FILES}
- PROPERTIES
-- COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG}"
-+ COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} $<$<CXX_COMPILER_ID:MSVC>:/bigobj>"
- )
-
-+IF ( OPENVDB_BUILD_TOOLS )
- ADD_EXECUTABLE ( vdb_print
- ${VDB_PRINT_SOURCE_FILES}
- )
-@@ -229,14 +250,19 @@ TARGET_LINK_LIBRARIES ( vdb_print
- openvdb_shared
- ${CMAKE_THREAD_LIBS_INIT}
- ${BLOSC_blosc_LIBRARY}
-+ )
-+
-+IF (NOT WIN32)
-+TARGET_LINK_LIBRARIES ( vdb_print
- m
- stdc++
- )
-+ENDIF ()
-
- SET ( VDB_RENDER_SOURCE_FILES cmd/openvdb_render/main.cc )
- SET_SOURCE_FILES_PROPERTIES ( ${VDB_RENDER_SOURCE_FILES}
- PROPERTIES
-- COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG}"
-+ COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} $<$<CXX_COMPILER_ID:MSVC>:/bigobj>"
- )
- ADD_EXECUTABLE ( vdb_render
- ${VDB_RENDER_SOURCE_FILES}
-@@ -249,9 +275,14 @@ TARGET_LINK_LIBRARIES ( vdb_render
- ${Openexr_ILMIMF_LIBRARY}
- ${Ilmbase_ILMTHREAD_LIBRARY}
- ${Ilmbase_IEX_LIBRARY}
-+ )
-+
-+IF (NOT WIN32)
-+TARGET_LINK_LIBRARIES ( vdb_render
- m
- stdc++
- )
-+ENDIF ()
-
- SET ( VDB_VIEW_SOURCE_FILES
- cmd/openvdb_view/main.cc
-@@ -263,29 +294,38 @@ SET ( VDB_VIEW_SOURCE_FILES
- )
- SET_SOURCE_FILES_PROPERTIES ( ${VDB_VIEW_SOURCE_FILES}
- PROPERTIES
-- COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} -DGL_GLEXT_PROTOTYPES=1"
-+ COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} -DGL_GLEXT_PROTOTYPES=1 $<$<CXX_COMPILER_ID:MSVC>:/bigobj>"
-+ )
-+
-+ADD_EXECUTABLE ( vdb_view
-+ ${VDB_VIEW_SOURCE_FILES}
- )
--IF (NOT WIN32)
-- ADD_EXECUTABLE ( vdb_view
-- ${VDB_VIEW_SOURCE_FILES}
-- )
-
-- target_include_directories ( vdb_view SYSTEM PRIVATE ${Boost_INCLUDE_DIR} )
-+target_include_directories ( vdb_view SYSTEM PRIVATE ${Boost_INCLUDE_DIR} )
-
-- TARGET_LINK_LIBRARIES ( vdb_view
-- openvdb_shared
-- ${Boost_THREAD_LIBRARY}
-- ${OPENGL_gl_LIBRARY}
-- ${OPENGL_glu_LIBRARY}
-- ${COCOA_LIBRARY}
-- ${IOKIT_LIBRARY}
-- ${COREVIDEO_LIBRARY}
-- ${GLFW_LINK_LIBRARY}
-- ${GLFW_DEPENDENT_LIBRARIES}
-- ${GLEW_GLEW_LIBRARY}
-- m
-- stdc++
-- )
-+TARGET_LINK_LIBRARIES ( vdb_view
-+ openvdb_shared
-+ ${Boost_LIBRARIES}
-+ ${OPENGL_gl_LIBRARY}
-+ ${OPENGL_glu_LIBRARY}
-+ ${GLFW_LINK_LIBRARY}
-+ ${GLFW_DEPENDENT_LIBRARIES}
-+ ${GLEW_GLEW_LIBRARY}
-+ )
-+IF (APPLE)
-+TARGET_LINK_LIBRARIES ( vdb_view
-+ ${COCOA_LIBRARY}
-+ ${IOKIT_LIBRARY}
-+ ${COREVIDEO_LIBRARY}
-+)
-+ENDIF ()
-+IF (NOT WIN32)
-+TARGET_LINK_LIBRARIES ( vdb_view
-+ m
-+ stdc++
-+ )
-+
-+ENDIF ()
- ENDIF ()
-
- SET ( UNITTEST_SOURCE_FILES
-@@ -398,7 +438,7 @@ IF ( OPENVDB_BUILD_UNITTESTS )
-
- ADD_TEST ( vdb_unit_test vdb_test )
-
--ENDIF (OPENVDB_BUILD_UNITTESTS)
-+ENDIF ()
-
- # Doxygen docmentation
- IF (OPENVDB_BUILD_DOCS)
-@@ -419,26 +459,29 @@ IF (OPENVDB_BUILD_DOCS)
- ENDIF ()
-
- # Installation
--IF ( NOT WIN32 )
-+IF ( OPENVDB_BUILD_TOOLS )
- INSTALL ( TARGETS
- vdb_view
- DESTINATION
- bin
- )
-+ INSTALL ( TARGETS
-+ vdb_print
-+ vdb_render
-+ DESTINATION
-+ bin
-+ )
- ENDIF ()
--INSTALL ( TARGETS
-- vdb_print
-- vdb_render
-- DESTINATION
-- bin
-- )
-
--INSTALL ( TARGETS
-- openvdb_static
-- DESTINATION
-- lib
-- )
-+IF ( OPENVDB_STATIC)
-+ INSTALL ( TARGETS
-+ openvdb_static
-+ DESTINATION
-+ lib
-+ )
-+ENDIF ()
-
-+IF ( OPENVDB_SHARED )
- IF (WIN32)
- INSTALL ( TARGETS
- openvdb_shared
-@@ -452,6 +495,7 @@ ELSE()
- lib
- )
- ENDIF ()
-+ENDIF ()
-
- INSTALL ( DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION include
- FILES_MATCHING PATTERN "*.h"
diff --git a/ports/openvdb/0003-fix-cmake.patch b/ports/openvdb/0003-fix-cmake.patch
new file mode 100644
index 000000000..b70a4756f
--- /dev/null
+++ b/ports/openvdb/0003-fix-cmake.patch
@@ -0,0 +1,90 @@
+diff --git a/openvdb/CMakeLists.txt b/openvdb/CMakeLists.txt
+index b84d3e6..524a59e 100644
+--- a/openvdb/CMakeLists.txt
++++ b/openvdb/CMakeLists.txt
+@@ -71,13 +71,13 @@ message(STATUS "----------------------------------------------------")
+ # Collect and configure lib dependencies
+
+ if(USE_EXR)
+- find_package(IlmBase ${MINIMUM_ILMBASE_VERSION} REQUIRED)
+- find_package(OpenEXR ${MINIMUM_OPENEXR_VERSION} REQUIRED)
++ find_package(IlmBase REQUIRED)
++ find_package(OpenEXR REQUIRED)
+ else()
+- find_package(IlmBase ${MINIMUM_ILMBASE_VERSION} REQUIRED COMPONENTS Half)
++ find_package(IlmBase REQUIRED COMPONENTS Half)
+ endif()
+
+-find_package(TBB ${MINIMUM_TBB_VERSION} REQUIRED COMPONENTS tbb)
++find_package(TBB CONFIG REQUIRED)
+ find_package(ZLIB ${MINIMUM_ZLIB_VERSION} REQUIRED)
+
+ if(USE_LOG4CPLUS)
+@@ -115,15 +115,15 @@ endif()
+ set(OPENVDB_CORE_DEPENDENT_LIBS
+ Boost::iostreams
+ Boost::system
+- IlmBase::Half
++ ${Ilmbase_HALF_LIBRARY}
+ )
+
+ if(USE_EXR)
+ list(APPEND OPENVDB_CORE_DEPENDENT_LIBS
+- IlmBase::IlmThread
+- IlmBase::Iex
+- IlmBase::Imath
+- OpenEXR::IlmImf
++ ${Ilmbase_ILMTHREAD_LIBRARY}
++ ${Ilmbase_IEX_LIBRARY}
++ ${Ilmbase_IMATH_LIBRARY}
++ ${OPENEXR_ILMIMF_LIBRARY}
+ )
+ endif()
+
+@@ -135,7 +135,7 @@ endif()
+ # See FindOpenVDB.cmake
+
+ if(USE_BLOSC)
+- list(APPEND OPENVDB_CORE_DEPENDENT_LIBS Blosc::blosc)
++ list(APPEND OPENVDB_CORE_DEPENDENT_LIBS ${BLOSC_blosc_LIBRARY})
+ endif()
+
+ list(APPEND OPENVDB_CORE_DEPENDENT_LIBS
+@@ -160,7 +160,11 @@ endif()
+
+ # @todo Should be target definitions
+ if(WIN32)
+- add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL)
++ add_definitions(-D_WIN32 -DNOMINMAX)
++ add_definitions(-D__TBB_NO_IMPLICIT_LINKAGE -D__TBBMALLOC_NO_IMPLICIT_LINKAGE)
++ if (OPENVDB_SHARED)
++ add_definitions(-DOPENEXR_DLL -DOPENVDB_DLL)
++ endif()
+ endif()
+
+ ##### Core library configuration
+@@ -374,6 +378,7 @@ list(APPEND OPENVDB_CORE_PRIVATE_DEFINES "-DOPENVDB_PRIVATE")
+ if(USE_BLOSC)
+ list(APPEND OPENVDB_CORE_PRIVATE_DEFINES "-DOPENVDB_USE_BLOSC")
+ endif()
++list(APPEND OPENVDB_CORE_PRIVATE_DEFINES "$<$<CXX_COMPILER_ID:MSVC>:/bigobj>")
+
+ # Public defines
+
+diff --git a/openvdb/cmd/CMakeLists.txt b/openvdb/cmd/CMakeLists.txt
+index 124bc3c..d58b3fe 100644
+--- a/openvdb/cmd/CMakeLists.txt
++++ b/openvdb/cmd/CMakeLists.txt
+@@ -155,9 +155,9 @@ if(OPENVDB_BUILD_VDB_RENDER)
+ # headers
+
+ target_link_libraries(vdb_render
+- OpenEXR::IlmImf
+- IlmBase::IlmThread
+- IlmBase::Iex
++ ${OPENEXR_ILMIMF_LIBRARY}
++ ${Ilmbase_ILMTHREAD_LIBRARY}
++ ${Ilmbase_IEX_LIBRARY}
+ ${OPENVDB_BINARIES_DEPENDENT_LIBS}
+ )
+
diff --git a/ports/openvdb/0004-add-necessary-head.patch b/ports/openvdb/0004-add-necessary-head.patch
deleted file mode 100644
index bbe7246b1..000000000
--- a/ports/openvdb/0004-add-necessary-head.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-diff --git a/openvdb/viewer/ClipBox.h b/openvdb/viewer/ClipBox.h
-index ad62d39..c68c5be 100644
---- a/openvdb/viewer/ClipBox.h
-+++ b/openvdb/viewer/ClipBox.h
-@@ -37,6 +37,7 @@
- #include <OpenGL/gl.h>
- #include <OpenGL/glu.h>
- #else
-+#include <windows.h>
- #include <GL/gl.h>
- #include <GL/glu.h>
- #endif
-diff --git a/openvdb/viewer/Font.h b/openvdb/viewer/Font.h
-index da62993..b341165 100644
---- a/openvdb/viewer/Font.h
-+++ b/openvdb/viewer/Font.h
-@@ -37,6 +37,7 @@
- #include <OpenGL/gl.h>
- #include <OpenGL/glu.h>
- #else
-+#include <windows.h>
- #include <GL/gl.h>
- #include <GL/glu.h>
- #endif
-diff --git a/openvdb/viewer/RenderModules.h b/openvdb/viewer/RenderModules.h
-index b9fa5b1..fd38a50 100644
---- a/openvdb/viewer/RenderModules.h
-+++ b/openvdb/viewer/RenderModules.h
-@@ -31,6 +31,7 @@
- #ifndef OPENVDB_VIEWER_RENDERMODULES_HAS_BEEN_INCLUDED
- #define OPENVDB_VIEWER_RENDERMODULES_HAS_BEEN_INCLUDED
-
-+#include <GL/glew.h>
- #include <openvdb/openvdb.h>
- #include <openvdb/tools/VolumeToMesh.h>
- #include <openvdb/tools/MeshToVolume.h>
-@@ -41,6 +42,7 @@
- #include <vector>
-
- #if defined(__APPLE__) || defined(MACOSX)
-+#include <windows.h>
- #include <OpenGL/gl.h>
- #include <OpenGL/glu.h>
- #else
-diff --git a/openvdb/viewer/Viewer.cc b/openvdb/viewer/Viewer.cc
-index 31bb7a4..88bd308 100644
---- a/openvdb/viewer/Viewer.cc
-+++ b/openvdb/viewer/Viewer.cc
-@@ -31,9 +31,9 @@
- #include "Viewer.h"
-
- #include "Camera.h"
-+#include "RenderModules.h"
- #include "ClipBox.h"
- #include "Font.h"
--#include "RenderModules.h"
- #include <openvdb/util/Formats.h> // for formattedInt()
- #include <openvdb/util/logging.h>
- #include <openvdb/points/PointDataGrid.h>
diff --git a/ports/openvdb/CONTROL b/ports/openvdb/CONTROL
index 77a06c78c..5a49417d1 100644
--- a/ports/openvdb/CONTROL
+++ b/ports/openvdb/CONTROL
@@ -1,6 +1,6 @@
Source: openvdb
-Version: 6.0.0-2
-Build-Depends: boost-ptr-container, openexr, tbb, blosc, boost-iostreams, boost-system, boost-thread, boost-date-time, boost-any, boost-uuid, boost-interprocess
+Version: 6.1.0
+Build-Depends: boost-ptr-container, openexr, tbb, blosc, boost-iostreams, boost-system, boost-thread, boost-date-time, boost-any, boost-uuid, boost-interprocess, ilmbase
Homepage: https://github.com/dreamworksanimation/openvdb
Description: Sparse volume data structure and tools
diff --git a/ports/openvdb/blosc.patch b/ports/openvdb/blosc.patch
deleted file mode 100644
index 2b9782a1b..000000000
--- a/ports/openvdb/blosc.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/cmake/FindBlosc.cmake b/cmake/FindBlosc.cmake
-index 5ac3780c..61ba83bc 100644
---- a/cmake/FindBlosc.cmake
-+++ b/cmake/FindBlosc.cmake
-@@ -45,8 +45,8 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS ( Blosc
-
- IF ( BLOSC_FOUND )
-
-- SET ( BLOSC_LIBRARYDIR ${BLOSC_LOCATION}/lib
-- CACHE STRING "Blosc library directories")
-+# SET ( BLOSC_LIBRARYDIR ${BLOSC_LOCATION}/lib
-+# CACHE STRING "Blosc library directories")
-
- SET ( _blosc_library_name "blosc" )
-
-@@ -61,8 +61,6 @@ IF ( BLOSC_FOUND )
- ENDIF()
-
- FIND_LIBRARY ( BLOSC_blosc_LIBRARY ${_blosc_library_name}
-- PATHS ${BLOSC_LIBRARYDIR}
-- NO_DEFAULT_PATH
- NO_SYSTEM_ENVIRONMENT_PATH
- )
-
diff --git a/ports/openvdb/portfile.cmake b/ports/openvdb/portfile.cmake
index d1c4cb8ce..1d837fcf9 100644
--- a/ports/openvdb/portfile.cmake
+++ b/ports/openvdb/portfile.cmake
@@ -3,15 +3,13 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO AcademySoftwareFoundation/openvdb
- REF v6.0.0
- SHA512 6b9e267fff46647b39e1e6faa12059442196c1858df1fda1515cfc375e25bc3033e2828c80e63a652509cfba386376e022cebf81ec85aaccece421b0c721529b
+ REF v6.1.0
+ SHA512 99ebbb50104ef87792ab73989e8714c4f283fb02d04c3033126b5f0d927ff7bbdebe35c8214ded841692941d8ed8ae551fd6d1bf90ad7dc07bedc3b38b9c4b38
HEAD_REF master
PATCHES
- 0001-fix-cmake-modules.patch
- 0002-add-custom-options.patch
- 0003-build-only-necessary-targets.patch
- 0004-add-necessary-head.patch
- blosc.patch
+ 0001-remove-pkgconfig.patch
+ 0002-fix-cmake-modules.patch
+ 0003-fix-cmake.patch
)
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
@@ -38,29 +36,36 @@ vcpkg_configure_cmake(
-DOPENVDB_BUILD_PYTHON_MODULE=OFF
-DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF
-DUSE_GLFW3=ON
- -DOPENVDB_STATIC=${OPENVDB_STATIC}
- -DOPENVDB_SHARED=${OPENVDB_SHARED}
- -DOPENVDB_BUILD_TOOLS=${OPENVDB_BUILD_TOOLS}
+ -DOPENVDB_CORE_STATIC=${OPENVDB_STATIC}
+ -DOPENVDB_CORE_SHARED=${OPENVDB_SHARED}
+ -DOPENVDB_BUILD_VDB_PRINT=${OPENVDB_BUILD_TOOLS}
+ -DOPENVDB_BUILD_VDB_VIEW=${OPENVDB_BUILD_TOOLS}
+ #-DOPENVDB_BUILD_VDB_RENDER=${OPENVDB_BUILD_TOOLS} # Enable vdb_render when https://github.com/openexr/openexr/issues/302 is fixed
+ -DOPENVDB_BUILD_VDB_LOD=${OPENVDB_BUILD_TOOLS}
)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/OpenVDB TARGET_PATH share/openvdb)
+
vcpkg_copy_pdbs()
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
if (OPENVDB_BUILD_TOOLS)
# copy tools to tools/openvdb directory
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT}/)
file(RENAME ${CURRENT_PACKAGES_DIR}/bin/vdb_print.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/vdb_print.exe)
- file(RENAME ${CURRENT_PACKAGES_DIR}/bin/vdb_render.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/vdb_render.exe)
- file(RENAME ${CURRENT_PACKAGES_DIR}/bin/vdb_view.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/vdb_view.exe)
+ #file(RENAME ${CURRENT_PACKAGES_DIR}/bin/vdb_render.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/vdb_render.exe)
+ #file(RENAME ${CURRENT_PACKAGES_DIR}/bin/vdb_view.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/vdb_view.exe) # vdb_view does not support win32 currently.
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/vdb_lod.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/vdb_lod.exe)
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
# remove debug versions of tools
- file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vdb_render.exe)
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vdb_print.exe)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vdb_view.exe)
+ #file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vdb_render.exe)
+ #file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vdb_view.exe) # vdb_view does not support win32 currently.
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vdb_lod.exe)
endif()
# Handle copyright
diff --git a/ports/range-v3-vs2015/CONTROL b/ports/range-v3-vs2015/CONTROL
index 62c9f63ce..34ce349e1 100644
--- a/ports/range-v3-vs2015/CONTROL
+++ b/ports/range-v3-vs2015/CONTROL
@@ -1,3 +1,4 @@
Source: range-v3-vs2015
Version: 20151130-vcpkg5
+Homepage: https://github.com/Microsoft/Range-V3-VS2015
Description: Range library for C++11/14/17.
diff --git a/ports/range-v3/CONTROL b/ports/range-v3/CONTROL
index fb534ac29..1e1274d4b 100644
--- a/ports/range-v3/CONTROL
+++ b/ports/range-v3/CONTROL
@@ -1,4 +1,4 @@
Source: range-v3
Version: 0.5.0
-Homepage: https://github.com/Microsoft/Range-V3-VS2015
+Homepage: https://github.com/ericniebler/range-v3
Description: Range library for C++11/14/17.
diff --git a/ports/restclient-cpp/CONTROL b/ports/restclient-cpp/CONTROL
index 975f5df7a..2aac1bbaf 100644
--- a/ports/restclient-cpp/CONTROL
+++ b/ports/restclient-cpp/CONTROL
@@ -1,4 +1,4 @@
Source: restclient-cpp
-Version: 0.5.1-1
+Version: 0.5.1-2
Build-Depends: curl
Description: Binn is a binary data serialization format designed to be compact, fast and easy to use.
diff --git a/ports/restclient-cpp/portfile.cmake b/ports/restclient-cpp/portfile.cmake
index 116e60920..6ad2fa7cf 100644
--- a/ports/restclient-cpp/portfile.cmake
+++ b/ports/restclient-cpp/portfile.cmake
@@ -13,6 +13,9 @@ vcpkg_from_github(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
+ OPTIONS
+ -DCMAKE_DISABLE_FIND_PACKAGE_GTest=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_jsoncpp=TRUE
)
vcpkg_install_cmake()
diff --git a/ports/shaderc/0001-Add-a-virtual-destructor.patch b/ports/shaderc/0001-Add-a-virtual-destructor.patch
deleted file mode 100644
index 0fa695036..000000000
--- a/ports/shaderc/0001-Add-a-virtual-destructor.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 563bc6e87a43c38b5495469307922c768edbd191 Mon Sep 17 00:00:00 2001
-From: neil <neil@codeplay.com>
-Date: Thu, 1 Feb 2018 06:49:44 +0000
-Subject: [PATCH] Add a virtual destructor, otherwise Clang 6.0complains about
- delete being called on an abstract class.
-
----
- libshaderc/include/shaderc/shaderc.hpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/libshaderc/include/shaderc/shaderc.hpp b/libshaderc/include/shaderc/shaderc.hpp
-index 1c557431..335f0df9 100644
---- a/libshaderc/include/shaderc/shaderc.hpp
-+++ b/libshaderc/include/shaderc/shaderc.hpp
-@@ -180,6 +180,8 @@ class CompileOptions {
-
- // Handles shaderc_include_result_release_fn callbacks.
- virtual void ReleaseInclude(shaderc_include_result* data) = 0;
-+
-+ virtual ~IncluderInterface() = default;
- };
-
- // Sets the includer instance for libshaderc to call during compilation, as
diff --git a/ports/shaderc/0001-Do-not-generate-build-version.inc.patch b/ports/shaderc/0001-Do-not-generate-build-version.inc.patch
deleted file mode 100644
index 41cc81220..000000000
--- a/ports/shaderc/0001-Do-not-generate-build-version.inc.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From e8e12e856cbc41f9bdcc83bc87eb5013df199ee1 Mon Sep 17 00:00:00 2001
-From: vlj <vljn.ovi@gmail.com>
-Date: Fri, 2 Dec 2016 16:36:25 +0100
-Subject: [PATCH] Do not generate build-version.inc
-
----
- CMakeLists.txt | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a4c2fac..5544a2d 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -53,8 +53,8 @@ add_subdirectory(libshaderc)
- add_subdirectory(glslc)
- add_subdirectory(examples)
-
--add_custom_target(build-version
-- ${PYTHON_EXE}
-- ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_build_version.py
-- ${shaderc_SOURCE_DIR} ${spirv-tools_SOURCE_DIR} ${glslang_SOURCE_DIR}
-- COMMENT "Update build-version.inc in the Shaderc build directory (if necessary).")
-+#add_custom_target(build-version
-+# ${PYTHON_EXE}
-+# ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_build_version.py
-+# ${shaderc_SOURCE_DIR} ${spirv-tools_SOURCE_DIR} ${glslang_SOURCE_DIR}
-+# COMMENT "Update build-version.inc in the Shaderc build directory (if necessary).")
---
-2.10.2.windows.1
-
diff --git a/ports/shaderc/CONTROL b/ports/shaderc/CONTROL
index 36f82852a..044fdd410 100644
--- a/ports/shaderc/CONTROL
+++ b/ports/shaderc/CONTROL
@@ -1,5 +1,5 @@
Source: shaderc
-Version: 12fb656ab20ea9aa06e7084a74e5ff832b7ce2da-2
+Version: 2019-06-26
Homepage: https://github.com/google/shaderc
Description: A collection of tools, libraries and tests for shader compilation.
-Build-Depends: glslang, spirv-tools
+Build-Depends: glslang, spirv-tools \ No newline at end of file
diff --git a/ports/shaderc/build-version.inc b/ports/shaderc/build-version.inc
index 853e89916..00c140577 100644
--- a/ports/shaderc/build-version.inc
+++ b/ports/shaderc/build-version.inc
@@ -1,3 +1,5 @@
-"shaderc v2016.2-dev unknown hash, 2016-12-02\n"
-"spirv-tools v2016.6-dev unknown hash, 2016-12-02\n"
-"glslang unknown hash, 2016-12-02\n"
+"shaderc v2019.0-dev unknown hash, 2019-05-08\n"
+"spirv-tools v2019.3-dev unknown hash, 2019-04-03\n"
+"glslang unknown hash, 2019-03-05\n"
+
+
diff --git a/ports/shaderc/disable-update-version.patch b/ports/shaderc/disable-update-version.patch
new file mode 100644
index 000000000..5ee016bcb
--- /dev/null
+++ b/ports/shaderc/disable-update-version.patch
@@ -0,0 +1,41 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a4e779b..dc5f1a9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -81,12 +81,6 @@ add_subdirectory(libshaderc)
+ add_subdirectory(glslc)
+ add_subdirectory(examples)
+
+-add_custom_target(build-version
+- ${PYTHON_EXECUTABLE}
+- ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_build_version.py
+- ${shaderc_SOURCE_DIR} ${spirv-tools_SOURCE_DIR} ${glslang_SOURCE_DIR}
+- COMMENT "Update build-version.inc in the Shaderc build directory (if necessary).")
+-
+ function(define_pkg_config_file NAME LIBS)
+ add_custom_target(${NAME}-pkg-config ALL
+ COMMAND ${CMAKE_COMMAND}
+diff --git a/glslc/CMakeLists.txt b/glslc/CMakeLists.txt
+index acf6fb0..d0df7db 100644
+--- a/glslc/CMakeLists.txt
++++ b/glslc/CMakeLists.txt
+@@ -26,7 +26,6 @@ shaderc_default_compile_options(glslc_exe)
+ target_include_directories(glslc_exe PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/.. ${spirv-tools_SOURCE_DIR}/include)
+ set_target_properties(glslc_exe PROPERTIES OUTPUT_NAME glslc)
+ target_link_libraries(glslc_exe PRIVATE glslc shaderc_util shaderc)
+-add_dependencies(glslc_exe build-version)
+
+ shaderc_add_tests(
+ TEST_PREFIX glslc
+diff --git a/spvc/CMakeLists.txt b/spvc/CMakeLists.txt
+index f465972..76f8c2e 100644
+--- a/spvc/CMakeLists.txt
++++ b/spvc/CMakeLists.txt
+@@ -3,7 +3,6 @@ shaderc_default_compile_options(spvc_exe)
+ target_include_directories(spvc_exe PRIVATE ${shaderc_SOURCE_DIR}/libshaderc/include ${spirv-tools_SOURCE_DIR}/include)
+ set_target_properties(spvc_exe PROPERTIES OUTPUT_NAME spvc)
+ target_link_libraries(spvc_exe PRIVATE shaderc_spvc shaderc_util)
+-add_dependencies(spvc_exe build-version)
+
+ shaderc_add_asciidoc(spvc_doc_README README)
+
diff --git a/ports/shaderc/fix-install.patch b/ports/shaderc/fix-install.patch
new file mode 100644
index 000000000..1857ed8fe
--- /dev/null
+++ b/ports/shaderc/fix-install.patch
@@ -0,0 +1,26 @@
+diff --git a/libshaderc/CMakeLists.txt b/libshaderc/CMakeLists.txt
+index 9d07136..0ffa06f 100644
+--- a/libshaderc/CMakeLists.txt
++++ b/libshaderc/CMakeLists.txt
+@@ -84,7 +84,7 @@ if(SHADERC_ENABLE_INSTALL)
+ # around this problem by manually substitution.
+ string(REPLACE "$(Configuration)" "\${CMAKE_INSTALL_CONFIG_NAME}"
+ install_location "${generated_location}")
+- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${install_location} DESTINATION ${CMAKE_INSTALL_LIBDIR})
++ install(FILES ${install_location} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ else()
+ install(FILES ${generated_location} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif()
+diff --git a/libshaderc_spvc/CMakeLists.txt b/libshaderc_spvc/CMakeLists.txt
+index fae235e..b503e70 100644
+--- a/libshaderc_spvc/CMakeLists.txt
++++ b/libshaderc_spvc/CMakeLists.txt
+@@ -84,7 +84,7 @@ if(SHADERC_ENABLE_INSTALL)
+ # around this problem by manually substitution.
+ string(REPLACE "$(Configuration)" "\${CMAKE_INSTALL_CONFIG_NAME}"
+ install_location "${generated_location}")
+- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${install_location} DESTINATION ${CMAKE_INSTALL_LIBDIR})
++ install(FILES ${install_location} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ else()
+ install(FILES ${generated_location} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif()
diff --git a/ports/shaderc/portfile.cmake b/ports/shaderc/portfile.cmake
index 5f1f70572..fbdc1e4dd 100644
--- a/ports/shaderc/portfile.cmake
+++ b/ports/shaderc/portfile.cmake
@@ -3,17 +3,19 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO google/shaderc
- REF 12fb656ab20ea9aa06e7084a74e5ff832b7ce2da
- SHA512 6fb45a0b01e6709c44a11658648b9271fe06bd94023dcc5042c47b5f2a04889c2efb0ab4c166f18728594ac9b9aa9f8b354af46d88eb7f7c39c7246f52f5a933
+ REF 05c766a1f4615ee37d37d09271aaabca30ffd293
+ SHA512 329697e8e23d619313440d57ef740a94c49d13533e1b8734fc8ff72fd5092c2addabb306f64cb69160fa5fee373a05ba39a5ee6d92d95e5e2e9c7ec96a51aadc
HEAD_REF master
- PATCHES
- 0001-Do-not-generate-build-version.inc.patch
- 0001-Add-a-virtual-destructor.patch
+ PATCHES
+ "disable-update-version.patch"
+ "fix-install.patch"
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/third_party/glslang)
+
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_spirv.txt DESTINATION ${SOURCE_PATH}/third_party/spirv-tools)
file(RENAME ${SOURCE_PATH}/third_party/spirv-tools/CMakeLists_spirv.txt ${SOURCE_PATH}/third_party/spirv-tools/CMakeLists.txt)
+
file(COPY ${CMAKE_CURRENT_LIST_DIR}/build-version.inc DESTINATION ${SOURCE_PATH}/glslc/src)
#Note: glslang and spir tools doesn't export symbol and need to be build as static lib for cmake to work
@@ -30,7 +32,7 @@ vcpkg_add_to_path(PREPEND "${PYTHON3_EXE_PATH}")
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS -DSHADERC_SKIP_TESTS=true ${OPTIONS} -Dglslang_SOURCE_DIR=${CURRENT_INSTALLED_DIR}/include
+ OPTIONS -DSHADERC_SKIP_TESTS=true ${OPTIONS} -Dglslang_SOURCE_DIR=${CURRENT_INSTALLED_DIR}/include -Dspirv-tools_SOURCE_DIR=${CURRENT_INSTALLED_DIR}/include
OPTIONS_DEBUG -DSUFFIX_D=true
OPTIONS_RELEASE -DSUFFIX_D=false
)
diff --git a/ports/spirv-headers/CONTROL b/ports/spirv-headers/CONTROL
index f1b0f7908..be9ef4392 100644
--- a/ports/spirv-headers/CONTROL
+++ b/ports/spirv-headers/CONTROL
@@ -1,3 +1,3 @@
Source: spirv-headers
-Version: 2019-03-05
+Version: 2019-05-05
Description: Machine-readable files for the SPIR-V Registry
diff --git a/ports/spirv-headers/portfile.cmake b/ports/spirv-headers/portfile.cmake
index f2c55280d..e5191639d 100644
--- a/ports/spirv-headers/portfile.cmake
+++ b/ports/spirv-headers/portfile.cmake
@@ -4,8 +4,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO KhronosGroup/SPIRV-Headers
- REF 03a081524afabdde274d885880c2fef213e46a59
- SHA512 27f0a4b5efbe2931c0ff5d50e5fb5bd78fe0a735ad48a08db72c8914f2de05f5d5c507134e0a090bb5a7d88e2f8c1a0bdbf51a0bc4b9fe3bf372da7000ca0b98
+ REF c4f8f65792d4bf2657ca751904c511bbcf2ac77b
+ SHA512 750af53a70f6f890657735ab0e2db5ae3dd8d612480efc2247753993752f687e22a0bdd65296c5751daf284604fe3dc9ee0a94feae88761a0e64adc64e6d17a4
HEAD_REF master
)
diff --git a/ports/spirv-tools/CMake-targets.patch b/ports/spirv-tools/CMake-targets.patch
deleted file mode 100644
index 6b754e16b..000000000
--- a/ports/spirv-tools/CMake-targets.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
-index 2d7d7ca..bf77be7 100644
---- a/source/CMakeLists.txt
-+++ b/source/CMakeLists.txt
-@@ -327,31 +327,41 @@ set_source_files_properties(
- add_library(${SPIRV_TOOLS} ${SPIRV_SOURCES})
- spvtools_default_compile_options(${SPIRV_TOOLS})
- target_include_directories(${SPIRV_TOOLS}
-- PUBLIC ${spirv-tools_SOURCE_DIR}/include
-+ PUBLIC "$<BUILD_INTERFACE:${spirv-tools_SOURCE_DIR}/include>"
- PRIVATE ${spirv-tools_BINARY_DIR}
- PRIVATE ${SPIRV_HEADER_INCLUDE_DIR}
- )
- set_property(TARGET ${SPIRV_TOOLS} PROPERTY FOLDER "SPIRV-Tools libraries")
- spvtools_check_symbol_exports(${SPIRV_TOOLS})
-
--add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES})
--spvtools_default_compile_options(${SPIRV_TOOLS}-shared)
--target_include_directories(${SPIRV_TOOLS}-shared
-- PUBLIC ${spirv-tools_SOURCE_DIR}/include
-- PRIVATE ${spirv-tools_BINARY_DIR}
-- PRIVATE ${SPIRV_HEADER_INCLUDE_DIR}
-- )
--set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES CXX_VISIBILITY_PRESET hidden)
--set_property(TARGET ${SPIRV_TOOLS}-shared PROPERTY FOLDER "SPIRV-Tools libraries")
--spvtools_check_symbol_exports(${SPIRV_TOOLS}-shared)
--target_compile_definitions(${SPIRV_TOOLS}-shared
-- PRIVATE SPIRV_TOOLS_IMPLEMENTATION
-- PUBLIC SPIRV_TOOLS_SHAREDLIB
--)
-+# add_library(${SPIRV_TOOLS}-shared SHARED ${SPIRV_SOURCES})
-+# spvtools_default_compile_options(${SPIRV_TOOLS}-shared)
-+# target_include_directories(${SPIRV_TOOLS}-shared
-+# PUBLIC ${spirv-tools_SOURCE_DIR}/include
-+# PRIVATE ${spirv-tools_BINARY_DIR}
-+# PRIVATE ${SPIRV_HEADER_INCLUDE_DIR}
-+# )
-+# set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES CXX_VISIBILITY_PRESET hidden)
-+# set_property(TARGET ${SPIRV_TOOLS}-shared PROPERTY FOLDER "SPIRV-Tools libraries")
-+# spvtools_check_symbol_exports(${SPIRV_TOOLS}-shared)
-+# target_compile_definitions(${SPIRV_TOOLS}-shared
-+# PRIVATE SPIRV_TOOLS_IMPLEMENTATION
-+# PUBLIC SPIRV_TOOLS_SHAREDLIB
-+# )
-
- if(ENABLE_SPIRV_TOOLS_INSTALL)
-- install(TARGETS ${SPIRV_TOOLS} ${SPIRV_TOOLS}-shared
-+ install(TARGETS ${SPIRV_TOOLS} EXPORT spirv-tools-config
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+ export(
-+ TARGETS ${SPIRV_TOOLS}
-+ NAMESPACE spirv-tools::
-+ FILE "${CMAKE_CURRENT_BINARY_DIR}/spirv-tools-config.cmake"
-+ )
-+ install(
-+ EXPORT spirv-tools-config
-+ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/spirv-tools"
-+ NAMESPACE spirv-tools::
-+ )
- endif(ENABLE_SPIRV_TOOLS_INSTALL)
-diff --git a/source/link/CMakeLists.txt b/source/link/CMakeLists.txt
-index 8ca4df3..ac0aa62 100644
---- a/source/link/CMakeLists.txt
-+++ b/source/link/CMakeLists.txt
-@@ -17,7 +17,7 @@ add_library(SPIRV-Tools-link
-
- spvtools_default_compile_options(SPIRV-Tools-link)
- target_include_directories(SPIRV-Tools-link
-- PUBLIC ${spirv-tools_SOURCE_DIR}/include
-+ PUBLIC "$<BUILD_INTERFACE:${spirv-tools_SOURCE_DIR}/include>"
- PUBLIC ${SPIRV_HEADER_INCLUDE_DIR}
- PRIVATE ${spirv-tools_BINARY_DIR}
- )
-@@ -29,8 +29,13 @@ set_property(TARGET SPIRV-Tools-link PROPERTY FOLDER "SPIRV-Tools libraries")
- spvtools_check_symbol_exports(SPIRV-Tools-link)
-
- if(ENABLE_SPIRV_TOOLS_INSTALL)
-- install(TARGETS SPIRV-Tools-link
-+ install(TARGETS SPIRV-Tools-link EXPORT spirv-tools-config
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+ export(
-+ TARGETS ${SPIRV_TOOLS}-link
-+ NAMESPACE spirv-tools::
-+ FILE "${CMAKE_CURRENT_BINARY_DIR}/spirv-tools-link-config.cmake"
-+ )
- endif(ENABLE_SPIRV_TOOLS_INSTALL)
-diff --git a/source/opt/CMakeLists.txt b/source/opt/CMakeLists.txt
-index 854c950..fc91539 100644
---- a/source/opt/CMakeLists.txt
-+++ b/source/opt/CMakeLists.txt
-@@ -159,7 +159,7 @@ add_library(SPIRV-Tools-opt
-
- spvtools_default_compile_options(SPIRV-Tools-opt)
- target_include_directories(SPIRV-Tools-opt
-- PUBLIC ${spirv-tools_SOURCE_DIR}/include
-+ PUBLIC "$<BUILD_INTERFACE:${spirv-tools_SOURCE_DIR}/include>"
- PUBLIC ${SPIRV_HEADER_INCLUDE_DIR}
- PRIVATE ${spirv-tools_BINARY_DIR}
- )
-@@ -171,9 +171,14 @@ set_property(TARGET SPIRV-Tools-opt PROPERTY FOLDER "SPIRV-Tools libraries")
- spvtools_check_symbol_exports(SPIRV-Tools-opt)
-
- if(ENABLE_SPIRV_TOOLS_INSTALL)
-- install(TARGETS SPIRV-Tools-opt
-+ install(TARGETS SPIRV-Tools-opt EXPORT spirv-tools-config
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+ export(
-+ TARGETS ${SPIRV_TOOLS}-opt
-+ NAMESPACE spirv-tools::
-+ FILE "${CMAKE_CURRENT_BINARY_DIR}/spirv-tools-opt-config.cmake"
-+ )
- endif(ENABLE_SPIRV_TOOLS_INSTALL)
-
diff --git a/ports/spirv-tools/CONTROL b/ports/spirv-tools/CONTROL
index b5f0c536a..b873c5493 100644
--- a/ports/spirv-tools/CONTROL
+++ b/ports/spirv-tools/CONTROL
@@ -1,5 +1,5 @@
Source: spirv-tools
-Version: 2018.1-2
+Version: 2019.3-dev
Homepage: https://github.com/KhronosGroup/SPIRV-Tools
Description: API and commands for processing SPIR-V modules
-Build-Depends: spirv-headers
+Build-Depends: spirv-headers \ No newline at end of file
diff --git a/ports/spirv-tools/comment-distutils.patch b/ports/spirv-tools/comment-distutils.patch
new file mode 100644
index 000000000..2426f82ba
--- /dev/null
+++ b/ports/spirv-tools/comment-distutils.patch
@@ -0,0 +1,22 @@
+diff --git a/utils/generate_registry_tables.py b/utils/generate_registry_tables.py
+index 8b1c3572..6ab28fe6 100644
+--- a/utils/generate_registry_tables.py
++++ b/utils/generate_registry_tables.py
+@@ -16,7 +16,7 @@
+
+ from __future__ import print_function
+
+-import distutils.dir_util
++#import distutils.dir_util
+ import os.path
+ import xml.etree.ElementTree
+
+@@ -64,7 +64,7 @@ def main():
+ with open(args.xml) as xml_in:
+ registry = xml.etree.ElementTree.fromstring(xml_in.read())
+
+- distutils.dir_util.mkpath(os.path.dirname(args.generator_output))
++ #distutils.dir_util.mkpath(os.path.dirname(args.generator_output))
+ print(generate_vendor_table(registry), file=open(args.generator_output, 'w'))
+
+
diff --git a/ports/spirv-tools/portfile.cmake b/ports/spirv-tools/portfile.cmake
index 3011aa396..0cc6f79dd 100644
--- a/ports/spirv-tools/portfile.cmake
+++ b/ports/spirv-tools/portfile.cmake
@@ -5,11 +5,10 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO KhronosGroup/SPIRV-Tools
- REF v2018.1
- SHA512 0637c413dafd931e8222f9bf70a024f8b64116f0300c7732b86bcaff321188a0e746f79c1385ae23a7692e83194586b57692960d5be607fb2d7960731b6cd63f
- HEAD_REF master
+ REF d0a1f5a05a2b0f8315e5b3f17b8e34c730861b31
+ SHA512 7179751b0216368b4a4bf8c9b0c1c1e3b17d6aa4788b4aeaa7fbb2b6d9d50b34cf209082f3531a2e0994b5fc02416373666d4d12cee282cec2c3d02c13a640a8
PATCHES
- CMake-targets.patch
+ comment-distutils.patch
)
vcpkg_find_acquire_program(PYTHON3)
diff --git a/ports/thrift/CONTROL b/ports/thrift/CONTROL
index c3f2f83c9..2ee3ef03e 100644
--- a/ports/thrift/CONTROL
+++ b/ports/thrift/CONTROL
@@ -1,5 +1,5 @@
Source: thrift
-Version: 2019-05-07-1
+Version: 2019-05-07-2
Build-Depends: zlib, libevent, openssl, boost-range, boost-smart-ptr, boost-date-time, boost-locale, boost-scope-exit
Homepage: https://github.com/apache/thrift
Description: Apache Thrift is a software project spanning a variety of programming languages and use cases. Our goal is to make reliable, performant communication and data serialization across languages as efficient and seamless as possible.
diff --git a/ports/thrift/portfile.cmake b/ports/thrift/portfile.cmake
index c19b38c31..c7fd84003 100644
--- a/ports/thrift/portfile.cmake
+++ b/ports/thrift/portfile.cmake
@@ -16,6 +16,7 @@ vcpkg_from_github(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
+ NO_CHARSET_FLAG
OPTIONS
-DWITH_STDTHREADS=ON
-DBUILD_TESTING=off
diff --git a/ports/tidy-html5/CONTROL b/ports/tidy-html5/CONTROL
index 0f608ea2d..af8276ee5 100644
--- a/ports/tidy-html5/CONTROL
+++ b/ports/tidy-html5/CONTROL
@@ -1,4 +1,4 @@
Source: tidy-html5
-Version: 5.6.0
+Version: 5.6.0-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 7cb7ca65f..e59904923 100644
--- a/ports/tidy-html5/portfile.cmake
+++ b/ports/tidy-html5/portfile.cmake
@@ -15,6 +15,7 @@ vcpkg_from_github(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
+ NO_CHARSET_FLAG
OPTIONS
-DBUILD_SHARED_LIB=OFF
-DTIDY_CONSOLE_SHARED=OFF
diff --git a/ports/wpilib/CONTROL b/ports/wpilib/CONTROL
index 0d93d9bb5..a7542e8b8 100644
--- a/ports/wpilib/CONTROL
+++ b/ports/wpilib/CONTROL
@@ -1,5 +1,5 @@
Source: wpilib
-Version: 2019.4.1
+Version: 2019.5.1
Build-Depends: libuv
Description: WPILib is the software library package for the FIRST Robotics Competition. The core install includes wpiutil, a common utilies library, and ntcore, the base NetworkTables library.
diff --git a/ports/wpilib/portfile.cmake b/ports/wpilib/portfile.cmake
index 4bb8b80a5..314f0111b 100644
--- a/ports/wpilib/portfile.cmake
+++ b/ports/wpilib/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO wpilibsuite/allwpilib
- REF 221011494d202770ad275c88cd7380119505e65d
- SHA512 97ec277b2e7d0a287e1d4eef4f60b5f5b5a70a861f984d0bfb17610ca8f43c723e1ba3cc1b428d243db62b50307edcf509e496f15cccdda78f962bf91aa4568a
+ REF 3dfb01d45b971ffdfeea50ce58653eff592807d9
+ SHA512 188923cbe166f5812a24a06d8af56bda289aaed38231d45583d423e51e9cd23bb257ade02fdc26e8d0fdd6cdcb793282c04ac80ebad76f29fdbd0a3c1a10f05c
)
set(WITHOUT_JAVA ON)
diff --git a/ports/xsimd/CONTROL b/ports/xsimd/CONTROL
index 05241ac5e..6147d355c 100644
--- a/ports/xsimd/CONTROL
+++ b/ports/xsimd/CONTROL
@@ -1,6 +1,7 @@
Source: xsimd
-Version: 7.2.3
+Version: 7.2.3-1
Description: Modern, portable C++ wrappers for SIMD intrinsics
+Homepage: https://github.com/QuantStack/xsimd
Feature: xcomplex
Description: xtl complex support
diff --git a/ports/xsimd/portfile.cmake b/ports/xsimd/portfile.cmake
index a25bcb532..338afff45 100644
--- a/ports/xsimd/portfile.cmake
+++ b/ports/xsimd/portfile.cmake
@@ -5,16 +5,12 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO QuantStack/xsimd
- REF 7.2.3
+ REF 7.2.3
SHA512 fb34eeb585f6820499734f10f03a4efd0d9a9b4be56f9bee21f3564eb92be56e7abe7682e476fafaff4733939f33f91cb4ab9209140b19f7b740538853433532
HEAD_REF master
)
-if("xcomplex" IN_LIST FEATURES)
- set(ENABLE_XTL_COMPLEX ON)
-else()
- set(ENABLE_XTL_COMPLEX OFF)
-endif()
+vcpkg_check_features(xcomplex ENABLE_XTL_COMPLEX)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
diff --git a/ports/xtensor/CONTROL b/ports/xtensor/CONTROL
index 3e5e33013..138d9e1fe 100644
--- a/ports/xtensor/CONTROL
+++ b/ports/xtensor/CONTROL
@@ -1,6 +1,7 @@
Source: xtensor
-Version: 0.20.7
+Version: 0.20.7-1
Description: C++ tensors with broadcasting and lazy computing
+Homepage: https://quantstack.net/xtensor
Build-Depends: nlohmann-json, xtl
Feature: xsimd
diff --git a/ports/xtensor/portfile.cmake b/ports/xtensor/portfile.cmake
index 51e24c6e9..9c8b3b63e 100644
--- a/ports/xtensor/portfile.cmake
+++ b/ports/xtensor/portfile.cmake
@@ -5,29 +5,20 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO QuantStack/xtensor
- REF 0.20.7
+ REF 0.20.7
SHA512 de09900d0934f9b10453f16e43d1c3af28503f365224f9c6789b88a0cf00db820ca31e12099df1a2e3aafa73d7d83223df82f01b7611c1addb48367f936e5122
HEAD_REF master
)
-if("xsimd" IN_LIST FEATURES)
- set(XTENSOR_USE_XSIMD ON)
-else()
- set(XTENSOR_USE_XSIMD OFF)
-endif()
-
-if("tbb" IN_LIST FEATURES)
- set(XTENSOR_USE_TBB ON)
-else()
- set(XTENSOR_USE_TBB OFF)
-endif()
+vcpkg_check_features(
+ xsimd XTENSOR_USE_XSIMD
+ tbb XTENSOR_USE_TBB
+)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
- -DXTENSOR_USE_XSIMD=${XTENSOR_USE_XSIMD}
- -DXTENSOR_USE_TBB=${XTENSOR_USE_TBB}
-DXTENSOR_ENABLE_ASSERT=OFF
-DXTENSOR_CHECK_DIMENSION=OFF
-DBUILD_TESTS=OFF
@@ -36,6 +27,7 @@ vcpkg_configure_cmake(
-DDOWNLOAD_GBENCHMARK=OFF
-DDEFAULT_COLUMN_MAJOR=OFF
-DDISABLE_VS2017=OFF
+ ${FEATURE_OPTIONS}
)
vcpkg_install_cmake()
diff --git a/ports/zziplib/CONTROL b/ports/zziplib/CONTROL
index f756d19ae..cd879d0a3 100644
--- a/ports/zziplib/CONTROL
+++ b/ports/zziplib/CONTROL
@@ -1,5 +1,5 @@
Source: zziplib
-Version: 0.13.69-3
+Version: 0.13.69-4
Build-Depends: zlib
Homepage: https://github.com/gdraheim/zziplib
Description: library providing read access on ZIP-archives
diff --git a/ports/zziplib/portfile.cmake b/ports/zziplib/portfile.cmake
index 534744714..7ca3ca2c4 100644
--- a/ports/zziplib/portfile.cmake
+++ b/ports/zziplib/portfile.cmake
@@ -22,6 +22,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
+ DISABLE_PARALLEL_CONFIGURE
OPTIONS -DZLIB_INCLUDE_DIRS=${CURRENT_INSTALLED_DIR}/include
)
diff --git a/scripts/cmake/vcpkg_check_features.cmake b/scripts/cmake/vcpkg_check_features.cmake
new file mode 100644
index 000000000..115b1501f
--- /dev/null
+++ b/scripts/cmake/vcpkg_check_features.cmake
@@ -0,0 +1,112 @@
+## # vcpkg_check_features
+##
+## Check if one or more features are a part of the package installation.
+##
+## ## Usage
+## ```cmake
+## vcpkg_check_features(
+## <feature1> <output_variable1>
+## [<feature2> <output_variable2>]
+## ...
+## )
+## ```
+##
+## `vcpkg_check_features` accepts a list of (feature, output_variable) pairs. If a feature is specified, the corresponding output variable will be set as `ON`, or `OFF` otherwise. The syntax is similar to the `PROPERTIES` argument of `set_target_properties`.
+##
+## `vcpkg_check_features` will create a variable `FEATURE_OPTIONS` in the parent scope, which you can pass as a part of `OPTIONS` argument when calling functions like `vcpkg_config_cmake`:
+## ```cmake
+## vcpkg_config_cmake(
+## SOURCE_PATH ${SOURCE_PATH}
+## PREFER_NINJA
+## OPTIONS
+## -DBUILD_TESTING=ON
+## ${FEATURE_OPTIONS}
+## )
+## ```
+##
+## ## Notes
+## ```cmake
+## vcpkg_check_features(<feature> <output_variable>)
+## ```
+## can be used as a replacement of:
+## ```cmake
+## if(<feature> IN_LIST FEATURES)
+## set(<output_variable> ON)
+## else()
+## set(<output_variable> OFF)
+## endif()
+## ```
+##
+## However, if you have a feature that was checked like this before:
+## ```cmake
+## if(<feature> IN_LIST FEATURES)
+## set(<output_variable> OFF)
+## else()
+## set(<output_variable> ON)
+## endif()
+## ```
+## then you should not use `vcpkg_check_features` instead. [```oniguruma```](https://github.com/microsoft/vcpkg/blob/master/ports/oniguruma/portfile.cmake), for example, has a feature named `non-posix` which is checked with:
+## ```cmake
+## if("non-posix" IN_LIST FEATURES)
+## set(ENABLE_POSIX_API OFF)
+## else()
+## set(ENABLE_POSIX_API ON)
+## endif()
+## ```
+## and by replacing these code with:
+## ```cmake
+## vcpkg_check_features(non-posix ENABLE_POSIX_API)
+## ```
+## is totally wrong.
+##
+## `vcpkg_check_features` is supposed to be called only once. Otherwise, the `FEATURE_OPTIONS` variable set by a previous call will be overwritten.
+##
+## ## Examples
+##
+## * [czmq](https://github.com/microsoft/vcpkg/blob/master/ports/czmq/portfile.cmake)
+## * [xsimd](https://github.com/microsoft/vcpkg/blob/master/ports/xsimd/portfile.cmake)
+## * [xtensor](https://github.com/microsoft/vcpkg/blob/master/ports/xtensor/portfile.cmake)
+function(vcpkg_check_features)
+ cmake_parse_arguments(_vcf "" "" "" ${ARGN})
+
+ list(LENGTH ARGN _vcf_ARGC)
+ math(EXPR _vcf_INCORRECT_ARGN "${_vcf_ARGC} % 2")
+
+ if(_vcf_INCORRECT_ARGN)
+ message(FATAL_ERROR "Called with incorrect number of arguments.")
+ endif()
+
+ set(_vcf_IS_FEATURE_ARG ON)
+ set(_vcf_FEATURE_OPTIONS)
+
+ # Process (feature, output_var) pairs
+ foreach(_vcf_ARG ${ARGN})
+ if(_vcf_IS_FEATURE_ARG)
+ set(_vcf_FEATURE ${_vcf_ARG})
+
+ if(NOT ${_vcf_FEATURE} IN_LIST ALL_FEATURES)
+ message(FATAL_ERROR "Unknown feature: ${_vcf_FEATURE}")
+ endif()
+
+ set(_vcf_IS_FEATURE_ARG OFF)
+ else()
+ set(_vcf_FEATURE_VAR ${_vcf_ARG})
+
+ if(${_vcf_FEATURE} IN_LIST FEATURES)
+ set(${_vcf_FEATURE_VAR} ON PARENT_SCOPE)
+ else()
+ set(${_vcf_FEATURE_VAR} OFF PARENT_SCOPE)
+ endif()
+
+ list(APPEND _vcf_FEATURE_OPTIONS "-D${_vcf_FEATURE_VAR}=${${_vcf_FEATURE_VAR}}")
+
+ set(_vcf_IS_FEATURE_ARG ON)
+ endif()
+ endforeach()
+
+ if(DEFINED FEATURE_OPTIONS)
+ message(WARNING "FEATURE_OPTIONS is already defined and will be overwritten.")
+ endif()
+
+ set(FEATURE_OPTIONS ${_vcf_FEATURE_OPTIONS} PARENT_SCOPE)
+endfunction()
diff --git a/scripts/cmake/vcpkg_common_definitions.cmake b/scripts/cmake/vcpkg_common_definitions.cmake
new file mode 100644
index 000000000..8dc05de3c
--- /dev/null
+++ b/scripts/cmake/vcpkg_common_definitions.cmake
@@ -0,0 +1,14 @@
+if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(VCPKG_TARGET_IS_WINDOWS 1)
+ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(VCPKG_TARGET_IS_UWP 1)
+ endif()
+elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ set(VCPKG_TARGET_IS_OSX 1)
+elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ set(VCPKG_TARGET_IS_LINUX 1)
+elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Android")
+ set(VCPKG_TARGET_IS_ANDROID 1)
+elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ set(VCPKG_TARGET_IS_FREEBSD 1)
+endif()
diff --git a/scripts/cmake/vcpkg_common_functions.cmake b/scripts/cmake/vcpkg_common_functions.cmake
index b99f8bee8..515b2bafe 100644
--- a/scripts/cmake/vcpkg_common_functions.cmake
+++ b/scripts/cmake/vcpkg_common_functions.cmake
@@ -1,5 +1,6 @@
include(vcpkg_acquire_msys)
include(vcpkg_add_to_path)
+include(vcpkg_check_features)
include(vcpkg_check_linkage)
include(vcpkg_clean_msbuild)
include(vcpkg_download_distfile)
@@ -31,3 +32,4 @@ include(vcpkg_get_windows_sdk)
include(vcpkg_replace_string)
include(vcpkg_from_git)
include(vcpkg_test_cmake)
+include(vcpkg_prettify_command)
diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake
index c17bd68c8..ab93c3075 100644
--- a/scripts/cmake/vcpkg_configure_cmake.cmake
+++ b/scripts/cmake/vcpkg_configure_cmake.cmake
@@ -51,7 +51,7 @@
## * [poco](https://github.com/Microsoft/vcpkg/blob/master/ports/poco/portfile.cmake)
## * [opencv](https://github.com/Microsoft/vcpkg/blob/master/ports/opencv/portfile.cmake)
function(vcpkg_configure_cmake)
- cmake_parse_arguments(_csc "PREFER_NINJA;DISABLE_PARALLEL_CONFIGURE" "SOURCE_PATH;GENERATOR" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" ${ARGN})
+ cmake_parse_arguments(_csc "PREFER_NINJA;DISABLE_PARALLEL_CONFIGURE;NO_CHARSET_FLAG" "SOURCE_PATH;GENERATOR" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" ${ARGN})
if(NOT VCPKG_PLATFORM_TOOLSET)
message(FATAL_ERROR "Vcpkg has been updated with VS2017 support, however you need to rebuild vcpkg.exe by re-running bootstrap-vcpkg.bat\n")
@@ -174,6 +174,11 @@ function(vcpkg_configure_cmake)
else()
message(FATAL_ERROR "You must set both the VCPKG_CXX_FLAGS and VCPKG_C_FLAGS")
endif()
+
+ set(VCPKG_SET_CHARSET_FLAG ON)
+ if(_csc_NO_CHARSET_FLAG)
+ set(VCPKG_SET_CHARSET_FLAG OFF)
+ endif()
if(VCPKG_CHAINLOAD_TOOLCHAIN_FILE)
list(APPEND _csc_OPTIONS "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}")
@@ -189,8 +194,10 @@ function(vcpkg_configure_cmake)
list(APPEND _csc_OPTIONS "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_ROOT_DIR}/scripts/toolchains/freebsd.cmake")
endif()
+
list(APPEND _csc_OPTIONS
"-DVCPKG_TARGET_TRIPLET=${TARGET_TRIPLET}"
+ "-DVCPKG_SET_CHARSET_FLAG=${VCPKG_SET_CHARSET_FLAG}"
"-DVCPKG_PLATFORM_TOOLSET=${VCPKG_PLATFORM_TOOLSET}"
"-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON"
"-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON"
diff --git a/scripts/cmake/vcpkg_execute_build_process.cmake b/scripts/cmake/vcpkg_execute_build_process.cmake
index d440ba2f6..9da6cec9f 100644
--- a/scripts/cmake/vcpkg_execute_build_process.cmake
+++ b/scripts/cmake/vcpkg_execute_build_process.cmake
@@ -31,6 +31,7 @@
## ## Examples
##
## * [icu](https://github.com/Microsoft/vcpkg/blob/master/ports/icu/portfile.cmake)
+include(vcpkg_prettify_command)
function(vcpkg_execute_build_process)
cmake_parse_arguments(_ebp "" "WORKING_DIRECTORY;LOGNAME" "COMMAND;NO_PARALLEL_COMMAND" ${ARGN})
@@ -131,8 +132,9 @@ function(vcpkg_execute_build_process)
file(TO_NATIVE_PATH "${LOG}" NATIVE_LOG)
list(APPEND STRINGIFIED_LOGS " ${NATIVE_LOG}\n")
endforeach()
+ vcpkg_prettify_command(_ebp_COMMAND _ebp_COMMAND_PRETTY)
message(FATAL_ERROR
- " Command failed: ${_ebp_COMMAND}\n"
+ " Command failed: ${_ebp_COMMAND_PRETTY}\n"
" Working Directory: ${_ebp_WORKING_DIRECTORY}\n"
" See logs for more information:\n"
${STRINGIFIED_LOGS})
diff --git a/scripts/cmake/vcpkg_execute_required_process.cmake b/scripts/cmake/vcpkg_execute_required_process.cmake
index 2e9ba7058..e65d1970a 100644
--- a/scripts/cmake/vcpkg_execute_required_process.cmake
+++ b/scripts/cmake/vcpkg_execute_required_process.cmake
@@ -28,6 +28,7 @@
## * [openssl](https://github.com/Microsoft/vcpkg/blob/master/ports/openssl/portfile.cmake)
## * [boost](https://github.com/Microsoft/vcpkg/blob/master/ports/boost/portfile.cmake)
## * [qt5](https://github.com/Microsoft/vcpkg/blob/master/ports/qt5/portfile.cmake)
+include(vcpkg_prettify_command)
function(vcpkg_execute_required_process)
cmake_parse_arguments(vcpkg_execute_required_process "" "WORKING_DIRECTORY;LOGNAME" "COMMAND" ${ARGN})
set(LOG_OUT "${CURRENT_BUILDTREES_DIR}/${vcpkg_execute_required_process_LOGNAME}-out.log")
@@ -53,8 +54,9 @@ function(vcpkg_execute_required_process)
file(TO_NATIVE_PATH "${LOG}" NATIVE_LOG)
list(APPEND STRINGIFIED_LOGS " ${NATIVE_LOG}\n")
endforeach()
+ vcpkg_prettify_command(vcpkg_execute_required_process_COMMAND vcpkg_execute_required_process_COMMAND_PRETTY)
message(FATAL_ERROR
- " Command failed: ${vcpkg_execute_required_process_COMMAND}\n"
+ " Command failed: ${vcpkg_execute_required_process_COMMAND_PRETTY}\n"
" Working Directory: ${vcpkg_execute_required_process_WORKING_DIRECTORY}\n"
" Error code: ${error_code}\n"
" See logs for more information:\n"
diff --git a/scripts/cmake/vcpkg_execute_required_process_repeat.cmake b/scripts/cmake/vcpkg_execute_required_process_repeat.cmake
index 0c77c3913..ca11e8ea4 100644
--- a/scripts/cmake/vcpkg_execute_required_process_repeat.cmake
+++ b/scripts/cmake/vcpkg_execute_required_process_repeat.cmake
@@ -1,4 +1,5 @@
# Usage: vcpkg_execute_required_process_repeat(COUNT <num> COMMAND <cmd> [<args>...] WORKING_DIRECTORY </path/to/dir> LOGNAME <my_log_name>)
+include(vcpkg_prettify_command)
function(vcpkg_execute_required_process_repeat)
cmake_parse_arguments(vcpkg_execute_required_process_repeat "" "COUNT;WORKING_DIRECTORY;LOGNAME" "COMMAND" ${ARGN})
#debug_message("vcpkg_execute_required_process_repeat(${vcpkg_execute_required_process_repeat_COMMAND})")
@@ -18,8 +19,9 @@ function(vcpkg_execute_required_process_repeat)
endif()
endforeach(loop_count)
if (NOT SUCCESSFUL_EXECUTION)
+ vcpkg_prettify_command(vcpkg_execute_required_process_repeat_COMMAND vcpkg_execute_required_process_repeat_COMMAND_PRETTY)
message(FATAL_ERROR
- " Command failed: ${vcpkg_execute_required_process_repeat_COMMAND}\n"
+ " Command failed: ${vcpkg_execute_required_process_repeat_COMMAND_PRETTY}\n"
" Working Directory: ${vcpkg_execute_required_process_repeat_WORKING_DIRECTORY}\n"
" See logs for more information:\n"
" ${NATIVE_BUILDTREES_DIR}\\${vcpkg_execute_required_process_repeat_LOGNAME}-out.log\n"
diff --git a/scripts/cmake/vcpkg_find_acquire_program.cmake b/scripts/cmake/vcpkg_find_acquire_program.cmake
index 024840223..0399fc50c 100644
--- a/scripts/cmake/vcpkg_find_acquire_program.cmake
+++ b/scripts/cmake/vcpkg_find_acquire_program.cmake
@@ -54,9 +54,9 @@ function(vcpkg_find_acquire_program VAR)
set(PATHS ${DOWNLOADS}/tools/perl/perl/bin)
set(BREW_PACKAGE_NAME "perl")
set(APT_PACKAGE_NAME "perl")
- set(URL "http://strawberryperl.com/download/5.24.1.1/strawberry-perl-5.24.1.1-32bit-portable.zip")
- set(ARCHIVE "strawberry-perl-5.24.1.1-32bit-portable.zip")
- set(HASH a6e685ea24376f50db5f06c5b46075f1d3be25168fa1f27fa9b02e2ac017826cee62a2b43562f9b6c989337a231ba914416c110075457764de2d11f99d5e0f26)
+ set(URL "http://strawberryperl.com/download/5.30.0.1/strawberry-perl-5.30.0.1-32bit.zip")
+ set(ARCHIVE "strawberry-perl-5.30.0.1-32bit.zip")
+ set(HASH d353d3dc743ebdc6d1e9f6f2b7a6db3c387c1ce6c890bae8adc8ae5deae8404f4c5e3cf249d1e151e7256d4c5ee9cd317e6c41f3b6f244340de18a24b938e0c4)
elseif(VAR MATCHES "NASM")
set(PROGNAME nasm)
set(PATHS ${DOWNLOADS}/tools/nasm/nasm-2.14)
@@ -92,9 +92,9 @@ function(vcpkg_find_acquire_program VAR)
set(PROGNAME python)
set(SUBDIR "python2")
set(PATHS ${DOWNLOADS}/tools/python/${SUBDIR})
- set(URL "https://www.python.org/ftp/python/2.7.14/python-2.7.14.msi")
+ set(URL "https://www.python.org/ftp/python/2.7.16/python-2.7.16.msi")
set(ARCHIVE "python2.msi")
- set(HASH 8c3ad6e527742d99ba96dcfd1098861b14e7207b80d51a54e9b410ab2f36e44e05561ea1527d8e92b3e10808311536260bd9e82db0da3b513fb1be18e108510e)
+ set(HASH c34a6fa2438682104dccb53650a2bdb79eac7996deff075201a0f71bb835d60d3ed866652a1931f15a29510fe8e1009ac04e423b285122d2e5747fefc4c10254)
else()
set(PROGNAME python2)
set(BREW_PACKAGE_NAME "python2")
@@ -102,10 +102,10 @@ function(vcpkg_find_acquire_program VAR)
endif()
elseif(VAR MATCHES "RUBY")
set(PROGNAME "ruby")
- set(PATHS ${DOWNLOADS}/tools/ruby/rubyinstaller-2.4.1-1-x86/bin)
- set(URL https://github.com/oneclick/rubyinstaller2/releases/download/2.4.1-1/rubyinstaller-2.4.1-1-x86.7z)
- set(ARCHIVE rubyinstaller-2.4.1-1-x86.7z)
- set(HASH b51112e9b58cfcbe8cec0607e8a16fff6a943d9b4e31b2a7fbf5df5f83f050bf0a4812d3dd6000ff21a3d5fd219cd0a309c58ac1c1db950a9b0072405e4b70f5)
+ set(PATHS ${DOWNLOADS}/tools/ruby/rubyinstaller-2.6.3-1-x86/bin)
+ set(URL https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.3-1/rubyinstaller-2.6.3-1-x86.7z)
+ set(ARCHIVE rubyinstaller-2.6.3-1-x86.7z)
+ set(HASH 4322317dd02ce13527bf09d6e6a7787ca3814ea04337107d28af1ac360bd272504b32e20ed3ea84eb5b21dae7b23bfe5eb0e529b6b0aa21a1a2bbb0a542d7aec)
elseif(VAR MATCHES "JOM")
set(PROGNAME jom)
set(SUBDIR "jom-1.1.3")
@@ -116,12 +116,12 @@ function(vcpkg_find_acquire_program VAR)
elseif(VAR MATCHES "7Z")
set(PROGNAME 7z)
set(PATHS "${PROGRAM_FILES_PLATFORM_BITNESS}/7-Zip" "${PROGRAM_FILES_32_BIT}/7-Zip" "${DOWNLOADS}/tools/7z/Files/7-Zip")
- set(URL "http://7-zip.org/a/7z1604.msi")
- set(ARCHIVE "7z1604.msi")
- set(HASH 556f95f7566fe23704d136239e4cf5e2a26f939ab43b44145c91b70d031a088d553e5c21301f1242a2295dcde3143b356211f0108c68e65eef8572407618326d)
+ set(URL "https://7-zip.org/a/7z1900.msi")
+ set(ARCHIVE "7z1900.msi")
+ set(HASH f73b04e2d9f29d4393fde572dcf3c3f0f6fa27e747e5df292294ab7536ae24c239bf917689d71eb10cc49f6b9a4ace26d7c122ee887d93cc935f268c404e9067)
elseif(VAR MATCHES "NINJA")
set(PROGNAME ninja)
- set(SUBDIR "ninja-1.8.2")
+ set(SUBDIR "ninja-1.9.0")
if(CMAKE_HOST_WIN32)
set(PATHS "${DOWNLOADS}/tools/ninja/${SUBDIR}")
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
@@ -133,9 +133,9 @@ function(vcpkg_find_acquire_program VAR)
endif()
set(BREW_PACKAGE_NAME "ninja")
set(APT_PACKAGE_NAME "ninja-build")
- set(URL "https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-win.zip")
- set(ARCHIVE "ninja-1.8.2-win.zip")
- set(HASH 9b9ce248240665fcd6404b989f3b3c27ed9682838225e6dc9b67b551774f251e4ff8a207504f941e7c811e7a8be1945e7bcb94472a335ef15e23a0200a32e6d5)
+ set(URL "https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip")
+ set(ARCHIVE "ninja-1.9.0-win.zip")
+ set(HASH 1c050e602ec63d4dcf44d9ab3d2d02ac731b4b2977bc0b420a21e85604487f58ec8d3045941d4153ef06ab00c175ca7cf9d57b8e20a757528290e135639962ac)
elseif(VAR MATCHES "NUGET")
set(PROGNAME nuget)
set(PATHS "${DOWNLOADS}/tools/nuget")
@@ -229,10 +229,10 @@ function(vcpkg_find_acquire_program VAR)
# Download Tools
elseif(VAR MATCHES "ARIA2")
set(PROGNAME aria2c)
- set(PATHS ${DOWNLOADS}/tools/aria2c/aria2-1.33.1-win-32bit-build1)
- set(URL "https://github.com/aria2/aria2/releases/download/release-1.33.1/aria2-1.33.1-win-32bit-build1.zip")
- set(ARCHIVE "aria2-1.33.1-win-32bit-build1.zip")
- set(HASH 2456176ba3d506a07cf0cc4f61f080e1ff8cb4106426d66f354c5bb67a9a8720b5ddb26904275e61b1f623c932355f7dcde4cd17556cc895f11293c23c3a9bf3)
+ set(PATHS ${DOWNLOADS}/tools/aria2c/aria2-1.34.0-win-32bit-build1)
+ set(URL "https://github.com/aria2/aria2/releases/download/release-1.34.0/aria2-1.34.0-win-32bit-build1.zip")
+ set(ARCHIVE "aria2-1.34.0-win-32bit-build1.zip")
+ set(HASH 2a5480d503ac6e8203040c7e516a3395028520da05d0ebf3a2d56d5d24ba5d17630e8f318dd4e3cc2094cc4668b90108fb58e8b986b1ffebd429995058063c27)
else()
message(FATAL "unknown tool ${VAR} -- unable to acquire.")
endif()
diff --git a/scripts/cmake/vcpkg_prettify_command.cmake b/scripts/cmake/vcpkg_prettify_command.cmake
new file mode 100644
index 000000000..9d9a2b798
--- /dev/null
+++ b/scripts/cmake/vcpkg_prettify_command.cmake
@@ -0,0 +1,26 @@
+## # vcpkg_prettify_command
+##
+## Turns list of command arguments into a formatted string.
+##
+## ## Usage
+## ```cmake
+## vcpkg_prettify_command()
+## ```
+##
+## ## Examples
+##
+## * `scripts/cmake/vcpkg_execute_build_process.cmake`
+## * `scripts/cmake/vcpkg_execute_required_process.cmake`
+## * `scripts/cmake/vcpkg_execute_required_process_repeat.cmake`
+
+macro(vcpkg_prettify_command INPUT_VAR OUTPUT_VAR)
+ set(${OUTPUT_VAR} "")
+ foreach(v ${${INPUT_VAR}})
+ if(${v} MATCHES "( )")
+ list(APPEND ${OUTPUT_VAR} \"${v}\")
+ else()
+ list(APPEND ${OUTPUT_VAR} ${v})
+ endif()
+ endforeach()
+ list(JOIN ${OUTPUT_VAR} " " ${OUTPUT_VAR})
+endmacro()
diff --git a/scripts/ports.cmake b/scripts/ports.cmake
index 7a5f2749f..860d08893 100644
--- a/scripts/ports.cmake
+++ b/scripts/ports.cmake
@@ -32,7 +32,7 @@ endif()
if(CMD MATCHES "^BUILD$")
- set(CMAKE_TRIPLET_FILE ${VCPKG_ROOT_DIR}/triplets/${TARGET_TRIPLET}.cmake)
+ set(CMAKE_TRIPLET_FILE ${TARGET_TRIPLET_FILE})
if(NOT EXISTS ${CMAKE_TRIPLET_FILE})
message(FATAL_ERROR "Unsupported target triplet. Triplet file does not exist: ${CMAKE_TRIPLET_FILE}")
endif()
@@ -68,6 +68,8 @@ if(CMD MATCHES "^BUILD$")
include(${CMAKE_TRIPLET_FILE})
set(TRIPLET_SYSTEM_ARCH ${VCPKG_TARGET_ARCHITECTURE})
+ include(${CMAKE_CURRENT_LIST_DIR}/cmake/vcpkg_common_definitions.cmake)
+ include(${CMAKE_CURRENT_LIST_DIR}/cmake/vcpkg_common_functions.cmake)
include(${CURRENT_PORT_DIR}/portfile.cmake)
set(BUILD_INFO_FILE_PATH ${CURRENT_PACKAGES_DIR}/BUILD_INFO)
diff --git a/scripts/toolchains/windows.cmake b/scripts/toolchains/windows.cmake
index 12b1ae7f9..d5d7f8db5 100644
--- a/scripts/toolchains/windows.cmake
+++ b/scripts/toolchains/windows.cmake
@@ -9,7 +9,8 @@ if(NOT _CMAKE_IN_TRY_COMPILE)
message(FATAL_ERROR "Invalid setting for VCPKG_CRT_LINKAGE: \"${VCPKG_CRT_LINKAGE}\". It must be \"static\" or \"dynamic\"")
endif()
- if(VCPKG_PLATFORM_TOOLSET MATCHES "v120")
+ set(CHARSET_FLAG "/utf-8")
+ if (NOT VCPKG_SET_CHARSET_FLAG OR VCPKG_PLATFORM_TOOLSET MATCHES "v120")
# VS 2013 does not support /utf-8
set(CHARSET_FLAG)
endif()
@@ -17,7 +18,7 @@ if(NOT _CMAKE_IN_TRY_COMPILE)
set(CMAKE_CXX_FLAGS " /DWIN32 /D_WINDOWS /W3 ${CHARSET_FLAG} /GR /EHsc /MP ${VCPKG_CXX_FLAGS}" CACHE STRING "")
set(CMAKE_C_FLAGS " /DWIN32 /D_WINDOWS /W3 ${CHARSET_FLAG} /MP ${VCPKG_C_FLAGS}" CACHE STRING "")
set(CMAKE_RC_FLAGS "-c65001 /DWIN32" CACHE STRING "")
-
+
unset(CHARSET_FLAG)
set(CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG ${VCPKG_CRT_LINK_FLAG_PREFIX}d /Z7 /Ob0 /Od /RTC1 ${VCPKG_CXX_FLAGS_DEBUG}" CACHE STRING "")
@@ -27,5 +28,4 @@ if(NOT _CMAKE_IN_TRY_COMPILE)
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${VCPKG_LINKER_FLAGS}" CACHE STRING "")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${VCPKG_LINKER_FLAGS}" CACHE STRING "")
-
endif()
diff --git a/toolsrc/include/vcpkg/vcpkgcmdarguments.h b/toolsrc/include/vcpkg/vcpkgcmdarguments.h
index cad013eb8..ff13ae6bf 100644
--- a/toolsrc/include/vcpkg/vcpkgcmdarguments.h
+++ b/toolsrc/include/vcpkg/vcpkgcmdarguments.h
@@ -88,6 +88,7 @@ namespace vcpkg
std::unique_ptr<std::string> vcpkg_root_dir;
std::unique_ptr<std::string> triplet;
std::unique_ptr<std::vector<std::string>> overlay_ports;
+ std::unique_ptr<std::vector<std::string>> overlay_triplets;
Optional<bool> debug = nullopt;
Optional<bool> sendmetrics = nullopt;
Optional<bool> printmetrics = nullopt;
diff --git a/toolsrc/include/vcpkg/vcpkgpaths.h b/toolsrc/include/vcpkg/vcpkgpaths.h
index b09169b02..a30e0c653 100644
--- a/toolsrc/include/vcpkg/vcpkgpaths.h
+++ b/toolsrc/include/vcpkg/vcpkgpaths.h
@@ -47,14 +47,17 @@ namespace vcpkg
struct VcpkgPaths
{
- static Expected<VcpkgPaths> create(const fs::path& vcpkg_root_dir, const std::string& default_vs_path);
+ static Expected<VcpkgPaths> create(const fs::path& vcpkg_root_dir,
+ const std::string& default_vs_path,
+ const std::vector<std::string>* triplets_dirs);
fs::path package_dir(const PackageSpec& spec) const;
fs::path build_info_file_path(const PackageSpec& spec) const;
fs::path listfile_path(const BinaryParagraph& pgh) const;
-
- const std::vector<std::string>& get_available_triplets() const;
+
bool is_valid_triplet(const Triplet& t) const;
+ const std::vector<std::string>& get_available_triplets() const;
+ const fs::path get_triplet_file_path(const Triplet& triplet) const;
fs::path root;
fs::path packages;
@@ -93,7 +96,9 @@ namespace vcpkg
Lazy<std::vector<Toolset>> toolsets_vs2013;
fs::path default_vs_path;
+ std::vector<fs::path> triplets_dirs;
mutable std::unique_ptr<ToolCache> m_tool_cache;
+ mutable vcpkg::Cache<Triplet, fs::path> m_triplets_cache;
};
}
diff --git a/toolsrc/src/vcpkg.cpp b/toolsrc/src/vcpkg.cpp
index e02bdc71f..5da97b136 100644
--- a/toolsrc/src/vcpkg.cpp
+++ b/toolsrc/src/vcpkg.cpp
@@ -118,7 +118,9 @@ static void inner(const VcpkgCmdArguments& args)
auto default_vs_path = System::get_environment_variable("VCPKG_VISUAL_STUDIO_PATH").value_or("");
- const Expected<VcpkgPaths> expected_paths = VcpkgPaths::create(vcpkg_root_dir, default_vs_path);
+ const Expected<VcpkgPaths> expected_paths = VcpkgPaths::create(vcpkg_root_dir,
+ default_vs_path,
+ args.overlay_triplets.get());
Checks::check_exit(VCPKG_LINE_INFO,
!expected_paths.error(),
"Error: Invalid vcpkg root directory %s: %s",
diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp
index 059a09432..1975d3aaf 100644
--- a/toolsrc/src/vcpkg/build.cpp
+++ b/toolsrc/src/vcpkg/build.cpp
@@ -361,9 +361,15 @@ namespace vcpkg::Build
{
auto& fs = paths.get_filesystem();
const Triplet& triplet = spec.triplet();
+ const auto& triplet_file_path = paths.get_triplet_file_path(spec.triplet()).u8string();
- if (!Strings::starts_with(Strings::ascii_to_lowercase(config.port_dir.u8string()),
- Strings::ascii_to_lowercase(paths.ports.u8string())))
+ if (!Strings::case_insensitive_ascii_starts_with(triplet_file_path,
+ paths.triplets.u8string()))
+ {
+ System::printf("-- Loading triplet configuration from: %s\n", triplet_file_path);
+ }
+ if (!Strings::case_insensitive_ascii_starts_with(config.port_dir.u8string(),
+ paths.ports.u8string()))
{
System::printf("-- Installing port from location: %s\n", config.port_dir.u8string());
}
@@ -390,6 +396,7 @@ namespace vcpkg::Build
{"PORT", config.scf.core_paragraph->name},
{"CURRENT_PORT_DIR", config.port_dir},
{"TARGET_TRIPLET", spec.triplet().canonical_name()},
+ {"TARGET_TRIPLET_FILE", triplet_file_path},
{"VCPKG_PLATFORM_TOOLSET", toolset.version.c_str()},
{"VCPKG_USE_HEAD_VERSION", Util::Enum::to_bool(config.build_package_options.use_head_version) ? "1" : "0"},
{"DOWNLOADS", paths.downloads},
@@ -587,7 +594,7 @@ namespace vcpkg::Build
return nullopt;
}
- static void decompress_archive(const VcpkgPaths& paths, const PackageSpec& spec, const fs::path& archive_path)
+ static int decompress_archive(const VcpkgPaths& paths, const PackageSpec& spec, const fs::path& archive_path)
{
auto& fs = paths.get_filesystem();
@@ -601,12 +608,13 @@ namespace vcpkg::Build
#if defined(_WIN32)
auto&& seven_zip_exe = paths.get_tool_exe(Tools::SEVEN_ZIP);
- System::cmd_execute_clean(Strings::format(
+ int result = System::cmd_execute_clean(Strings::format(
R"("%s" x "%s" -o"%s" -y >nul)", seven_zip_exe.u8string(), archive_path.u8string(), pkg_path.u8string()));
#else
- System::cmd_execute_clean(
+ int result = System::cmd_execute_clean(
Strings::format(R"(unzip -qq "%s" "-d%s")", archive_path.u8string(), pkg_path.u8string()));
#endif
+ return result;
}
// Compress the source directory into the destination file.
@@ -692,11 +700,16 @@ namespace vcpkg::Build
{
System::print2("Using cached binary package: ", archive_path.u8string(), "\n");
- decompress_archive(paths, spec, archive_path);
+ auto archive_result = decompress_archive(paths, spec, archive_path);
+
+ if (archive_result != 0)
+ {
+ System::print2("Failed to decompress archive package\n");
+ return BuildResult::BUILD_FAILED;
+ }
auto maybe_bcf = Paragraphs::try_load_cached_package(paths, spec);
- std::unique_ptr<BinaryControlFile> bcf =
- std::make_unique<BinaryControlFile>(std::move(maybe_bcf).value_or_exit(VCPKG_LINE_INFO));
+ auto bcf = std::make_unique<BinaryControlFile>(std::move(maybe_bcf).value_or_exit(VCPKG_LINE_INFO));
return {BuildResult::SUCCEEDED, std::move(bcf)};
}
@@ -890,7 +903,7 @@ namespace vcpkg::Build
const fs::path& cmake_exe_path = paths.get_tool_exe(Tools::CMAKE);
const fs::path ports_cmake_script_path = paths.scripts / "get_triplet_environment.cmake";
- const fs::path triplet_file_path = paths.triplets / (triplet.canonical_name() + ".cmake");
+ const fs::path triplet_file_path = paths.get_triplet_file_path(triplet);
const auto cmd_launch_cmake = System::make_cmake_cmd(cmake_exe_path,
ports_cmake_script_path,
@@ -994,6 +1007,12 @@ namespace vcpkg::Build
hash += "-";
hash += Hash::get_file_hash(fs, *p, "SHA1");
}
+ else if (pre_build_info.cmake_system_name.empty() ||
+ pre_build_info.cmake_system_name == "WindowsStore")
+ {
+ hash += "-";
+ hash += Hash::get_file_hash(fs, paths.scripts / "toolchains" / "windows.cmake", "SHA1");
+ }
else if (pre_build_info.cmake_system_name == "Linux")
{
hash += "-";
diff --git a/toolsrc/src/vcpkg/commands.integrate.cpp b/toolsrc/src/vcpkg/commands.integrate.cpp
index 6921a5390..fda9e2b11 100644
--- a/toolsrc/src/vcpkg/commands.integrate.cpp
+++ b/toolsrc/src/vcpkg/commands.integrate.cpp
@@ -409,7 +409,7 @@ With a project open, go to Tools->NuGet Package Manager->Package Manager Console
Checks::exit_with_code(VCPKG_LINE_INFO, rc);
}
-#elif defined(__unix__)
+#else
static void integrate_bash(const VcpkgPaths& paths)
{
const auto home_path = System::get_environment_variable("HOME").value_or_exit(VCPKG_LINE_INFO);
@@ -458,11 +458,12 @@ With a project open, go to Tools->NuGet Package Manager->Package Manager Console
"first use\n"
" vcpkg integrate remove Remove user-wide integration\n"
" vcpkg integrate project Generate a referencing nuget package for individual VS project use\n"
- " vcpkg integrate powershell Enable PowerShell Tab-Completion\n";
+ " vcpkg integrate powershell Enable PowerShell tab-completion\n";
#else
const char* const INTEGRATE_COMMAND_HELPSTRING =
" vcpkg integrate install Make installed packages available user-wide.\n"
- " vcpkg integrate remove Remove user-wide integration\n";
+ " vcpkg integrate remove Remove user-wide integration\n"
+ " vcpkg integrate bash Enable bash tab-completion\n";
#endif
namespace Subcommand
@@ -476,7 +477,15 @@ With a project open, go to Tools->NuGet Package Manager->Package Manager Console
static std::vector<std::string> valid_arguments(const VcpkgPaths&)
{
- return {Subcommand::INSTALL, Subcommand::REMOVE, Subcommand::PROJECT, Subcommand::POWERSHELL, Subcommand::BASH};
+ return
+ {
+ Subcommand::INSTALL, Subcommand::REMOVE,
+#if defined(_WIN32)
+ Subcommand::PROJECT, Subcommand::POWERSHELL,
+#else
+ Subcommand::BASH,
+#endif
+ };
}
const CommandStructure COMMAND_STRUCTURE = {
@@ -510,7 +519,7 @@ With a project open, go to Tools->NuGet Package Manager->Package Manager Console
{
return integrate_powershell(paths);
}
-#elif defined(__unix__)
+#else
if (args.command_arguments[0] == Subcommand::BASH)
{
return integrate_bash(paths);
diff --git a/toolsrc/src/vcpkg/help.cpp b/toolsrc/src/vcpkg/help.cpp
index 6ee573dfc..896f62661 100644
--- a/toolsrc/src/vcpkg/help.cpp
+++ b/toolsrc/src/vcpkg/help.cpp
@@ -117,6 +117,8 @@ namespace vcpkg::Help
"\n"
" --overlay-ports=<path> Specify directories to be used when searching for ports\n"
"\n"
+ " --overlay-triplets=<path> Specify directories containing triplets files\n"
+ "\n"
" --vcpkg-root <path> Specify the vcpkg root "
"directory\n"
" (default: " ENVVAR(VCPKG_ROOT) //
diff --git a/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp b/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp
index 21bf4d028..3c1452d47 100644
--- a/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp
+++ b/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp
@@ -45,26 +45,6 @@ namespace vcpkg
option_field = new_setting;
}
- static void parse_multivalue(const std::string* arg_begin,
- const std::string* arg_end,
- const std::string& option_name,
- std::unique_ptr<std::vector<std::string>>& option_field)
- {
- if (arg_begin == arg_end)
- {
- System::print2(System::Color::error, "Error: expected value after ", option_name, '\n');
- Metrics::g_metrics.lock()->track_property("error", "error option name");
- Help::print_usage();
- Checks::exit_fail(VCPKG_LINE_INFO);
- }
-
- if (!option_field)
- {
- option_field = std::make_unique<std::vector<std::string>>();
- }
- option_field->emplace_back(*arg_begin);
- }
-
static void parse_cojoined_multivalue(std::string new_value,
const std::string& option_name,
std::unique_ptr<std::vector<std::string>>& option_field)
@@ -163,6 +143,13 @@ namespace vcpkg
args.overlay_ports);
continue;
}
+ if (Strings::starts_with(arg, "--overlay-triplets="))
+ {
+ parse_cojoined_multivalue(arg.substr(sizeof("--overlay-triplets=") - 1),
+ "--overlay-triplets",
+ args.overlay_triplets);
+ continue;
+ }
if (arg == "--debug")
{
parse_switch(true, "debug", args.debug);
@@ -419,6 +406,9 @@ namespace vcpkg
"--overlay-ports=<path>",
"Specify directories to be used when searching for ports");
System::printf(" %-40s %s\n",
+ "--overlay-triplets=<path>",
+ "Specify directories containing triplets files");
+ System::printf(" %-40s %s\n",
"--vcpkg-root <path>",
"Specify the vcpkg directory to use instead of current directory or tool directory");
}
diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp
index 562a18c9b..909fbeb44 100644
--- a/toolsrc/src/vcpkg/vcpkgpaths.cpp
+++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp
@@ -13,7 +13,9 @@
namespace vcpkg
{
- Expected<VcpkgPaths> VcpkgPaths::create(const fs::path& vcpkg_root_dir, const std::string& default_vs_path)
+ Expected<VcpkgPaths> VcpkgPaths::create(const fs::path& vcpkg_root_dir,
+ const std::string& default_vs_path,
+ const std::vector<std::string>* triplets_dirs)
{
std::error_code ec;
const fs::path canonical_vcpkg_root_dir = fs::stdfs::canonical(vcpkg_root_dir, ec);
@@ -76,6 +78,20 @@ namespace vcpkg
paths.ports_cmake = paths.scripts / "ports.cmake";
+ if (triplets_dirs)
+ {
+ for (auto&& triplets_dir : *triplets_dirs)
+ {
+ auto path = fs::u8path(triplets_dir);
+ Checks::check_exit(VCPKG_LINE_INFO,
+ paths.get_filesystem().exists(path),
+ "Error: Path does not exist '%s'",
+ triplets_dir);
+ paths.triplets_dirs.emplace_back(fs::stdfs::canonical(path));
+ }
+ }
+ paths.triplets_dirs.emplace_back(fs::stdfs::canonical(paths.root / "triplets"));
+
return paths;
}
@@ -91,26 +107,47 @@ namespace vcpkg
return this->vcpkg_dir_info / (pgh.fullstem() + ".list");
}
+ bool VcpkgPaths::is_valid_triplet(const Triplet& t) const
+ {
+ const auto it = Util::find_if(this->get_available_triplets(), [&](auto&& available_triplet) {
+ return t.canonical_name() == available_triplet;
+ });
+ return it != this->get_available_triplets().cend();
+ }
+
const std::vector<std::string>& VcpkgPaths::get_available_triplets() const
{
return this->available_triplets.get_lazy([this]() -> std::vector<std::string> {
std::vector<std::string> output;
- for (auto&& path : this->get_filesystem().get_files_non_recursive(this->triplets))
+ for (auto&& triplets_dir : triplets_dirs)
{
- output.push_back(path.stem().filename().string());
+ for (auto&& path : this->get_filesystem().get_files_non_recursive(triplets_dir))
+ {
+ output.push_back(path.stem().filename().string());
+ }
}
- Util::sort(output);
-
+ Util::sort_unique_erase(output);
return output;
- });
+ });
}
- bool VcpkgPaths::is_valid_triplet(const Triplet& t) const
- {
- const auto it = Util::find_if(this->get_available_triplets(), [&](auto&& available_triplet) {
- return t.canonical_name() == available_triplet;
- });
- return it != this->get_available_triplets().cend();
+ const fs::path VcpkgPaths::get_triplet_file_path(const Triplet& triplet) const
+ {
+ return m_triplets_cache.get_lazy(triplet, [&]()-> auto {
+ for (auto&& triplet_dir : triplets_dirs)
+ {
+ auto&& path = triplet_dir / (triplet.canonical_name() + ".cmake");
+ if (this->get_filesystem().exists(path))
+ {
+ return path;
+ }
+ }
+
+ Checks::exit_with_message(VCPKG_LINE_INFO,
+ "Error: Triplet file %s.cmake not found",
+ triplet.canonical_name());
+ });
+
}
const fs::path& VcpkgPaths::get_tool_exe(const std::string& tool) const