aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarath Kannan <barathsotd@gmail.com>2017-12-27 16:57:43 +1100
committerBarath Kannan <barathsotd@gmail.com>2017-12-27 16:57:43 +1100
commitd8f0ea999983892b8e5e49340ece3474ee257156 (patch)
treece9b615075350d90d0b7312874bae6dd202fe93b
parent22e9a2b25db21e1d1a1f75786442f2c90ae0db0c (diff)
parent6e05f9cdf5cf4d53153214f4d4b29133b368bc4d (diff)
downloadvcpkg-d8f0ea999983892b8e5e49340ece3474ee257156.tar.gz
vcpkg-d8f0ea999983892b8e5e49340ece3474ee257156.zip
resolve merge conflicts
-rw-r--r--.gitignore3
-rw-r--r--CHANGELOG.md82
-rw-r--r--README.md10
-rw-r--r--ports/abseil/portfile.cmake3
-rw-r--r--ports/ace/CONTROL2
-rw-r--r--ports/ace/portfile.cmake10
-rw-r--r--ports/alac-decoder/CMakeLists.txt50
-rw-r--r--ports/alac-decoder/CONTROL3
-rw-r--r--ports/alac-decoder/decomp.c11
-rw-r--r--ports/alac-decoder/portfile.cmake30
-rw-r--r--ports/alac-decoder/remove_stdint_headers.patch193
-rw-r--r--ports/alac/portfile.cmake4
-rw-r--r--ports/alembic/CONTROL2
-rw-r--r--ports/alembic/portfile.cmake8
-rw-r--r--ports/allegro5/CONTROL2
-rw-r--r--ports/allegro5/portfile.cmake4
-rw-r--r--ports/angle/CMakeLists.txt6
-rw-r--r--ports/angle/CONTROL2
-rw-r--r--ports/angle/portfile.cmake4
-rw-r--r--ports/antlr4/portfile.cmake4
-rw-r--r--ports/apr/portfile.cmake10
-rw-r--r--ports/arb/portfile.cmake1
-rw-r--r--ports/arrow/CONTROL4
-rw-r--r--ports/arrow/portfile.cmake5
-rw-r--r--ports/assimp/CONTROL2
-rw-r--r--ports/assimp/const-compare-worditerator.patch15
-rw-r--r--ports/assimp/portfile.cmake8
-rw-r--r--ports/assimp/uninitialized-variable.patch13
-rw-r--r--ports/aubio/CMakeLists.txt2
-rw-r--r--ports/aubio/CONTROL2
-rw-r--r--ports/aubio/portfile.cmake11
-rw-r--r--ports/aws-sdk-cpp/CONTROL2
-rw-r--r--ports/aws-sdk-cpp/portfile.cmake4
-rw-r--r--ports/azure-storage-cpp/portfile.cmake4
-rw-r--r--ports/beast/CONTROL4
-rw-r--r--ports/beast/portfile.cmake14
-rw-r--r--ports/benchmark/CONTROL2
-rw-r--r--ports/benchmark/portfile.cmake20
-rw-r--r--ports/berkeleydb/portfile.cmake4
-rw-r--r--ports/blaze/CONTROL4
-rw-r--r--ports/bond/CONTROL4
-rw-r--r--ports/bond/portfile.cmake1
-rw-r--r--ports/boost-accumulators/CONTROL5
-rw-r--r--ports/boost-accumulators/portfile.cmake14
-rw-r--r--ports/boost-algorithm/CONTROL5
-rw-r--r--ports/boost-algorithm/portfile.cmake14
-rw-r--r--ports/boost-align/CONTROL5
-rw-r--r--ports/boost-align/portfile.cmake14
-rw-r--r--ports/boost-any/CONTROL5
-rw-r--r--ports/boost-any/portfile.cmake14
-rw-r--r--ports/boost-array/CONTROL5
-rw-r--r--ports/boost-array/portfile.cmake14
-rw-r--r--ports/boost-asio/CONTROL5
-rw-r--r--ports/boost-asio/portfile.cmake14
-rw-r--r--ports/boost-assert/CONTROL5
-rw-r--r--ports/boost-assert/portfile.cmake14
-rw-r--r--ports/boost-assign/CONTROL5
-rw-r--r--ports/boost-assign/portfile.cmake14
-rw-r--r--ports/boost-atomic/CONTROL5
-rw-r--r--ports/boost-atomic/portfile.cmake15
-rw-r--r--ports/boost-beast/CONTROL5
-rw-r--r--ports/boost-beast/portfile.cmake14
-rw-r--r--ports/boost-bimap/CONTROL5
-rw-r--r--ports/boost-bimap/portfile.cmake14
-rw-r--r--ports/boost-bind/CONTROL5
-rw-r--r--ports/boost-bind/portfile.cmake14
-rw-r--r--ports/boost-build/CONTROL3
-rw-r--r--ports/boost-build/portfile.cmake54
-rw-r--r--ports/boost-callable-traits/CONTROL5
-rw-r--r--ports/boost-callable-traits/portfile.cmake14
-rw-r--r--ports/boost-chrono/CONTROL5
-rw-r--r--ports/boost-chrono/portfile.cmake15
-rw-r--r--ports/boost-circular-buffer/CONTROL5
-rw-r--r--ports/boost-circular-buffer/portfile.cmake14
-rw-r--r--ports/boost-compatibility/CONTROL5
-rw-r--r--ports/boost-compatibility/portfile.cmake14
-rw-r--r--ports/boost-compute/CONTROL5
-rw-r--r--ports/boost-compute/portfile.cmake14
-rw-r--r--ports/boost-concept-check/CONTROL5
-rw-r--r--ports/boost-concept-check/portfile.cmake14
-rw-r--r--ports/boost-config/CONTROL5
-rw-r--r--ports/boost-config/portfile.cmake20
-rw-r--r--ports/boost-container/CONTROL5
-rw-r--r--ports/boost-container/portfile.cmake15
-rw-r--r--ports/boost-context/CONTROL5
-rw-r--r--ports/boost-context/portfile.cmake15
-rw-r--r--ports/boost-conversion/CONTROL5
-rw-r--r--ports/boost-conversion/portfile.cmake14
-rw-r--r--ports/boost-convert/CONTROL5
-rw-r--r--ports/boost-convert/portfile.cmake14
-rw-r--r--ports/boost-core/CONTROL5
-rw-r--r--ports/boost-core/portfile.cmake14
-rw-r--r--ports/boost-coroutine/CONTROL5
-rw-r--r--ports/boost-coroutine/portfile.cmake15
-rw-r--r--ports/boost-coroutine2/CONTROL5
-rw-r--r--ports/boost-coroutine2/portfile.cmake14
-rw-r--r--ports/boost-crc/CONTROL5
-rw-r--r--ports/boost-crc/portfile.cmake14
-rw-r--r--ports/boost-date-time/CONTROL5
-rw-r--r--ports/boost-date-time/portfile.cmake15
-rw-r--r--ports/boost-detail/CONTROL5
-rw-r--r--ports/boost-detail/portfile.cmake14
-rw-r--r--ports/boost-disjoint-sets/CONTROL5
-rw-r--r--ports/boost-disjoint-sets/portfile.cmake14
-rw-r--r--ports/boost-dll/CONTROL5
-rw-r--r--ports/boost-dll/portfile.cmake14
-rw-r--r--ports/boost-dynamic-bitset/CONTROL5
-rw-r--r--ports/boost-dynamic-bitset/portfile.cmake14
-rw-r--r--ports/boost-endian/CONTROL5
-rw-r--r--ports/boost-endian/portfile.cmake14
-rw-r--r--ports/boost-exception/CONTROL5
-rw-r--r--ports/boost-exception/portfile.cmake18
-rw-r--r--ports/boost-fiber/CONTROL5
-rw-r--r--ports/boost-fiber/portfile.cmake15
-rw-r--r--ports/boost-filesystem/CONTROL5
-rw-r--r--ports/boost-filesystem/portfile.cmake15
-rw-r--r--ports/boost-flyweight/CONTROL5
-rw-r--r--ports/boost-flyweight/portfile.cmake14
-rw-r--r--ports/boost-foreach/CONTROL5
-rw-r--r--ports/boost-foreach/portfile.cmake14
-rw-r--r--ports/boost-format/CONTROL5
-rw-r--r--ports/boost-format/portfile.cmake14
-rw-r--r--ports/boost-function-types/CONTROL5
-rw-r--r--ports/boost-function-types/portfile.cmake14
-rw-r--r--ports/boost-function/CONTROL5
-rw-r--r--ports/boost-function/portfile.cmake14
-rw-r--r--ports/boost-functional/CONTROL5
-rw-r--r--ports/boost-functional/portfile.cmake14
-rw-r--r--ports/boost-fusion/CONTROL5
-rw-r--r--ports/boost-fusion/portfile.cmake14
-rw-r--r--ports/boost-geometry/CONTROL5
-rw-r--r--ports/boost-geometry/portfile.cmake14
-rw-r--r--ports/boost-gil/CONTROL5
-rw-r--r--ports/boost-gil/portfile.cmake14
-rw-r--r--ports/boost-graph-parallel/CONTROL5
-rw-r--r--ports/boost-graph-parallel/portfile.cmake15
-rw-r--r--ports/boost-graph/CONTROL5
-rw-r--r--ports/boost-graph/portfile.cmake15
-rw-r--r--ports/boost-hana/CONTROL5
-rw-r--r--ports/boost-hana/portfile.cmake14
-rw-r--r--ports/boost-heap/CONTROL5
-rw-r--r--ports/boost-heap/portfile.cmake14
-rw-r--r--ports/boost-icl/CONTROL5
-rw-r--r--ports/boost-icl/portfile.cmake14
-rw-r--r--ports/boost-integer/CONTROL5
-rw-r--r--ports/boost-integer/portfile.cmake14
-rw-r--r--ports/boost-interprocess/CONTROL5
-rw-r--r--ports/boost-interprocess/portfile.cmake14
-rw-r--r--ports/boost-interval/CONTROL5
-rw-r--r--ports/boost-interval/portfile.cmake14
-rw-r--r--ports/boost-intrusive/CONTROL5
-rw-r--r--ports/boost-intrusive/portfile.cmake14
-rw-r--r--ports/boost-io/CONTROL5
-rw-r--r--ports/boost-io/portfile.cmake14
-rw-r--r--ports/boost-iostreams/CONTROL5
-rw-r--r--ports/boost-iostreams/portfile.cmake15
-rw-r--r--ports/boost-iterator/CONTROL5
-rw-r--r--ports/boost-iterator/portfile.cmake14
-rw-r--r--ports/boost-lambda/CONTROL5
-rw-r--r--ports/boost-lambda/portfile.cmake14
-rw-r--r--ports/boost-lexical-cast/CONTROL5
-rw-r--r--ports/boost-lexical-cast/portfile.cmake14
-rw-r--r--ports/boost-local-function/CONTROL5
-rw-r--r--ports/boost-local-function/portfile.cmake14
-rw-r--r--ports/boost-locale/CONTROL9
-rw-r--r--ports/boost-locale/portfile.cmake28
-rw-r--r--ports/boost-lockfree/CONTROL5
-rw-r--r--ports/boost-lockfree/portfile.cmake14
-rw-r--r--ports/boost-log/CONTROL5
-rw-r--r--ports/boost-log/portfile.cmake15
-rw-r--r--ports/boost-logic/CONTROL5
-rw-r--r--ports/boost-logic/portfile.cmake14
-rw-r--r--ports/boost-math/CONTROL5
-rw-r--r--ports/boost-math/portfile.cmake15
-rw-r--r--ports/boost-metaparse/CONTROL5
-rw-r--r--ports/boost-metaparse/portfile.cmake14
-rw-r--r--ports/boost-move/CONTROL5
-rw-r--r--ports/boost-move/portfile.cmake14
-rw-r--r--ports/boost-mp11/CONTROL5
-rw-r--r--ports/boost-mp11/portfile.cmake14
-rw-r--r--ports/boost-mpi/CONTROL5
-rw-r--r--ports/boost-mpi/portfile.cmake15
-rw-r--r--ports/boost-mpl/CONTROL5
-rw-r--r--ports/boost-mpl/portfile.cmake14
-rw-r--r--ports/boost-msm/CONTROL5
-rw-r--r--ports/boost-msm/portfile.cmake14
-rw-r--r--ports/boost-multi-array/CONTROL5
-rw-r--r--ports/boost-multi-array/portfile.cmake14
-rw-r--r--ports/boost-multi-index/CONTROL5
-rw-r--r--ports/boost-multi-index/portfile.cmake14
-rw-r--r--ports/boost-multiprecision/CONTROL5
-rw-r--r--ports/boost-multiprecision/portfile.cmake14
-rw-r--r--ports/boost-numeric-conversion/CONTROL5
-rw-r--r--ports/boost-numeric-conversion/portfile.cmake14
-rw-r--r--ports/boost-odeint/CONTROL5
-rw-r--r--ports/boost-odeint/portfile.cmake14
-rw-r--r--ports/boost-optional/CONTROL5
-rw-r--r--ports/boost-optional/portfile.cmake14
-rw-r--r--ports/boost-parameter/CONTROL5
-rw-r--r--ports/boost-parameter/portfile.cmake14
-rw-r--r--ports/boost-phoenix/CONTROL5
-rw-r--r--ports/boost-phoenix/portfile.cmake14
-rw-r--r--ports/boost-poly-collection/CONTROL5
-rw-r--r--ports/boost-poly-collection/portfile.cmake14
-rw-r--r--ports/boost-polygon/CONTROL5
-rw-r--r--ports/boost-polygon/portfile.cmake14
-rw-r--r--ports/boost-pool/CONTROL5
-rw-r--r--ports/boost-pool/portfile.cmake14
-rw-r--r--ports/boost-predef/CONTROL5
-rw-r--r--ports/boost-predef/portfile.cmake14
-rw-r--r--ports/boost-preprocessor/CONTROL5
-rw-r--r--ports/boost-preprocessor/portfile.cmake14
-rw-r--r--ports/boost-process/CONTROL5
-rw-r--r--ports/boost-process/portfile.cmake14
-rw-r--r--ports/boost-program-options/CONTROL5
-rw-r--r--ports/boost-program-options/portfile.cmake15
-rw-r--r--ports/boost-property-map/CONTROL5
-rw-r--r--ports/boost-property-map/portfile.cmake14
-rw-r--r--ports/boost-property-tree/CONTROL5
-rw-r--r--ports/boost-property-tree/portfile.cmake14
-rw-r--r--ports/boost-proto/CONTROL5
-rw-r--r--ports/boost-proto/portfile.cmake14
-rw-r--r--ports/boost-ptr-container/CONTROL5
-rw-r--r--ports/boost-ptr-container/portfile.cmake14
-rw-r--r--ports/boost-python/CONTROL5
-rw-r--r--ports/boost-python/portfile.cmake20
-rw-r--r--ports/boost-qvm/CONTROL5
-rw-r--r--ports/boost-qvm/portfile.cmake14
-rw-r--r--ports/boost-random/CONTROL5
-rw-r--r--ports/boost-random/portfile.cmake15
-rw-r--r--ports/boost-range/CONTROL5
-rw-r--r--ports/boost-range/portfile.cmake14
-rw-r--r--ports/boost-ratio/CONTROL5
-rw-r--r--ports/boost-ratio/portfile.cmake14
-rw-r--r--ports/boost-rational/CONTROL5
-rw-r--r--ports/boost-rational/portfile.cmake14
-rw-r--r--ports/boost-regex/CONTROL9
-rw-r--r--ports/boost-regex/portfile.cmake21
-rw-r--r--ports/boost-scope-exit/CONTROL5
-rw-r--r--ports/boost-scope-exit/portfile.cmake14
-rw-r--r--ports/boost-serialization/CONTROL5
-rw-r--r--ports/boost-serialization/portfile.cmake15
-rw-r--r--ports/boost-signals/CONTROL5
-rw-r--r--ports/boost-signals/portfile.cmake15
-rw-r--r--ports/boost-signals2/CONTROL5
-rw-r--r--ports/boost-signals2/portfile.cmake14
-rw-r--r--ports/boost-smart-ptr/CONTROL5
-rw-r--r--ports/boost-smart-ptr/portfile.cmake14
-rw-r--r--ports/boost-sort/CONTROL5
-rw-r--r--ports/boost-sort/portfile.cmake14
-rw-r--r--ports/boost-spirit/CONTROL5
-rw-r--r--ports/boost-spirit/portfile.cmake14
-rw-r--r--ports/boost-stacktrace/CONTROL5
-rw-r--r--ports/boost-stacktrace/portfile.cmake15
-rw-r--r--ports/boost-statechart/CONTROL5
-rw-r--r--ports/boost-statechart/portfile.cmake14
-rw-r--r--ports/boost-static-assert/CONTROL5
-rw-r--r--ports/boost-static-assert/portfile.cmake14
-rw-r--r--ports/boost-system/CONTROL5
-rw-r--r--ports/boost-system/portfile.cmake15
-rw-r--r--ports/boost-test/CONTROL5
-rw-r--r--ports/boost-test/portfile.cmake15
-rw-r--r--ports/boost-thread/CONTROL5
-rw-r--r--ports/boost-thread/portfile.cmake15
-rw-r--r--ports/boost-throw-exception/CONTROL5
-rw-r--r--ports/boost-throw-exception/portfile.cmake14
-rw-r--r--ports/boost-timer/CONTROL5
-rw-r--r--ports/boost-timer/portfile.cmake15
-rw-r--r--ports/boost-tokenizer/CONTROL5
-rw-r--r--ports/boost-tokenizer/portfile.cmake14
-rw-r--r--ports/boost-tti/CONTROL5
-rw-r--r--ports/boost-tti/portfile.cmake14
-rw-r--r--ports/boost-tuple/CONTROL5
-rw-r--r--ports/boost-tuple/portfile.cmake14
-rw-r--r--ports/boost-type-erasure/CONTROL5
-rw-r--r--ports/boost-type-erasure/portfile.cmake15
-rw-r--r--ports/boost-type-index/CONTROL5
-rw-r--r--ports/boost-type-index/portfile.cmake14
-rw-r--r--ports/boost-type-traits/CONTROL5
-rw-r--r--ports/boost-type-traits/portfile.cmake14
-rw-r--r--ports/boost-typeof/CONTROL5
-rw-r--r--ports/boost-typeof/portfile.cmake14
-rw-r--r--ports/boost-ublas/CONTROL5
-rw-r--r--ports/boost-ublas/portfile.cmake14
-rw-r--r--ports/boost-units/CONTROL5
-rw-r--r--ports/boost-units/portfile.cmake14
-rw-r--r--ports/boost-unordered/CONTROL5
-rw-r--r--ports/boost-unordered/portfile.cmake14
-rw-r--r--ports/boost-utility/CONTROL5
-rw-r--r--ports/boost-utility/portfile.cmake14
-rw-r--r--ports/boost-uuid/CONTROL5
-rw-r--r--ports/boost-uuid/portfile.cmake14
-rw-r--r--ports/boost-variant/CONTROL5
-rw-r--r--ports/boost-variant/portfile.cmake14
-rw-r--r--ports/boost-vcpkg-helpers/.gitignore3
-rw-r--r--ports/boost-vcpkg-helpers/CONTROL3
-rw-r--r--ports/boost-vcpkg-helpers/Jamroot.jam141
-rw-r--r--ports/boost-vcpkg-helpers/boost-modular.cmake281
-rw-r--r--ports/boost-vcpkg-helpers/generate-ports.ps1336
-rw-r--r--ports/boost-vcpkg-helpers/nothing.bat0
-rw-r--r--ports/boost-vcpkg-helpers/portfile.cmake11
-rw-r--r--ports/boost-vcpkg-helpers/user-config.jam25
-rw-r--r--ports/boost-vmd/CONTROL5
-rw-r--r--ports/boost-vmd/portfile.cmake14
-rw-r--r--ports/boost-wave/CONTROL5
-rw-r--r--ports/boost-wave/portfile.cmake15
-rw-r--r--ports/boost-winapi/CONTROL5
-rw-r--r--ports/boost-winapi/portfile.cmake14
-rw-r--r--ports/boost-xpressive/CONTROL5
-rw-r--r--ports/boost-xpressive/portfile.cmake14
-rw-r--r--ports/boost/CONTROL19
-rw-r--r--ports/boost/portfile.cmake348
-rw-r--r--ports/brotli/CONTROL2
-rw-r--r--ports/brotli/portfile.cmake50
-rw-r--r--ports/brynet/CONTROL3
-rw-r--r--ports/brynet/portfile.cmake26
-rw-r--r--ports/cctz/portfile.cmake4
-rw-r--r--ports/ceres/portfile.cmake7
-rw-r--r--ports/cgal/CONTROL4
-rw-r--r--ports/cgal/portfile.cmake1
-rw-r--r--ports/chakracore/CONTROL4
-rw-r--r--ports/chakracore/portfile.cmake4
-rw-r--r--ports/cpprestsdk/CONTROL4
-rw-r--r--ports/cpprestsdk/portfile.cmake10
-rw-r--r--ports/cpprestsdk/undef-minmax.patch14
-rw-r--r--ports/cppunit/CONTROL2
-rw-r--r--ports/cppunit/portfile.cmake9
-rw-r--r--ports/crow/CONTROL3
-rw-r--r--ports/crow/portfile.cmake12
-rw-r--r--ports/curl/0001_cmake.patch15
-rw-r--r--ports/curl/0002_fix_uwp.patch16
-rw-r--r--ports/curl/CONTROL2
-rw-r--r--ports/curl/portfile.cmake6
-rw-r--r--ports/date/CMakeLists.txt6
-rw-r--r--ports/date/CONTROL2
-rw-r--r--ports/date/portfile.cmake6
-rw-r--r--ports/devil/0001_fix-encoding.patch173
-rw-r--r--ports/devil/0002_fix-missing-mfc-includes.patch102
-rw-r--r--ports/devil/CONTROL4
-rw-r--r--ports/devil/enable-static.patch26
-rw-r--r--ports/devil/portfile.cmake32
-rw-r--r--ports/dlib/CONTROL2
-rw-r--r--ports/dlib/portfile.cmake5
-rw-r--r--ports/doctest/CONTROL2
-rw-r--r--ports/doctest/portfile.cmake4
-rw-r--r--ports/ecm/CONTROL2
-rw-r--r--ports/ecm/portfile.cmake13
-rw-r--r--ports/exiv2/CONTROL2
-rw-r--r--ports/exiv2/portfile.cmake6
-rw-r--r--ports/expat/CONTROL2
-rw-r--r--ports/expat/portfile.cmake8
-rw-r--r--ports/fcl/0002-fix_dependencies.patch14
-rw-r--r--ports/fcl/CONTROL4
-rw-r--r--ports/fcl/portfile.cmake8
-rw-r--r--ports/fftw3/CMakeLists.txt117
-rw-r--r--ports/fftw3/CONTROL2
-rw-r--r--ports/fftw3/config.h393
-rw-r--r--ports/fftw3/portfile.cmake19
-rw-r--r--ports/flatbuffers/portfile.cmake12
-rw-r--r--ports/flint/CONTROL2
-rw-r--r--ports/flint/portfile.cmake6
-rw-r--r--ports/fmt/CONTROL2
-rw-r--r--ports/fmt/portfile.cmake4
-rw-r--r--ports/folly/CONTROL4
-rw-r--r--ports/folly/cmake-link-boost-fix.cmake35
-rw-r--r--ports/folly/fix-MSG_ERRQUEUE.diff22
-rw-r--r--ports/folly/fix-histogram.diff11
-rw-r--r--ports/folly/fix-malloc.diff12
-rw-r--r--ports/folly/fix-static-linking.diff98
-rw-r--r--ports/folly/portfile.cmake12
-rw-r--r--ports/freerdp/CONTROL2
-rw-r--r--ports/freerdp/portfile.cmake6
-rw-r--r--ports/gflags/portfile.cmake5
-rw-r--r--ports/glm/CONTROL2
-rw-r--r--ports/glm/ignore-warning-C4201.patch128
-rw-r--r--ports/glm/portfile.cmake5
-rw-r--r--ports/gmime/CMakeLists.txt62
-rw-r--r--ports/gmime/CONTROL2
-rw-r--r--ports/gmime/config.h14
-rw-r--r--ports/gmime/gmime.def25
-rw-r--r--ports/gmime/portfile.cmake7
-rw-r--r--ports/grpc/CONTROL2
-rw-r--r--ports/grpc/portfile.cmake4
-rw-r--r--ports/gsl-lite/CONTROL2
-rw-r--r--ports/gsl-lite/portfile.cmake4
-rw-r--r--ports/gtest/CONTROL2
-rw-r--r--ports/gtest/portfile.cmake59
-rw-r--r--ports/halide/CONTROL3
-rw-r--r--ports/halide/portfile.cmake88
-rw-r--r--ports/hdf5/portfile.cmake4
-rw-r--r--ports/hpx/CONTROL4
-rw-r--r--ports/hpx/boost-1-66.patch38
-rw-r--r--ports/hpx/portfile.cmake18
-rw-r--r--ports/imgui/CMakeLists.txt4
-rw-r--r--ports/imgui/CONTROL3
-rw-r--r--ports/imgui/portfile.cmake13
-rw-r--r--ports/itk/CONTROL4
-rw-r--r--ports/itk/portfile.cmake30
-rw-r--r--ports/jansson/portfile.cmake10
-rw-r--r--ports/lcms/CMakeLists.txt2
-rw-r--r--ports/lcms/CONTROL2
-rw-r--r--ports/lcms/portfile.cmake2
-rw-r--r--ports/leveldb/CONTROL2
-rw-r--r--ports/leveldb/portfile.cmake4
-rw-r--r--ports/libflac/CONTROL2
-rw-r--r--ports/libflac/portfile.cmake12
-rw-r--r--ports/libflac/uwp-createfile2.patch38
-rw-r--r--ports/libflac/uwp-library-console.patch53
-rw-r--r--ports/libiconv/0002-Config-for-MSVC.patch54
-rw-r--r--ports/libiconv/CMakeLists.txt85
-rw-r--r--ports/libiconv/CONTROL2
-rw-r--r--ports/libiconv/portfile.cmake9
-rw-r--r--ports/libkml/CONTROL4
-rw-r--r--ports/libkml/portfile.cmake1
-rw-r--r--ports/liblzma/portfile.cmake3
-rw-r--r--ports/libmspack/CMakeLists.txt52
-rw-r--r--ports/libmspack/CONTROL4
-rw-r--r--ports/libmspack/config.h8
-rw-r--r--ports/libmspack/libmspack.def32
-rw-r--r--ports/libmspack/portfile.cmake30
-rw-r--r--ports/libmupdf/CMakeLists.txt43
-rw-r--r--ports/libmupdf/CONTROL4
-rw-r--r--ports/libmupdf/portfile.cmake30
-rw-r--r--ports/libpng/portfile.cmake8
-rw-r--r--ports/libqrencode/CONTROL4
-rw-r--r--ports/libqrencode/portfile.cmake47
-rw-r--r--ports/libqrencode/remove-deprecated-attribute.patch16
-rw-r--r--ports/libqrencode/usage10
-rw-r--r--ports/libsndfile/CONTROL2
-rw-r--r--ports/libsndfile/portfile.cmake7
-rw-r--r--ports/libsndfile/uwp-createfile-getfilesize-addendum.patch13
-rw-r--r--ports/libsndfile/uwp-createfile-getfilesize.patch58
-rw-r--r--ports/libsodium/CONTROL2
-rw-r--r--ports/libsodium/disable-tests.patch16
-rw-r--r--ports/libsodium/portfile.cmake25
-rw-r--r--ports/libssh2/CONTROL2
-rw-r--r--ports/libssh2/portfile.cmake4
-rw-r--r--ports/libtorrent/CONTROL4
-rw-r--r--ports/libtorrent/portfile.cmake42
-rw-r--r--ports/libtorrent/vcpkg-boost-madness.patch13
-rw-r--r--ports/libusb/libfreenect2.patch268
-rw-r--r--ports/libusb/portfile.cmake5
-rw-r--r--ports/libuv/CONTROL2
-rw-r--r--ports/libuv/portfile.cmake4
-rw-r--r--ports/libzip/CONTROL2
-rw-r--r--ports/libzip/enable-static.patch72
-rw-r--r--ports/libzip/portfile.cmake13
-rw-r--r--ports/live555/CONTROL2
-rw-r--r--ports/live555/liveMedia.txt4
-rw-r--r--ports/live555/portfile.cmake14
-rw-r--r--ports/llvm/CONTROL1
-rw-r--r--ports/llvm/portfile.cmake4
-rw-r--r--ports/log4cplus/CONTROL3
-rw-r--r--ports/log4cplus/portfile.cmake20
-rw-r--r--ports/magnum/portfile.cmake1
-rw-r--r--ports/mbedtls/CONTROL3
-rw-r--r--ports/mbedtls/portfile.cmake27
-rw-r--r--ports/mongo-cxx-driver/CONTROL4
-rw-r--r--ports/mpfr/CMakeLists.txt4
-rw-r--r--ports/mpfr/CONTROL2
-rw-r--r--ports/mpfr/gmp_printf.c6
-rw-r--r--ports/mpfr/portfile.cmake2
-rw-r--r--ports/ms-gsl/CONTROL2
-rw-r--r--ports/ms-gsl/portfile.cmake9
-rw-r--r--ports/nana/CONTROL2
-rw-r--r--ports/nana/portfile.cmake4
-rw-r--r--ports/netcdf-c/portfile.cmake7
-rw-r--r--ports/nghttp2/CONTROL3
-rw-r--r--ports/nghttp2/portfile.cmake51
-rw-r--r--ports/nlohmann-json/CONTROL2
-rw-r--r--ports/nlohmann-json/portfile.cmake30
-rw-r--r--ports/ogre/0001-use-vcpkg-freeimage.patch17
-rw-r--r--ports/ogre/0002-ogre-cmake-dir-as-option.patch19
-rw-r--r--ports/ogre/0003-use-flat-installation.patch41
-rw-r--r--ports/ogre/001-cmake-install-dir.patch46
-rw-r--r--ports/ogre/CONTROL12
-rw-r--r--ports/ogre/OGREConfig.cmake37
-rw-r--r--ports/ogre/portfile.cmake137
-rw-r--r--ports/opencv/CONTROL2
-rw-r--r--ports/opencv/portfile.cmake12
-rw-r--r--ports/openimageio/CONTROL4
-rw-r--r--ports/openssl/CONTROL2
-rw-r--r--ports/openssl/PerlScriptSpaceInPathFixes.patch35
-rw-r--r--ports/openssl/portfile.cmake8
-rw-r--r--ports/openvdb/AddLinkageAndToolsChoice.patch225
-rw-r--r--ports/openvdb/CONTROL8
-rw-r--r--ports/openvdb/UseGLEWOnWindowsForViewer.patch60
-rw-r--r--ports/openvdb/portfile.cmake118
-rw-r--r--ports/pcl/CONTROL8
-rw-r--r--ports/pcl/cmakelists.patch25
-rw-r--r--ports/pcl/portfile.cmake10
-rw-r--r--ports/physfs/portfile.cmake4
-rw-r--r--ports/poco/CONTROL2
-rw-r--r--ports/poco/portfile.cmake12
-rw-r--r--ports/protobuf/CONTROL2
-rw-r--r--ports/protobuf/export-ParseGeneratorParameter.patch13
-rw-r--r--ports/protobuf/portfile.cmake12
-rw-r--r--ports/pthreads/portfile.cmake4
-rw-r--r--ports/pugixml/CONTROL2
-rw-r--r--ports/pugixml/portfile.cmake5
-rw-r--r--ports/qhull/CONTROL2
-rw-r--r--ports/qhull/portfile.cmake19
-rw-r--r--ports/qpid-proton/CONTROL4
-rw-r--r--ports/qpid-proton/portfile.cmake39
-rw-r--r--ports/qt5/CONTROL2
-rw-r--r--ports/range-v3/CONTROL2
-rw-r--r--ports/range-v3/portfile.cmake4
-rw-r--r--ports/re2/CONTROL3
-rw-r--r--ports/re2/portfile.cmake20
-rw-r--r--ports/realsense2/CONTROL2
-rw-r--r--ports/realsense2/portfile.cmake4
-rw-r--r--ports/scintilla/CONTROL3
-rw-r--r--ports/scintilla/portfile.cmake61
-rw-r--r--ports/sciter/CONTROL2
-rw-r--r--ports/sciter/portfile.cmake8
-rw-r--r--ports/sdl2/CONTROL2
-rw-r--r--ports/sdl2/enable-winrt-cmake.patch206
-rw-r--r--ports/sdl2/portfile.cmake73
-rw-r--r--ports/sobjectizer/001-cmake.patch36
-rw-r--r--ports/sobjectizer/CONTROL2
-rw-r--r--ports/sobjectizer/portfile.cmake37
-rw-r--r--ports/speex/CMakeLists.txt17
-rw-r--r--ports/speex/CONTROL2
-rw-r--r--ports/speex/portfile.cmake6
-rw-r--r--ports/speexdsp/CMakeLists.txt8
-rw-r--r--ports/string-theory/CONTROL2
-rw-r--r--ports/string-theory/disableTests.patch13
-rw-r--r--ports/string-theory/portfile.cmake10
-rw-r--r--ports/tbb/CONTROL2
-rw-r--r--ports/tbb/portfile.cmake18
-rw-r--r--ports/thrift/CONTROL4
-rw-r--r--ports/thrift/portfile.cmake2
-rw-r--r--ports/tinyexif/CONTROL4
-rw-r--r--ports/tinyexif/portfile.cmake30
-rw-r--r--ports/tinyxml2/CONTROL2
-rw-r--r--ports/tinyxml2/portfile.cmake4
-rw-r--r--ports/unicorn/CONTROL3
-rw-r--r--ports/unicorn/portfile.cmake58
-rw-r--r--ports/unittest-cpp/CONTROL3
-rw-r--r--ports/unittest-cpp/portfile.cmake29
-rw-r--r--ports/vlpp/CMakeLists.txt37
-rw-r--r--ports/vlpp/CONTROL3
-rw-r--r--ports/vlpp/portfile.cmake31
-rw-r--r--ports/websocketpp/CONTROL2
-rw-r--r--ports/wt/CONTROL4
-rw-r--r--ports/wt/boost-1.66.patch123
-rw-r--r--ports/wt/guard-NO_ERROR.patch19
-rw-r--r--ports/wt/portfile.cmake11
-rw-r--r--ports/zlib/portfile.cmake6
-rw-r--r--scripts/VcpkgPowershellUtils.ps159
-rw-r--r--scripts/addPoshVcpkgToPowershellProfile.ps156
-rw-r--r--scripts/bootstrap.ps12
-rw-r--r--scripts/buildsystems/msbuild/vcpkg.targets4
-rw-r--r--scripts/buildsystems/vcpkg.cmake97
-rw-r--r--scripts/cmake/vcpkg_build_cmake.cmake32
-rw-r--r--scripts/cmake/vcpkg_build_msbuild.cmake44
-rw-r--r--scripts/cmake/vcpkg_configure_cmake.cmake56
-rw-r--r--scripts/cmake/vcpkg_configure_meson.cmake56
-rw-r--r--scripts/cmake/vcpkg_download_distfile.cmake10
-rw-r--r--scripts/cmake/vcpkg_execute_required_process.cmake7
-rw-r--r--scripts/cmake/vcpkg_find_acquire_program.cmake8
-rw-r--r--scripts/cmake/vcpkg_fixup_cmake_targets.cmake76
-rw-r--r--scripts/cmake/vcpkg_from_github.cmake10
-rw-r--r--scripts/fetchDependency.ps120
-rw-r--r--scripts/findAnyMSBuildWithCppPlatformToolset.ps15
-rw-r--r--scripts/get_triplet_environment.cmake4
-rw-r--r--scripts/internalCI.ps117
-rw-r--r--toolsrc/CMakeLists.txt27
-rw-r--r--toolsrc/VERSION.txt2
-rw-r--r--toolsrc/include/pch.h1
-rw-r--r--toolsrc/include/tests.pch.h1
-rw-r--r--toolsrc/include/tests.utils.h16
-rw-r--r--toolsrc/include/vcpkg/base/chrono.h50
-rw-r--r--toolsrc/include/vcpkg/base/files.h1
-rw-r--r--toolsrc/include/vcpkg/base/graphs.h155
-rw-r--r--toolsrc/include/vcpkg/base/optional.h6
-rw-r--r--toolsrc/include/vcpkg/base/system.h28
-rw-r--r--toolsrc/include/vcpkg/build.h31
-rw-r--r--toolsrc/include/vcpkg/commands.h7
-rw-r--r--toolsrc/include/vcpkg/dependencies.h55
-rw-r--r--toolsrc/include/vcpkg/globalstate.h6
-rw-r--r--toolsrc/include/vcpkg/install.h4
-rw-r--r--toolsrc/include/vcpkg/packagespec.h11
-rw-r--r--toolsrc/include/vcpkg/paragraphs.h3
-rw-r--r--toolsrc/include/vcpkg/postbuildlint.buildtype.h24
-rw-r--r--toolsrc/include/vcpkg/update.h6
-rw-r--r--toolsrc/include/vcpkg/userconfig.h20
-rw-r--r--toolsrc/include/vcpkg/vcpkglib.h15
-rw-r--r--toolsrc/include/vcpkg/vcpkgpaths.h11
-rw-r--r--toolsrc/src/tests.chrono.cpp41
-rw-r--r--toolsrc/src/tests.plan.cpp150
-rw-r--r--toolsrc/src/tests.update.cpp34
-rw-r--r--toolsrc/src/vcpkg.cpp97
-rw-r--r--toolsrc/src/vcpkg/base/checks.cpp9
-rw-r--r--toolsrc/src/vcpkg/base/chrono.cpp76
-rw-r--r--toolsrc/src/vcpkg/base/files.cpp3
-rw-r--r--toolsrc/src/vcpkg/base/system.cpp92
-rw-r--r--toolsrc/src/vcpkg/binaryparagraph.cpp5
-rw-r--r--toolsrc/src/vcpkg/build.cpp82
-rw-r--r--toolsrc/src/vcpkg/commands.ci.cpp18
-rw-r--r--toolsrc/src/vcpkg/commands.contact.cpp13
-rw-r--r--toolsrc/src/vcpkg/commands.cpp3
-rw-r--r--toolsrc/src/vcpkg/commands.create.cpp3
-rw-r--r--toolsrc/src/vcpkg/commands.env.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.integrate.cpp16
-rw-r--r--toolsrc/src/vcpkg/commands.list.cpp8
-rw-r--r--toolsrc/src/vcpkg/commands.portsdiff.cpp13
-rw-r--r--toolsrc/src/vcpkg/commands.upgrade.cpp180
-rw-r--r--toolsrc/src/vcpkg/commands.version.cpp7
-rw-r--r--toolsrc/src/vcpkg/dependencies.cpp429
-rw-r--r--toolsrc/src/vcpkg/export.cpp9
-rw-r--r--toolsrc/src/vcpkg/globalstate.cpp4
-rw-r--r--toolsrc/src/vcpkg/help.cpp1
-rw-r--r--toolsrc/src/vcpkg/install.cpp297
-rw-r--r--toolsrc/src/vcpkg/metrics.cpp46
-rw-r--r--toolsrc/src/vcpkg/packagespec.cpp37
-rw-r--r--toolsrc/src/vcpkg/paragraphs.cpp12
-rw-r--r--toolsrc/src/vcpkg/postbuildlint.buildtype.cpp2
-rw-r--r--toolsrc/src/vcpkg/postbuildlint.cpp61
-rw-r--r--toolsrc/src/vcpkg/remove.cpp9
-rw-r--r--toolsrc/src/vcpkg/update.cpp40
-rw-r--r--toolsrc/src/vcpkg/userconfig.cpp88
-rw-r--r--toolsrc/src/vcpkg/vcpkglib.cpp24
-rw-r--r--toolsrc/src/vcpkg/vcpkgpaths.cpp140
-rw-r--r--toolsrc/vcpkg.sln51
-rw-r--r--toolsrc/vcpkg/vcpkg.vcxproj3
-rw-r--r--toolsrc/vcpkg/vcpkg.vcxproj.filters5
-rw-r--r--toolsrc/vcpkglib/vcpkglib.vcxproj3
-rw-r--r--toolsrc/vcpkglib/vcpkglib.vcxproj.filters9
-rw-r--r--toolsrc/vcpkgtest/vcpkgtest.vcxproj1
-rw-r--r--toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters3
631 files changed, 9500 insertions, 3095 deletions
diff --git a/.gitignore b/.gitignore
index 003d607fd..e1954660f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -274,8 +274,9 @@ __pycache__/
.vscode/
buildtrees/
+build*/
downloads/
-installed/
+installed*/
packages/
scripts/buildsystems/tmp/
*.exe
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4f45365ee..2c07411a8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,85 @@
+vcpkg (0.0.100)
+--------------
+ * Add ports:
+ - libmspack 0.6
+ - scintilla 3.7.6
+ - vlpp 0.9.3.1
+ * Update ports:
+ - allegro5 5.2.2.0-1 -> 5.2.3.0
+ - benchmark 1.2.0 -> 1.3.0
+ - brotli 0.6.0-1 -> 1.0.2
+ - chakracore 1.4.3 -> 1.7.4
+ - cppunit 1.13.2 -> 1.14.0
+ - doctest 1.2.0 -> 1.2.6
+ - ecm 5.37.0-1 -> 5.40.0
+ - expat 2.2.4-2 -> 2.2.5
+ - flint 2.5.2 -> 2.5.2-1
+ - folly 2017.10.02.00 -> 2017.11.27.00
+ - freerdp 2.0.0-rc0~vcpkg1-1 -> 2.0.0-rc1~vcpkg1
+ - libtorrent 1.1.4-1 -> 1.1.5
+ - libuv 1.16.1 -> 1.18.0
+ - libzip 1.2.0-2 -> 1.3.2
+ - log4cplus REL_1_2_1-RC2-1 -> REL_2_0_0-RC2
+ - mpfr 3.1.6-1 -> 3.1.6-2
+ - nana 1.5.4-1 -> 1.5.5
+ - poco 1.7.8-2 -> 1.8.0.1
+ - pugixml 1.8.1-2 -> 1.8.1-3
+ - sciter 4.0.4 -> 4.0.6
+ - speex 1.2.0-1 -> 1.2.0-2
+ * `vcpkg` has exceeded 400 libraries!
+ * `vcpkg` now supports Tab-Completion/Auto-Completion in Powershell. To enable it, simply run `.\vcpkg integrate powershell` and restart Powershell.
+ * `vcpkg` now requires the English language pack of Visual Studio to be installed. This is needed because several libraries fail to build in non-English languages, so `vcpkg` sets the build environment to English to bypass these issues.
+
+-- vcpkg team <vcpkg@microsoft.com> MON, 04 Dec 2017 17:00:00 -0800
+
+
+vcpkg (0.0.99)
+--------------
+ * Add ports:
+ - avro-c 1.8.2
+ - devil 1.8.0-1
+ - halide release_2017_10_30
+ - librabbitmq 0.8.0
+ - openvdb 5.0.0
+ - qpid-proton 0.18.1
+ - unittest-cpp 2.0.0
+ * Update ports:
+ - alembic 1.7.4 -> 1.7.4-1
+ - angle 2017-06-14-8d471f-2 -> 2017-06-14-8d471f-4
+ - aubio 0.46~alpha-3 -> 0.46
+ - date 2.2 -> 2.3-c286981b3bf83c79554769df68b27415cee68d77
+ - fftw3 3.3.7 -> 3.3.7-1
+ - grpc 1.7.0 -> 1.7.2
+ - imgui 1.51-1 -> 1.52
+ - lcms 2.8-3 -> 2.8-4
+ - leptonica 1.74.4-1 -> 1.74.4-2
+ - leveldb 2017-10-25-8b1cd3753b184341e837b30383832645135d3d73 -> 2017-10-25-8b1cd3753b184341e837b30383832645135d3d73-1
+ - libflac 1.3.2-3 -> 1.3.2-4
+ - libiconv 1.14-1 -> 1.15
+ - libsndfile 1.0.29-6830c42-1 -> 1.0.29-6830c42-2
+ - libssh2 1.8.0-2 -> 1.8.0-3
+ - llvm 5.0.0-1 -> 5.0.0-2
+ - mpfr 3.1.6 -> 3.1.6-1
+ - ogre 1.9.0-1 -> 1.10.9-2
+ - opencv 3.3.1-7 -> 3.3.1-9
+ - opengl 0.0-3 -> 0.0-4
+ - pcl 1.8.1-4 -> 1.8.1-7
+ - protobuf 3.4.1-2 -> 3.5.0-1
+ - qhull 2015.2-1 -> 2015.2-2
+ - realsense2 2.8.1 -> 2.8.2
+ - redshell 1.0.0 -> 1.1.2
+ - sdl2 2.0.7-1 -> 2.0.7-3
+ - string-theory 1.6 -> 1.6-1
+ - tesseract 3.05.01-1 -> 3.05.01-2
+ * `vcpkg` now autodetects CMake usage information in libraries and displays it after install
+ * `vcpkg integrate install`: Fix issue that would cause failure with unicode usernames
+ * Introduce experimental support for `VCPKG_BUILD_TYPE`. Adding `set(VCPKG_BUILD_TYPE release)` in a triplet: will cause *most* ports to only build release
+ * `vcpkg` now compiles inside WSL
+ * Update required version & auto-downloaded version of `cmake` to 3.10.0
+
+-- vcpkg team <vcpkg@microsoft.com> SAT, 26 Nov 2017 03:30:00 -0800
+
+
vcpkg (0.0.97)
--------------
* Add ports:
diff --git a/README.md b/README.md
index 30d193892..9ff217564 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ Prerequisites:
- Windows 10, 8.1, or 7
- Visual Studio 2017 or Visual Studio 2015 Update 3
- Git
-- *Optional: CMake 3.9.5*
+- *Optional: CMake 3.10.0*
Clone this repository, then run
```
@@ -28,6 +28,14 @@ Finally, create a New Project (or open an existing one) in Visual Studio 2017 or
For CMake projects, simply include our toolchain file. See our [using a package](docs/examples/using-sqlite.md) example for the specifics.
+## Tab-Completion / Auto-Completion
+`Vcpkg` supports auto-completion of commands, package names, options etc. To enable tab-completion in Powershell, use
+```
+.\vcpkg integrate powershell
+```
+and restart Powershell.
+
+
## Examples
See the [documentation](docs/index.md) for specific walkthroughs, including [using a package](docs/examples/using-sqlite.md) and [adding a new package](docs/examples/packaging-zlib.md).
diff --git a/ports/abseil/portfile.cmake b/ports/abseil/portfile.cmake
index a6efa08b5..639983fc0 100644
--- a/ports/abseil/portfile.cmake
+++ b/ports/abseil/portfile.cmake
@@ -4,9 +4,6 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
message(FATAL_ERROR "Abseil currently only supports being built for desktop")
endif()
-message("NOTE: THIS PORT IS USING AN UNOFFICIAL BUILDSYSTEM. THE BINARY LAYOUT AND CMAKE INTEGRATION WILL CHANGE IN THE FUTURE.")
-message("To use from cmake:\n find_package(unofficial-abseil REQUIRED)\n link_libraries(unofficial::abseil::strings)")
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO abseil/abseil-cpp
diff --git a/ports/ace/CONTROL b/ports/ace/CONTROL
index 80af89d8a..596d5a7a7 100644
--- a/ports/ace/CONTROL
+++ b/ports/ace/CONTROL
@@ -1,3 +1,3 @@
Source: ace
-Version: 6.4.5
+Version: 6.4.6
Description: The ADAPTIVE Communication Environment
diff --git a/ports/ace/portfile.cmake b/ports/ace/portfile.cmake
index fece3ebcc..63239138b 100644
--- a/ports/ace/portfile.cmake
+++ b/ports/ace/portfile.cmake
@@ -1,3 +1,7 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
message(STATUS "Warning: Static building not supported yet. Building dynamic.")
set(VCPKG_LIBRARY_LINKAGE dynamic)
@@ -5,9 +9,9 @@ endif()
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ACE_wrappers/ace)
vcpkg_download_distfile(ARCHIVE
- URLS "http://download.dre.vanderbilt.edu/previous_versions/ACE-6.4.5.zip"
- FILENAME "ACE-6.4.5.zip"
- SHA512 cce1681fc35efdefb8b88a49b743ffcaecfe8f146dcf6c78393aed29c8853e77b062bced4a2fb457eba74bf5834511611cc40da2320c6094793cb8c2b6df3d2a
+ URLS "http://download.dre.vanderbilt.edu/previous_versions/ACE-6.4.6.zip"
+ FILENAME "ACE-6.4.6.zip"
+ SHA512 3b1ced19bb42bd753e0a43990f1d8f84dc57f5650c7c972f2e849d4ce3aa1db08673cf14fbc0607d7dbc9b9f95f33f72a5d7f0f11cd993beba528f80eb525e69
)
vcpkg_extract_source_archive(${ARCHIVE})
diff --git a/ports/alac-decoder/CMakeLists.txt b/ports/alac-decoder/CMakeLists.txt
new file mode 100644
index 000000000..cafd05b18
--- /dev/null
+++ b/ports/alac-decoder/CMakeLists.txt
@@ -0,0 +1,50 @@
+cmake_minimum_required (VERSION 3.9)
+project (alac_decoder)
+
+set(HEADERS
+ decomp.h
+ demux.h
+ stream.h
+ wavwriter.h
+)
+
+set (SRCS
+ decomp.c
+ alac.c
+ demux.c
+ stream.c
+ wavwriter.c
+)
+
+if(MSVC)
+ add_compile_options(/W4 -D_CRT_SECURE_NO_WARNINGS -DTARGET_OS_WIN32)
+endif()
+
+if(BUILD_SHARED_LIBS)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif()
+
+include_directories(.)
+
+add_library(libalac_decoder ${SRCS})
+
+add_executable(alac_decoder main.c)
+target_link_libraries(alac_decoder libalac_decoder)
+
+install(
+ TARGETS libalac_decoder
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_TOOLS)
+ install (
+ TARGETS alac_decoder
+ RUNTIME DESTINATION tools/alac-decoder
+ )
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES ${HEADERS} DESTINATION include/alac_decoder)
+endif()
diff --git a/ports/alac-decoder/CONTROL b/ports/alac-decoder/CONTROL
new file mode 100644
index 000000000..b2300174b
--- /dev/null
+++ b/ports/alac-decoder/CONTROL
@@ -0,0 +1,3 @@
+Source: alac-decoder
+Version: 0.2
+Description: ALAC C implementation of a decoder, written from reverse engineering the file format
diff --git a/ports/alac-decoder/decomp.c b/ports/alac-decoder/decomp.c
new file mode 100644
index 000000000..a76953325
--- /dev/null
+++ b/ports/alac-decoder/decomp.c
@@ -0,0 +1,11 @@
+#include "decomp.h"
+#include <stdint.h>
+
+int set_endian()
+{
+ uint32_t integer = 0x000000aa;
+ unsigned char *p = (unsigned char*)&integer;
+
+ if (p[0] == 0xaa) return 0;
+ else return 1;
+}
diff --git a/ports/alac-decoder/portfile.cmake b/ports/alac-decoder/portfile.cmake
new file mode 100644
index 000000000..732ed2631
--- /dev/null
+++ b/ports/alac-decoder/portfile.cmake
@@ -0,0 +1,30 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/alac_decoder)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://distfiles.macports.org/alac_decoder/alac_decoder-0.2.0.tgz"
+ FILENAME "alac_decoder-0.2.0.tgz"
+ SHA512 4b37d4fe37681bfccaa4a27fbaf11eb2a1fba5f14e77d219a6d9814ff44d1168534d05eb19443dd2fd11e6fcdf4da3a22e3f3c79314cb7a6767c152351b13e29
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/decomp.c DESTINATION ${SOURCE_PATH})
+
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/remove_stdint_headers.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/alac-decoder)
+
+file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/alac-decoder RENAME copyright)
diff --git a/ports/alac-decoder/remove_stdint_headers.patch b/ports/alac-decoder/remove_stdint_headers.patch
new file mode 100644
index 000000000..834b808cc
--- /dev/null
+++ b/ports/alac-decoder/remove_stdint_headers.patch
@@ -0,0 +1,193 @@
+diff --git a/alac.c b/alac.c
+index 469000d..c6fe479 100644
+--- a/alac.c
++++ b/alac.c
+@@ -33,11 +33,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#ifdef _WIN32
+- #include "stdint_win.h"
+-#else
+- #include <stdint.h>
+-#endif
++#include <stdint.h>
+
+ #include "decomp.h"
+
+@@ -54,7 +50,7 @@
+ struct {signed int x:24;} se_struct_24;
+ #define SignExtend24(val) (se_struct_24.x = val)
+
+-extern int host_bigendian;
++#define host_bigendian set_endian()
+
+ struct alac_file
+ {
+diff --git a/decomp.h b/decomp.h
+index 23dbc52..679a320 100644
+--- a/decomp.h
++++ b/decomp.h
+@@ -8,6 +8,7 @@ void decode_frame(alac_file *alac,
+ unsigned char *inbuffer,
+ void *outbuffer, int *outputsize);
+ void alac_set_info(alac_file *alac, char *inputbuffer);
++int set_endian();
+
+ #endif /* __ALAC__DECOMP_H */
+
+diff --git a/demux.c b/demux.c
+index ae77a9d..9e858a9 100644
+--- a/demux.c
++++ b/demux.c
+@@ -33,11 +33,7 @@
+ #include <string.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#ifdef _WIN32
+- #include "stdint_win.h"
+-#else
+- #include <stdint.h>
+-#endif
++#include <stdint.h>
+
+ #include "stream.h"
+ #include "demux.h"
+diff --git a/demux.h b/demux.h
+index 8447bf8..8874ba4 100644
+--- a/demux.h
++++ b/demux.h
+@@ -1,11 +1,8 @@
+ #ifndef DEMUX_H
+ #define DEMUX_H
+
+-#ifdef _WIN32
+- #include "stdint_win.h"
+-#else
+- #include <stdint.h>
+-#endif
++
++#include <stdint.h>
+
+ #include "stream.h"
+
+diff --git a/main.c b/main.c
+index 7449ca1..dd58699 100644
+--- a/main.c
++++ b/main.c
+@@ -37,11 +37,7 @@
+ #include <stdlib.h>
+ #include <errno.h>
+ #include <string.h>
+-#ifdef _WIN32
+- #include "stdint_win.h"
+-#else
+- #include <stdint.h>
+-#endif
++#include <stdint.h>
+
+ #include "demux.h"
+ #include "decomp.h"
+@@ -267,19 +263,7 @@ static void setup_environment(int argc, char **argv)
+ }
+ }
+
+-/* this could quite easily be done at compile time,
+- * however I don't want to have to bother with all the
+- * various possible #define's for endianness, worrying about
+- * different compilers etc. and I'm too lazy to use autoconf.
+- */
+-void set_endian()
+-{
+- uint32_t integer = 0x000000aa;
+- unsigned char *p = (unsigned char*)&integer;
+
+- if (p[0] == 0xaa) host_bigendian = 0;
+- else host_bigendian = 1;
+-}
+
+ int main(int argc, char **argv)
+ {
+@@ -288,7 +272,7 @@ int main(int argc, char **argv)
+
+ memset(&demux_res, 0, sizeof(demux_res));
+
+- set_endian();
++ host_bigendian = set_endian();
+
+ setup_environment(argc, argv);
+
+diff --git a/stream.c b/stream.c
+index 565db54..56727a0 100644
+--- a/stream.c
++++ b/stream.c
+@@ -33,13 +33,10 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <errno.h>
+-#ifdef _WIN32
+- #include "stdint_win.h"
+-#else
+- #include <stdint.h>
+-#endif
++#include <stdint.h>
+
+ #include "stream.h"
++#include "decomp.h"
+
+ #define _Swap32(v) do { \
+ v = (((v) & 0x000000FF) << 0x18) | \
+@@ -51,7 +48,7 @@
+ v = (((v) & 0x00FF) << 0x08) | \
+ (((v) & 0xFF00) >> 0x08); } while (0)
+
+-extern int host_bigendian;
++#define host_bigendian set_endian()
+
+ struct stream_tTAG {
+ FILE *f;
+diff --git a/stream.h b/stream.h
+index 18d6aa0..ff6325e 100644
+--- a/stream.h
++++ b/stream.h
+@@ -3,11 +3,8 @@
+
+ /* stream.h */
+
+-#ifdef _WIN32
+- #include "stdint_win.h"
+-#else
+- #include <stdint.h>
+-#endif
++#include <stdint.h>
++
+
+ typedef struct stream_tTAG stream_t;
+
+diff --git a/wavwriter.c b/wavwriter.c
+index fd19502..ce941c7 100644
+--- a/wavwriter.c
++++ b/wavwriter.c
+@@ -32,11 +32,8 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
+-#ifdef _WIN32
+- #include "stdint_win.h"
+-#else
+- #include <stdint.h>
+-#endif
++#include <stdint.h>
++
+
+ #ifndef MAKEFOURCC
+ #define MAKEFOURCC(ch0, ch1, ch2, ch3) ( \
+@@ -56,7 +53,7 @@
+ v = (((v) & 0x00FF) << 0x08) | \
+ (((v) & 0xFF00) >> 0x08); } while (0)
+
+-extern int host_bigendian;
++#define host_bigendian set_endian()
+
+ static void write_uint32(FILE *f, uint32_t v, int bigendian)
+ {
diff --git a/ports/alac/portfile.cmake b/ports/alac/portfile.cmake
index c04e3a7d1..309ebfef9 100644
--- a/ports/alac/portfile.cmake
+++ b/ports/alac/portfile.cmake
@@ -1,3 +1,7 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
diff --git a/ports/alembic/CONTROL b/ports/alembic/CONTROL
index b2246c9c0..e1e3090b9 100644
--- a/ports/alembic/CONTROL
+++ b/ports/alembic/CONTROL
@@ -1,4 +1,4 @@
Source: alembic
-Version: 1.7.4
+Version: 1.7.5
Build-Depends: ilmbase, hdf5
Description: Alembic is an open framework for storing and sharing scene data that includes a C++ library, a file format, and client plugins and applications. http://alembic.io/
diff --git a/ports/alembic/portfile.cmake b/ports/alembic/portfile.cmake
index 3c1242010..9b7eee317 100644
--- a/ports/alembic/portfile.cmake
+++ b/ports/alembic/portfile.cmake
@@ -8,8 +8,8 @@ endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO alembic/alembic
- REF 1.7.4
- SHA512 8e752d6d85bea3b6a53582d35a589fc40824456098d950974effe0a6a0e359fec1e056af1ea1379f7e23b7ffed2c05c7f5269fa4b64757631b7d57fb60ee98b0
+ REF 1.7.5
+ SHA512 9e8c9a29661d4cec16dbc77014188a07112c78b011c48fb5e9c2107512926e2cdd43f65e732c456574e07947afc4e53e200753ca59430f011e6fc8ea31041fc0
HEAD_REF master
)
@@ -44,12 +44,12 @@ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/Alembic.dll ${CURRENT_PACKAGES_DIR
file(READ ${CURRENT_PACKAGES_DIR}/share/Alembic/AlembicTargets-debug.cmake DEBUG_CONFIG)
string(REPLACE "\${_IMPORT_PREFIX}/debug/lib/Alembic.dll"
- "\${_IMPORT_PREFIX}/debug/bin/Alembic.dll" DEBUG_CONFIG ${DEBUG_CONFIG})
+ "\${_IMPORT_PREFIX}/debug/bin/Alembic.dll" DEBUG_CONFIG "${DEBUG_CONFIG}")
file(WRITE ${CURRENT_PACKAGES_DIR}/share/Alembic/AlembicTargets-debug.cmake "${DEBUG_CONFIG}")
file(READ ${CURRENT_PACKAGES_DIR}/share/Alembic/AlembicTargets-release.cmake RELEASE_CONFIG)
string(REPLACE "\${_IMPORT_PREFIX}/lib/Alembic.dll"
- "\${_IMPORT_PREFIX}/bin/Alembic.dll" RELEASE_CONFIG ${RELEASE_CONFIG})
+ "\${_IMPORT_PREFIX}/bin/Alembic.dll" RELEASE_CONFIG "${RELEASE_CONFIG}")
file(WRITE ${CURRENT_PACKAGES_DIR}/share/Alembic/AlembicTargets-release.cmake "${RELEASE_CONFIG}")
# Put the license file where vcpkg expects it
diff --git a/ports/allegro5/CONTROL b/ports/allegro5/CONTROL
index 8f078909a..6cf78f2a0 100644
--- a/ports/allegro5/CONTROL
+++ b/ports/allegro5/CONTROL
@@ -1,4 +1,4 @@
Source: allegro5
-Version: 5.2.2.0-1
+Version: 5.2.3.0
Description: Allegro is a cross-platform library mainly aimed at video game and multimedia programming. It handles common, low-level tasks such as creating windows, accepting user input, loading data, drawing images, playing sounds, etc. and generally abstracting away the underlying platform. However, Allegro is not a game engine: you are free to design and structure your program as you like.
Build-Depends: opengl, zlib, freetype, libogg, libvorbis, libflac, openal-soft, libpng, bzip2, physfs, libtheora, opus, opusfile
diff --git a/ports/allegro5/portfile.cmake b/ports/allegro5/portfile.cmake
index 46cb8020d..d22a0ecd9 100644
--- a/ports/allegro5/portfile.cmake
+++ b/ports/allegro5/portfile.cmake
@@ -14,8 +14,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO liballeg/allegro5
- REF e8b209bc20a60224859eb8a0cae082bd20d32ed1
- SHA512 50b30d4b539bd4a2488d2b33e9fbfc6fdfd340039d9086993a5719bab3cb020ee6fe7f6d3578755a52c8aab9816d25cd74710ce93b0b374a2f97620b6138419d
+ REF 5.2.3.0
+ SHA512 419f036d0265062dbec0e9306b153de5af5375186f7b5b2fe62a80549fc0e2c2a6afff81a6772effa7624fe2e452ed0a2830872ef25cc3b23fea93af99f60ba9
HEAD_REF master
)
diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt
index 5a4c05359..53fff2223 100644
--- a/ports/angle/CMakeLists.txt
+++ b/ports/angle/CMakeLists.txt
@@ -178,6 +178,7 @@ target_compile_definitions(libGLESv2
-DGL_APICALL=
-DEGLAPI=
)
+target_include_directories(libGLESv2 PUBLIC "$<INSTALL_INTERFACE:include>")
##########
# libEGL
@@ -188,13 +189,16 @@ add_library(libEGL
"src/libEGL/resource.h"
)
target_link_libraries(libEGL PRIVATE angle::common angle::libANGLE libGLESv2)
+target_include_directories(libEGL PUBLIC "$<INSTALL_INTERFACE:include>")
-install(TARGETS libEGL libGLESv2
+install(TARGETS libEGL libGLESv2 EXPORT ANGLEExport
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
+install(EXPORT ANGLEExport FILE unofficial-angle-config.cmake NAMESPACE unofficial::angle:: DESTINATION share/unofficial-angle)
+
if(NOT DISABLE_INSTALL_HEADERS)
install(
DIRECTORY include/
diff --git a/ports/angle/CONTROL b/ports/angle/CONTROL
index 38f8c7c60..12f912ac8 100644
--- a/ports/angle/CONTROL
+++ b/ports/angle/CONTROL
@@ -1,4 +1,4 @@
Source: angle
-Version: 2017-06-14-8d471f-2
+Version: 2017-06-14-8d471f-4
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 ab7ebd828..e21aa83bc 100644
--- a/ports/angle/portfile.cmake
+++ b/ports/angle/portfile.cmake
@@ -31,6 +31,10 @@ vcpkg_configure_cmake(
)
vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-angle)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/angle ${CURRENT_PACKAGES_DIR}/share/unofficial-angle)
+
vcpkg_copy_pdbs()
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/angle RENAME copyright)
diff --git a/ports/antlr4/portfile.cmake b/ports/antlr4/portfile.cmake
index d344e9d06..0d77208e0 100644
--- a/ports/antlr4/portfile.cmake
+++ b/ports/antlr4/portfile.cmake
@@ -1,3 +1,7 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
include(vcpkg_common_functions)
set(VERSION 4.7)
diff --git a/ports/apr/portfile.cmake b/ports/apr/portfile.cmake
index 64ad02b81..22bd260c8 100644
--- a/ports/apr/portfile.cmake
+++ b/ports/apr/portfile.cmake
@@ -1,10 +1,6 @@
-# Common Ambient Variables:
-# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
-# TARGET_TRIPLET is the current triplet (x86-windows, etc)
-# PORT is the current port name (zlib, etc)
-# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
-# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
-#
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
include(vcpkg_common_functions)
diff --git a/ports/arb/portfile.cmake b/ports/arb/portfile.cmake
index 9b621723b..32bb3a23b 100644
--- a/ports/arb/portfile.cmake
+++ b/ports/arb/portfile.cmake
@@ -18,6 +18,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
)
vcpkg_install_cmake()
diff --git a/ports/arrow/CONTROL b/ports/arrow/CONTROL
index 78cbf2a18..000b8a6d6 100644
--- a/ports/arrow/CONTROL
+++ b/ports/arrow/CONTROL
@@ -1,4 +1,4 @@
Source: arrow
-Version: 0.6.0
-Build-Depends: boost, flatbuffers, rapidjson, zlib, lz4, brotli, zstd, snappy, gflags
+Version: 0.6.0-1
+Build-Depends: boost-system, boost-filesystem, boost-multiprecision, boost-algorithm, flatbuffers, rapidjson, zlib, lz4, brotli, zstd, snappy, gflags
Description: Apache Arrow is a columnar in-memory analytics layer designed to accelerate big data. It houses a set of canonical in-memory representations of flat and hierarchical data along with multiple language-bindings for structure manipulation. It also provides IPC and common algorithm implementations.
diff --git a/ports/arrow/portfile.cmake b/ports/arrow/portfile.cmake
index c70a3cdc3..a462d3e9b 100644
--- a/ports/arrow/portfile.cmake
+++ b/ports/arrow/portfile.cmake
@@ -12,7 +12,6 @@ vcpkg_from_github(
HEAD_REF master
)
-
set(CPP_SOURCE_PATH "${SOURCE_PATH}/cpp")
vcpkg_apply_patches(
@@ -27,7 +26,9 @@ string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "static" ARROW_BUILD_STATIC)
vcpkg_configure_cmake(
SOURCE_PATH ${CPP_SOURCE_PATH}
- OPTIONS -DARROW_BUILD_TESTS=off
+ PREFER_NINJA
+ OPTIONS
+ -DARROW_BUILD_TESTS=off
-DRAPIDJSON_HOME=${CURRENT_INSTALLED_DIR}
-DFLATBUFFERS_HOME=${CURRENT_INSTALLED_DIR}
-DARROW_ZLIB_VENDORED=ON
diff --git a/ports/assimp/CONTROL b/ports/assimp/CONTROL
index f6e6eaaff..a2cb8e780 100644
--- a/ports/assimp/CONTROL
+++ b/ports/assimp/CONTROL
@@ -1,4 +1,4 @@
Source: assimp
-Version: 4.0.1-3
+Version: 4.1.0-1
Description: The Open Asset import library
Build-Depends: zlib
diff --git a/ports/assimp/const-compare-worditerator.patch b/ports/assimp/const-compare-worditerator.patch
deleted file mode 100644
index 9b892ed82..000000000
--- a/ports/assimp/const-compare-worditerator.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/code/X3DImporter.cpp b/code/X3DImporter.cpp
-index 1117735..669f46f 100644
---- a/code/X3DImporter.cpp
-+++ b/code/X3DImporter.cpp
-@@ -95,8 +95,8 @@ struct WordIterator: public std::iterator<std::input_iterator_tag, const char*>
- end_ = other.end_;
- return *this;
- }
-- bool operator==(WordIterator &other) const { return start_ == other.start_; }
-- bool operator!=(WordIterator &other) const { return start_ != other.start_; }
-+ bool operator==(const WordIterator &other) const { return start_ == other.start_; }
-+ bool operator!=(const WordIterator &other) const { return start_ != other.start_; }
- WordIterator &operator++() {
- start_ += strcspn(start_, whitespace);
- start_ += strspn(start_, whitespace);
diff --git a/ports/assimp/portfile.cmake b/ports/assimp/portfile.cmake
index 583738e16..6d4a7ec1d 100644
--- a/ports/assimp/portfile.cmake
+++ b/ports/assimp/portfile.cmake
@@ -3,16 +3,16 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO assimp/assimp
- REF v4.0.1
- SHA512 260b4c7e738f857d8364c4878ea4e789ca676180821943f6d9bff8f56e5f9377ea29660dca4e130c681a8aa12fc32f155adb1d78ca260ba242e68b8afa6cc1bb
+ REF v4.1.0
+ SHA512 5f1292de873ae16c9921d1d44f2871474d74c0ddfd76cc928a7d9b3e03aa6eca4cc72af0513da20a86d09c55d48646e610fd4a4f2b05364f08ad09cf27cbc67a
HEAD_REF master
)
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
- "${CMAKE_CURRENT_LIST_DIR}/const-compare-worditerator.patch"
"${CMAKE_CURRENT_LIST_DIR}/dont-overwrite-prefix-path.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/uninitialized-variable.patch"
)
file(REMOVE ${SOURCE_PATH}/cmake-modules/FindZLIB.cmake)
@@ -30,7 +30,7 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
-vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/assimp-4.0")
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/assimp-4.1")
vcpkg_copy_pdbs()
diff --git a/ports/assimp/uninitialized-variable.patch b/ports/assimp/uninitialized-variable.patch
new file mode 100644
index 000000000..f7b51c143
--- /dev/null
+++ b/ports/assimp/uninitialized-variable.patch
@@ -0,0 +1,13 @@
+diff --git a/contrib/zip/src/miniz.h b/contrib/zip/src/miniz.h
+index 916fb1f..a7bc178 100644
+--- a/contrib/zip/src/miniz.h
++++ b/contrib/zip/src/miniz.h
+@@ -4420,7 +4420,7 @@ mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArchive_name
+ #ifndef MINIZ_NO_STDIO
+ mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_filename, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags)
+ {
+- mz_uint uncomp_crc32 = MZ_CRC32_INIT, level, num_alignment_padding_bytes;
++ mz_uint uncomp_crc32 = MZ_CRC32_INIT, level = 0, num_alignment_padding_bytes;
+ mz_uint16 method = 0, dos_time = 0, dos_date = 0, ext_attributes = 0;
+ mz_uint64 local_dir_header_ofs, cur_archive_file_ofs, uncomp_size = 0, comp_size = 0;
+ size_t archive_name_size;
diff --git a/ports/aubio/CMakeLists.txt b/ports/aubio/CMakeLists.txt
index 3e20a28f6..50e61339e 100644
--- a/ports/aubio/CMakeLists.txt
+++ b/ports/aubio/CMakeLists.txt
@@ -15,6 +15,8 @@ add_definitions(
-DHAVE_WAVREAD=1
-DHAVE_LIBAV=1
-DHAVE_SWRESAMPLE=1
+
+ -D_CRT_SECURE_NO_WARNINGS=1
)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
diff --git a/ports/aubio/CONTROL b/ports/aubio/CONTROL
index 34fcaa495..635d2a9c9 100644
--- a/ports/aubio/CONTROL
+++ b/ports/aubio/CONTROL
@@ -1,4 +1,4 @@
Source: aubio
-Version: 0.46~alpha-3
+Version: 0.46
Description: Aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio.
Build-Depends: ffmpeg, libsndfile, libogg, libflac, libvorbis
diff --git a/ports/aubio/portfile.cmake b/ports/aubio/portfile.cmake
index 9421f2487..02b898246 100644
--- a/ports/aubio/portfile.cmake
+++ b/ports/aubio/portfile.cmake
@@ -1,11 +1,12 @@
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/aubio-3c230fae309e9ea3298783368dd71bae6172359a)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/aubio/aubio/archive/3c230fae309e9ea3298783368dd71bae6172359a.zip"
- FILENAME "aubio-0.4.6-3c230f.zip"
- SHA512 081fe59612f0b1860f465208739b1377869c64b91cecf4a6f6fbdea19204b801c650ff956b34be5988ef1905f3546d3c55846037487e0b34b014f1adbb68629c
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO aubio/aubio
+ REF 0.4.6
+ SHA512 9bb787d81f39ab8e3440be9936552a712a24e009884818e13e80dde756ad3874055bcd931ca3af638122f6a0d0bc53e62e1abeedce3fd79af35fe9ddea6bc707
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
diff --git a/ports/aws-sdk-cpp/CONTROL b/ports/aws-sdk-cpp/CONTROL
index a36263e7a..78ac3dfd7 100644
--- a/ports/aws-sdk-cpp/CONTROL
+++ b/ports/aws-sdk-cpp/CONTROL
@@ -1,3 +1,3 @@
Source: aws-sdk-cpp
-Version: 1.2.4
+Version: 1.3.15
Description: AWS SDK for C++
diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake
index 4e0e8bdfe..e47417100 100644
--- a/ports/aws-sdk-cpp/portfile.cmake
+++ b/ports/aws-sdk-cpp/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO aws/aws-sdk-cpp
- REF 1.2.4
- SHA512 dc96e40fe72e4b115607245f536cd13414e33a8f754153fd137f1391af14b9793fc8a07f9f984490e0783e385c2c7b9a421878b63ea793012f53fefe7ec4d368
+ REF 1.3.15
+ SHA512 844addabf01bdbba2c50f94303f23fd092ac5593c42c782aad5959d5edaadb0bec8a6408a91f4605cef996f0d5a23fd94ca3c194829c65db98291d5fa7150bff
HEAD_REF master
)
diff --git a/ports/azure-storage-cpp/portfile.cmake b/ports/azure-storage-cpp/portfile.cmake
index 7359f3bc7..32f05221d 100644
--- a/ports/azure-storage-cpp/portfile.cmake
+++ b/ports/azure-storage-cpp/portfile.cmake
@@ -1,3 +1,7 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
include(vcpkg_common_functions)
vcpkg_from_github(
diff --git a/ports/beast/CONTROL b/ports/beast/CONTROL
index 2e44e7909..0c889b941 100644
--- a/ports/beast/CONTROL
+++ b/ports/beast/CONTROL
@@ -1,4 +1,4 @@
Source: beast
-Version: v84-1
-Build-Depends: boost
+Version: 0
+Build-Depends: boost-beast
Description: HTTP/1 and WebSocket, header-only using Boost.Asio and C++11
diff --git a/ports/beast/portfile.cmake b/ports/beast/portfile.cmake
index 31d049ea1..065116c27 100644
--- a/ports/beast/portfile.cmake
+++ b/ports/beast/portfile.cmake
@@ -1,13 +1 @@
-# header only
-include(vcpkg_common_functions)
-
-vcpkg_from_github(
- OUT_SOURCE_PATH SOURCE_PATH
- REPO vinniefalco/Beast
- REF 32902fad8b7c57be27b96e00ed6ec82748732133
- SHA512 409bd23e19c4bb157619405713f73b90c5f680bec487ad7b6fc8bcd30db54444a78950ce631c8e267e4397b9128679528fd237d3c53f7e1e55634473a169af5f
- HEAD_REF master
-)
-
-file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
-file(INSTALL ${SOURCE_PATH}/LICENSE_1_0.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/beast RENAME copyright)
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
diff --git a/ports/benchmark/CONTROL b/ports/benchmark/CONTROL
index 03052ce7f..9e6262e1b 100644
--- a/ports/benchmark/CONTROL
+++ b/ports/benchmark/CONTROL
@@ -1,3 +1,3 @@
Source: benchmark
-Version: 1.2.0
+Version: 1.3.0
Description: A library to support the benchmarking of functions, similar to unit-tests.
diff --git a/ports/benchmark/portfile.cmake b/ports/benchmark/portfile.cmake
index c3159ef8b..1832174fe 100644
--- a/ports/benchmark/portfile.cmake
+++ b/ports/benchmark/portfile.cmake
@@ -1,3 +1,7 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
if(VCPKG_CRT_LINKAGE STREQUAL static)
message(FATAL_ERROR "Google benchmark only supports dynamic crt linkage.")
endif()
@@ -12,23 +16,11 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO google/benchmark
- REF v1.2.0
- SHA512 859063669fd84e847f04624013f0b2b734d75d90cada247682eaf345b86c88a9bc2320250e128f2361e37f402b3fb56a18c493ec6038973744a005a452d693ba
+ REF v1.3.0
+ SHA512 272775e4dbd0ecc65a2a3a64f24e79682b630929dea3af47349329ac8b796341f1197458a67c9aac0e514857ebe7cbc191d18f6fd2c0aea3242562e69d8a6849
HEAD_REF master
)
-vcpkg_download_distfile(PATCH
- URLS "https://github.com/efcs/benchmark/commit/536b0b82b8ec12fc7e17e6d243633618f294a739.diff"
- FILENAME google-benchmark-1.2.0-536b0b82.patch
- SHA512 ed42cc0014741c8039c0fca5b4317b2ed09d06a25c91f49a48be6dce921e39469b002c088794c1ea73dc759166e20cb685b47f809ba28dddd95b5f3263be03cd
-)
-
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- "${PATCH}"
-)
-
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
diff --git a/ports/berkeleydb/portfile.cmake b/ports/berkeleydb/portfile.cmake
index 6a7e30a05..38f383d7b 100644
--- a/ports/berkeleydb/portfile.cmake
+++ b/ports/berkeleydb/portfile.cmake
@@ -1,3 +1,7 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/db-4.8.30.NC)
diff --git a/ports/blaze/CONTROL b/ports/blaze/CONTROL
index 3355159f4..c64405980 100644
--- a/ports/blaze/CONTROL
+++ b/ports/blaze/CONTROL
@@ -1,4 +1,4 @@
Source: blaze
-Version: 3.2-2
-Build-Depends: boost, clapack
+Version: 3.2-3
+Build-Depends: clapack, boost-exception
Description: Blaze is an open-source, high-performance C++ math library for dense and sparse arithmetic.
diff --git a/ports/bond/CONTROL b/ports/bond/CONTROL
index 6680b6dd3..eea3a85cb 100644
--- a/ports/bond/CONTROL
+++ b/ports/bond/CONTROL
@@ -1,5 +1,5 @@
Source: bond
Maintainer: bond@microsoft.com
-Version: 7.0.2
+Version: 7.0.2-1
Description: Bond is a cross-platform framework for working with schematized data. It supports cross-language de/serialization and powerful generic mechanisms for efficiently manipulating data. Bond is broadly used at Microsoft in high scale services. <https://github.com/Microsoft/bond>
-Build-Depends: boost, rapidjson
+Build-Depends: rapidjson, boost-config, boost-utility, boost-assign
diff --git a/ports/bond/portfile.cmake b/ports/bond/portfile.cmake
index 2ad48a94d..b64be214c 100644
--- a/ports/bond/portfile.cmake
+++ b/ports/bond/portfile.cmake
@@ -37,6 +37,7 @@ vcpkg_apply_patches(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
-DBOND_LIBRARIES_ONLY=TRUE
-DBOND_GBC_PATH=${FETCHED_GBC_PATH}
diff --git a/ports/boost-accumulators/CONTROL b/ports/boost-accumulators/CONTROL
new file mode 100644
index 000000000..dda6adfc0
--- /dev/null
+++ b/ports/boost-accumulators/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-accumulators
+Version: 1.66.0
+Build-Depends: boost-array, boost-assert, boost-circular-buffer, boost-concept-check, boost-config, boost-core, boost-detail, boost-fusion, boost-interval, boost-iterator, boost-mpl, boost-numeric-conversion, boost-odeint, boost-parameter, boost-preprocessor, boost-range, boost-static-assert, boost-throw-exception, boost-tuple, boost-typeof, boost-type-traits, boost-ublas, boost-utility, boost-vcpkg-helpers
+Description: Boost accumulators module
diff --git a/ports/boost-accumulators/portfile.cmake b/ports/boost-accumulators/portfile.cmake
new file mode 100644
index 000000000..b55026968
--- /dev/null
+++ b/ports/boost-accumulators/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/accumulators
+ REF boost-1.66.0
+ SHA512 8413fb2c8f52ae8ec0253847ae01bd1a99d3746bd24bafb9707c243119055e3fbb7da848048db8493c80b8f1bb149d18cd03d8be22ffd2465165fb644cdfd12e
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-algorithm/CONTROL b/ports/boost-algorithm/CONTROL
new file mode 100644
index 000000000..50534ac12
--- /dev/null
+++ b/ports/boost-algorithm/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-algorithm
+Version: 1.66.0
+Build-Depends: boost-array, boost-assert, boost-bind, boost-concept-check, boost-config, boost-core, boost-detail, boost-exception, boost-function, boost-iterator, boost-mpl, boost-range, boost-regex, boost-static-assert, boost-throw-exception, boost-tuple, boost-type-traits, boost-unordered, boost-utility, boost-vcpkg-helpers
+Description: Boost algorithm module
diff --git a/ports/boost-algorithm/portfile.cmake b/ports/boost-algorithm/portfile.cmake
new file mode 100644
index 000000000..2149ba0e0
--- /dev/null
+++ b/ports/boost-algorithm/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/algorithm
+ REF boost-1.66.0
+ SHA512 46779a82175b89da21789e332befb89972320652bafcdacf76f456d3d9ff3635a2db0693dd035bd6651262f762f591d026387682f3c0764315e40d5f007e72ee
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-align/CONTROL b/ports/boost-align/CONTROL
new file mode 100644
index 000000000..e3009e539
--- /dev/null
+++ b/ports/boost-align/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-align
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-core, boost-static-assert, boost-throw-exception, boost-vcpkg-helpers
+Description: Boost align module
diff --git a/ports/boost-align/portfile.cmake b/ports/boost-align/portfile.cmake
new file mode 100644
index 000000000..481b66321
--- /dev/null
+++ b/ports/boost-align/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/align
+ REF boost-1.66.0
+ SHA512 3f358344470f797e093fd5db80a6d332e960b7301188e346771e06acc620d97d0e02562eb417eb4627a2200967af4eda74931fc61c8746df16d754f4b578b958
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-any/CONTROL b/ports/boost-any/CONTROL
new file mode 100644
index 000000000..c0f854590
--- /dev/null
+++ b/ports/boost-any/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-any
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-mpl, boost-static-assert, boost-throw-exception, boost-type-index, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost any module
diff --git a/ports/boost-any/portfile.cmake b/ports/boost-any/portfile.cmake
new file mode 100644
index 000000000..76d723999
--- /dev/null
+++ b/ports/boost-any/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/any
+ REF boost-1.66.0
+ SHA512 57f24a2532e31e664415642c2e125263964eae6798dfc31eae586a3e4fe516edc1adea882883d34613744ae79acfbc0bed9c8fd823153bafc25d9c3c1ec1e5ef
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-array/CONTROL b/ports/boost-array/CONTROL
new file mode 100644
index 000000000..549e3b979
--- /dev/null
+++ b/ports/boost-array/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-array
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-core, boost-detail, boost-static-assert, boost-throw-exception, boost-vcpkg-helpers
+Description: Boost array module
diff --git a/ports/boost-array/portfile.cmake b/ports/boost-array/portfile.cmake
new file mode 100644
index 000000000..8affa0dff
--- /dev/null
+++ b/ports/boost-array/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/array
+ REF boost-1.66.0
+ SHA512 67ca3644cdea6c2ac1791707e93c517cb1cc5aa593ead675bcfa844a27bcbb61ae4c1c35dc1cbb099e45041275e0ca70c99726a9f70319358057bc448f538425
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-asio/CONTROL b/ports/boost-asio/CONTROL
new file mode 100644
index 000000000..3df7042e6
--- /dev/null
+++ b/ports/boost-asio/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-asio
+Version: 1.66.0
+Build-Depends: boost-coroutine (windows), boost-date-time, boost-regex, boost-system, boost-vcpkg-helpers
+Description: Boost asio module
diff --git a/ports/boost-asio/portfile.cmake b/ports/boost-asio/portfile.cmake
new file mode 100644
index 000000000..4317b12d5
--- /dev/null
+++ b/ports/boost-asio/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/asio
+ REF boost-1.66.0
+ SHA512 7d9989bd96b2940183a1aa75e7f7a6cec0ecf630922009d440ba876802411eba80ddc9b22bd4af65d6f12e3414eb130dc27a884c53bceabdfe8bafb9772db01f
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-assert/CONTROL b/ports/boost-assert/CONTROL
new file mode 100644
index 000000000..70f7769c3
--- /dev/null
+++ b/ports/boost-assert/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-assert
+Version: 1.66.0
+Build-Depends: boost-config, boost-vcpkg-helpers
+Description: Boost assert module
diff --git a/ports/boost-assert/portfile.cmake b/ports/boost-assert/portfile.cmake
new file mode 100644
index 000000000..6112c47bf
--- /dev/null
+++ b/ports/boost-assert/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/assert
+ REF boost-1.66.0
+ SHA512 a00e17793c94d8d9e616bc5e80433fd68e4e4e51abf23956b6a7c977b01300d6a2200e9f6a8d249d7813b57d20fb2e6a844f5d2eb7504add99d748f89c2f39d5
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-assign/CONTROL b/ports/boost-assign/CONTROL
new file mode 100644
index 000000000..88deae645
--- /dev/null
+++ b/ports/boost-assign/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-assign
+Version: 1.66.0
+Build-Depends: boost-array, boost-config, boost-detail, boost-mpl, boost-preprocessor, boost-ptr-container, boost-range, boost-static-assert, boost-tuple, boost-type-traits, boost-vcpkg-helpers
+Description: Boost assign module
diff --git a/ports/boost-assign/portfile.cmake b/ports/boost-assign/portfile.cmake
new file mode 100644
index 000000000..470e22cd9
--- /dev/null
+++ b/ports/boost-assign/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/assign
+ REF boost-1.66.0
+ SHA512 501e11279f672a24585a6189438f2310358cc67a8838995abb0f1454f230242fdd8f206ec294cdbb39ebe7e606a8a4ef2a96e0fe236d5e044ab4708eae030264
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-atomic/CONTROL b/ports/boost-atomic/CONTROL
new file mode 100644
index 000000000..9c84408eb
--- /dev/null
+++ b/ports/boost-atomic/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-atomic
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-integer, boost-type-traits, boost-vcpkg-helpers
+Description: Boost atomic module
diff --git a/ports/boost-atomic/portfile.cmake b/ports/boost-atomic/portfile.cmake
new file mode 100644
index 000000000..650016d6f
--- /dev/null
+++ b/ports/boost-atomic/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/atomic
+ REF boost-1.66.0
+ SHA512 2f13902827ea0639ec37e514d87cfc9081bca6f4f6d98e0ad84f19b2042900e03bb3f5c2fb4891864174ae5abb743315af27062d7b10de861e91a7e92df91f98
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-beast/CONTROL b/ports/boost-beast/CONTROL
new file mode 100644
index 000000000..13f1d67f6
--- /dev/null
+++ b/ports/boost-beast/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-beast
+Version: 1.66.0
+Build-Depends: boost-asio, boost-assert, boost-config, boost-container, boost-core, boost-endian, boost-intrusive, boost-optional, boost-smart-ptr, boost-static-assert, boost-system, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi
+Description: Boost beast module
diff --git a/ports/boost-beast/portfile.cmake b/ports/boost-beast/portfile.cmake
new file mode 100644
index 000000000..06312f417
--- /dev/null
+++ b/ports/boost-beast/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/beast
+ REF boost-1.66.0
+ SHA512 0559721217469b3862c6653488de245841f351098766d2cbf4d0fd3a2ecdd96460ecaf5591166dc59f7c5a9806edab9101c9939c98b294c3cbd2d738dd07f6c6
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-bimap/CONTROL b/ports/boost-bimap/CONTROL
new file mode 100644
index 000000000..7c84d3103
--- /dev/null
+++ b/ports/boost-bimap/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-bimap
+Version: 1.66.0
+Build-Depends: boost-concept-check, boost-config, boost-functional, boost-iterator, boost-lambda, boost-mpl, boost-multi-index, boost-preprocessor, boost-property-map, boost-serialization, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost bimap module
diff --git a/ports/boost-bimap/portfile.cmake b/ports/boost-bimap/portfile.cmake
new file mode 100644
index 000000000..313cd9075
--- /dev/null
+++ b/ports/boost-bimap/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/bimap
+ REF boost-1.66.0
+ SHA512 f0784a2fd2be60b404d8a3bb43fa4685ab75a17a18e9e9fb0a8e8d1df18323ad02ad12720f5cfb310c93a33fd3bdec09d8ac92cbc4ff875f9ff4c3a6263d4f8b
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-bind/CONTROL b/ports/boost-bind/CONTROL
new file mode 100644
index 000000000..1c9875b2f
--- /dev/null
+++ b/ports/boost-bind/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-bind
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-detail, boost-vcpkg-helpers
+Description: Boost bind module
diff --git a/ports/boost-bind/portfile.cmake b/ports/boost-bind/portfile.cmake
new file mode 100644
index 000000000..9cc1df5e7
--- /dev/null
+++ b/ports/boost-bind/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/bind
+ REF boost-1.66.0
+ SHA512 a3366e1d30b6d69fe1ce9a7daeabb5e32a64dea3c043be44327941e93a19a3bfa78a1a552c189edf7490f743d1e5686555d3caaf6826aeb6c7be4900e9c2368c
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-build/CONTROL b/ports/boost-build/CONTROL
new file mode 100644
index 000000000..d034154d3
--- /dev/null
+++ b/ports/boost-build/CONTROL
@@ -0,0 +1,3 @@
+Source: boost-build
+Version: 1.66.0
+Description: Boost.Build
diff --git a/ports/boost-build/portfile.cmake b/ports/boost-build/portfile.cmake
new file mode 100644
index 000000000..dec41e37b
--- /dev/null
+++ b/ports/boost-build/portfile.cmake
@@ -0,0 +1,54 @@
+include(vcpkg_common_functions)
+
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+
+if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" AND NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ return()
+endif()
+
+# This fixes the lib path to use desktop libs instead of uwp -- TODO: improve this with better "host" compilation
+string(REPLACE "\\store\\;" "\\;" LIB "$ENV{LIB}")
+set(ENV{LIB} "${LIB}")
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/build
+ REF boost-1.66.0
+ SHA512 db94eefa0c2fe410cfdf7599102670377a069d52a7c8d4181f6209e3e65860e9d92f86ec5994e402b8a773a47a4ad5c074acf9763eabbe293266af19380e7ca9
+ HEAD_REF master
+)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://raw.githubusercontent.com/boostorg/boost/boost-1.65.1/LICENSE_1_0.txt"
+ FILENAME "boost_LICENSE_1_0.txt"
+ SHA512 d6078467835dba8932314c1c1e945569a64b065474d7aced27c9a7acc391d52e9f234138ed9f1aa9cd576f25f12f557e0b733c14891d42c16ecdc4a7bd4d60b8
+)
+
+vcpkg_download_distfile(BOOSTCPP_ARCHIVE
+ URLS "https://raw.githubusercontent.com/boostorg/boost/boost-1.66.0/boostcpp.jam"
+ FILENAME "boost-1.66.0-boostcpp.jam"
+ SHA512 ef2ae1d6a53a7f93654950e2e8e679da6b0359f02baafc03db970801634c1f5d4229633b5b6d74ad96a306e6efe3429d436669dc165b1fa655917e0ec74714e4
+)
+
+file(COPY
+ ${SOURCE_PATH}/
+ DESTINATION ${CURRENT_PACKAGES_DIR}/tools/boost-build
+)
+
+file(READ "${CURRENT_PACKAGES_DIR}/tools/boost-build/src/tools/msvc.jam" _contents)
+string(REPLACE " /ZW /EHsc " "" _contents "${_contents}")
+string(REPLACE "-nologo" "" _contents "${_contents}")
+string(REPLACE "/nologo" "" _contents "${_contents}")
+string(REPLACE "/Zm800" "" _contents "${_contents}")
+string(REPLACE "<define>_WIN32_WINNT=0x0602" "" _contents "${_contents}")
+file(WRITE "${CURRENT_PACKAGES_DIR}/tools/boost-build/src/tools/msvc.jam" "${_contents}")
+
+message(STATUS "Bootstrapping...")
+vcpkg_execute_required_process(
+ COMMAND "${CURRENT_PACKAGES_DIR}/tools/boost-build/bootstrap.bat" msvc
+ WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/boost-build
+ LOGNAME bootstrap-${TARGET_TRIPLET}
+)
+
+file(INSTALL ${ARCHIVE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/boost-build RENAME copyright)
+file(INSTALL ${BOOSTCPP_ARCHIVE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/boost-build RENAME boostcpp.jam)
diff --git a/ports/boost-callable-traits/CONTROL b/ports/boost-callable-traits/CONTROL
new file mode 100644
index 000000000..dbe301198
--- /dev/null
+++ b/ports/boost-callable-traits/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-callable-traits
+Version: 1.66.0
+Build-Depends: boost-vcpkg-helpers
+Description: Boost callable_traits module
diff --git a/ports/boost-callable-traits/portfile.cmake b/ports/boost-callable-traits/portfile.cmake
new file mode 100644
index 000000000..4bc138320
--- /dev/null
+++ b/ports/boost-callable-traits/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/callable_traits
+ REF boost-1.66.0
+ SHA512 87a0f4de9a8cf2652addca6b3b685cea242bf55e1609409f41360813761ad3078b414761cf34856223fe60f460616e13e7b2e6017afc3d053879c7ec8292b9b0
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-chrono/CONTROL b/ports/boost-chrono/CONTROL
new file mode 100644
index 000000000..00ee98871
--- /dev/null
+++ b/ports/boost-chrono/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-chrono
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-integer, boost-move, boost-mpl, boost-predef, boost-ratio, boost-static-assert, boost-system, boost-throw-exception, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi
+Description: Boost chrono module
diff --git a/ports/boost-chrono/portfile.cmake b/ports/boost-chrono/portfile.cmake
new file mode 100644
index 000000000..167414ebf
--- /dev/null
+++ b/ports/boost-chrono/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/chrono
+ REF boost-1.66.0
+ SHA512 edbc8c16bcdc4b79c47885e720c96781e6737d31c54e2c051596e693390c5a8efca4e16e253db0db5a996c72c1d0fb6482dda7dc58f78fd67edb09ad12f3a25b
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-circular-buffer/CONTROL b/ports/boost-circular-buffer/CONTROL
new file mode 100644
index 000000000..56be43c12
--- /dev/null
+++ b/ports/boost-circular-buffer/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-circular-buffer
+Version: 1.66.0
+Build-Depends: boost-assert, boost-compatibility, boost-concept-check, boost-config, boost-container, boost-core, boost-detail, boost-iterator, boost-move, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost circular_buffer module
diff --git a/ports/boost-circular-buffer/portfile.cmake b/ports/boost-circular-buffer/portfile.cmake
new file mode 100644
index 000000000..ebb8be3d0
--- /dev/null
+++ b/ports/boost-circular-buffer/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/circular_buffer
+ REF boost-1.66.0
+ SHA512 78d74fa417da8d19b8344feccff009ed90eb07e36251f2a18dcd58716c230c7faade68faf2b7b98c2fc43fea8186c38e5a81c1d2c981841b59e35b0dc6026943
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-compatibility/CONTROL b/ports/boost-compatibility/CONTROL
new file mode 100644
index 000000000..acb31e6f1
--- /dev/null
+++ b/ports/boost-compatibility/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-compatibility
+Version: 1.66.0
+Build-Depends: boost-vcpkg-helpers
+Description: Boost compatibility module
diff --git a/ports/boost-compatibility/portfile.cmake b/ports/boost-compatibility/portfile.cmake
new file mode 100644
index 000000000..cd9464deb
--- /dev/null
+++ b/ports/boost-compatibility/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/compatibility
+ REF boost-1.66.0
+ SHA512 3f78455431974ca24fe48a6fce22eb9f374455560f2e9442c921e082e23ceb82b9ac2a443e6c4dbba2d24531dd0752ef854d3548340e3dba42b31aa795885fe3
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-compute/CONTROL b/ports/boost-compute/CONTROL
new file mode 100644
index 000000000..3c7b1c17e
--- /dev/null
+++ b/ports/boost-compute/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-compute
+Version: 1.66.0
+Build-Depends: boost-algorithm, boost-array, boost-assert, boost-chrono, boost-config, boost-core, boost-filesystem (windows), boost-function, boost-function-types, boost-fusion, boost-iterator, boost-lexical-cast, boost-math, boost-mpl, boost-optional, boost-preprocessor, boost-property-tree, boost-proto, boost-range, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-tuple, boost-typeof, boost-type-traits, boost-utility, boost-uuid, boost-vcpkg-helpers
+Description: Boost compute module
diff --git a/ports/boost-compute/portfile.cmake b/ports/boost-compute/portfile.cmake
new file mode 100644
index 000000000..fd8e2cd39
--- /dev/null
+++ b/ports/boost-compute/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/compute
+ REF boost-1.66.0
+ SHA512 c540200a62faf4e4b5895177d9b33f9316d0d5e4052f3bfea7eb33d9faa9446bd5015c55f59c923134c59d635f1078e1e7e50e013636efc65820056bb6bdb704
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-concept-check/CONTROL b/ports/boost-concept-check/CONTROL
new file mode 100644
index 000000000..c56fc9fae
--- /dev/null
+++ b/ports/boost-concept-check/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-concept-check
+Version: 1.66.0
+Build-Depends: boost-config, boost-mpl, boost-vcpkg-helpers
+Description: Boost concept_check module
diff --git a/ports/boost-concept-check/portfile.cmake b/ports/boost-concept-check/portfile.cmake
new file mode 100644
index 000000000..0aa690830
--- /dev/null
+++ b/ports/boost-concept-check/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/concept_check
+ REF boost-1.66.0
+ SHA512 bec39bf040752414e08f7f6222b8557ea27df0e48c57fc2a1ad680ee15256a37a4e6a8cad1b39bb5f8800bfc7a32c39f89321669d04be9698775e77cd26e2fee
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-config/CONTROL b/ports/boost-config/CONTROL
new file mode 100644
index 000000000..ed053950a
--- /dev/null
+++ b/ports/boost-config/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-config
+Version: 1.66.0
+Build-Depends: boost-vcpkg-helpers
+Description: Boost config module
diff --git a/ports/boost-config/portfile.cmake b/ports/boost-config/portfile.cmake
new file mode 100644
index 000000000..7b1a023c1
--- /dev/null
+++ b/ports/boost-config/portfile.cmake
@@ -0,0 +1,20 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/config
+ REF boost-1.66.0
+ SHA512 7754f48170ceb06fce2961bf7ecf85d7601eccdaf1949fc5730a2bfb4524ff32b703be053059defcfb1c08d21573e8184a38283c59b6091f69e565eade06d9c1
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
+file(APPEND ${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp "\n#ifndef BOOST_ALL_NO_LIB\n#define BOOST_ALL_NO_LIB\n#endif\n")
+file(APPEND ${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp "\n#undef BOOST_ALL_DYN_LINK\n")
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(APPEND ${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp "\n#define BOOST_ALL_DYN_LINK\n")
+endif()
diff --git a/ports/boost-container/CONTROL b/ports/boost-container/CONTROL
new file mode 100644
index 000000000..df2cfe44e
--- /dev/null
+++ b/ports/boost-container/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-container
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-core, boost-functional, boost-integer, boost-intrusive, boost-move, boost-static-assert, boost-type-traits, boost-vcpkg-helpers
+Description: Boost container module
diff --git a/ports/boost-container/portfile.cmake b/ports/boost-container/portfile.cmake
new file mode 100644
index 000000000..46aefd96d
--- /dev/null
+++ b/ports/boost-container/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/container
+ REF boost-1.66.0
+ SHA512 805421c56ace8786803a572e6047f0ab2de74973d7b04d603080b007c6ee7f288364dfe91f6d11be6128e8d5b0d9b2554237a6f77ee3855f3b598c3d5e20f3d1
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-context/CONTROL b/ports/boost-context/CONTROL
new file mode 100644
index 000000000..37568a50d
--- /dev/null
+++ b/ports/boost-context/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-context
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-integer, boost-pool, boost-predef, boost-smart-ptr, boost-vcpkg-helpers
+Description: Boost context module
diff --git a/ports/boost-context/portfile.cmake b/ports/boost-context/portfile.cmake
new file mode 100644
index 000000000..0e5852bb6
--- /dev/null
+++ b/ports/boost-context/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/context
+ REF boost-1.66.0
+ SHA512 73efe1ab2c3b589e0ec7a095ab4a62090d8a980efbc81ac915823d1015fec215647a558bf0102fb42dbcdb05e9a4f70bd145bba095f09f1f4aec24eceddef3d4
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-conversion/CONTROL b/ports/boost-conversion/CONTROL
new file mode 100644
index 000000000..916585c42
--- /dev/null
+++ b/ports/boost-conversion/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-conversion
+Version: 1.66.0
+Build-Depends: boost-vcpkg-helpers
+Description: Boost conversion module
diff --git a/ports/boost-conversion/portfile.cmake b/ports/boost-conversion/portfile.cmake
new file mode 100644
index 000000000..25b0a5dfb
--- /dev/null
+++ b/ports/boost-conversion/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/conversion
+ REF boost-1.66.0
+ SHA512 685308e332cbcf94fa9788d36bbfcbbfe384010761b581df913f259c87add3041fba122fb0bd38ad6b706d64918f88e5b13730a4ab0e8e6f450aed82df4edd6d
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-convert/CONTROL b/ports/boost-convert/CONTROL
new file mode 100644
index 000000000..e4219cb68
--- /dev/null
+++ b/ports/boost-convert/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-convert
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-function-types, boost-lexical-cast, boost-math, boost-mpl, boost-optional, boost-parameter, boost-range, boost-spirit, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost convert module
diff --git a/ports/boost-convert/portfile.cmake b/ports/boost-convert/portfile.cmake
new file mode 100644
index 000000000..10adca8e9
--- /dev/null
+++ b/ports/boost-convert/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/convert
+ REF boost-1.66.0
+ SHA512 5edd73c5f78471a567f03e7772834656295acd6897f4674950a5064053d1c8de019050141d5109cc2bba13a94d2a06e2c7020d09af9eb78174f5bf8dc2ba2220
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-core/CONTROL b/ports/boost-core/CONTROL
new file mode 100644
index 000000000..785f2e2fd
--- /dev/null
+++ b/ports/boost-core/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-core
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-vcpkg-helpers
+Description: Boost core module
diff --git a/ports/boost-core/portfile.cmake b/ports/boost-core/portfile.cmake
new file mode 100644
index 000000000..59cb63c78
--- /dev/null
+++ b/ports/boost-core/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/core
+ REF boost-1.66.0
+ SHA512 a8705d00b2f6803f924d73dc47ec9084824e9b80d19e281da632aed60abd2c60cf8b32bca92ea3ef1b8039100a7ac61d761a0eff521e3a182a6cd7a9de8b5710
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-coroutine/CONTROL b/ports/boost-coroutine/CONTROL
new file mode 100644
index 000000000..227ffe8ef
--- /dev/null
+++ b/ports/boost-coroutine/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-coroutine
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-context (windows), boost-detail, boost-exception, boost-integer, boost-move, boost-range, boost-system, boost-thread (windows), boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost coroutine module
diff --git a/ports/boost-coroutine/portfile.cmake b/ports/boost-coroutine/portfile.cmake
new file mode 100644
index 000000000..2ba322498
--- /dev/null
+++ b/ports/boost-coroutine/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/coroutine
+ REF boost-1.66.0
+ SHA512 f42318076c1547797dd9427c47eb6a6dc5e2407f788d6e8c7e8b6092632238a6e33f1c4d02c25af00bb85f89c82a6f8f2d10911620b5d53cbc0bf931c7fdd160
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-coroutine2/CONTROL b/ports/boost-coroutine2/CONTROL
new file mode 100644
index 000000000..fd52e362a
--- /dev/null
+++ b/ports/boost-coroutine2/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-coroutine2
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-context (windows), boost-detail, boost-vcpkg-helpers
+Description: Boost coroutine2 module
diff --git a/ports/boost-coroutine2/portfile.cmake b/ports/boost-coroutine2/portfile.cmake
new file mode 100644
index 000000000..824403bbf
--- /dev/null
+++ b/ports/boost-coroutine2/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/coroutine2
+ REF boost-1.66.0
+ SHA512 2ecc05325b7870e1d315e488b9f463f56f9959e6ae98277363176f32d80ba8dbd5d6b706e7cc60c896f53708fb25841ed5ef9f0520dba22c5f1a32ac120559f2
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-crc/CONTROL b/ports/boost-crc/CONTROL
new file mode 100644
index 000000000..fdc424db6
--- /dev/null
+++ b/ports/boost-crc/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-crc
+Version: 1.66.0
+Build-Depends: boost-compatibility, boost-config, boost-integer, boost-vcpkg-helpers
+Description: Boost crc module
diff --git a/ports/boost-crc/portfile.cmake b/ports/boost-crc/portfile.cmake
new file mode 100644
index 000000000..b8d183cd2
--- /dev/null
+++ b/ports/boost-crc/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/crc
+ REF boost-1.66.0
+ SHA512 887a1ee59535f150a6166432e8b9fdd124d604363c3609f9958d25ce3f265c42f1d749b52075d4e617acf552f68a56d92d249f562ad6475b53b15ca364e4e5b4
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-date-time/CONTROL b/ports/boost-date-time/CONTROL
new file mode 100644
index 000000000..73f8d07ce
--- /dev/null
+++ b/ports/boost-date-time/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-date-time
+Version: 1.66.0
+Build-Depends: boost-algorithm, boost-assert, boost-build, boost-compatibility, boost-config, boost-detail, boost-integer, boost-io, boost-lexical-cast, boost-math, boost-mpl, boost-range, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-tokenizer, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi
+Description: Boost date_time module
diff --git a/ports/boost-date-time/portfile.cmake b/ports/boost-date-time/portfile.cmake
new file mode 100644
index 000000000..fad0f01e9
--- /dev/null
+++ b/ports/boost-date-time/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/date_time
+ REF boost-1.66.0
+ SHA512 5c8ddf94d1c5a0bc5c216c9cbb4560a2e0aa7b116966a9a9250a517fb4c83f2fb9ad0c37c65f65e8cad2c7f21f621d696e1efd6d2bd557c1bfaa8b9d8c566f7d
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-detail/CONTROL b/ports/boost-detail/CONTROL
new file mode 100644
index 000000000..21ae5d726
--- /dev/null
+++ b/ports/boost-detail/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-detail
+Version: 1.66.0
+Build-Depends: boost-compatibility, boost-config, boost-vcpkg-helpers
+Description: Boost detail module
diff --git a/ports/boost-detail/portfile.cmake b/ports/boost-detail/portfile.cmake
new file mode 100644
index 000000000..072f14361
--- /dev/null
+++ b/ports/boost-detail/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/detail
+ REF boost-1.66.0
+ SHA512 9ad69f2d032535207748680e635b5c5cfeb2921f67f6d711d5083fd67686f63476fa04c03e0abf63bc58405b4a38b542686192398930154df716ea9381c7a43f
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-disjoint-sets/CONTROL b/ports/boost-disjoint-sets/CONTROL
new file mode 100644
index 000000000..7ab636e2d
--- /dev/null
+++ b/ports/boost-disjoint-sets/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-disjoint-sets
+Version: 1.66.0
+Build-Depends: boost-graph, boost-vcpkg-helpers
+Description: Boost disjoint_sets module
diff --git a/ports/boost-disjoint-sets/portfile.cmake b/ports/boost-disjoint-sets/portfile.cmake
new file mode 100644
index 000000000..1b0c9aba3
--- /dev/null
+++ b/ports/boost-disjoint-sets/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/disjoint_sets
+ REF boost-1.66.0
+ SHA512 608239f39a11995ebd930d250a39c92971b6547b853eabe49938f6bbdadfbdb4f2220ccaf98e3516fe817284dc310dfb579f6fd7ae082dda9e7a5f80ce53abe6
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-dll/CONTROL b/ports/boost-dll/CONTROL
new file mode 100644
index 000000000..96c9f59dc
--- /dev/null
+++ b/ports/boost-dll/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-dll
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-filesystem (windows), boost-integer, boost-move, boost-mpl, boost-predef, boost-smart-ptr, boost-spirit, boost-static-assert, boost-system, boost-throw-exception, boost-type-index, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi
+Description: Boost dll module
diff --git a/ports/boost-dll/portfile.cmake b/ports/boost-dll/portfile.cmake
new file mode 100644
index 000000000..c387a6d7c
--- /dev/null
+++ b/ports/boost-dll/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/dll
+ REF boost-1.66.0
+ SHA512 42e4442fbf50f33528e389ca463042c9155df970a7725a6d10213e3a8c311b638006271d1b5691e0ccdeb71652034568b2b5fa299a5b1580ad4433db0371138a
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-dynamic-bitset/CONTROL b/ports/boost-dynamic-bitset/CONTROL
new file mode 100644
index 000000000..1170b0099
--- /dev/null
+++ b/ports/boost-dynamic-bitset/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-dynamic-bitset
+Version: 1.66.0
+Build-Depends: boost-serialization, boost-vcpkg-helpers
+Description: Boost dynamic_bitset module
diff --git a/ports/boost-dynamic-bitset/portfile.cmake b/ports/boost-dynamic-bitset/portfile.cmake
new file mode 100644
index 000000000..63928751a
--- /dev/null
+++ b/ports/boost-dynamic-bitset/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/dynamic_bitset
+ REF boost-1.66.0
+ SHA512 fa9bc10bbcd7ea907acf11abfd245fa70e4d82e5f7fe5b295b65e404ed19b276c06cd68ccec36a2276e76985a20c2a788c99e8cee095f24c04d0c8c5f5952135
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-endian/CONTROL b/ports/boost-endian/CONTROL
new file mode 100644
index 000000000..cfcb7cb52
--- /dev/null
+++ b/ports/boost-endian/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-endian
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-core, boost-integer, boost-predef, boost-static-assert, boost-system, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost endian module
diff --git a/ports/boost-endian/portfile.cmake b/ports/boost-endian/portfile.cmake
new file mode 100644
index 000000000..14f19b0ed
--- /dev/null
+++ b/ports/boost-endian/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/endian
+ REF boost-1.66.0
+ SHA512 5b23ff8f2fd2f59dc56637bef628328e8b99e261ce421809363cdfeb203646667f10b624b114e8e70d1fdfce0d53055dd03376d21ef4b5cba0f51b600091f2f3
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-exception/CONTROL b/ports/boost-exception/CONTROL
new file mode 100644
index 000000000..52d316c34
--- /dev/null
+++ b/ports/boost-exception/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-exception
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-core, boost-smart-ptr, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost exception module
diff --git a/ports/boost-exception/portfile.cmake b/ports/boost-exception/portfile.cmake
new file mode 100644
index 000000000..dd5d6540e
--- /dev/null
+++ b/ports/boost-exception/portfile.cmake
@@ -0,0 +1,18 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/exception
+ REF boost-1.66.0
+ SHA512 ab4bd5df7250847c866e5b6db99930d190c04b2c2a46e49eb62e9ed9467b6f5aa60aa2db87e9fe27145321bf429a23e94a83bb28ea9f574d01b02ea06dd89571
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
+
+set(VCPKG_LIBRARY_LINKAGE static)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
diff --git a/ports/boost-fiber/CONTROL b/ports/boost-fiber/CONTROL
new file mode 100644
index 000000000..776d929a3
--- /dev/null
+++ b/ports/boost-fiber/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-fiber
+Version: 1.66.0
+Build-Depends: boost-algorithm, boost-assert, boost-build, boost-config, boost-context (windows), boost-core, boost-detail, boost-filesystem (windows), boost-format, boost-intrusive, boost-predef, boost-smart-ptr, boost-vcpkg-helpers
+Description: Boost fiber module
diff --git a/ports/boost-fiber/portfile.cmake b/ports/boost-fiber/portfile.cmake
new file mode 100644
index 000000000..0ea0edcc4
--- /dev/null
+++ b/ports/boost-fiber/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/fiber
+ REF boost-1.66.0
+ SHA512 ba3980846e6602999a2187fb40c9c17d0bd0a8b7681bcdb2c9695ec5e218b6306c52680b565e176f170a7219aedf86596e356e92612bee87bf1ad8123261ccaf
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-filesystem/CONTROL b/ports/boost-filesystem/CONTROL
new file mode 100644
index 000000000..afa6d0e45
--- /dev/null
+++ b/ports/boost-filesystem/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-filesystem
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-functional, boost-integer, boost-io, boost-iterator, boost-range, boost-smart-ptr, boost-static-assert, boost-system, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost filesystem module
diff --git a/ports/boost-filesystem/portfile.cmake b/ports/boost-filesystem/portfile.cmake
new file mode 100644
index 000000000..e85cc096a
--- /dev/null
+++ b/ports/boost-filesystem/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/filesystem
+ REF boost-1.66.0
+ SHA512 16c6c692485e02515fc09da5672cad4eb3c313e3a9ed9854d52ad1ba97a38d7346e4d0cf70baacba8468628bc1348350404151c3ff8984397a819d2cde3e4974
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-flyweight/CONTROL b/ports/boost-flyweight/CONTROL
new file mode 100644
index 000000000..fb4378501
--- /dev/null
+++ b/ports/boost-flyweight/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-flyweight
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-core, boost-detail, boost-functional, boost-interprocess, boost-mpl, boost-multi-index, boost-parameter, boost-preprocessor, boost-serialization, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost flyweight module
diff --git a/ports/boost-flyweight/portfile.cmake b/ports/boost-flyweight/portfile.cmake
new file mode 100644
index 000000000..858560aeb
--- /dev/null
+++ b/ports/boost-flyweight/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/flyweight
+ REF boost-1.66.0
+ SHA512 4c0faaafe0143404d6eabc57ee5089840290c865ab00b7b3c81d4ab37c1603aaec77bc7f592e4566ed20786a14bc6bb9a6623384fdf6886168cac2696224c6df
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-foreach/CONTROL b/ports/boost-foreach/CONTROL
new file mode 100644
index 000000000..e2ecd2aae
--- /dev/null
+++ b/ports/boost-foreach/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-foreach
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-detail, boost-iterator, boost-mpl, boost-range, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost foreach module
diff --git a/ports/boost-foreach/portfile.cmake b/ports/boost-foreach/portfile.cmake
new file mode 100644
index 000000000..9801f7053
--- /dev/null
+++ b/ports/boost-foreach/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/foreach
+ REF boost-1.66.0
+ SHA512 17ae42db9b9b13841133cb35ccd1b0a2bf6121e72ef53b7f06d8715d0ef2d9c6daee631df1c8eb87013b1415ec4ed7481b3d67aa86122c84bfc560b0815f81c6
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-format/CONTROL b/ports/boost-format/CONTROL
new file mode 100644
index 000000000..264544399
--- /dev/null
+++ b/ports/boost-format/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-format
+Version: 1.66.0
+Build-Depends: boost-assert, boost-compatibility, boost-config, boost-core, boost-detail, boost-optional, boost-smart-ptr, boost-throw-exception, boost-utility, boost-vcpkg-helpers
+Description: Boost format module
diff --git a/ports/boost-format/portfile.cmake b/ports/boost-format/portfile.cmake
new file mode 100644
index 000000000..a6c44bd27
--- /dev/null
+++ b/ports/boost-format/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/format
+ REF boost-1.66.0
+ SHA512 f730b56c3c56e85d5f467b7c9b60b29b112990ac29ecfbd6cdcd41ac6c931b71067a88d35ba688c8b80b9f4636a5f6010448f470cd3c0c7cad7c8c1d933c1a67
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-function-types/CONTROL b/ports/boost-function-types/CONTROL
new file mode 100644
index 000000000..a091f72c4
--- /dev/null
+++ b/ports/boost-function-types/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-function-types
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-detail, boost-mpl, boost-preprocessor, boost-type-traits, boost-vcpkg-helpers
+Description: Boost function_types module
diff --git a/ports/boost-function-types/portfile.cmake b/ports/boost-function-types/portfile.cmake
new file mode 100644
index 000000000..1b3190699
--- /dev/null
+++ b/ports/boost-function-types/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/function_types
+ REF boost-1.66.0
+ SHA512 ecac32195728a38bb83ee553d25567bca3a4075948fbffdf2f5d6cd7c4df7ca1b90ed32ec2811e6aa7eea264d6a1e63c8fc2fc9a091d081e231aadb513ed1646
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-function/CONTROL b/ports/boost-function/CONTROL
new file mode 100644
index 000000000..78e68d4a9
--- /dev/null
+++ b/ports/boost-function/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-function
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-core, boost-detail, boost-integer, boost-mpl, boost-preprocessor, boost-type-index, boost-typeof, boost-type-traits, boost-vcpkg-helpers
+Description: Boost function module
diff --git a/ports/boost-function/portfile.cmake b/ports/boost-function/portfile.cmake
new file mode 100644
index 000000000..c0db0b55f
--- /dev/null
+++ b/ports/boost-function/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/function
+ REF boost-1.66.0
+ SHA512 7efe61484e99bf4b68bd70415411fe4b22da6c76c7bb2e4b86fc766a98f5bca02d3911c81763893edfabfe6dc3fd4e0b125656a518e4b46449ef2620c1278454
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-functional/CONTROL b/ports/boost-functional/CONTROL
new file mode 100644
index 000000000..1c5b17ccd
--- /dev/null
+++ b/ports/boost-functional/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-functional
+Version: 1.66.0
+Build-Depends: boost-assert, boost-compatibility, boost-config, boost-detail, boost-integer, boost-mpl, boost-preprocessor, boost-static-assert, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost functional module
diff --git a/ports/boost-functional/portfile.cmake b/ports/boost-functional/portfile.cmake
new file mode 100644
index 000000000..503d0786f
--- /dev/null
+++ b/ports/boost-functional/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/functional
+ REF boost-1.66.0
+ SHA512 d909a4d4696ece5ebaff97a743c5f9fec2ce27b72de46a96252a07a021ad689ce73aab1f1828ca2925bac0ef48ccbe99bdd5f6a56186061fdecdb416f72cc98f
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-fusion/CONTROL b/ports/boost-fusion/CONTROL
new file mode 100644
index 000000000..29864c681
--- /dev/null
+++ b/ports/boost-fusion/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-fusion
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-detail, boost-functional, boost-function-types, boost-mpl, boost-preprocessor, boost-static-assert, boost-tuple, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost fusion module
diff --git a/ports/boost-fusion/portfile.cmake b/ports/boost-fusion/portfile.cmake
new file mode 100644
index 000000000..ab3b553dd
--- /dev/null
+++ b/ports/boost-fusion/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/fusion
+ REF boost-1.66.0
+ SHA512 2c965b3ad18f4b2551af4595de415c3c1354296c1244675a354b74de12106bf10ddea07c7e55e93469f3af0de64cb00e1d353e569af40de506d68b88adeba7d0
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-geometry/CONTROL b/ports/boost-geometry/CONTROL
new file mode 100644
index 000000000..009e7e1c1
--- /dev/null
+++ b/ports/boost-geometry/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-geometry
+Version: 1.66.0
+Build-Depends: boost-algorithm, boost-array, boost-assert, boost-concept-check, boost-config, boost-container, boost-core, boost-detail, boost-function-types, boost-fusion, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-move, boost-mpl, boost-multiprecision, boost-numeric-conversion, boost-polygon, boost-qvm, boost-range, boost-rational, boost-serialization, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-tokenizer, boost-tuple, boost-type-traits, boost-utility, boost-variant, boost-vcpkg-helpers
+Description: Boost geometry module
diff --git a/ports/boost-geometry/portfile.cmake b/ports/boost-geometry/portfile.cmake
new file mode 100644
index 000000000..9e30e8fc7
--- /dev/null
+++ b/ports/boost-geometry/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/geometry
+ REF boost-1.66.0
+ SHA512 05f983d9258ddc663139a46ecb2f8a14988ad74fcc623af713bc486de2c9241896ca5f6a85d47cd02911f5f1f2f5acc439bb6f45ae9ef13667a30d27d9b5c123
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-gil/CONTROL b/ports/boost-gil/CONTROL
new file mode 100644
index 000000000..71bf438b8
--- /dev/null
+++ b/ports/boost-gil/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-gil
+Version: 1.66.0
+Build-Depends: boost-bind, boost-concept-check, boost-config, boost-integer, boost-iterator, boost-mpl, boost-preprocessor, boost-smart-ptr, boost-static-assert, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost gil module
diff --git a/ports/boost-gil/portfile.cmake b/ports/boost-gil/portfile.cmake
new file mode 100644
index 000000000..8ce5cc5aa
--- /dev/null
+++ b/ports/boost-gil/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/gil
+ REF boost-1.66.0
+ SHA512 f60c452740e56810ee967aab68b61277af0b467085bb7594dfbdea07e02354f2533983f88867c788862bc30c027720f8aeff2ab8f5a251c1a2b7c686b43064bc
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-graph-parallel/CONTROL b/ports/boost-graph-parallel/CONTROL
new file mode 100644
index 000000000..f3a7a6744
--- /dev/null
+++ b/ports/boost-graph-parallel/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-graph-parallel
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-compatibility, boost-config, boost-detail, boost-dynamic-bitset, boost-function, boost-functional, boost-graph, boost-iterator, boost-lexical-cast, boost-math, boost-mpi, boost-mpl, boost-optional, boost-property-map, boost-random, boost-serialization, boost-smart-ptr, boost-static-assert, boost-tuple, boost-type-traits, boost-utility, boost-variant, boost-vcpkg-helpers
+Description: Boost graph_parallel module
diff --git a/ports/boost-graph-parallel/portfile.cmake b/ports/boost-graph-parallel/portfile.cmake
new file mode 100644
index 000000000..022831655
--- /dev/null
+++ b/ports/boost-graph-parallel/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/graph_parallel
+ REF boost-1.66.0
+ SHA512 0f897d52610827b352c509d9d3400a9424f2e927fe5bce7ba1a39884938ca9ae1c9d362277828d3e77fa727676bfeb993f3d9bc7f11815cc119c0dabbd5a2ed4
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-graph/CONTROL b/ports/boost-graph/CONTROL
new file mode 100644
index 000000000..dc81d1a85
--- /dev/null
+++ b/ports/boost-graph/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-graph
+Version: 1.66.0
+Build-Depends: boost-algorithm, boost-any, boost-array, boost-assert, boost-bimap, boost-bind, boost-build, boost-compatibility, boost-concept-check, boost-config, boost-conversion, boost-core, boost-detail, boost-foreach, boost-function, boost-functional, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-move, boost-mpl, boost-multi-index, boost-optional, boost-parameter, boost-preprocessor, boost-property-map, boost-property-tree, boost-random, boost-range, boost-regex, boost-serialization, boost-smart-ptr, boost-spirit, boost-static-assert, boost-test (windows), boost-throw-exception, boost-tti, boost-tuple, boost-typeof, boost-type-traits, boost-unordered, boost-utility, boost-vcpkg-helpers, boost-xpressive
+Description: Boost graph module
diff --git a/ports/boost-graph/portfile.cmake b/ports/boost-graph/portfile.cmake
new file mode 100644
index 000000000..84948ccad
--- /dev/null
+++ b/ports/boost-graph/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/graph
+ REF boost-1.66.0
+ SHA512 49f0292a4cbb26c4f9ada0e85f717a7848a81812957b891f72e99c9b7a62025bce244a2f7ef56aaf42f44ab11c41a02be4f1f70df41d3605da45becf370ca81b
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-hana/CONTROL b/ports/boost-hana/CONTROL
new file mode 100644
index 000000000..9c9524e01
--- /dev/null
+++ b/ports/boost-hana/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-hana
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-fusion, boost-mpl, boost-tuple, boost-vcpkg-helpers
+Description: Boost hana module
diff --git a/ports/boost-hana/portfile.cmake b/ports/boost-hana/portfile.cmake
new file mode 100644
index 000000000..a46cfb28f
--- /dev/null
+++ b/ports/boost-hana/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/hana
+ REF boost-1.66.0
+ SHA512 cf105931ad59147edd97aaee29d9af4f069ada58c1c0f49eba7c3f921c5a412c90609853603504207526cf80c728f188ba4ee024fc2b7c8c924f98faf543167a
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-heap/CONTROL b/ports/boost-heap/CONTROL
new file mode 100644
index 000000000..588ee634c
--- /dev/null
+++ b/ports/boost-heap/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-heap
+Version: 1.66.0
+Build-Depends: boost-array, boost-assert, boost-bind, boost-concept-check, boost-integer, boost-intrusive, boost-iterator, boost-mpl, boost-parameter, boost-static-assert, boost-throw-exception, boost-type-traits, boost-vcpkg-helpers
+Description: Boost heap module
diff --git a/ports/boost-heap/portfile.cmake b/ports/boost-heap/portfile.cmake
new file mode 100644
index 000000000..636763954
--- /dev/null
+++ b/ports/boost-heap/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/heap
+ REF boost-1.66.0
+ SHA512 3c7f14860e6456144f1282024bdf8c99415fe2c9395a01dea9000b26e9587430a73e133e7c72f3d40b5eab9c891e86ea3fa420a84e7d187a349f869f721b4587
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-icl/CONTROL b/ports/boost-icl/CONTROL
new file mode 100644
index 000000000..d5d8aba74
--- /dev/null
+++ b/ports/boost-icl/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-icl
+Version: 1.66.0
+Build-Depends: boost-assert, boost-concept-check, boost-config, boost-date-time, boost-detail, boost-iterator, boost-move, boost-mpl, boost-rational, boost-static-assert, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost icl module
diff --git a/ports/boost-icl/portfile.cmake b/ports/boost-icl/portfile.cmake
new file mode 100644
index 000000000..e442621fa
--- /dev/null
+++ b/ports/boost-icl/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/icl
+ REF boost-1.66.0
+ SHA512 3e240adbc815215d58c45978a52cf9e5ee8df1b457634d53f403dfc7785372f1711e407d6b1ccd48f6e4383455a5dc2c5a35923b6ac9ae722b91094902b8a599
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-integer/CONTROL b/ports/boost-integer/CONTROL
new file mode 100644
index 000000000..6f6773b8c
--- /dev/null
+++ b/ports/boost-integer/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-integer
+Version: 1.66.0
+Build-Depends: boost-assert, boost-compatibility, boost-config, boost-core, boost-detail, boost-static-assert, boost-vcpkg-helpers
+Description: Boost integer module
diff --git a/ports/boost-integer/portfile.cmake b/ports/boost-integer/portfile.cmake
new file mode 100644
index 000000000..07dc91e20
--- /dev/null
+++ b/ports/boost-integer/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/integer
+ REF boost-1.66.0
+ SHA512 ed22f30132300985361c3176b0e308c9ed2d0a2f470c3686898c66f90dfa21912edb92477f82f75b77b3409a21ea317442ab4d21889af45ebb2bc86bf88ce67f
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-interprocess/CONTROL b/ports/boost-interprocess/CONTROL
new file mode 100644
index 000000000..75d524e61
--- /dev/null
+++ b/ports/boost-interprocess/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-interprocess
+Version: 1.66.0
+Build-Depends: boost-assert, boost-compatibility, boost-config, boost-container, boost-core, boost-date-time, boost-detail, boost-integer, boost-intrusive, boost-move, boost-static-assert, boost-type-traits, boost-unordered, boost-utility, boost-vcpkg-helpers
+Description: Boost interprocess module
diff --git a/ports/boost-interprocess/portfile.cmake b/ports/boost-interprocess/portfile.cmake
new file mode 100644
index 000000000..6e959ca2d
--- /dev/null
+++ b/ports/boost-interprocess/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/interprocess
+ REF boost-1.66.0
+ SHA512 e3c7f4fb49d126671354212fdb079c418847061a33589ab92c8cb600b469b98c658533307e1d0322c97568eb2716caccbf43b4b2d8eab520eab4d0f50b4df773
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-interval/CONTROL b/ports/boost-interval/CONTROL
new file mode 100644
index 000000000..644558413
--- /dev/null
+++ b/ports/boost-interval/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-interval
+Version: 1.66.0
+Build-Depends: boost-compatibility, boost-config, boost-logic (windows), boost-vcpkg-helpers
+Description: Boost interval module
diff --git a/ports/boost-interval/portfile.cmake b/ports/boost-interval/portfile.cmake
new file mode 100644
index 000000000..0d0a88b8b
--- /dev/null
+++ b/ports/boost-interval/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/interval
+ REF boost-1.66.0
+ SHA512 adc8e7cf75de4f07607b2a13f38c4bb442780e7ad2e5a73f831803101f61f3d93d8d26407d68b1f811309e9a1362613fd29b5ff49e013341d421b0e76d6f4a69
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-intrusive/CONTROL b/ports/boost-intrusive/CONTROL
new file mode 100644
index 000000000..966c775c3
--- /dev/null
+++ b/ports/boost-intrusive/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-intrusive
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-core, boost-functional, boost-move, boost-static-assert, boost-vcpkg-helpers
+Description: Boost intrusive module
diff --git a/ports/boost-intrusive/portfile.cmake b/ports/boost-intrusive/portfile.cmake
new file mode 100644
index 000000000..d562cd074
--- /dev/null
+++ b/ports/boost-intrusive/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/intrusive
+ REF boost-1.66.0
+ SHA512 b61e88d38c9ee6cd174380c53fc3422f72824c895b3723c4ac7b3b3e0bd52d52fe40d349db5f8eff3b23413950ae872fa7634514ac072111614875922580c493
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-io/CONTROL b/ports/boost-io/CONTROL
new file mode 100644
index 000000000..e146c12a6
--- /dev/null
+++ b/ports/boost-io/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-io
+Version: 1.66.0
+Build-Depends: boost-detail, boost-vcpkg-helpers
+Description: Boost io module
diff --git a/ports/boost-io/portfile.cmake b/ports/boost-io/portfile.cmake
new file mode 100644
index 000000000..fae7c9191
--- /dev/null
+++ b/ports/boost-io/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/io
+ REF boost-1.66.0
+ SHA512 33926210420fa6bd83006e6d2de3bad4c1094c179309402d78aea906cdb301e652b32438472a29b195fac7e007146fbb081c722cc2ebf2c63acb0d0e44f73f20
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-iostreams/CONTROL b/ports/boost-iostreams/CONTROL
new file mode 100644
index 000000000..57301cb18
--- /dev/null
+++ b/ports/boost-iostreams/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-iostreams
+Version: 1.66.0
+Build-Depends: boost-assert, boost-bind, boost-build, boost-config, boost-core, boost-detail, boost-function, boost-integer, boost-iterator, boost-mpl, boost-preprocessor, boost-range, boost-regex, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, bzip2, zlib
+Description: Boost iostreams module
diff --git a/ports/boost-iostreams/portfile.cmake b/ports/boost-iostreams/portfile.cmake
new file mode 100644
index 000000000..e49d4a579
--- /dev/null
+++ b/ports/boost-iostreams/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/iostreams
+ REF boost-1.66.0
+ SHA512 d2d603013dd952a550850c986fc18ded90a483d9eccd80aec4bb421187f6d8ba8fc2c82926f60d4e4f777c67eab1b8dc3708058147dcdd1ab259aa13cee26fd9
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-iterator/CONTROL b/ports/boost-iterator/CONTROL
new file mode 100644
index 000000000..416c85d53
--- /dev/null
+++ b/ports/boost-iterator/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-iterator
+Version: 1.66.0
+Build-Depends: boost-assert, boost-compatibility, boost-concept-check, boost-config, boost-core, boost-detail, boost-function-types, boost-fusion, boost-mpl, boost-optional, boost-static-assert, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost iterator module
diff --git a/ports/boost-iterator/portfile.cmake b/ports/boost-iterator/portfile.cmake
new file mode 100644
index 000000000..c20e9e29c
--- /dev/null
+++ b/ports/boost-iterator/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/iterator
+ REF boost-1.66.0
+ SHA512 33a3ffd242769bf55325516346193db0d5ddb69e9da1f7805c35953e4ec7f090fb60faeea8d19c17e651148ba93d48b4a634533de9b5cb13af2a5e9cd0fd0e15
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-lambda/CONTROL b/ports/boost-lambda/CONTROL
new file mode 100644
index 000000000..dd83f0048
--- /dev/null
+++ b/ports/boost-lambda/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-lambda
+Version: 1.66.0
+Build-Depends: boost-bind, boost-config, boost-detail, boost-mpl, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost lambda module
diff --git a/ports/boost-lambda/portfile.cmake b/ports/boost-lambda/portfile.cmake
new file mode 100644
index 000000000..315bf1ddf
--- /dev/null
+++ b/ports/boost-lambda/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/lambda
+ REF boost-1.66.0
+ SHA512 2f5fd6c55c686528971c9e021779f39217952b279e5bef46879233fb1c516895a4fcdc6eddf43cd0fb73aa7ee5f868d6f4d51fdc74c9f68515ef6735ff31a349
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-lexical-cast/CONTROL b/ports/boost-lexical-cast/CONTROL
new file mode 100644
index 000000000..a7c913996
--- /dev/null
+++ b/ports/boost-lexical-cast/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-lexical-cast
+Version: 1.66.0
+Build-Depends: boost-array, boost-assert, boost-compatibility, boost-config, boost-container, boost-core, boost-detail, boost-integer, boost-mpl, boost-numeric-conversion, boost-range, boost-static-assert, boost-throw-exception, boost-type-traits, boost-vcpkg-helpers
+Description: Boost lexical_cast module
diff --git a/ports/boost-lexical-cast/portfile.cmake b/ports/boost-lexical-cast/portfile.cmake
new file mode 100644
index 000000000..5187ead72
--- /dev/null
+++ b/ports/boost-lexical-cast/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/lexical_cast
+ REF boost-1.66.0
+ SHA512 93afc3a296ca30ebb3f48aaf7752a4da33d3e621b56f0f574e98a21aceb7c402fc7512ac65895c8bf473b6962222d0022a6d2aadad5ce2cdbfdf5318967dc76b
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-local-function/CONTROL b/ports/boost-local-function/CONTROL
new file mode 100644
index 000000000..512cb0f7d
--- /dev/null
+++ b/ports/boost-local-function/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-local-function
+Version: 1.66.0
+Build-Depends: boost-config, boost-mpl, boost-preprocessor, boost-scope-exit, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost local_function module
diff --git a/ports/boost-local-function/portfile.cmake b/ports/boost-local-function/portfile.cmake
new file mode 100644
index 000000000..0c59a8db7
--- /dev/null
+++ b/ports/boost-local-function/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/local_function
+ REF boost-1.66.0
+ SHA512 3f76fda169f11ceca60c8e1857643d7bf7eea85fdb615635469e28cdc6e02f022d5f698ec53608d6f1068be653ceda40f33f4c832782e347037b924208fc5d20
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-locale/CONTROL b/ports/boost-locale/CONTROL
new file mode 100644
index 000000000..884c737b4
--- /dev/null
+++ b/ports/boost-locale/CONTROL
@@ -0,0 +1,9 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-locale
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-function, boost-integer, boost-iterator, boost-smart-ptr, boost-static-assert, boost-thread (windows), boost-type-traits, boost-unordered, boost-vcpkg-helpers
+Description: Boost locale module
+
+Feature: icu
+Description: ICU backend for Boost.Locale
+Build-Depends: icu
diff --git a/ports/boost-locale/portfile.cmake b/ports/boost-locale/portfile.cmake
new file mode 100644
index 000000000..b8126dce5
--- /dev/null
+++ b/ports/boost-locale/portfile.cmake
@@ -0,0 +1,28 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/locale
+ REF boost-1.66.0
+ SHA512 558c84fe83909b9eb410ed5b846d2393733811e3765e99e41884a7fc7020163437a42584911b4f634706c1a0e79e23bb09bd6a3ffa219c9e524a10ace02728af
+ HEAD_REF master
+)
+
+if("icu" IN_LIST FEATURES)
+ set(BOOST_LOCALE_ICU on)
+else()
+ set(BOOST_LOCALE_ICU off)
+endif()
+
+boost_modular_build(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ boost.locale.iconv=off
+ boost.locale.posix=off
+ /boost/locale//boost_locale
+ boost.locale.icu=${BOOST_LOCALE_ICU}
+)
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-lockfree/CONTROL b/ports/boost-lockfree/CONTROL
new file mode 100644
index 000000000..7a6eaef4d
--- /dev/null
+++ b/ports/boost-lockfree/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-lockfree
+Version: 1.66.0
+Build-Depends: boost-align, boost-array, boost-assert, boost-atomic, boost-config, boost-core, boost-integer, boost-mpl, boost-parameter, boost-predef, boost-static-assert, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost lockfree module
diff --git a/ports/boost-lockfree/portfile.cmake b/ports/boost-lockfree/portfile.cmake
new file mode 100644
index 000000000..0f6cabeb8
--- /dev/null
+++ b/ports/boost-lockfree/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/lockfree
+ REF boost-1.66.0
+ SHA512 f4c5c146fd2e457e6ee4090a4492eef7cd204ec594349c239c3f50e348a161b8598d7445ca03daea8720b58f0eb1eb5ec8332b078f8dcd9d8133b0d17796e21e
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-log/CONTROL b/ports/boost-log/CONTROL
new file mode 100644
index 000000000..912f771d0
--- /dev/null
+++ b/ports/boost-log/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-log
+Version: 1.66.0
+Build-Depends: boost-align, boost-array, boost-asio, boost-assert, boost-atomic, boost-bind, boost-build, boost-compatibility, boost-config, boost-core, boost-date-time, boost-detail, boost-exception, boost-filesystem (windows), boost-function-types, boost-fusion, boost-integer, boost-interprocess, boost-intrusive, boost-io, boost-iterator, boost-lexical-cast, boost-locale (windows), boost-math, boost-move, boost-mpl, boost-optional, boost-parameter, boost-phoenix, boost-predef, boost-preprocessor, boost-property-tree, boost-proto, boost-random, boost-range, boost-regex, boost-smart-ptr, boost-spirit, boost-static-assert, boost-system, boost-thread (windows), boost-throw-exception, boost-type-index, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi, boost-xpressive
+Description: Boost log module
diff --git a/ports/boost-log/portfile.cmake b/ports/boost-log/portfile.cmake
new file mode 100644
index 000000000..ecc8118d9
--- /dev/null
+++ b/ports/boost-log/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/log
+ REF boost-1.66.0
+ SHA512 cb0b7ac7136c1066c6dd10a27873febbf983b9c7b7d141ba5e1076a0984cb83609a3c8d38d13e7641002d460f868c2593fecdfd86d9eb75078f14597ab965fa1
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-logic/CONTROL b/ports/boost-logic/CONTROL
new file mode 100644
index 000000000..535a53caa
--- /dev/null
+++ b/ports/boost-logic/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-logic
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-detail, boost-vcpkg-helpers
+Description: Boost logic module
diff --git a/ports/boost-logic/portfile.cmake b/ports/boost-logic/portfile.cmake
new file mode 100644
index 000000000..66df8aca6
--- /dev/null
+++ b/ports/boost-logic/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/logic
+ REF boost-1.66.0
+ SHA512 76e8534127da09c7b70e14927dae03696e251e1c9a825f466d6848dfd0ba14e0d4e8b7bd00dfebe4caf9ef10c591e0d50140b1d4c9c638e0b3f7ae7bf353b8af
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-math/CONTROL b/ports/boost-math/CONTROL
new file mode 100644
index 000000000..8343ab985
--- /dev/null
+++ b/ports/boost-math/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-math
+Version: 1.66.0
+Build-Depends: boost-array, boost-assert, boost-atomic, boost-build, boost-compatibility, boost-concept-check, boost-config, boost-core, boost-detail, boost-fusion, boost-integer, boost-lambda, boost-lexical-cast, boost-mpl, boost-predef, boost-range, boost-static-assert, boost-throw-exception, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost math module
diff --git a/ports/boost-math/portfile.cmake b/ports/boost-math/portfile.cmake
new file mode 100644
index 000000000..f6e4eeccd
--- /dev/null
+++ b/ports/boost-math/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/math
+ REF boost-1.66.0
+ SHA512 0fbeea0cb3303fe66e42b54d3db81e92d6b05a5dec90bd36e1365db738b33790e9bc6ff56a8ead0a2e2d578606702eb364d023bce0f1f42a454f60d0626e8737
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-metaparse/CONTROL b/ports/boost-metaparse/CONTROL
new file mode 100644
index 000000000..7f18a1f45
--- /dev/null
+++ b/ports/boost-metaparse/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-metaparse
+Version: 1.66.0
+Build-Depends: boost-config, boost-mpl, boost-predef, boost-preprocessor, boost-static-assert, boost-type-traits, boost-vcpkg-helpers
+Description: Boost metaparse module
diff --git a/ports/boost-metaparse/portfile.cmake b/ports/boost-metaparse/portfile.cmake
new file mode 100644
index 000000000..972f5bf52
--- /dev/null
+++ b/ports/boost-metaparse/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/metaparse
+ REF boost-1.66.0
+ SHA512 919c0f198b19114fe1ed457fead502cee729b7c14de460b176784e9778b0040a960d916b4c7fbeb3e7c3ec285b7b1a0d90de8d0dfcca5c14c9d810ab17da5717
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-move/CONTROL b/ports/boost-move/CONTROL
new file mode 100644
index 000000000..ec9de26e9
--- /dev/null
+++ b/ports/boost-move/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-move
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-detail, boost-integer, boost-static-assert, boost-vcpkg-helpers
+Description: Boost move module
diff --git a/ports/boost-move/portfile.cmake b/ports/boost-move/portfile.cmake
new file mode 100644
index 000000000..29f3a3ff7
--- /dev/null
+++ b/ports/boost-move/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/move
+ REF boost-1.66.0
+ SHA512 e431ca8c709f6acb205f93e3c1de1a3b46325e183726bd9b862f4fba436af92b3f5a945eddfe04c3fa775fd88311f98eafa9e81f5014f3a0309096f18b837286
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-mp11/CONTROL b/ports/boost-mp11/CONTROL
new file mode 100644
index 000000000..70bd30300
--- /dev/null
+++ b/ports/boost-mp11/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-mp11
+Version: 1.66.0
+Build-Depends: boost-config, boost-detail, boost-vcpkg-helpers
+Description: Boost mp11 module
diff --git a/ports/boost-mp11/portfile.cmake b/ports/boost-mp11/portfile.cmake
new file mode 100644
index 000000000..3e39072a8
--- /dev/null
+++ b/ports/boost-mp11/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/mp11
+ REF boost-1.66.0
+ SHA512 40eb7813f7821d584733b5499270b8ef26619502a3eac78b026587477be881a55efbb99769a0818c50413facb12f583b459df121c8d01dc06ceb4ea50a5f7029
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-mpi/CONTROL b/ports/boost-mpi/CONTROL
new file mode 100644
index 000000000..807729530
--- /dev/null
+++ b/ports/boost-mpi/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-mpi
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-function, boost-graph, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-mpl, boost-optional, boost-property-map, boost-python (windows), boost-serialization, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost mpi module
diff --git a/ports/boost-mpi/portfile.cmake b/ports/boost-mpi/portfile.cmake
new file mode 100644
index 000000000..66c11c29a
--- /dev/null
+++ b/ports/boost-mpi/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/mpi
+ REF boost-1.66.0
+ SHA512 bd6385274f291c905ba0239f8399058e4bf76a07d5b984a10fe737e895495c92190ef468be48c32247d4bcb3dd844a5b72b9370ebd2a95945aa38be60bdd3465
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-mpl/CONTROL b/ports/boost-mpl/CONTROL
new file mode 100644
index 000000000..f082844d6
--- /dev/null
+++ b/ports/boost-mpl/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-mpl
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-detail, boost-predef, boost-preprocessor, boost-type-traits, boost-vcpkg-helpers
+Description: Boost mpl module
diff --git a/ports/boost-mpl/portfile.cmake b/ports/boost-mpl/portfile.cmake
new file mode 100644
index 000000000..908524fb2
--- /dev/null
+++ b/ports/boost-mpl/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/mpl
+ REF boost-1.66.0
+ SHA512 e88fa03fbc0f876f838826c5ccfd3866425fa87fd81b9aeb83e4c0afded189a66b06206230f07d1177bdbc39ea5b15cb050ad6285d7704ea83bb43c7d608cc1b
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-msm/CONTROL b/ports/boost-msm/CONTROL
new file mode 100644
index 000000000..f51a7993f
--- /dev/null
+++ b/ports/boost-msm/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-msm
+Version: 1.66.0
+Build-Depends: boost-any, boost-assert, boost-bind, boost-circular-buffer, boost-config, boost-core, boost-detail, boost-function, boost-fusion, boost-mpl, boost-parameter, boost-phoenix, boost-preprocessor, boost-proto, boost-serialization, boost-tuple, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost msm module
diff --git a/ports/boost-msm/portfile.cmake b/ports/boost-msm/portfile.cmake
new file mode 100644
index 000000000..fec66d317
--- /dev/null
+++ b/ports/boost-msm/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/msm
+ REF boost-1.66.0
+ SHA512 722360bb58971b52ca2078f908d439544d577fbcba0a99328a000be59772e492c5243192641cc91fe6b3ed95885b209a30f47fd1dd7246889b0552cdc1246b3d
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-multi-array/CONTROL b/ports/boost-multi-array/CONTROL
new file mode 100644
index 000000000..68ac4410b
--- /dev/null
+++ b/ports/boost-multi-array/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-multi-array
+Version: 1.66.0
+Build-Depends: boost-compatibility, boost-config, boost-vcpkg-helpers
+Description: Boost multi_array module
diff --git a/ports/boost-multi-array/portfile.cmake b/ports/boost-multi-array/portfile.cmake
new file mode 100644
index 000000000..312c4bfdd
--- /dev/null
+++ b/ports/boost-multi-array/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/multi_array
+ REF boost-1.66.0
+ SHA512 6240a90a020f1a6dda1be9e5d5d3743d6f5c50cea1a8b8f75151e60314822e8469db7c0d134a1b1ff50af40833017ee087673894e7e8bd6c394d68547ae68d62
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-multi-index/CONTROL b/ports/boost-multi-index/CONTROL
new file mode 100644
index 000000000..d6da63dcd
--- /dev/null
+++ b/ports/boost-multi-index/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-multi-index
+Version: 1.66.0
+Build-Depends: boost-assert, boost-bind, boost-compatibility, boost-config, boost-core, boost-detail, boost-foreach, boost-functional, boost-integer, boost-iterator, boost-move, boost-mpl, boost-preprocessor, boost-serialization, boost-static-assert, boost-throw-exception, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost multi_index module
diff --git a/ports/boost-multi-index/portfile.cmake b/ports/boost-multi-index/portfile.cmake
new file mode 100644
index 000000000..a2b157fa6
--- /dev/null
+++ b/ports/boost-multi-index/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/multi_index
+ REF boost-1.66.0
+ SHA512 a96c5f7f6a31236462a06c11320232d5aeb16a4df9ff8af972d03c27fb35d6cf17789d8ea6b6d155b55ea435335e605ec7a049c418c529ed48f99b31a4f34423
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-multiprecision/CONTROL b/ports/boost-multiprecision/CONTROL
new file mode 100644
index 000000000..241880570
--- /dev/null
+++ b/ports/boost-multiprecision/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-multiprecision
+Version: 1.66.0
+Build-Depends: boost-array, boost-assert, boost-config, boost-detail, boost-functional, boost-integer, boost-lexical-cast, boost-math, boost-mpl, boost-random, boost-rational, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost multiprecision module
diff --git a/ports/boost-multiprecision/portfile.cmake b/ports/boost-multiprecision/portfile.cmake
new file mode 100644
index 000000000..9fe2f040a
--- /dev/null
+++ b/ports/boost-multiprecision/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/multiprecision
+ REF boost-1.66.0
+ SHA512 3ba38ec20855a0f2f363c34e3c958a7e2e93cbb45d1ab995c26a38e06751192ada95e1a28ea0e9106002cef6250b68dcdecf83a8c6b42676c467ec2d7626288e
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-numeric-conversion/CONTROL b/ports/boost-numeric-conversion/CONTROL
new file mode 100644
index 000000000..8bc729ec9
--- /dev/null
+++ b/ports/boost-numeric-conversion/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-numeric-conversion
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-detail, boost-integer, boost-preprocessor, boost-throw-exception, boost-vcpkg-helpers
+Description: Boost numeric_conversion module
diff --git a/ports/boost-numeric-conversion/portfile.cmake b/ports/boost-numeric-conversion/portfile.cmake
new file mode 100644
index 000000000..e90d9dba2
--- /dev/null
+++ b/ports/boost-numeric-conversion/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/numeric_conversion
+ REF boost-1.66.0
+ SHA512 3f20e7adf501d69544fe5a4e8b52efa8e7b4327c0c371f1abc22f6aa6035931bcf0597853690b59140378e158462b0ba1d85d2c8ba978c2a5185cac7acefd313
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-odeint/CONTROL b/ports/boost-odeint/CONTROL
new file mode 100644
index 000000000..abe138aec
--- /dev/null
+++ b/ports/boost-odeint/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-odeint
+Version: 1.66.0
+Build-Depends: boost-array, boost-assert, boost-bind, boost-compute, boost-config, boost-core, boost-function, boost-fusion, boost-iterator, boost-math, boost-mpi, boost-mpl, boost-multi-array, boost-preprocessor, boost-range, boost-static-assert, boost-throw-exception, boost-type-traits, boost-units, boost-utility, boost-vcpkg-helpers
+Description: Boost odeint module
diff --git a/ports/boost-odeint/portfile.cmake b/ports/boost-odeint/portfile.cmake
new file mode 100644
index 000000000..6ded9f5b2
--- /dev/null
+++ b/ports/boost-odeint/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/odeint
+ REF boost-1.66.0
+ SHA512 f4d1a0d689c64bbd3dc93060e0e787aa39940b4ca0baf557ea7cb1c28225af5388d24b1654be04103427ba3b943f83dc34be1c0acedcdc2a9b8ac63acbe6946c
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-optional/CONTROL b/ports/boost-optional/CONTROL
new file mode 100644
index 000000000..752708636
--- /dev/null
+++ b/ports/boost-optional/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-optional
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-core, boost-detail, boost-move, boost-mpl, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost optional module
diff --git a/ports/boost-optional/portfile.cmake b/ports/boost-optional/portfile.cmake
new file mode 100644
index 000000000..e3144433b
--- /dev/null
+++ b/ports/boost-optional/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/optional
+ REF boost-1.66.0
+ SHA512 489e8a10abcd906e2bf12d1019f16c02e64ca32df5611351d6a512ff3fdd742f726820a1b6f9de66de78363f8a6a964d1f06905c91382342b5320effd7991b89
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-parameter/CONTROL b/ports/boost-parameter/CONTROL
new file mode 100644
index 000000000..aaee2abfc
--- /dev/null
+++ b/ports/boost-parameter/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-parameter
+Version: 1.66.0
+Build-Depends: boost-detail, boost-mpl, boost-preprocessor, boost-type-traits, boost-vcpkg-helpers
+Description: Boost parameter module
diff --git a/ports/boost-parameter/portfile.cmake b/ports/boost-parameter/portfile.cmake
new file mode 100644
index 000000000..a5d119c15
--- /dev/null
+++ b/ports/boost-parameter/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/parameter
+ REF boost-1.66.0
+ SHA512 042be1f9030f4561295a8fcdd252c094d7e17cfd7cc237dfcab6d131c568466fa5ee86a57746d8b254a577251922c7dfa5c1913529743936b8ec90cbb6e7939c
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-phoenix/CONTROL b/ports/boost-phoenix/CONTROL
new file mode 100644
index 000000000..ad3236dde
--- /dev/null
+++ b/ports/boost-phoenix/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-phoenix
+Version: 1.66.0
+Build-Depends: boost-assert, boost-bind, boost-config, boost-core, boost-detail, boost-function, boost-fusion, boost-mpl, boost-predef, boost-preprocessor, boost-proto, boost-range, boost-smart-ptr, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost phoenix module
diff --git a/ports/boost-phoenix/portfile.cmake b/ports/boost-phoenix/portfile.cmake
new file mode 100644
index 000000000..42281eba4
--- /dev/null
+++ b/ports/boost-phoenix/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/phoenix
+ REF boost-1.66.0
+ SHA512 dbffb57041607e90dfea2113192e1a8fc73934faefe00a00d50542e102b8659f55b4491cc2066fd181444bd04f2a610d75bb67773c205742d8def3516d9148aa
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-poly-collection/CONTROL b/ports/boost-poly-collection/CONTROL
new file mode 100644
index 000000000..66679c5c9
--- /dev/null
+++ b/ports/boost-poly-collection/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-poly-collection
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-core, boost-detail, boost-iterator, boost-mpl, boost-type-erasure (windows), boost-type-traits, boost-vcpkg-helpers
+Description: Boost poly_collection module
diff --git a/ports/boost-poly-collection/portfile.cmake b/ports/boost-poly-collection/portfile.cmake
new file mode 100644
index 000000000..b0fbf602a
--- /dev/null
+++ b/ports/boost-poly-collection/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/poly_collection
+ REF boost-1.66.0
+ SHA512 110af2363b0ca7f6941ebd45d67edda865b704cbf8e7009349e1487f7c0303e3d2d891576ff7004a74bafd66cf913d91e83166c54a9c34770e58c574e288d688
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-polygon/CONTROL b/ports/boost-polygon/CONTROL
new file mode 100644
index 000000000..8c95d707e
--- /dev/null
+++ b/ports/boost-polygon/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-polygon
+Version: 1.66.0
+Build-Depends: boost-config, boost-integer, boost-mpl, boost-utility, boost-vcpkg-helpers
+Description: Boost polygon module
diff --git a/ports/boost-polygon/portfile.cmake b/ports/boost-polygon/portfile.cmake
new file mode 100644
index 000000000..f9390d963
--- /dev/null
+++ b/ports/boost-polygon/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/polygon
+ REF boost-1.66.0
+ SHA512 7d8b3b275ab5c010a3c1736e59290b514d44080a7fec9e26b28d39c3df2346ac9f5d762b84c6f55296452bbcdf3a8cff5ac3f2895a99be90c4630efb04229157
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-pool/CONTROL b/ports/boost-pool/CONTROL
new file mode 100644
index 000000000..141cc45c3
--- /dev/null
+++ b/ports/boost-pool/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-pool
+Version: 1.66.0
+Build-Depends: boost-assert, boost-compatibility, boost-config, boost-detail, boost-integer, boost-thread (windows), boost-throw-exception, boost-type-traits, boost-vcpkg-helpers
+Description: Boost pool module
diff --git a/ports/boost-pool/portfile.cmake b/ports/boost-pool/portfile.cmake
new file mode 100644
index 000000000..1f5b5dfc9
--- /dev/null
+++ b/ports/boost-pool/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/pool
+ REF boost-1.66.0
+ SHA512 1b54515a075ff2039ff18ac615a3e172cd7e703d7d27970c12f507aaa32cf36ac79b5fc4e808df10e076175036d953fff601c8814ef286b61fcc41ac1a708c3b
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-predef/CONTROL b/ports/boost-predef/CONTROL
new file mode 100644
index 000000000..9419ab7b5
--- /dev/null
+++ b/ports/boost-predef/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-predef
+Version: 1.66.0
+Build-Depends: boost-vcpkg-helpers
+Description: Boost predef module
diff --git a/ports/boost-predef/portfile.cmake b/ports/boost-predef/portfile.cmake
new file mode 100644
index 000000000..ff0e9a9f1
--- /dev/null
+++ b/ports/boost-predef/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/predef
+ REF boost-1.66.0
+ SHA512 24f9ddb4ff5f16ae6a8764e940aa85f703c924e550423d7ff58c0e6b97568ecc78b6e97cbcc4ea0489ff2272501130db33e80bf86f071f1bad1d4b0f8c8665ae
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-preprocessor/CONTROL b/ports/boost-preprocessor/CONTROL
new file mode 100644
index 000000000..6cc22c054
--- /dev/null
+++ b/ports/boost-preprocessor/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-preprocessor
+Version: 1.66.0
+Build-Depends: boost-vcpkg-helpers
+Description: Boost preprocessor module
diff --git a/ports/boost-preprocessor/portfile.cmake b/ports/boost-preprocessor/portfile.cmake
new file mode 100644
index 000000000..4b85735b4
--- /dev/null
+++ b/ports/boost-preprocessor/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/preprocessor
+ REF boost-1.66.0
+ SHA512 233c46132d69499d96d8cf47fd41e7b80a558b43ace57a654be9bf4aad8c46907bf2fcc0e5698c0df4c8006bcd1e51a72b69c9269e128f360477481ff8cb2451
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-process/CONTROL b/ports/boost-process/CONTROL
new file mode 100644
index 000000000..28d9c027d
--- /dev/null
+++ b/ports/boost-process/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-process
+Version: 1.66.0
+Build-Depends: boost-algorithm, boost-asio, boost-config, boost-core, boost-filesystem (windows), boost-fusion, boost-iterator, boost-move, boost-optional, boost-system, boost-tokenizer, boost-type-index, boost-vcpkg-helpers, boost-winapi
+Description: Boost process module
diff --git a/ports/boost-process/portfile.cmake b/ports/boost-process/portfile.cmake
new file mode 100644
index 000000000..444196c4e
--- /dev/null
+++ b/ports/boost-process/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/process
+ REF boost-1.66.0
+ SHA512 4e9b4709c9c46eade2b2ac572b323928cbb793168b3a6ae78387ce7f224daa6a8358c8902547066f5ab2ab34705cb2b1a854cc33144e5459ce95acee96be1d6e
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-program-options/CONTROL b/ports/boost-program-options/CONTROL
new file mode 100644
index 000000000..3a1ff727e
--- /dev/null
+++ b/ports/boost-program-options/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-program-options
+Version: 1.66.0
+Build-Depends: boost-any, boost-bind, boost-build, boost-compatibility, boost-config, boost-core, boost-detail, boost-function, boost-iterator, boost-lexical-cast, boost-math, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-tokenizer, boost-type-traits, boost-vcpkg-helpers
+Description: Boost program_options module
diff --git a/ports/boost-program-options/portfile.cmake b/ports/boost-program-options/portfile.cmake
new file mode 100644
index 000000000..61740c6cb
--- /dev/null
+++ b/ports/boost-program-options/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/program_options
+ REF boost-1.66.0
+ SHA512 8c196b4c784def8cedb9c591e364e1759d1c90ff41a536c4c2f0dcc4cae58fb82ab3b6640438b6e98988eba7f6517e2baa5ce67738e9aad7db5924b71a7937fe
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-property-map/CONTROL b/ports/boost-property-map/CONTROL
new file mode 100644
index 000000000..2b88e8c12
--- /dev/null
+++ b/ports/boost-property-map/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-property-map
+Version: 1.66.0
+Build-Depends: boost-any, boost-assert, boost-bind, boost-concept-check, boost-config, boost-core, boost-detail, boost-function, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-mpl, boost-multi-index, boost-optional, boost-serialization, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost property_map module
diff --git a/ports/boost-property-map/portfile.cmake b/ports/boost-property-map/portfile.cmake
new file mode 100644
index 000000000..b5855bd8b
--- /dev/null
+++ b/ports/boost-property-map/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/property_map
+ REF boost-1.66.0
+ SHA512 3a935f14bf87a8c469b39a9fc4457f11d932caede6558d49868073ad35113a6285c48fed4fe3f2e6c8d743f1cf28ac0e8c4bb83b230a55035a89a60e24d43441
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-property-tree/CONTROL b/ports/boost-property-tree/CONTROL
new file mode 100644
index 000000000..c1f329ea3
--- /dev/null
+++ b/ports/boost-property-tree/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-property-tree
+Version: 1.66.0
+Build-Depends: boost-any, boost-assert, boost-bind, boost-compatibility, boost-config, boost-core, boost-format, boost-iterator, boost-mpl, boost-multi-index, boost-optional, boost-range, boost-serialization, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost property_tree module
diff --git a/ports/boost-property-tree/portfile.cmake b/ports/boost-property-tree/portfile.cmake
new file mode 100644
index 000000000..fd98c349b
--- /dev/null
+++ b/ports/boost-property-tree/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/property_tree
+ REF boost-1.66.0
+ SHA512 257f3ae750d71c82c0585766e1a35ac90dfced98fdccde8fe5fc504f26e42e7c6629c83fa6cae098271f7cf0cbe669f00246248b548740b303e32c63e79b0492
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-proto/CONTROL b/ports/boost-proto/CONTROL
new file mode 100644
index 000000000..3fc404fa4
--- /dev/null
+++ b/ports/boost-proto/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-proto
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-detail, boost-fusion, boost-mpl, boost-preprocessor, boost-range, boost-static-assert, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost proto module
diff --git a/ports/boost-proto/portfile.cmake b/ports/boost-proto/portfile.cmake
new file mode 100644
index 000000000..50051cec1
--- /dev/null
+++ b/ports/boost-proto/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/proto
+ REF boost-1.66.0
+ SHA512 bf15dc60d07be6e0198c3afd9ca232561e7e919957a0c28b8558bc6bea25e9c3b64af7efa573daeda657e8f6657dc3c11570776261dc29cc4e50356a5b67333a
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-ptr-container/CONTROL b/ports/boost-ptr-container/CONTROL
new file mode 100644
index 000000000..d55c82ae0
--- /dev/null
+++ b/ports/boost-ptr-container/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-ptr-container
+Version: 1.66.0
+Build-Depends: boost-array, boost-assert, boost-circular-buffer, boost-config, boost-core, boost-iterator, boost-mpl, boost-range, boost-serialization, boost-smart-ptr, boost-static-assert, boost-type-traits, boost-unordered, boost-utility, boost-vcpkg-helpers
+Description: Boost ptr_container module
diff --git a/ports/boost-ptr-container/portfile.cmake b/ports/boost-ptr-container/portfile.cmake
new file mode 100644
index 000000000..34a7e4cb4
--- /dev/null
+++ b/ports/boost-ptr-container/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/ptr_container
+ REF boost-1.66.0
+ SHA512 4a90951b6467a4bc97ef9426b1a3d29178084c3033664ef1717926592e515d446b4a8f0c42d1bb640d7a82d7219514f5370f16744bbd8bfbc922b2f5b2c85180
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-python/CONTROL b/ports/boost-python/CONTROL
new file mode 100644
index 000000000..f59353af7
--- /dev/null
+++ b/ports/boost-python/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-python
+Version: 1.66.0-1
+Build-Depends: boost-bind, boost-config, boost-core, boost-detail, boost-graph, boost-integer, boost-iterator, boost-mpl, boost-preprocessor, boost-property-map, boost-smart-ptr, boost-static-assert, boost-tuple, boost-utility, boost-vcpkg-helpers, python3
+Description: Boost python module
diff --git a/ports/boost-python/portfile.cmake b/ports/boost-python/portfile.cmake
new file mode 100644
index 000000000..395227990
--- /dev/null
+++ b/ports/boost-python/portfile.cmake
@@ -0,0 +1,20 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/python
+ REF boost-1.66.0
+ SHA512 3a16f16c19bf8a97c10db5c4a39385646a49ed794e9f7a0030181c0fb163671306ca92714aeea6440f60d043736ea4c15d1256fb418f18aea164c2d09420774f
+ HEAD_REF master
+)
+
+# Find Python. Can't use find_package here, but we already know where everything is
+file(GLOB PYTHON_INCLUDE_PATH "${CURRENT_INSTALLED_DIR}/include/python[0-9.]*")
+set(PYTHONLIBS_RELEASE "${CURRENT_INSTALLED_DIR}/lib")
+set(PYTHONLIBS_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib")
+string(REGEX REPLACE ".*python([0-9\.]+)$" "\\1" PYTHON_VERSION "${PYTHON_INCLUDE_PATH}")
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-qvm/CONTROL b/ports/boost-qvm/CONTROL
new file mode 100644
index 000000000..a7521d4ab
--- /dev/null
+++ b/ports/boost-qvm/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-qvm
+Version: 1.66.0
+Build-Depends: boost-assert, boost-exception, boost-static-assert, boost-throw-exception, boost-utility, boost-vcpkg-helpers
+Description: Boost qvm module
diff --git a/ports/boost-qvm/portfile.cmake b/ports/boost-qvm/portfile.cmake
new file mode 100644
index 000000000..1ef911b15
--- /dev/null
+++ b/ports/boost-qvm/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/qvm
+ REF boost-1.66.0
+ SHA512 b7c1db0f7db316e6f2094185497deaf58fe45f9a11517c76a66bec65d9ee9f32167bccb36ad8388c0f06649067a89e5b1c3894af0a4b4b327ee51ae29dd86c50
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-random/CONTROL b/ports/boost-random/CONTROL
new file mode 100644
index 000000000..fee15c891
--- /dev/null
+++ b/ports/boost-random/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-random
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-detail, boost-integer, boost-math, boost-mpl, boost-range, boost-static-assert, boost-system, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost random module
diff --git a/ports/boost-random/portfile.cmake b/ports/boost-random/portfile.cmake
new file mode 100644
index 000000000..f95153971
--- /dev/null
+++ b/ports/boost-random/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/random
+ REF boost-1.66.0
+ SHA512 ca62697080e059fa8b01e364b07fdb99bb7db078c2a5683e0f67d89705530276331a5f8706307b14b49f2621d1c158e0d1b9188aee54ab8852bab7800ca18b3e
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-range/CONTROL b/ports/boost-range/CONTROL
new file mode 100644
index 000000000..2cf963bef
--- /dev/null
+++ b/ports/boost-range/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-range
+Version: 1.66.0
+Build-Depends: boost-array, boost-assert, boost-concept-check, boost-config, boost-core, boost-detail, boost-functional, boost-integer, boost-iterator, boost-mpl, boost-optional, boost-preprocessor, boost-regex, boost-static-assert, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost range module
diff --git a/ports/boost-range/portfile.cmake b/ports/boost-range/portfile.cmake
new file mode 100644
index 000000000..8769e1cdd
--- /dev/null
+++ b/ports/boost-range/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/range
+ REF boost-1.66.0
+ SHA512 98b050cb3e4249c72222d0efac4edbf4cb62ff303dd1634e7e76fea7dff19c62eceb837e8cffbd088fb28b16b98e923f62c7220d5ff424f3c82383a78df97785
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-ratio/CONTROL b/ports/boost-ratio/CONTROL
new file mode 100644
index 000000000..801212d8c
--- /dev/null
+++ b/ports/boost-ratio/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-ratio
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-integer, boost-mpl, boost-rational, boost-static-assert, boost-type-traits, boost-vcpkg-helpers
+Description: Boost ratio module
diff --git a/ports/boost-ratio/portfile.cmake b/ports/boost-ratio/portfile.cmake
new file mode 100644
index 000000000..cb781cc5e
--- /dev/null
+++ b/ports/boost-ratio/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/ratio
+ REF boost-1.66.0
+ SHA512 caa2ed8f01d6f99aaa8ab8bc52c0f9a8cf2551585760abf6e1d0f129c77c58f3b68569a0db6917c0a40a38faf63935ae23e482b96a2417bd7cb3d5f61e59d887
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-rational/CONTROL b/ports/boost-rational/CONTROL
new file mode 100644
index 000000000..f78bf6029
--- /dev/null
+++ b/ports/boost-rational/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-rational
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-integer, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost rational module
diff --git a/ports/boost-rational/portfile.cmake b/ports/boost-rational/portfile.cmake
new file mode 100644
index 000000000..c0ad27744
--- /dev/null
+++ b/ports/boost-rational/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/rational
+ REF boost-1.66.0
+ SHA512 e61b85344d3418484c044ac0d3946059a3a341cab490d1a54dbee241946c7cb5882e30fcd5e8c9a919622cee69828108d2f7dc578eae51f31c5fb1217deff152
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-regex/CONTROL b/ports/boost-regex/CONTROL
new file mode 100644
index 000000000..24e5014d4
--- /dev/null
+++ b/ports/boost-regex/CONTROL
@@ -0,0 +1,9 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-regex
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-compatibility, boost-concept-check, boost-config, boost-core, boost-detail, boost-functional, boost-integer, boost-iterator, boost-mpl, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-vcpkg-helpers
+Description: Boost regex module
+
+Feature: icu
+Description: ICU backend for Boost.Regex
+Build-Depends: icu
diff --git a/ports/boost-regex/portfile.cmake b/ports/boost-regex/portfile.cmake
new file mode 100644
index 000000000..2246e3df4
--- /dev/null
+++ b/ports/boost-regex/portfile.cmake
@@ -0,0 +1,21 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/regex
+ REF boost-1.66.0
+ SHA512 def00fc4876fd83a2581eea15228940a665cb79eff26e979079b5df568952f144b74da2f41ddffe6792784fe3fceca94d7b0f49d1a7f01a4df78948244fe86b1
+ HEAD_REF master
+)
+
+if("icu" IN_LIST FEATURES)
+ set(REQUIREMENTS "<library>/user-config//icuuc <library>/user-config//icudt <library>/user-config//icuin <define>BOOST_HAS_ICU=1")
+else()
+ set(REQUIREMENTS)
+endif()
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH} REQUIREMENTS "${REQUIREMENTS}")
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-scope-exit/CONTROL b/ports/boost-scope-exit/CONTROL
new file mode 100644
index 000000000..a94cb9fd6
--- /dev/null
+++ b/ports/boost-scope-exit/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-scope-exit
+Version: 1.66.0
+Build-Depends: boost-config, boost-detail, boost-function, boost-mpl, boost-preprocessor, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost scope_exit module
diff --git a/ports/boost-scope-exit/portfile.cmake b/ports/boost-scope-exit/portfile.cmake
new file mode 100644
index 000000000..60358a992
--- /dev/null
+++ b/ports/boost-scope-exit/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/scope_exit
+ REF boost-1.66.0
+ SHA512 cb46dee821cf9f873eac9d8e937773a44c9e77b7c9972d064e1cc7b9f95e8b06509da29e2357c479f70993aae25756de1dad5d6639690f4390d466deef75b8da
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-serialization/CONTROL b/ports/boost-serialization/CONTROL
new file mode 100644
index 000000000..146c618bd
--- /dev/null
+++ b/ports/boost-serialization/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-serialization
+Version: 1.66.0
+Build-Depends: boost-array, boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-detail, boost-function, boost-integer, boost-io, boost-iterator, boost-move, boost-mpl, boost-optional, boost-preprocessor, boost-smart-ptr, boost-spirit, boost-static-assert, boost-type-traits, boost-unordered, boost-utility, boost-variant, boost-vcpkg-helpers
+Description: Boost serialization module
diff --git a/ports/boost-serialization/portfile.cmake b/ports/boost-serialization/portfile.cmake
new file mode 100644
index 000000000..59276cfd3
--- /dev/null
+++ b/ports/boost-serialization/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/serialization
+ REF boost-1.66.0
+ SHA512 8d4908a1eba309c8e752f07e123d0c6d461e3ce87db3b3afbf4ae56340c1ead6ac874be392d8270b167be28d7dc515f98abece091b081fd4794cb375f9779880
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-signals/CONTROL b/ports/boost-signals/CONTROL
new file mode 100644
index 000000000..e612f3415
--- /dev/null
+++ b/ports/boost-signals/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-signals
+Version: 1.66.0
+Build-Depends: boost-any, boost-build, boost-config, boost-core, boost-function, boost-iterator, boost-optional, boost-smart-ptr, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost signals module
diff --git a/ports/boost-signals/portfile.cmake b/ports/boost-signals/portfile.cmake
new file mode 100644
index 000000000..03895d120
--- /dev/null
+++ b/ports/boost-signals/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/signals
+ REF boost-1.66.0
+ SHA512 4a857c2f272ccd5feef7549a9344444e30de71ca49f33d42415aad3af0659534cc46490082a3ab9d52f3bced7635cbb17b6db16216a13a4df79349f01a0fe636
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-signals2/CONTROL b/ports/boost-signals2/CONTROL
new file mode 100644
index 000000000..749be6f6b
--- /dev/null
+++ b/ports/boost-signals2/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-signals2
+Version: 1.66.0
+Build-Depends: boost-assert, boost-bind, boost-config, boost-core, boost-detail, boost-function, boost-iterator, boost-mpl, boost-multi-index, boost-optional, boost-parameter, boost-predef, boost-preprocessor, boost-smart-ptr, boost-throw-exception, boost-tuple, boost-type-traits, boost-utility, boost-variant, boost-vcpkg-helpers
+Description: Boost signals2 module
diff --git a/ports/boost-signals2/portfile.cmake b/ports/boost-signals2/portfile.cmake
new file mode 100644
index 000000000..9e83e65c4
--- /dev/null
+++ b/ports/boost-signals2/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/signals2
+ REF boost-1.66.0
+ SHA512 e49e263836db77603b256b45c8d764b91d2ff9b1bcfa36e6b446fbaf0be2e7135b715cf00795d0a98ade48f3ff574c54fadfa58faae330261c58642c0dfaf39a
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-smart-ptr/CONTROL b/ports/boost-smart-ptr/CONTROL
new file mode 100644
index 000000000..a4451ef05
--- /dev/null
+++ b/ports/boost-smart-ptr/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-smart-ptr
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-core, boost-detail, boost-integer, boost-move, boost-predef, boost-static-assert, boost-throw-exception, boost-type-traits, boost-vcpkg-helpers
+Description: Boost smart_ptr module
diff --git a/ports/boost-smart-ptr/portfile.cmake b/ports/boost-smart-ptr/portfile.cmake
new file mode 100644
index 000000000..5dbfc1473
--- /dev/null
+++ b/ports/boost-smart-ptr/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/smart_ptr
+ REF boost-1.66.0
+ SHA512 d45d925531c5060cabd5a949612c3d1358ca92120253c04a755390fc5be80fae2f756cb358b636cf0a86d3091e5c27574a4e4f340ece94a8291acab4a0b4c8a0
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-sort/CONTROL b/ports/boost-sort/CONTROL
new file mode 100644
index 000000000..6f13d05a2
--- /dev/null
+++ b/ports/boost-sort/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-sort
+Version: 1.66.0
+Build-Depends: boost-integer, boost-serialization, boost-static-assert, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost sort module
diff --git a/ports/boost-sort/portfile.cmake b/ports/boost-sort/portfile.cmake
new file mode 100644
index 000000000..9a13503f8
--- /dev/null
+++ b/ports/boost-sort/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/sort
+ REF boost-1.66.0
+ SHA512 0c4d252cf92f46b402be2d9f46f4c4b052dbbb85c83cb7e78a9f75a2e2d14225614f97f3b4e91205d55f224faef2baf939c28fb935d9dbfa140aa7a9c51836df
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-spirit/CONTROL b/ports/boost-spirit/CONTROL
new file mode 100644
index 000000000..ed71760c0
--- /dev/null
+++ b/ports/boost-spirit/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-spirit
+Version: 1.66.0
+Build-Depends: boost-algorithm, boost-array, boost-assert, boost-compatibility, boost-concept-check, boost-config, boost-core, boost-detail, boost-endian, boost-filesystem (windows), boost-foreach, boost-function, boost-function-types, boost-fusion, boost-integer, boost-io, boost-iostreams (windows), boost-iterator, boost-lexical-cast, boost-locale (windows), boost-math, boost-move, boost-mpl, boost-optional, boost-phoenix, boost-pool, boost-preprocessor, boost-proto, boost-range, boost-regex, boost-smart-ptr, boost-static-assert, boost-thread (windows), boost-throw-exception, boost-tti, boost-typeof, boost-type-traits, boost-unordered, boost-utility, boost-variant, boost-vcpkg-helpers
+Description: Boost spirit module
diff --git a/ports/boost-spirit/portfile.cmake b/ports/boost-spirit/portfile.cmake
new file mode 100644
index 000000000..e9b239d69
--- /dev/null
+++ b/ports/boost-spirit/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/spirit
+ REF boost-1.66.0
+ SHA512 c02594dc732d8ad8d23b1ed94f7aea05e3a339d0189a224340ea882b0de68f10820ad40886e040269ce4e08a558806c48662acba0bf00d95b8cafb5a7ce0057b
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-stacktrace/CONTROL b/ports/boost-stacktrace/CONTROL
new file mode 100644
index 000000000..b6c11e8f3
--- /dev/null
+++ b/ports/boost-stacktrace/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-stacktrace
+Version: 1.66.0
+Build-Depends: boost-array, boost-build, boost-config, boost-core, boost-lexical-cast, boost-math, boost-static-assert, boost-type-traits, boost-vcpkg-helpers, boost-winapi
+Description: Boost stacktrace module
diff --git a/ports/boost-stacktrace/portfile.cmake b/ports/boost-stacktrace/portfile.cmake
new file mode 100644
index 000000000..8f8c3afa1
--- /dev/null
+++ b/ports/boost-stacktrace/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/stacktrace
+ REF boost-1.66.0
+ SHA512 40b96f7c1fdaf5a5909148d7edd4f77b4991ead70d5350bc7c8451781c80020496b14688c0dff365b75941a1ba16244246a52b6a708f4b1f79c99f4d8a0556f0
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-statechart/CONTROL b/ports/boost-statechart/CONTROL
new file mode 100644
index 000000000..eafbc2db4
--- /dev/null
+++ b/ports/boost-statechart/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-statechart
+Version: 1.66.0
+Build-Depends: boost-assert, boost-bind, boost-config, boost-conversion, boost-core, boost-detail, boost-function, boost-mpl, boost-smart-ptr, boost-static-assert, boost-type-traits, boost-vcpkg-helpers
+Description: Boost statechart module
diff --git a/ports/boost-statechart/portfile.cmake b/ports/boost-statechart/portfile.cmake
new file mode 100644
index 000000000..8b8e2da99
--- /dev/null
+++ b/ports/boost-statechart/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/statechart
+ REF boost-1.66.0
+ SHA512 c9e20deca66f896eee004d19be388857817b2d4bdf49a9a146625de091420399a7098a6ecb2020ce07a96b11092922f4623159434b04983072dad8b91d2d7187
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-static-assert/CONTROL b/ports/boost-static-assert/CONTROL
new file mode 100644
index 000000000..e4719ff49
--- /dev/null
+++ b/ports/boost-static-assert/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-static-assert
+Version: 1.66.0
+Build-Depends: boost-config, boost-detail, boost-vcpkg-helpers
+Description: Boost static_assert module
diff --git a/ports/boost-static-assert/portfile.cmake b/ports/boost-static-assert/portfile.cmake
new file mode 100644
index 000000000..7768973dd
--- /dev/null
+++ b/ports/boost-static-assert/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/static_assert
+ REF boost-1.66.0
+ SHA512 97e0007ffef86578f4877744947e4c7d90de932719df25a38a72c018112b9b6d6d2fbdbef9307c02d1d85e5d8733a0f20a903c0fc623ef969afc788cfdf8722b
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-system/CONTROL b/ports/boost-system/CONTROL
new file mode 100644
index 000000000..92d43608f
--- /dev/null
+++ b/ports/boost-system/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-system
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-core, boost-integer, boost-predef, boost-utility, boost-vcpkg-helpers, boost-winapi
+Description: Boost system module
diff --git a/ports/boost-system/portfile.cmake b/ports/boost-system/portfile.cmake
new file mode 100644
index 000000000..c5ca8d0cc
--- /dev/null
+++ b/ports/boost-system/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/system
+ REF boost-1.66.0
+ SHA512 97181610bc577182cb83c55b7c5d73aec6794543c0a7b43b4d08c7a1ed9936500f383038dbda1c0876f58d52c000f8b2e4a6bc1f68d14c7d9f015918f1c46851
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-test/CONTROL b/ports/boost-test/CONTROL
new file mode 100644
index 000000000..e19d889b1
--- /dev/null
+++ b/ports/boost-test/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-test
+Version: 1.66.0
+Build-Depends: boost-algorithm, boost-assert, boost-bind, boost-build, boost-compatibility, boost-config, boost-core, boost-detail, boost-exception, boost-function, boost-io, boost-iterator, boost-mpl, boost-numeric-conversion, boost-optional, boost-preprocessor, boost-range, boost-smart-ptr, boost-static-assert, boost-timer, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost test module
diff --git a/ports/boost-test/portfile.cmake b/ports/boost-test/portfile.cmake
new file mode 100644
index 000000000..fd6606f0e
--- /dev/null
+++ b/ports/boost-test/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/test
+ REF boost-1.66.0
+ SHA512 f5f0557fc7afb1c085765edda5ec37ce2a0f31aa39c861a7979dfd5344751978139cc3eef44d773140e4b023c0123065169fc11ae889ca1ea51f58bdf5018a5d
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-thread/CONTROL b/ports/boost-thread/CONTROL
new file mode 100644
index 000000000..772f1a450
--- /dev/null
+++ b/ports/boost-thread/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-thread
+Version: 1.66.0
+Build-Depends: boost-algorithm, boost-assert, boost-atomic, boost-bind, boost-build, boost-chrono, boost-concept-check, boost-config, boost-container, boost-core, boost-date-time, boost-detail, boost-exception, boost-function, boost-functional, boost-integer, boost-intrusive, boost-io, boost-lexical-cast, boost-math, boost-move, boost-mpl, boost-optional, boost-predef, boost-preprocessor, boost-smart-ptr, boost-static-assert, boost-system, boost-throw-exception, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi
+Description: Boost thread module
diff --git a/ports/boost-thread/portfile.cmake b/ports/boost-thread/portfile.cmake
new file mode 100644
index 000000000..307ae58b4
--- /dev/null
+++ b/ports/boost-thread/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/thread
+ REF boost-1.66.0
+ SHA512 35875d3feb64617b74ef1303939a9e0f8d72b9b2d7361e9a25c54431c60c17b481023006f2329e4cd8dd37206553991e40a12a20bb479ec497c475240e19776b
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH} REQUIREMENTS "<library>/boost/date_time//boost_date_time")
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-throw-exception/CONTROL b/ports/boost-throw-exception/CONTROL
new file mode 100644
index 000000000..61809bb7b
--- /dev/null
+++ b/ports/boost-throw-exception/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-throw-exception
+Version: 1.66.0
+Build-Depends: boost-config, boost-detail, boost-vcpkg-helpers
+Description: Boost throw_exception module
diff --git a/ports/boost-throw-exception/portfile.cmake b/ports/boost-throw-exception/portfile.cmake
new file mode 100644
index 000000000..bdf47bac7
--- /dev/null
+++ b/ports/boost-throw-exception/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/throw_exception
+ REF boost-1.66.0
+ SHA512 46c1683ded42fe9b0cd44711071bee1122dbd0529648f69439cc5391d05e7e22968235bc852878441ad051b6c021b10e319b6337aff28f6acaafca7e70480ef8
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-timer/CONTROL b/ports/boost-timer/CONTROL
new file mode 100644
index 000000000..be8b0c18a
--- /dev/null
+++ b/ports/boost-timer/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-timer
+Version: 1.66.0
+Build-Depends: boost-build, boost-chrono, boost-compatibility, boost-config, boost-core, boost-integer, boost-io, boost-system, boost-throw-exception, boost-vcpkg-helpers
+Description: Boost timer module
diff --git a/ports/boost-timer/portfile.cmake b/ports/boost-timer/portfile.cmake
new file mode 100644
index 000000000..28210aabe
--- /dev/null
+++ b/ports/boost-timer/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/timer
+ REF boost-1.66.0
+ SHA512 2b50d38e3b5ca79014f96eb8fb55d1320c0de97ba2bb632dec946690437f8a1533c3e78e25798a0f49c08a5644f7f55afcd0f85f94bea4e041cddbcd8867450d
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-tokenizer/CONTROL b/ports/boost-tokenizer/CONTROL
new file mode 100644
index 000000000..27fb3021b
--- /dev/null
+++ b/ports/boost-tokenizer/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-tokenizer
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-detail, boost-iterator, boost-mpl, boost-throw-exception, boost-vcpkg-helpers
+Description: Boost tokenizer module
diff --git a/ports/boost-tokenizer/portfile.cmake b/ports/boost-tokenizer/portfile.cmake
new file mode 100644
index 000000000..74834110b
--- /dev/null
+++ b/ports/boost-tokenizer/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/tokenizer
+ REF boost-1.66.0
+ SHA512 ce5f6d89fd8b61a5d8074d8cb6bbc3b9a0e3ebf96081c9dda8e67a64b7052f38ebc50581284fa182f83f6f3eb54eee5292f6e79832ffd293ef9a35af2b595a51
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-tti/CONTROL b/ports/boost-tti/CONTROL
new file mode 100644
index 000000000..bcab1a023
--- /dev/null
+++ b/ports/boost-tti/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-tti
+Version: 1.66.0
+Build-Depends: boost-config, boost-detail, boost-function-types, boost-mpl, boost-preprocessor, boost-type-traits, boost-vcpkg-helpers
+Description: Boost tti module
diff --git a/ports/boost-tti/portfile.cmake b/ports/boost-tti/portfile.cmake
new file mode 100644
index 000000000..2151427be
--- /dev/null
+++ b/ports/boost-tti/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/tti
+ REF boost-1.66.0
+ SHA512 8c399d475819b68324e1a56b9ba13a3e26faf175d3180b0317e82212ce4c587d8074c597832165e81a3ed6af09026b7c5433a8cd58b6ad861dad7d9fe1d57eee
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-tuple/CONTROL b/ports/boost-tuple/CONTROL
new file mode 100644
index 000000000..a96059c05
--- /dev/null
+++ b/ports/boost-tuple/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-tuple
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-static-assert, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost tuple module
diff --git a/ports/boost-tuple/portfile.cmake b/ports/boost-tuple/portfile.cmake
new file mode 100644
index 000000000..a020d5d1b
--- /dev/null
+++ b/ports/boost-tuple/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/tuple
+ REF boost-1.66.0
+ SHA512 c65bd37871256f1edb1db4d9ac158788c3a76248d7f7ff72eece874ea521d9846d55373e223d783a4c6fe3a524088fe2e4e58e533d1144671e4a1d22443f0414
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-type-erasure/CONTROL b/ports/boost-type-erasure/CONTROL
new file mode 100644
index 000000000..79a8697a3
--- /dev/null
+++ b/ports/boost-type-erasure/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-type-erasure
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-fusion, boost-iterator, boost-mpl, boost-preprocessor, boost-smart-ptr, boost-thread (windows), boost-throw-exception, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost type_erasure module
diff --git a/ports/boost-type-erasure/portfile.cmake b/ports/boost-type-erasure/portfile.cmake
new file mode 100644
index 000000000..7363cfd8e
--- /dev/null
+++ b/ports/boost-type-erasure/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/type_erasure
+ REF boost-1.66.0
+ SHA512 a64b3477478a656c0e04e897f4b9e19941b884c17cfa07ec05f96cebab0f4a377d728ddee354923c1c00bd85f2bf180a46747ccfe5eceb3fe143c2154e0be0e8
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-type-index/CONTROL b/ports/boost-type-index/CONTROL
new file mode 100644
index 000000000..e291a6222
--- /dev/null
+++ b/ports/boost-type-index/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-type-index
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-functional, boost-mpl, boost-preprocessor, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-vcpkg-helpers
+Description: Boost type_index module
diff --git a/ports/boost-type-index/portfile.cmake b/ports/boost-type-index/portfile.cmake
new file mode 100644
index 000000000..5f5f7dc7d
--- /dev/null
+++ b/ports/boost-type-index/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/type_index
+ REF boost-1.66.0
+ SHA512 c731d336b0b29a0dbbb12c027fe052f9cea0f06703d05e3f24c24d9feb5abcf04cfb6e867da752cdbc75056db9482b5318ee1489db54244c3fdc6e1f32899aa8
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-type-traits/CONTROL b/ports/boost-type-traits/CONTROL
new file mode 100644
index 000000000..3b88d7122
--- /dev/null
+++ b/ports/boost-type-traits/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-type-traits
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-detail, boost-static-assert, boost-vcpkg-helpers
+Description: Boost type_traits module
diff --git a/ports/boost-type-traits/portfile.cmake b/ports/boost-type-traits/portfile.cmake
new file mode 100644
index 000000000..3dbd82382
--- /dev/null
+++ b/ports/boost-type-traits/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/type_traits
+ REF boost-1.66.0
+ SHA512 ad05d6e50914e0d9c0e8267dd3b01f090f7dd3c6370b4b59ae1bbcc50b2cb2a5f1b2647eacc15ff4f2e071da0732a6fc47508284d6d20ca0a545fd6f8d90648c
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-typeof/CONTROL b/ports/boost-typeof/CONTROL
new file mode 100644
index 000000000..93d92c65a
--- /dev/null
+++ b/ports/boost-typeof/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-typeof
+Version: 1.66.0
+Build-Depends: boost-config, boost-mpl, boost-preprocessor, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost typeof module
diff --git a/ports/boost-typeof/portfile.cmake b/ports/boost-typeof/portfile.cmake
new file mode 100644
index 000000000..177e6d860
--- /dev/null
+++ b/ports/boost-typeof/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/typeof
+ REF boost-1.66.0
+ SHA512 4436dc1b346dfaf9bd77ab386e213fb4a5fb9f3ea5f4de3e2eaaf4e7c2c6712729071e8e25c4014c36a0977f62b646900e2db7c9f65121ef32475074940e4937
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-ublas/CONTROL b/ports/boost-ublas/CONTROL
new file mode 100644
index 000000000..acbd90541
--- /dev/null
+++ b/ports/boost-ublas/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-ublas
+Version: 1.66.0
+Build-Depends: boost-concept-check, boost-config, boost-core, boost-iterator, boost-mpl, boost-range, boost-serialization, boost-smart-ptr, boost-static-assert, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost ublas module
diff --git a/ports/boost-ublas/portfile.cmake b/ports/boost-ublas/portfile.cmake
new file mode 100644
index 000000000..173236e87
--- /dev/null
+++ b/ports/boost-ublas/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/ublas
+ REF boost-1.66.0
+ SHA512 77d2dac6f7df56d8640e000ffce7042c828765da9a1ccb1f487559ac7ad2577246334e32e058a41ef028719c7465990d12e4fc0294ecf1747ac90bda53cf7d00
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-units/CONTROL b/ports/boost-units/CONTROL
new file mode 100644
index 000000000..4728dcb90
--- /dev/null
+++ b/ports/boost-units/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-units
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-core, boost-integer, boost-io, boost-lambda, boost-math, boost-mpl, boost-preprocessor, boost-serialization, boost-static-assert, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost units module
diff --git a/ports/boost-units/portfile.cmake b/ports/boost-units/portfile.cmake
new file mode 100644
index 000000000..87dd4906d
--- /dev/null
+++ b/ports/boost-units/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/units
+ REF boost-1.66.0
+ SHA512 493c91b8741788c18147b0689df82e8391992797420f09fa3d90f8405c1ac7cab6a17c39231836d4410525eae3ae53899157cd48e28e3136ffc16970fc5209f6
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-unordered/CONTROL b/ports/boost-unordered/CONTROL
new file mode 100644
index 000000000..f051d4f33
--- /dev/null
+++ b/ports/boost-unordered/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-unordered
+Version: 1.66.0
+Build-Depends: boost-assert, boost-compatibility, boost-config, boost-container, boost-core, boost-detail, boost-functional, boost-iterator, boost-move, boost-predef, boost-preprocessor, boost-smart-ptr, boost-throw-exception, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost unordered module
diff --git a/ports/boost-unordered/portfile.cmake b/ports/boost-unordered/portfile.cmake
new file mode 100644
index 000000000..abd0a3c3e
--- /dev/null
+++ b/ports/boost-unordered/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/unordered
+ REF boost-1.66.0
+ SHA512 4abb2d6a2847c28ecd2324afd4caf46a9fe2597e3bceaf2fe430cb82688ce6584137356fd3dff5fe1ab60ab8a51460821d9dd78c14d4e0fb6e11c4dee7cc0adb
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-utility/CONTROL b/ports/boost-utility/CONTROL
new file mode 100644
index 000000000..1793f88f3
--- /dev/null
+++ b/ports/boost-utility/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-utility
+Version: 1.66.0
+Build-Depends: boost-config, boost-core, boost-detail, boost-mpl, boost-preprocessor, boost-static-assert, boost-throw-exception, boost-type-traits, boost-vcpkg-helpers
+Description: Boost utility module
diff --git a/ports/boost-utility/portfile.cmake b/ports/boost-utility/portfile.cmake
new file mode 100644
index 000000000..5cf3ceeed
--- /dev/null
+++ b/ports/boost-utility/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/utility
+ REF boost-1.66.0
+ SHA512 aa72e1d32bb1575e23ec8e1dc12421e56d114532a9e7b3ebf2edf6926c79d2e2eb3c5483f241bc014b65008a9d03fbeadc85a6f0cea9013ecea2b1c1e942ea59
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-uuid/CONTROL b/ports/boost-uuid/CONTROL
new file mode 100644
index 000000000..9c81b7c12
--- /dev/null
+++ b/ports/boost-uuid/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-uuid
+Version: 1.66.0
+Build-Depends: boost-assert, boost-config, boost-core, boost-integer, boost-io, boost-iterator, boost-random, boost-serialization, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-vcpkg-helpers
+Description: Boost uuid module
diff --git a/ports/boost-uuid/portfile.cmake b/ports/boost-uuid/portfile.cmake
new file mode 100644
index 000000000..c6f2950a6
--- /dev/null
+++ b/ports/boost-uuid/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/uuid
+ REF boost-1.66.0
+ SHA512 5fc333c76f4d44fcbca4a7be02117015e361b85c615d3f728d9805d32f55431fca33f90bb0151a789b341606d8ce7538163a162a4c7ba29823cf7a01326685d7
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-variant/CONTROL b/ports/boost-variant/CONTROL
new file mode 100644
index 000000000..9edcfa99e
--- /dev/null
+++ b/ports/boost-variant/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-variant
+Version: 1.66.0
+Build-Depends: boost-assert, boost-bind, boost-config, boost-core, boost-detail, boost-functional, boost-math, boost-move, boost-mpl, boost-preprocessor, boost-static-assert, boost-throw-exception, boost-type-index, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost variant module
diff --git a/ports/boost-variant/portfile.cmake b/ports/boost-variant/portfile.cmake
new file mode 100644
index 000000000..9ec22e174
--- /dev/null
+++ b/ports/boost-variant/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/variant
+ REF boost-1.66.0
+ SHA512 3eb3d4070bf81033c0a342956393e2e902618dc482fd3ba7c0b4f97ac3259fff31943a9b059bc25dd6d399af6d8b56a8297b462776b14b5012c6436b00c7d491
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-vcpkg-helpers/.gitignore b/ports/boost-vcpkg-helpers/.gitignore
new file mode 100644
index 000000000..6217c8eab
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/.gitignore
@@ -0,0 +1,3 @@
+downloads/
+libs/
+boost/ \ No newline at end of file
diff --git a/ports/boost-vcpkg-helpers/CONTROL b/ports/boost-vcpkg-helpers/CONTROL
new file mode 100644
index 000000000..3e29eb9f8
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/CONTROL
@@ -0,0 +1,3 @@
+Source: boost-vcpkg-helpers
+Version: 3
+Description: a set of vcpkg-internal scripts used to modularize boost
diff --git a/ports/boost-vcpkg-helpers/Jamroot.jam b/ports/boost-vcpkg-helpers/Jamroot.jam
new file mode 100644
index 000000000..2762c99ea
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/Jamroot.jam
@@ -0,0 +1,141 @@
+constant BOOST_VERSION : 1.66.0 ;
+constant BOOST_VERSION_ABI_TAG : 1_66 ;
+constant BOOST_JAMROOT_MODULE : $(__name__) ;
+
+import boostcpp ;
+import feature ;
+
+boostcpp.set-version $(BOOST_VERSION) ;
+
+project boost : requirements
+ <include>include&&@CURRENT_INSTALLED_DIR@/include
+ <define>BOOST_ALL_NO_LIB=1
+ <tag>@$(__name__).tag
+ @REQUIREMENTS@
+ ;
+
+rule boost-install ( libraries * )
+{
+ stagedir = [ option.get stagedir ] ;
+ install stage
+ : $(libraries)
+ : <location>$(stagedir)/lib ;
+}
+
+rule tag ( name : type ? : property-set )
+{
+ return [ boostcpp.tag $(name) : $(type) : $(property-set) ] ;
+}
+
+rule python-tag ( name : type ? : property-set )
+{
+ return [ tag $(name) : $(type) : $(property-set) ] ;
+}
+
+if "@PORT@" != "boost-system"
+{
+ use-project /boost/system : . ;
+
+ lib boost_system : : <file>@CURRENT_INSTALLED_DIR@/lib/boost_system-vc140-mt-$(BOOST_VERSION_ABI_TAG).lib <variant>release ;
+ lib boost_system : : <file>@CURRENT_INSTALLED_DIR@/debug/lib/boost_system-vc140-mt-gd-$(BOOST_VERSION_ABI_TAG).lib <variant>debug ;
+ explicit boost_system ;
+}
+
+if "@PORT@" != "boost-chrono"
+{
+ use-project /boost/chrono : . ;
+
+ lib boost_chrono : : <file>@CURRENT_INSTALLED_DIR@/lib/boost_chrono-vc140-mt-$(BOOST_VERSION_ABI_TAG).lib <variant>release ;
+ lib boost_chrono : : <file>@CURRENT_INSTALLED_DIR@/debug/lib/boost_chrono-vc140-mt-gd-$(BOOST_VERSION_ABI_TAG).lib <variant>debug ;
+ explicit boost_chrono ;
+}
+
+if "@PORT@" != "boost-regex"
+{
+ use-project /boost/regex : . ;
+
+ lib boost_regex : : <file>@CURRENT_INSTALLED_DIR@/lib/boost_regex-vc140-mt-$(BOOST_VERSION_ABI_TAG).lib <variant>release ;
+ lib boost_regex : : <file>@CURRENT_INSTALLED_DIR@/debug/lib/boost_regex-vc140-mt-gd-$(BOOST_VERSION_ABI_TAG).lib <variant>debug ;
+ explicit boost_regex ;
+}
+
+if "@PORT@" != "boost-date-time"
+{
+ use-project /boost/date_time : . ;
+
+ lib boost_date_time : : <file>@CURRENT_INSTALLED_DIR@/lib/boost_date_time-vc140-mt-$(BOOST_VERSION_ABI_TAG).lib <variant>release -<library>/boost/date_time//boost_date_time ;
+ lib boost_date_time : : <file>@CURRENT_INSTALLED_DIR@/debug/lib/boost_date_time-vc140-mt-gd-$(BOOST_VERSION_ABI_TAG).lib <variant>debug -<library>/boost/date_time//boost_date_time ;
+ explicit boost_date_time ;
+}
+
+if "@PORT@" != "boost-thread"
+{
+ use-project /boost/thread : . ;
+
+ lib boost_thread : : <file>@CURRENT_INSTALLED_DIR@/lib/boost_thread-vc140-mt-$(BOOST_VERSION_ABI_TAG).lib <variant>release : : <library>/boost/date_time//boost_date_time ;
+ lib boost_thread : : <file>@CURRENT_INSTALLED_DIR@/debug/lib/boost_thread-vc140-mt-gd-$(BOOST_VERSION_ABI_TAG).lib <variant>debug : : <library>/boost/date_time//boost_date_time ;
+ explicit boost_thread ;
+}
+
+if "@PORT@" != "boost-timer"
+{
+ use-project /boost/timer : . ;
+
+ lib boost_timer : : <file>@CURRENT_INSTALLED_DIR@/lib/boost_timer-vc140-mt-$(BOOST_VERSION_ABI_TAG).lib <variant>release ;
+ lib boost_timer : : <file>@CURRENT_INSTALLED_DIR@/debug/lib/boost_timer-vc140-mt-gd-$(BOOST_VERSION_ABI_TAG).lib <variant>debug ;
+ explicit boost_timer ;
+}
+
+if "@PORT@" != "boost-filesystem"
+{
+ use-project /boost/filesystem : . ;
+
+ lib boost_filesystem : : <file>@CURRENT_INSTALLED_DIR@/lib/boost_filesystem-vc140-mt-$(BOOST_VERSION_ABI_TAG).lib <variant>release : : <library>/boost/system//boost_system ;
+ lib boost_filesystem : : <file>@CURRENT_INSTALLED_DIR@/debug/lib/boost_filesystem-vc140-mt-gd-$(BOOST_VERSION_ABI_TAG).lib <variant>debug : : <library>/boost/system//boost_system ;
+ explicit boost_filesystem ;
+}
+
+if "@PORT@" != "boost-atomic"
+{
+ use-project /boost/atomic : . ;
+
+ lib boost_atomic : : <file>@CURRENT_INSTALLED_DIR@/lib/boost_atomic-vc140-mt-$(BOOST_VERSION_ABI_TAG).lib <variant>release ;
+ lib boost_atomic : : <file>@CURRENT_INSTALLED_DIR@/debug/lib/boost_atomic-vc140-mt-gd-$(BOOST_VERSION_ABI_TAG).lib <variant>debug ;
+ explicit boost_atomic ;
+}
+
+if "@PORT@" != "boost-context"
+{
+ feature.feature segmented-stacks : on : optional propagated composite ;
+ feature.compose <segmented-stacks>on : <define>BOOST_USE_SEGMENTED_STACKS ;
+
+ use-project /boost/context : . ;
+
+ lib boost_context : : <file>@CURRENT_INSTALLED_DIR@/lib/boost_context-vc140-mt-$(BOOST_VERSION_ABI_TAG).lib <variant>release ;
+ lib boost_context : : <file>@CURRENT_INSTALLED_DIR@/debug/lib/boost_context-vc140-mt-gd-$(BOOST_VERSION_ABI_TAG).lib <variant>debug ;
+ explicit boost_context ;
+}
+
+if "@PORT@" != "boost-test"
+{
+ use-project /boost/test : . ;
+
+ lib boost_unit_test_framework : : <file>@CURRENT_INSTALLED_DIR@/lib/boost_unit_test_framework-vc140-mt-$(BOOST_VERSION_ABI_TAG).lib <variant>release ;
+ lib boost_unit_test_framework : : <file>@CURRENT_INSTALLED_DIR@/debug/lib/boost_unit_test_framework-vc140-mt-gd-$(BOOST_VERSION_ABI_TAG).lib <variant>debug ;
+ explicit boost_unit_test_framework ;
+}
+
+rule requires ( foo * )
+{
+}
+
+rule boost-lib ( name : sources * : requirements * : default-build * : usage-requirements * )
+{
+ name = boost_$(name) ;
+ lib $(name) : $(sources) : $(requirements) : $(default-build) : $(usage-requirements) ;
+ boost-install $(name) ;
+}
+
+use-project /boost/@PORT@ : build ;
+
+build-project build ;
diff --git a/ports/boost-vcpkg-helpers/boost-modular.cmake b/ports/boost-vcpkg-helpers/boost-modular.cmake
new file mode 100644
index 000000000..8e3ca378b
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/boost-modular.cmake
@@ -0,0 +1,281 @@
+
+function(boost_modular_build)
+ cmake_parse_arguments(_bm "" "SOURCE_PATH;REQUIREMENTS" "OPTIONS" ${ARGN})
+
+ if(NOT DEFINED _bm_SOURCE_PATH)
+ message(FATAL_ERROR "SOURCE_PATH is a required argument to boost_modular_build.")
+ endif()
+
+ # Todo: this serves too similar a purpose as vcpkg_find_acquire_program()
+ if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(BOOST_BUILD_PATH "${CURRENT_INSTALLED_DIR}/tools/boost-build")
+ else()
+ get_filename_component(BOOST_BUILD_PATH "${CURRENT_INSTALLED_DIR}/../x86-windows/tools/boost-build" ABSOLUTE)
+ endif()
+
+ if(NOT EXISTS "${BOOST_BUILD_PATH}")
+ message(FATAL_ERROR "The x86 boost-build tools must be installed to build for non-x86/x64 platforms. Please run `vcpkg install boost-build:x86-windows`.")
+ endif()
+
+ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ list(APPEND _bm_OPTIONS windows-api=store)
+ endif()
+
+ set(_bm_DIR ${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers)
+
+ if(EXISTS "${_bm_SOURCE_PATH}/Jamfile.v2")
+ file(REMOVE_RECURSE "${_bm_SOURCE_PATH}/Jamfile.v2")
+ endif()
+
+ set(REQUIREMENTS ${_bm_REQUIREMENTS})
+
+ configure_file(${_bm_DIR}/Jamroot.jam ${_bm_SOURCE_PATH}/Jamroot.jam @ONLY)
+
+ # boost thread superfluously builds has_atomic_flag_lockfree on windows.
+ if(EXISTS "${_bm_SOURCE_PATH}/build/Jamfile.v2")
+ file(READ ${_bm_SOURCE_PATH}/build/Jamfile.v2 _contents)
+ string(REPLACE
+ "\n\nexe has_atomic_flag_lockfree"
+ "\n\nexplicit has_atomic_flag_lockfree ;\nexe has_atomic_flag_lockfree"
+ _contents
+ "${_contents}"
+ )
+ string(REPLACE "\nimport ../../config/checks/config : requires ;" "\n# import ../../config/checks/config : requires ;" _contents "${_contents}")
+ string(REGEX REPLACE
+ "\.\./\.\./([^/ ]+)/build//(boost_[^/ ]+)"
+ "/boost/\\1//\\2"
+ _contents
+ "${_contents}"
+ )
+ string(REGEX REPLACE " /boost//([^/ ]+)" " /boost/\\1//boost_\\1" _contents "${_contents}")
+ file(WRITE ${_bm_SOURCE_PATH}/build/Jamfile.v2 "${_contents}")
+ endif()
+
+ if(EXISTS "${_bm_SOURCE_PATH}/build/log-architecture.jam")
+ file(READ ${_bm_SOURCE_PATH}/build/log-architecture.jam _contents)
+ string(REPLACE
+ "\nproject.load [ path.join [ path.make $(here:D) ] ../../config/checks/architecture ] ;"
+ "\n# project.load [ path.join [ path.make $(here:D) ] ../../config/checks/architecture ] ;"
+ _contents "${_contents}")
+ file(WRITE ${_bm_SOURCE_PATH}/build/log-architecture.jam "${_contents}")
+ endif()
+
+ #####################
+ # Cleanup previous builds
+ ######################
+ file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+ if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+ # It is possible for a file in this folder to be locked due to antivirus or vctip
+ execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1)
+ file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+ if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+ message(FATAL_ERROR "Unable to remove directory: ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel\n Files are likely in use.")
+ endif()
+ endif()
+
+ file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+ if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+ # It is possible for a file in this folder to be locked due to antivirus or vctip
+ execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1)
+ file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+ if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+ message(FATAL_ERROR "Unable to remove directory: ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg\n Files are likely in use.")
+ endif()
+ endif()
+
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/debug)
+ message(FATAL_ERROR "Error: directory exists: ${CURRENT_PACKAGES_DIR}/debug\n The previous package was not fully cleared. This is an internal error.")
+ endif()
+ file(MAKE_DIRECTORY
+ ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
+ )
+
+ ######################
+ # Generate configuration
+ ######################
+ list(APPEND _bm_OPTIONS
+ -j$ENV{NUMBER_OF_PROCESSORS}
+ --debug-configuration
+ --debug-building
+ --debug-generators
+ --disable-icu
+ --ignore-site-config
+ --hash
+ -q
+
+ threadapi=win32
+ threading=multi
+ )
+
+ # Add build type specific options
+ if(VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ list(APPEND _bm_OPTIONS runtime-link=shared)
+ else()
+ list(APPEND _bm_OPTIONS runtime-link=static)
+ endif()
+
+ if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ list(APPEND _bm_OPTIONS link=shared)
+ else()
+ list(APPEND _bm_OPTIONS link=static)
+ endif()
+
+ if(VCPKG_TARGET_ARCHITECTURE MATCHES "x64")
+ list(APPEND _bm_OPTIONS address-model=64 architecture=x86)
+ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ list(APPEND _bm_OPTIONS address-model=32 architecture=arm)
+ else()
+ list(APPEND _bm_OPTIONS address-model=32 architecture=x86)
+ endif()
+
+ file(TO_CMAKE_PATH "${_bm_DIR}/nothing.bat" NOTHING_BAT)
+ set(TOOLSET_OPTIONS " <cxxflags>/EHsc <compileflags>-Zm800 <compileflags>-nologo")
+ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ if(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
+ find_path(PATH_TO_CL cl.exe)
+ find_path(PLATFORM_WINMD_DIR platform.winmd PATHS "${PATH_TO_CL}/../../../lib/x86/store/references" NO_DEFAULT_PATH)
+ if(PLATFORM_WINMD_DIR MATCHES "NOTFOUND")
+ message(FATAL_ERROR "Could not find `platform.winmd` in VS2017. Do you have the Universal Windows Platform development workload installed?")
+ endif()
+ else()
+ find_path(PLATFORM_WINMD_DIR platform.winmd PATHS "$ENV{VS140COMNTOOLS}/../../VC/LIB/store/references")
+ if(PLATFORM_WINMD_DIR MATCHES "NOTFOUND")
+ message(FATAL_ERROR "Could not find `platform.winmd` in VS2015.")
+ endif()
+ endif()
+ file(TO_NATIVE_PATH "${PLATFORM_WINMD_DIR}" PLATFORM_WINMD_DIR)
+ string(REPLACE "\\" "\\\\" PLATFORM_WINMD_DIR ${PLATFORM_WINMD_DIR}) # escape backslashes
+
+ set(TOOLSET_OPTIONS "${TOOLSET_OPTIONS} <cflags>-Zl <compileflags>\"/AI\"${PLATFORM_WINMD_DIR}\"\" <linkflags>WindowsApp.lib <cxxflags>/ZW <compileflags>-DVirtualAlloc=VirtualAllocFromApp <compileflags>-D_WIN32_WINNT=0x0A00")
+ else()
+ set(TOOLSET_OPTIONS "${TOOLSET_OPTIONS} <compileflags>-D_WIN32_WINNT=0x0602")
+ endif()
+
+ configure_file(${_bm_DIR}/user-config.jam ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/user-config.jam @ONLY)
+ configure_file(${_bm_DIR}/user-config.jam ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/user-config.jam @ONLY)
+
+ if(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
+ list(APPEND _bm_OPTIONS toolset=msvc-14.1)
+ elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v140")
+ list(APPEND _bm_OPTIONS toolset=msvc-14.0)
+ else()
+ message(FATAL_ERROR "Unsupported value for VCPKG_PLATFORM_TOOLSET: '${VCPKG_PLATFORM_TOOLSET}'")
+ endif()
+
+ ######################
+ # Perform build + Package
+ ######################
+ set(B2_EXE "${BOOST_BUILD_PATH}/b2.exe")
+
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Building ${TARGET_TRIPLET}-rel")
+ set(ENV{BOOST_BUILD_PATH} "${BOOST_BUILD_PATH}")
+ vcpkg_execute_required_process(
+ COMMAND "${B2_EXE}"
+ --stagedir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/stage
+ --build-dir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
+ --user-config=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/user-config.jam
+ ${_bm_OPTIONS}
+ variant=release
+ debug-symbols=on
+ WORKING_DIRECTORY ${_bm_SOURCE_PATH}
+ LOGNAME build-${TARGET_TRIPLET}-rel
+ )
+ message(STATUS "Building ${TARGET_TRIPLET}-rel done")
+ endif()
+
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg")
+ set(ENV{BOOST_BUILD_PATH} "${BOOST_BUILD_PATH}")
+ vcpkg_execute_required_process(
+ COMMAND "${B2_EXE}"
+ --stagedir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/stage
+ --build-dir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ --user-config=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/user-config.jam
+ ${_bm_OPTIONS}
+ variant=debug
+ WORKING_DIRECTORY ${_bm_SOURCE_PATH}
+ LOGNAME build-${TARGET_TRIPLET}-dbg
+ )
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg done")
+ endif()
+
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Packaging ${TARGET_TRIPLET}-rel")
+ file(GLOB REL_LIBS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/boost/build/*/*.lib)
+ file(COPY ${REL_LIBS}
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+ FILES_MATCHING PATTERN "*.lib")
+ if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(GLOB REL_DLLS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/boost/build/*/*.dll)
+ file(COPY ${REL_DLLS}
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+ FILES_MATCHING PATTERN "*.dll")
+ endif()
+ message(STATUS "Packaging ${TARGET_TRIPLET}-rel done")
+ endif()
+
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ message(STATUS "Packaging ${TARGET_TRIPLET}-dbg")
+ file(GLOB DBG_LIBS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/boost/build/*/*.lib)
+ file(COPY ${DBG_LIBS}
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+ FILES_MATCHING PATTERN "*.lib")
+ if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(GLOB DBG_DLLS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/boost/build/*/*.dll)
+ file(COPY ${DBG_DLLS}
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ FILES_MATCHING PATTERN "*.dll")
+ endif()
+ message(STATUS "Packaging ${TARGET_TRIPLET}-dbg done")
+ endif()
+
+ file(GLOB INSTALLED_LIBS ${CURRENT_PACKAGES_DIR}/debug/lib/*.lib ${CURRENT_PACKAGES_DIR}/lib/*.lib)
+ foreach(LIB ${INSTALLED_LIBS})
+ get_filename_component(OLD_FILENAME ${LIB} NAME)
+ get_filename_component(DIRECTORY_OF_LIB_FILE ${LIB} DIRECTORY)
+ string(REPLACE "libboost_" "boost_" NEW_FILENAME ${OLD_FILENAME})
+ string(REPLACE "-s-" "-" NEW_FILENAME ${NEW_FILENAME}) # For Release libs
+ string(REPLACE "-vc141-" "-vc140-" NEW_FILENAME ${NEW_FILENAME}) # To merge VS2017 and VS2015 binaries
+ string(REPLACE "-sgd-" "-gd-" NEW_FILENAME ${NEW_FILENAME}) # For Debug libs
+ string(REPLACE "-sgyd-" "-gyd-" NEW_FILENAME ${NEW_FILENAME}) # For Debug libs
+ string(REPLACE "-x32-" "-" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake 3.10 and earlier to locate the binaries
+ string(REPLACE "-x64-" "-" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake 3.10 and earlier to locate the binaries
+ string(REPLACE "-a32-" "-" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake 3.10 and earlier to locate the binaries
+ string(REPLACE "-a64-" "-" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake 3.10 and earlier to locate the binaries
+ string(REPLACE "_python3-" "_python-" NEW_FILENAME ${NEW_FILENAME})
+ if ("${DIRECTORY_OF_LIB_FILE}/${NEW_FILENAME}" STREQUAL "${DIRECTORY_OF_LIB_FILE}/${OLD_FILENAME}")
+ # nothing to do
+ elseif (EXISTS ${DIRECTORY_OF_LIB_FILE}/${NEW_FILENAME})
+ file(REMOVE ${DIRECTORY_OF_LIB_FILE}/${OLD_FILENAME})
+ else()
+ file(RENAME ${DIRECTORY_OF_LIB_FILE}/${OLD_FILENAME} ${DIRECTORY_OF_LIB_FILE}/${NEW_FILENAME})
+ endif()
+ endforeach()
+endfunction()
+
+function(boost_modular_headers)
+ cmake_parse_arguments(_bm "" "SOURCE_PATH" "" ${ARGN})
+
+ if(NOT DEFINED _bm_SOURCE_PATH)
+ message(FATAL_ERROR "SOURCE_PATH is a required argument to boost_modular_headers.")
+ endif()
+
+ message(STATUS "Packaging headers")
+
+ file(
+ COPY ${_bm_SOURCE_PATH}/include/boost
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
+ )
+
+ message(STATUS "Packaging headers done")
+
+ vcpkg_download_distfile(ARCHIVE
+ URLS "https://raw.githubusercontent.com/boostorg/boost/boost-1.65.1/LICENSE_1_0.txt"
+ FILENAME "boost_LICENSE_1_0.txt"
+ SHA512 d6078467835dba8932314c1c1e945569a64b065474d7aced27c9a7acc391d52e9f234138ed9f1aa9cd576f25f12f557e0b733c14891d42c16ecdc4a7bd4d60b8
+ )
+
+ file(INSTALL ${ARCHIVE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+endfunction()
diff --git a/ports/boost-vcpkg-helpers/generate-ports.ps1 b/ports/boost-vcpkg-helpers/generate-ports.ps1
new file mode 100644
index 000000000..11f670c7a
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/generate-ports.ps1
@@ -0,0 +1,336 @@
+[CmdletBinding()]
+param (
+ $libraries = @(),
+ $version = "1.66.0"
+)
+
+$scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition
+
+$libsDisabledInUWP = "iostreams|filesystem|thread|context|python|stacktrace|program-options|program_options|coroutine`$|fiber|locale|test|type-erasure|type_erasure|wave|log"
+
+function Generate()
+{
+ param (
+ [string]$Name,
+ [string]$Hash,
+ [bool]$NeedsBuild,
+ $Depends = @()
+ )
+
+ $controlDeps = ($Depends | sort) -join ", "
+
+ $sanitizedName = $name -replace "_","-"
+
+ mkdir "$scriptsDir/../boost-$sanitizedName" -erroraction SilentlyContinue | out-null
+ $controlLines = @(
+ "# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1"
+ "Source: boost-$sanitizedName"
+ "Version: $version"
+ "Build-Depends: $controlDeps"
+ "Description: Boost $Name module"
+ )
+ if ($Name -eq "locale")
+ {
+ $controlLines += @(
+ ""
+ "Feature: icu"
+ "Description: ICU backend for Boost.Locale"
+ "Build-Depends: icu"
+ )
+ }
+ if ($Name -eq "regex")
+ {
+ $controlLines += @(
+ ""
+ "Feature: icu"
+ "Description: ICU backend for Boost.Regex"
+ "Build-Depends: icu"
+ )
+ }
+ $controlLines | out-file -enc ascii "$scriptsDir/../boost-$sanitizedName/CONTROL"
+
+ $portfileLines = @(
+ "# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1"
+ ""
+ "include(vcpkg_common_functions)"
+ "include(`${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)"
+ ""
+ "vcpkg_from_github("
+ " OUT_SOURCE_PATH SOURCE_PATH"
+ " REPO boostorg/$Name"
+ " REF boost-$version"
+ " SHA512 $Hash"
+ " HEAD_REF master"
+ ")"
+ ""
+ )
+
+ if ($Name -eq "python")
+ {
+ $portfileLines += @(
+ "# Find Python. Can't use find_package here, but we already know where everything is"
+ "file(GLOB PYTHON_INCLUDE_PATH `"`${CURRENT_INSTALLED_DIR}/include/python[0-9.]*`")"
+ "set(PYTHONLIBS_RELEASE `"`${CURRENT_INSTALLED_DIR}/lib`")"
+ "set(PYTHONLIBS_DEBUG `"`${CURRENT_INSTALLED_DIR}/debug/lib`")"
+ "string(REGEX REPLACE `".*python([0-9\.]+)`$`" `"\\1`" PYTHON_VERSION `"`${PYTHON_INCLUDE_PATH}`")"
+ )
+ }
+
+ if ($NeedsBuild)
+ {
+ if ($Name -eq "locale")
+ {
+ $portfileLines += @(
+ "if(`"icu`" IN_LIST FEATURES)"
+ " set(BOOST_LOCALE_ICU on)"
+ "else()"
+ " set(BOOST_LOCALE_ICU off)"
+ "endif()"
+ ""
+ "boost_modular_build("
+ " SOURCE_PATH `${SOURCE_PATH}"
+ " OPTIONS"
+ " boost.locale.iconv=off"
+ " boost.locale.posix=off"
+ " /boost/locale//boost_locale"
+ " boost.locale.icu=`${BOOST_LOCALE_ICU}"
+ ")"
+ )
+ }
+ elseif ($Name -eq "regex")
+ {
+ $portfileLines += @(
+ "if(`"icu`" IN_LIST FEATURES)"
+ " set(REQUIREMENTS `"<library>/user-config//icuuc <library>/user-config//icudt <library>/user-config//icuin <define>BOOST_HAS_ICU=1`")"
+ "else()"
+ " set(REQUIREMENTS)"
+ "endif()"
+ ""
+ "boost_modular_build(SOURCE_PATH `${SOURCE_PATH} REQUIREMENTS `"`${REQUIREMENTS}`")"
+ )
+ }
+ elseif ($Name -eq "thread")
+ {
+ $portfileLines += @(
+ "boost_modular_build(SOURCE_PATH `${SOURCE_PATH} REQUIREMENTS `"<library>/boost/date_time//boost_date_time`")"
+ )
+ }
+ else
+ {
+ $portfileLines += @(
+ "boost_modular_build(SOURCE_PATH `${SOURCE_PATH})"
+ )
+ }
+ }
+ $portfileLines += @("boost_modular_headers(SOURCE_PATH `${SOURCE_PATH})")
+
+ if ($Name -eq "exception")
+ {
+ $portfileLines += @(
+ ""
+ "set(VCPKG_LIBRARY_LINKAGE static)"
+ "file(REMOVE_RECURSE `${CURRENT_PACKAGES_DIR}/bin `${CURRENT_PACKAGES_DIR}/debug/bin)"
+ )
+ }
+ if ($Name -eq "config")
+ {
+ $portfileLines += @(
+ "file(APPEND `${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp `"\n#ifndef BOOST_ALL_NO_LIB\n#define BOOST_ALL_NO_LIB\n#endif\n`")"
+ "file(APPEND `${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp `"\n#undef BOOST_ALL_DYN_LINK\n`")"
+ ""
+ "if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)"
+ " file(APPEND `${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp `"\n#define BOOST_ALL_DYN_LINK\n`")"
+ "endif()"
+ )
+ }
+
+ $portfileLines | out-file -enc ascii "$scriptsDir/../boost-$sanitizedName/portfile.cmake"
+}
+
+if (!(Test-Path "$scriptsDir/boost"))
+{
+ "Cloning boost..."
+ pushd $scriptsDir
+ try
+ {
+ git clone https://github.com/boostorg/boost --branch boost-$version
+ }
+ finally
+ {
+ popd
+ }
+}
+
+$libraries_found = ls $scriptsDir/boost/libs -directory | % name | % {
+ if ($_ -match "numeric")
+ {
+ "numeric_conversion"
+ "interval"
+ "odeint"
+ "ublas"
+ }
+ else
+ {
+ $_
+ }
+}
+
+mkdir $scriptsDir/downloads -erroraction SilentlyContinue | out-null
+
+if ($libraries.Length -eq 0)
+{
+ $libraries = $libraries_found
+}
+
+$libraries_in_boost_port = @()
+
+foreach ($library in $libraries)
+{
+ "Handling boost/$library..."
+ $archive = "$scriptsDir/downloads/$library-boost-$version.tar.gz"
+ if (!(Test-Path $archive))
+ {
+ "Downloading boost/$library..."
+ Invoke-WebRequest "https://github.com/boostorg/$library/archive/boost-$version.tar.gz" -OutFile $archive
+ }
+ $hash = vcpkg hash $archive
+ $unpacked = "$scriptsDir/libs/$library-boost-$version"
+ if (!(Test-Path $unpacked))
+ {
+ "Unpacking boost/$library..."
+ mkdir $scriptsDir/libs -erroraction SilentlyContinue | out-null
+ pushd $scriptsDir/libs
+ try
+ {
+ cmake -E tar xf $archive
+ }
+ finally
+ {
+ popd
+ }
+ }
+ pushd $unpacked
+ try
+ {
+ $groups = $(
+ findstr /si /C:"#include <boost/" include/*
+ findstr /si /C:"#include <boost/" src/*
+ ) |
+ % { $_ -replace "^[^:]*:","" -replace "boost/numeric/conversion/","boost/numeric_conversion/" -replace "boost/detail/([^/]+)/","boost/`$1/" -replace "#include ?<boost/([a-zA-Z0-9\._]*)(/|>).*", "`$1" -replace "/|\.hp?p?| ","" } | group | % name | % {
+ # mappings
+ Write-Verbose "${library}: $_"
+ if ($_ -match "aligned_storage") { "type_traits" }
+ elseif ($_ -match "noncopyable|ref|swap|get_pointer|checked_delete|visit_each") { "core" }
+ elseif ($_ -eq "type") { "core" }
+ elseif ($_ -match "unordered_") { "unordered" }
+ elseif ($_ -match "cstdint") { "integer" }
+ elseif ($_ -match "call_traits|operators|current_function|cstdlib|next_prior") { "utility" }
+ elseif ($_ -eq "version") { "config" }
+ elseif ($_ -match "shared_ptr|make_shared|intrusive_ptr|scoped_ptr|pointer_to_other|weak_ptr|shared_array|scoped_array") { "smart_ptr" }
+ elseif ($_ -match "iterator_adaptors|generator_iterator|pointee") { "iterator" }
+ elseif ($_ -eq "regex_fwd") { "regex" }
+ elseif ($_ -eq "make_default") { "convert" }
+ elseif ($_ -eq "foreach_fwd") { "foreach" }
+ elseif ($_ -eq "cerrno") { "system" }
+ elseif ($_ -eq "archive") { "serialization" }
+ elseif ($_ -eq "none") { "optional" }
+ elseif ($_ -eq "integer_traits") { "integer" }
+ elseif ($_ -eq "limits") { "compatibility" }
+ elseif ($_ -eq "math_fwd") { "math" }
+ elseif ($_ -match "polymorphic_cast|implicit_cast") { "conversion" }
+ elseif ($_ -eq "nondet_random") { "random" }
+ elseif ($_ -eq "memory_order") { "atomic" }
+ elseif ($_ -eq "blank") { "detail" }
+ elseif ($_ -match "is_placeholder|mem_fn") { "bind" }
+ elseif ($_ -eq "exception_ptr") { "exception" }
+ elseif ($_ -eq "multi_index_container") { "multi_index" }
+ elseif ($_ -eq "lexical_cast") { "lexical_cast"; "math" }
+ elseif ($_ -eq "numeric" -and $library -notmatch "numeric_conversion|interval|odeint|ublas") { "numeric_conversion"; "interval"; "odeint"; "ublas" }
+ else { $_ }
+ } | group | % name | ? { $_ -ne $library }
+
+ #"`nFor ${library}:"
+ " [known] " + $($groups | ? { $libraries_found -contains $_ })
+ " [unknown] " + $($groups | ? { $libraries_found -notcontains $_ })
+
+ $deps = @($groups | ? { $libraries_found -contains $_ })
+
+ $deps = @($deps | ? {
+ # Boost contains cycles, so remove a few dependencies to break the loop.
+ (($library -notmatch "core|assert|mpl|detail|type_traits") -or ($_ -notmatch "utility")) `
+ -and `
+ (($library -notmatch "lexical_cast") -or ($_ -notmatch "math"))`
+ -and `
+ (($library -notmatch "functional") -or ($_ -notmatch "function"))`
+ -and `
+ (($library -notmatch "detail") -or ($_ -notmatch "static_assert|integer|mpl|type_traits"))`
+ -and `
+ (($library -notmatch "property_map") -or ($_ -notmatch "mpi"))`
+ -and `
+ (($library -notmatch "spirit") -or ($_ -notmatch "serialization"))`
+ -and `
+ (($library -notmatch "utility|concept_check") -or ($_ -notmatch "iterator"))
+ } | % { "boost-$_" -replace "_","-" } | % {
+ if ($_ -match $libsDisabledInUWP)
+ {
+ "$_ (windows)"
+ }
+ else
+ {
+ $_
+ }
+ })
+
+ $deps += @("boost-vcpkg-helpers")
+
+ $needsBuild = $false
+ if ((Test-Path $unpacked/build/Jamfile.v2) -and $library -ne "metaparse")
+ {
+ $deps += @("boost-build")
+ $needsBuild = $true
+ }
+
+ if ($library -eq "python")
+ {
+ $deps += @("python3")
+ $needsBuild = $true
+ }
+ elseif ($library -eq "iostreams")
+ {
+ $deps += @("zlib", "bzip2")
+ }
+
+ Generate `
+ -Name $library `
+ -Hash $hash `
+ -Depends $deps `
+ -NeedsBuild $needsBuild
+
+ if ($library -match $libsDisabledInUWP)
+ {
+ $libraries_in_boost_port += @("$library (windows)")
+ }
+ else
+ {
+ $libraries_in_boost_port += @($library)
+ }
+
+ }
+ finally
+ {
+ popd
+ }
+}
+
+# Generate master boost control file which depends on each individual library
+$boostDependsList = @($libraries_in_boost_port | % { "boost-$_" -replace "_","-" }) -join ", "
+
+@(
+ "Source: boost"
+ "Version: $version"
+ "Build-Depends: $boostDependsList"
+) | out-file -enc ascii $scriptsDir/../boost/CONTROL
+
+"set(VCPKG_POLICY_EMPTY_PACKAGE enabled)`n" | out-file -enc ascii $scriptsDir/../boost/portfile.cmake
+
+return
diff --git a/ports/boost-vcpkg-helpers/nothing.bat b/ports/boost-vcpkg-helpers/nothing.bat
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/nothing.bat
diff --git a/ports/boost-vcpkg-helpers/portfile.cmake b/ports/boost-vcpkg-helpers/portfile.cmake
new file mode 100644
index 000000000..3d31bd327
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/portfile.cmake
@@ -0,0 +1,11 @@
+
+file(
+ COPY
+ ${CMAKE_CURRENT_LIST_DIR}/boost-modular.cmake
+ ${CMAKE_CURRENT_LIST_DIR}/Jamroot.jam
+ ${CMAKE_CURRENT_LIST_DIR}/nothing.bat
+ ${CMAKE_CURRENT_LIST_DIR}/user-config.jam
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/boost-vcpkg-helpers
+)
+
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
diff --git a/ports/boost-vcpkg-helpers/user-config.jam b/ports/boost-vcpkg-helpers/user-config.jam
new file mode 100644
index 000000000..c970f07a5
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/user-config.jam
@@ -0,0 +1,25 @@
+import toolset ;
+
+using msvc : : cl.exe :
+<setup>@NOTHING_BAT@
+@TOOLSET_OPTIONS@
+;
+
+if "@PORT@" = "boost-python"
+{
+ using python : @PYTHON_VERSION@ : : @PYTHON_INCLUDE_PATH@ : @PYTHONLIBS_RELEASE@ ;
+ using python : @PYTHON_VERSION@ : : @PYTHON_INCLUDE_PATH@ : @PYTHONLIBS_DEBUG@ : <python-debugging>on ;
+}
+
+project user-config : ;
+
+lib advapi32 ;
+
+lib icuuc : : <file>@CURRENT_INSTALLED_DIR@/lib/icuuc.lib <variant>release : : <library>advapi32 ;
+lib icuuc : : <file>@CURRENT_INSTALLED_DIR@/debug/lib/icuucd.lib <variant>debug : : <library>advapi32 ;
+
+lib icuin : : <file>@CURRENT_INSTALLED_DIR@/lib/icuin.lib <variant>release : : ;
+lib icuin : : <file>@CURRENT_INSTALLED_DIR@/debug/lib/icuind.lib <variant>debug : : ;
+
+lib icudt : : <file>@CURRENT_INSTALLED_DIR@/lib/icudt.lib <variant>release : : ;
+lib icudt : : <file>@CURRENT_INSTALLED_DIR@/debug/lib/icudtd.lib <variant>debug : : ;
diff --git a/ports/boost-vmd/CONTROL b/ports/boost-vmd/CONTROL
new file mode 100644
index 000000000..cbd36905a
--- /dev/null
+++ b/ports/boost-vmd/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-vmd
+Version: 1.66.0
+Build-Depends: boost-preprocessor, boost-vcpkg-helpers
+Description: Boost vmd module
diff --git a/ports/boost-vmd/portfile.cmake b/ports/boost-vmd/portfile.cmake
new file mode 100644
index 000000000..389ba79fd
--- /dev/null
+++ b/ports/boost-vmd/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/vmd
+ REF boost-1.66.0
+ SHA512 a0112a6751d1dc9c015d8ba8a2dce5ebe13c2189cec1039a5bc57e71efad7244c39eabdb5e24c8d8111edfc1a9856154b9c3f658f36bfd935274e02229e86821
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-wave/CONTROL b/ports/boost-wave/CONTROL
new file mode 100644
index 000000000..99aa3d8be
--- /dev/null
+++ b/ports/boost-wave/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-wave
+Version: 1.66.0
+Build-Depends: boost-assert, boost-build, boost-concept-check, boost-config, boost-core, boost-detail, boost-filesystem (windows), boost-integer, boost-iterator, boost-mpl, boost-multi-index, boost-pool, boost-preprocessor, boost-serialization, boost-smart-ptr, boost-spirit, boost-static-assert, boost-throw-exception, boost-type-traits, boost-vcpkg-helpers
+Description: Boost wave module
diff --git a/ports/boost-wave/portfile.cmake b/ports/boost-wave/portfile.cmake
new file mode 100644
index 000000000..a9c3ea232
--- /dev/null
+++ b/ports/boost-wave/portfile.cmake
@@ -0,0 +1,15 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/wave
+ REF boost-1.66.0
+ SHA512 2fd57aab7cbc92e7d46bc35512f2019d71f0e5af93dfcbfeada595d899bbf9ae1f1c88f915d555f2fce16419a9320164203303d00f09493cfa5f87afde002d42
+ HEAD_REF master
+)
+
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-winapi/CONTROL b/ports/boost-winapi/CONTROL
new file mode 100644
index 000000000..f06f0c530
--- /dev/null
+++ b/ports/boost-winapi/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-winapi
+Version: 1.66.0
+Build-Depends: boost-config, boost-integer, boost-predef, boost-vcpkg-helpers
+Description: Boost winapi module
diff --git a/ports/boost-winapi/portfile.cmake b/ports/boost-winapi/portfile.cmake
new file mode 100644
index 000000000..eb0b91b8f
--- /dev/null
+++ b/ports/boost-winapi/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/winapi
+ REF boost-1.66.0
+ SHA512 ec60e5d73d6553ca981b4a65b0edcd85dc54336e6369124204495a35c6c1c7adf79345e47425a93f1d9ed6694bfae76828162eb102bc660901fb276a3e9eb989
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-xpressive/CONTROL b/ports/boost-xpressive/CONTROL
new file mode 100644
index 000000000..e126d3c19
--- /dev/null
+++ b/ports/boost-xpressive/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-xpressive
+Version: 1.66.0
+Build-Depends: boost-assert, boost-compatibility, boost-config, boost-conversion, boost-core, boost-detail, boost-exception, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-mpl, boost-numeric-conversion, boost-optional, boost-preprocessor, boost-proto, boost-range, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost xpressive module
diff --git a/ports/boost-xpressive/portfile.cmake b/ports/boost-xpressive/portfile.cmake
new file mode 100644
index 000000000..3848d814c
--- /dev/null
+++ b/ports/boost-xpressive/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular.cmake)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/xpressive
+ REF boost-1.66.0
+ SHA512 99b4cab1ec6e85421dfbd8085cbdad2533e48aaff352ba920d589da328ee78a009d27b53042f08bb64d4b3b02499152928cadb5c97537c9b8ab5ce97daaf34f9
+ HEAD_REF master
+)
+
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost/CONTROL b/ports/boost/CONTROL
index c07369e2e..660f4898e 100644
--- a/ports/boost/CONTROL
+++ b/ports/boost/CONTROL
@@ -1,16 +1,3 @@
-Source: boost
-Version: 1.65.1-3
-Description: Peer-reviewed portable C++ source libraries
-Build-Depends: zlib, bzip2
-
-Feature: locale-icu
-Description: ICU backend for Boost.Locale
-Build-Depends: icu
-
-Feature: regex-icu
-Description: ICU support for Boost.Regex
-Build-Depends: icu
-
-Feature: python
-Description: a C++ library which enables seamless interoperability between C++ and the Python programming language.
-Build-Depends: python3
+Source: boost
+Version: 1.66.0
+Build-Depends: boost-accumulators, boost-algorithm, boost-align, boost-any, boost-array, boost-asio, boost-assert, boost-assign, boost-atomic, boost-beast, boost-bimap, boost-bind, boost-callable-traits, boost-chrono, boost-circular-buffer, boost-compatibility, boost-compute, boost-concept-check, boost-config, boost-container, boost-context (windows), boost-conversion, boost-convert, boost-core, boost-coroutine (windows), boost-coroutine2, boost-crc, boost-date-time, boost-detail, boost-disjoint-sets, boost-dll, boost-dynamic-bitset, boost-endian, boost-exception, boost-fiber (windows), boost-filesystem (windows), boost-flyweight, boost-foreach, boost-format, boost-function, boost-functional, boost-function-types, boost-fusion, boost-geometry, boost-gil, boost-graph, boost-graph-parallel, boost-hana, boost-heap, boost-icl, boost-integer, boost-interprocess, boost-intrusive, boost-io, boost-iostreams (windows), boost-iterator, boost-lambda, boost-lexical-cast, boost-locale (windows), boost-local-function, boost-lockfree, boost-log (windows), boost-logic (windows), boost-math, boost-metaparse, boost-move, boost-mp11, boost-mpi, boost-mpl, boost-msm, boost-multiprecision, boost-multi-array, boost-multi-index, boost-numeric-conversion, boost-interval, boost-odeint, boost-ublas, boost-optional, boost-parameter, boost-phoenix, boost-polygon, boost-poly-collection, boost-pool, boost-predef, boost-preprocessor, boost-process, boost-program-options (windows), boost-property-map, boost-property-tree, boost-proto, boost-ptr-container, boost-python (windows), boost-qvm, boost-random, boost-range, boost-ratio, boost-rational, boost-regex, boost-scope-exit, boost-serialization, boost-signals, boost-signals2, boost-smart-ptr, boost-sort, boost-spirit, boost-stacktrace (windows), boost-statechart, boost-static-assert, boost-system, boost-test (windows), boost-thread (windows), boost-throw-exception, boost-timer, boost-tokenizer, boost-tti, boost-tuple, boost-typeof, boost-type-erasure (windows), boost-type-index, boost-type-traits, boost-units, boost-unordered, boost-utility, boost-uuid, boost-variant, boost-vmd, boost-wave (windows), boost-winapi, boost-xpressive
diff --git a/ports/boost/portfile.cmake b/ports/boost/portfile.cmake
index fa264fa51..0283a2085 100644
--- a/ports/boost/portfile.cmake
+++ b/ports/boost/portfile.cmake
@@ -1,346 +1,2 @@
-include(vcpkg_common_functions)
-set(VERSION 1_65)
-set(VERSION_FULL 1_65_1)
-set(VERSION2 1.65.1)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/boost_${VERSION_FULL})
-
-######################
-# Acquire and arrange sources
-######################
-vcpkg_download_distfile(ARCHIVE_FILE
- URLS "https://sourceforge.net/projects/boost/files/boost/${VERSION2}/boost_${VERSION_FULL}.7z" "http://dl.bintray.com/boostorg/release/${VERSION2}/source/boost_${VERSION_FULL}.7z"
- FILENAME "boost_${VERSION_FULL}.7z"
- SHA512 b1d9264ec74dd75c68176f5a2d2da33a2c1e3162842cc61a07ac8ed1ebb953855cece4faf72ce99b490b665e813b839e35c7fc8026f2f9cb31b106fb8bab2a9c
-)
-vcpkg_extract_source_archive(${ARCHIVE_FILE})
-
-# apply boost range hotfix
-vcpkg_download_distfile(DIFF
- URLS "https://github.com/boostorg/range/commit/e7ebe14707130cda7b72e0ae5e93b17157fdb6a2.diff"
- FILENAME "boost-range-has_range_iterator-hotfix_e7ebe14707130cda7b72e0ae5e93b17157fdb6a2-2.diff"
- SHA512 88392fcf092d07ee2de66d937634688eef1d7491a4e2fb0fce064b4e631813a0814455a329f9eed8b968ff205883751d51a86edecc8e355790fc8a35d6742483
-)
-
-FILE(READ "${DIFF}" content)
-STRING(REGEX REPLACE "include/" "" content "${content}")
-set(DIFF2 ${CURRENT_BUILDTREES_DIR}/src/boost-range-has_range_iterator-hotfix_e7ebe14707130cda7b72e0ae5e93b17157fdb6a2.diff.fixed)
-FILE(WRITE ${DIFF2} "${content}")
-vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} PATCHES ${DIFF2}
- ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-boost-ICU-support.patch)
-
-######################
-# Cleanup previous builds
-######################
-file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
-if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
- # It is possible for a file in this folder to be locked due to antivirus or vctip
- execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1)
- file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
- if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
- message(FATAL_ERROR "Unable to remove directory: ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel\n Files are likely in use.")
- endif()
-endif()
-
-file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
-if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
- # It is possible for a file in this folder to be locked due to antivirus or vctip
- execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1)
- file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
- if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
- message(FATAL_ERROR "Unable to remove directory: ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg\n Files are likely in use.")
- endif()
-endif()
-
-if(EXISTS ${CURRENT_PACKAGES_DIR}/debug)
- message(FATAL_ERROR "Error: directory exists: ${CURRENT_PACKAGES_DIR}/debug\n The previous package was not fully cleared. This is an internal error.")
-endif()
-file(MAKE_DIRECTORY
- ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
-
-######################
-# Bootstrap b2
-######################
-if(NOT EXISTS ${SOURCE_PATH}/b2.exe)
- message(STATUS "Bootstrapping")
- vcpkg_execute_required_process(
- COMMAND "${SOURCE_PATH}/bootstrap.bat" msvc
- WORKING_DIRECTORY ${SOURCE_PATH}
- LOGNAME bootstrap
- )
-endif()
-message(STATUS "Bootstrapping done")
-
-######################
-# Generate configuration
-######################
-set(B2_OPTIONS
- -sZLIB_INCLUDE="${CURRENT_INSTALLED_DIR}\\include"
- -sBZIP2_INCLUDE="${CURRENT_INSTALLED_DIR}\\include"
- -sICU_PATH="${CURRENT_INSTALLED_DIR}"
- -j$ENV{NUMBER_OF_PROCESSORS}
- --debug-configuration
- --ignore-site-config
- --hash
- -q
-
- threading=multi
-)
-
-# Add build type specific options
-set(B2_OPTIONS_DBG
- -sZLIB_BINARY=zlibd
- -sZLIB_LIBPATH="${CURRENT_INSTALLED_DIR}\\debug\\lib"
- -sBZIP2_BINARY=bz2d
- -sBZIP2_LIBPATH="${CURRENT_INSTALLED_DIR}\\debug\\lib"
-)
-
-set(B2_OPTIONS_REL
- -sZLIB_BINARY=zlib
- -sZLIB_LIBPATH="${CURRENT_INSTALLED_DIR}\\lib"
- -sBZIP2_BINARY=bz2
- -sBZIP2_LIBPATH="${CURRENT_INSTALLED_DIR}\\lib"
-)
-
-set(LIB_RUNTIME_LINK "shared")
-if (VCPKG_CRT_LINKAGE STREQUAL dynamic)
- list(APPEND B2_OPTIONS runtime-link=shared)
-else()
- list(APPEND B2_OPTIONS runtime-link=static)
- set(LIB_RUNTIME_LINK "static")
-endif()
-
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- list(APPEND B2_OPTIONS link=shared)
-else()
- list(APPEND B2_OPTIONS link=static)
-endif()
-
-if(TRIPLET_SYSTEM_ARCH MATCHES "x64")
- list(APPEND B2_OPTIONS address-model=64)
-endif()
-
-if("python" IN_LIST FEATURES)
- # Find Python. Can't use find_package here, but we already know where everything is
- file(GLOB PYTHON_INCLUDE_PATH "${CURRENT_INSTALLED_DIR}/include/python[0-9.]*")
- set(PYTHONLIBS_RELEASE "${CURRENT_INSTALLED_DIR}/lib")
- set(PYTHONLIBS_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib")
- string(REGEX REPLACE ".*python([0-9\.]+)$" "\\1" PYTHON_VERSION ${PYTHON_INCLUDE_PATH})
- list(APPEND B2_OPTIONS_DBG python-debugging=on)
-else()
- list(APPEND B2_OPTIONS --without-python)
-endif()
-
-if("locale-icu" IN_LIST FEATURES)
- list(APPEND B2_OPTIONS boost.locale.icu=on)
-else()
- list(APPEND B2_OPTIONS boost.locale.icu=off)
-endif()
-
-if("regex-icu" IN_LIST FEATURES)
- list(APPEND B2_OPTIONS --enable-icu)
-else()
- list(APPEND B2_OPTIONS --disable-icu)
-endif()
-
-
-if(VCPKG_CMAKE_SYSTEM_NAME MATCHES "WindowsStore")
- list(APPEND B2_OPTIONS
- windows-api=store
- # --without-atomic
- # --without-chrono
- # --without-system
- # --without-date_time
- # --without-exception
- # --without-serialization
- # --without-context
- # --without-graph_parallel
- # --without-signals
- # --without-coroutine2
- # --without-graph
- # --without-math
- # --without-random
- # --without-regex
- ################################
- --without-type_erasure # depends on thread
- --without-log # depends on filesystem
- --without-mpi # Needs "using mpi ;"
- --without-wave # depends on filesystem
- --without-coroutine # depends on thread
- --without-metaparse # depends on test
- --without-locale # libs\locale\src\encoding\wconv_codepage.ipp(114): error C3861: 'IsDBCSLeadByteEx': identifier not found
- --without-timer # libs\timer\src\cpu_timer.cpp(126): error C2039: 'GetProcessTimes': is not a member of '`global namespace''
- --without-program_options # libs\program_options\src\parsers.cpp(194): error C2065: 'environ': undeclared identifier
-
- --without-test
- --without-fiber
- --without-stacktrace
- --without-filesystem # libs\filesystem\src\operations.cpp(178): error C2039: 'GetEnvironmentVariableW': is not a member of '`global namespace''
- --without-thread
- --without-iostreams
- --without-container
- --without-python
- )
- if(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
- find_path(PATH_TO_CL cl.exe)
- find_path(PLATFORM_WINMD_DIR platform.winmd PATHS "${PATH_TO_CL}/../../../lib/x86/store/references" NO_DEFAULT_PATH)
- if(PLATFORM_WINMD_DIR MATCHES "NOTFOUND")
- message(FATAL_ERROR "Could not find `platform.winmd` in VS2017. Do you have the Universal Windows Platform development workload installed?")
- endif()
- else()
- find_path(PLATFORM_WINMD_DIR platform.winmd PATHS "$ENV{VS140COMNTOOLS}/../../VC/LIB/store/references")
- if(PLATFORM_WINMD_DIR MATCHES "NOTFOUND")
- message(FATAL_ERROR "Could not find `platform.winmd` in VS2015.")
- endif()
- endif()
- file(TO_NATIVE_PATH "${PLATFORM_WINMD_DIR}" PLATFORM_WINMD_DIR)
- string(REPLACE "\\" "\\\\" PLATFORM_WINMD_DIR ${PLATFORM_WINMD_DIR}) # escape backslashes
- configure_file(${CMAKE_CURRENT_LIST_DIR}/uwp/user-config.jam ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/user-config.jam ESCAPE_QUOTES @ONLY)
- configure_file(${CMAKE_CURRENT_LIST_DIR}/uwp/user-config.jam ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/user-config.jam ESCAPE_QUOTES @ONLY)
-else()
- configure_file(${CMAKE_CURRENT_LIST_DIR}/desktop/user-config.jam ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/user-config.jam @ONLY)
- configure_file(${CMAKE_CURRENT_LIST_DIR}/desktop/user-config.jam ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/user-config.jam @ONLY)
-endif()
-
-if(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
- list(APPEND B2_OPTIONS toolset=msvc-14.1)
-elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v140")
- list(APPEND B2_OPTIONS toolset=msvc-14.0)
-else()
- message(FATAL_ERROR "Unsupported value for VCPKG_PLATFORM_TOOLSET: '${VCPKG_PLATFORM_TOOLSET}'")
-endif()
-
-set(B2_OPTIONS_DBG
- ${B2_OPTIONS}
- ${B2_OPTIONS_DBG}
-)
-
-set(B2_OPTIONS_REL
- ${B2_OPTIONS}
- ${B2_OPTIONS_REL}
-)
-
-######################
-# Perform build + Package
-######################
-message(STATUS "Building ${TARGET_TRIPLET}-rel")
-set(ENV{BOOST_BUILD_PATH} ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
-vcpkg_execute_required_process_repeat(
- COUNT 2
- COMMAND "${SOURCE_PATH}/b2.exe"
- --stagedir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/stage
- --build-dir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
- ${B2_OPTIONS_REL}
- variant=release
- debug-symbols=on
- WORKING_DIRECTORY ${SOURCE_PATH}
- LOGNAME build-${TARGET_TRIPLET}-rel
-)
-message(STATUS "Building ${TARGET_TRIPLET}-rel done")
-message(STATUS "Building ${TARGET_TRIPLET}-dbg")
-set(ENV{BOOST_BUILD_PATH} ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
-vcpkg_execute_required_process_repeat(
- COUNT 2
- COMMAND "${SOURCE_PATH}/b2.exe"
- --stagedir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/stage
- --build-dir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- ${B2_OPTIONS_DBG}
- variant=debug
- WORKING_DIRECTORY ${SOURCE_PATH}
- LOGNAME build-${TARGET_TRIPLET}-dbg
-)
-message(STATUS "Building ${TARGET_TRIPLET}-dbg done")
-
-message(STATUS "Packaging headers")
-file(
- COPY ${SOURCE_PATH}/boost
- DESTINATION ${CURRENT_PACKAGES_DIR}/include
-)
-
-# Disable Boost auto-link.
-file(APPEND ${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp
- "\n#ifndef BOOST_ALL_NO_LIB\n#define BOOST_ALL_NO_LIB\n#endif\n"
-)
-file(APPEND ${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp
- "\n#undef BOOST_ALL_DYN_LINK\n"
-)
-
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- file(APPEND ${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp
- "\n#define BOOST_ALL_DYN_LINK\n"
- )
-endif()
-
-file(INSTALL ${SOURCE_PATH}/LICENSE_1_0.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/boost RENAME copyright)
-message(STATUS "Packaging headers done")
-
-# This function makes the static build lib names match the dynamic build lib names which FindBoost.cmake is looking for by default.
-# It also renames a couple of "libboost" lib files in the dynamic build (for example libboost_exception-vc140-mt-1_63.lib).
-function(boost_rename_libs LIBS)
- foreach(LIB ${${LIBS}})
- get_filename_component(OLD_FILENAME ${LIB} NAME)
- get_filename_component(DIRECTORY_OF_LIB_FILE ${LIB} DIRECTORY)
- string(REPLACE "libboost_" "boost_" NEW_FILENAME ${OLD_FILENAME})
- string(REPLACE "-s-" "-" NEW_FILENAME ${NEW_FILENAME}) # For Release libs
- string(REPLACE "-vc141-" "-vc140-" NEW_FILENAME ${NEW_FILENAME}) # To merge VS2017 and VS2015 binaries
- string(REPLACE "-sgd-" "-gd-" NEW_FILENAME ${NEW_FILENAME}) # For Debug libs
- if ("${DIRECTORY_OF_LIB_FILE}/${NEW_FILENAME}" STREQUAL "${DIRECTORY_OF_LIB_FILE}/${OLD_FILENAME}")
- # nothing to do
- elseif (EXISTS ${DIRECTORY_OF_LIB_FILE}/${NEW_FILENAME})
- file(REMOVE ${DIRECTORY_OF_LIB_FILE}/${OLD_FILENAME})
- else()
- file(RENAME ${DIRECTORY_OF_LIB_FILE}/${OLD_FILENAME} ${DIRECTORY_OF_LIB_FILE}/${NEW_FILENAME})
- endif()
- endforeach()
-endfunction()
-
-message(STATUS "Packaging ${TARGET_TRIPLET}-rel")
-file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/stage/lib/
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib
- FILES_MATCHING PATTERN "*.lib")
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/stage/lib/
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin
- FILES_MATCHING PATTERN "*.dll")
-endif()
-file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*.lib)
-
-boost_rename_libs(RELEASE_LIBS)
-message(STATUS "Packaging ${TARGET_TRIPLET}-rel done")
-
-message(STATUS "Packaging ${TARGET_TRIPLET}-dbg")
-file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/stage/lib/
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
- FILES_MATCHING PATTERN "*.lib")
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/stage/lib/
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
- FILES_MATCHING PATTERN "*.dll")
-endif()
-file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/debug/lib/*.lib)
-boost_rename_libs(DEBUG_LIBS)
-message(STATUS "Packaging ${TARGET_TRIPLET}-dbg done")
-
-macro(move_to_manual_link LIBNAME)
- if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/${LIBNAME}-vc140-mt-${VERSION_FULL}.lib)
- file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link)
- file(RENAME
- ${CURRENT_PACKAGES_DIR}/lib/${LIBNAME}-vc140-mt-${VERSION_FULL}.lib
- ${CURRENT_PACKAGES_DIR}/lib/manual-link/${LIBNAME}-vc140-mt-${VERSION_FULL}.lib
- )
- endif()
- if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/${LIBNAME}-vc140-mt-gd-${VERSION_FULL}.lib)
- file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
- file(RENAME
- ${CURRENT_PACKAGES_DIR}/debug/lib/${LIBNAME}-vc140-mt-gd-${VERSION_FULL}.lib
- ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/${LIBNAME}-vc140-mt-gd-${VERSION_FULL}.lib
- )
- endif()
-endmacro()
-
-move_to_manual_link(boost_test_exec_monitor)
-move_to_manual_link(boost_prg_exec_monitor)
-
-vcpkg_copy_pdbs()
-
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+
diff --git a/ports/brotli/CONTROL b/ports/brotli/CONTROL
index 25bc036a8..0c4d7eb0c 100644
--- a/ports/brotli/CONTROL
+++ b/ports/brotli/CONTROL
@@ -1,3 +1,3 @@
Source: brotli
-Version: 0.6.0-1
+Version: 1.0.2-1
Description: a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling.
diff --git a/ports/brotli/portfile.cmake b/ports/brotli/portfile.cmake
index 36e489bc4..b4e33086e 100644
--- a/ports/brotli/portfile.cmake
+++ b/ports/brotli/portfile.cmake
@@ -3,49 +3,35 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO google/brotli
- REF v0.6.0
- SHA512 36caa277790efeb5bff0fdc090cdcf00fd9995c4e81a60ed31d36af2e13848ec1afe5d84e6926eebbee013525191e9404e112cb7fbede16097221c5bc3dfb5d5
+ REF v1.0.2
+ SHA512 b3ec98159e63b4169dea3e958d60d89247dc1c0f78aab27bfffb2ece659fa024df990d410aa15c12b2082d42e3785e32ec248dce2b116c7f34e98bb6337f9fc9
HEAD_REF master
)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
+ OPTIONS -DBROTLI_DISABLE_TESTS=ON
)
-vcpkg_build_cmake()
+vcpkg_install_cmake()
-file(GLOB DLLS
- "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.dll"
- "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/*.dll"
- "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/Release/*.dll"
-)
-file(GLOB LIBS
- "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.lib"
- "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/*.lib"
- "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/Release/*.lib"
-)
-file(GLOB DEBUG_DLLS
- "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.dll"
- "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/*.dll"
- "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*/Debug/*.dll"
-)
-file(GLOB DEBUG_LIBS
- "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.lib"
- "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/*.lib"
- "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*/Debug/*.lib"
-)
-file(GLOB HEADERS "${SOURCE_PATH}/c/include/brotli/*.h" "${SOURCE_PATH}/include/brotli/*.h")
-if(DLLS)
- file(INSTALL ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
-endif()
-file(INSTALL ${LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
-if(DEBUG_DLLS)
- file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/brotli)
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/brotli.exe ${CURRENT_PACKAGES_DIR}/tools/brotli/brotli.exe)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/brotli.exe)
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/brotli)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ file(GLOB STATIC_LIBS "${CURRENT_PACKAGES_DIR}/lib/*-static.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/*-static.lib")
+ file(REMOVE ${STATIC_LIBS})
+else()
+ file(GLOB LIBS "${CURRENT_PACKAGES_DIR}/lib/*.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/*.lib")
+ list(FILTER LIBS EXCLUDE REGEX "-static\\.lib\$")
+ file(REMOVE_RECURSE ${LIBS} ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
endif()
-file(INSTALL ${DEBUG_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
-file(INSTALL ${HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include/brotli)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/brotli RENAME copyright)
vcpkg_copy_pdbs()
diff --git a/ports/brynet/CONTROL b/ports/brynet/CONTROL
new file mode 100644
index 000000000..f94ec56ee
--- /dev/null
+++ b/ports/brynet/CONTROL
@@ -0,0 +1,3 @@
+Source: brynet
+Version: 0.9.0
+Description: A C++ cross platform high performance tcp network library, and support SSL/HTTP/Websocket.
diff --git a/ports/brynet/portfile.cmake b/ports/brynet/portfile.cmake
new file mode 100644
index 000000000..7922b704c
--- /dev/null
+++ b/ports/brynet/portfile.cmake
@@ -0,0 +1,26 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "brynet does not support dynamic linkage. Building statically.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO IronsDu/brynet
+ REF v0.9.0
+ SHA512 49543833be0d8eb2dce2b00a85d48087e9756b93febaae0c7cd83b7f44f9cd8d81976069f8b84344807bee2df785b80fbb65a1a93e8c6a9c942f9554063a05c1
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/brynet)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/brynet/LICENSE ${CURRENT_PACKAGES_DIR}/share/brynet/copyright)
diff --git a/ports/cctz/portfile.cmake b/ports/cctz/portfile.cmake
index 11955b365..c0bfc9720 100644
--- a/ports/cctz/portfile.cmake
+++ b/ports/cctz/portfile.cmake
@@ -1,3 +1,7 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
diff --git a/ports/ceres/portfile.cmake b/ports/ceres/portfile.cmake
index 49353205e..e8ae03ce4 100644
--- a/ports/ceres/portfile.cmake
+++ b/ports/ceres/portfile.cmake
@@ -1,5 +1,9 @@
+set(MSVC_USE_STATIC_CRT_VALUE OFF)
if(VCPKG_CRT_LINKAGE STREQUAL "static")
- message(FATAL_ERROR "Ceres does not currently support static CRT linkage")
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message(FATAL_ERROR "Ceres does not currently support mixing static CRT and dynamic library linkage")
+ endif()
+ set(MSVC_USE_STATIC_CRT_VALUE ON)
endif()
include(vcpkg_common_functions)
@@ -32,6 +36,7 @@ vcpkg_configure_cmake(
-DSUITESPARSE=ON
-DGFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION=OFF # TheiaSfm doesn't work well with this
-DGLOG_PREFER_EXPORTED_GLOG_CMAKE_CONFIGURATION=OFF # TheiaSfm doesn't work well with this
+ -DMSVC_USE_STATIC_CRT=${MSVC_USE_STATIC_CRT_VALUE}
)
vcpkg_install_cmake()
diff --git a/ports/cgal/CONTROL b/ports/cgal/CONTROL
index d6d01956d..c2331f294 100644
--- a/ports/cgal/CONTROL
+++ b/ports/cgal/CONTROL
@@ -1,4 +1,4 @@
Source: cgal
-Version: 4.11
-Build-Depends:mpfr, mpir, zlib, boost, qt5
+Version: 4.11-1
+Build-Depends: mpfr, mpir, zlib, qt5, boost-format, boost-container, boost-iterator, boost-variant, boost-any, boost-unordered, boost-random
Description: The Computational Geometry Algorithms Library (CGAL) is a C++ library that aims to provide easy access to efficient and reliable algorithms in computational geometry.
diff --git a/ports/cgal/portfile.cmake b/ports/cgal/portfile.cmake
index c55d0ba3e..9ef8c189d 100644
--- a/ports/cgal/portfile.cmake
+++ b/ports/cgal/portfile.cmake
@@ -10,6 +10,7 @@ vcpkg_from_github(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
)
vcpkg_install_cmake()
diff --git a/ports/chakracore/CONTROL b/ports/chakracore/CONTROL
index f3b510ecd..b86fa8963 100644
--- a/ports/chakracore/CONTROL
+++ b/ports/chakracore/CONTROL
@@ -1,3 +1,3 @@
Source: chakracore
-Version: 1.4.3
-Description: Core part of the Chakra Javascript engine \ No newline at end of file
+Version: 1.7.4
+Description: Core part of the Chakra Javascript engine
diff --git a/ports/chakracore/portfile.cmake b/ports/chakracore/portfile.cmake
index 331cd8b31..7bb628744 100644
--- a/ports/chakracore/portfile.cmake
+++ b/ports/chakracore/portfile.cmake
@@ -10,8 +10,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/ChakraCore
- REF v1.4.3
- SHA512 6083bbbb4b980f44fe0e1d3581eea17190e379134f9312f11d195694aa3e0d9723406d8048ce461bc2744306c07b44465d6d58636b114a82b2f42d7a3316c9af
+ REF v1.7.4
+ SHA512 116ed75d3128f8d9e8ad5a12deed194e14403e05f495422b14277a31620a37b7c8324f04738947388393b0e204f7748bb81d90ebab3373a198db76b70f89f374
HEAD_REF master
)
diff --git a/ports/cpprestsdk/CONTROL b/ports/cpprestsdk/CONTROL
index 48b7a26e0..5dcd880f0 100644
--- a/ports/cpprestsdk/CONTROL
+++ b/ports/cpprestsdk/CONTROL
@@ -1,5 +1,5 @@
Source: cpprestsdk
-Version: 2.10.0
-Build-Depends: zlib, openssl (windows), boost (windows), websocketpp (windows)
+Version: 2.10.1-1
+Build-Depends: zlib, openssl (windows), boost-system (windows), boost-date-time (windows), boost-regex (windows), websocketpp (windows)
Description: C++11 JSON, REST, and OAuth library
The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.
diff --git a/ports/cpprestsdk/portfile.cmake b/ports/cpprestsdk/portfile.cmake
index 6f339c48a..ca22f2a5c 100644
--- a/ports/cpprestsdk/portfile.cmake
+++ b/ports/cpprestsdk/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/cpprestsdk
- REF v2.10.0
- SHA512 78e7a38c21db5b563d08cb082bfa96360ac44c66f2189a614d3d2bb71655fd82d931f138590d2dba2d6a4c0884ae37a5be34ea3b753c3517bd68ce490daf60b4
+ REF v2.10.1
+ SHA512 f6a93e5e87e27db724ccc028326b1dce243617cb0ae0d101b2cea700c4f264c073cb0e8a9d88a14be165e16ef2f1f43a17e49278087bc8cf372e623a1b6a9c47
HEAD_REF master
)
@@ -16,6 +16,11 @@ if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
-DWEBSOCKETPP_CONFIG_VERSION=${WEBSOCKETPP_PATH})
endif()
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/undef-minmax.patch"
+)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}/Release
PREFER_NINJA
@@ -25,6 +30,7 @@ vcpkg_configure_cmake(
-DBUILD_SAMPLES=OFF
-DCPPREST_EXCLUDE_WEBSOCKETS=OFF
-DCPPREST_EXPORT_DIR=share/cpprestsdk
+ -DWERROR=OFF
OPTIONS_DEBUG
-DCPPREST_INSTALL_HEADERS=OFF
)
diff --git a/ports/cpprestsdk/undef-minmax.patch b/ports/cpprestsdk/undef-minmax.patch
new file mode 100644
index 000000000..4dc3bc019
--- /dev/null
+++ b/ports/cpprestsdk/undef-minmax.patch
@@ -0,0 +1,14 @@
+diff --git a/Release/src/http/client/http_client_winrt.cpp b/Release/src/http/client/http_client_winrt.cpp
+index 697f48a..4ada65a 100644
+--- a/Release/src/http/client/http_client_winrt.cpp
++++ b/Release/src/http/client/http_client_winrt.cpp
+@@ -28,6 +28,9 @@ using namespace std;
+ using namespace Platform;
+ using namespace Microsoft::WRL;
+
++#undef min
++#undef max
++
+ namespace web
+ {
+ namespace http
diff --git a/ports/cppunit/CONTROL b/ports/cppunit/CONTROL
index 76a315cdf..b7d8968d7 100644
--- a/ports/cppunit/CONTROL
+++ b/ports/cppunit/CONTROL
@@ -1,3 +1,3 @@
Source: cppunit
-Version: 1.13.2
+Version: 1.14.0
Description: CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML for automatic testing and GUI based for supervised tests. \ No newline at end of file
diff --git a/ports/cppunit/portfile.cmake b/ports/cppunit/portfile.cmake
index 14b1d0478..a56f7849a 100644
--- a/ports/cppunit/portfile.cmake
+++ b/ports/cppunit/portfile.cmake
@@ -11,11 +11,12 @@
#
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}/cppunit-1.13.2)
+set(VERSION 1.14.0)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}/cppunit-${VERSION})
vcpkg_download_distfile(ARCHIVE
- URLS "http://dev-www.libreoffice.org/src/cppunit-1.13.2.tar.gz"
- FILENAME "cppunit-1.13.2.tar.gz"
- SHA512 8f4be569f321d577cec31931f49f4df143bc94e283605509b6ea50c60690aa91a2aed940e7eebd4b2413a4218f9a6c3978d312d8e587eab040283c6563846ecd
+ URLS "http://dev-www.libreoffice.org/src/cppunit-${VERSION}.tar.gz"
+ FILENAME "cppunit-${VERSION}.tar.gz"
+ SHA512 4ea1da423c6f7ab37e4144689f593396829ce74d43872d6b10709c1ad5fbda4ee945842f7e9803592520ef81ac713e95a3fe130295bf048cd32a605d1959882e
)
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET})
diff --git a/ports/crow/CONTROL b/ports/crow/CONTROL
new file mode 100644
index 000000000..0b33939d5
--- /dev/null
+++ b/ports/crow/CONTROL
@@ -0,0 +1,3 @@
+Source: crow
+Version: 0.1
+Description: Very fast and easy to use C++ micro web framework
diff --git a/ports/crow/portfile.cmake b/ports/crow/portfile.cmake
new file mode 100644
index 000000000..de9471fcc
--- /dev/null
+++ b/ports/crow/portfile.cmake
@@ -0,0 +1,12 @@
+include(vcpkg_common_functions)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/crow-0.1)
+vcpkg_download_distfile(ARCHIVE_FILE
+ URLS "https://github.com/ipkn/crow/archive/v0.1.tar.gz"
+ FILENAME "crow-v0.1.tar.gz"
+ SHA512 5a97c5b8cda3ffe79001aa382d4391eddde30027401bbb1d9c85c70ea715f556d3659f5eac0b9d9192c19d13718f19ad6bdf49d67bef03b21e75300d60e7d02a
+)
+vcpkg_extract_source_archive(${ARCHIVE_FILE})
+
+file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/crow RENAME copyright)
diff --git a/ports/curl/0001_cmake.patch b/ports/curl/0001_cmake.patch
index db281e122..4298321b3 100644
--- a/ports/curl/0001_cmake.patch
+++ b/ports/curl/0001_cmake.patch
@@ -11,3 +11,18 @@ index 12a7c61..9839c67 100644
)
if(LIBSSH2_INCLUDE_DIR)
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7b73b98..6c7c559 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1132,7 +1132,9 @@ function(TRANSFORM_MAKEFILE_INC INPUT_FILE OUTPUT_FILE)
+
+ endfunction()
+
+-if(WIN32 AND NOT CYGWIN)
++if(MSVC)
++ set(CURL_INSTALL_CMAKE_DIR share/curl)
++elseif(WIN32 AND NOT CYGWIN)
+ set(CURL_INSTALL_CMAKE_DIR CMake)
+ else()
+ set(CURL_INSTALL_CMAKE_DIR lib/cmake/curl)
diff --git a/ports/curl/0002_fix_uwp.patch b/ports/curl/0002_fix_uwp.patch
index a3f227fb1..8408177e8 100644
--- a/ports/curl/0002_fix_uwp.patch
+++ b/ports/curl/0002_fix_uwp.patch
@@ -1,9 +1,9 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 0caf3dc..de9fcdb 100644
+index 7b73b98..72f6171 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -941,7 +941,9 @@ check_symbol_exists(ioctl "${CURL_INCLUDES}" HAVE_IOCTL)
- check_symbol_exists(setsockopt "${CURL_INCLUDES}" HAVE_SETSOCKOPT)
+@@ -882,7 +882,9 @@ check_symbol_exists(setsockopt "${CURL_INCLUDES}" HAVE_SETSOCKOPT)
+ check_function_exists(mach_absolute_time HAVE_MACH_ABSOLUTE_TIME)
# symbol exists in win32, but function does not.
-if(WIN32)
@@ -38,10 +38,10 @@ index 8337c72..41867b2 100644
}
else {
diff --git a/lib/curl_ntlm_core.c b/lib/curl_ntlm_core.c
-index aea5452..c1f59f2 100644
+index e896276..268f0ea 100644
--- a/lib/curl_ntlm_core.c
+++ b/lib/curl_ntlm_core.c
-@@ -700,9 +700,12 @@ CURLcode Curl_ntlm_core_mk_ntlmv2_resp(unsigned char *ntlmv2hash,
+@@ -743,9 +743,12 @@ CURLcode Curl_ntlm_core_mk_ntlmv2_resp(unsigned char *ntlmv2hash,
/* Calculate the timestamp */
#ifdef DEBUGBUILD
@@ -57,10 +57,10 @@ index aea5452..c1f59f2 100644
#endif
tw = ((curl_off_t)time(NULL) + CURL_OFF_T_C(11644473600)) * 10000000;
diff --git a/lib/ftp.c b/lib/ftp.c
-index 6e86e53..a96fe1a 100644
+index 8042edf..3442df7 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
-@@ -4292,7 +4292,7 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)
+@@ -4297,7 +4297,7 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)
/* prevpath is "raw" so we convert the input path before we compare the
strings */
size_t dlen;
@@ -70,7 +70,7 @@ index 6e86e53..a96fe1a 100644
Curl_urldecode(conn->data, data->state.path, 0, &path, &dlen, FALSE);
if(result) {
diff --git a/lib/rand.c b/lib/rand.c
-index 2713a0a..7da6e00 100644
+index 2670af9..0d18d37 100644
--- a/lib/rand.c
+++ b/lib/rand.c
@@ -44,7 +44,7 @@ static CURLcode randit(struct Curl_easy *data, unsigned int *rnd)
diff --git a/ports/curl/CONTROL b/ports/curl/CONTROL
index 1193e114f..cdc514006 100644
--- a/ports/curl/CONTROL
+++ b/ports/curl/CONTROL
@@ -1,4 +1,4 @@
Source: curl
-Version: 7.55.1-1
+Version: 7.57.0-1
Build-Depends: zlib, openssl, libssh2
Description: A library for transferring data with URLs
diff --git a/ports/curl/portfile.cmake b/ports/curl/portfile.cmake
index eaeba787d..8a5d17ed6 100644
--- a/ports/curl/portfile.cmake
+++ b/ports/curl/portfile.cmake
@@ -2,8 +2,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO curl/curl
- REF curl-7_55_1
- SHA512 b5c6dd6cca8d07c08d1760feff9822f1264359adde068afd1584fc3fdcfa50c68e0e1b5ecaa277298ad0923b61019943c181ee1f0870c312399038c4c4e0e327
+ REF curl-7_57_0
+ SHA512 19f963d86682153d2d73731c784adf6457bc3fd48b628d6d701649f64718b10df268797ce21ad5f5339efc5df81b8547772edcc36c046665309e32997d5d1afc
HEAD_REF master
)
@@ -64,6 +64,8 @@ else()
endif()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
file(READ ${CURRENT_PACKAGES_DIR}/include/curl/curl.h CURL_H)
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
string(REPLACE "#ifdef CURL_STATICLIB" "#if 1" CURL_H "${CURL_H}")
diff --git a/ports/date/CMakeLists.txt b/ports/date/CMakeLists.txt
index 91fcab1c7..c1efc4e2a 100644
--- a/ports/date/CMakeLists.txt
+++ b/ports/date/CMakeLists.txt
@@ -8,9 +8,9 @@ endif()
add_definitions(-DNOMINMAX)
-include_directories(".")
+include_directories("./include")
-add_library(tz tz.cpp)
+add_library(tz src/tz.cpp)
if(BUILD_SHARED_LIBS)
target_compile_definitions(tz PRIVATE -DDATE_BUILD_DLL)
@@ -26,5 +26,5 @@ install(
)
if(NOT DISABLE_INSTALL_HEADERS)
- install(FILES date.h tz.h julian.h iso_week.h islamic.h DESTINATION include)
+ install(FILES include/date/date.h include/date/tz.h include/date/julian.h include/date/iso_week.h include/date/islamic.h DESTINATION include/date)
endif()
diff --git a/ports/date/CONTROL b/ports/date/CONTROL
index 8eab618c2..68fb435b6 100644
--- a/ports/date/CONTROL
+++ b/ports/date/CONTROL
@@ -1,3 +1,3 @@
Source: date
-Version: 2.2
+Version: 2.3-c286981b3bf83c79554769df68b27415cee68d77
Description: A date and time library based on the C++11/14/17 <chrono> header
diff --git a/ports/date/portfile.cmake b/ports/date/portfile.cmake
index f73c72b52..a5270554f 100644
--- a/ports/date/portfile.cmake
+++ b/ports/date/portfile.cmake
@@ -8,8 +8,8 @@ message(WARNING
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO HowardHinnant/date
- REF 272d487b3d490126e520b67fe76bbb2e67226c07
- SHA512 59e8ff642d3eb82cb6116a77d4c5e14bbc2ae6bd4019e64a49609b6e46d679c2cb4ccae74807b72223aed18ae015596193919cdb58b011bfb774ff3e29a1d43b
+ REF c286981b3bf83c79554769df68b27415cee68d77
+ SHA512 226e2cbc2598fbbe3a451664b017ab5b4314a682a9303268bd531931ea23baa4c9677c4433a87dbbc4a7d960dcfad1fcb632ac430d5d81c9909bcc567cf7eadf
HEAD_REF master
)
@@ -25,7 +25,7 @@ vcpkg_install_cmake()
vcpkg_copy_pdbs()
-set(HEADER "${CURRENT_PACKAGES_DIR}/include/tz.h")
+set(HEADER "${CURRENT_PACKAGES_DIR}/include/date/tz.h")
file(READ "${HEADER}" _contents)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
string(REPLACE "DATE_BUILD_DLL" "1" _contents "${_contents}")
diff --git a/ports/devil/0001_fix-encoding.patch b/ports/devil/0001_fix-encoding.patch
new file mode 100644
index 000000000..395171e71
--- /dev/null
+++ b/ports/devil/0001_fix-encoding.patch
@@ -0,0 +1,173 @@
+diff --git a/src-ILU/include/ilu_error/ilu_err-french.h b/src-ILU/include/ilu_error/ilu_err-french.h
+index d3b280d..445440e 100644
+--- a/src-ILU/include/ilu_error/ilu_err-french.h
++++ b/src-ILU/include/ilu_error/ilu_err-french.h
+@@ -17,19 +17,19 @@
+ #include "ilu_internal.h"
+
+ ILconst_string iluErrorStringsFrench[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] = {
+- IL_TEXT("énumération invalide"),
+- IL_TEXT("dépassement de mémoire"),
+- IL_TEXT("format non supporté"),
++ IL_TEXT("énumération invalide"),
++ IL_TEXT("dépassement de mémoire"),
++ IL_TEXT("format non supporté"),
+ IL_TEXT("erreur interne"),
+- IL_TEXT("valeur illégale"),
+- IL_TEXT("opération illégale"),
+- IL_TEXT("valeur de fichier illégale"),
+- IL_TEXT("en-tête de fichier invalide"),
+- IL_TEXT("paramètre invalide"),
++ IL_TEXT("valeur illégale"),
++ IL_TEXT("opération illégale"),
++ IL_TEXT("valeur de fichier illégale"),
++ IL_TEXT("en-tête de fichier invalide"),
++ IL_TEXT("paramètre invalide"),
+ IL_TEXT("ne peut pas ouvrir le fichier"),
+ IL_TEXT("extension invalide"),
+- IL_TEXT("fichier déjà existant"),
+- IL_TEXT("équivalent hors-format"),
++ IL_TEXT("fichier déjà existant"),
++ IL_TEXT("équivalent hors-format"),
+ IL_TEXT("stack overflow"), //often used like this in French, so no need to translate
+ IL_TEXT("stack underflow"),
+ IL_TEXT("conversion invalide"),
+@@ -38,7 +38,7 @@ ILconst_string iluErrorStringsFrench[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] =
+ };
+
+ ILconst_string iluLibErrorStringsFrench[IL_LIB_EXR_ERROR - IL_LIB_GIF_ERROR + 1] = {
+- IL_TEXT("gif : erreur dans la librairie"), //or: gif : erreur dans la bibliothèque (but less used)
++ IL_TEXT("gif : erreur dans la librairie"), //or: gif : erreur dans la bibliothèque (but less used)
+ IL_TEXT("jpeg : erreur dans la librairie"),
+ IL_TEXT("png : erreur dans la librairie"),
+ IL_TEXT("tiff : erreur dans la librairie"),
+diff --git a/src-ILU/include/ilu_error/ilu_err-german.h b/src-ILU/include/ilu_error/ilu_err-german.h
+index bf3f05c..acdbe8a 100644
+--- a/src-ILU/include/ilu_error/ilu_err-german.h
++++ b/src-ILU/include/ilu_error/ilu_err-german.h
+@@ -6,7 +6,7 @@
+ //
+ // Filename: src-ILU/include/ilu_error/ilu_err_German.h
+ //
+-// Description: Error functions in German, translated by Andreas Stöckel.
++// Description: Error functions in German, translated by Andreas Stöckel.
+ //
+ //-----------------------------------------------------------------------------
+
+@@ -17,23 +17,23 @@
+ #include "ilu_internal.h"
+
+ ILconst_string iluErrorStringsGerman[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] = {
+- IL_TEXT("Ungültiger Enumerator"),
+- IL_TEXT("Kein Speicher verfügbar"),
+- IL_TEXT("Das Format wird noch nicht unterstützt"),
++ IL_TEXT("Ungültiger Enumerator"),
++ IL_TEXT("Kein Speicher verfügbar"),
++ IL_TEXT("Das Format wird noch nicht unterstützt"),
+ IL_TEXT("Interner Fehler"),
+- IL_TEXT("Ungültiger Wert"),
+- IL_TEXT("Unzulässige Operation"),
+- IL_TEXT("Unzulässiger Datei-Wert"),
+- IL_TEXT("Unzulässiger Datei-Header"),
+- IL_TEXT("Unzulässiger Parameter"),
+- IL_TEXT("Datei konnte nicht geöffnet werden"),
+- IL_TEXT("Ungültiger Erweiterung"),
++ IL_TEXT("Ungültiger Wert"),
++ IL_TEXT("Unzulässige Operation"),
++ IL_TEXT("Unzulässiger Datei-Wert"),
++ IL_TEXT("Unzulässiger Datei-Header"),
++ IL_TEXT("Unzulässiger Parameter"),
++ IL_TEXT("Datei konnte nicht geöffnet werden"),
++ IL_TEXT("Ungültiger Erweiterung"),
+ IL_TEXT("Die Datei existiert bereits"),
+ IL_TEXT("out format equivalent"),
+- IL_TEXT("Stack Überlauf"),
++ IL_TEXT("Stack Überlauf"),
+ IL_TEXT("Stack Unterlauf"),
+- IL_TEXT("Ungültige Konvertierung"),
+- IL_TEXT("Unzulässige Abmessungen"),
++ IL_TEXT("Ungültige Konvertierung"),
++ IL_TEXT("Unzulässige Abmessungen"),
+ IL_TEXT("Fehler beim Lesen der Datei")
+ };
+
+diff --git a/src-ILU/include/ilu_error/ilu_err-italian.h b/src-ILU/include/ilu_error/ilu_err-italian.h
+index 09d7bd1..d34b23f 100644
+--- a/src-ILU/include/ilu_error/ilu_err-italian.h
++++ b/src-ILU/include/ilu_error/ilu_err-italian.h
+@@ -22,13 +22,13 @@ ILconst_string iluErrorStringsItalian[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1]
+ IL_TEXT("configuri non sostenne"),
+ IL_TEXT("erreur interne"),
+ IL_TEXT("errore interno"),
+- IL_TEXT("opération illégale"),
++ IL_TEXT("opération illégale"),
+ IL_TEXT("operazione illegale"),
+ IL_TEXT("inebri archivio nullo"),
+ IL_TEXT("parametro nullo"),
+- IL_TEXT("non può aprire l'archivio"),
++ IL_TEXT("non può aprire l'archivio"),
+ IL_TEXT("dilazione nulla"),
+- IL_TEXT("archivi già esistendo"),
++ IL_TEXT("archivi già esistendo"),
+ IL_TEXT("equivalente fuori-configuri"),
+ IL_TEXT("inondi di batteria"),
+ IL_TEXT("insufficienza di batteria"),
+diff --git a/src-ILU/include/ilu_error/ilu_err-spanish.h b/src-ILU/include/ilu_error/ilu_err-spanish.h
+index 77b5a24..0945fdf 100644
+--- a/src-ILU/include/ilu_error/ilu_err-spanish.h
++++ b/src-ILU/include/ilu_error/ilu_err-spanish.h
+@@ -6,7 +6,7 @@
+ //
+ // Filename: src-ILU/include/ilu_error/ilu_err-spanish.h
+ //
+-// Description: Error functions in Spanish, translated by Carlos Aragonés
++// Description: Error functions in Spanish, translated by Carlos Aragonés
+ //
+ //-----------------------------------------------------------------------------
+
+@@ -19,32 +19,32 @@
+ ILconst_string iluErrorStringsSpanish[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] = {
+ IL_TEXT("enumerador incorrecto"),
+ IL_TEXT("no queda memoria disponible"),
+- IL_TEXT("formato no soportado todavía"),
++ IL_TEXT("formato no soportado todavía"),
+ IL_TEXT("error interno"),
+ IL_TEXT("valor incorrecto"),
+- IL_TEXT("operación ilegaIL_TEXT("),
++ IL_TEXT("operación ilegaIL_TEXT("),
+ IL_TEXT("valor de fichero ilegaIL_TEXT("),
+ IL_TEXT("cabecera incorrecta"),
+- IL_TEXT("parámetro incorrecto"),
++ IL_TEXT("parámetro incorrecto"),
+ IL_TEXT("no se puede abrir el fichero"),
+- IL_TEXT("extensión desconocida"),
++ IL_TEXT("extensión desconocida"),
+ IL_TEXT("el fichero ya existe"),
+ IL_TEXT("formato de salida equivalente"),
+ IL_TEXT("desbordamiento superior de pila"),
+ IL_TEXT("desbordamiento inferior de pila"),
+- IL_TEXT("conversión incorrecta"),
+- IL_TEXT("número de dimensiones incorrecto"),
++ IL_TEXT("conversión incorrecta"),
++ IL_TEXT("número de dimensiones incorrecto"),
+ IL_TEXT("error de lectura en el fichero")
+ };
+
+ ILconst_string iluLibErrorStringsSpanish[IL_LIB_EXR_ERROR - IL_LIB_GIF_ERROR + 1] = {
+- IL_TEXT("error en la librería gif"), // the correct translation will be 'error en la biblioteca gif', but nobody in spain uses the word 'biblioteca' for the translation the word 'library'. Almost all Spanish programmers translate 'library' incorrectly to 'librería'.
+- IL_TEXT("error en la librería jpeg"),
+- IL_TEXT("error en la librería png"),
+- IL_TEXT("error en la librería tiff"),
+- IL_TEXT("error en la librería mng"),
+- IL_TEXT("error en la librería jp2"),
+- IL_TEXT("error en la librería exr"),
++ IL_TEXT("error en la librería gif"), // the correct translation will be 'error en la biblioteca gif', but nobody in spain uses the word 'biblioteca' for the translation the word 'library'. Almost all Spanish programmers translate 'library' incorrectly to 'librería'.
++ IL_TEXT("error en la librería jpeg"),
++ IL_TEXT("error en la librería png"),
++ IL_TEXT("error en la librería tiff"),
++ IL_TEXT("error en la librería mng"),
++ IL_TEXT("error en la librería jp2"),
++ IL_TEXT("error en la librería exr"),
+ };
+
+ ILconst_string iluMiscErrorStringsSpanish[2] = {
diff --git a/ports/devil/0002_fix-missing-mfc-includes.patch b/ports/devil/0002_fix-missing-mfc-includes.patch
new file mode 100644
index 000000000..755d0d867
--- /dev/null
+++ b/ports/devil/0002_fix-missing-mfc-includes.patch
@@ -0,0 +1,102 @@
+diff --git a/src-IL/msvc/IL Unicode.rc b/src-IL/msvc/IL Unicode.rc
+index 346758f..298a207 100644
+--- a/src-IL/msvc/IL Unicode.rc
++++ b/src-IL/msvc/IL Unicode.rc
+@@ -7,7 +7,11 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#define APSTUDIO_HIDDEN_SYMBOLS
++#include "windows.h"
++#undef APSTUDIO_HIDDEN_SYMBOLS
++#include "resource.h"
++
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+
+diff --git a/src-IL/msvc/IL.rc b/src-IL/msvc/IL.rc
+index 8bfadf9..0b8289f 100644
+--- a/src-IL/msvc/IL.rc
++++ b/src-IL/msvc/IL.rc
+@@ -7,10 +7,13 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#define APSTUDIO_HIDDEN_SYMBOLS
++#include "windows.h"
++#undef APSTUDIO_HIDDEN_SYMBOLS
++#include "resource.h"
+
+-/////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
++/////////////////////////////////////////////////////////////////////////////
+
+ /////////////////////////////////////////////////////////////////////////////
+ // English (United States) resources
+diff --git a/src-IL/msvc8/IL Unicode.rc b/src-IL/msvc8/IL Unicode.rc
+index 026ee49..66ca4bf 100644
+--- a/src-IL/msvc8/IL Unicode.rc
++++ b/src-IL/msvc8/IL Unicode.rc
+@@ -7,7 +7,10 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#define APSTUDIO_HIDDEN_SYMBOLS
++#include "windows.h"
++#undef APSTUDIO_HIDDEN_SYMBOLS
++#include "resource.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+diff --git a/src-IL/msvc8/IL.rc b/src-IL/msvc8/IL.rc
+index 9301d41..3ad52c0 100644
+--- a/src-IL/msvc8/IL.rc
++++ b/src-IL/msvc8/IL.rc
+@@ -7,7 +7,10 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#define APSTUDIO_HIDDEN_SYMBOLS
++#include "windows.h"
++#undef APSTUDIO_HIDDEN_SYMBOLS
++#include "resource.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+diff --git a/src-IL/msvc9/IL Unicode.rc b/src-IL/msvc9/IL Unicode.rc
+index d0dff4f..c9cf51f 100644
+--- a/src-IL/msvc9/IL Unicode.rc
++++ b/src-IL/msvc9/IL Unicode.rc
+@@ -7,7 +7,10 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#define APSTUDIO_HIDDEN_SYMBOLS
++#include "windows.h"
++#undef APSTUDIO_HIDDEN_SYMBOLS
++#include "resource.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+diff --git a/src-IL/msvc9/IL.rc b/src-IL/msvc9/IL.rc
+index 9f5c795..6b8c891 100644
+--- a/src-IL/msvc9/IL.rc
++++ b/src-IL/msvc9/IL.rc
+@@ -7,7 +7,10 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#define APSTUDIO_HIDDEN_SYMBOLS
++#include "windows.h"
++#undef APSTUDIO_HIDDEN_SYMBOLS
++#include "resource.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+ \ No newline at end of file
diff --git a/ports/devil/CONTROL b/ports/devil/CONTROL
new file mode 100644
index 000000000..fcdf51a9d
--- /dev/null
+++ b/ports/devil/CONTROL
@@ -0,0 +1,4 @@
+Source: devil
+Version: 1.8.0-1
+Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openjpeg, libwebp, libraw, jxrlib, openexr, jasper, liblzma
+Description: A full featured cross-platform image library
diff --git a/ports/devil/enable-static.patch b/ports/devil/enable-static.patch
new file mode 100644
index 000000000..bf0cb618a
--- /dev/null
+++ b/ports/devil/enable-static.patch
@@ -0,0 +1,26 @@
+diff --git a/devil/src-ILU/CMakeLists.txt b/devil/src-ILU/CMakeLists.txt
+index 17a3afe..a46ab41 100644
+--- a/devil/src-ILU/CMakeLists.txt
++++ b/devil/src-ILU/CMakeLists.txt
+@@ -43,7 +43,7 @@ source_group("Header Files" FILES ${ILU_INC} )
+ source_group("Resource Files" FILES ${ILU_RSRC} )
+
+ # Remove SHARED to create a static library
+-add_library(ILU SHARED ${ILU_SRCS} ${ILU_INC} ${ILU_RSRC})
++add_library(ILU ${ILU_SRCS} ${ILU_INC} ${ILU_RSRC})
+
+
+ ## ILU requires IL
+diff --git a/devil/src-ILUT/CMakeLists.txt b/devil/src-ILUT/CMakeLists.txt
+index 21470cb..398d3c1 100644
+--- a/devil/src-ILUT/CMakeLists.txt
++++ b/devil/src-ILUT/CMakeLists.txt
+@@ -43,7 +43,7 @@ source_group("Header Files" FILES ${ILUT_INC} )
+ source_group("Resource Files" FILES ${ILUT_RSRC} )
+
+ # Remove SHARED to create a static library
+-add_library(ILUT SHARED ${ILUT_SRCS} ${ILUT_INC} ${ILUT_RSRC})
++add_library(ILUT ${ILUT_SRCS} ${ILUT_INC} ${ILUT_RSRC})
+
+ ## add link sub library info
+ target_link_libraries(ILUT
diff --git a/ports/devil/portfile.cmake b/ports/devil/portfile.cmake
new file mode 100644
index 000000000..f9dc82293
--- /dev/null
+++ b/ports/devil/portfile.cmake
@@ -0,0 +1,32 @@
+include(vcpkg_common_functions)
+
+set(DEVIL_VERSION 1.8.0)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO DentonW/DevIL
+ REF v${DEVIL_VERSION}
+ SHA512 4aed5e50a730ece8b1eb6b2f6204374c6fb6f5334cf7c880d84c0f79645ea7c6b5118f57a7868a487510fc59c452f51472b272215d4c852f265f58b5857e17c7
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}/DevIL
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001_fix-encoding.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0002_fix-missing-mfc-includes.patch
+ ${CMAKE_CURRENT_LIST_DIR}/enable-static.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/DevIL
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/devil RENAME copyright)
diff --git a/ports/dlib/CONTROL b/ports/dlib/CONTROL
index c773d8d28..4d0a72f50 100644
--- a/ports/dlib/CONTROL
+++ b/ports/dlib/CONTROL
@@ -1,5 +1,5 @@
Source: dlib
-Version: 19.7
+Version: 19.8
Build-Depends: libjpeg-turbo, libpng, sqlite3, fftw3
Description: Modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++
diff --git a/ports/dlib/portfile.cmake b/ports/dlib/portfile.cmake
index e80176b7d..9d82cbf19 100644
--- a/ports/dlib/portfile.cmake
+++ b/ports/dlib/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO davisking/dlib
- REF v19.7
- SHA512 a3877066e04a411d96e910f4229c60a86971a9290e840aa4a5b2f0b102e9b8c37bfede259b80b71ba066d21eb0aa2565808e51d0eab6397ff5fd2bac60dcedd5
+ REF v19.8
+ SHA512 5fbe306dab1fe025de0892808431ddc4bc6f3e91eb509881a0b341dd2d0a5a36c5d99d45ece19c428d6025b0601b996cab4b554332323a0c73a65d66b82db01a
HEAD_REF master
)
@@ -55,6 +55,7 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
# Remove other files not required in package
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/all)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/appveyor)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/test)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/travis)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_neon)
diff --git a/ports/doctest/CONTROL b/ports/doctest/CONTROL
index 29093fae4..872c47475 100644
--- a/ports/doctest/CONTROL
+++ b/ports/doctest/CONTROL
@@ -1,3 +1,3 @@
Source: doctest
-Version: 1.2.0
+Version: 1.2.6
Description: The fastest feature-rich C++ single-header testing framework for unit tests and TDD
diff --git a/ports/doctest/portfile.cmake b/ports/doctest/portfile.cmake
index 4a98020f0..eef9b4ca1 100644
--- a/ports/doctest/portfile.cmake
+++ b/ports/doctest/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO onqtam/doctest
- REF 1.2.0
- SHA512 7e01e4b817e2200fcd7216342b184ddb60723180bb0a69e24d8c54b7b7d5d983bbd7a2fb0c629e87c95127f4213cca11beb95d079880313d2445703e289c23b5
+ REF 1.2.6
+ SHA512 bee59e9e18a474b9a7883e0c506a1133fdd382d3ecbe010c0402399d6c48572508bfa347a2196908d846e345508c564f758b17c268a19b65968f5c2ff87b25a4
HEAD_REF master
)
diff --git a/ports/ecm/CONTROL b/ports/ecm/CONTROL
index 12a9fd8a9..147603756 100644
--- a/ports/ecm/CONTROL
+++ b/ports/ecm/CONTROL
@@ -1,3 +1,3 @@
Source: ecm
-Version: 5.37.0-1
+Version: 5.40.0
Description: Extra CMake Modules (ECM), extra modules and scripts for CMake
diff --git a/ports/ecm/portfile.cmake b/ports/ecm/portfile.cmake
index 0e016418c..56dcdcf7d 100644
--- a/ports/ecm/portfile.cmake
+++ b/ports/ecm/portfile.cmake
@@ -1,12 +1,13 @@
#cmake-only scripts
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/extra-cmake-modules-5.37.0)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://download.kde.org/stable/frameworks/5.37/extra-cmake-modules-5.37.0.zip"
- FILENAME "extra-cmake-modules-5.37.0.zip"
- SHA512 a9cd585fb5c63452fc45c955df62b6e7aca3d19e47ca2db33216f83951645f393271f37a04630e5c7f01899063562548c2b0dfe79d7afa8661bb0a8bca5ccfbf
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO KDE/extra-cmake-modules
+ REF v5.40.0
+ SHA512 1f79d797770367e79c2c6dd73c125d32fcc5fe404b350d953b69cc6544babc1c73e2986c833635daaac85a5af966977e40fe41c01ac48ccc45d46d2e1636d21f
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
diff --git a/ports/exiv2/CONTROL b/ports/exiv2/CONTROL
index 4db8e73ee..15d24a868 100644
--- a/ports/exiv2/CONTROL
+++ b/ports/exiv2/CONTROL
@@ -1,4 +1,4 @@
Source: exiv2
-Version: 4f4add2cdcbe73af7098122a509dff0739d15908
+Version: 8f5b795eaa4bc414d2d6041c1dbd1a7f7bf1fc99
Build-Depends:zlib, expat
Description: Image metadata library and tools http://www.exiv2.org
diff --git a/ports/exiv2/portfile.cmake b/ports/exiv2/portfile.cmake
index f9aff3e93..fb44d3e94 100644
--- a/ports/exiv2/portfile.cmake
+++ b/ports/exiv2/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Exiv2/exiv2
- REF 4f4add2cdcbe73af7098122a509dff0739d15908
- SHA512 32207cfd7ac932942562e062e851d7ba9be5586f33c2d924fb2a908a78f0c53f0d2973108c49bc865a3e7697a04a4b65d991441e4b89baca82b51b61affd4fa3
+ REF 8f5b795eaa4bc414d2d6041c1dbd1a7f7bf1fc99
+ SHA512 672d5d2e823e72ed20d0d5f8f993b797a39109f99734b25db8eefdefa47e54df83d0644798ecb04891f68544e9e407a816ec6901027f14ef116f186b07043c18
HEAD_REF master
)
@@ -14,6 +14,8 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH "share/exiv2/cmake")
+
vcpkg_copy_pdbs()
# Clean
diff --git a/ports/expat/CONTROL b/ports/expat/CONTROL
index 450b8e61d..edbcf2326 100644
--- a/ports/expat/CONTROL
+++ b/ports/expat/CONTROL
@@ -1,3 +1,3 @@
Source: expat
-Version: 2.2.4-2
+Version: 2.2.5
Description: XML parser library written in C
diff --git a/ports/expat/portfile.cmake b/ports/expat/portfile.cmake
index da6ddc429..a8f320ab3 100644
--- a/ports/expat/portfile.cmake
+++ b/ports/expat/portfile.cmake
@@ -1,9 +1,13 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO libexpat/libexpat
- REF R_2_2_4
- SHA512 64f9deb2f75be70450a60a408ab867d1df800022e29000a31a801d85421178b400ebbf817864d1592ce998ada1012fa25fd896e5f25c6b314851ae62d94b45dc
+ REF R_2_2_5
+ SHA512 61ce2a479521412e0c56c352106c4adfb61a6bedb883921aba3ebccc29311ddd192646ac2c51b41572728d4de6ab4cb60a1dbc71515d742a80a8b59d89ca74d6
HEAD_REF master)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
diff --git a/ports/fcl/0002-fix_dependencies.patch b/ports/fcl/0002-fix_dependencies.patch
new file mode 100644
index 000000000..34b069291
--- /dev/null
+++ b/ports/fcl/0002-fix_dependencies.patch
@@ -0,0 +1,14 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 5ce1f77..1f3e863 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -10,8 +10,7 @@ set_target_properties(${PROJECT_NAME} PROPERTIES
+ SOVERSION ${FCL_ABI_VERSION})
+
+ target_link_libraries(${PROJECT_NAME}
+- PUBLIC ${OCTOMAP_LIBRARIES}
+- PRIVATE ${CCD_LIBRARIES}
++ PUBLIC octomap octomath ccd
+ PRIVATE ${Boost_LIBRARIES})
+
+ target_include_directories(${PROJECT_NAME} INTERFACE
diff --git a/ports/fcl/CONTROL b/ports/fcl/CONTROL
index daadff075..0e425f59b 100644
--- a/ports/fcl/CONTROL
+++ b/ports/fcl/CONTROL
@@ -1,4 +1,4 @@
Source: fcl
-Version: 0.5.0-2
+Version: 0.5.0-3
Description: a library for performing three types of proximity queries on a pair of geometric models composed of triangles
-Build-Depends: boost, ccd, octomap
+Build-Depends: ccd, octomap
diff --git a/ports/fcl/portfile.cmake b/ports/fcl/portfile.cmake
index e0cee7e02..851a013c2 100644
--- a/ports/fcl/portfile.cmake
+++ b/ports/fcl/portfile.cmake
@@ -16,7 +16,8 @@ vcpkg_from_github(
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/0001_fix_package_detection.patch)
+ ${CMAKE_CURRENT_LIST_DIR}/0001_fix_package_detection.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0002-fix_dependencies.patch)
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(FCL_STATIC_LIBRARY ON)
@@ -37,6 +38,11 @@ vcpkg_copy_pdbs()
vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake/")
+file(READ ${CURRENT_PACKAGES_DIR}/share/fcl/fclConfig.cmake FCL_CONFIG)
+string(REPLACE "unset(_expectedTargets)"
+ "unset(_expectedTargets)\n\nfind_package(octomap REQUIRED)\nfind_package(ccd REQUIRED)" FCL_CONFIG "${FCL_CONFIG}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/fcl/fclConfig.cmake "${FCL_CONFIG}")
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/fcl RENAME copyright)
diff --git a/ports/fftw3/CMakeLists.txt b/ports/fftw3/CMakeLists.txt
deleted file mode 100644
index 10c63d710..000000000
--- a/ports/fftw3/CMakeLists.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-cmake_minimum_required (VERSION 3.0)
-project (fftw3)
-
-# From: http://stackoverflow.com/questions/10252336/fftw-in-visual-studio-2010
-
-# Standard: /DWIN32 /D_WINDOWS /W3 /Zm1000 /EHsc /GR
-if (WIN32)
- add_definitions(-D_OPENMP -DLIBFFTWF33_EXPORTS /openmp /bigobj) # Visual Studio 2005 and up supports OpenMP
-endif (WIN32)
-
-if (BUILD_SHARED_LIBS)
- add_definitions(-DFFTW_DLL)
-endif()
-
-
-file(GLOB fftw_api_SOURCE api/*.c api/*.h)
-file(GLOB fftw_dft_SOURCE dft/*.c dft/*.h)
-file(GLOB fftw_dft_scalar_SOURCE dft/scalar/*.c dft/scalar/*.h)
-file(GLOB fftw_dft_scalar_codelets_SOURCE dft/scalar/codelets/*.c dft/scalar/codelets/*.h)
-file(GLOB fftw_dft_simd_SOURCE dft/simd/*.c dft/simd/*.h)
-
-file(GLOB fftw_dft_simd_sse2_SOURCE dft/simd/sse2/*.c dft/simd/sse2/*.h)
-file(GLOB fftw_kernel_SOURCE kernel/*.c kernel/*.h)
-file(GLOB fftw_rdft_SOURCE rdft/*.c rdft/*.h)
-file(GLOB fftw_rdft_scalar_SOURCE rdft/scalar/*.c rdft/scalar/*.h)
-
-file(GLOB fftw_rdft_scalar_r2cb_SOURCE rdft/scalar/r2cb/*.c
- rdft/scalar/r2cb/*.h)
-file(GLOB fftw_rdft_scalar_r2cf_SOURCE rdft/scalar/r2cf/*.c
- rdft/scalar/r2cf/*.h)
-file(GLOB fftw_rdft_scalar_r2r_SOURCE rdft/scalar/r2r/*.c
- rdft/scalar/r2r/*.h)
-
-file(GLOB fftw_rdft_simd_SOURCE rdft/simd/*.c rdft/simd/*.h)
-file(GLOB fftw_rdft_simd_sse2_SOURCE rdft/simd/sse2/*.c rdft/simd/sse2/*.h)
-
-file(GLOB fftw_reodft_SOURCE reodft/*.c reodft/*.h)
-file(GLOB fftw_simd_support_SOURCE simd-support/*.c simd-support/*.h)
-#file(GLOB fftw_threads_SOURCE threads/*.c threads/*.h)
-
-
-set(${fftw_threads_SOURCE}
- threads/api.c
- threads/conf.c
- threads/ct.c
- threads/dft-vrank-qeq1.c
- threads/f77api.c
- threads/hc2hc.c
- threads/openmp.c
- threads/rdft-vrank-geq1.c
- threads/vrank-geq1-rdft2.c)
-
-
-include_directories(
- kernel
- api
- dft
- dft/scalar
- dft/scalar/codelets # really needed?
- dft/simd
- dft/simd/sse2
- rdft
- rdft/scalar
- rdft/simd
- reodft
- ${CMAKE_CURRENT_SOURCE_DIR} # thats where the config.h is located
- simd-support
-)
-
-set(COMMON_SOURCES
- ${fftw_api_SOURCE}
- ${fftw_dft_SOURCE}
- ${fftw_dft_scalar_SOURCE}
- ${fftw_dft_scalar_codelets_SOURCE}
- ${fftw_dft_simd_SOURCE}
- ${fftw_kernel_SOURCE}
- ${fftw_rdft_SOURCE}
- ${fftw_rdft_scalar_SOURCE}
-
- ${fftw_rdft_scalar_r2cb_SOURCE}
- ${fftw_rdft_scalar_r2cf_SOURCE}
- ${fftw_rdft_scalar_r2r_SOURCE}
-
- ${fftw_rdft_simd_SOURCE}
- ${fftw_reodft_SOURCE}
- ${fftw_simd_support_SOURCE}
- ${fftw_threads_SOURCE}
-)
-
-set(SSE2_SOURCES
- ${fftw_dft_simd_sse2_SOURCE}
- ${fftw_rdft_simd_sse2_SOURCE}
-)
-
-# Create default target for the library (double precision)
-add_library(fftw3 ${COMMON_SOURCES} ${SSE2_SOURCES})
-target_compile_definitions(fftw3 PRIVATE HAVE_SSE2)
-set(INSTALL_TARGETS fftw3)
-
-# Optionally add single precision
-if(BUILD_SINGLE)
- add_library(fftw3f ${COMMON_SOURCES} ${SSE2_SOURCES})
- target_compile_definitions(fftw3f PRIVATE FFTW_SINGLE BENCHFFT_SINGLE HAVE_SSE2)
- set(INSTALL_TARGETS ${INSTALL_TARGETS} fftw3f)
-endif(BUILD_SINGLE)
-
-# Optionally add long-double precision (does not support SSE2)
-if(BUILD_LONG_DOUBLE)
- add_library(fftw3l ${COMMON_SOURCES})
- target_compile_definitions(fftw3l PRIVATE FFTW_LDOUBLE BENCHFFT_LDOUBLE)
- set(INSTALL_TARGETS ${INSTALL_TARGETS} fftw3l)
-endif(BUILD_LONG_DOUBLE)
-
-install(TARGETS ${INSTALL_TARGETS}
- RUNTIME DESTINATION bin
- ARCHIVE DESTINATION lib
- LIBRARY DESTINATION lib)
diff --git a/ports/fftw3/CONTROL b/ports/fftw3/CONTROL
index 338c602d3..ccdc0e7ee 100644
--- a/ports/fftw3/CONTROL
+++ b/ports/fftw3/CONTROL
@@ -1,3 +1,3 @@
Source: fftw3
-Version: 3.3.7
+Version: 3.3.7-1
Description: FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST).
diff --git a/ports/fftw3/config.h b/ports/fftw3/config.h
deleted file mode 100644
index 900062344..000000000
--- a/ports/fftw3/config.h
+++ /dev/null
@@ -1,393 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define to compile in long-double precision. */
-/*#undef BENCHFFT_LDOUBLE*/
-
-/* Define to compile in quad precision. */
-#undef BENCHFFT_QUAD
-
-/* Define to compile in single precision. */
-/*#undef BENCHFFT_SINGLE*/
-
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
- systems. This function is required for `alloca.c' support on those systems.
- */
-#undef CRAY_STACKSEG_END
-
-/* Define to 1 if using `alloca.c'. */
-#undef C_ALLOCA
-
-/* Define to disable Fortran wrappers. */
-#define DISABLE_FORTRAN 1
-
-/* Define to dummy `main' function (if any) required to link to the Fortran
- libraries. */
-#undef F77_DUMMY_MAIN
-
-/* Define to a macro mangling the given C identifier (in lower and upper
- case), which must not contain underscores, for linking with Fortran. */
-#undef F77_FUNC
-
-/* As F77_FUNC, but for C identifiers containing underscores. */
-#undef F77_FUNC_
-
-/* Define if F77_FUNC and F77_FUNC_ are equivalent. */
-#undef F77_FUNC_EQUIV
-
-/* Define if F77 and FC dummy `main' functions are identical. */
-#undef FC_DUMMY_MAIN_EQ_F77
-
-/* C compiler name and flags */
-#define FFTW_CC "cl"
-
-/* Define to enable extra FFTW debugging code. */
-#undef FFTW_DEBUG
-
-/* Define to enable alignment debugging hacks. */
-#undef FFTW_DEBUG_ALIGNMENT
-
-/* Define to enable debugging malloc. */
-#undef FFTW_DEBUG_MALLOC
-
-/* Define to enable the use of alloca(). */
-#undef FFTW_ENABLE_ALLOCA
-
-/* Define to compile in long-double precision. */
-/*#undef FFTW_LDOUBLE*/
-
-/* Define to compile in quad precision. */
-#undef FFTW_QUAD
-
-/* Define to enable pseudorandom estimate planning for debugging. */
-#undef FFTW_RANDOM_ESTIMATOR
-
-/* Define to compile in single precision. */
-/*#undef FFTW_SINGLE*/
-
-/* Define to 1 if you have the `abort' function. */
-#define HAVE_ABORT 1
-
-/* Define to 1 if you have `alloca', as a function or macro. */
-#undef HAVE_ALLOCA
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
- */
-#undef HAVE_ALLOCA_H
-
-/* Define to enable Altivec optimizations. */
-#undef HAVE_ALTIVEC
-
-/* Define to 1 if you have the <altivec.h> header file. */
-#undef HAVE_ALTIVEC_H
-
-/* Define to enable AVX optimizations. */
-#undef HAVE_AVX
-
-/* Define to 1 if you have the `BSDgettimeofday' function. */
-#undef HAVE_BSDGETTIMEOFDAY
-
-/* Define to 1 if you have the `clock_gettime' function. */
-#undef HAVE_CLOCK_GETTIME
-
-/* Define to 1 if you have the `cosl' function. */
-#define HAVE_COSL 1
-
-/* Define to 1 if you have the <c_asm.h> header file. */
-#undef HAVE_C_ASM_H
-
-/* Define to 1 if you have the declaration of `cosl', and to 0 if you don't.
- */
-#define HAVE_DECL_COSL 1
-
-/* Define to 1 if you have the declaration of `cosq', and to 0 if you don't. */
-#define HAVE_DECL_COSQ 0
-
-/* Define to 1 if you have the declaration of `drand48', and to 0 if you don't. */
-#define HAVE_DECL_DRAND48 0
-
-/* Define to 1 if you have the declaration of `memalign', and to 0 if you don't. */
-#define HAVE_DECL_MEMALIGN 0
-
-/* Define to 1 if you have the declaration of `posix_memalign', and to 0 if you don't. */
-#define HAVE_DECL_POSIX_MEMALIGN 0
-
-/* Define to 1 if you have the declaration of `sinl', and to 0 if you don't. */
-#define HAVE_DECL_SINL 1
-
-/* Define to 1 if you have the declaration of `sinq', and to 0 if you don't.
- */
-#define HAVE_DECL_SINQ 0
-
-/* Define to 1 if you have the declaration of `srand48', and to 0 if you
- don't. */
-#define HAVE_DECL_SRAND48 0
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
-#undef HAVE_DOPRNT
-
-/* Define to 1 if you have the `drand48' function. */
-#undef HAVE_DRAND48
-
-/* Define if you have a machine with fused multiply-add */
-#undef HAVE_FMA
-
-/* Define to 1 if you have the `gethrtime' function. */
-#undef HAVE_GETHRTIME
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#undef HAVE_GETTIMEOFDAY
-
-/* Define to 1 if hrtime_t is defined in <sys/time.h> */
-#undef HAVE_HRTIME_T
-
-/* Define to 1 if you have the <intrinsics.h> header file. */
-#undef HAVE_INTRINSICS_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define if the isnan() function/macro is available. */
-#undef HAVE_ISNAN
-
-/* Define to 1 if you have the <libintl.h> header file. */
-#undef HAVE_LIBINTL_H
-
-/* Define to 1 if you have the `m' library (-lm). */
-#undef HAVE_LIBM
-
-/* Define to 1 if you have the `quadmath' library (-lquadmath). */
-#undef HAVE_LIBQUADMATH
-
-/* Define to 1 if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
-/* Define to 1 if the compiler supports `long double' */
-#define HAVE_LONG_DOUBLE 1
-
-/* Define to 1 if you have the `mach_absolute_time' function. */
-#undef HAVE_MACH_ABSOLUTE_TIME
-
-/* Define to 1 if you have the <mach/mach_time.h> header file. */
-#undef HAVE_MACH_MACH_TIME_H
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#define HAVE_MALLOC_H 1
-
-/* Define to 1 if you have the `memalign' function. */
-#undef HAVE_MEMALIGN
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `memset' function. */
-#define HAVE_MEMSET 1
-
-/* Define to enable MIPS paired-single optimizations. */
-#undef HAVE_MIPS_PS
-
-/* Define to enable use of MIPS ZBus cycle-counter. */
-#undef HAVE_MIPS_ZBUS_TIMER
-
-/* Define if you have the MPI library. */
-#undef HAVE_MPI
-
-/* Define if OpenMP is enabled */
-#define HAVE_OPENMP 1
-
-/* Define to 1 if you have the `posix_memalign' function. */
-#undef HAVE_POSIX_MEMALIGN
-
-/* Define if you have POSIX threads libraries and header files. */
-#undef HAVE_PTHREAD
-
-/* Define to 1 if you have the `read_real_time' function. */
-#undef HAVE_READ_REAL_TIME
-
-/* Define to 1 if you have the `sinl' function. */
-#define HAVE_SINL 1
-
-/* Define to 1 if you have the `snprintf' function. */
-#define HAVE_SNPRINTF 1
-
-/* Define to 1 if you have the `sqrt' function. */
-#define HAVE_SQRT 1
-
-/* Define to enable SSE/SSE2 optimizations. */
-/* #define HAVE_SSE2 1 */
-
-/* Define to 1 if you have the <stddef.h> header file. */
-#define HAVE_STDDEF_H 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the `sysctl' function. */
-#undef HAVE_SYSCTL
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/sysctl.h> header file. */
-#undef HAVE_SYS_SYSCTL_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the `tanl' function. */
-#define HAVE_TANL 1
-
-/* Define if we have a threads library. */
-#undef HAVE_THREADS
-
-/* Define to 1 if you have the `time_base_to_time' function. */
-#undef HAVE_TIME_BASE_TO_TIME
-
-/* Define to 1 if the system has the type `uintptr_t'. */
-#define HAVE_UINTPTR_T 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the `vprintf' function. */
-#define HAVE_VPRINTF 1
-
-/* Define to 1 if you have the `_mm_free' function. */
-#undef HAVE__MM_FREE
-
-/* Define to 1 if you have the `_mm_malloc' function. */
-#undef HAVE__MM_MALLOC
-
-/* Define if you have the UNICOS _rtc() intrinsic. */
-#undef HAVE__RTC
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#undef LT_OBJDIR
-
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
-/* Name of package */
-#define PACKAGE "fftw"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "fftw@fftw.org"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "fftw"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "fftw-3.3"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "fftw"
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL "http://www.fftw.org"
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "3.3"
-
-/* Define to necessary symbol if this constant uses a non-standard name on
- your system. */
-#undef PTHREAD_CREATE_JOINABLE
-
-/* The size of `double', as computed by sizeof. */
-#undef SIZEOF_DOUBLE
-
-/* The size of `fftw_r2r_kind', as computed by sizeof. */
-#undef SIZEOF_FFTW_R2R_KIND
-
-/* The size of `float', as computed by sizeof. */
-#undef SIZEOF_FLOAT
-
-/* The size of `int', as computed by sizeof. */
-#undef SIZEOF_INT
-
-/* The size of `long', as computed by sizeof. */
-#undef SIZEOF_LONG
-
-/* The size of `long long', as computed by sizeof. */
-#undef SIZEOF_LONG_LONG
-
-/* The size of `MPI_Fint', as computed by sizeof. */
-#undef SIZEOF_MPI_FINT
-
-/* The size of `ptrdiff_t', as computed by sizeof. */
-#undef SIZEOF_PTRDIFF_T
-
-/* The size of `size_t', as computed by sizeof. */
-#undef SIZEOF_SIZE_T
-
-/* The size of `unsigned int', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_INT
-
-/* The size of `unsigned long', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_LONG
-
-/* The size of `unsigned long long', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_LONG_LONG
-
-/* The size of `void *', as computed by sizeof. */
-#undef SIZEOF_VOID_P
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at runtime.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown */
-#undef STACK_DIRECTION
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
-/* Define if we have and are using POSIX threads. */
-#undef USING_POSIX_THREADS
-
-/* Version number of package */
-#define VERSION "3.3"
-
-/* Use common Windows Fortran mangling styles for the Fortran interfaces. */
-#undef WINDOWS_F77_MANGLING
-
-/* Include g77-compatible wrappers in addition to any other Fortran wrappers.
- */
-#undef WITH_G77_WRAPPERS
-
-/* Use our own aligned malloc routine; mainly helpful for Windows systems
- lacking aligned allocation system-library routines. */
-#define WITH_OUR_MALLOC 1
-
-/* Use low-precision timers, making planner very slow */
-#undef WITH_SLOW_TIMER
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-#define inline __inline
-#endif
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef size_t
diff --git a/ports/fftw3/portfile.cmake b/ports/fftw3/portfile.cmake
index 86e5e722b..d5fc1bf0b 100644
--- a/ports/fftw3/portfile.cmake
+++ b/ports/fftw3/portfile.cmake
@@ -1,5 +1,14 @@
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/fftw-3.3.7)
+
+# This can be removed in the next source code update
+if(EXISTS "${SOURCE_PATH}/CMakeLists.txt")
+ file(READ "${SOURCE_PATH}/CMakeLists.txt" _contents)
+ if("${_contents}" MATCHES "-D_OPENMP -DLIBFFTWF33_EXPORTS /openmp /bigobj")
+ file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src)
+ endif()
+endif()
+
vcpkg_download_distfile(ARCHIVE
URLS "http://www.fftw.org/fftw-3.3.7.tar.gz"
FILENAME "fftw-3.3.7.tar.gz"
@@ -11,9 +20,6 @@ vcpkg_extract_source_archive(${ARCHIVE})
option(BUILD_SINGLE "Additionally build single precision library" ON)
option(BUILD_LONG_DOUBLE "Additionally build long-double precision library" ON)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h DESTINATION ${SOURCE_PATH})
-
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
@@ -23,8 +29,15 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
vcpkg_copy_pdbs()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(COPY ${SOURCE_PATH}/api/fftw3.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/fftw3)
+file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/fftw3)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+
+
if (VCPKG_CRT_LINKAGE STREQUAL dynamic)
vcpkg_apply_patches(
SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
diff --git a/ports/flatbuffers/portfile.cmake b/ports/flatbuffers/portfile.cmake
index b785e2fc5..4df390de0 100644
--- a/ports/flatbuffers/portfile.cmake
+++ b/ports/flatbuffers/portfile.cmake
@@ -1,11 +1,3 @@
-# Common Ambient Variables:
-# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
-# TARGET_TRIPLET is the current triplet (x86-windows, etc)
-# PORT is the current port name (zlib, etc)
-# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
-# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
-#
-
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
message("Building DLLs not supported. Building static instead.")
set(VCPKG_LIBRARY_LINKAGE static)
@@ -20,6 +12,10 @@ vcpkg_from_github(
HEAD_REF master
)
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ list(APPEND OPTIONS -DFLATBUFFERS_BUILD_FLATC=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF)
+endif()
+
set(OPTIONS)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
list(APPEND OPTIONS -DFLATBUFFERS_BUILD_SHAREDLIB=ON)
diff --git a/ports/flint/CONTROL b/ports/flint/CONTROL
index ee495fc0c..ce4646883 100644
--- a/ports/flint/CONTROL
+++ b/ports/flint/CONTROL
@@ -1,4 +1,4 @@
Source: flint
-Version: 2.5.2
+Version: 2.5.2-1
Description: Fast Library for Number Theory
Build-Depends: mpir, mpfr, pthreads, gettimeofday
diff --git a/ports/flint/portfile.cmake b/ports/flint/portfile.cmake
index e20ef9731..9a9d5136b 100644
--- a/ports/flint/portfile.cmake
+++ b/ports/flint/portfile.cmake
@@ -1,9 +1,3 @@
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- message(STATUS "Warning: Dynamic building not supported yet. Building static.")
- set(VCPKG_CRT_LINKAGE static)
- set(VCPKG_LIBRARY_LINKAGE static)
-endif()
-
include(vcpkg_common_functions)
set(FLINT_VERSION 2.5.2)
diff --git a/ports/fmt/CONTROL b/ports/fmt/CONTROL
index c0fd45c63..7cd59ab27 100644
--- a/ports/fmt/CONTROL
+++ b/ports/fmt/CONTROL
@@ -1,3 +1,3 @@
Source: fmt
-Version: 4.0.0-1
+Version: 4.1.0
Description: Formatting library for C++. It can be used as a safe alternative to printf or as a fast alternative to IOStreams.
diff --git a/ports/fmt/portfile.cmake b/ports/fmt/portfile.cmake
index f40e2adc9..36ab2ac3b 100644
--- a/ports/fmt/portfile.cmake
+++ b/ports/fmt/portfile.cmake
@@ -2,8 +2,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO fmtlib/fmt
- REF 4.0.0
- SHA512 8b9f7ce4720c3caef6de4a75b8d4b0fd7db4f1638edca98d5ea95f4a5157aef8faefbac68438236691bd373111ca089b4d3864f7352f3fba1fe44392e9644f8b
+ REF 4.1.0
+ SHA512 8daaa4a61bfe63345a12df0a9bca0b1cd6a162d0f4e97d2d2978ae19a1a1357ec4d4cce948ce726cdbe9403e51ad995950a2a99de28f9b9085c02ce845540b22
HEAD_REF master
)
diff --git a/ports/folly/CONTROL b/ports/folly/CONTROL
index 027979146..cc3678039 100644
--- a/ports/folly/CONTROL
+++ b/ports/folly/CONTROL
@@ -1,4 +1,4 @@
Source: folly
-Version: 2017.10.02.00
+Version: 2017.11.27.00-2
Description: An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows
-Build-Depends: zlib, openssl, boost, libevent, double-conversion, glog, gflags, lz4, liblzma, snappy
+Build-Depends: zlib, openssl, libevent, double-conversion, glog, gflags, lz4, liblzma, snappy, boost-context, boost-chrono, boost-date-time, boost-filesystem, boost-program-options, boost-regex, boost-system, boost-thread, boost-conversion, boost-multi-index, boost-crc
diff --git a/ports/folly/cmake-link-boost-fix.cmake b/ports/folly/cmake-link-boost-fix.cmake
new file mode 100644
index 000000000..7eb4574c4
--- /dev/null
+++ b/ports/folly/cmake-link-boost-fix.cmake
@@ -0,0 +1,35 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ec5a985c..36564534 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -136,13 +136,6 @@ source_group("folly\\build" FILES
+ )
+
+ set(FOLLY_SHINY_DEPENDENCIES
+- Boost::chrono
+- Boost::context
+- Boost::date_time
+- Boost::filesystem
+- Boost::program_options
+- Boost::regex
+- Boost::system
+ OpenSSL::SSL
+ OpenSSL::Crypto
+ )
+@@ -179,6 +172,7 @@ endif()
+
+ set(FOLLY_LINK_LIBRARIES
+ ${FOLLY_LINK_LIBRARIES}
++ ${Boost_LIBRARIES}
+ Iphlpapi.lib
+ Ws2_32.lib
+
+@@ -320,7 +314,7 @@ if (BUILD_TESTS)
+ )
+ target_link_libraries(folly_test_support
+ PUBLIC
+- Boost::thread
++ ${Boost_LIBRARIES}
+ folly
+ ${LIBGMOCK_LIBRARY}
+ )
diff --git a/ports/folly/fix-MSG_ERRQUEUE.diff b/ports/folly/fix-MSG_ERRQUEUE.diff
deleted file mode 100644
index ee3a1215a..000000000
--- a/ports/folly/fix-MSG_ERRQUEUE.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/folly/io/async/AsyncSocket.cpp b/folly/io/async/AsyncSocket.cpp
-index 7f8c5f13..f77adbc0 100644
---- a/folly/io/async/AsyncSocket.cpp
-+++ b/folly/io/async/AsyncSocket.cpp
-@@ -41,7 +41,7 @@ namespace fsp = folly::portability::sockets;
- namespace folly {
-
- static constexpr bool msgErrQueueSupported =
--#ifdef MSG_ERRQUEUE
-+#if defined(MSG_ERRQUEUE) && !defined(_WIN32)
- true;
- #else
- false;
-@@ -1551,7 +1551,7 @@ void AsyncSocket::handleErrMessages() noexcept {
- return;
- }
-
--#ifdef MSG_ERRQUEUE
-+#if defined(MSG_ERRQUEUE) && !defined(_WIN32)
- uint8_t ctrl[1024];
- unsigned char data;
- struct msghdr msg;
diff --git a/ports/folly/fix-histogram.diff b/ports/folly/fix-histogram.diff
deleted file mode 100644
index ca92a891e..000000000
--- a/ports/folly/fix-histogram.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/folly/stats/Histogram.h
-+++ b/folly/stats/Histogram.h
-@@ -485,7 +485,7 @@
- // with /permissive- (the default for the CMake build), so we directly include
- // the -defs as if it were -inl, and don't provide the explicit instantiations.
- // https://developercommunity.visualstudio.com/content/problem/81223/incorrect-error-c5037-with-permissive.html
--#if defined(_MSC_VER) && _MSC_FULL_VER >= 191125506 && _MSC_FULL_VER < 191125542
-+#if defined(_MSC_VER) && _MSC_FULL_VER >= 191125506 && _MSC_FULL_VER <= 191125547
- #define FOLLY_MSVC_USE_WORKAROUND_FOR_C5037 1
- #else
- #define FOLLY_MSVC_USE_WORKAROUND_FOR_C5037 0
diff --git a/ports/folly/fix-malloc.diff b/ports/folly/fix-malloc.diff
deleted file mode 100644
index db7a23063..000000000
--- a/ports/folly/fix-malloc.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/folly/Malloc.h Mon Oct 09 04:35:09 2017
-+++ b/folly/Malloc.h Fri Oct 13 15:31:36 2017
-@@ -189,9 +189,6 @@
- return false;
- }
-
-- /* Avoid optimizing away the malloc. */
-- asm volatile("" ::"m"(ptr) : "memory");
--
- return (origAllocated != *counter);
- }();
-
diff --git a/ports/folly/fix-static-linking.diff b/ports/folly/fix-static-linking.diff
deleted file mode 100644
index 80434faca..000000000
--- a/ports/folly/fix-static-linking.diff
+++ /dev/null
@@ -1,98 +0,0 @@
-diff --git a/CMake/folly-deps.cmake b/CMake/folly-deps.cmake
-index 211c6fbf..fbcbddf0 100755
---- a/CMake/folly-deps.cmake
-+++ b/CMake/folly-deps.cmake
-@@ -10,9 +10,26 @@ find_package(Boost 1.55.0 MODULE
- thread
- REQUIRED
- )
-+
- find_package(DoubleConversion MODULE REQUIRED)
--find_package(GFlags MODULE REQUIRED)
--find_package(GLog MODULE REQUIRED)
--find_package(LibEvent MODULE REQUIRED)
-+
-+find_package(gflags CONFIG)
-+if(NOT TARGET gflags)
-+ message(STATUS "MODULE: GFlags")
-+ find_package(GFlags MODULE REQUIRED)
-+endif()
-+
-+find_package(glog CONFIG)
-+if(NOT TARGET glog::glog)
-+ message(STATUS "MODULE: GLog")
-+ find_package(GLog MODULE REQUIRED)
-+endif()
-+
-+find_package(Libevent CONFIG)
-+if(NOT TARGET event)
-+ message(STATUS "MODULE: Libevent")
-+ find_package(LibEvent MODULE REQUIRED)
-+endif()
-+
- find_package(OpenSSL MODULE REQUIRED)
- find_package(PThread MODULE)
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index cdc992a8..c0231402 100755
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -141,9 +141,38 @@ set(FOLLY_SHINY_DEPENDENCIES
-
- set(FOLLY_LINK_LIBRARIES
- ${DOUBLE_CONVERSION_LIBRARY}
-- ${LIBEVENT_LIB}
-- ${LIBGFLAGS_LIBRARY}
-- ${LIBGLOG_LIBRARY}
-+)
-+
-+set(FOLLY_INCLUDE_DIRECTORIES
-+ ${DOUBLE_CONVERSION_INCLUDE_DIR}
-+)
-+
-+if(TARGET gflags_static)
-+ set(FOLLY_SHINY_DEPENDENCIES ${FOLLY_SHINY_DEPENDENCIES} gflags_static)
-+elseif(TARGET gflags)
-+ set(FOLLY_SHINY_DEPENDENCIES ${FOLLY_SHINY_DEPENDENCIES} gflags)
-+else()
-+ set(FOLLY_LINK_LIBRARIES ${FOLLY_LINK_LIBRARIES} ${LIBGFLAGS_LIBRARY})
-+ set(FOLLY_INCLUDE_DIRECTORIES ${FOLLY_INCLUDE_DIRECTORIES} ${LIBGFLAGS_INCLUDE_DIR})
-+endif()
-+
-+if(TARGET glog::glog)
-+ set(FOLLY_SHINY_DEPENDENCIES ${FOLLY_SHINY_DEPENDENCIES} glog::glog)
-+else()
-+ set(FOLLY_LINK_LIBRARIES ${FOLLY_LINK_LIBRARIES} ${LIBGLOG_LIBRARY})
-+ set(FOLLY_INCLUDE_DIRECTORIES ${FOLLY_INCLUDE_DIRECTORIES} ${LIBGLOG_INCLUDE_DIR})
-+endif()
-+
-+if(TARGET event)
-+ set(FOLLY_SHINY_DEPENDENCIES ${FOLLY_SHINY_DEPENDENCIES} event)
-+else()
-+ set(FOLLY_LINK_LIBRARIES ${FOLLY_LINK_LIBRARIES} ${LIBEVENT_LIB})
-+ set(FOLLY_INCLUDE_DIRECTORIES ${FOLLY_INCLUDE_DIRECTORIES} ${LIBEVENT_INCLUDE_DIR})
-+endif()
-+
-+
-+set(FOLLY_LINK_LIBRARIES
-+ ${FOLLY_LINK_LIBRARIES}
- Iphlpapi.lib
- Ws2_32.lib
-
-@@ -152,15 +181,12 @@ set(FOLLY_LINK_LIBRARIES
-
- target_include_directories(folly_base
- PUBLIC
-- ${DOUBLE_CONVERSION_INCLUDE_DIR}
-- ${LIBGFLAGS_INCLUDE_DIR}
-- ${LIBGLOG_INCLUDE_DIR}
-- ${LIBEVENT_INCLUDE_DIR}
-- $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
-+ ${FOLLY_INCLUDE_DIRECTORIES}
- )
-
- foreach (LIB ${FOLLY_SHINY_DEPENDENCIES})
- target_include_directories(folly_base PUBLIC $<TARGET_PROPERTY:${LIB},INCLUDE_DIRECTORIES>)
-+ target_compile_definitions(folly_base PUBLIC $<TARGET_PROPERTY:${LIB},INTERFACE_COMPILE_DEFINITIONS>)
- endforeach()
-
- if (FOLLY_HAVE_PTHREAD)
diff --git a/ports/folly/portfile.cmake b/ports/folly/portfile.cmake
index 8a48ee85d..77c8cecdf 100644
--- a/ports/folly/portfile.cmake
+++ b/ports/folly/portfile.cmake
@@ -17,19 +17,15 @@ set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO facebook/folly
- REF v2017.10.02.00
- SHA512 4fc7840c7a6c528c8ba6a21817bc75f15f5cd5f781d104a1f0622fe1085a6cb26ff9749616b164afff0ea46be6d16877457a98f417e6dbe1044db7605650a6d3
+ REF v2017.11.27.00
+ SHA512 738bb00047a7cbd807f2dccd64031763df80bbebca73f1ae9500b750dcad156dde84e47f4eda7af1bcd7abfae10c973da47515f2e111929979d1637869cf06ee
HEAD_REF master
)
vcpkg_apply_patches(
- SOURCE_PATH
- ${SOURCE_PATH}
+ SOURCE_PATH ${SOURCE_PATH}
PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/fix-static-linking.diff
- ${CMAKE_CURRENT_LIST_DIR}/fix-malloc.diff
- ${CMAKE_CURRENT_LIST_DIR}/fix-MSG_ERRQUEUE.diff
- ${CMAKE_CURRENT_LIST_DIR}/fix-histogram.diff
+ ${CMAKE_CURRENT_LIST_DIR}/cmake-link-boost-fix.cmake
)
if(VCPKG_CRT_LINKAGE STREQUAL static)
diff --git a/ports/freerdp/CONTROL b/ports/freerdp/CONTROL
index 5a730efb7..6a2d5d480 100644
--- a/ports/freerdp/CONTROL
+++ b/ports/freerdp/CONTROL
@@ -1,4 +1,4 @@
Source: freerdp
-Version: 2.0.0-rc0~vcpkg1-1
+Version: 2.0.0-rc1~vcpkg1
Description: A free implementation of the Remote Desktop Protocol (RDP)
Build-Depends: openssl
diff --git a/ports/freerdp/portfile.cmake b/ports/freerdp/portfile.cmake
index 6805c5a69..cd27da88c 100644
--- a/ports/freerdp/portfile.cmake
+++ b/ports/freerdp/portfile.cmake
@@ -1,8 +1,8 @@
include(vcpkg_common_functions)
-set(FREERDP_VERSION 2.0.0-rc0)
-set(FREERDP_REVISION 2.0.0-rc0)
-set(FREERDP_HASH d3eb0d5d23aa2a4d0277414f13a984d40aba051102c5af1e5ade975cdb469ef3549b145cd4339415fc33f056044929cfac71884512ea77a1e718d70d5b21b9dd)
+set(FREERDP_VERSION 2.0.0-rc1)
+set(FREERDP_REVISION 2.0.0-rc1)
+set(FREERDP_HASH 5d8fd7d6900feac1e42bfc0ebc111524205c3baa093958ced42d03635076ae7d88cd86439a22ff0656bc53f0302daee5a114a4ac26328ae598ee086490926182)
string(REGEX REPLACE "\\+" "-" FREERDP_VERSION_ESCAPED ${FREERDP_VERSION})
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/FreeRDP-${FREERDP_VERSION_ESCAPED})
diff --git a/ports/gflags/portfile.cmake b/ports/gflags/portfile.cmake
index 463b6d9b2..13d9a831b 100644
--- a/ports/gflags/portfile.cmake
+++ b/ports/gflags/portfile.cmake
@@ -1,5 +1,8 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
include(vcpkg_common_functions)
-find_program(GIT git)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
diff --git a/ports/glm/CONTROL b/ports/glm/CONTROL
index 4e7bad7ee..10a6e5f88 100644
--- a/ports/glm/CONTROL
+++ b/ports/glm/CONTROL
@@ -1,3 +1,3 @@
Source: glm
-Version: 0.9.8.5
+Version: 0.9.8.5-1
Description: OpenGL Mathematics (GLM) https://glm.g-truc.net
diff --git a/ports/glm/ignore-warning-C4201.patch b/ports/glm/ignore-warning-C4201.patch
new file mode 100644
index 000000000..b94b123db
--- /dev/null
+++ b/ports/glm/ignore-warning-C4201.patch
@@ -0,0 +1,128 @@
+diff --git a/glm/detail/type_vec1.hpp b/glm/detail/type_vec1.hpp
+index f5c7f017..69c7274a 100644
+--- a/glm/detail/type_vec1.hpp
++++ b/glm/detail/type_vec1.hpp
+@@ -39,6 +39,10 @@ namespace glm
+ # pragma clang diagnostic push
+ # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+ # pragma clang diagnostic ignored "-Wnested-anon-types"
++# endif
++# if GLM_COMPILER & GLM_COMPILER_VC
++# pragma warning(push)
++# pragma warning(disable: 4201)
+ # endif
+
+ union
+@@ -60,6 +64,9 @@ namespace glm
+ # endif//GLM_SWIZZLE*/
+ };
+
++# if GLM_COMPILER & GLM_COMPILER_VC
++# pragma warning(pop)
++# endif
+ # if GLM_COMPILER & GLM_COMPILER_CLANG
+ # pragma clang diagnostic pop
+ # endif
+diff --git a/glm/detail/type_vec2.hpp b/glm/detail/type_vec2.hpp
+index a9af32e3..b8b8f32e 100644
+--- a/glm/detail/type_vec2.hpp
++++ b/glm/detail/type_vec2.hpp
+@@ -38,6 +38,10 @@ namespace glm
+ # pragma clang diagnostic push
+ # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+ # pragma clang diagnostic ignored "-Wnested-anon-types"
++# endif
++# if GLM_COMPILER & GLM_COMPILER_VC
++# pragma warning(push)
++# pragma warning(disable: 4201)
+ # endif
+
+ union
+@@ -60,6 +64,9 @@ namespace glm
+
+ };
+
++# if GLM_COMPILER & GLM_COMPILER_VC
++# pragma warning(pop)
++# endif
+ # if GLM_COMPILER & GLM_COMPILER_CLANG
+ # pragma clang diagnostic pop
+ # endif
+diff --git a/glm/detail/type_vec3.hpp b/glm/detail/type_vec3.hpp
+index f85f0a5c..28e6c6ed 100644
+--- a/glm/detail/type_vec3.hpp
++++ b/glm/detail/type_vec3.hpp
+@@ -38,6 +38,10 @@ namespace glm
+ # pragma clang diagnostic push
+ # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+ # pragma clang diagnostic ignored "-Wnested-anon-types"
++# endif
++# if GLM_COMPILER & GLM_COMPILER_VC
++# pragma warning(push)
++# pragma warning(disable: 4201)
+ # endif
+
+ union
+@@ -59,6 +63,9 @@ namespace glm
+ # endif//GLM_SWIZZLE
+ };
+
++# if GLM_COMPILER & GLM_COMPILER_VC
++# pragma warning(pop)
++# endif
+ # if GLM_COMPILER & GLM_COMPILER_CLANG
+ # pragma clang diagnostic pop
+ # endif
+diff --git a/glm/detail/type_vec4.hpp b/glm/detail/type_vec4.hpp
+index 5e89b744..0a16bc2c 100644
+--- a/glm/detail/type_vec4.hpp
++++ b/glm/detail/type_vec4.hpp
+@@ -38,6 +38,10 @@ namespace glm
+ # pragma clang diagnostic push
+ # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+ # pragma clang diagnostic ignored "-Wnested-anon-types"
++# endif
++# if GLM_COMPILER & GLM_COMPILER_VC
++# pragma warning(push)
++# pragma warning(disable: 4201)
+ # endif
+
+ union
+@@ -61,6 +65,9 @@ namespace glm
+ # endif//GLM_SWIZZLE
+ };
+
++# if GLM_COMPILER & GLM_COMPILER_VC
++# pragma warning(pop)
++# endif
+ # if GLM_COMPILER & GLM_COMPILER_CLANG
+ # pragma clang diagnostic pop
+ # endif
+diff --git a/glm/gtc/quaternion.hpp b/glm/gtc/quaternion.hpp
+index 8af1c8bf..ff8c4aa6 100644
+--- a/glm/gtc/quaternion.hpp
++++ b/glm/gtc/quaternion.hpp
+@@ -49,6 +49,10 @@ namespace glm
+ # pragma clang diagnostic push
+ # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+ # pragma clang diagnostic ignored "-Wnested-anon-types"
++# endif
++# if GLM_COMPILER & GLM_COMPILER_VC
++# pragma warning(push)
++# pragma warning(disable: 4201)
+ # endif
+
+ union
+@@ -57,6 +61,9 @@ namespace glm
+ typename detail::storage<T, sizeof(T) * 4, detail::is_aligned<P>::value>::type data;
+ };
+
++# if GLM_COMPILER & GLM_COMPILER_VC
++# pragma warning(pop)
++# endif
+ # if GLM_COMPILER & GLM_COMPILER_CLANG
+ # pragma clang diagnostic pop
+ # endif
+--
+2.15.1.windows.2
+
diff --git a/ports/glm/portfile.cmake b/ports/glm/portfile.cmake
index 81e764f06..1fb4fe073 100644
--- a/ports/glm/portfile.cmake
+++ b/ports/glm/portfile.cmake
@@ -8,6 +8,11 @@ vcpkg_from_github(
HEAD_REF master
)
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/ignore-warning-C4201.patch"
+)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
)
diff --git a/ports/gmime/CMakeLists.txt b/ports/gmime/CMakeLists.txt
index 18ec89518..20c788f7e 100644
--- a/ports/gmime/CMakeLists.txt
+++ b/ports/gmime/CMakeLists.txt
@@ -32,6 +32,7 @@ add_definitions(-DG_LOG_DOMAIN="GMime")
# List the source files
set(LIB_SRC gmime/gmime.c
gmime/gmime-application-pkcs7-mime.c
+ gmime/gmime-autocrypt.c
gmime/gmime-certificate.c
gmime/gmime-charset.c
gmime/gmime-common.c
@@ -97,64 +98,9 @@ set(LIB_SRC gmime/gmime.c
util/gtrie.c
)
-set (LIB_HEADERS gmime/gmime.h
- gmime/gmime-version.h
- gmime/gmime-error.h
- gmime/gmime-charset.h
- gmime/gmime-iconv.h
- gmime/gmime-iconv-utils.h
- gmime/gmime-param.h
- gmime/gmime-content-type.h
- gmime/gmime-disposition.h
- gmime/gmime-data-wrapper.h
- gmime/gmime-object.h
- gmime/gmime-part.h
- gmime/gmime-text-part.h
- gmime/gmime-part-iter.h
- gmime/gmime-application-pkcs7-mime.h
- gmime/gmime-multipart.h
- gmime/gmime-multipart-encrypted.h
- gmime/gmime-multipart-signed.h
- gmime/gmime-message.h
- gmime/gmime-message-part.h
- gmime/gmime-message-partial.h
- gmime/internet-address.h
- gmime/gmime-encodings.h
- gmime/gmime-format-options.h
- gmime/gmime-parser-options.h
- gmime/gmime-parser.h
- gmime/gmime-utils.h
- gmime/gmime-references.h
- gmime/gmime-stream.h
- gmime/gmime-stream-buffer.h
- gmime/gmime-stream-cat.h
- gmime/gmime-stream-file.h
- gmime/gmime-stream-filter.h
- gmime/gmime-stream-fs.h
- gmime/gmime-stream-gio.h
- gmime/gmime-stream-mem.h
- gmime/gmime-stream-mmap.h
- gmime/gmime-stream-null.h
- gmime/gmime-stream-pipe.h
- gmime/gmime-filter.h
- gmime/gmime-filter-basic.h
- gmime/gmime-filter-best.h
- gmime/gmime-filter-charset.h
- gmime/gmime-filter-checksum.h
- gmime/gmime-filter-dos2unix.h
- gmime/gmime-filter-enriched.h
- gmime/gmime-filter-from.h
- gmime/gmime-filter-gzip.h
- gmime/gmime-filter-html.h
- gmime/gmime-filter-smtp-data.h
- gmime/gmime-filter-strip.h
- gmime/gmime-filter-unix2dos.h
- gmime/gmime-filter-windows.h
- gmime/gmime-filter-yenc.h
- gmime/gmime-crypto-context.h
- gmime/gmime-pkcs7-context.h
- gmime/gmime-gpg-context.h
-)
+file(GLOB LIB_HEADERS gmime/gmime-*.h)
+list(APPEND LIB_HEADERS gmime/gmime.h)
+list(APPEND LIB_HEADERS gmime/internet-address.h)
if(MSVC AND BUILD_SHARED_LIBS)
set(MSVC_SRC gmime.def)
diff --git a/ports/gmime/CONTROL b/ports/gmime/CONTROL
index 215df5995..febce0ebe 100644
--- a/ports/gmime/CONTROL
+++ b/ports/gmime/CONTROL
@@ -1,4 +1,4 @@
Source: gmime
-Version: 3.0.2
+Version: 3.0.5
Build-Depends: zlib, glib, libiconv, libidn2
Description: GMime is a C/C++ library which may be used for the creation and parsing of messages using the Multipurpose Internet Mail Extension (MIME).
diff --git a/ports/gmime/config.h b/ports/gmime/config.h
index 578223e20..a53c1537a 100644
--- a/ports/gmime/config.h
+++ b/ports/gmime/config.h
@@ -8,7 +8,7 @@
/* #undef ENABLE_WARNINGS */
/* Define to the GMime version */
-#define GMIME_VERSION "3.0.2"
+#define GMIME_VERSION "@LIB_VERSION@"
/* Define to 1 if you have the <dlfcn.h> header file. */
/* #undef HAVE_DLFCN_H */
@@ -30,7 +30,7 @@
#define HAVE_GETOPT_H 1
/* Define to 1 if you have the `getpagesize' function. */
-#define HAVE_GETPAGESIZE 1
+/* #undef HAVE_GETPAGESIZE */
/* Define to 1 to use auto-detected iconv-friendly charset names. */
/* #undef HAVE_ICONV_DETECT_H */
@@ -117,7 +117,7 @@
#define PACKAGE_NAME "gmime"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "gmime 3.0.2"
+#define PACKAGE_STRING "gmime @LIB_VERSION@"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gmime"
@@ -126,16 +126,16 @@
#define PACKAGE_URL ""
/* Define to the version of this package. */
-#define PACKAGE_VERSION "3.0.2"
+#define PACKAGE_VERSION "@LIB_VERSION@"
/* The size of `off_t', as computed by sizeof. */
-#define SIZEOF_OFF_T 8
+/* #undef SIZEOF_OFF_T */
/* The size of `size_t', as computed by sizeof. */
-#define SIZEOF_SIZE_T 8
+/* #undef SIZEOF_SIZE_T */
/* The size of `ssize_t', as computed by sizeof. */
-#define SIZEOF_SSIZE_T 8
+/* #undef SIZEOF_SSIZE_T */
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
diff --git a/ports/gmime/gmime.def b/ports/gmime/gmime.def
index 463dda27e..b072e0d65 100644
--- a/ports/gmime/gmime.def
+++ b/ports/gmime/gmime.def
@@ -587,3 +587,28 @@ internet_address_mailbox_set_addr
internet_address_set_charset
internet_address_set_name
internet_address_to_string
+g_mime_autocrypt_header_new
+g_mime_autocrypt_header_new_from_string
+g_mime_autocrypt_header_get_address
+g_mime_autocrypt_header_set_address
+g_mime_autocrypt_header_set_address_from_string
+g_mime_autocrypt_header_get_address_as_string
+g_mime_autocrypt_header_get_prefer_encrypt
+g_mime_autocrypt_header_set_prefer_encrypt
+g_mime_autocrypt_header_get_keydata
+g_mime_autocrypt_header_set_keydata
+g_mime_autocrypt_header_get_effective_date
+g_mime_autocrypt_header_set_effective_date
+g_mime_autocrypt_header_is_complete
+g_mime_autocrypt_header_to_string
+g_mime_autocrypt_header_compare
+g_mime_autocrypt_header_clone
+g_mime_autocrypt_header_list_new
+g_mime_autocrypt_header_list_add_missing_addresses
+g_mime_autocrypt_header_list_add
+g_mime_autocrypt_header_list_get_count
+g_mime_autocrypt_header_list_get_header_at
+g_mime_autocrypt_header_list_get_header_for_address
+g_mime_autocrypt_header_list_remove_incomplete
+g_mime_autocrypt_header_get_type
+g_mime_autocrypt_header_list_get_type
diff --git a/ports/gmime/portfile.cmake b/ports/gmime/portfile.cmake
index 1fa50063c..ddfeeb74c 100644
--- a/ports/gmime/portfile.cmake
+++ b/ports/gmime/portfile.cmake
@@ -1,7 +1,7 @@
include(vcpkg_common_functions)
set(LIB_NAME gmime)
-set(LIB_VERSION 3.0.2)
+set(LIB_VERSION 3.0.5)
set(LIB_FILENAME ${LIB_NAME}-${LIB_VERSION}.tar.xz)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION})
@@ -9,7 +9,7 @@ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION})
vcpkg_download_distfile(ARCHIVE
URLS "https://download.gnome.org/sources/gmime/3.0/${LIB_FILENAME}"
FILENAME "${LIB_FILENAME}"
- SHA512 246f489c168ce7e04fab664b7e9ae7772ae52f0063fb0eac9153460d84fa5d9712457d81fbd1bdcdadb7e03007cf71ed3bad5287f1639214f54167427c9209ca
+ SHA512 658b9008ffdf8055ffa9dfe8a5a6036a487309b0419572a9376397f68a8fc17d36ba6a05d2dfcb2ad23e634dc9e2aedd2479df1bfa0b7f8944d4c294650cb6c8
)
vcpkg_extract_source_archive(${ARCHIVE})
@@ -18,7 +18,8 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
# We can use file supplied with original sources
configure_file(${SOURCE_PATH}/build/vs2010/unistd.h ${SOURCE_PATH} COPYONLY)
-configure_file(${CMAKE_CURRENT_LIST_DIR}/config.h ${SOURCE_PATH} COPYONLY)
+configure_file(${CMAKE_CURRENT_LIST_DIR}/config.h ${SOURCE_PATH})
+
configure_file(${CMAKE_CURRENT_LIST_DIR}/idna.h ${SOURCE_PATH} COPYONLY)
configure_file(${CMAKE_CURRENT_LIST_DIR}/gmime.def ${SOURCE_PATH} COPYONLY)
diff --git a/ports/grpc/CONTROL b/ports/grpc/CONTROL
index b866586fe..8eb7093e1 100644
--- a/ports/grpc/CONTROL
+++ b/ports/grpc/CONTROL
@@ -1,4 +1,4 @@
Source: grpc
-Version: 1.7.0
+Version: 1.7.2
Build-Depends: zlib, openssl, protobuf, c-ares
Description: An RPC library and framework
diff --git a/ports/grpc/portfile.cmake b/ports/grpc/portfile.cmake
index 4b7473105..45126f05f 100644
--- a/ports/grpc/portfile.cmake
+++ b/ports/grpc/portfile.cmake
@@ -12,8 +12,8 @@ endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO grpc/grpc
- REF v1.7.0
- SHA512 23427ac1f180ce6d70b039225f26cecbd938655d1e5b726414aee7dfee6e6f301913255cfe0ff326dfb34e206ca6476c389b2fd0db58b284fff30c9757c5e4ac
+ REF v1.7.2
+ SHA512 54cb4165878fb3361cd7a81b631f1b20e991eadd286c0f6020542a8aa464cf30bdd1479dc413b767a1585bdc730e465a64c45e9e805723f38bd54521e1c4f942
HEAD_REF master
)
diff --git a/ports/gsl-lite/CONTROL b/ports/gsl-lite/CONTROL
index 0facec7fd..1d93638e0 100644
--- a/ports/gsl-lite/CONTROL
+++ b/ports/gsl-lite/CONTROL
@@ -1,3 +1,3 @@
Source: gsl-lite
-Version: 0.24.0
+Version: 0.26.0
Description: A single-file header-only version of ISO C++ Guideline Support Library (GSL) for C++98, C++11 and later
diff --git a/ports/gsl-lite/portfile.cmake b/ports/gsl-lite/portfile.cmake
index a2773b759..807e13233 100644
--- a/ports/gsl-lite/portfile.cmake
+++ b/ports/gsl-lite/portfile.cmake
@@ -1,11 +1,11 @@
include(vcpkg_common_functions)
-set(GSL_LITE_VERSION v0.24.0)
+set(GSL_LITE_VERSION v0.26.0)
vcpkg_download_distfile(HEADER
URLS "https://github.com/martinmoene/gsl-lite/releases/download/${GSL_LITE_VERSION}/gsl-lite.h"
FILENAME "gsl-lite-${GSL_LITE_VERSION}.h"
- SHA512 fbe93aadf25feb488c2190e867933f198adb92a5a87e6bee8a8e1d6f0185829953348cb67eb52f70945d5a3cdb1f4d7403cfd950ab808b215ce445c37e9d9daf
+ SHA512 22bfa69120f98662adca0459a876186086f5deecfaaad6e0d7420fa2b2f7acac63c767b3b1f8915d36f3a44e647a730e2c22f2587befc938e81ea4329c5f2185
)
vcpkg_download_distfile(LICENSE
diff --git a/ports/gtest/CONTROL b/ports/gtest/CONTROL
index 77082f5cb..d3086b8ac 100644
--- a/ports/gtest/CONTROL
+++ b/ports/gtest/CONTROL
@@ -1,3 +1,3 @@
Source: gtest
-Version: 1.8-1
+Version: 1.8.0-5
Description: GoogleTest and GoogleMock testing frameworks.
diff --git a/ports/gtest/portfile.cmake b/ports/gtest/portfile.cmake
index 491d6a8d5..b1f9e5dce 100644
--- a/ports/gtest/portfile.cmake
+++ b/ports/gtest/portfile.cmake
@@ -17,47 +17,70 @@ vcpkg_apply_patches(
PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch
)
-if (VCPKG_CRT_LINKAGE STREQUAL "dynamic")
- set(gtest_force_shared_crt YES)
-else()
- set(gtest_force_shared_crt NO)
-endif()
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" GTEST_FORCE_SHARED_CRT)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS -Dgtest_force_shared_crt=${gtest_force_shared_crt}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_GMOCK=ON
+ -DBUILD_GTEST=ON
+ -Dgtest_force_shared_crt=${GTEST_FORCE_SHARED_CRT}
)
set(ENV{_CL_} "/D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING")
vcpkg_install_cmake()
+file(
+ INSTALL
+ "${SOURCE_PATH}/googletest/src/gtest.cc"
+ "${SOURCE_PATH}/googletest/src/gtest_main.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-all.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-death-test.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-filepath.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-internal-inl.h"
+ "${SOURCE_PATH}/googletest/src/gtest-port.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-printers.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-test-part.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-typed-test.cc"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/src
+)
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(INSTALL ${SOURCE_PATH}/googletest/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/gtest RENAME copyright)
-if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+# This block will be unnecessary in googletest 1.9.0 (or later).
+# These dll files are installed in ../bin directory by default settings.
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/gtest.dll)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin/)
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest.dll ${CURRENT_PACKAGES_DIR}/bin/gtest.dll)
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest_main.dll ${CURRENT_PACKAGES_DIR}/bin/gtest_main.dll)
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock.dll ${CURRENT_PACKAGES_DIR}/bin/gmock.dll)
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock_main.dll ${CURRENT_PACKAGES_DIR}/bin/gmock_main.dll)
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/gtest.dll)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin/)
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gtest.dll)
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest_main.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gtest_main.dll)
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gmock.dll)
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock_main.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gmock_main.dll)
endif()
-
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link)
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gtest.lib)
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest_main.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gtest_main.lib)
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gmock.lib)
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock_main.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gmock_main.lib)
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gtest.lib)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest_main.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gtest_main.lib)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gmock.lib)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock_main.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gmock_main.lib)
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/gtest.lib)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gtest.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest_main.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gtest_main.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gmock.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock_main.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gmock_main.lib)
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/gtest.lib)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gtestd.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest_main.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gtest_maind.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gmockd.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock_main.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gmock_maind.lib)
+endif()
vcpkg_copy_pdbs()
diff --git a/ports/halide/CONTROL b/ports/halide/CONTROL
new file mode 100644
index 000000000..2866357e3
--- /dev/null
+++ b/ports/halide/CONTROL
@@ -0,0 +1,3 @@
+Source: halide
+Version: release_2017_10_30
+Description: Halide is a programming language designed to make it easier to write high-performance image processing code on modern machines.
diff --git a/ports/halide/portfile.cmake b/ports/halide/portfile.cmake
new file mode 100644
index 000000000..184d5114c
--- /dev/null
+++ b/ports/halide/portfile.cmake
@@ -0,0 +1,88 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message(STATUS "Warning: Static building not supported yet. Building dynamic.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(TARGET_ARCHITECTURE 32)
+ set(FILE_HASH 99e9f05629213f99ba0b2ae088e2356842841604346a2871b05bf933a2a4712528ad1a38861f54478c16b99686ce615f97254b00c09b92b540c7afa1b0b0bb8f)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(TARGET_ARCHITECTURE 64)
+ set(FILE_HASH aa699684321e779898ff09dc02163347dce355fa5d47fe673191e2323e28cc5b6554dfd51f39cc9c231ba8b07927f36e99b8489e4f7eb871ebaf6e377fc33cfc)
+else()
+ message(FATAL_ERROR "Error: halide does not support the ${VCPKG_TARGET_ARCHITECTURE} architecture.")
+endif()
+
+set(COMMIT_HASH 3af238615667312dcb46607752e3ae5d0ec5d713)
+set(RELEASE_DATE 2017_10_30)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/halide-win-${TARGET_ARCHITECTURE}-distro-trunk-${COMMIT_HASH})
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/halide/Halide/releases/download/release_${RELEASE_DATE}/halide-win-${TARGET_ARCHITECTURE}-distro-trunk-${COMMIT_HASH}.zip"
+ FILENAME "halide-win-${TARGET_ARCHITECTURE}-distro-trunk-${COMMIT_HASH}.zip"
+ SHA512 ${FILE_HASH}
+)
+vcpkg_extract_source_archive(${ARCHIVE} ${SOURCE_PATH})
+
+vcpkg_download_distfile(LICENSE
+ URLS "https://raw.githubusercontent.com/halide/Halide/release_${RELEASE_DATE}/LICENSE.txt"
+ FILENAME "halide-release_${RELEASE_DATE}-LICENSE.txt"
+ SHA512 bf11aa011ce872bcd51fe8d350f7238ad1eceb61eb7af788a2d78a6cfdfa9095abeeb2d230ead5c5299d245d6507a7b4374e3294703c126dcdae531db5a5ba7a
+)
+
+set(SOURCE_PATH ${SOURCE_PATH}/halide)
+
+file(
+ INSTALL
+ "${SOURCE_PATH}/include/Halide.h"
+ "${SOURCE_PATH}/include/HalideBuffer.h"
+ "${SOURCE_PATH}/include/HalideRuntime.h"
+ "${SOURCE_PATH}/include/HalideRuntimeCuda.h"
+ "${SOURCE_PATH}/include/HalideRuntimeHexagonHost.h"
+ "${SOURCE_PATH}/include/HalideRuntimeMetal.h"
+ "${SOURCE_PATH}/include/HalideRuntimeOpenCL.h"
+ "${SOURCE_PATH}/include/HalideRuntimeOpenGL.h"
+ "${SOURCE_PATH}/include/HalideRuntimeOpenGLCompute.h"
+ "${SOURCE_PATH}/include/HalideRuntimeQurt.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include
+)
+
+file(
+ INSTALL
+ "${SOURCE_PATH}/tools/halide_image_io.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include
+)
+
+file(
+ INSTALL
+ "${SOURCE_PATH}/Release/Halide.lib"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/lib
+)
+
+file(
+ INSTALL
+ "${SOURCE_PATH}/Debug/Halide.lib"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+file(
+ INSTALL
+ "${SOURCE_PATH}/Release/Halide.dll"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/bin
+)
+
+file(
+ INSTALL
+ "${SOURCE_PATH}/Debug/Halide.dll"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/debug/bin
+)
+
+file(INSTALL "${LICENSE}" DESTINATION ${CURRENT_PACKAGES_DIR}/share/halide RENAME copyright)
diff --git a/ports/hdf5/portfile.cmake b/ports/hdf5/portfile.cmake
index d9682b0f7..000ed6a31 100644
--- a/ports/hdf5/portfile.cmake
+++ b/ports/hdf5/portfile.cmake
@@ -1,3 +1,7 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/CMake-hdf5-1.10.0-patch1/hdf5-1.10.0-patch1)
vcpkg_download_distfile(ARCHIVE
diff --git a/ports/hpx/CONTROL b/ports/hpx/CONTROL
index a7f31fc42..6956312c8 100644
--- a/ports/hpx/CONTROL
+++ b/ports/hpx/CONTROL
@@ -1,5 +1,5 @@
Source: hpx
-Version: 1.0.0-5
-Build-Depends: boost, hwloc
+Version: 1.0.0-7
+Build-Depends: hwloc, boost-chrono, boost-date-time, boost-filesystem, boost-program-options, boost-regex, boost-system, boost-thread, boost-context, boost-iostreams, boost-random, boost-atomic, boost-asio, boost-dynamic-bitset, boost-assign, boost-format, boost-signals2, boost-parameter, boost-bimap, boost-accumulators, boost-lockfree, boost-icl
Description: The C++ Standards Library for Concurrency and Parallelism
HPX is a C++ Standards Library for Concurrency and Parallelism. It implements all of the corresponding facilities as defined by the C++ Standard. Additionally, in HPX we implement functionalities proposed as part of the ongoing C++ standardization process. We also extend the C++ Standard APIs to the distributed case.
diff --git a/ports/hpx/boost-1-66.patch b/ports/hpx/boost-1-66.patch
new file mode 100644
index 000000000..6f98a48aa
--- /dev/null
+++ b/ports/hpx/boost-1-66.patch
@@ -0,0 +1,38 @@
+diff --git a/src/util/asio_util.cpp b/src/util/asio_util.cpp
+index e2207de..48a35b9 100644
+--- a/src/util/asio_util.cpp
++++ b/src/util/asio_util.cpp
+@@ -231,7 +231,7 @@ namespace hpx { namespace util
+ tcp::endpoint ep;
+ if (util::get_endpoint(address, port, ep))
+ {
+- return endpoint_iterator_type(tcp::resolver::iterator::create(
++ return endpoint_iterator_type(tcp::resolver::results_type::create(
+ ep, address, port_str));
+ }
+ }
+@@ -283,7 +283,7 @@ namespace hpx { namespace util
+ if (util::get_endpoint(address, port, ep))
+ {
+ return endpoint_iterator_type(
+- tcp::resolver::iterator::create(ep, address, port_str));
++ tcp::resolver::results_type::create(ep, address, port_str));
+ }
+ }
+ catch (boost::system::system_error const&) {
+diff --git a/src/util/serialize_exception.cpp b/src/util/serialize_exception.cpp
+index 935e575..22bcf37 100644
+--- a/src/util/serialize_exception.cpp
++++ b/src/util/serialize_exception.cpp
+@@ -341,11 +341,7 @@ namespace hpx { namespace serialization
+ case hpx::util::boost_system_error:
+ e = hpx::detail::construct_exception(
+ boost::system::system_error(err_value,
+-#ifndef BOOST_SYSTEM_NO_DEPRECATED
+- boost::system::get_system_category()
+-#else
+ boost::system::system_category()
+-#endif
+ , err_message
+ )
+ , throw_function_, throw_file_, throw_line_, throw_back_trace_,
diff --git a/ports/hpx/portfile.cmake b/ports/hpx/portfile.cmake
index fce8fce61..4b3a87254 100644
--- a/ports/hpx/portfile.cmake
+++ b/ports/hpx/portfile.cmake
@@ -15,35 +15,41 @@ vcpkg_download_distfile(ARCHIVE
vcpkg_extract_source_archive(${ARCHIVE})
# apply hotfix to enable building with vcpkg
-vcpkg_download_distfile(DIFF
+vcpkg_download_distfile(DIFF1
URLS "http://stellar-group.org/files/hpx-Build-system-changes-to-make-HPX-compile-when-built-with-vcpkg.diff"
FILENAME "hpx-Build-system-changes-to-make-HPX-compile-when-built-with-vcpkg.diff"
SHA512 86df311a120686139955e1c0fdca55379594be3fa8d46d69ee59d83da351ce3bed487ab946c80f7127aab9699e470e24e545b112f92be9f971f41d95c429d01d
)
-vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} PATCHES ${DIFF})
# apply hotfix to fix issues with building 32bit version
-vcpkg_download_distfile(DIFF
+vcpkg_download_distfile(DIFF2
URLS "http://stellar-group.org/files/hpx-Fixing-32bit-MSVC-compilation.diff"
FILENAME "hpx-Fixing-32bit-MSVC-compilation.diff"
SHA512 31c904d317b4c24eddd819e4856f8326ff3850a5a196c7648c46a11dbb85f35e972e077957b3c4aec67c8b043816fe1cebc92cfe28ed815f682537dfc3421b8b
)
-vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} PATCHES ${DIFF})
# apply hotfix to fix issues when building with UNICODE enabled
-vcpkg_download_distfile(DIFF
+vcpkg_download_distfile(DIFF3
URLS "http://stellar-group.org/files/hpx-Making-sure-UNICODE-on-Windows-does-not-break-by-default.diff"
FILENAME "hpx-Making-sure-UNICODE-on-Windows-does-not-break-by-default.diff"
SHA512 8fcdb36307702d64b9d2b26920374a6c5a29a50d125305dc95926c4cbc91215cb0c72ede83b06d0fc007fe7b2283845e08351bd45f11f3677f0d3db4ac8f9424
)
-vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} PATCHES ${DIFF})
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${DIFF1}
+ ${DIFF2}
+ ${DIFF3}
+ ${CMAKE_CURRENT_LIST_DIR}/boost-1-66.patch
+)
SET(BOOST_PATH "${CURRENT_INSTALLED_DIR}/share/boost")
SET(HWLOC_PATH "${CURRENT_INSTALLED_DIR}/share/hwloc")
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
-DBOOST_ROOT=${BOOST_PATH}
-DHWLOC_ROOT=${HWLOC_ROOT}
diff --git a/ports/imgui/CMakeLists.txt b/ports/imgui/CMakeLists.txt
index a4c49a337..3658c5cae 100644
--- a/ports/imgui/CMakeLists.txt
+++ b/ports/imgui/CMakeLists.txt
@@ -4,8 +4,6 @@ project(imgui CXX)
set(CMAKE_DEBUG_POSTFIX d)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
-find_path(STB_INCLUDE_DIR stb_rect_pack.h stb_textedit.h stb_truetype.h)
-
set(IMGUI_INCLUDES_PUBLIC
imgui.h
imconfig.h
@@ -27,8 +25,6 @@ add_library(imgui
${IMGUI_SOURCES}
)
-target_include_directories(imgui PUBLIC ${STB_INCLUDE_DIR})
-
install(TARGETS imgui
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
diff --git a/ports/imgui/CONTROL b/ports/imgui/CONTROL
index 35e041de1..4428d0d45 100644
--- a/ports/imgui/CONTROL
+++ b/ports/imgui/CONTROL
@@ -1,4 +1,3 @@
Source: imgui
-Version: 1.51-1
-Build-Depends: stb
+Version: 1.52
Description: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies.
diff --git a/ports/imgui/portfile.cmake b/ports/imgui/portfile.cmake
index 587a4cf19..385a2396b 100644
--- a/ports/imgui/portfile.cmake
+++ b/ports/imgui/portfile.cmake
@@ -1,23 +1,14 @@
include(vcpkg_common_functions)
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- message(STATUS "Warning: Dynamic building not supported yet. Building static.")
- set(VCPKG_LIBRARY_LINKAGE static)
-endif()
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO ocornut/imgui
- REF v1.51
- SHA512 33aea46d0ab8419fcd4af765c9f1a88dfb1b80ad466276b655a67f40ffedabe399db6b0d76a2ece74e551928bd6f842ae3fa42998e0b1a2206157a3852e002d6
+ REF v1.52
+ SHA512 8ada897ae33bcffa222dab4e9ff602611fa27d43f26085b8f96c313fea917d3149f1e3f4640f6156cfb7bc39bcb116106ccb4e8da1409d467e78c93bf9f7ea03
HEAD_REF master
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
-file(GLOB STB_HEADERS ${SOURCE_PATH}/stb_*.h)
-if(STB_HEADERS)
- file(REMOVE ${STB_HEADERS})
-endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
diff --git a/ports/itk/CONTROL b/ports/itk/CONTROL
index c930e9491..f4b29af94 100644
--- a/ports/itk/CONTROL
+++ b/ports/itk/CONTROL
@@ -1,4 +1,4 @@
Source: itk
-Version: 4.11.0
+Version: 4.13.0
Description: Insight Segmentation and Registration Toolkit (ITK) is used for image processing and analysis.
-Build-Depends: libjpeg-turbo, zlib, libpng, tiff, expat
+Build-Depends: double-conversion, libjpeg-turbo, zlib, libpng, tiff, expat
diff --git a/ports/itk/portfile.cmake b/ports/itk/portfile.cmake
index 79b298ae2..d37d5b150 100644
--- a/ports/itk/portfile.cmake
+++ b/ports/itk/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO InsightSoftwareConsortium/ITK
- REF fc374c8431a8aec740e4db3a398c6e95294f34a2
- SHA512 d4a313cfba78ab309e387c213a2dd568c4d8bb628210dcb519712bbed23380b870d7224634119fad08ff157451b75f1c7fbae93841a00091b0e403315cde2943
+ REF d92873e33e8a54e933e445b92151191f02feab42
+ SHA512 0e3ebd27571543e1c497377dd9576a9bb0711129be12131109fe9b3c8413655ad14ce4d9ac6e281bac83c57e6032b614bc9ff53ed357d831544ca52f41513b62
HEAD_REF master
)
@@ -23,27 +23,27 @@ vcpkg_configure_cmake(
-DITK_INSTALL_DOC_DIR=share/itk/doc
-DITK_INSTALL_PACKAGE_DIR=share/itk
-DITK_LEGACY_REMOVE=ON
+ -DITK_FUTURE_LEGACY_REMOVE=ON
-DITK_USE_64BITS_IDS=ON
-DITK_USE_CONCEPT_CHECKING=ON
- # -DITK_WRAP_PYTHON=ON
- # -DITK_PYTHON_VERSION=3
- # -DITK_USE_SYSTEM_LIBRARIES=ON # enables USE_SYSTEM for many third party libraries which do not have vcpkg ports such as FFTW
+ #-DITK_USE_SYSTEM_LIBRARIES=ON # enables USE_SYSTEM for all third party libraries, some of which do not have vcpkg ports such as CastXML, SWIG, MINC etc
+ -DITK_USE_SYSTEM_DOUBLECONVERSION=ON
-DITK_USE_SYSTEM_EXPAT=ON
-DITK_USE_SYSTEM_JPEG=ON
-DITK_USE_SYSTEM_PNG=ON
-DITK_USE_SYSTEM_TIFF=ON
-DITK_USE_SYSTEM_ZLIB=ON
-DITK_FORBID_DOWNLOADS=OFF
- -DITK_BUILD_DEFAULT_MODULES=OFF # turns on HDF5, which is problematic
- -DITKGroup_IO=OFF # turns on HDF5, which is problematic
- -DModule_ITKReview=OFF # turns on HDF5, which is problematic
- -DITKGroup_Filtering=ON
- -DITKGroup_Registration=ON
- -DITKGroup_Segmentation=ON
- -DModule_ITKIOMesh=ON
- -DModule_ITKIOCSV=ON
+
+ # I havn't tried Python wrapping in vcpkg
+ #-DITK_WRAP_PYTHON=ON
+ #-DITK_PYTHON_VERSION=3
+
+ # HDF5 must NOT be installed, otherwise it causes: ...\installed\x64-windows-static\include\H5Tpkg.h(25): fatal error C1189: #error: "Do not include this file outside the H5T package!"
+ -DITK_USE_SYSTEM_HDF5=OFF # if ON, causes: ...\buildtrees\itk\x64-windows-static-rel\Modules\ThirdParty\HDF5\src\itk_H5Cpp.h(25): fatal error C1083: Cannot open include file: 'H5Cpp.h': No such file or directory
+
+ # -DModule_ITKVtkGlue=ON # this option requires VTK to be a dependency in CONTROL file. VTK depends on HDF5!
-DModule_IOSTL=ON # example how to turn on a non-default module
- # -DModule_ITKVtkGlue=ON # this option requires VTK to be a dependency in CONTROL file
-DModule_MorphologicalContourInterpolation=ON # example how to turn on a remote module
-DModule_RLEImage=ON # example how to turn on a remote module
${ADDITIONAL_OPTIONS}
@@ -52,6 +52,8 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
vcpkg_copy_pdbs()
+vcpkg_fixup_cmake_targets() # combines release and debug build configurations
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/jansson/portfile.cmake b/ports/jansson/portfile.cmake
index 50d5a994e..5b255e7ac 100644
--- a/ports/jansson/portfile.cmake
+++ b/ports/jansson/portfile.cmake
@@ -21,13 +21,23 @@ else()
set(JANSSON_BUILD_SHARED_LIBS OFF)
endif()
+# Jansson tries to random-seed its hash table with system-provided entropy.
+# This is not ported to UWP yet.
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(USE_WINDOWS_CRYPTOAPI OFF)
+else()
+ set(USE_WINDOWS_CRYPTOAPI ON)
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
-DJANSSON_STATIC_CRT=${JANSSON_STATIC_CRT}
-DJANSSON_EXAMPLES=OFF
-DJANSSON_WITHOUT_TESTS=ON
-DJANSSON_BUILD_SHARED_LIBS=${JANSSON_BUILD_SHARED_LIBS}
+ -DUSE_WINDOWS_CRYPTOAPI=${USE_WINDOWS_CRYPTOAPI}
)
vcpkg_install_cmake(DISABLE_PARALLEL)
diff --git a/ports/lcms/CMakeLists.txt b/ports/lcms/CMakeLists.txt
index 809fe505e..10ccc0b02 100644
--- a/ports/lcms/CMakeLists.txt
+++ b/ports/lcms/CMakeLists.txt
@@ -33,6 +33,8 @@ set(SRCS
"src/cmssm.c"
)
+set(CMAKE_DEBUG_POSTFIX d)
+
add_definitions(-DUNICODE -D_UNICODE)
if(BUILD_SHARED_LIBS)
diff --git a/ports/lcms/CONTROL b/ports/lcms/CONTROL
index 03efca607..5855fbc71 100644
--- a/ports/lcms/CONTROL
+++ b/ports/lcms/CONTROL
@@ -1,4 +1,4 @@
Source: lcms
-Version: 2.8-3
+Version: 2.8-4
Build-Depends:
Description: Little CMS.
diff --git a/ports/lcms/portfile.cmake b/ports/lcms/portfile.cmake
index eeb12243c..7d52e5270 100644
--- a/ports/lcms/portfile.cmake
+++ b/ports/lcms/portfile.cmake
@@ -13,7 +13,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
- OPTIONS_DEBUG
+ OPTIONS_DEBUG
-DSKIP_INSTALL_HEADERS=ON
)
diff --git a/ports/leveldb/CONTROL b/ports/leveldb/CONTROL
index b953e540c..5953bc35d 100644
--- a/ports/leveldb/CONTROL
+++ b/ports/leveldb/CONTROL
@@ -1,3 +1,3 @@
Source: leveldb
-Version: 2017-10-25-8b1cd3753b184341e837b30383832645135d3d73
+Version: 2017-10-25-8b1cd3753b184341e837b30383832645135d3d73-1
Description: LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
diff --git a/ports/leveldb/portfile.cmake b/ports/leveldb/portfile.cmake
index 8a32c8392..387cfd96e 100644
--- a/ports/leveldb/portfile.cmake
+++ b/ports/leveldb/portfile.cmake
@@ -1,8 +1,6 @@
include(vcpkg_common_functions)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- message(FATAL_ERROR "leveldb doesn't currently support dynamic buildsas there are no export symbols defined.")
-endif()
+set(VCPKG_LIBRARY_LINKAGE static)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/leveldb-8b1cd3753b184341e837b30383832645135d3d73)
diff --git a/ports/libflac/CONTROL b/ports/libflac/CONTROL
index 2a0572d2a..ca2995d68 100644
--- a/ports/libflac/CONTROL
+++ b/ports/libflac/CONTROL
@@ -1,4 +1,4 @@
Source: libflac
-Version: 1.3.2-3
+Version: 1.3.2-4
Description: Library for manipulating FLAC files
Build-Depends: libogg
diff --git a/ports/libflac/portfile.cmake b/ports/libflac/portfile.cmake
index cbf7d6fd3..236f51c8e 100644
--- a/ports/libflac/portfile.cmake
+++ b/ports/libflac/portfile.cmake
@@ -1,8 +1,3 @@
- # libFLAC uses winapi functions not available in WindowsStore
-if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
- message(FATAL_ERROR "Error: UWP builds are currently not supported.")
-endif()
-
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/flac-1.3.2)
vcpkg_download_distfile(ARCHIVE
@@ -12,6 +7,13 @@ vcpkg_download_distfile(ARCHIVE
vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_apply_patches(
+ SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/flac-1.3.2
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/uwp-library-console.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/uwp-createfile2.patch"
+)
+
if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
vcpkg_find_acquire_program(NASM)
get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
diff --git a/ports/libflac/uwp-createfile2.patch b/ports/libflac/uwp-createfile2.patch
new file mode 100644
index 000000000..cfb343990
--- /dev/null
+++ b/ports/libflac/uwp-createfile2.patch
@@ -0,0 +1,38 @@
+diff --git a/src/libFLAC/windows_unicode_filenames.c b/src/libFLAC/windows_unicode_filenames.c
+index 2404e31..d320bf5 100644
+--- a/src/libFLAC/windows_unicode_filenames.c
++++ b/src/libFLAC/windows_unicode_filenames.c
+@@ -185,6 +185,27 @@ int flac_internal_rename_utf8(const char *oldname, const char *newname)
+
+ HANDLE WINAPI flac_internal_CreateFile_utf8(const char *lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
+ {
++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
++ HANDLE handle = INVALID_HANDLE_VALUE;
++
++ if (!utf8_filenames)
++ return handle;
++
++ wchar_t *wname;
++
++ if ((wname = wchar_from_utf8(lpFileName)) != NULL)
++ {
++ CREATEFILE2_EXTENDED_PARAMETERS cfParams = {0};
++ cfParams.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
++ cfParams.dwFileAttributes = dwFlagsAndAttributes & FILE_ATTRIBUTE_NORMAL;
++ cfParams.lpSecurityAttributes = lpSecurityAttributes;
++ cfParams.hTemplateFile = hTemplateFile;
++ handle = CreateFile2(wname, dwDesiredAccess, dwShareMode, dwCreationDisposition, &cfParams);
++ free(wname);
++ }
++
++ return handle;
++#else
+ if (!utf8_filenames) {
+ return CreateFileA(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
+ } else {
+@@ -198,4 +219,5 @@ HANDLE WINAPI flac_internal_CreateFile_utf8(const char *lpFileName, DWORD dwDesi
+
+ return handle;
+ }
++#endif
+ }
diff --git a/ports/libflac/uwp-library-console.patch b/ports/libflac/uwp-library-console.patch
new file mode 100644
index 000000000..bba2422c3
--- /dev/null
+++ b/ports/libflac/uwp-library-console.patch
@@ -0,0 +1,53 @@
+diff --git a/src/share/win_utf8_io/win_utf8_io.c b/src/share/win_utf8_io/win_utf8_io.c
+index c61d27f..0870054 100644
+--- a/src/share/win_utf8_io/win_utf8_io.c
++++ b/src/share/win_utf8_io/win_utf8_io.c
+@@ -110,7 +110,11 @@ int get_utf8_argv(int *argc, char ***argv)
+ char **utf8argv;
+ int ret, i;
+
++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
++ if ((handle = LoadPackagedLibrary("msvcrt.dll", 0)) == NULL) return 1;
++#else
+ if ((handle = LoadLibrary("msvcrt.dll")) == NULL) return 1;
++#endif
+ if ((wgetmainargs = (wgetmainargs_t)GetProcAddress(handle, "__wgetmainargs")) == NULL) {
+ FreeLibrary(handle);
+ return 1;
+@@ -163,6 +167,9 @@ size_t strlen_utf8(const char *str)
+ /* get the console width in characters */
+ int win_get_console_width(void)
+ {
++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
++ return 80;
++#else
+ int width = 80;
+ CONSOLE_SCREEN_BUFFER_INFO csbi;
+ HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
+@@ -170,6 +177,7 @@ int win_get_console_width(void)
+ if (GetConsoleScreenBufferInfo(hOut, &csbi) != 0)
+ width = csbi.dwSize.X;
+ return width;
++#endif
+ }
+
+ /* print functions */
+@@ -179,6 +187,10 @@ static int wprint_console(FILE *stream, const wchar_t *text, size_t len)
+ DWORD out;
+ int ret;
+
++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
++ // disabled for UWP as there's no alternative:
++ // https://docs.microsoft.com/en-us/uwp/win32-and-com/alternatives-to-windows-apis-uwp
++#else
+ do {
+ if (stream == stdout) {
+ HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
+@@ -197,6 +209,7 @@ static int wprint_console(FILE *stream, const wchar_t *text, size_t len)
+ return out;
+ }
+ } while(0);
++#endif
+
+ ret = fputws(text, stream);
+ if (ret < 0)
diff --git a/ports/libiconv/0002-Config-for-MSVC.patch b/ports/libiconv/0002-Config-for-MSVC.patch
index 8ce2f683f..0c90e50ef 100644
--- a/ports/libiconv/0002-Config-for-MSVC.patch
+++ b/ports/libiconv/0002-Config-for-MSVC.patch
@@ -1,57 +1,3 @@
-diff --git "a/config.h.in" "b/config.h.in"
-index 207e487..56501ed 100644
---- "a/config.h.in"
-+++ "b/config.h.in"
-@@ -27,7 +27,7 @@
- #undef DOUBLE_SLASH_IS_DISTINCT_ROOT
-
- /* Define as good substitute value for EILSEQ. */
--#undef EILSEQ
-+//#undef EILSEQ
-
- /* Define to 1 to enable a few rarely used encodings. */
- #undef ENABLE_EXTRA
-@@ -207,10 +207,10 @@
- #undef HAVE_MACH_O_DYLD_H
-
- /* Define to 1 if you have the `mbrtowc' function. */
--#undef HAVE_MBRTOWC
-+#define HAVE_MBRTOWC 1
-
- /* Define to 1 if you have the `mbsinit' function. */
--#undef HAVE_MBSINIT
-+#define HAVE_MBSINIT 1
-
- /* Define to 1 if <wchar.h> declares mbstate_t. */
- #undef HAVE_MBSTATE_T
-@@ -665,7 +665,7 @@
- #undef HAVE_WCHAR_T
-
- /* Define to 1 if you have the `wcrtomb' function. */
--#undef HAVE_WCRTOMB
-+#define HAVE_WCRTOMB 1
-
- /* Define to 1 if you have the <winsock2.h> header file. */
- #undef HAVE_WINSOCK2_H
-@@ -683,7 +683,7 @@
- #undef HAVE__NSGETEXECUTABLEPATH
-
- /* Define as const if the declaration of iconv() needs const. */
--#undef ICONV_CONST
-+#define ICONV_CONST const
-
- /* Define to the value of ${prefix}, as a string. */
- #undef INSTALLPREFIX
-@@ -787,7 +787,7 @@
- #undef WINT_T_SUFFIX
-
- /* Define if the machine's byte ordering is little endian. */
--#undef WORDS_LITTLEENDIAN
-+#define WORDS_LITTLEENDIAN 1
-
- /* Define to 1 if on MINIX. */
- #undef _MINIX
-
diff --git "a/lib/loop_wchar.h" "b/lib/loop_wchar.h"
index 6dc011b..158ccdd 100644
--- "a/lib/loop_wchar.h"
diff --git a/ports/libiconv/CMakeLists.txt b/ports/libiconv/CMakeLists.txt
index 0d2a2a4d3..be42843e3 100644
--- a/ports/libiconv/CMakeLists.txt
+++ b/ports/libiconv/CMakeLists.txt
@@ -1,20 +1,5 @@
-##
-## CMake support for libiconv
-## based on the work here: https://github.com/vovythevov/libiconv-cmake
-##
-
cmake_minimum_required(VERSION 3.0.0)
-project(Libiconv)
-
-#
-# Options
-#
-
-# Config file
-configure_file(
- ${Libiconv_SOURCE_DIR}/config.h.in
- ${Libiconv_BINARY_DIR}/config.h
-)
+project(libiconv C)
if(BUILD_SHARED_LIBS)
set(LIBICONV_DYNAMIC "1 /*LIBICONV_DYNAMIC*/")
@@ -26,59 +11,37 @@ set(USE_MBSTATE_T "0 /*USE_MBSTATE_T*/")
set(BROKEN_WCHAR_H "0 /*BROKEN_WCHAR_H*/")
set(HAVE_VISIBILITY "0 /*HAVE_VISIBILITY*/")
-include_directories(${Libiconv_SOURCE_DIR} ${Libiconv_BINARY_DIR})
-
-#
-# Build libcharset
-#
-set(libname libcharset)
-set(libcharset_source_dir ${Libiconv_SOURCE_DIR}/libcharset)
-
-add_definitions(-DLIBDIR)
-
-configure_file(
- ${Libiconv_SOURCE_DIR}/libcharset/include/localcharset.h.build.in
- ${Libiconv_BINARY_DIR}/localcharset.h
-)
-
-set(${libname}_sources
- ${libcharset_source_dir}/lib/localcharset.c
- ${Libiconv_BINARY_DIR}/localcharset.h
-)
+configure_file(config.h.in config.h)
+file(READ "${CMAKE_CURRENT_BINARY_DIR}/config.h" _contents)
+string(REPLACE "#undef HAVE_WORKING_O_NOFOLLOW" "#define HAVE_WORKING_O_NOFOLLOW 0" _contents "${_contents}")
+string(REPLACE "#undef HAVE_MBRTOWC" "#define HAVE_MBRTOWC 1" _contents "${_contents}")
+string(REPLACE "#undef HAVE_MBSINIT" "#define HAVE_MBSINIT 1" _contents "${_contents}")
+string(REPLACE "#undef HAVE_WCRTOMB" "#define HAVE_WCRTOMB 1" _contents "${_contents}")
+string(REPLACE "#undef ICONV_CONST" "#define ICONV_CONST const" _contents "${_contents}")
+string(REPLACE "#undef EILSEQ" "" _contents "${_contents}")
+string(REPLACE "#undef WORDS_LITTLEENDIAN" "#define WORDS_LITTLEENDIAN 1" _contents "${_contents}")
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config.h" "${_contents}")
-add_library(${libname} ${${libname}_sources})
-list(APPEND Libiconv_TARGETS ${libname})
-list(APPEND Libiconv_headers ${Libiconv_BINARY_DIR}/localcharset.h)
+configure_file(libcharset/include/localcharset.h.build.in localcharset.h)
+configure_file(include/iconv.h.build.in iconv.h)
-#
-# Build libiconv
-#
-set(libname libiconv)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
-add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+add_definitions(-DLIBDIR -D_CRT_SECURE_NO_WARNINGS)
-configure_file(
- ${Libiconv_SOURCE_DIR}/include/iconv.h.build.in
- ${Libiconv_BINARY_DIR}/iconv.h
- )
+add_library(libcharset libcharset/lib/localcharset.c)
-set(${libname}_sources
- ${Libiconv_SOURCE_DIR}/lib/iconv.c
- ${Libiconv_BINARY_DIR}/iconv.h
-)
-
-add_library(${libname} ${${libname}_sources})
-target_link_libraries(${libname} libcharset)
-list(APPEND Libiconv_TARGETS ${libname})
-list(APPEND Libiconv_headers ${Libiconv_BINARY_DIR}/iconv.h)
+add_library(libiconv lib/iconv.c)
+target_link_libraries(libiconv libcharset)
-#
-# Export targets
-#
-install(TARGETS ${Libiconv_TARGETS}
+install(TARGETS libcharset libiconv
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
-install(FILES ${Libiconv_headers} DESTINATION include)
+install(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/iconv.h
+ ${CMAKE_CURRENT_BINARY_DIR}/localcharset.h
+ DESTINATION include
+)
diff --git a/ports/libiconv/CONTROL b/ports/libiconv/CONTROL
index 851c8dd01..980763980 100644
--- a/ports/libiconv/CONTROL
+++ b/ports/libiconv/CONTROL
@@ -1,3 +1,3 @@
Source: libiconv
-Version: 1.14-1
+Version: 1.15
Description: GNU Unicode text conversion
diff --git a/ports/libiconv/portfile.cmake b/ports/libiconv/portfile.cmake
index 46bd2f9e9..a79d7c074 100644
--- a/ports/libiconv/portfile.cmake
+++ b/ports/libiconv/portfile.cmake
@@ -1,9 +1,9 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libiconv-1.14)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libiconv-1.15)
vcpkg_download_distfile(ARCHIVE
- URLS "https://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz"
- FILENAME "libiconv-1.14.tar.gz"
- SHA512 b96774fefc4fa1d07948fcc667027701373c34ebf9c4101000428e048addd85a5bb5e05e59f80eb783a3054a3a8a3c0da909450053275bbbf3ffde511eb3f387
+ URLS "https://ftp.gnu.org/gnu/libiconv/libiconv-1.15.tar.gz"
+ FILENAME "libiconv-1.15.tar.gz"
+ SHA512 1233fe3ca09341b53354fd4bfe342a7589181145a1232c9919583a8c9979636855839049f3406f253a9d9829908816bb71fd6d34dd544ba290d6f04251376b1a
)
vcpkg_extract_source_archive(${ARCHIVE})
@@ -19,6 +19,7 @@ vcpkg_apply_patches(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
)
vcpkg_install_cmake()
diff --git a/ports/libkml/CONTROL b/ports/libkml/CONTROL
index bc054e036..b5ea568c7 100644
--- a/ports/libkml/CONTROL
+++ b/ports/libkml/CONTROL
@@ -1,4 +1,4 @@
Source: libkml
-Version: 1.3.0-1
+Version: 1.3.0-2
Description: Reference implementation of OGC KML 2.2
-Build-Depends: zlib, boost, expat, minizip, uriparser
+Build-Depends: zlib, expat, minizip, uriparser, boost-smart-ptr
diff --git a/ports/libkml/portfile.cmake b/ports/libkml/portfile.cmake
index cb07e271f..b2e846d3c 100644
--- a/ports/libkml/portfile.cmake
+++ b/ports/libkml/portfile.cmake
@@ -13,6 +13,7 @@ vcpkg_apply_patches(
"${CMAKE_CURRENT_LIST_DIR}/patch_empty_literal_on_vc.patch"
)
+file(REMOVE ${SOURCE_PATH}/cmake/External_boost.cmake)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
diff --git a/ports/liblzma/portfile.cmake b/ports/liblzma/portfile.cmake
index 6185815f4..be7e494ad 100644
--- a/ports/liblzma/portfile.cmake
+++ b/ports/liblzma/portfile.cmake
@@ -1,3 +1,6 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/xz-5.2.3)
diff --git a/ports/libmspack/CMakeLists.txt b/ports/libmspack/CMakeLists.txt
new file mode 100644
index 000000000..4591d3e04
--- /dev/null
+++ b/ports/libmspack/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 3.8)
+
+project(libmspack C)
+
+set(CMAKE_DEBUG_POSTFIX "d")
+
+add_definitions(-DHAVE_CONFIG_H)
+
+if(MSVC)
+ add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
+ add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
+endif()
+
+# List the source files
+set(LIB_SRC mspack/cabc.c
+ mspack/cabd.c
+ mspack/chmc.c
+ mspack/chmd.c
+ mspack/crc32.c
+ mspack/hlpc.c
+ mspack/hlpd.c
+ mspack/kwajc.c
+ mspack/kwajd.c
+ mspack/litc.c
+ mspack/litd.c
+ mspack/lzssd.c
+ mspack/lzxc.c
+ mspack/lzxd.c
+ mspack/mszipc.c
+ mspack/mszipd.c
+ mspack/oabc.c
+ mspack/oabd.c
+ mspack/qtmd.c
+ mspack/system.c
+ mspack/szddc.c
+ mspack/szddd.c
+)
+
+if(BUILD_SHARED_LIBS)
+ set(LIB_DEF libmspack.def)
+endif()
+
+add_library(libmspack ${LIB_SRC} ${LIB_DEF})
+
+target_include_directories(libmspack PRIVATE . ./mspack)
+
+install(TARGETS libmspack
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
+install(FILES mspack/mspack.h DESTINATION include)
diff --git a/ports/libmspack/CONTROL b/ports/libmspack/CONTROL
new file mode 100644
index 000000000..b881f614f
--- /dev/null
+++ b/ports/libmspack/CONTROL
@@ -0,0 +1,4 @@
+Source: libmspack
+Version: 0.6
+Build-Depends:
+Description: libmspack is a portable library for some loosely related Microsoft compression formats.
diff --git a/ports/libmspack/config.h b/ports/libmspack/config.h
new file mode 100644
index 000000000..ebe95831c
--- /dev/null
+++ b/ports/libmspack/config.h
@@ -0,0 +1,8 @@
+#define HAVE_LIMITS_H 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_STRING_H 1
+#define HAVE_CTYPE_H 1
+
+#define HAVE_MEMCMP 1
+#define HAVE_TOWLOWER 1
+#define HAVE_TOLOWER 1
diff --git a/ports/libmspack/libmspack.def b/ports/libmspack/libmspack.def
new file mode 100644
index 000000000..6a1a43d75
--- /dev/null
+++ b/ports/libmspack/libmspack.def
@@ -0,0 +1,32 @@
+EXPORTS
+
+mspack_create_cab_compressor
+mspack_create_chm_compressor
+mspack_create_lit_compressor
+mspack_create_hlp_compressor
+mspack_create_szdd_compressor
+mspack_create_kwaj_compressor
+mspack_create_oab_compressor
+
+mspack_create_cab_decompressor
+mspack_create_chm_decompressor
+mspack_create_lit_decompressor
+mspack_create_hlp_decompressor
+mspack_create_szdd_decompressor
+mspack_create_kwaj_decompressor
+mspack_create_oab_decompressor
+
+mspack_destroy_cab_compressor
+mspack_destroy_cab_decompressor
+mspack_destroy_chm_compressor
+mspack_destroy_chm_decompressor
+mspack_destroy_lit_compressor
+mspack_destroy_lit_decompressor
+mspack_destroy_hlp_compressor
+mspack_destroy_hlp_decompressor
+mspack_destroy_szdd_compressor
+mspack_destroy_szdd_decompressor
+mspack_destroy_kwaj_compressor
+mspack_destroy_kwaj_decompressor
+mspack_destroy_oab_compressor
+mspack_destroy_oab_decompressor
diff --git a/ports/libmspack/portfile.cmake b/ports/libmspack/portfile.cmake
new file mode 100644
index 000000000..fe75e2edd
--- /dev/null
+++ b/ports/libmspack/portfile.cmake
@@ -0,0 +1,30 @@
+include(vcpkg_common_functions)
+
+set(LIB_NAME libmspack)
+set(LIB_VERSION 0.6alpha)
+set(LIB_FILENAME ${LIB_NAME}-${LIB_VERSION}.tar.gz)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION})
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://www.cabextract.org.uk/libmspack/${LIB_FILENAME}"
+ FILENAME "${LIB_FILENAME}"
+ SHA512 7ba4a584d335c2d703628a3c179bc0d323574632357cdfe04622f960dcc4ef970b5739799397b6802d44a312f7ed9d589b4be223facf044bbfdbfd76d9c7405d
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/libmspack.def DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# License and man
+file(INSTALL ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/${LIB_NAME} RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/libmupdf/CMakeLists.txt b/ports/libmupdf/CMakeLists.txt
new file mode 100644
index 000000000..827f2de5d
--- /dev/null
+++ b/ports/libmupdf/CMakeLists.txt
@@ -0,0 +1,43 @@
+cmake_minimum_required(VERSION 3.9)
+project(libmupdf C)
+
+set(CMAKE_DEBUG_POSTFIX d)
+
+if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/include/mupdf/pdf/name-table.h")
+ execute_process(
+ COMMAND "cmd.exe" "/c" "platform\\win32\\generate.bat"
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ )
+endif()
+
+find_package(freetype NO_MODULE REQUIRED)
+find_package(JPEG REQUIRED)
+find_path(HARFBUZZ_INCLUDE hb.h PATH_SUFFIXES harfbuzz)
+find_library(HARFBUZZ_LIBRARIES harfbuzz)
+
+file(GLOB_RECURSE SOURCES "source/*.c")
+list(FILTER SOURCES EXCLUDE REGEX "source/tools/[a-z]*\\.c$")
+add_library(libmupdf ${SOURCES})
+
+target_compile_definitions(libmupdf PRIVATE -DZ_SOLO)
+target_include_directories(libmupdf PRIVATE
+ include
+ generated
+ thirdparty/jbig2dec
+ thirdparty/libjpeg
+ thirdparty/mujs
+ thirdparty/openjpeg/src/lib/openjp2
+ ${JPEG_INCLUDE_DIR}
+ ${HARFBUZZ_INCLUDE}
+)
+target_link_libraries(libmupdf PRIVATE
+ freetype
+ ${JPEG_LIBRARIES}
+ ${HARFBUZZ_LIBRARIES}
+)
+
+install(TARGETS libmupdf
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
diff --git a/ports/libmupdf/CONTROL b/ports/libmupdf/CONTROL
new file mode 100644
index 000000000..ed61402d7
--- /dev/null
+++ b/ports/libmupdf/CONTROL
@@ -0,0 +1,4 @@
+Source: libmupdf
+Version: 1.11-1
+Build-Depends: freetype, libjpeg-turbo, harfbuzz, zlib, curl, glfw3
+Description: a lightweight PDF, XPS, and E-book library
diff --git a/ports/libmupdf/portfile.cmake b/ports/libmupdf/portfile.cmake
new file mode 100644
index 000000000..df4997a70
--- /dev/null
+++ b/ports/libmupdf/portfile.cmake
@@ -0,0 +1,30 @@
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message(STATUS "Warning: Dynamic building not supported. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mupdf-1.11-source)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://mupdf.com/downloads/mupdf-1.11-source.tar.gz"
+ FILENAME "mupdf.tar.gz"
+ SHA512 501670f540e298a8126806ebbd9db8b29866f663b7bbf26c9ade1933e42f0c00ad410b9d93f3ddbfb3e45c38722869095de28d832fe3fb3703c55cc9a01dbf63
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH "${SOURCE_PATH}"
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(COPY ${SOURCE_PATH}/include/mupdf DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+vcpkg_copy_pdbs()
+
+#copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYRIGHT)
diff --git a/ports/libpng/portfile.cmake b/ports/libpng/portfile.cmake
index c2067ff9b..4273846e9 100644
--- a/ports/libpng/portfile.cmake
+++ b/ports/libpng/portfile.cmake
@@ -22,13 +22,6 @@ else()
set(PNG_SHARED_LIBS OFF)
endif()
-# Libpng's cmake uses if(${CMAKE_SYSTEM_PROCESSOR} ....) which performs double-evaluation and breaks if the variable is not defined.
-if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64)
- set(CMAKE_SYSTEM_PROCESSOR AMD64)
-else()
- set(CMAKE_SYSTEM_PROCESSOR ${VCPKG_TARGET_ARCHITECTURE})
-endif()
-
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
@@ -39,7 +32,6 @@ vcpkg_configure_cmake(
-DSKIP_INSTALL_PROGRAMS=ON
-DSKIP_INSTALL_EXECUTABLES=ON
-DSKIP_INSTALL_FILES=ON
- -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}
OPTIONS_DEBUG
-DSKIP_INSTALL_HEADERS=ON
)
diff --git a/ports/libqrencode/CONTROL b/ports/libqrencode/CONTROL
new file mode 100644
index 000000000..0e96c99a9
--- /dev/null
+++ b/ports/libqrencode/CONTROL
@@ -0,0 +1,4 @@
+Source: libqrencode
+Version: 4.0.0-1
+Build-Depends: libpng, libiconv
+Description: libqrencode - a fast and compact QR Code encoding library
diff --git a/ports/libqrencode/portfile.cmake b/ports/libqrencode/portfile.cmake
new file mode 100644
index 000000000..ff0c2302b
--- /dev/null
+++ b/ports/libqrencode/portfile.cmake
@@ -0,0 +1,47 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO fukuchi/libqrencode
+ REF v4.0.0
+ SHA512 0e4855c7983d4c73eb4a7f9cb081679547957c9f4a30cb943f2ae25e3a6496a202d3489f46e248386499d05a68c6a36e24f64af57ef4d6f447ef3a39e08374ee
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/remove-deprecated-attribute.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DWITH_TOOLS=NO
+ -DWITH_TEST=NO
+ -DSKIP_INSTALL_PROGRAMS=ON
+ -DSKIP_INSTALL_EXECUTABLES=ON
+ -DSKIP_INSTALL_FILES=ON
+ OPTIONS_DEBUG
+ -DSKIP_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/qrencode.dll)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/qrencode.dll ${CURRENT_PACKAGES_DIR}/bin/qrencode.dll)
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/qrencoded.dll)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/qrencoded.dll ${CURRENT_PACKAGES_DIR}/debug/bin/qrencoded.dll)
+endif()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(COPY ${CURRENT_BUILDTREES_DIR}/src/libqrencode-4.0.0/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libqrencode)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libqrencode/COPYING ${CURRENT_PACKAGES_DIR}/share/libqrencode/copyright)
+
+vcpkg_copy_pdbs()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/libqrencode/remove-deprecated-attribute.patch b/ports/libqrencode/remove-deprecated-attribute.patch
new file mode 100644
index 000000000..1a00c3a3b
--- /dev/null
+++ b/ports/libqrencode/remove-deprecated-attribute.patch
@@ -0,0 +1,16 @@
+ qrencode.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/qrencode.h b/qrencode.h
+index b855f0a..a6d4a29 100644
+--- a/qrencode.h
++++ b/qrencode.h
+@@ -555,7 +555,7 @@ extern char *QRcode_APIVersionString(void);
+ /**
+ * @deprecated
+ */
+-extern void QRcode_clearCache(void) __attribute__ ((deprecated));
++extern void QRcode_clearCache(void);
+
+ #if defined(__cplusplus)
+ }
diff --git a/ports/libqrencode/usage b/ports/libqrencode/usage
new file mode 100644
index 000000000..f6003f4e3
--- /dev/null
+++ b/ports/libqrencode/usage
@@ -0,0 +1,10 @@
+To use libqrencode library in CMakeLists.txt:
+
+ find_path(QRENCODE_INCLUDE_DIR NAMES qrencode.h)
+ find_library(QRENCODE_LIBRARY_RELEASE qrencode)
+ find_library(QRENCODE_LIBRARY_DEBUG qrencoded)
+ set(QRENCODE_LIBRARIES optimized ${QRENCODE_LIBRARY_RELEASE} debug ${QRENCODE_LIBRARY_DEBUG})
+
+ add_executable(main main.cpp)
+ target_include_directories(main PRIVATE ${QRENCODE_INCLUDE_DIR})
+ target_link_libraries(main PRIVATE ${QRENCODE_LIBRARIES})
diff --git a/ports/libsndfile/CONTROL b/ports/libsndfile/CONTROL
index 67e058991..70be2ab6c 100644
--- a/ports/libsndfile/CONTROL
+++ b/ports/libsndfile/CONTROL
@@ -1,4 +1,4 @@
Source: libsndfile
-Version: 1.0.29-6830c42-1
+Version: 1.0.29-6830c42-2
Description: Library to read, write and manipulate many soundfile types. Authored by Eric de Castro Lopo
Build-Depends: libogg, libflac, libvorbis
diff --git a/ports/libsndfile/portfile.cmake b/ports/libsndfile/portfile.cmake
index ac07f96a0..daa7de3ae 100644
--- a/ports/libsndfile/portfile.cmake
+++ b/ports/libsndfile/portfile.cmake
@@ -19,6 +19,13 @@ vcpkg_download_distfile(ARCHIVE
)
vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_apply_patches(
+ SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libsndfile-6830c421899e32f8d413a903a21a9b6cf384d369
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/uwp-createfile-getfilesize.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/uwp-createfile-getfilesize-addendum.patch"
+)
+
if (VCPKG_CRT_LINKAGE STREQUAL "dynamic")
set(CRT_LIB_STATIC 0)
elseif (VCPKG_CRT_LINKAGE STREQUAL "static")
diff --git a/ports/libsndfile/uwp-createfile-getfilesize-addendum.patch b/ports/libsndfile/uwp-createfile-getfilesize-addendum.patch
new file mode 100644
index 000000000..62e6b1131
--- /dev/null
+++ b/ports/libsndfile/uwp-createfile-getfilesize-addendum.patch
@@ -0,0 +1,13 @@
+diff --git a/src/file_io.c b/src/file_io.c
+index 47351bc..54741c9 100644
+--- a/src/file_io.c
++++ b/src/file_io.c
+@@ -799,6 +799,8 @@ psf_open_handle (PSF_FILE * pfile)
+
+ if (handle == INVALID_HANDLE_VALUE)
+ return NULL;
++
++ return handle;
+ #else
+ if (pfile->use_wchar)
+ handle = CreateFileW (
diff --git a/ports/libsndfile/uwp-createfile-getfilesize.patch b/ports/libsndfile/uwp-createfile-getfilesize.patch
new file mode 100644
index 000000000..0e60cde54
--- /dev/null
+++ b/ports/libsndfile/uwp-createfile-getfilesize.patch
@@ -0,0 +1,58 @@
+diff --git a/src/file_io.c b/src/file_io.c
+index 7cf8f0c..47351bc 100644
+--- a/src/file_io.c
++++ b/src/file_io.c
+@@ -787,6 +787,19 @@ psf_open_handle (PSF_FILE * pfile)
+ return NULL ;
+ } ;
+
++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
++ if (!pfile->use_wchar)
++ return NULL;
++
++ CREATEFILE2_EXTENDED_PARAMETERS cfParams = {0};
++ cfParams.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
++ cfParams.dwFileAttributes = FILE_ATTRIBUTE_NORMAL;
++
++ handle = CreateFile2(pfile->path.wc, dwDesiredAccess, dwShareMode, dwCreationDistribution, &cfParams);
++
++ if (handle == INVALID_HANDLE_VALUE)
++ return NULL;
++#else
+ if (pfile->use_wchar)
+ handle = CreateFileW (
+ pfile->path.wc, /* pointer to name of the file */
+@@ -812,6 +825,7 @@ psf_open_handle (PSF_FILE * pfile)
+ return NULL ;
+
+ return handle ;
++#endif
+ } /* psf_open_handle */
+
+ /* USE_WINDOWS_API */ static void
+@@ -1104,7 +1118,16 @@ psf_is_pipe (SF_PRIVATE *psf)
+
+ /* USE_WINDOWS_API */ sf_count_t
+ psf_get_filelen_handle (HANDLE handle)
+-{ sf_count_t filelen ;
++{
++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
++ LARGE_INTEGER size;
++
++ if (!GetFileSizeEx(handle, &size) && GetLastError() != NO_ERROR)
++ return (sf_count_t) -1 ;
++
++ return size.QuadPart;
++#else
++ sf_count_t filelen ;
+ DWORD dwFileSizeLow, dwFileSizeHigh, dwError = NO_ERROR ;
+
+ dwFileSizeLow = GetFileSize (handle, &dwFileSizeHigh) ;
+@@ -1118,6 +1141,7 @@ psf_get_filelen_handle (HANDLE handle)
+ filelen = dwFileSizeLow + ((__int64) dwFileSizeHigh << 32) ;
+
+ return filelen ;
++#endif
+ } /* psf_get_filelen_handle */
+
+ /* USE_WINDOWS_API */ void
diff --git a/ports/libsodium/CONTROL b/ports/libsodium/CONTROL
index 185718572..4048a6a1f 100644
--- a/ports/libsodium/CONTROL
+++ b/ports/libsodium/CONTROL
@@ -1,3 +1,3 @@
Source: libsodium
-Version: 1.0.15
+Version: 1.0.15-1
Description: A modern and easy-to-use crypto library
diff --git a/ports/libsodium/disable-tests.patch b/ports/libsodium/disable-tests.patch
new file mode 100644
index 000000000..24bcc1d83
--- /dev/null
+++ b/ports/libsodium/disable-tests.patch
@@ -0,0 +1,16 @@
+diff --git a/msvc-scripts/sodium.props b/msvc-scripts/sodium.props
+index 41e1e47..3126455 100644
+--- a/msvc-scripts/sodium.props
++++ b/msvc-scripts/sodium.props
+@@ -17,9 +17,9 @@
+ <PreBuildEvent>
+ <Message>Process .in files</Message>
+ </PreBuildEvent>
+- <PostBuildEvent>
++ <!-- <PostBuildEvent>
+ <Command>"$(SolutionDir)/test/default/wintest.bat" $(Configuration) $(Platform)</Command>
+- </PostBuildEvent>
++ </PostBuildEvent> -->
+ <PostBuildEvent>
+ <Message>Run the test suite</Message>
+ </PostBuildEvent>
diff --git a/ports/libsodium/portfile.cmake b/ports/libsodium/portfile.cmake
index 4e6cd6be7..4a2ed3d77 100644
--- a/ports/libsodium/portfile.cmake
+++ b/ports/libsodium/portfile.cmake
@@ -10,6 +10,12 @@ vcpkg_from_github(
HEAD_REF master
)
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/disable-tests.patch
+)
+
if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
set(LIBSODIUM_RELEASE_CONFIGURATION ReleaseDLL)
set(LIBSODIUM_DEBUG_CONFIGURATION DebugDLL)
@@ -37,19 +43,22 @@ file(INSTALL
DESTINATION ${CURRENT_PACKAGES_DIR}/include/sodium
)
-file(INSTALL
- ${SOURCE_PATH}/Build/${LIBSODIUM_RELEASE_CONFIGURATION}/${BUILD_ARCH}/libsodium.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin
-)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ file(INSTALL
+ ${SOURCE_PATH}/Build/${LIBSODIUM_RELEASE_CONFIGURATION}/${BUILD_ARCH}/libsodium.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/Build/${LIBSODIUM_DEBUG_CONFIGURATION}/${BUILD_ARCH}/libsodium.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ )
+endif()
+
file(INSTALL
${SOURCE_PATH}/Build/${LIBSODIUM_RELEASE_CONFIGURATION}/${BUILD_ARCH}/libsodium.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib
)
file(INSTALL
- ${SOURCE_PATH}/Build/${LIBSODIUM_DEBUG_CONFIGURATION}/${BUILD_ARCH}/libsodium.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
-)
-file(INSTALL
${SOURCE_PATH}/Build/${LIBSODIUM_DEBUG_CONFIGURATION}/${BUILD_ARCH}/libsodium.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
)
diff --git a/ports/libssh2/CONTROL b/ports/libssh2/CONTROL
index 5c68d2693..d050bf838 100644
--- a/ports/libssh2/CONTROL
+++ b/ports/libssh2/CONTROL
@@ -1,4 +1,4 @@
Source: libssh2
-Version: 1.8.0-2
+Version: 1.8.0-3
Build-Depends: zlib, openssl
Description: The SSH library
diff --git a/ports/libssh2/portfile.cmake b/ports/libssh2/portfile.cmake
index 2e3ee5009..9e5e5c025 100644
--- a/ports/libssh2/portfile.cmake
+++ b/ports/libssh2/portfile.cmake
@@ -24,13 +24,13 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share)
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/libssh2)
+
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libssh2 RENAME copyright)
vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/libtorrent/CONTROL b/ports/libtorrent/CONTROL
index f2618a4ef..f6dde66ee 100644
--- a/ports/libtorrent/CONTROL
+++ b/ports/libtorrent/CONTROL
@@ -1,4 +1,4 @@
Source: libtorrent
-Version: 1.1.4-1
+Version: 94f4e88e05f92a1
Description: An efficient feature complete C++ BitTorrent implementation
-Build-Depends: boost, openssl
+Build-Depends: openssl, boost-system, boost-date-time, boost-chrono, boost-random, boost-asio, boost-crc, boost-config
diff --git a/ports/libtorrent/portfile.cmake b/ports/libtorrent/portfile.cmake
index 6eb49c0b4..3101bab29 100644
--- a/ports/libtorrent/portfile.cmake
+++ b/ports/libtorrent/portfile.cmake
@@ -1,37 +1,25 @@
-# Common Ambient Variables:
-# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
-# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
-# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT}
-# PORT = current port name (zlib, etc)
-# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc)
-# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic)
-# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic)
-# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
-# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm)
-#
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libtorrent-libtorrent-1_1_4)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/arvidn/libtorrent/archive/libtorrent-1_1_4.zip"
- FILENAME "libtorrent-1_1_4.zip"
- SHA512 fd3b875c9626721db9b3e719ce50deeb6f39a030df1e23dd421d0b142aac9c3bb7bee3a61f0c18bb30f85d4dd6131fe90d6138c09ba598f09230824f8d5a3fb1
-)
-vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO arvidn/libtorrent
+ REF 94f4e88e05f92a1b07551598a4bedb2c16af0f2f
+ SHA512 1b4876a471a62813c97519ebf54fc06286b7ee43005e436c7139c6a6ac39fd40fefd5c9b7424e65509ec8deb95dfe1427544b686b6b9cd51cf3d3f133ba7a701
+ HEAD_REF master
+)
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES ${CMAKE_CURRENT_LIST_DIR}/add-datetime-to-boost-libs.patch
- PATCHES ${CMAKE_CURRENT_LIST_DIR}/add-dbghelp-to-win32-libs.patch
- PATCHES ${CMAKE_CURRENT_LIST_DIR}/vcpkg-boost-madness.patch
+ ${CMAKE_CURRENT_LIST_DIR}/add-dbghelp-to-win32-libs.patch
)
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- set(LIBTORRENT_SHARED ON)
-else()
- set(LIBTORRENT_SHARED OFF)
-endif()
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBTORRENT_SHARED)
+
+file(READ "${SOURCE_PATH}/include/libtorrent/export.hpp" _contents)
+string(REPLACE "<boost/config/select_compiler_config.hpp>" "<boost/config/detail/select_compiler_config.hpp>" _contents "${_contents}")
+string(REPLACE "<boost/config/select_platform_config.hpp>" "<boost/config/detail/select_platform_config.hpp>" _contents "${_contents}")
+file(WRITE "${SOURCE_PATH}/include/libtorrent/export.hpp" "${_contents}")
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
@@ -43,7 +31,7 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
# Put shared libraries into the proper directory
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
diff --git a/ports/libtorrent/vcpkg-boost-madness.patch b/ports/libtorrent/vcpkg-boost-madness.patch
deleted file mode 100644
index e9e498ee4..000000000
--- a/ports/libtorrent/vcpkg-boost-madness.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 99698a2..454bae6 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -252,7 +252,7 @@ else()
-
- set(Boost_USE_STATIC_RUNTIME ON)
- endif()
-- set(Boost_USE_STATIC_LIBS ON)
-+ set(Boost_USE_STATIC_LIBS OFF)
- add_library(torrent-rasterbar STATIC ${sources2})
- endif()
-
diff --git a/ports/libusb/libfreenect2.patch b/ports/libusb/libfreenect2.patch
new file mode 100644
index 000000000..2c2b859b0
--- /dev/null
+++ b/ports/libusb/libfreenect2.patch
@@ -0,0 +1,268 @@
+diff --git a/libusb/os/windows_winusb.c b/libusb/os/windows_winusb.c
+index 93668f3..7fdafd6 100644
+--- a/libusb/os/windows_winusb.c
++++ b/libusb/os/windows_winusb.c
+@@ -66,6 +66,7 @@ static int winusbx_claim_interface(int sub_api, struct libusb_device_handle *dev
+ static int winusbx_release_interface(int sub_api, struct libusb_device_handle *dev_handle, int iface);
+ static int winusbx_submit_control_transfer(int sub_api, struct usbi_transfer *itransfer);
+ static int winusbx_set_interface_altsetting(int sub_api, struct libusb_device_handle *dev_handle, int iface, int altsetting);
++static int winusbx_submit_iso_transfer(int sub_api, struct usbi_transfer *itransfer);
+ static int winusbx_submit_bulk_transfer(int sub_api, struct usbi_transfer *itransfer);
+ static int winusbx_clear_halt(int sub_api, struct libusb_device_handle *dev_handle, unsigned char endpoint);
+ static int winusbx_abort_transfers(int sub_api, struct usbi_transfer *itransfer);
+@@ -1901,6 +1902,10 @@ void windows_clear_transfer_priv(struct usbi_transfer *itransfer)
+
+ usbi_free_fd(&transfer_priv->pollable_fd);
+ safe_free(transfer_priv->hid_buffer);
++
++ //TODO this should occur during windows_free_transfer instead
++ safe_free(transfer_priv->iso_context);
++
+ // When auto claim is in use, attempt to release the auto-claimed interface
+ auto_release(itransfer);
+ }
+@@ -2274,7 +2279,7 @@ const struct windows_usb_api_backend usb_api_backend[USB_API_MAX] = {
+ winusbx_clear_halt,
+ winusbx_reset_device,
+ winusbx_submit_bulk_transfer,
+- unsupported_submit_iso_transfer,
++ winusbx_submit_iso_transfer,
+ winusbx_submit_control_transfer,
+ winusbx_abort_control,
+ winusbx_abort_transfers,
+@@ -2374,6 +2379,8 @@ static int winusbx_init(int sub_api, struct libusb_context *ctx)
+ WinUSBX_Set(SetPipePolicy);
+ WinUSBX_Set(SetPowerPolicy);
+ WinUSBX_Set(WritePipe);
++ WinUSBX_Set(IsoReadPipe);
++ WinUSBX_Set(IsoWritePipe);
+ if (!native_winusb)
+ WinUSBX_Set(ResetDevice);
+
+@@ -2803,6 +2810,100 @@ static int winusbx_set_interface_altsetting(int sub_api, struct libusb_device_ha
+ return LIBUSB_SUCCESS;
+ }
+
++static int winusbx_submit_iso_transfer(int sub_api, struct usbi_transfer *itransfer)
++{
++ struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer);
++ struct libusb_context *ctx = DEVICE_CTX(transfer->dev_handle->dev);
++ struct windows_transfer_priv *transfer_priv = (struct windows_transfer_priv*)usbi_transfer_get_os_priv(itransfer);
++ struct windows_device_handle_priv *handle_priv = _device_handle_priv(transfer->dev_handle);
++ struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev);
++ HANDLE winusb_handle;
++ bool ret;
++ int current_interface;
++ struct winfd wfd;
++ int i;
++ uint16_t maxPacketSize;
++ uint32_t offset;
++ size_t ctx_size;
++
++ CHECK_WINUSBX_AVAILABLE(sub_api);
++
++ if (sub_api != SUB_API_LIBUSBK && sub_api != SUB_API_LIBUSB0)
++ {
++ //iso only supported on libusbk-based backends
++ return unsupported_submit_iso_transfer(sub_api, itransfer);
++ };
++
++ transfer_priv->pollable_fd = INVALID_WINFD;
++
++ current_interface = interface_by_endpoint(priv, handle_priv, transfer->endpoint);
++ if (current_interface < 0) {
++ usbi_err(ctx, "unable to match endpoint to an open interface - cancelling transfer");
++ return LIBUSB_ERROR_NOT_FOUND;
++ }
++
++ usbi_dbg("matched endpoint %02X with interface %d", transfer->endpoint, current_interface);
++
++ winusb_handle = handle_priv->interface_handle[current_interface].api_handle;
++
++ wfd = usbi_create_fd(winusb_handle, IS_XFERIN(transfer) ? RW_READ : RW_WRITE, NULL, NULL);
++ // Always use the handle returned from usbi_create_fd (wfd.handle)
++ if (wfd.fd < 0) {
++ return LIBUSB_ERROR_NO_MEM;
++ }
++
++ ctx_size = sizeof(KISO_CONTEXT)+sizeof(KISO_PACKET)* transfer->num_iso_packets;
++ //Init the libusbk iso_context
++ if (!transfer_priv->iso_context)
++ {
++ transfer_priv->iso_context = (PKISO_CONTEXT)malloc(ctx_size);
++ if (!transfer_priv->iso_context)
++ {
++ //TODO does this return leak mem, or does the transfer get cleaned up?
++ return LIBUSB_ERROR_NO_MEM;
++ }
++ }
++ memset(transfer_priv->iso_context, 0, ctx_size);
++
++ //start ASAP
++ transfer_priv->iso_context->StartFrame = 0;
++ transfer_priv->iso_context->NumberOfPackets = transfer->num_iso_packets;
++
++ /* convert the transfer packet lengths to iso_packet offsets */
++ offset = 0;
++ for (i = 0; i < transfer->num_iso_packets; i++)
++ {
++ transfer_priv->iso_context->IsoPackets[i].offset = offset;
++ offset += transfer->iso_packet_desc[i].length;
++ }
++
++ if (IS_XFERIN(transfer)) {
++ usbi_dbg("reading %d iso packets", transfer->num_iso_packets);
++ ret = WinUSBX[sub_api].IsoReadPipe(wfd.handle, transfer->endpoint, transfer->buffer, transfer->length, wfd.overlapped, transfer_priv->iso_context);
++ }
++ else {
++ usbi_dbg("writing %d iso packets", transfer->num_iso_packets);
++ ret = WinUSBX[sub_api].IsoWritePipe(wfd.handle, transfer->endpoint, transfer->buffer, transfer->length, wfd.overlapped, transfer_priv->iso_context);
++ }
++
++ if (!ret) {
++ if (GetLastError() != ERROR_IO_PENDING) {
++ usbi_err(ctx, "IsoReadPipe/IsoWritePipe failed: %s", windows_error_str(0));
++ usbi_free_fd(&wfd);
++ return LIBUSB_ERROR_IO;
++ }
++ }
++ else {
++ wfd.overlapped->Internal = STATUS_COMPLETED_SYNCHRONOUSLY;
++ wfd.overlapped->InternalHigh = (DWORD)transfer->length;
++ }
++
++ transfer_priv->pollable_fd = wfd;
++ transfer_priv->interface_number = (uint8_t)current_interface;
++
++ return LIBUSB_SUCCESS;
++}
++
+ static int winusbx_submit_bulk_transfer(int sub_api, struct usbi_transfer *itransfer)
+ {
+ struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer);
+@@ -2989,7 +3090,36 @@ static int winusbx_reset_device(int sub_api, struct libusb_device_handle *dev_ha
+
+ static int winusbx_copy_transfer_data(int sub_api, struct usbi_transfer *itransfer, uint32_t io_size)
+ {
++ struct libusb_transfer *transfer = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer);
++ struct windows_transfer_priv *transfer_priv = (struct windows_transfer_priv*)usbi_transfer_get_os_priv(itransfer);
++ struct windows_device_priv *priv = _device_priv(transfer->dev_handle->dev);
++ int i;
++
++ CHECK_WINUSBX_AVAILABLE(sub_api);
++
++ if (transfer->type == LIBUSB_TRANSFER_TYPE_ISOCHRONOUS)
++ {
++ //for isochronous, need to copy the individual iso packet actual_lengths and statuses
++ if (sub_api == SUB_API_LIBUSBK || sub_api == SUB_API_LIBUSB0)
++ {
++ //iso only supported on libusbk-based backends for now
++
++ for (i = 0; i < transfer->num_iso_packets; i++)
++ {
++ transfer->iso_packet_desc[i].actual_length = transfer_priv->iso_context->IsoPackets[i].actual_length;
++ //TODO translate USDB_STATUS codes http://msdn.microsoft.com/en-us/library/ff539136(VS.85).aspx to libusb_transfer_status
++ //transfer->iso_packet_desc[i].status = transfer_priv->iso_context->IsoPackets[i].status;
++ }
++ }
++ else
++ {
++ //This should only occur if backend is not set correctly or other backend isoc is partially implemented
++ return unsupported_copy_transfer_data(sub_api, itransfer, io_size);
++ }
++ }
++
+ itransfer->transferred += io_size;
++
+ return LIBUSB_TRANSFER_COMPLETED;
+ }
+
+diff --git a/libusb/os/windows_winusb.h b/libusb/os/windows_winusb.h
+index 89ebc24..28a7e4f 100644
+--- a/libusb/os/windows_winusb.h
++++ b/libusb/os/windows_winusb.h
+@@ -154,6 +154,42 @@ struct libusb_hid_descriptor {
+ #define LIBUSB_REQ_IN(request_type) ((request_type) & LIBUSB_ENDPOINT_IN)
+ #define LIBUSB_REQ_OUT(request_type) (!LIBUSB_REQ_IN(request_type))
+
++
++/* start libusbk_shared.h definitions, must match libusbk_shared.h for isochronous support */
++
++//KISO_PACKET is equivalent of libusb_iso_packet_descriptor except uses absolute "offset" field instead of sequential Lengths
++typedef struct _KISO_PACKET
++{
++ UINT offset;
++ USHORT actual_length; //changed from libusbk_shared.h "Length" for clarity
++ USHORT status;
++
++} KISO_PACKET;
++
++typedef KISO_PACKET* PKISO_PACKET;
++
++typedef enum _KISO_FLAG
++{
++ KISO_FLAG_NONE = 0,
++ KISO_FLAG_SET_START_FRAME = 0x00000001,
++} KISO_FLAG;
++
++//KISO_CONTEXT is the conceptual equivalent of libusb_transfer except is isochronous-specific and must match libusbk's version
++typedef struct _KISO_CONTEXT
++{
++ KISO_FLAG Flags;
++ UINT StartFrame;
++ SHORT ErrorCount;
++ SHORT NumberOfPackets;
++ UINT UrbHdrStatus;
++ KISO_PACKET IsoPackets[0];
++
++} KISO_CONTEXT;
++
++typedef KISO_CONTEXT* PKISO_CONTEXT;
++
++/* end libusbk_shared.h definitions */
++
+ // The following are used for HID reports IOCTLs
+ #define HID_CTL_CODE(id) \
+ CTL_CODE (FILE_DEVICE_KEYBOARD, (id), METHOD_NEITHER, FILE_ANY_ACCESS)
+@@ -280,6 +316,8 @@ struct windows_transfer_priv {
+ uint8_t *hid_buffer; // 1 byte extended data buffer, required for HID
+ uint8_t *hid_dest; // transfer buffer destination, required for HID
+ size_t hid_expected_size;
++ /* Isoc */
++ PKISO_CONTEXT iso_context;
+ };
+
+ // used to match a device driver (including filter drivers) against a supported API
+@@ -623,6 +661,23 @@ typedef BOOL (WINAPI *WinUsb_ResetDevice_t)(
+ WINUSB_INTERFACE_HANDLE InterfaceHandle
+ );
+
++typedef BOOL(WINAPI *WinUsb_IsoReadPipe_t)(
++ WINUSB_INTERFACE_HANDLE InterfaceHandle,
++ UCHAR PipeID,
++ PUCHAR Buffer,
++ ULONG BufferLength,
++ LPOVERLAPPED Overlapped,
++ PKISO_CONTEXT IsoContext
++ );
++typedef BOOL(WINAPI *WinUsb_IsoWritePipe_t)(
++ WINUSB_INTERFACE_HANDLE InterfaceHandle,
++ UCHAR PipeID,
++ PUCHAR Buffer,
++ ULONG BufferLength,
++ LPOVERLAPPED Overlapped,
++ PKISO_CONTEXT IsoContext
++ );
++
+ /* /!\ These must match the ones from the official libusbk.h */
+ typedef enum _KUSB_FNID {
+ KUSB_FNID_Init,
+@@ -703,6 +758,8 @@ struct winusb_interface {
+ WinUsb_SetPowerPolicy_t SetPowerPolicy;
+ WinUsb_WritePipe_t WritePipe;
+ WinUsb_ResetDevice_t ResetDevice;
++ WinUsb_IsoReadPipe_t IsoReadPipe;
++ WinUsb_IsoWritePipe_t IsoWritePipe;
+ };
+
+ /* hid.dll interface */
diff --git a/ports/libusb/portfile.cmake b/ports/libusb/portfile.cmake
index 398fdcfd1..cd99405e6 100644
--- a/ports/libusb/portfile.cmake
+++ b/ports/libusb/portfile.cmake
@@ -16,6 +16,11 @@ vcpkg_from_github(
HEAD_REF master
)
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/libfreenect2.patch"
+)
+
if (TRIPLET_SYSTEM_ARCH MATCHES "x86")
set(MSBUILD_PLATFORM "Win32")
else ()
diff --git a/ports/libuv/CONTROL b/ports/libuv/CONTROL
index 256897afb..792b0b668 100644
--- a/ports/libuv/CONTROL
+++ b/ports/libuv/CONTROL
@@ -1,3 +1,3 @@
Source: libuv
-Version: 1.16.1
+Version: 1.18.0
Description: libuv is a multi-platform support library with a focus on asynchronous I/O.
diff --git a/ports/libuv/portfile.cmake b/ports/libuv/portfile.cmake
index e46dc9430..638012433 100644
--- a/ports/libuv/portfile.cmake
+++ b/ports/libuv/portfile.cmake
@@ -2,8 +2,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO libuv/libuv
- REF v1.16.1
- SHA512 e75c735467c5fc1681bee2b4f4ffae63116644309016d0f507b37643697ae8c85b3be7309288b1aca8fa11c6cb1dc1873962d1dc18fa3ed8cb66c8d2514c95e6
+ REF v1.18.0
+ SHA512 d1ef70b0f060f40cf57b282279d1d63d6dd019b4b811211b2252db32633a80af46290d201b4a4338f84b3efdfe9754a11b29bfa4a7636b06540b1a65e1fd4fbc
HEAD_REF v1.x)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
diff --git a/ports/libzip/CONTROL b/ports/libzip/CONTROL
index 045030e95..3ca61d39b 100644
--- a/ports/libzip/CONTROL
+++ b/ports/libzip/CONTROL
@@ -1,4 +1,4 @@
Source: libzip
-Version: 1.2.0-2
+Version: 1.3.2
Build-Depends: zlib
Description: A library for reading, creating, and modifying zip archives.
diff --git a/ports/libzip/enable-static.patch b/ports/libzip/enable-static.patch
index d95b90f3d..61c93b435 100644
--- a/ports/libzip/enable-static.patch
+++ b/ports/libzip/enable-static.patch
@@ -1,19 +1,25 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d443757..303dfe2 100644
+index deceb65..1283013 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -102,14 +102,20 @@ IF(MSVC)
- ADD_DEFINITIONS("-D_CRT_SECURE_NO_WARNINGS")
+@@ -113,6 +113,15 @@ ADD_DEFINITIONS("-D_CRT_SECURE_NO_WARNINGS")
+ ADD_DEFINITIONS("-D_CRT_NONSTDC_NO_DEPRECATE")
ENDIF(MSVC)
+OPTION(ENABLE_STATIC "Enable static builds" OFF)
+IF(ENABLE_STATIC)
++ set(BUILD_SHARED_LIBS OFF)
+ set(ZIP_EXTERN_OVERRIDE ON)
+ set(ZIP_EXTERN ON)
++ELSE(ENABLE_STATIC)
++ set(BUILD_SHARED_LIBS ON)
+ENDIF(ENABLE_STATIC)
+
ADD_DEFINITIONS("-DHAVE_CONFIG_H")
+ # rpath handling: use rpath in installed binaries
+@@ -121,10 +130,10 @@ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+
# Targets
ADD_SUBDIRECTORY(lib)
-ADD_SUBDIRECTORY(man)
@@ -25,10 +31,23 @@ index d443757..303dfe2 100644
+# ADD_SUBDIRECTORY(regress)
+# ADD_SUBDIRECTORY(examples)
- # TODO: pkgconfig file
+ # pkgconfig file
+ SET(prefix ${CMAKE_INSTALL_PREFIX})
+diff --git a/cmake-config.h.in b/cmake-config.h.in
+index 0d1839c..dd450ff 100644
+--- a/cmake-config.h.in
++++ b/cmake-config.h.in
+@@ -60,7 +60,7 @@
+ #cmakedefine WORDS_BIGENDIAN
+ /* END DEFINES */
+ #define PACKAGE "@PACKAGE@"
+-#define VERSION "@VERSION@"
++#define LIBZIP_VERSION "@VERSION@"
+ #ifndef HAVE_SSIZE_T_LIBZIP
+ # if SIZE_T_LIBZIP == INT_LIBZIP
diff --git a/cmake-zipconf.h.in b/cmake-zipconf.h.in
-index 17edc6c..ac9c394 100644
+index 6a276f6..410c898 100644
--- a/cmake-zipconf.h.in
+++ b/cmake-zipconf.h.in
@@ -118,4 +118,10 @@ typedef unsigned long long zip_uint64_t;
@@ -42,49 +61,8 @@ index 17edc6c..ac9c394 100644
+#endif
+
#endif /* zipconf.h */
-diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
-index 1596f30..eb55fc0 100644
---- a/lib/CMakeLists.txt
-+++ b/lib/CMakeLists.txt
-@@ -191,19 +191,20 @@ IF(NOT HAVE_MKSTEMP)
- SET(LIBZIP_EXTRA_FILES mkstemp.c)
- ENDIF(NOT HAVE_MKSTEMP)
-
--ADD_LIBRARY(zip SHARED ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPSYS_FILES})
--SET_TARGET_PROPERTIES(zip PROPERTIES VERSION 3.0 SOVERSION 3 )
--TARGET_LINK_LIBRARIES(zip ${ZLIB_LIBRARY})
--INSTALL(TARGETS zip
-- RUNTIME DESTINATION bin
-- ARCHIVE DESTINATION lib
-- LIBRARY DESTINATION lib)
--#CREATE_LIBTOOL_FILE(zip lib)
--
--#ADD_LIBRARY(zipstatic STATIC ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPSYS_FILES})
--#SET_TARGET_PROPERTIES(zipstatic PROPERTIES VERSION 3.0 SOVERSION 3 )
--#TARGET_LINK_LIBRARIES(zipstatic ${ZLIB_LIBRARY})
--#INSTALL(TARGETS zipstatic
--# RUNTIME DESTINATION bin
--# ARCHIVE DESTINATION lib
--# LIBRARY DESTINATION lib)
-+IF(ENABLE_STATIC)
-+ ADD_LIBRARY(zipstatic STATIC ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPSYS_FILES})
-+ SET_TARGET_PROPERTIES(zipstatic PROPERTIES VERSION 3.0 SOVERSION 3 )
-+ TARGET_LINK_LIBRARIES(zipstatic ${ZLIB_LIBRARY})
-+ INSTALL(TARGETS zipstatic
-+ RUNTIME DESTINATION bin
-+ ARCHIVE DESTINATION lib
-+ LIBRARY DESTINATION lib)
-+ELSE(ENABLE_STATIC)
-+ ADD_LIBRARY(zip SHARED ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPSYS_FILES})
-+ SET_TARGET_PROPERTIES(zip PROPERTIES VERSION 3.0 SOVERSION 3 )
-+ TARGET_LINK_LIBRARIES(zip ${ZLIB_LIBRARY})
-+ INSTALL(TARGETS zip
-+ RUNTIME DESTINATION bin
-+ ARCHIVE DESTINATION lib
-+ LIBRARY DESTINATION lib)
-+ENDIF(ENABLE_STATIC)
diff --git a/lib/compat.h b/lib/compat.h
-index 4c9e3a0..d667fe3 100644
+index 625c84e..8943587 100644
--- a/lib/compat.h
+++ b/lib/compat.h
@@ -42,7 +42,9 @@
diff --git a/ports/libzip/portfile.cmake b/ports/libzip/portfile.cmake
index fccb6cdf2..bcde856e2 100644
--- a/ports/libzip/portfile.cmake
+++ b/ports/libzip/portfile.cmake
@@ -1,9 +1,9 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libzip-1.2.0)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libzip-1.3.2)
vcpkg_download_distfile(ARCHIVE_FILE
- URLS "https://nih.at/libzip/libzip-1.2.0.tar.gz"
- FILENAME "libzip-1.2.0.tar.gz"
- SHA512 b71642a80f8e2573c9082d513018bfd2d1d155663ac83fdf7ec969a08d5230fcbc76f2cf89c26ff1d1288e9f407ba9fa234604d813ed3bab816ca1670f7a53f3
+ URLS "https://nih.at/libzip/libzip-1.3.2.tar.gz"
+ FILENAME "libzip-1.3.2.tar.gz"
+ SHA512 75b7e6f541be30e721275723f264c20f9a3be5335d954b5909acdddb0f6dd9b2420166904c9b88206692a57a4aa54e4fe8ed4d62c1f4b900aebf6ad40f767376
)
vcpkg_extract_source_archive(${ARCHIVE_FILE})
@@ -27,11 +27,6 @@ endif()
vcpkg_install_cmake()
-if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
- file(RENAME ${CURRENT_PACKAGES_DIR}/lib/zipstatic.lib ${CURRENT_PACKAGES_DIR}/lib/zip.lib)
- file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/zipstatic.lib ${CURRENT_PACKAGES_DIR}/debug/lib/zip.lib)
-endif()
-
# Move zipconf.h to include and remove include directories from lib
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libzip/include/zipconf.h ${CURRENT_PACKAGES_DIR}/include/zipconf.h)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/libzip ${CURRENT_PACKAGES_DIR}/debug/lib/libzip)
diff --git a/ports/live555/CONTROL b/ports/live555/CONTROL
index a2354fad1..ca55f517f 100644
--- a/ports/live555/CONTROL
+++ b/ports/live555/CONTROL
@@ -1,3 +1,3 @@
Source: live555
-Version: 2017.09.12
+Version: 2017.10.28
Description: A complete RTSP server application
diff --git a/ports/live555/liveMedia.txt b/ports/live555/liveMedia.txt
index 067fd5bc0..604bf1c50 100644
--- a/ports/live555/liveMedia.txt
+++ b/ports/live555/liveMedia.txt
@@ -1,7 +1,6 @@
# CMakeLists.txt in liveMedia
SET(LIVE_MEDIA_SRCS
-rtcp_from_spec.c
AC3AudioFileServerMediaSubsession.cpp
AC3AudioRTPSink.cpp
AC3AudioRTPSource.cpp
@@ -103,6 +102,7 @@ MPEG1or2VideoStreamDiscreteFramer.cpp
MPEG1or2VideoStreamFramer.cpp
MPEG2IndexFromTransportStream.cpp
MPEG2TransportFileServerMediaSubsession.cpp
+MPEG2TransportStreamAccumulator.cpp
MPEG2TransportStreamFramer.cpp
MPEG2TransportStreamFromESSource.cpp
MPEG2TransportStreamFromPESSource.cpp
@@ -138,6 +138,7 @@ QCELPAudioRTPSource.cpp
QuickTimeFileSink.cpp
QuickTimeGenericRTPSource.cpp
RTCP.cpp
+rtcp_from_spec.c
RTPInterface.cpp
RTPSink.cpp
RTPSource.cpp
@@ -145,6 +146,7 @@ RTSPClient.cpp
RTSPCommon.cpp
RTSPRegisterSender.cpp
RTSPServer.cpp
+RTSPServerRegister.cpp
RTSPServerSupportingHTTPStreaming.cpp
ServerMediaSession.cpp
SimpleRTPSink.cpp
diff --git a/ports/live555/portfile.cmake b/ports/live555/portfile.cmake
index e8b41371a..28aa45eb9 100644
--- a/ports/live555/portfile.cmake
+++ b/ports/live555/portfile.cmake
@@ -1,9 +1,9 @@
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/live)
vcpkg_download_distfile(ARCHIVE
- URLS "http://www.live555.com/liveMedia/public/live.2017.09.12.tar.gz"
- FILENAME "live.2017.09.12.tar.gz"
- SHA512 09b18b5f5dce28519b6c7cd8d52eb3448711939df051f84c8d6dce0b88d05c982711059f2ce13efccd326b2dbfeb93b88c4e03fe4a88bbd8fcefcb25e51d107d
+ URLS "http://www.live555.com/liveMedia/public/live.2017.10.28.tar.gz"
+ FILENAME "live.2017.10.28.tar.gz"
+ SHA512 eea5bdb8d89e76c8b6aeb6ec04b77af3048cb41f228d230ba4da6045e9bc691a456023d44d8650fe690b08143567ed5af5b633f5b6522debff79344a813dc7d0
)
vcpkg_extract_source_archive(${ARCHIVE})
@@ -52,10 +52,10 @@ file(GLOB DEBUG_LIBS
)
file(GLOB HEADERS
-"${CURRENT_BUILDTREES_DIR}/src/live/BasicUsageEnvironment/include/*.hh"
-"${CURRENT_BUILDTREES_DIR}/src/live/groupsock/include/*.hh"
-"${CURRENT_BUILDTREES_DIR}/src/live/liveMedia/include/*.hh"
-"${CURRENT_BUILDTREES_DIR}/src/live/UsageEnvironment/include/*.hh"
+"${CURRENT_BUILDTREES_DIR}/src/live/BasicUsageEnvironment/include/*.h*"
+"${CURRENT_BUILDTREES_DIR}/src/live/groupsock/include/*.h*"
+"${CURRENT_BUILDTREES_DIR}/src/live/liveMedia/include/*.h*"
+"${CURRENT_BUILDTREES_DIR}/src/live/UsageEnvironment/include/*.h*"
)
if(DLLS)
file(INSTALL ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
diff --git a/ports/llvm/CONTROL b/ports/llvm/CONTROL
index 2ea653a12..c50dc8cb8 100644
--- a/ports/llvm/CONTROL
+++ b/ports/llvm/CONTROL
@@ -1,3 +1,4 @@
Source: llvm
Version: 5.0.0-2
Description: The LLVM Compiler Infrastructure
+Build-Depends: atlmfc
diff --git a/ports/llvm/portfile.cmake b/ports/llvm/portfile.cmake
index a2f32abe9..d2a82cf0b 100644
--- a/ports/llvm/portfile.cmake
+++ b/ports/llvm/portfile.cmake
@@ -2,6 +2,10 @@
# building with Microsoft toolchain; it's also the default on other platforms
set(VCPKG_LIBRARY_LINKAGE static)
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "llvm cannot currently be built for UWP")
+endif()
+
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/llvm-5.0.0.src)
vcpkg_download_distfile(ARCHIVE
diff --git a/ports/log4cplus/CONTROL b/ports/log4cplus/CONTROL
index 882ee88b8..6dbcb515c 100644
--- a/ports/log4cplus/CONTROL
+++ b/ports/log4cplus/CONTROL
@@ -1,3 +1,4 @@
Source: log4cplus
-Version: REL_1_2_1-RC2-1
+Version: REL_2_0_0-RC2
Description: A simple to use C++ logging API providing thread--safe, flexible, and arbitrarily granular control over log management and configuration
+Build-Depends: catch
diff --git a/ports/log4cplus/portfile.cmake b/ports/log4cplus/portfile.cmake
index c1c5de3e2..db694315b 100644
--- a/ports/log4cplus/portfile.cmake
+++ b/ports/log4cplus/portfile.cmake
@@ -2,11 +2,27 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO log4cplus/log4cplus
- REF REL_1_2_1-RC2
- SHA512 480a2a61b01e988253c1bf2bb26088030541a63811c8ffbb9e90581d556b717df5220e3ff72eedd27ea704af35218f71f20ceadf4d6d94984b4f56d273b4d3a3
+ REF REL_2_0_0-RC2
+ SHA512 34392d85088534e0661e6fa9726c5970647a5acaa559bafb5d3746a70f5baca01012f457d50c15e73d9aca1d3ed9ec99028cc65fab07f73cdadbbc0b4329bcb5
HEAD_REF master
)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/log4cplus/ThreadPool/archive/dda9e3d40502e85ce082c05d2c05c1bc94348b6a.tar.gz"
+ FILENAME "log4cplus-threadpool-97b5877b9c49d02abf.tar.gz"
+ SHA512 97b5877b9c49d02abfcba4ca1312b833b58e4f0e9884fdcf57c20b7ec58801ed24742c8316512b4de8ab29bae42cc1e34058c0d2443c3a5950a2fb3434f86662
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(
+ COPY
+ ${CURRENT_BUILDTREES_DIR}/src/ThreadPool-master/COPYING
+ ${CURRENT_BUILDTREES_DIR}/src/ThreadPool-master/example.cpp
+ ${CURRENT_BUILDTREES_DIR}/src/ThreadPool-master/README.md
+ ${CURRENT_BUILDTREES_DIR}/src/ThreadPool-master/ThreadPool.h
+ DESTINATION ${SOURCE_PATH}/threadpool
+)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
diff --git a/ports/magnum/portfile.cmake b/ports/magnum/portfile.cmake
index 9eff36dcf..67d96bf5b 100644
--- a/ports/magnum/portfile.cmake
+++ b/ports/magnum/portfile.cmake
@@ -43,7 +43,6 @@ vcpkg_configure_cmake(
-DBUILD_PLUGINS_STATIC=${BUILD_PLUGINS_STATIC}
-DMAGNUM_PLUGINS_DEBUG_DIR=${CURRENT_INSTALLED_DIR}/debug/bin/magnum-d
-DMAGNUM_PLUGINS_RELEASE_DIR=${CURRENT_INSTALLED_DIR}/bin/magnum
- --trace
)
vcpkg_install_cmake()
diff --git a/ports/mbedtls/CONTROL b/ports/mbedtls/CONTROL
new file mode 100644
index 000000000..c4bed6fa6
--- /dev/null
+++ b/ports/mbedtls/CONTROL
@@ -0,0 +1,3 @@
+Source: mbedtls
+Version: 2.6.1
+Description: An open source, portable, easy to use, readable and flexible SSL library
diff --git a/ports/mbedtls/portfile.cmake b/ports/mbedtls/portfile.cmake
new file mode 100644
index 000000000..600b2790c
--- /dev/null
+++ b/ports/mbedtls/portfile.cmake
@@ -0,0 +1,27 @@
+include(vcpkg_common_functions)
+
+set(VCPKG_LIBRARY_LINKAGE static)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ARMmbed/mbedtls
+ REF mbedtls-2.6.1
+ SHA512 06f8ba2a453164bac01d20ca6f5c80e691857977ef501d56685e81a0e90dddae1bedeab46c18c22f9a3b72894d45d7466f76a5c404417b6613ddae0ee4a881c8
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DENABLE_TESTING=OFF
+ -DENABLE_PROGRAMS=OFF
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/mbedtls RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/mongo-cxx-driver/CONTROL b/ports/mongo-cxx-driver/CONTROL
index 306f6a96c..065fbbab0 100644
--- a/ports/mongo-cxx-driver/CONTROL
+++ b/ports/mongo-cxx-driver/CONTROL
@@ -1,4 +1,4 @@
Source: mongo-cxx-driver
-Version: 3.1.1-1
-Build-Depends: boost, libbson, mongo-c-driver
+Version: 3.1.1-2
+Build-Depends: libbson, mongo-c-driver, boost-smart-ptr, boost-optional, boost-utility
Description: MongoDB C++ Driver.
diff --git a/ports/mpfr/CMakeLists.txt b/ports/mpfr/CMakeLists.txt
index 8a989ff28..ed48eaf59 100644
--- a/ports/mpfr/CMakeLists.txt
+++ b/ports/mpfr/CMakeLists.txt
@@ -11,6 +11,7 @@ set(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR})
# Sources
set(SRCS
+ src/gmp_printf.c
src/mpfr.h
src/mpf2mpfr.h
src/mpfr-gmp.h
@@ -249,6 +250,7 @@ add_library(mpfr ${SRCS})
# target_compile_definitions(mpfr PRIVATE HAVE_CONFIG_H)
target_compile_definitions(mpfr PRIVATE __MPFR_WITHIN_MPFR)
+target_compile_definitions(mpfr PRIVATE HAVE_STDINT_H)
if(BUILD_SHARED_LIBS)
target_compile_definitions(mpfr PRIVATE __GMP_LIBGMP_DLL)
endif()
@@ -272,4 +274,4 @@ install(
install(
FILES src/mpfr.h
DESTINATION "include"
-) \ No newline at end of file
+)
diff --git a/ports/mpfr/CONTROL b/ports/mpfr/CONTROL
index bec54417d..fdfe6deb0 100644
--- a/ports/mpfr/CONTROL
+++ b/ports/mpfr/CONTROL
@@ -1,4 +1,4 @@
Source: mpfr
-Version: 3.1.6
+Version: 3.1.6-2
Description: The MPFR library is a C library for multiple-precision floating-point computations with correct rounding
Build-Depends: mpir
diff --git a/ports/mpfr/gmp_printf.c b/ports/mpfr/gmp_printf.c
new file mode 100644
index 000000000..1ccb94c0c
--- /dev/null
+++ b/ports/mpfr/gmp_printf.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+#include <stdarg.h>
+
+extern int __gmpfr_fprintf(const char *fmt, va_list argp) {
+ return fprintf(stderr, fmt, argp);
+}
diff --git a/ports/mpfr/portfile.cmake b/ports/mpfr/portfile.cmake
index b71aa0505..0a192f168 100644
--- a/ports/mpfr/portfile.cmake
+++ b/ports/mpfr/portfile.cmake
@@ -8,9 +8,11 @@ vcpkg_download_distfile(ARCHIVE
vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/gmp_printf.c DESTINATION ${SOURCE_PATH}/src)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
)
vcpkg_install_cmake()
diff --git a/ports/ms-gsl/CONTROL b/ports/ms-gsl/CONTROL
index b19e7c583..f9ab0c433 100644
--- a/ports/ms-gsl/CONTROL
+++ b/ports/ms-gsl/CONTROL
@@ -1,3 +1,3 @@
Source: ms-gsl
-Version: 20171104-d10ebc6555b627c9d1196076a78467e7be505987
+Version: 20171204-9d65e74400976b3509833f49b16d401600c7317d
Description: Microsoft implementation of the Guidelines Support Library \ No newline at end of file
diff --git a/ports/ms-gsl/portfile.cmake b/ports/ms-gsl/portfile.cmake
index 285b49676..a85f91611 100644
--- a/ports/ms-gsl/portfile.cmake
+++ b/ports/ms-gsl/portfile.cmake
@@ -4,13 +4,12 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/GSL
- REF d10ebc6555b627c9d1196076a78467e7be505987
- SHA512 982f1d059f3128e79db7742e4bc9a641f8f6b91e02b00f7a98e4447bff9602501e905bc42173520036a0d3b6ad95ca7908fed15fa200ea01a2bd103b8e9cff88
+ REF 9d65e74400976b3509833f49b16d401600c7317d
+ SHA512 36f1b0dba5b724c5ef437b07a9141f2bb2e8b059f968736e2c6d7cd5c50d5701a109df40e35f971ff8c225901560dd8783458d1f2fe56065c4cd85465cf5a527
HEAD_REF master
)
-file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN "*")
+file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
# Handle copyright
-file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/ms-gsl)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/ms-gsl/LICENSE ${CURRENT_PACKAGES_DIR}/share/ms-gsl/copyright)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/ms-gsl RENAME copyright)
diff --git a/ports/nana/CONTROL b/ports/nana/CONTROL
index ae4168544..41d7188b9 100644
--- a/ports/nana/CONTROL
+++ b/ports/nana/CONTROL
@@ -1,4 +1,4 @@
Source: nana
-Version: 1.5.4-1
+Version: 1.5.5
Description: Cross-platform library for GUI programming in modern C++ style.
Build-Depends: libpng, libjpeg-turbo
diff --git a/ports/nana/portfile.cmake b/ports/nana/portfile.cmake
index 6f61d79f7..fc492ee44 100644
--- a/ports/nana/portfile.cmake
+++ b/ports/nana/portfile.cmake
@@ -7,8 +7,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO cnjinhao/nana
- REF v1.5.4
- SHA512 54d8d06a7792c7c626793f0c5f769884d7af78950a1df7d543f13bbb6de5ae35b51130a150438faa1c3c53dfea29fad6d12b94c535c264aac893325b244c6e0a
+ REF v1.5.5
+ SHA512 d28348b807e131f5868a162cf5b914523246ab5c4d4395186377f54dff9ad91199b13f640e05b5d959347ebfb570df79d5de39abfd690d8831034063422e3587
HEAD_REF develop
)
diff --git a/ports/netcdf-c/portfile.cmake b/ports/netcdf-c/portfile.cmake
index 75a361106..f2630711e 100644
--- a/ports/netcdf-c/portfile.cmake
+++ b/ports/netcdf-c/portfile.cmake
@@ -41,10 +41,11 @@ vcpkg_configure_cmake(
)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/netcdf)
-file(READ ${CURRENT_PACKAGES_DIR}/debug/share/netcdf/netCDFTargets-debug.cmake NETCDF_TARGETS_DEBUG_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" NETCDF_TARGETS_DEBUG_MODULE "${NETCDF_TARGETS_DEBUG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/netcdf/netCDFTargets-debug.cmake "${NETCDF_TARGETS_DEBUG_MODULE}")
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin)
+endif()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
diff --git a/ports/nghttp2/CONTROL b/ports/nghttp2/CONTROL
new file mode 100644
index 000000000..18cd57cef
--- /dev/null
+++ b/ports/nghttp2/CONTROL
@@ -0,0 +1,3 @@
+Source: nghttp2
+Version: 1.28.0
+Description: Implementation of the Hypertext Transfer Protocol version 2 in C
diff --git a/ports/nghttp2/portfile.cmake b/ports/nghttp2/portfile.cmake
new file mode 100644
index 000000000..dd9f02b84
--- /dev/null
+++ b/ports/nghttp2/portfile.cmake
@@ -0,0 +1,51 @@
+include(vcpkg_common_functions)
+
+set(LIB_NAME nghttp2)
+set(LIB_VERSION 1.28.0)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message("nghttp2 doesn't currently support static library build")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+ if(VCPKG_CRT_LINKAGE STREQUAL static)
+ message(FATAL_ERROR "avoiding building DLL with static CRT.")
+ endif()
+endif()
+
+set(LIB_FILENAME ${LIB_NAME}-${LIB_VERSION}.tar.gz)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION})
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/nghttp2/nghttp2/releases/download/v${LIB_VERSION}/${LIB_FILENAME}"
+ FILENAME "${LIB_FILENAME}"
+ SHA512 37fbc7fe5f7292ea17ec030f024de0a697ede3ea883457b7edebfb0f21c7eee9196c62df61945953b54b410eea3a64d180beeb477529bd744caf986be0a1b1c9
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DENABLE_LIB_ONLY=ON
+ -DENABLE_ASIO_LIB=OFF
+)
+
+vcpkg_install_cmake()
+
+# Remove unwanted files
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/man)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc)
+
+# Move dll files from /lib to /bin where vcpkg expects them
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/${LIB_NAME}.dll ${CURRENT_PACKAGES_DIR}/bin/${LIB_NAME}.dll)
+
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/${LIB_NAME}.dll ${CURRENT_PACKAGES_DIR}/debug/bin/${LIB_NAME}.dll)
+endif()
+
+# License and man
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${LIB_NAME} RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/nlohmann-json/CONTROL b/ports/nlohmann-json/CONTROL
index 90b6e504e..1b268b456 100644
--- a/ports/nlohmann-json/CONTROL
+++ b/ports/nlohmann-json/CONTROL
@@ -1,3 +1,3 @@
Source: nlohmann-json
-Version: 2.1.1-1
+Version: 3.0.0
Description: JSON for Modern C++
diff --git a/ports/nlohmann-json/portfile.cmake b/ports/nlohmann-json/portfile.cmake
index 8a8f5dc30..d03c5b395 100644
--- a/ports/nlohmann-json/portfile.cmake
+++ b/ports/nlohmann-json/portfile.cmake
@@ -1,22 +1,18 @@
include(vcpkg_common_functions)
-set(SOURCE_VERSION 2.1.1)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/json-${SOURCE_VERSION})
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/nlohmann/json/archive/v${SOURCE_VERSION}.zip"
- FILENAME "nlohmann-json-v${SOURCE_VERSION}.zip"
- SHA512 7f7155c4bcc4f704f329ba6976c31888a45d17bc2fa08ee9e64dc1b0b1f39439819b895cda9d77f3f60446ad6f5802e9c6ae79fbaf6d1b6f7e49ca050b86cd7c
-)
-vcpkg_extract_source_archive(${ARCHIVE})
-vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA
-)
+set(SOURCE_VERSION 3.0.0)
-vcpkg_install_cmake()
+vcpkg_download_distfile(HEADER
+ URLS "https://github.com/nlohmann/json/releases/download/v${SOURCE_VERSION}/json.hpp"
+ FILENAME "nlohmann-json-${SOURCE_VERSION}.hpp"
+ SHA512 0983320160900e7dbb1241d10f5be6eb0c1be39f2af3f153f488533c381e909f4af0d60c25c6a2e4bb7b69ad1ff0033651c52fe36886f917324f355281e99c05
+)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug)
+vcpkg_download_distfile(LICENSE
+ URLS "https://github.com/nlohmann/json/raw/v${SOURCE_VERSION}/LICENSE.MIT"
+ FILENAME "nlohmann-json-LICENSE-${SOURCE_VERSION}.txt"
+ SHA512 629ac4ed0128af8750ddaefb86b01e52243457020b54e3c38a1a772dbbc1598442a45ab9a0537bd47e35eafa73df0a9d1f1ebe235f339dcd2df1083219ded2d1
+)
-file(COPY ${SOURCE_PATH}/LICENSE.MIT DESTINATION ${CURRENT_PACKAGES_DIR}/share/nlohmann-json)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/nlohmann-json/LICENSE.MIT ${CURRENT_PACKAGES_DIR}/share/nlohmann-json/copyright)
+file(INSTALL ${HEADER} DESTINATION ${CURRENT_PACKAGES_DIR}/include/nlohmann RENAME json.hpp)
+file(INSTALL ${LICENSE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/nlohmann-json RENAME copyright) \ No newline at end of file
diff --git a/ports/ogre/0001-use-vcpkg-freeimage.patch b/ports/ogre/0001-use-vcpkg-freeimage.patch
deleted file mode 100644
index 0266e5e89..000000000
--- a/ports/ogre/0001-use-vcpkg-freeimage.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/OgreMain/CMakeLists.txt b/OgreMain/CMakeLists.txt
-index 6a43378..22f950e 100644
---- a/OgreMain/CMakeLists.txt
-+++ b/OgreMain/CMakeLists.txt
-@@ -220,7 +220,11 @@ endif ()
- list(APPEND HEADER_FILES ${THREAD_HEADER_FILES})
-
- # Add needed definitions and nedmalloc include dir
--add_definitions(-DOGRE_NONCLIENT_BUILD -DFREEIMAGE_LIB -D_MT -D_USRDLL)
-+# vcpkg specific patch: we removed -DFREEIMAGE_LIB
-+# from the defines, because vcpkg's freeimage can
-+# be both static or dynamic, and FREEIMAGE_LIB
-+# remove all the symbol exporting declaration from FreeImage.h
-+add_definitions(-DOGRE_NONCLIENT_BUILD -D_MT -D_USRDLL)
- include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/nedmalloc)
-
- set(LIBRARIES ${PLATFORM_LIBS})
diff --git a/ports/ogre/0002-ogre-cmake-dir-as-option.patch b/ports/ogre/0002-ogre-cmake-dir-as-option.patch
deleted file mode 100644
index c5d75e20c..000000000
--- a/ports/ogre/0002-ogre-cmake-dir-as-option.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/CMake/CMakeLists.txt b/CMake/CMakeLists.txt
-index 4c496b7..feb4017 100644
---- a/CMake/CMakeLists.txt
-+++ b/CMake/CMakeLists.txt
-@@ -14,10 +14,12 @@
- #############################################################
-
- if(WIN32 OR APPLE)
-- set(OGRE_CMAKE_DIR "CMake")
-+ set(OGRE_DEFAULT_CMAKE_DIR "CMake")
- else()
-- set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake")
-+ set(OGRE_DEFAULT_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake")
- endif()
-+set(OGRE_CMAKE_DIR ${OGRE_DEFAULT_CMAKE_DIR} CACHE STRING "Install directory for CMake files.")
-+mark_as_advanced(OGRE_DEFAULT_CMAKE_DIR)
-
- set(INST_FILES
- Packages/FindOIS.cmake
diff --git a/ports/ogre/0003-use-flat-installation.patch b/ports/ogre/0003-use-flat-installation.patch
deleted file mode 100644
index c5a382c1f..000000000
--- a/ports/ogre/0003-use-flat-installation.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/CMake/Utils/OgreConfigTargets.cmake b/CMake/Utils/OgreConfigTargets.cmake
-index c6b3b40..2da7ebf 100644
---- a/CMake/Utils/OgreConfigTargets.cmake
-+++ b/CMake/Utils/OgreConfigTargets.cmake
-@@ -41,15 +41,28 @@ if (NOT OGRE_RUNTIME_OUTPUT)
- set(OGRE_RUNTIME_OUTPUT ${OGRE_BINARY_DIR}/bin)
- endif ()
-
-+option(OGRE_NO_INSTALLATION_SUFFIXES_ON_WIN32 "Do not install in configuration-specific directories in Windows" FALSE)
-+
- if (WIN32)
-- set(OGRE_RELEASE_PATH "/Release")
-- set(OGRE_RELWDBG_PATH "/RelWithDebInfo")
-- set(OGRE_MINSIZE_PATH "/MinSizeRel")
-- set(OGRE_DEBUG_PATH "/Debug")
-- set(OGRE_LIB_RELEASE_PATH "/Release")
-- set(OGRE_LIB_RELWDBG_PATH "/RelWithDebInfo")
-- set(OGRE_LIB_MINSIZE_PATH "/MinSizeRel")
-- set(OGRE_LIB_DEBUG_PATH "/Debug")
-+ if (OGRE_NO_INSTALLATION_SUFFIXES_ON_WIN32)
-+ set(OGRE_RELEASE_PATH "")
-+ set(OGRE_RELWDBG_PATH "")
-+ set(OGRE_MINSIZE_PATH "")
-+ set(OGRE_DEBUG_PATH "")
-+ set(OGRE_LIB_RELEASE_PATH "")
-+ set(OGRE_LIB_RELWDBG_PATH "")
-+ set(OGRE_LIB_MINSIZE_PATH "")
-+ set(OGRE_LIB_DEBUG_PATH "/")
-+ else ()
-+ set(OGRE_RELEASE_PATH "/Release")
-+ set(OGRE_RELWDBG_PATH "/RelWithDebInfo")
-+ set(OGRE_MINSIZE_PATH "/MinSizeRel")
-+ set(OGRE_DEBUG_PATH "/Debug")
-+ set(OGRE_LIB_RELEASE_PATH "/Release")
-+ set(OGRE_LIB_RELWDBG_PATH "/RelWithDebInfo")
-+ set(OGRE_LIB_MINSIZE_PATH "/MinSizeRel")
-+ set(OGRE_LIB_DEBUG_PATH "/Debug")
-+ endif ()
- set(OGRE_PLUGIN_PATH "/opt")
- set(OGRE_SAMPLE_PATH "/opt/samples")
- elseif (UNIX)
diff --git a/ports/ogre/001-cmake-install-dir.patch b/ports/ogre/001-cmake-install-dir.patch
new file mode 100644
index 000000000..cf73bc977
--- /dev/null
+++ b/ports/ogre/001-cmake-install-dir.patch
@@ -0,0 +1,46 @@
+diff --git a/CMake/CMakeLists.txt b/CMake/CMakeLists.txt
+index 3382de139..404c56e5e 100644
+--- a/CMake/CMakeLists.txt
++++ b/CMake/CMakeLists.txt
+@@ -13,10 +13,12 @@
+ # directory, but can also be used for custom projects.
+ #############################################################
+
+-if(WIN32 OR APPLE)
+- set(OGRE_CMAKE_DIR "CMake")
+-else()
+- set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake")
++if (NOT DEFINED OGRE_CMAKE_DIR)
++ if(WIN32 OR APPLE)
++ set(OGRE_CMAKE_DIR "CMake")
++ else()
++ set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake")
++ endif()
+ endif()
+
+ set(INST_FILES
+diff --git a/CMake/InstallResources.cmake b/CMake/InstallResources.cmake
+index 0181259e2..346188c73 100644
+--- a/CMake/InstallResources.cmake
++++ b/CMake/InstallResources.cmake
+@@ -245,12 +245,14 @@ endif ()
+ # Create the CMake package files
+ include(CMakePackageConfigHelpers)
+
+-if (WIN32)
+- set(OGRE_CMAKE_DIR CMake)
+-elseif (UNIX)
+- set(OGRE_CMAKE_DIR lib/OGRE/cmake)
+-elseif (APPLE)
+-endif ()
++if (NOT DEFINED OGRE_CMAKE_DIR)
++ if (WIN32)
++ set(OGRE_CMAKE_DIR CMake)
++ elseif (UNIX)
++ set(OGRE_CMAKE_DIR lib/OGRE/cmake)
++ elseif (APPLE)
++ endif ()
++endif()
+ configure_package_config_file(${OGRE_TEMPLATES_DIR}/OGREConfig.cmake.in ${OGRE_BINARY_DIR}/cmake/OGREConfig.cmake
+ INSTALL_DESTINATION ${OGRE_CMAKE_DIR}
+ PATH_VARS CMAKE_INSTALL_PREFIX)
diff --git a/ports/ogre/CONTROL b/ports/ogre/CONTROL
index 588c6413b..1533b8e8d 100644
--- a/ports/ogre/CONTROL
+++ b/ports/ogre/CONTROL
@@ -1,4 +1,14 @@
Source: ogre
-Version: 1.9.0-1
+Version: 1.10.9-2
Build-Depends: freeimage, freetype, zlib, zziplib
Description: 3D Object-Oriented Graphics Rendering Engine
+
+Feature: d3d9
+Description: Build Direct3D9 RenderSystem
+
+Feature: java
+Description: Build Java (JNI) bindings
+
+Feature: python
+Description: Build Python bindings
+Build-Depends: python3
diff --git a/ports/ogre/OGREConfig.cmake b/ports/ogre/OGREConfig.cmake
deleted file mode 100644
index a20544431..000000000
--- a/ports/ogre/OGREConfig.cmake
+++ /dev/null
@@ -1,37 +0,0 @@
-#.rst:
-# OGREConfig
-# ------------
-#
-# Dummy OGREConfig to simplify use of OGRE-provided FindOGRE module.
-#
-# This file is provided as part of the vcpkg port of OGRE .
-# It is meant to be found automatically by find_package(OGRE),
-# but then offloads all the real work to the FindOGRE module by temporarly
-# adding its directory to CMAKE_MODULE_PATH
-#
-# See the FindOGRE module to see the defined variables::
-#
-
-# Temporarly add the directory in which OGREConfig.cmake is contained to
-# get access to the FindOGRE module
-get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
-set(ORIGINAL_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
-list(APPEND CMAKE_MODULE_PATH ${SELF_DIR})
-find_package(OGRE MODULE)
-
-# Leave CMAKE_MODULE_PATH as we found it
-set(CMAKE_MODULE_PATH ${ORIGINAL_CMAKE_MODULE_PATH})
-
-# Handle components
-# imported from https://github.com/Kitware/CMake/blob/v3.7.1/Modules/CMakePackageConfigHelpers.cmake#L300
-macro(check_required_components _NAME)
- foreach(comp ${${_NAME}_FIND_COMPONENTS})
- if(NOT ${_NAME}_${comp}_FOUND)
- if(${_NAME}_FIND_REQUIRED_${comp})
- set(${_NAME}_FOUND FALSE)
- endif()
- endif()
- endforeach()
-endmacro()
-
-check_required_components(OGRE) \ No newline at end of file
diff --git a/ports/ogre/portfile.cmake b/ports/ogre/portfile.cmake
index a0989a4a2..f42b4c220 100644
--- a/ports/ogre/portfile.cmake
+++ b/ports/ogre/portfile.cmake
@@ -1,17 +1,19 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sinbad-ogre-dd30349ea667)
+
+set(OGRE_VERSION 1.10.9)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ogre-${OGRE_VERSION})
+
vcpkg_download_distfile(ARCHIVE
- URLS "https://bitbucket.org/sinbad/ogre/get/v1-9-0.zip"
- FILENAME "ogre-v1-9-0.zip"
- SHA512 de7315a2450ecf0d9073e6a8f0c54737e041016f7ad820556d10701c7d23eefab9d3473476a8e95447c30ab21518b8e4cfb0271db72494ea67a3dea284c9a3d3
+ URLS "https://github.com/OGRECave/ogre/archive/v${OGRE_VERSION}.zip"
+ FILENAME "ogre-${OGRE_VERSION}.zip"
+ SHA512 2e68b30da6dc2e1df6575970623a14057675b069536ed0ac87faeefc8e295965ff7427c99385f29ab803b02bd5294f6886293aabdd17ec8c92f80baf53587457
)
vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
- PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-use-vcpkg-freeimage.patch"
- "${CMAKE_CURRENT_LIST_DIR}/0002-ogre-cmake-dir-as-option.patch"
- "${CMAKE_CURRENT_LIST_DIR}/0003-use-flat-installation.patch"
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/001-cmake-install-dir.patch"
)
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
@@ -20,41 +22,110 @@ else()
set(OGRE_STATIC OFF)
endif()
+# Configure features
+
+if("d3d9" IN_LIST FEATURES)
+ set(WITH_D3D9 ON)
+else()
+ set(WITH_D3D9 OFF)
+endif()
+
+if("java" IN_LIST FEATURES)
+ set(WITH_JAVA ON)
+else()
+ set(WITH_JAVA OFF)
+endif()
+
+if("python" IN_LIST FEATURES)
+ set(WITH_PYTHON ON)
+else()
+ set(WITH_PYTHON OFF)
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS -DOGRE_USE_BOOST:BOOL=OFF
- -DOGRE_BUILD_RENDERSYSTEM_D3D9:BOOL=OFF
- -DOGRE_INSTALL_DEPENDENCIES:BOOL=OFF
- -DOGRE_COPY_DEPENDENCIES:BOOL=OFF
- -DOGRE_BUILD_TOOLS:BOOL=OFF
- -DOGRE_CMAKE_DIR:STRING=share/ogre
- -DOGRE_STATIC:BOOL=${OGRE_STATIC}
- -DOGRE_INSTALL_SAMPLES:BOOL=OFF
- -DOGRE_INSTALL_TOOLS:BOOL=OFF
- # We disable this option because it is broken and we rely on vcpkg_copy_pdbs
- -DOGRE_INSTALL_PDB:BOOL=OFF
- -DOGRE_BUILD_DOCS:BOOL=OFF
- -DOGRE_INSTALL_DOCS:BOOL=OFF
- -DOGRE_INSTALL_SAMPLES_SOURCE:BOOL=OFF
- -DOGRE_NO_INSTALLATION_SUFFIXES_ON_WIN32:BOOL=ON
+ PREFER_NINJA
+ OPTIONS
+ -DOGRE_BUILD_DEPENDENCIES=OFF
+ -DOGRE_BUILD_SAMPLES=OFF
+ -DOGRE_BUILD_TESTS=OFF
+ -DOGRE_BUILD_TOOLS=OFF
+ -DOGRE_BUILD_MSVC_MP=ON
+ -DOGRE_BUILD_MSVC_ZM=ON
+ -DOGRE_INSTALL_DEPENDENCIES=OFF
+ -DOGRE_INSTALL_DOCS=OFF
+ -DOGRE_INSTALL_PDB=OFF
+ -DOGRE_INSTALL_SAMPLES=OFF
+ -DOGRE_INSTALL_TOOLS=OFF
+ -DOGRE_INSTALL_CMAKE=ON
+ -DOGRE_INSTALL_VSPROPS=OFF
+ -DOGRE_STATIC=${OGRE_STATIC}
+ -DOGRE_UNITY_BUILD=OFF
+ -DOGRE_USE_STD11=ON
+ -DOGRE_CONFIG_THREAD_PROVIDER=std
+ -DOGRE_NODE_STORAGE_LEGACY=OFF
+ -DOGRE_BUILD_RENDERSYSTEM_D3D11=ON
+ -DOGRE_BUILD_RENDERSYSTEM_GL=ON
+ -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=ON
+ -DOGRE_BUILD_RENDERSYSTEM_GLES=OFF
+ -DOGRE_BUILD_RENDERSYSTEM_GLES2=OFF
+# Optional stuff
+ -DOGRE_BUILD_COMPONENT_JAVA=${WITH_JAVA}
+ -DOGRE_BUILD_COMPONENT_PYTHON=${WITH_PYTHON}
+ -DOGRE_BUILD_RENDERSYSTEM_D3D9=${WITH_D3D9}
+# vcpkg specific stuff
+ -DOGRE_CMAKE_DIR=share/ogre
)
vcpkg_install_cmake()
-# Add a OGREConfig.cmake to simplify the process of finding vcpkg OGRE
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/OGREConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/ogre)
-
-# Remove debug includes
+# Remove unwanted files
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-# Remove debug CMake files
-# Note that at the moment OGRE do not export imported targets,
-# so we do not need to copy the debug imported targets in the
-# release CMake path
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/ogre)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(GLOB REL_CFGS ${CURRENT_PACKAGES_DIR}/bin/*.cfg)
+file(COPY ${REL_CFGS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+
+file(GLOB DBG_CFGS ${CURRENT_PACKAGES_DIR}/debug/bin/*.cfg)
+file(COPY ${DBG_CFGS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+
+file(REMOVE ${REL_CFGS} ${DBG_CFGS})
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+
+file(GLOB MAIN_REL ${CURRENT_PACKAGES_DIR}/lib/OgreMain.lib ${CURRENT_PACKAGES_DIR}/lib/OgreMainStatic.lib)
+file(COPY ${MAIN_REL} DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+file(GLOB MAIN_DBG ${CURRENT_PACKAGES_DIR}/debug/lib/OgreMain_d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/OgreMainStatic_d.lib)
+file(COPY ${MAIN_DBG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+file(REMOVE ${MAIN_REL} ${MAIN_DBG})
+
+# Ogre installs custom cmake config files which don't follow the normal pattern.
+# This normally makes them completely incompatible with multi-config generators, but with some effort it can be done.
+file(READ "${CURRENT_PACKAGES_DIR}/share/ogre/OGREConfig.cmake" _contents)
+string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${PACKAGE_PREFIX_DIR}" _contents "${_contents}")
+string(REPLACE "SDL2main.lib" "SDL2main$<$<CONFIG:Debug>:d>.lib" _contents "${_contents}")
+string(REPLACE "SDL2.lib" "SDL2$<$<CONFIG:Debug>:d>.lib" _contents "${_contents}")
+string(REPLACE "\${PACKAGE_PREFIX_DIR}/lib" "\${PACKAGE_PREFIX_DIR}$<$<CONFIG:Debug>:/debug>/lib" _contents "${_contents}")
+string(REPLACE "{OGRE_PREFIX_DIR}/lib" "{OGRE_PREFIX_DIR}$<$<CONFIG:Debug>:/debug>/lib" _contents "${_contents}")
+
+string(REPLACE "\"Ogre\${COMPONENT}\"" "\"Ogre\${COMPONENT}$<$<CONFIG:Debug>:_d>\"" _contents "${_contents}")
+string(REPLACE "\"Ogre\${COMPONENT}Static\"" "\"Ogre\${COMPONENT}Static$<$<CONFIG:Debug>:_d>\"" _contents "${_contents}")
+
+string(REPLACE "\"\${TYPE}_\${COMPONENT}\"" "\"\${TYPE}_\${COMPONENT}$<$<CONFIG:Debug>:_d>\"" _contents "${_contents}")
+string(REPLACE "\"\${TYPE}_\${COMPONENT}Static\"" "\"\${TYPE}_\${COMPONENT}Static$<$<CONFIG:Debug>:_d>\"" _contents "${_contents}")
+
+string(REPLACE "\"OgreMain\"" "\"\${PACKAGE_PREFIX_DIR}/lib/manual-link/OgreMain$<$<CONFIG:Debug>:_d>.lib\"" _contents "${_contents}")
+string(REPLACE "\"OgreMainStatic\"" "\"\${PACKAGE_PREFIX_DIR}/lib/manual-link/OgreMainStatic$<$<CONFIG:Debug>:_d>.lib\"" _contents "${_contents}")
+
+file(WRITE "${CURRENT_PACKAGES_DIR}/share/ogre/OGREConfig.cmake" "${_contents}")
+
# Handle copyright
-file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/ogre)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/ogre/COPYING ${CURRENT_PACKAGES_DIR}/share/ogre/copyright)
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/ogre RENAME copyright)
-vcpkg_copy_pdbs() \ No newline at end of file
+vcpkg_copy_pdbs()
diff --git a/ports/opencv/CONTROL b/ports/opencv/CONTROL
index d41323609..e71ad109d 100644
--- a/ports/opencv/CONTROL
+++ b/ports/opencv/CONTROL
@@ -1,5 +1,5 @@
Source: opencv
-Version: 3.3.1-7
+Version: 3.4.0
Build-Depends: zlib, libpng, libjpeg-turbo, tiff, protobuf (windows)
Description: computer vision library
diff --git a/ports/opencv/portfile.cmake b/ports/opencv/portfile.cmake
index b6958abfd..5e3c98555 100644
--- a/ports/opencv/portfile.cmake
+++ b/ports/opencv/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO opencv/opencv
- REF 3.3.1
- SHA512 ee228953b621be022c203e3d60b06be524bd134ba6188c447216ee89e14dfddeac7d6aaf85c5a0b0008b010254e2aa711813bfdb691a77b0bdba33682c6ca68c
+ REF 3.4.0
+ SHA512 aa7e475f356ffdaeb2ae9f7e9380c92cae58fabde9cd3b23c388f9190b8fde31ee70d16648042d0c43c03b2ff1f15e4be950be7851133ea0aa82cf6e42ba4710
HEAD_REF master
)
@@ -21,8 +21,8 @@ file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty/libjpeg ${SOURCE_PATH}/3rdparty/libp
vcpkg_from_github(
OUT_SOURCE_PATH CONTRIB_SOURCE_PATH
REPO opencv/opencv_contrib
- REF 3.3.1
- SHA512 b5f35f68faab811a440b6af6b33c766dcdf4cc8547c0a4ed3a6a3da80ca8ae77618039d94bee6d249e96899765bdbb34c997bd7ee53d864c43427eff92f7ea34
+ REF 3.4.0
+ SHA512 53f6127304f314d3be834f79520d4bc8a75e14cad8c9c14a66a7a6b37908ded114d24e3a2c664d4ec2275903db08ac826f29433e810c6400f3adc2714a3c5be7
HEAD_REF master
)
@@ -201,4 +201,6 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
vcpkg_copy_pdbs()
-set(VCPKG_LIBRARY_LINKAGE "dynamic") \ No newline at end of file
+set(VCPKG_LIBRARY_LINKAGE "dynamic")
+
+set(VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT enabled)
diff --git a/ports/openimageio/CONTROL b/ports/openimageio/CONTROL
index 1421e3acb..3e498bf56 100644
--- a/ports/openimageio/CONTROL
+++ b/ports/openimageio/CONTROL
@@ -1,4 +1,4 @@
Source: openimageio
-Version: 1.7.15-1
+Version: 1.7.15-2
Description: An library for reading and writing images, and a bunch of related classes, utilities, and application
-Build-Depends: boost, libjpeg-turbo, tiff, libpng, openexr
+Build-Depends: libjpeg-turbo, tiff, libpng, openexr, boost-thread, boost-smart-ptr, boost-foreach, boost-regex, boost-type-traits, boost-static-assert, boost-unordered, boost-config, boost-algorithm, boost-filesystem, boost-system, boost-thread, boost-asio, boost-random
diff --git a/ports/openssl/CONTROL b/ports/openssl/CONTROL
index e5d1bf8bc..dcdda9cc6 100644
--- a/ports/openssl/CONTROL
+++ b/ports/openssl/CONTROL
@@ -1,3 +1,3 @@
Source: openssl
-Version: 1.0.2m
+Version: 1.0.2n-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/PerlScriptSpaceInPathFixes.patch b/ports/openssl/PerlScriptSpaceInPathFixes.patch
deleted file mode 100644
index 1dcf8a991..000000000
--- a/ports/openssl/PerlScriptSpaceInPathFixes.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/util/copy.pl b/util/copy.pl
-index eba6d58..5d971a2 100644
---- a/util/copy.pl
-+++ b/util/copy.pl
-@@ -19,7 +19,7 @@ foreach $arg (@ARGV) {
- next;
- }
- $arg =~ s|\\|/|g; # compensate for bug/feature in cygwin glob...
-- foreach (glob $arg)
-+ foreach (glob qq("$arg"))
- {
- push @filelist, $_;
- }
-diff --git a/util/mk1mf.pl b/util/mk1mf.pl
-index 128a405..fd853da 100644
---- a/util/mk1mf.pl
-+++ b/util/mk1mf.pl
-@@ -428,7 +428,7 @@ EOF
- {
- $extra_install .= <<"EOF"
- \$(MKDIR) \"\$(INSTALLTOP)${o}lib${o}engines\"
-- \$(CP) \"\$(E_SHLIB)\" \"\$(INSTALLTOP)${o}lib${o}engines\"
-+ \$(CP) \$(E_SHLIB) \"\$(INSTALLTOP)${o}lib${o}engines\"
- EOF
- }
- }
-@@ -608,7 +608,7 @@ install: all
- \$(MKDIR) \"\$(INSTALLTOP)${o}include${o}openssl\"
- \$(MKDIR) \"\$(INSTALLTOP)${o}lib\"
- \$(CP) \"\$(INCO_D)${o}*.\[ch\]\" \"\$(INSTALLTOP)${o}include${o}openssl\"
-- \$(CP) \"\$(BIN_D)$o\$(E_EXE)$exep \$(INSTALLTOP)${o}bin\"
-+ \$(CP) \"\$(BIN_D)$o\$(E_EXE)$exep\" \"\$(INSTALLTOP)${o}bin\"
- \$(MKDIR) \"\$(OPENSSLDIR)\"
- \$(CP) apps${o}openssl.cnf \"\$(OPENSSLDIR)\"
- $extra_install
diff --git a/ports/openssl/portfile.cmake b/ports/openssl/portfile.cmake
index 1a856e17d..349144e91 100644
--- a/ports/openssl/portfile.cmake
+++ b/ports/openssl/portfile.cmake
@@ -4,7 +4,7 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
endif()
include(vcpkg_common_functions)
-set(OPENSSL_VERSION 1.0.2m)
+set(OPENSSL_VERSION 1.0.2n)
set(MASTER_COPY_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-${OPENSSL_VERSION})
vcpkg_find_acquire_program(PERL)
@@ -19,14 +19,13 @@ set(ENV{PATH} "${NASM_EXE_PATH};$ENV{PATH};${PERL_EXE_PATH}")
vcpkg_download_distfile(OPENSSL_SOURCE_ARCHIVE
URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.0.2/openssl-${OPENSSL_VERSION}.tar.gz"
FILENAME "openssl-${OPENSSL_VERSION}.tar.gz"
- SHA512 7619aa223ee50d0f5e270ac9090e95b2b1ba5dfc656c98f625a9a277dda472fb960a4e89a7ba300044cb401b2072b2ca6a6fcce8206d927bf373d1c981806a93
+ SHA512 144bf0d6aa27b4af01df0b7b734c39962649e1711554247d42e05e14d8945742b18745aefdba162e2dfc762b941fd7d3b2d5dc6a781ae4ba10a6f5a3cadb0687
)
vcpkg_extract_source_archive(${OPENSSL_SOURCE_ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${MASTER_COPY_SOURCE_PATH}
- PATCHES ${CMAKE_CURRENT_LIST_DIR}/PerlScriptSpaceInPathFixes.patch
- ${CMAKE_CURRENT_LIST_DIR}/ConfigureIncludeQuotesFix.patch
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/ConfigureIncludeQuotesFix.patch
${CMAKE_CURRENT_LIST_DIR}/STRINGIFYPatch.patch
${CMAKE_CURRENT_LIST_DIR}/EmbedSymbolsInStaticLibsZ7.patch
)
@@ -35,6 +34,7 @@ set(CONFIGURE_COMMAND ${PERL} Configure
enable-static-engine
enable-capieng
no-ssl2
+ -utf-8
)
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
diff --git a/ports/openvdb/AddLinkageAndToolsChoice.patch b/ports/openvdb/AddLinkageAndToolsChoice.patch
new file mode 100644
index 000000000..3d155cbe4
--- /dev/null
+++ b/ports/openvdb/AddLinkageAndToolsChoice.patch
@@ -0,0 +1,225 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 712fb1d..440a63a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,6 +32,9 @@ PROJECT ( OpenVDB )
+
+ ENABLE_TESTING()
+
++OPTION ( OPENVDB_BUILD_TOOLS "Build OpenVDB utilities" ON )
++OPTION ( OPENVDB_STATIC "Build statically linked library" ON )
++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/openvdb/CMakeLists.txt b/openvdb/CMakeLists.txt
+index 5703eb9..6ff3c6a 100644
+--- a/openvdb/CMakeLists.txt
++++ b/openvdb/CMakeLists.txt
+@@ -26,6 +26,7 @@
+ #
+ PROJECT ( OpenVDBCore )
+
++IF ( OPENVDB_BUILD_TOOLS )
+ IF ( USE_GLFW3 )
+ FIND_PACKAGE ( GLFW3 REQUIRED )
+ SET ( OPENVDB_USE_GLFW_FLAG "-DOPENVDB_USE_GLFW_3" )
+@@ -42,9 +43,12 @@ ELSE ()
+ SET ( GLFW_LINK_LIBRARY ${GLFW_glfw_LIBRARY} )
+ SET ( GLFW_INCLUDE_DIRECTORY ${GLFW_INCLUDE_DIR} CACHE STRING "GLFW include directory")
+ ENDIF ()
++ENDIF ( OPENVDB_BUILD_TOOLS )
+
+ IF (WIN32)
++ IF ( OPENVDB_BUILD_TOOLS )
+ FIND_PACKAGE ( GLEW REQUIRED )
++ ENDIF ( OPENVDB_BUILD_TOOLS )
+ ELSE ()
+ FIND_PACKAGE ( Threads REQUIRED )
+ ENDIF()
+@@ -75,7 +79,7 @@ SET ( OPENVDB_PATCH_VERSION_NUMBER ${_openvdb_patch_version_number} CACHE STRING
+ # MESSAGE ( "OPENVDB_MINOR_VERSION_NUMBER = ${OPENVDB_MINOR_VERSION_NUMBER}" )
+ # MESSAGE ( "OPENVDB_PATCH_VERSION_NUMBER = ${OPENVDB_PATCH_VERSION_NUMBER}" )
+
+-FIND_PACKAGE ( Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS iostreams system thread ${OPENVDB_BOOST_PYTHON_LIBRARY_COMPONENT_NAME} )
++FIND_PACKAGE ( Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS iostreams system thread date_time ${OPENVDB_BOOST_PYTHON_LIBRARY_COMPONENT_NAME} )
+ IF (WIN32 AND OPENVDB_DISABLE_BOOST_IMPLICIT_LINKING)
+ ADD_DEFINITIONS ( -DBOOST_ALL_NO_LIB )
+ ENDIF ()
+@@ -85,7 +89,9 @@ FIND_PACKAGE ( TBB REQUIRED )
+ FIND_PACKAGE ( ZLIB REQUIRED )
+ FIND_PACKAGE ( ILMBase REQUIRED )
+ FIND_PACKAGE ( OpenEXR REQUIRED )
++IF ( OPENVDB_BUILD_TOOLS )
+ FIND_PACKAGE ( OpenGL REQUIRED )
++ENDIF ()
+ IF (OPENVDB_BUILD_DOCS)
+ FIND_PACKAGE ( Doxygen REQUIRED )
+ ENDIF ()
+@@ -127,7 +133,10 @@ 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_WIN32 -DNOMINMAX )
++ IF ( OPENVDB_SHARED )
++ ADD_DEFINITIONS ( -DOPENVDB_DLL )
++ ENDIF ()
+ ELSE ()
+ ADD_DEFINITIONS ( -pthread -fPIC )
+ ENDIF ()
+@@ -167,16 +176,20 @@ 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} /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}
+@@ -185,6 +198,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}
+@@ -193,7 +208,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
+@@ -203,7 +220,9 @@ ELSE()
+ PROPERTIES OUTPUT_NAME openvdb
+ )
+ ENDIF()
++ENDIF ()
+
++IF ( OPENVDB_SHARED )
+ SET_TARGET_PROPERTIES(
+ openvdb_shared
+ PROPERTIES
+@@ -211,13 +230,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} /bigobj"
+ )
+
++IF ( OPENVDB_BUILD_TOOLS )
+ ADD_EXECUTABLE ( vdb_print
+ ${VDB_PRINT_SOURCE_FILES}
+ )
+@@ -231,7 +252,7 @@ TARGET_LINK_LIBRARIES ( vdb_print
+ 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} /bigobj"
+ )
+ ADD_EXECUTABLE ( vdb_render
+ ${VDB_RENDER_SOURCE_FILES}
+@@ -256,26 +277,26 @@ 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 /bigobj"
+ )
+-IF (NOT WIN32)
+ ADD_EXECUTABLE ( vdb_view
+ ${VDB_VIEW_SOURCE_FILES}
+ )
+
+ TARGET_LINK_LIBRARIES ( vdb_view
+ openvdb_shared
+- ${Boost_THREAD_LIBRARY}
++ ${Boost_LIBRARIES}
+ ${OPENGL_gl_LIBRARY}
+ ${OPENGL_glu_LIBRARY}
+- ${COCOA_LIBRARY}
+- ${IOKIT_LIBRARY}
+- ${COREVIDEO_LIBRARY}
++ #${COCOA_LIBRARY}
++ #${IOKIT_LIBRARY}
++ #${COREVIDEO_LIBRARY}
+ ${GLFW_LINK_LIBRARY}
+ ${GLFW_DEPENDENT_LIBRARIES}
+ ${GLEW_GLEW_LIBRARY}
+ )
+-ENDIF ()
++
++ENDIF ( OPENVDB_BUILD_TOOLS )
+
+ SET ( UNITTEST_SOURCE_FILES
+ unittest/main.cc
+@@ -405,27 +426,32 @@ IF (OPENVDB_BUILD_DOCS)
+
+ ENDIF ()
+
++IF ( OPENVDB_BUILD_TOOLS )
+ # Installation
+-IF ( NOT WIN32 )
++#IF ( NOT WIN32 )
+ INSTALL ( TARGETS
+ vdb_view
+ DESTINATION
+ bin
+ )
+-ENDIF ()
++#ENDIF ()
+ INSTALL ( TARGETS
+ vdb_print
+ vdb_render
+ DESTINATION
+ bin
+ )
++ENDIF ( OPENVDB_BUILD_TOOLS )
+
++IF ( OPENVDB_STATIC)
+ INSTALL ( TARGETS
+ openvdb_static
+ DESTINATION
+ lib
+ )
++ENDIF ()
+
++IF ( OPENVDB_SHARED )
+ IF (WIN32)
+ INSTALL ( TARGETS
+ openvdb_shared
+@@ -439,6 +465,7 @@ ELSE()
+ lib
+ )
+ ENDIF ()
++ENDIF ( OPENVDB_SHARED )
+
+ INSTALL ( DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION include
+ FILES_MATCHING PATTERN "*.h"
diff --git a/ports/openvdb/CONTROL b/ports/openvdb/CONTROL
new file mode 100644
index 000000000..7576ff790
--- /dev/null
+++ b/ports/openvdb/CONTROL
@@ -0,0 +1,8 @@
+Source: openvdb
+Version: 5.0.0-1
+Build-Depends: ilmbase, openexr, tbb, blosc, boost-iostreams, boost-system, boost-thread, boost-date-time, boost-any, boost-uuid, boost-interprocess
+Description: Sparse volume data structure and tools
+
+Feature: tools
+Description: OpenVDB utilities: view, print and render
+Build-Depends: glew, glfw3
diff --git a/ports/openvdb/UseGLEWOnWindowsForViewer.patch b/ports/openvdb/UseGLEWOnWindowsForViewer.patch
new file mode 100644
index 000000000..bfa29c46c
--- /dev/null
+++ b/ports/openvdb/UseGLEWOnWindowsForViewer.patch
@@ -0,0 +1,60 @@
+diff --git a/openvdb/viewer/ClipBox.h b/openvdb/viewer/ClipBox.h
+index b792491..d2f50cc 100644
+--- a/openvdb/viewer/ClipBox.h
++++ b/openvdb/viewer/ClipBox.h
+@@ -36,6 +36,8 @@
+ #if defined(__APPLE__) || defined(MACOSX)
+ #include <OpenGL/gl.h>
+ #include <OpenGL/glu.h>
++#elif defined(WIN32)
++#include <GL/glew.h>
+ #else
+ #include <GL/gl.h>
+ #include <GL/glu.h>
+diff --git a/openvdb/viewer/Font.h b/openvdb/viewer/Font.h
+index 6e79704..566cfbd 100644
+--- a/openvdb/viewer/Font.h
++++ b/openvdb/viewer/Font.h
+@@ -36,6 +36,8 @@
+ #if defined(__APPLE__) || defined(MACOSX)
+ #include <OpenGL/gl.h>
+ #include <OpenGL/glu.h>
++#elif defined(WIN32)
++#include <GL/glew.h>
+ #else
+ #include <GL/gl.h>
+ #include <GL/glu.h>
+diff --git a/openvdb/viewer/RenderModules.h b/openvdb/viewer/RenderModules.h
+index f4745d9..339dfc3 100644
+--- a/openvdb/viewer/RenderModules.h
++++ b/openvdb/viewer/RenderModules.h
+@@ -43,6 +43,8 @@
+ #if defined(__APPLE__) || defined(MACOSX)
+ #include <OpenGL/gl.h>
+ #include <OpenGL/glu.h>
++#elif defined(WIN32)
++#include <GL/glew.h>
+ #else
+ #include <GL/gl.h>
+ #include <GL/glu.h>
+diff --git a/openvdb/viewer/Viewer.cc b/openvdb/viewer/Viewer.cc
+index 307aa2b..8b79358 100644
+--- a/openvdb/viewer/Viewer.cc
++++ b/openvdb/viewer/Viewer.cc
+@@ -540,7 +540,15 @@ ViewerImpl::open(int width, int height)
+ std::shared_ptr<GLFWwindow> curWindow(
+ glfwGetCurrentContext(), glfwMakeContextCurrent);
+ glfwMakeContextCurrent(mWindow);
+- BitmapFont13::initialize();
++ BitmapFont13::initialize();
++#ifdef WIN32
++ if (glewInit() == GLEW_OK) {
++ OPENVDB_LOG_DEBUG_RUNTIME("initialized GLEW from thread "
++ << boost::this_thread::get_id());
++ } else {
++ OPENVDB_LOG_ERROR("GLEW initialization failed");
++ }
++#endif
+ }
+ }
+ mCamera->setWindow(mWindow);
diff --git a/ports/openvdb/portfile.cmake b/ports/openvdb/portfile.cmake
new file mode 100644
index 000000000..a21e82240
--- /dev/null
+++ b/ports/openvdb/portfile.cmake
@@ -0,0 +1,118 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO dreamworksanimation/openvdb
+ REF v5.0.0
+ SHA512 8916d54683d81144114e57f8332be43b7547e6da5d194f6147bcefd4ee9e8e7ec817f27b65adb129dfd149e6b308f4bab30591ee953ee2c319636491bf051a2b
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/UseGLEWOnWindowsForViewer.patch
+ ${CMAKE_CURRENT_LIST_DIR}/AddLinkageAndToolsChoice.patch
+)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(OPENVDB_STATIC ON)
+ set(OPENVDB_SHARED OFF)
+else()
+ set(OPENVDB_STATIC OFF)
+ set(OPENVDB_SHARED ON)
+endif()
+
+if ("tools" IN_LIST FEATURES)
+ set(OPENVDB_BUILD_TOOLS ON)
+ set(OPENVDB_SHARED ON) # tools require shared version of the library
+else()
+ set(OPENVDB_BUILD_TOOLS OFF)
+endif()
+
+file(TO_NATIVE_PATH "${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}" INSTALL_LOCATION)
+
+file(TO_NATIVE_PATH "${INSTALL_LOCATION}/include" INCLUDE_LOCATION)
+file(TO_NATIVE_PATH "${INSTALL_LOCATION}/lib/" LIB_LOCATION)
+file(TO_NATIVE_PATH "${INSTALL_LOCATION}/debug/lib/" LIB_LOCATION_DEBUG)
+
+file(TO_NATIVE_PATH "${LIB_LOCATION}/zlib.lib" ZLIB_LIBRARY)
+file(TO_NATIVE_PATH "${LIB_LOCATION}/tbb.lib" Tbb_TBB_LIBRARY)
+file(TO_NATIVE_PATH "${LIB_LOCATION}/tbbmalloc.lib" Tbb_TBBMALLOC_LIBRARY)
+file(TO_NATIVE_PATH "${LIB_LOCATION_DEBUG}/tbb_debug.lib" Tbb_TBB_LIBRARY_DEBUG)
+file(TO_NATIVE_PATH "${LIB_LOCATION_DEBUG}/tbbmalloc_debug.lib" Tbb_TBBMALLOC_LIBRARY_DEBUG)
+
+file(TO_NATIVE_PATH "${LIB_LOCATION}/Half.lib" Ilmbase_HALF_LIBRARY)
+file(TO_NATIVE_PATH "${LIB_LOCATION}/Iex-2_2.lib" Ilmbase_IEX_LIBRARY)
+file(TO_NATIVE_PATH "${LIB_LOCATION}/IlmThread-2_2.lib" Ilmbase_ILMTHREAD_LIBRARY)
+
+if (OPENVDB_STATIC)
+ file(TO_NATIVE_PATH "${LIB_LOCATION}/glfw3.lib" GLFW3_LIBRARY)
+else()
+ file(TO_NATIVE_PATH "${LIB_LOCATION}/glfw3dll.lib" GLFW3_LIBRARY)
+endif()
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DOPENVDB_BUILD_UNITTESTS=OFF
+ -DOPENVDB_BUILD_PYTHON_MODULE=OFF
+ -DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF
+ -DUSE_GLFW3=ON
+ -DGLFW3_USE_STATIC_LIBS=${OPENVDB_STATIC}
+ -DBlosc_USE_STATIC_LIBS=${OPENVDB_STATIC}
+ -DOpenexr_USE_STATIC_LIBS=${OPENVDB_STATIC}
+ -DIlmbase_USE_STATIC_LIBS=${OPENVDB_STATIC}
+ -DGLFW3_glfw_LIBRARY=${GLFW3_LIBRARY}
+
+ -DIlmbase_HALF_LIBRARY=${Ilmbase_HALF_LIBRARY}
+ -DIlmbase_IEX_LIBRARY=${Ilmbase_IEX_LIBRARY}
+ -DIlmbase_ILMTHREAD_LIBRARY=${Ilmbase_ILMTHREAD_LIBRARY}
+
+ -DOPENVDB_STATIC=${OPENVDB_STATIC}
+ -DOPENVDB_SHARED=${OPENVDB_SHARED}
+ -DOPENVDB_BUILD_TOOLS=${OPENVDB_BUILD_TOOLS}
+
+ -DZLIB_INCLUDE_DIR=${INCLUDE_LOCATION}
+ -DTBB_INCLUDE_DIR=${INCLUDE_LOCATION}
+ -DZLIB_LIBRARY=${ZLIB_LIBRARY}
+
+ -DGLFW3_LOCATION=${INSTALL_LOCATION}
+ -DGLEW_LOCATION=${INSTALL_LOCATION}
+ -DILMBASE_LOCATION=${INSTALL_LOCATION}
+ -DOPENEXR_LOCATION=${INSTALL_LOCATION}
+ -DTBB_LOCATION=${INSTALL_LOCATION}
+ -DBLOSC_LOCATION=${INSTALL_LOCATION}
+ OPTIONS_RELEASE
+ -DTBB_LIBRARY_PATH=${LIB_LOCATION}
+ -DTbb_TBB_LIBRARY=${Tbb_TBB_LIBRARY}
+ -DTbb_TBBMALLOC_LIBRARY=${Tbb_TBBMALLOC_LIBRARY}
+ OPTIONS_DEBUG
+ -DTBB_LIBRARY_PATH=${LIB_LOCATION_DEBUG}
+ -DTbb_TBB_LIBRARY=${Tbb_TBB_LIBRARY_DEBUG}
+ -DTbb_TBBMALLOC_LIBRARY=${Tbb_TBBMALLOC_LIBRARY_DEBUG}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+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)
+ 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)
+endif()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/openvdb/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/openvdb RENAME copyright)
diff --git a/ports/pcl/CONTROL b/ports/pcl/CONTROL
index daadfa911..ba78abbf0 100644
--- a/ports/pcl/CONTROL
+++ b/ports/pcl/CONTROL
@@ -1,7 +1,11 @@
Source: pcl
-Version: 1.8.1-5
+Version: 1.8.1-9
Description: Point Cloud Library (PCL) is open source library for 2D/3D image and point cloud processing.
-Build-Depends: boost, eigen3, flann, qhull, vtk, openni2
+Build-Depends: eigen3, flann, qhull, vtk, boost-system, boost-filesystem, boost-thread, boost-date-time, boost-iostreams, boost-random, boost-foreach, boost-dynamic-bitset, boost-property-map, boost-graph, boost-multi-array, boost-signals2, boost-ptr-container, boost-uuid, boost-interprocess, boost-asio
+
+Feature: openni2
+Description: OpenNI2 support for PCL
+Build-Depends: openni2
Feature: qt
Description: Qt support for PCL
diff --git a/ports/pcl/cmakelists.patch b/ports/pcl/cmakelists.patch
new file mode 100644
index 000000000..d385fd291
--- /dev/null
+++ b/ports/pcl/cmakelists.patch
@@ -0,0 +1,25 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d36a581fb..b68962e97 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -258,7 +258,7 @@ if(OPENMP_FOUND)
+ set(OPENMP_DLL VCOMP120)
+ elseif(MSVC_VERSION EQUAL 1900)
+ set(OPENMP_DLL VCOMP140)
+- elseif(MSVC_VERSION EQUAL 1910)
++ elseif(MSVC_VERSION MATCHES "^191[0-9]$")
+ set(OPENMP_DLL VCOMP140)
+ endif()
+ if(OPENMP_DLL)
+@@ -327,9 +327,9 @@ endif(WITH_PNG)
+ # Qhull
+ option(WITH_QHULL "Include convex-hull operations" TRUE)
+ if(WITH_QHULL)
+- if(NOT PCL_SHARED_LIBS OR WIN32)
++ if(NOT PCL_SHARED_LIBS)
+ set(QHULL_USE_STATIC ON)
+- endif(NOT PCL_SHARED_LIBS OR WIN32)
++ endif(NOT PCL_SHARED_LIBS)
+ find_package(Qhull)
+ if(QHULL_FOUND)
+ include_directories(${QHULL_INCLUDE_DIRS})
diff --git a/ports/pcl/portfile.cmake b/ports/pcl/portfile.cmake
index d63c9dfbb..eeb7b0e6c 100644
--- a/ports/pcl/portfile.cmake
+++ b/ports/pcl/portfile.cmake
@@ -10,7 +10,8 @@ vcpkg_from_github(
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
- PATCHES "${CMAKE_CURRENT_LIST_DIR}/config.patch"
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/cmakelists.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/config.patch"
"${CMAKE_CURRENT_LIST_DIR}/config_install.patch"
"${CMAKE_CURRENT_LIST_DIR}/find_flann.patch"
"${CMAKE_CURRENT_LIST_DIR}/find_qhull.patch"
@@ -20,6 +21,11 @@ vcpkg_apply_patches(
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PCL_SHARED_LIBS)
+set(WITH_OPENNI2 OFF)
+if("openni2" IN_LIST FEATURES)
+ set(WITH_OPENNI2 ON)
+endif()
+
set(WITH_QT OFF)
if("qt" IN_LIST FEATURES)
set(WITH_QT ON)
@@ -44,7 +50,7 @@ vcpkg_configure_cmake(
# WITH
-DWITH_CUDA=OFF
-DWITH_LIBUSB=OFF
- -DWITH_OPENNI2=ON
+ -DWITH_OPENNI2=${WITH_OPENNI2}
-DWITH_PCAP=${WITH_PCAP}
-DWITH_PNG=OFF
-DWITH_QHULL=ON
diff --git a/ports/physfs/portfile.cmake b/ports/physfs/portfile.cmake
index 4e00a43fc..c6233eed3 100644
--- a/ports/physfs/portfile.cmake
+++ b/ports/physfs/portfile.cmake
@@ -1,3 +1,7 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
include(vcpkg_common_functions)
set(PHYSFS_VERSION 2.0.3)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/physfs-${PHYSFS_VERSION})
diff --git a/ports/poco/CONTROL b/ports/poco/CONTROL
index 4eb60a07d..69166867f 100644
--- a/ports/poco/CONTROL
+++ b/ports/poco/CONTROL
@@ -1,5 +1,5 @@
Source: poco
-Version: 1.7.8-2
+Version: 1.8.0.1
Build-Depends: zlib, pcre, sqlite3, expat
Description: Modern, powerful open source C++ class libraries for building network and internet-based applications that run on desktop, server, mobile and embedded systems.
diff --git a/ports/poco/portfile.cmake b/ports/poco/portfile.cmake
index 315eaf2e5..6a187fac8 100644
--- a/ports/poco/portfile.cmake
+++ b/ports/poco/portfile.cmake
@@ -1,12 +1,12 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/poco-poco-1.7.8-release)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/pocoproject/poco/archive/poco-1.7.8-release.tar.gz"
- FILENAME "poco-poco-1.7.8-release.tar.gz"
- SHA512 50a47e6f69491859f48b72e3695c380ec871f7d5249d938216e3be41579d752675e5d746a150720d93122f87f585ebeea24dc9660c81642a12e70f761b9d2502
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO pocoproject/poco
+ REF poco-1.8.0.1-release
+ SHA512 b4a58053235582038186bdddbfa4842833bb3529af9522662e935efaf852f5155addd510729ea5c148b3bcc57ed3b8287cd98cbeb6d04e1a13bd31fadbdf7ad8
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
diff --git a/ports/protobuf/CONTROL b/ports/protobuf/CONTROL
index 88904f315..c52a3ce55 100644
--- a/ports/protobuf/CONTROL
+++ b/ports/protobuf/CONTROL
@@ -1,5 +1,5 @@
Source: protobuf
-Version: 3.4.1-2
+Version: 3.5.0-1
Description: Protocol Buffers - Google's data interchange format
Feature: zlib
diff --git a/ports/protobuf/export-ParseGeneratorParameter.patch b/ports/protobuf/export-ParseGeneratorParameter.patch
new file mode 100644
index 000000000..38b45a4c4
--- /dev/null
+++ b/ports/protobuf/export-ParseGeneratorParameter.patch
@@ -0,0 +1,13 @@
+diff --git a/src/google/protobuf/compiler/code_generator.h b/src/google/protobuf/compiler/code_generator.h
+index 4b1d90b..4c2b3ee 100644
+--- a/src/google/protobuf/compiler/code_generator.h
++++ b/src/google/protobuf/compiler/code_generator.h
+@@ -166,7 +166,7 @@ typedef GeneratorContext OutputDirectory;
+ // "foo=bar,baz,qux=corge"
+ // parses to the pairs:
+ // ("foo", "bar"), ("baz", ""), ("qux", "corge")
+-void ParseGeneratorParameter(
++LIBPROTOC_EXPORT void ParseGeneratorParameter(
+ const string&, std::vector<std::pair<string, string> >*);
+
+ } // namespace compiler
diff --git a/ports/protobuf/portfile.cmake b/ports/protobuf/portfile.cmake
index 3a5ac2c17..7e0c5c4f8 100644
--- a/ports/protobuf/portfile.cmake
+++ b/ports/protobuf/portfile.cmake
@@ -1,17 +1,17 @@
include(vcpkg_common_functions)
-set(PROTOBUF_VERSION 3.4.1)
-set(PROTOC_VERSION 3.4.0)
+set(PROTOBUF_VERSION 3.5.0)
+set(PROTOC_VERSION 3.5.0)
vcpkg_download_distfile(ARCHIVE_FILE
URLS "https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/protobuf-cpp-${PROTOBUF_VERSION}.tar.gz"
FILENAME "protobuf-cpp-${PROTOBUF_VERSION}.tar.gz"
- SHA512 6189e23c7e381f62e971bd0e35ad9c3ed8effe584755357013887c6a582cb5a9a654c39affa2a073b658854138f31bfb70f89fa1df494e9386f1d64fd73d07d2
+ SHA512 b1d3f3617898e3f73630ea7a43416a60b970291b4f93952b8d4f68ee5cd401f752d76cd1f6a65a87186b415208142401e01ffebb2ec52534e1db31abcc0d052e
)
vcpkg_download_distfile(TOOL_ARCHIVE_FILE
URLS "https://github.com/google/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-win32.zip"
FILENAME "protoc-${PROTOC_VERSION}-win32.zip"
- SHA512 b874c3f47b39ac78f5675e05220318683004a365c248bf47ba50d8c66c8ed7763432451bab30524e131e1185a2bdaa6e6071b389eb61ad58b1b95974cf39d41b
+ SHA512 d332045346883ac1ca76a77cc9d6303b1c83147f49e7525c531d390b1ac57be1c765e01dc53eeb38a0d9fa3e30cab420f6a6f52dbb0c4d0a84a421de955007a4
)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION})
@@ -22,7 +22,9 @@ vcpkg_extract_source_archive(${ARCHIVE_FILE})
# Add a flag that can be set to disable the protobuf compiler
vcpkg_apply_patches(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION}
- PATCHES "${CMAKE_CURRENT_LIST_DIR}/001-add-compiler-flag.patch"
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/001-add-compiler-flag.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/export-ParseGeneratorParameter.patch"
)
diff --git a/ports/pthreads/portfile.cmake b/ports/pthreads/portfile.cmake
index cddb3f411..2f540316e 100644
--- a/ports/pthreads/portfile.cmake
+++ b/ports/pthreads/portfile.cmake
@@ -1,3 +1,7 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pthreads-w32-2-9-1-release)
vcpkg_download_distfile(ARCHIVE
diff --git a/ports/pugixml/CONTROL b/ports/pugixml/CONTROL
index 01679ea6e..eb1f4e634 100644
--- a/ports/pugixml/CONTROL
+++ b/ports/pugixml/CONTROL
@@ -1,3 +1,3 @@
Source: pugixml
-Version: 1.8.1-2
+Version: 1.8.1-3
Description: C++ XML processing library
diff --git a/ports/pugixml/portfile.cmake b/ports/pugixml/portfile.cmake
index 0d5123974..889063223 100644
--- a/ports/pugixml/portfile.cmake
+++ b/ports/pugixml/portfile.cmake
@@ -26,8 +26,7 @@ endif()
vcpkg_install_cmake()
vcpkg_copy_pdbs()
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/pugixml")
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(INSTALL ${SOURCE_PATH}/readme.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/pugixml RENAME copyright) \ No newline at end of file
+file(INSTALL ${SOURCE_PATH}/readme.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/pugixml RENAME copyright)
diff --git a/ports/qhull/CONTROL b/ports/qhull/CONTROL
index ff0847781..8eb3f8772 100644
--- a/ports/qhull/CONTROL
+++ b/ports/qhull/CONTROL
@@ -1,3 +1,3 @@
Source: qhull
-Version: 2015.2-1
+Version: 2015.2-2
Description: computes the convex hull, Delaunay triangulation, Voronoi diagram
diff --git a/ports/qhull/portfile.cmake b/ports/qhull/portfile.cmake
index 493a14e38..25ee8f0d1 100644
--- a/ports/qhull/portfile.cmake
+++ b/ports/qhull/portfile.cmake
@@ -1,15 +1,3 @@
-# Common Ambient Variables:
-# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
-# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
-# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT}
-# PORT = current port name (zlib, etc)
-# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc)
-# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic)
-# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic)
-# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
-# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm)
-#
-
include(vcpkg_common_functions)
vcpkg_from_github(
@@ -22,7 +10,7 @@ vcpkg_from_github(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- #PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ PREFER_NINJA
OPTIONS
-DINCLUDE_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/include
-DMAN_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/doc/qhull
@@ -51,8 +39,11 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qhull.lib ${CURRENT_PACKAGES_DIR}/debug/lib/qhull_d.lib)
file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qhull_p.lib ${CURRENT_PACKAGES_DIR}/debug/lib/qhull_pd.lib)
file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qhull_r.lib ${CURRENT_PACKAGES_DIR}/debug/lib/qhull_rd.lib)
+else()
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qhullcpp.lib ${CURRENT_PACKAGES_DIR}/debug/lib/qhullcpp_d.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qhullstatic.lib ${CURRENT_PACKAGES_DIR}/debug/lib/qhullstatic_d.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qhullstatic_r.lib ${CURRENT_PACKAGES_DIR}/debug/lib/qhullstatic_rd.lib)
endif()
-# Handle copyright
file(COPY ${SOURCE_PATH}/README.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/qhull)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/qhull/README.txt ${CURRENT_PACKAGES_DIR}/share/qhull/copyright)
diff --git a/ports/qpid-proton/CONTROL b/ports/qpid-proton/CONTROL
new file mode 100644
index 000000000..6f64c3fcf
--- /dev/null
+++ b/ports/qpid-proton/CONTROL
@@ -0,0 +1,4 @@
+Source: qpid-proton
+Version: 0.18.1
+Build-Depends: openssl
+Description: Qpid Proton is a high-performance, lightweight messaging library. \ No newline at end of file
diff --git a/ports/qpid-proton/portfile.cmake b/ports/qpid-proton/portfile.cmake
new file mode 100644
index 000000000..91be9aae3
--- /dev/null
+++ b/ports/qpid-proton/portfile.cmake
@@ -0,0 +1,39 @@
+include(vcpkg_common_functions)
+
+# Use this throughout rather than literal string
+set(QPID_PROTON_VERSION 0.18.1)
+vcpkg_find_acquire_program(PYTHON2)
+
+# Go grab the code. Set SHA512 to 1 to get correct sha from download
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO apache/qpid-proton
+ REF ${QPID_PROTON_VERSION}
+ SHA512 92cbd7f534e8b180fb72888999af2735541663c70dde1e4e1382f39c5057920df0fb72527db23008823d69a7ddac335217f16270c0bbdb4dfe26733feddf94cc
+ HEAD_REF next
+)
+
+# Run cmake configure step
+vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DPYTHON_EXECUTABLE=${PYTHON2})
+
+# Run cmake install step
+vcpkg_install_cmake()
+
+# Copy across any pdbs generated
+vcpkg_copy_pdbs()
+
+# Rename share subdirectory
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/proton-${QPID_PROTON_VERSION}
+ ${CURRENT_PACKAGES_DIR}/share/${PORT})
+
+# Vcpkg expects file with name "copyright"
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE
+ ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright)
+
+# Remove extraneous unrequired-for-vcpkg files
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake)
diff --git a/ports/qt5/CONTROL b/ports/qt5/CONTROL
index e8c7f6f01..7c87d3806 100644
--- a/ports/qt5/CONTROL
+++ b/ports/qt5/CONTROL
@@ -1,4 +1,4 @@
Source: qt5
Version: 5.9.2-1
Description: Qt5 Application Framework
-Build-Depends: qt5base, qt5charts, qt5datavis3d, qt5declarative, qt5gamepad, qt5imageformats, qt5multimedia, qt5scxml, qt5serialport, qt5speech, qt5svg, qt5tools, qt5virtualkeyboard, qt5websockets, qt53d, qt5winextras, qt5xmlpatterns
+Build-Depends: qt5base, qt5charts, qt5datavis3d, qt5declarative, qt5gamepad, qt5imageformats, qt5multimedia, qt5scxml, qt5serialport, qt5speech, qt5svg, qt5tools, qt5virtualkeyboard, qt5websockets, qt53d, qt5winextras, qt5xmlpatterns \ No newline at end of file
diff --git a/ports/range-v3/CONTROL b/ports/range-v3/CONTROL
index 2bf8b6087..6325b3a55 100644
--- a/ports/range-v3/CONTROL
+++ b/ports/range-v3/CONTROL
@@ -1,3 +1,3 @@
Source: range-v3
-Version: 20151130-vcpkg4
+Version: 20151130-vcpkg5
Description: Range library for C++11/14/17.
diff --git a/ports/range-v3/portfile.cmake b/ports/range-v3/portfile.cmake
index 61429548b..b4c0c1403 100644
--- a/ports/range-v3/portfile.cmake
+++ b/ports/range-v3/portfile.cmake
@@ -17,8 +17,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/Range-V3-VS2015
- REF 2695c779d52717b635e97352fed6b75d32eba7a4
- SHA512 a1dad795b15c8491963f75fb58097dd290203406038cb2790c66b7ebd854a42043a92cfa2fed30c125529c3aa8d0cfc05cf1d149c84e96eb1f865857ad87adeb
+ REF 423bcae5cf18948591361329784d3b12ef41711b
+ SHA512 c6756bc6b5131c4c0ffb96550fb40decf734fc8c30e3d51c5c2bf03aae4d7426de36e896a1abf0a200a49a3906d4b60c1cf52f43504554b64d89c91de3e92746
HEAD_REF master
)
diff --git a/ports/re2/CONTROL b/ports/re2/CONTROL
new file mode 100644
index 000000000..89cb6a1a0
--- /dev/null
+++ b/ports/re2/CONTROL
@@ -0,0 +1,3 @@
+Source: re2
+Version: 2017-12-01-1
+Description: RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library. \ No newline at end of file
diff --git a/ports/re2/portfile.cmake b/ports/re2/portfile.cmake
new file mode 100644
index 000000000..bc9544db1
--- /dev/null
+++ b/ports/re2/portfile.cmake
@@ -0,0 +1,20 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/re2
+ REF 2017-12-01
+ SHA512 1943be4543ac6cedaef27202e126bddc57472926c2f28470c5e980902252d58e18bb4578c538883d9368a041e4928983fa27cd960c3671fe3b6366dbd5048b29
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS -DRE2_BUILD_TESTING=OFF
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/re2 RENAME copyright)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/realsense2/CONTROL b/ports/realsense2/CONTROL
index a57375819..9153402c7 100644
--- a/ports/realsense2/CONTROL
+++ b/ports/realsense2/CONTROL
@@ -1,3 +1,3 @@
Source: realsense2
-Version: 2.8.1
+Version: 2.8.2
Description: Intel® RealSense™ SDK 2.0 is a cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300).
diff --git a/ports/realsense2/portfile.cmake b/ports/realsense2/portfile.cmake
index 522bd7252..609b1c660 100644
--- a/ports/realsense2/portfile.cmake
+++ b/ports/realsense2/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO IntelRealSense/librealsense
- REF v2.8.1
- SHA512 af6ae166ef0879d4da434cebea95358a4c3907bd71913577008a21717a9e45400a6eafffe5ddbf9cc50bd939d4dae0863e2f34b7ee76de276fedc68117a21e71
+ REF v2.8.2
+ SHA512 a2622ff241e939fad74f6d0224b5f9b505e971935bb8f27dc10159a5853bc5d55870c312c0f43014c8c7ec5a1c824e659ee9ee9a574b2d7c9b8e484c1a4918a1
HEAD_REF master
)
diff --git a/ports/scintilla/CONTROL b/ports/scintilla/CONTROL
new file mode 100644
index 000000000..f382cb552
--- /dev/null
+++ b/ports/scintilla/CONTROL
@@ -0,0 +1,3 @@
+Source: scintilla
+Version: 3.7.6
+Description: A free source code editing component for Win32, GTK+, and OS X
diff --git a/ports/scintilla/portfile.cmake b/ports/scintilla/portfile.cmake
new file mode 100644
index 000000000..4bdfc8ec8
--- /dev/null
+++ b/ports/scintilla/portfile.cmake
@@ -0,0 +1,61 @@
+# Common Ambient Variables:
+# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
+# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
+# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT}
+# PORT = current port name (zlib, etc)
+# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc)
+# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic)
+# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic)
+# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
+# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm)
+#
+
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/scintilla)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.scintilla.org/scintilla376.zip"
+ FILENAME "scintilla376.zip"
+ SHA512 618a50405eede3277d7696ac58122aeeb490d10ae392c60c7f78baaa96c965a8e1a599948e0ebd61bed7f75894b01bdf4574a0e5d0e20996bfdfb2e1bdb33203
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+if(TRIPLET_SYSTEM_ARCH MATCHES "x86")
+ set(BUILD_ARCH "Win32")
+else()
+ set(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH})
+endif()
+
+vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/Win32/SciLexer.vcxproj
+ PLATFORM ${MSBUILD_PLATFORM}
+)
+
+# Handle headers
+file(INSTALL ${SOURCE_PATH}/include/ILexer.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/include/Sci_Position.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/include/SciLexer.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/include/Scintilla.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+# Handle libraries
+if(BUILD_ARCH STREQUAL "Win32")
+ set(BUILD_DIR_DEBUG "/Debug")
+ set(BUILD_DIR_RELEASE "/Release")
+else()
+ set(BUILD_DIR_DEBUG "${BUILD_ARCH}/Debug")
+ set(BUILD_DIR_RELEASE "${BUILD_ARCH}/Release")
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE MATCHES "dynamic")
+ file(INSTALL ${SOURCE_PATH}/win32/${BUILD_DIR_RELEASE}/SciLexer.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(INSTALL ${SOURCE_PATH}/win32/${BUILD_DIR_DEBUG}/SciLexer.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+file(INSTALL ${SOURCE_PATH}/win32/${BUILD_DIR_RELEASE}/SciLexer.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+file(INSTALL ${SOURCE_PATH}/win32/${BUILD_DIR_DEBUG}/SciLexer.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+
+# Handle PDBs
+
+file(INSTALL ${SOURCE_PATH}/win32/${BUILD_DIR_RELEASE}/SciLexer.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+file(INSTALL ${SOURCE_PATH}/win32/${BUILD_DIR_DEBUG}/SciLexer.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/scintilla RENAME copyright)
diff --git a/ports/sciter/CONTROL b/ports/sciter/CONTROL
index 5583c626d..1c43b1720 100644
--- a/ports/sciter/CONTROL
+++ b/ports/sciter/CONTROL
@@ -1,4 +1,4 @@
Source: sciter
-Version: 4.0.4
+Version: 4.0.7
Description: Sciter is an embeddable HTML/CSS/scripting engine.
Maintainer: andrew.fedoniouk@gmail.com, ehysta@gmail.com
diff --git a/ports/sciter/portfile.cmake b/ports/sciter/portfile.cmake
index ac3020144..55b99d296 100644
--- a/ports/sciter/portfile.cmake
+++ b/ports/sciter/portfile.cmake
@@ -12,9 +12,8 @@ include(vcpkg_common_functions)
# header-only library
set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled)
-set(SCITER_VERSION 4.0.4)
-set(SCITER_REVISION 9b5954df34ac0094e6037ac8aa6e00fb883185f9)
-set(SCITER_SHA a87b05aec6c99f56926b005eb1303b2b68f901fe2658433ca11d704b50308e6d291026404b86320fae0f1b12ca257a35338464f21d94ebeaa6e40cfec64a9201)
+set(SCITER_REVISION e5e612ae914233d2436240cdd7730fb739461f8e)
+set(SCITER_SHA 8d4412e6e9047bbcc5fa0dae4b49844367f3b621b0edca2544f907dc651a1be7fddbedf5004ddbcb5b9bbe26abca0259c78c89febab6778806c4a62a50908bf2)
if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64)
set(SCITER_ARCH 64)
@@ -22,7 +21,8 @@ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
set(SCITER_ARCH 32)
endif()
-# check out
+# check out the `https://github.com/c-smile/sciter-sdk/archive/${SCITER_REVISION}.tar.gz`
+# hash checksum can be obtained with `curl -L -o tmp.tgz ${URL} && vcpkg hash tmp.tgz`
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO c-smile/sciter-sdk
diff --git a/ports/sdl2/CONTROL b/ports/sdl2/CONTROL
index f662ef6e7..44ea3ce3c 100644
--- a/ports/sdl2/CONTROL
+++ b/ports/sdl2/CONTROL
@@ -1,3 +1,3 @@
Source: sdl2
-Version: 2.0.7-1
+Version: 2.0.7-3
Description: Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.
diff --git a/ports/sdl2/enable-winrt-cmake.patch b/ports/sdl2/enable-winrt-cmake.patch
new file mode 100644
index 000000000..dcd2afa67
--- /dev/null
+++ b/ports/sdl2/enable-winrt-cmake.patch
@@ -0,0 +1,206 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 73d9407..082fbc5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -3,7 +3,11 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
+ endif()
+
+ cmake_minimum_required(VERSION 2.8.11)
+-project(SDL2 C)
++if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
++ project(SDL2 C CXX)
++else()
++ project(SDL2 C)
++endif()
+
+ # !!! FIXME: this should probably do "MACOSX_RPATH ON" as a target property
+ # !!! FIXME: for the SDL2 shared library (so you get an
+@@ -358,7 +362,6 @@ file(GLOB SOURCE_FILES
+ ${SDL2_SOURCE_DIR}/src/timer/*.c
+ ${SDL2_SOURCE_DIR}/src/video/*.c)
+
+-
+ if(ASSERTIONS STREQUAL "auto")
+ # Do nada - use optimization settings to determine the assertion level
+ elseif(ASSERTIONS STREQUAL "disabled")
+@@ -1132,6 +1135,22 @@ elseif(WINDOWS)
+ file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/windows/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES})
+
++ if(WINDOWS_STORE)
++ cmake_minimum_required(VERSION 3.0)
++ add_definitions(-DSDL_BUILDING_WINRT=1 -ZW)
++ link_libraries(
++ -nodefaultlib:vccorlib$<$<CONFIG:Debug>:d>
++ -nodefaultlib:msvcrt$<$<CONFIG:Debug>:d>
++ vccorlib$<$<CONFIG:Debug>:d>.lib
++ msvcrt$<$<CONFIG:Debug>:d>.lib
++ )
++ endif()
++
++ if(WINDOWS_STORE)
++ file(GLOB WINRT_SOURCE_FILES ${SDL2_SOURCE_DIR}/src/core/winrt/*.c ${SDL2_SOURCE_DIR}/src/core/winrt/*.cpp)
++ set(SOURCE_FILES ${SOURCE_FILES} ${WINRT_SOURCE_FILES})
++ endif()
++
+ if(MSVC)
+ # Prevent codegen that would use the VC runtime libraries.
+ set_property(DIRECTORY . APPEND PROPERTY COMPILE_OPTIONS "/GS-")
+@@ -1176,7 +1195,11 @@ elseif(WINDOWS)
+ check_include_file(d3d11_1.h HAVE_D3D11_H)
+ check_include_file(ddraw.h HAVE_DDRAW_H)
+ check_include_file(dsound.h HAVE_DSOUND_H)
+- check_include_file(dinput.h HAVE_DINPUT_H)
++ if(WINDOWS_STORE)
++ set(HAVE_DINPUT_H 0)
++ else()
++ check_include_file(dinput.h HAVE_DINPUT_H)
++ endif()
+ check_include_file(xaudio2.h HAVE_XAUDIO2_H)
+ check_include_file(mmdeviceapi.h HAVE_MMDEVICEAPI_H)
+ check_include_file(audioclient.h HAVE_AUDIOCLIENT_H)
+@@ -1193,12 +1216,14 @@ elseif(WINDOWS)
+ endif()
+
+ if(SDL_AUDIO)
+- set(SDL_AUDIO_DRIVER_WINMM 1)
+- file(GLOB WINMM_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/winmm/*.c)
+- set(SOURCE_FILES ${SOURCE_FILES} ${WINMM_AUDIO_SOURCES})
+- set(HAVE_SDL_AUDIO TRUE)
++ if(NOT WINDOWS_STORE)
++ set(SDL_AUDIO_DRIVER_WINMM 1)
++ file(GLOB WINMM_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/winmm/*.c)
++ set(SOURCE_FILES ${SOURCE_FILES} ${WINMM_AUDIO_SOURCES})
++ set(HAVE_SDL_AUDIO TRUE)
++ endif()
+
+- if(HAVE_DSOUND_H)
++ if(HAVE_DSOUND_H AND NOT WINDOWS_STORE)
+ set(SDL_AUDIO_DRIVER_DSOUND 1)
+ file(GLOB DSOUND_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/directsound/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${DSOUND_AUDIO_SOURCES})
+@@ -1208,9 +1233,10 @@ elseif(WINDOWS)
+ set(SDL_AUDIO_DRIVER_XAUDIO2 1)
+ file(GLOB XAUDIO2_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/xaudio2/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${XAUDIO2_AUDIO_SOURCES})
++ set(HAVE_SDL_AUDIO TRUE)
+ endif()
+
+- if(HAVE_AUDIOCLIENT_H AND HAVE_MMDEVICEAPI_H)
++ if(HAVE_AUDIOCLIENT_H AND HAVE_MMDEVICEAPI_H AND NOT WINDOWS_STORE)
+ set(SDL_AUDIO_DRIVER_WASAPI 1)
+ file(GLOB WASAPI_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/wasapi/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${WASAPI_AUDIO_SOURCES})
+@@ -1222,11 +1248,20 @@ elseif(WINDOWS)
+ if(NOT SDL_LOADSO)
+ message_error("SDL_VIDEO requires SDL_LOADSO, which is not enabled")
+ endif()
+- set(SDL_VIDEO_DRIVER_WINDOWS 1)
+- file(GLOB WIN_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/windows/*.c)
++ if(WINDOWS_STORE)
++ set(SDL_VIDEO_DRIVER_WINRT 1)
++ file(GLOB WIN_VIDEO_SOURCES
++ ${SDL2_SOURCE_DIR}/src/video/winrt/*.c
++ ${SDL2_SOURCE_DIR}/src/video/winrt/*.cpp
++ ${SDL2_SOURCE_DIR}/src/render/direct3d11/*.cpp
++ )
++ else()
++ set(SDL_VIDEO_DRIVER_WINDOWS 1)
++ file(GLOB WIN_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/windows/*.c)
++ endif()
+ set(SOURCE_FILES ${SOURCE_FILES} ${WIN_VIDEO_SOURCES})
+
+- if(RENDER_D3D AND HAVE_D3D_H)
++ if(RENDER_D3D AND HAVE_D3D_H AND NOT WINDOWS_STORE)
+ set(SDL_VIDEO_RENDER_D3D 1)
+ set(HAVE_RENDER_D3D TRUE)
+ endif()
+@@ -1249,20 +1284,31 @@ elseif(WINDOWS)
+ endif()
+
+ if(SDL_POWER)
+- set(SDL_POWER_WINDOWS 1)
+- set(SOURCE_FILES ${SOURCE_FILES} ${SDL2_SOURCE_DIR}/src/power/windows/SDL_syspower.c)
++ if(WINDOWS_STORE)
++ set(SDL_POWER_WINRT 1)
++ set(SOURCE_FILES ${SOURCE_FILES} ${SDL2_SOURCE_DIR}/src/power/winrt/SDL_syspower.cpp)
++ else()
++ set(SDL_POWER_WINDOWS 1)
++ set(SOURCE_FILES ${SOURCE_FILES} ${SDL2_SOURCE_DIR}/src/power/windows/SDL_syspower.c)
++ endif()
+ set(HAVE_SDL_POWER TRUE)
+ endif()
+
+ if(SDL_FILESYSTEM)
+ set(SDL_FILESYSTEM_WINDOWS 1)
+- file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/windows/*.c)
++ if(WINDOWS_STORE)
++ file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/winrt/*.cpp)
++ else()
++ file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/windows/*.c)
++ endif()
+ set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES})
+ set(HAVE_SDL_FILESYSTEM TRUE)
+ endif()
+
+ # Libraries for Win32 native and MinGW
+- list(APPEND EXTRA_LIBS user32 gdi32 winmm imm32 ole32 oleaut32 version uuid)
++ if(NOT WINDOWS_STORE)
++ list(APPEND EXTRA_LIBS user32 gdi32 winmm imm32 ole32 oleaut32 version uuid)
++ endif()
+
+ # TODO: in configure.in the check for timers is set on
+ # cygwin | mingw32* - does this include mingw32CE?
+@@ -1284,7 +1330,7 @@ elseif(WINDOWS)
+ set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES})
+
+ if(SDL_VIDEO)
+- if(VIDEO_OPENGL)
++ if(VIDEO_OPENGL AND NOT WINDOWS_STORE)
+ set(SDL_VIDEO_OPENGL 1)
+ set(SDL_VIDEO_OPENGL_WGL 1)
+ set(SDL_VIDEO_RENDER_OGL 1)
+@@ -1688,9 +1734,11 @@ endif()
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+
+ # Always build SDLmain
+-add_library(SDL2main STATIC ${SDLMAIN_SOURCES})
+-target_include_directories(SDL2main PUBLIC $<INSTALL_INTERFACE:include>)
+-set(_INSTALL_LIBS "SDL2main")
++if(NOT WINDOWS_STORE)
++ add_library(SDL2main STATIC ${SDLMAIN_SOURCES})
++ target_include_directories(SDL2main PUBLIC $<INSTALL_INTERFACE:include>)
++ set(_INSTALL_LIBS "SDL2main")
++endif()
+
+ if(SDL_SHARED)
+ add_library(SDL2 SHARED ${SOURCE_FILES} ${VERSION_SOURCES})
+diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake
+index 9b20398..7ae6e35 100644
+--- a/include/SDL_config.h.cmake
++++ b/include/SDL_config.h.cmake
+@@ -298,6 +298,7 @@
+ #cmakedefine SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC @SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC@
+ #cmakedefine SDL_VIDEO_DRIVER_DUMMY @SDL_VIDEO_DRIVER_DUMMY@
+ #cmakedefine SDL_VIDEO_DRIVER_WINDOWS @SDL_VIDEO_DRIVER_WINDOWS@
++#cmakedefine SDL_VIDEO_DRIVER_WINRT @SDL_VIDEO_DRIVER_WINRT@
+ #cmakedefine SDL_VIDEO_DRIVER_WAYLAND @SDL_VIDEO_DRIVER_WAYLAND@
+ #cmakedefine SDL_VIDEO_DRIVER_RPI @SDL_VIDEO_DRIVER_RPI@
+ #cmakedefine SDL_VIDEO_DRIVER_VIVANTE @SDL_VIDEO_DRIVER_VIVANTE@
+@@ -365,6 +366,7 @@
+ #cmakedefine SDL_POWER_ANDROID @SDL_POWER_ANDROID@
+ #cmakedefine SDL_POWER_LINUX @SDL_POWER_LINUX@
+ #cmakedefine SDL_POWER_WINDOWS @SDL_POWER_WINDOWS@
++#cmakedefine SDL_POWER_WINRT @SDL_POWER_WINRT@
+ #cmakedefine SDL_POWER_MACOSX @SDL_POWER_MACOSX@
+ #cmakedefine SDL_POWER_HAIKU @SDL_POWER_HAIKU@
+ #cmakedefine SDL_POWER_EMSCRIPTEN @SDL_POWER_EMSCRIPTEN@
+@@ -387,7 +389,7 @@
+ #cmakedefine SDL_LIBSAMPLERATE_DYNAMIC @SDL_LIBSAMPLERATE_DYNAMIC@
+
+ /* Platform specific definitions */
+-#if !defined(__WIN32__)
++#if !defined(__WIN32__) && !defined(__WINRT__)
+ # if !defined(_STDINT_H_) && !defined(_STDINT_H) && !defined(HAVE_STDINT_H) && !defined(_HAVE_STDINT_H)
+ typedef unsigned int size_t;
+ typedef signed char int8_t;
diff --git a/ports/sdl2/portfile.cmake b/ports/sdl2/portfile.cmake
index 9dd029c84..17f96748e 100644
--- a/ports/sdl2/portfile.cmake
+++ b/ports/sdl2/portfile.cmake
@@ -15,56 +15,41 @@ vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
${CMAKE_CURRENT_LIST_DIR}/export-symbols-only-in-shared-build.patch
+ ${CMAKE_CURRENT_LIST_DIR}/enable-winrt-cmake.patch
)
-if(VCPKG_CMAKE_SYSTEM_NAME MATCHES "WindowsStore")
- vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj
- )
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SDL_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SDL_SHARED)
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" FORCE_STATIC_VCRT)
- file(COPY
- ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/Debug/SDL-UWP/SDL2.dll
- ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/Debug/SDL-UWP/SDL2.pdb
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
- file(COPY
- ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/Release/SDL-UWP/SDL2.dll
- ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/Release/SDL-UWP/SDL2.pdb
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
- file(COPY ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/Debug/SDL-UWP/SDL2.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
- file(COPY ${SOURCE_PATH}/VisualC-WinRT/UWP_VS2015/Release/SDL-UWP/SDL2.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DSDL_STATIC=${SDL_STATIC}
+ -DSDL_SHARED=${SDL_SHARED}
+ -DVIDEO_VULKAN=OFF
+ -DFORCE_STATIC_VCRT=${FORCE_STATIC_VCRT}
+ -DLIBC=ON
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include)
- file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include)
- file(COPY ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR}/include)
- file(RENAME ${CURRENT_PACKAGES_DIR}/include/include ${CURRENT_PACKAGES_DIR}/include/SDL2)
-else()
- if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
- set(SDL_STATIC_LIB ON)
- set(SDL_SHARED_LIB OFF)
- else()
- set(SDL_STATIC_LIB OFF)
- set(SDL_SHARED_LIB ON)
- endif()
- if(VCPKG_CRT_LINKAGE STREQUAL static)
- set(SDL_STATIC_CRT ON)
- else()
- set(SDL_STATIC_CRT OFF)
- endif()
-
- vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS
- -DSDL_STATIC=${SDL_STATIC_LIB}
- -DSDL_SHARED=${SDL_SHARED_LIB}
- -DFORCE_STATIC_VCRT=${SDL_STATIC_CRT}
- -DLIBC=ON
- )
+vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake")
- vcpkg_install_cmake()
-
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/SDL2main.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/SDL2main.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/SDL2maind.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/SDL2maind.lib)
- vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake")
+ file(GLOB SHARE_FILES ${CURRENT_PACKAGES_DIR}/share/sdl2/*.cmake)
+ foreach(SHARE_FILE ${SHARE_FILES})
+ file(READ "${SHARE_FILE}" _contents)
+ string(REPLACE "lib/SDL2main" "lib/manual-link/SDL2main" _contents "${_contents}")
+ file(WRITE "${SHARE_FILE}" "${_contents}")
+ endforeach()
endif()
file(INSTALL ${SOURCE_PATH}/COPYING.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sdl2 RENAME copyright)
diff --git a/ports/sobjectizer/001-cmake.patch b/ports/sobjectizer/001-cmake.patch
deleted file mode 100644
index cb4285e91..000000000
--- a/ports/sobjectizer/001-cmake.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/so_5/CMakeLists.txt b/so_5/CMakeLists.txt
-index bd6f1d7..0e30831 100644
---- a/so_5/CMakeLists.txt
-+++ b/so_5/CMakeLists.txt
-@@ -71,12 +71,17 @@ set(SO_5_SRC exception.cpp
- disp/prio_dedicated_threads/one_per_prio/pub.cpp
- )
-
--add_library(${SO_5_TARGET} SHARED ${SO_5_SRC})
-+if (SO_BUILD_STATIC)
-+ message(STATUS "Building static.")
-+ add_library(${SO_5_TARGET} STATIC ${SO_5_SRC})
-+ target_compile_definitions(${SO_5_TARGET}
-+ PUBLIC -DSO_5_STATIC_LIB
-+ )
-+else()
-+ message(STATUS "Building dynamic.")
-+ add_library(${SO_5_TARGET} SHARED ${SO_5_SRC})
-+endif()
-
--add_library(${SO_5_S_TARGET} STATIC ${SO_5_SRC})
--target_compile_definitions(${SO_5_S_TARGET}
-- PUBLIC -DSO_5_STATIC_LIB
--)
-
- set(SO_5_EXT_LIBS )
- if( ANDROID )
-@@ -90,7 +95,7 @@ foreach(__extLibrary ${SO_5_EXT_LIBS})
- endforeach()
-
- install(
-- TARGETS ${SO_5_TARGET} ${SO_5_S_TARGET}
-+ TARGETS ${SO_5_TARGET}
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib
- RUNTIME DESTINATION bin
diff --git a/ports/sobjectizer/CONTROL b/ports/sobjectizer/CONTROL
index 95bcb751b..5c90ce3f1 100644
--- a/ports/sobjectizer/CONTROL
+++ b/ports/sobjectizer/CONTROL
@@ -1,3 +1,3 @@
Source: sobjectizer
-Version: 5.5.19.2-1
+Version: 5.5.20
Description: SObjectizer is a C++ in-process message dispatching framework with implementation of Actor Model, Publish-Subscribe Model and CSP-like channels.
diff --git a/ports/sobjectizer/portfile.cmake b/ports/sobjectizer/portfile.cmake
index 5ea87917c..e61b2a466 100644
--- a/ports/sobjectizer/portfile.cmake
+++ b/ports/sobjectizer/portfile.cmake
@@ -1,50 +1,35 @@
include(vcpkg_common_functions)
-set(VERSION 5.5.19.2)
+set(VERSION 5.5.20)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/so-${VERSION}/dev)
vcpkg_download_distfile(ARCHIVE
- URLS "https://downloads.sourceforge.net/project/sobjectizer/sobjectizer/SObjectizer%20Core%20v.5.5/so-${VERSION}.zip"
- FILENAME "so-${VERSION}.tar.xz"
- SHA512 8f70e751766ea43ddbc8e633aa729b81f01b84b7e3d4faf237e77a61dabe60bb1aaad8dabb868db4e473d801f5a639eb3d12aa8180feacb894f7a99b08375291
+ URLS "https://sourceforge.net/projects/sobjectizer/files/sobjectizer/SObjectizer%20Core%20v.5.5/so-${VERSION}.zip"
+ FILENAME "so-${VERSION}.zip"
+ SHA512 ec62f358b363ee35c9baba4871612c906d9b57624a8a86e57c59cfe8bfd209554f70fee1d3caf815a475b6833238f8d2ec9ebc210acc978423b31b3ebf27b868
)
vcpkg_extract_source_archive(${ARCHIVE})
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/001-cmake.patch
-)
-
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
- set(SO_BUILD_STATIC ON)
- set(SO_BUILD_SHARED OFF)
+ set(SOBJECTIZER_BUILD_STATIC ON)
+ set(SOBJECTIZER_BUILD_SHARED OFF)
else()
- set(SO_BUILD_STATIC OFF)
- set(SO_BUILD_SHARED ON)
+ set(SOBJECTIZER_BUILD_STATIC OFF)
+ set(SOBJECTIZER_BUILD_SHARED ON)
endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
- -DSO_BUILD_STATIC=${SO_BUILD_STATIC}
- -DSO_BUILD_SHARED=${SO_BUILD_SHARED}
+ -DSOBJECTIZER_BUILD_STATIC=${SOBJECTIZER_BUILD_STATIC}
+ -DSOBJECTIZER_BUILD_SHARED=${SOBJECTIZER_BUILD_SHARED}
)
vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-
-# patch SO_5_STATIC_LIB in headers with actual value
-set(DECLSPEC_FILE ${CURRENT_PACKAGES_DIR}/include/so_5/h/declspec.hpp)
-file(READ ${DECLSPEC_FILE} DECLSPEC_H)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- string(REPLACE "defined( SO_5_STATIC_LIB )" "1" DECLSPEC_H "${DECLSPEC_H}")
-else()
- string(REPLACE "defined( SO_5_STATIC_LIB )" "0" DECLSPEC_H "${DECLSPEC_H}")
-endif()
-file(WRITE ${DECLSPEC_FILE} "${DECLSPEC_H}")
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/sobjectizer")
# Handle copyright
file(COPY ${SOURCE_PATH}/../LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/sobjectizer)
diff --git a/ports/speex/CMakeLists.txt b/ports/speex/CMakeLists.txt
index 839222ae6..bdce0b3c3 100644
--- a/ports/speex/CMakeLists.txt
+++ b/ports/speex/CMakeLists.txt
@@ -1,8 +1,6 @@
cmake_minimum_required (VERSION 3.8.0)
project (libspeex C)
-set(COMMON_INCLUDES ${PROJECT_BINARY_DIR}/include)
-
option(USE_SSE "USE_SSE used Note: USE_SSE and FIXED_POINT are mutually exclusive." ON)
if(MSVC)
add_definitions(-DHAVE_CONFIG_H)
@@ -17,6 +15,19 @@ include_directories(win32 include)
set(CMAKE_DEBUG_POSTFIX d)
+file(READ "win32/libspeex.def" _contents)
+if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+ string(REPLACE "LIBRARY libspeex" "LIBRARY libspeexd" _contents "${_contents}")
+endif()
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/libspeex.def"
+ "${_contents}\n"
+ "speex_nb_mode\n"
+ "speex_wb_mode\n"
+ "speex_uwb_mode\n"
+ "speex_mode_list\n"
+ "speex_header_free\n"
+)
+
set(SRC
"libspeex/bits.c"
"libspeex/cb_search.c"
@@ -52,7 +63,7 @@ set(SRC
"libspeex/vbr.c"
"libspeex/vq.c"
"libspeex/window.c"
- "win32/libspeex.def"
+ "${CMAKE_CURRENT_BINARY_DIR}/libspeex.def"
)
add_library(libspeex ${SRC})
diff --git a/ports/speex/CONTROL b/ports/speex/CONTROL
index 5d3fa10a2..6fcda84be 100644
--- a/ports/speex/CONTROL
+++ b/ports/speex/CONTROL
@@ -1,3 +1,3 @@
Source: speex
-Version: 1.2.0-1
+Version: 1.2.0-4
Description: Speex is an Open Source/Free Software patent-free audio compression format designed for speech.
diff --git a/ports/speex/portfile.cmake b/ports/speex/portfile.cmake
index 6eed0cfc9..271c2bc88 100644
--- a/ports/speex/portfile.cmake
+++ b/ports/speex/portfile.cmake
@@ -18,4 +18,10 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ file(READ "${CURRENT_PACKAGES_DIR}/include/speex/speex.h" _contents)
+ string(REPLACE "extern const SpeexMode" "__declspec(dllimport) extern const SpeexMode" _contents "${_contents}")
+ file(WRITE "${CURRENT_PACKAGES_DIR}/include/speex/speex.h" "${_contents}")
+endif()
+
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/speex RENAME copyright)
diff --git a/ports/speexdsp/CMakeLists.txt b/ports/speexdsp/CMakeLists.txt
index 76a3a9118..20ae3c290 100644
--- a/ports/speexdsp/CMakeLists.txt
+++ b/ports/speexdsp/CMakeLists.txt
@@ -18,7 +18,13 @@ else ()
add_definitions(-D_LIB)
endif ()
-add_definitions(-D_USE_SSE -DHAVE_CONFIG_H -D_WIN32)
+add_definitions(-DHAVE_CONFIG_H -D_WIN32)
+
+string (TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" LOWERCASE_SYSTEM_PROCESSOR)
+if (LOWERCASE_SYSTEM_PROCESSOR STREQUAL "x86" OR LOWERCASE_SYSTEM_PROCESSOR STREQUAL "amd64")
+ add_definitions(-D_USE_SSE)
+endif()
+
include_directories("${SOURCE_PATH}/include"
"${SOURCE_PATH}/win32")
add_library(libspeexdsp ${LIBSPEEXDSP_SOURCES} ${LIBSPEEXDSP_HEADERS})
diff --git a/ports/string-theory/CONTROL b/ports/string-theory/CONTROL
index 26cf23674..04384f8fb 100644
--- a/ports/string-theory/CONTROL
+++ b/ports/string-theory/CONTROL
@@ -1,3 +1,3 @@
Source: string-theory
-Version: 1.6-1
+Version: 1.7
Description: Flexible C++11 string library with type-safe formatting.
diff --git a/ports/string-theory/disableTests.patch b/ports/string-theory/disableTests.patch
deleted file mode 100644
index 7990385ac..000000000
--- a/ports/string-theory/disableTests.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index cf79105..a29c209 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -230,5 +230,6 @@ install(FILES
- install(EXPORT string_theory-targets
- DESTINATION "${ST_INSTALL_CMAKE_DIR}/string_theory" COMPONENT devel)
-
--enable_testing()
--add_subdirectory(test)
-+# Note:we do not mind the tests, which caused our library build failed ,so disable the tests
-+#enable_testing()
-+#add_subdirectory(test)
diff --git a/ports/string-theory/portfile.cmake b/ports/string-theory/portfile.cmake
index e3508b76a..c986839e1 100644
--- a/ports/string-theory/portfile.cmake
+++ b/ports/string-theory/portfile.cmake
@@ -3,15 +3,11 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO zrax/string_theory
- REF 1.6
- SHA512 5bc99b6dfc2ab43d2812ee47dfbbeeb68106da39b2349799ab924f009270166ebb5508f87a37e634fbfa5495dd263697a582404650eedc5393722761c5ce2028
+ REF 1.7
+ SHA512 59b367542a0dde727bf58791a94eed1b0f7007d1c661a8e728f3668bb284cadd98a03379cb96dc832e5230b6e991b66b9c8522e3525ed168505d9b930af5d239
HEAD_REF master
)
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/disableTests.patch
-)
+
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(ST_BUILD_STATIC ON)
else()
diff --git a/ports/tbb/CONTROL b/ports/tbb/CONTROL
index a9a584c06..1de2e57a5 100644
--- a/ports/tbb/CONTROL
+++ b/ports/tbb/CONTROL
@@ -1,3 +1,3 @@
Source: tbb
-Version: 2017_U7
+Version: 2018_U2
Description: Intel's Threading Building Blocks.
diff --git a/ports/tbb/portfile.cmake b/ports/tbb/portfile.cmake
index 7bde0c416..12e07ba78 100644
--- a/ports/tbb/portfile.cmake
+++ b/ports/tbb/portfile.cmake
@@ -5,17 +5,14 @@ endif()
if (VCPKG_CRT_LINKAGE STREQUAL static)
message(FATAL_ERROR "TBB does not currently support static crt linkage")
endif()
-if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
- message(FATAL_ERROR "TBB does not currently support UWP")
-endif()
include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO 01org/tbb
- REF 2017_U7
- SHA512 e4a6fcc3cace9b57061e8661b09af9cb2be721224889af52f4c1b4faec1a130512b7c960e21171ebb8105593a81bd9b80bef20cda91bfac174d535d0f7ccb680
- HEAD_REF tbb_2017)
+ REF 2018_U2
+ SHA512 a94b55bcabec47424be1c2d4b7bf3502a545bc714250a260e152b00431420094dbab64c0355bd0004ee9ad10d85c7b920969bf4b6d9a30b3697c7c5202518841
+ HEAD_REF tbb_2018)
if(TRIPLET_SYSTEM_ARCH STREQUAL x86)
set(BUILD_ARCH Win32)
@@ -23,7 +20,9 @@ else()
set(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH})
endif()
-vcpkg_build_msbuild(PROJECT_PATH ${SOURCE_PATH}/build/vs2012/makefile.sln PLATFORM ${BUILD_ARCH})
+set(TBB_MSBUILD_PROJECT_DIR ${SOURCE_PATH}/build/vs2013)
+
+vcpkg_build_msbuild(PROJECT_PATH ${TBB_MSBUILD_PROJECT_DIR}/makefile.sln PLATFORM ${BUILD_ARCH})
# Installation
message(STATUS "Installing")
@@ -32,8 +31,8 @@ file(COPY
${SOURCE_PATH}/include/serial
DESTINATION ${CURRENT_PACKAGES_DIR}/include)
-set(DEBUG_OUTPUT_PATH ${SOURCE_PATH}/build/vs2012/${BUILD_ARCH}/Debug)
-set(RELEASE_OUTPUT_PATH ${SOURCE_PATH}/build/vs2012/${BUILD_ARCH}/Release)
+set(DEBUG_OUTPUT_PATH ${TBB_MSBUILD_PROJECT_DIR}/${BUILD_ARCH}/Debug)
+set(RELEASE_OUTPUT_PATH ${TBB_MSBUILD_PROJECT_DIR}/${BUILD_ARCH}/Release)
file(COPY
${RELEASE_OUTPUT_PATH}/tbb.lib
@@ -59,7 +58,6 @@ file(COPY
vcpkg_copy_pdbs()
-# Since 2017_U7 TBB provides a CMake script to generate config file
include(${SOURCE_PATH}/cmake/TBBMakeConfig.cmake)
tbb_make_config(TBB_ROOT ${CURRENT_PACKAGES_DIR}
CONFIG_DIR TBB_CONFIG_DIR # is set to ${CURRENT_PACKAGES_DIR}/cmake
diff --git a/ports/thrift/CONTROL b/ports/thrift/CONTROL
index d7831632e..ec00292b5 100644
--- a/ports/thrift/CONTROL
+++ b/ports/thrift/CONTROL
@@ -1,4 +1,4 @@
Source: thrift
-Version: 20172805-72ca60debae1d9fb35d9f0085118873669006d7f-1
-Build-Depends: boost, zlib, libevent, openssl
+Version: 20172805-72ca60debae1d9fb35d9f0085118873669006d7f-2
+Build-Depends: zlib, libevent, openssl, boost-range, boost-smart-ptr, boost-date-time, boost-locale, boost-scope-exit
Description: Apache Thrift is a software project spanning a variety of programming languages and use cases. Our goal is to make reliable, performant communication and data serialization across languages as efficient and seamless as possible. Originally developed at Facebook, Thrift was open sourced in April 2007 and entered the Apache Incubator in May, 2008. Thrift became an Apache TLP in October, 2010.
diff --git a/ports/thrift/portfile.cmake b/ports/thrift/portfile.cmake
index 3cb280462..cae46e01c 100644
--- a/ports/thrift/portfile.cmake
+++ b/ports/thrift/portfile.cmake
@@ -22,9 +22,11 @@ vcpkg_from_github(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
-DWITH_SHARED_LIB=OFF
-DWITH_STATIC_LIB=ON
+ -DWITH_STDTHREADS=ON
-DBUILD_TESTING=off
-DBUILD_JAVA=off
-DBUILD_C_GLIB=off
diff --git a/ports/tinyexif/CONTROL b/ports/tinyexif/CONTROL
new file mode 100644
index 000000000..9c984a507
--- /dev/null
+++ b/ports/tinyexif/CONTROL
@@ -0,0 +1,4 @@
+Source: tinyexif
+Version: 1.0.1-1
+Build-Depends: tinyxml2
+Description: tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG images
diff --git a/ports/tinyexif/portfile.cmake b/ports/tinyexif/portfile.cmake
new file mode 100644
index 000000000..4ee127d4a
--- /dev/null
+++ b/ports/tinyexif/portfile.cmake
@@ -0,0 +1,30 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO cdcseacave/TinyEXIF
+ REF 1.0.1
+ SHA512 d018d882adbcebf9fa8ad67a78304a1dd21ffd3a01e3cf2d269fa34efedc5ec5f293767f3a21d62cb1bb9b88b2c364977a9125e9b88b2eac7866a8d6b27c2f23
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
+ -DBUILD_DEMO=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/tinyexif")
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/tinyexif RENAME copyright)
diff --git a/ports/tinyxml2/CONTROL b/ports/tinyxml2/CONTROL
index c2b75c438..70bc8c107 100644
--- a/ports/tinyxml2/CONTROL
+++ b/ports/tinyxml2/CONTROL
@@ -1,3 +1,3 @@
Source: tinyxml2
-Version: 5.0.1-1
+Version: 6.0.0
Description: A simple, small, efficient, C++ XML parser
diff --git a/ports/tinyxml2/portfile.cmake b/ports/tinyxml2/portfile.cmake
index 0c8b0b84b..cf8373e4f 100644
--- a/ports/tinyxml2/portfile.cmake
+++ b/ports/tinyxml2/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO leethomason/tinyxml2
- REF 5.0.1
- SHA512 a51ec5843774df0482620c549fb6c61d30a6db5025be26ff6d25b3c53533a27a57f00b026bd9fbca78e9e30084b3f5f6fbff9dba315d078419da084b57f518ba
+ REF 6.0.0
+ SHA512 30c68f491830187738b01ca5db1a96e7b4907cf8fa09a533c90ea084ab5e73f798dff6305cfc4edccc8989926e91c0482677bb5796799113c839dbd0528c8ad5
HEAD_REF master
)
diff --git a/ports/unicorn/CONTROL b/ports/unicorn/CONTROL
new file mode 100644
index 000000000..d60ab9f78
--- /dev/null
+++ b/ports/unicorn/CONTROL
@@ -0,0 +1,3 @@
+Source: unicorn
+Version: 2017-12-06-bc34c36eaeca0f4fc672015d24ce3efbcc81d6e4-1
+Description: Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework
diff --git a/ports/unicorn/portfile.cmake b/ports/unicorn/portfile.cmake
new file mode 100644
index 000000000..d64b2bf4d
--- /dev/null
+++ b/ports/unicorn/portfile.cmake
@@ -0,0 +1,58 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "WindowsStore not supported")
+endif()
+
+if(VCPKG_CRT_LINKAGE STREQUAL "dynamic" AND VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "unicorn can currently only be built with /MT or /MTd (static CRT linkage)")
+endif()
+
+# Note: this is safe because unicorn is a C library and takes steps to avoid memory allocate/free across the DLL boundary.
+set(VCPKG_CRT_LINKAGE "static")
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO unicorn-engine/unicorn
+ REF bc34c36eaeca0f4fc672015d24ce3efbcc81d6e4
+ SHA512 43694c7dfb0783c1d64236a286b929c9d0eea9d8e18146ad4fb36d7e4faf719e179d7ee36b43e568e4fce779b0f660ed9c1fb417793d6019923cae9538c9355e
+ HEAD_REF master
+)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(UNICORN_PLATFORM "Win32")
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(UNICORN_PLATFORM "x64")
+else()
+ message(FATAL_ERROR "Unsupported architecture")
+endif()
+
+vcpkg_build_msbuild(
+ PROJECT_PATH "${SOURCE_PATH}/msvc/unicorn.sln"
+ PLATFORM "${UNICORN_PLATFORM}"
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Release/unicorn.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
+ file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Release/unicorn.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin")
+ file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Debug/unicorn.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
+ file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Debug/unicorn.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin")
+else()
+ file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Release/unicorn_static.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
+ file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Debug/unicorn_static.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
+endif()
+
+file(
+ INSTALL "${SOURCE_PATH}/msvc/distro/include/unicorn"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/include"
+ RENAME "unicorn"
+)
+file(
+ INSTALL "${SOURCE_PATH}/COPYING"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/share/unicorn"
+ RENAME "copyright"
+)
+file(
+ INSTALL "${SOURCE_PATH}/COPYING_GLIB"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/share/unicorn"
+)
diff --git a/ports/unittest-cpp/CONTROL b/ports/unittest-cpp/CONTROL
new file mode 100644
index 000000000..e24b8b774
--- /dev/null
+++ b/ports/unittest-cpp/CONTROL
@@ -0,0 +1,3 @@
+Source: unittest-cpp
+Version: 2.0.0
+Description: A lightweight unit testing framework for C++
diff --git a/ports/unittest-cpp/portfile.cmake b/ports/unittest-cpp/portfile.cmake
new file mode 100644
index 000000000..2a31852a9
--- /dev/null
+++ b/ports/unittest-cpp/portfile.cmake
@@ -0,0 +1,29 @@
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "Warning: Dynamic building not supported by unittest-cpp yet. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO unittest-cpp/unittest-cpp
+ REF v2.0.0
+ SHA512 39318f4ed31534c116679a3257bf1438a6c4b3bef1894dfd40aea934950c6c8197af6a7f61539b8e9ddc67327c9388d7e8a6f8a3e0e966ad26c07554e2429cab
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/UnitTest++)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/unittest-cpp ${CURRENT_PACKAGES_DIR}/share/unittest++)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/unittest-cpp RENAME copyright)
+
+# Remove duplicate includes
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/vlpp/CMakeLists.txt b/ports/vlpp/CMakeLists.txt
new file mode 100644
index 000000000..238600f6e
--- /dev/null
+++ b/ports/vlpp/CMakeLists.txt
@@ -0,0 +1,37 @@
+cmake_minimum_required(VERSION 3.3.0)
+
+project(Vlpp VERSION 0.9.3.1 LANGUAGES CXX)
+
+# Sources
+set(SRCS
+ Import/Vlpp.cpp
+ Import/VlppWorkflow.cpp
+ Import/VlppWorkflowCompiler.cpp)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
+
+# Create and configure the target
+add_library(Vlpp ${SRCS})
+
+# target_compile_definitions
+target_compile_definitions(Vlpp PRIVATE UNICODE)
+target_compile_definitions(Vlpp PRIVATE _UNICODE)
+
+target_include_directories(Vlpp PRIVATE ${PROJECT_SOURCE_DIR}/Import)
+
+# Install
+install(
+ TARGETS Vlpp
+ RUNTIME DESTINATION "bin"
+ LIBRARY DESTINATION "lib"
+ ARCHIVE DESTINATION "lib"
+ )
+
+if (NOT DEFINED SKIP_HEADERS)
+ install(
+ FILES
+ Import/Vlpp.h
+ Import/VlppWorkflow.h
+ Import/VlppWorkflowCompiler.h
+ DESTINATION "include"
+ )
+endif()
diff --git a/ports/vlpp/CONTROL b/ports/vlpp/CONTROL
new file mode 100644
index 000000000..aa8381cae
--- /dev/null
+++ b/ports/vlpp/CONTROL
@@ -0,0 +1,3 @@
+Source: vlpp
+Version: 0.9.3.1
+Description: Common C++ construction, including string operation / generic container / linq / General-LR parser generator / multithreading / reflection for C++ / etc
diff --git a/ports/vlpp/portfile.cmake b/ports/vlpp/portfile.cmake
new file mode 100644
index 000000000..1b7ec027a
--- /dev/null
+++ b/ports/vlpp/portfile.cmake
@@ -0,0 +1,31 @@
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "Warning: Dynamic building not supported yet. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/Release-0.9.3.1)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/vczh-libraries/Release/archive/0.9.3.1.tar.gz"
+ FILENAME "GacUI-0.9.3.1.tar.gz"
+ SHA512 f284d3c78f8ae54102457b2cdc4fcee4b8da9a72d13bb325c7c7269261c5b0789eeb7340b0409b2b37294d68edb558503be131948aea3cb53582900339d26b54
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DSKIP_HEADERS=1
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGE_DIR}/debug/include)
+
+# Tools
+file(INSTALL ${SOURCE_PATH}/Tools/CppMerge.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/vlpp RENAME copyright)
diff --git a/ports/websocketpp/CONTROL b/ports/websocketpp/CONTROL
index f15164de2..991e6635c 100644
--- a/ports/websocketpp/CONTROL
+++ b/ports/websocketpp/CONTROL
@@ -1,4 +1,4 @@
Source: websocketpp
Version: 0.7.0-1
-Build-Depends: zlib, openssl, boost
+Build-Depends: zlib, openssl, boost-asio
Description: Library that implements RFC6455 The WebSocket Protocol \ No newline at end of file
diff --git a/ports/wt/CONTROL b/ports/wt/CONTROL
index 43fa044ef..448d76f60 100644
--- a/ports/wt/CONTROL
+++ b/ports/wt/CONTROL
@@ -1,4 +1,4 @@
Source: wt
-Version: 3.3.7-2
+Version: 3.3.7-4
Description: Wt is a C++ library for developing web applications
-Build-Depends: boost, openssl, sqlite3, libpq, pango
+Build-Depends: openssl, sqlite3, libpq, pango, boost-date-time, boost-regex, boost-program-options, boost-signals, boost-system, boost-filesystem, boost-thread, boost-random, boost-multi-index, boost-signals2, boost-asio, boost-ublas, boost-conversion, boost-array, boost-smart-ptr, boost-tuple, boost-algorithm, boost-logic
diff --git a/ports/wt/boost-1.66.patch b/ports/wt/boost-1.66.patch
new file mode 100644
index 000000000..d8268f6ba
--- /dev/null
+++ b/ports/wt/boost-1.66.patch
@@ -0,0 +1,123 @@
+diff --git a/src/http/Connection.C b/src/http/Connection.C
+index 70ecfd5..b24c817 100644
+--- a/src/http/Connection.C
++++ b/src/http/Connection.C
+@@ -339,7 +339,7 @@ void Connection::handleReadBody(ReplyPtr reply,
+ const asio_error_code& e,
+ std::size_t bytes_transferred)
+ {
+- LOG_DEBUG(socket().native() << ": handleReadBody(): " << e.message());
++ LOG_DEBUG(socket().native_handle() << ": handleReadBody(): " << e.message());
+
+ if (disconnectCallback_) {
+ rcv_body_buffer_ = false;
+@@ -350,7 +350,7 @@ void Connection::handleReadBody(ReplyPtr reply,
+ disconnectCallback_ = boost::function<void()>();
+ f();
+ } else if (!e) {
+- LOG_ERROR(socket().native()
++ LOG_ERROR(socket().native_handle()
+ << ": handleReadBody(): while waiting for disconnect, "
+ "received unexpected data, closing");
+ close();
+@@ -471,3 +471,4 @@ void Connection::handleWriteResponse(ReplyPtr reply,
+
+ } // namespace server
+ } // namespace http
++
+diff --git a/src/http/Connection.h b/src/http/Connection.h
+index 712f736..dabba21 100644
+--- a/src/http/Connection.h
++++ b/src/http/Connection.h
+@@ -72,7 +72,7 @@ public:
+ virtual ~Connection();
+
+ Server *server() const { return server_; }
+- asio::strand& strand() { return strand_; }
++ asio::io_service::strand& strand() { return strand_; }
+
+ /// Stop all asynchronous operations associated with the connection.
+ void scheduleStop();
+@@ -113,7 +113,7 @@ protected:
+ /// The manager for this connection.
+ ConnectionManager& ConnectionManager_;
+
+- asio::strand strand_;
++ asio::io_service::strand strand_;
+
+ void finishReply();
+
+@@ -204,3 +204,4 @@ typedef boost::shared_ptr<Connection> ConnectionPtr;
+ } // namespace http
+
+ #endif // HTTP_CONNECTION_HPP
++
+diff --git a/src/http/Reply.C b/src/http/Reply.C
+index f7fe2aa..603b9ea 100644
+--- a/src/http/Reply.C
++++ b/src/http/Reply.C
+@@ -593,7 +593,7 @@ bool Reply::encodeNextContentBuffer(
+ originalSize += bs;
+
+ gzipStrm_.avail_in = bs;
+- gzipStrm_.next_in = (unsigned char *)asio::detail::buffer_cast_helper(b);
++ gzipStrm_.next_in = (unsigned char *)b.data();
+
+ unsigned char out[16*1024];
+ do {
+@@ -642,3 +642,4 @@ bool Reply::encodeNextContentBuffer(
+
+ } // namespace server
+ } // namespace http
++
+diff --git a/src/http/Server.h b/src/http/Server.h
+index 3260a23..c924ed2 100644
+--- a/src/http/Server.h
++++ b/src/http/Server.h
+@@ -120,7 +120,7 @@ private:
+ Wt::WLogger accessLogger_;
+
+ /// The strand for handleTcpAccept(), handleSslAccept() and handleStop()
+- asio::strand accept_strand_;
++ asio::io_service::strand accept_strand_;
+
+ /// Acceptor used to listen for incoming http connections.
+ asio::ip::tcp::acceptor tcp_acceptor_;
+@@ -164,3 +164,4 @@ void handleTimeout(asio_timer *timer,
+ } // namespace http
+
+ #endif // HTTP_SERVER_HPP
++
+diff --git a/src/wt/WServerGLWidget.C b/src/wt/WServerGLWidget.C
+index a1fb5ee..7e1d31e 100644
+--- a/src/wt/WServerGLWidget.C
++++ b/src/wt/WServerGLWidget.C
+@@ -36,8 +36,9 @@ typedef GLXContext (*glXCreateContextAttribsARBProc)(Display*, GLXFBConfig, GLXC
+ #endif
+
+ #ifdef WIN32_GL
+-#include <GL/wglew.h>
++#define WIN32_LEAN_AND_MEAN
+ #include <Windows.h>
++#include <GL/wglew.h>
+ #endif
+
+ #ifdef APPLE_GL
+diff --git a/src/wt/http/Client.C b/src/wt/http/Client.C
+index 2c4e07d..ca793d4 100644
+--- a/src/wt/http/Client.C
++++ b/src/wt/http/Client.C
+@@ -605,7 +605,7 @@ private:
+
+ protected:
+ WIOService& ioService_;
+- boost::asio::strand strand_;
++ boost::asio::io_service::strand strand_;
+ tcp::resolver resolver_;
+ boost::asio::streambuf requestBuf_;
+ boost::asio::streambuf responseBuf_;
+@@ -1060,3 +1060,4 @@ bool Client::parseUrl(const std::string &url, URL &parsedUrl)
+
+ }
+ }
++
diff --git a/ports/wt/guard-NO_ERROR.patch b/ports/wt/guard-NO_ERROR.patch
new file mode 100644
index 000000000..b91a19a20
--- /dev/null
+++ b/ports/wt/guard-NO_ERROR.patch
@@ -0,0 +1,19 @@
+diff --git a/src/wt/WGLWidget b/src/wt/WGLWidget
+index dd39701..94634f7 100644
+--- a/src/wt/WGLWidget
++++ b/src/wt/WGLWidget
+@@ -798,7 +798,14 @@ public:
+ SAMPLE_COVERAGE = 0x80A0,
+
+ /* ErrorCode */
++#ifdef _WIN32
++#pragma push_macro ("NO_ERROR")
++#undef NO_ERROR
++#endif
+ NO_ERROR = 0x0,
++#ifdef _WIN32
++#pragma pop_macro ("NO_ERROR")
++#endif
+ INVALID_ENUM = 0x0500,
+ INVALID_VALUE = 0x0501,
+ INVALID_OPERATION = 0x0502,
diff --git a/ports/wt/portfile.cmake b/ports/wt/portfile.cmake
index 9e219de1f..ede65c8df 100644
--- a/ports/wt/portfile.cmake
+++ b/ports/wt/portfile.cmake
@@ -10,14 +10,13 @@ vcpkg_from_github(
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
- PATCHES ${CMAKE_CURRENT_LIST_DIR}/add-disable-boost-autolink-option.patch
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/add-disable-boost-autolink-option.patch
+ ${CMAKE_CURRENT_LIST_DIR}/guard-NO_ERROR.patch
+ ${CMAKE_CURRENT_LIST_DIR}/boost-1.66.patch
)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- set(SHARED_LIBS ON)
-else()
- set(SHARED_LIBS OFF)
-endif()
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SHARED_LIBS)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
diff --git a/ports/zlib/portfile.cmake b/ports/zlib/portfile.cmake
index ec8b05ffc..963b86d24 100644
--- a/ports/zlib/portfile.cmake
+++ b/ports/zlib/portfile.cmake
@@ -27,8 +27,10 @@ vcpkg_install_cmake()
# Both dynamic and static are built, so keep only the one needed
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
- file(RENAME ${CURRENT_PACKAGES_DIR}/lib/zlibstatic.lib ${CURRENT_PACKAGES_DIR}/lib/zlib.lib)
- file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/zlibstaticd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/zlibd.lib)
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/zlibstatic.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/zlibstatic.lib ${CURRENT_PACKAGES_DIR}/lib/zlib.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/zlibstaticd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/zlibd.lib)
+ endif()
endif()
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/zlib RENAME copyright)
diff --git a/scripts/VcpkgPowershellUtils.ps1 b/scripts/VcpkgPowershellUtils.ps1
index 12eacec96..e394e540e 100644
--- a/scripts/VcpkgPowershellUtils.ps1
+++ b/scripts/VcpkgPowershellUtils.ps1
@@ -3,7 +3,7 @@ function vcpkgHasModule([Parameter(Mandatory=$true)][string]$moduleName)
return [bool](Get-Module -ListAvailable -Name $moduleName)
}
-function vcpkgCreateDirectory([Parameter(Mandatory=$true)][string]$dirPath)
+function vcpkgCreateDirectoryIfNotExists([Parameter(Mandatory=$true)][string]$dirPath)
{
if (!(Test-Path $dirPath))
{
@@ -11,19 +11,25 @@ function vcpkgCreateDirectory([Parameter(Mandatory=$true)][string]$dirPath)
}
}
-function vcpkgRemoveDirectory([Parameter(Mandatory=$true)][string]$dirPath)
+function vcpkgCreateParentDirectoryIfNotExists([Parameter(Mandatory=$true)][string]$path)
{
- if (Test-Path $dirPath)
+ $parentDir = split-path -parent $path
+ if ([string]::IsNullOrEmpty($parentDir))
{
- Remove-Item $dirPath -Recurse -Force
+ return
+ }
+
+ if (!(Test-Path $parentDir))
+ {
+ New-Item -ItemType Directory -Path $parentDir | Out-Null
}
}
-function vcpkgRemoveFile([Parameter(Mandatory=$true)][string]$filePath)
+function vcpkgRemoveItem([Parameter(Mandatory=$true)][string]$dirPath)
{
- if (Test-Path $filePath)
+ if (Test-Path $dirPath)
{
- Remove-Item $filePath -Force
+ Remove-Item $dirPath -Recurse -Force
}
}
@@ -101,11 +107,10 @@ function vcpkgDownloadFile( [Parameter(Mandatory=$true)][string]$url,
return
}
- $downloadDir = split-path -parent $downloadPath
- vcpkgCreateDirectory $downloadDir
+ vcpkgCreateParentDirectoryIfNotExists $downloadPath
$downloadPartPath = "$downloadPath.part"
- vcpkgRemoveFile $downloadPartPath
+ vcpkgRemoveItem $downloadPartPath
$wc = New-Object System.Net.WebClient
$proxyAuth = !$wc.Proxy.IsBypassed($url)
@@ -131,7 +136,7 @@ function vcpkgDownloadFile( [Parameter(Mandatory=$true)][string]$url,
catch [System.Exception]
{
# If BITS fails for any reason, delete any potentially partially downloaded files and continue
- vcpkgRemoveFile $downloadPartPath
+ vcpkgRemoveItem $downloadPartPath
}
}
@@ -141,13 +146,20 @@ function vcpkgDownloadFile( [Parameter(Mandatory=$true)][string]$url,
}
function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$file,
- [Parameter(Mandatory=$true)][string]$destination)
+ [Parameter(Mandatory=$true)][string]$destinationDir,
+ [Parameter(Mandatory=$true)][string]$outFilename)
{
- vcpkgCreateDirectory $destination
- $baseName = (Get-ChildItem .\downloads\cmake-3.9.5-win32-x86.zip).BaseName
- $destinationPartial = "$destination\$baseName-partially_extracted"
- vcpkgRemoveDirectory $destinationPartial
- vcpkgCreateDirectory $destinationPartial
+ vcpkgCreateDirectoryIfNotExists $destinationDir
+ $output = "$destinationDir\$outFilename"
+ vcpkgRemoveItem $output
+ $destinationPartial = "$destinationDir\partially-extracted"
+
+ vcpkgRemoveItem $destinationPartial
+ vcpkgCreateDirectoryIfNotExists $destinationPartial
+
+ $shell = new-object -com shell.application
+ $zip = $shell.NameSpace($file)
+ $itemCount = $zip.Items().Count
if (vcpkgHasCommand -commandName 'Microsoft.PowerShell.Archive\Expand-Archive')
{
@@ -162,8 +174,6 @@ function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$file,
else
{
Write-Verbose("Extracting via shell")
- $shell = new-object -com shell.application
- $zip = $shell.NameSpace($file)
foreach($item in $zip.items())
{
# Piping to Out-Null is used to block until finished
@@ -171,8 +181,15 @@ function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$file,
}
}
- Move-Item -Path "$destinationPartial\*" -Destination $destination
- vcpkgRemoveDirectory $destinationPartial
+ if ($itemCount -eq 1)
+ {
+ Move-Item -Path "$destinationPartial\*" -Destination $output
+ vcpkgRemoveItem $destinationPartial
+ }
+ else
+ {
+ Move-Item -Path $destinationPartial -Destination $output
+ }
}
function vcpkgInvokeCommand()
diff --git a/scripts/addPoshVcpkgToPowershellProfile.ps1 b/scripts/addPoshVcpkgToPowershellProfile.ps1
new file mode 100644
index 000000000..7a12e7d34
--- /dev/null
+++ b/scripts/addPoshVcpkgToPowershellProfile.ps1
@@ -0,0 +1,56 @@
+[CmdletBinding()]
+param()
+
+function findExistingImportModuleDirectives([Parameter(Mandatory=$true)][string]$path)
+{
+ if (!(Test-Path $path))
+ {
+ return
+ }
+
+ $fileContents = Get-Content $path
+ $fileContents -match 'Import-Module.+?(?=posh-vcpkg)'
+ return
+}
+
+$scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition
+. "$scriptsDir\VcpkgPowershellUtils.ps1"
+
+$profileEntry = "Import-Module '$scriptsDir\posh-vcpkg'"
+$profilePath = $PROFILE # Implicit powershell variable
+if (!(Test-Path $profilePath))
+{
+ $profileDir = Split-Path $profilePath -Parent
+ vcpkgCreateDirectoryIfNotExists $profileDir
+}
+
+Write-Host "`nAdding the following line to ${profilePath}:"
+Write-Host " $profileEntry"
+
+# @() Needed to force Array in PowerShell 2.0
+[Array]$existingImports = @(findExistingImportModuleDirectives $profilePath)
+if ($existingImports.Count -gt 0)
+{
+ $existingImportsOut = $existingImports -join "`n "
+ Write-Host "`nposh-vcpkg is already imported to your PowerShell profile. The following entries were found:"
+ Write-Host " $existingImportsOut"
+ Write-Host "`nPlease make sure you have started a new Powershell window for the changes to take effect."
+ return
+}
+
+# Posh-git does the following check, so we should too.
+# https://github.com/dahlbyk/posh-git/blob/master/src/Utils.ps1
+# If the profile script exists and is signed, then we should not modify it
+if (Test-Path $profilePath)
+{
+ $sig = Get-AuthenticodeSignature $profilePath
+ if ($null -ne $sig.SignerCertificate)
+ {
+ Write-Warning "Skipping add of posh-vcpkg import to profile; '$profilePath' appears to be signed."
+ Write-Warning "Please manually add the line '$profileEntry' to your profile and resign it."
+ return
+ }
+}
+
+Add-Content $profilePath -Value "`n$profileEntry" -Encoding UTF8
+Write-Host "`nSuccessfully added posh-vcpkg to your PowerShell profile. Please start a new Powershell window for the changes to take effect."
diff --git a/scripts/bootstrap.ps1 b/scripts/bootstrap.ps1
index ca7b1a0ce..3f40a2ead 100644
--- a/scripts/bootstrap.ps1
+++ b/scripts/bootstrap.ps1
@@ -46,7 +46,7 @@ try
& $msbuildExe "/p:VCPKG_VERSION=-$gitHash" "/p:DISABLE_METRICS=$disableMetrics" /p:Configuration=Release /p:Platform=x86 /p:PlatformToolset=$platformToolset /p:TargetPlatformVersion=$windowsSDK /m dirs.proj
if ($LASTEXITCODE -ne 0)
{
- Write-Error "Building vcpkg.exe failed. Please ensure you have installed the Desktop C++ workload and the Windows SDK for Desktop C++."
+ Write-Error "Building vcpkg.exe failed. Please ensure you have installed Visual Studio with the Desktop C++ workload and the Windows SDK for Desktop C++."
return
}
diff --git a/scripts/buildsystems/msbuild/vcpkg.targets b/scripts/buildsystems/msbuild/vcpkg.targets
index ad1dde89b..092e013b5 100644
--- a/scripts/buildsystems/msbuild/vcpkg.targets
+++ b/scripts/buildsystems/msbuild/vcpkg.targets
@@ -67,11 +67,11 @@
File="$(TLogLocation)$(ProjectName).write.1u.tlog"
Lines="^$(TargetPath);$([System.IO.Path]::Combine($(ProjectDir),$(IntDir)))vcpkg.applocal.log" Encoding="Unicode"/>
<Exec Condition="$(VcpkgConfiguration.StartsWith('Debug'))"
- Command="powershell.exe -ExecutionPolicy Bypass -noprofile -File %22$(MSBuildThisFileDirectory)applocal.ps1%22 %22$(TargetPath)%22 %22$(VcpkgRoot)debug\bin%22 %22$(TLogLocation)$(ProjectName).write.1u.tlog%22 %22$(IntDir)vcpkg.applocal.log%22"
+ Command="$(SystemRoot)\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -noprofile -File %22$(MSBuildThisFileDirectory)applocal.ps1%22 %22$(TargetPath)%22 %22$(VcpkgRoot)debug\bin%22 %22$(TLogLocation)$(ProjectName).write.1u.tlog%22 %22$(IntDir)vcpkg.applocal.log%22"
StandardOutputImportance="Normal">
</Exec>
<Exec Condition="$(VcpkgConfiguration.StartsWith('Release'))"
- Command="powershell.exe -ExecutionPolicy Bypass -noprofile -File %22$(MSBuildThisFileDirectory)applocal.ps1%22 %22$(TargetPath)%22 %22$(VcpkgRoot)bin%22 %22$(TLogLocation)$(ProjectName).write.1u.tlog%22 %22$(IntDir)vcpkg.applocal.log%22"
+ Command="$(SystemRoot)\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -noprofile -File %22$(MSBuildThisFileDirectory)applocal.ps1%22 %22$(TargetPath)%22 %22$(VcpkgRoot)bin%22 %22$(TLogLocation)$(ProjectName).write.1u.tlog%22 %22$(IntDir)vcpkg.applocal.log%22"
StandardOutputImportance="Normal">
</Exec>
<ReadLinesFromFile File="$(IntDir)vcpkg.applocal.log">
diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake
index ff89439cc..b8d3fbdbb 100644
--- a/scripts/buildsystems/vcpkg.cmake
+++ b/scripts/buildsystems/vcpkg.cmake
@@ -1,6 +1,12 @@
# Mark variables as used so cmake doesn't complain about them
mark_as_advanced(CMAKE_TOOLCHAIN_FILE)
+# This is a backport of CMAKE_TRY_COMPILE_PLATFORM_VARIABLES to cmake 3.0
+get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE )
+if( _CMAKE_IN_TRY_COMPILE )
+ include( "${CMAKE_CURRENT_SOURCE_DIR}/../vcpkg.config.cmake" OPTIONAL )
+endif()
+
if(VCPKG_CHAINLOAD_TOOLCHAIN_FILE)
include("${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}")
endif()
@@ -9,11 +15,6 @@ if(VCPKG_TOOLCHAIN)
return()
endif()
-get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE )
-if( _CMAKE_IN_TRY_COMPILE )
- include( "${CMAKE_CURRENT_SOURCE_DIR}/../vcpkg.config.cmake" OPTIONAL )
-endif()
-
if(VCPKG_TARGET_TRIPLET)
elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Ww][Ii][Nn]32$")
set(_VCPKG_TARGET_TRIPLET_ARCH x86)
@@ -30,9 +31,9 @@ else()
set(_VCPKG_TARGET_TRIPLET_ARCH x86)
elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017 Win64$")
set(_VCPKG_TARGET_TRIPLET_ARCH x64)
- elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017 ARM")
+ elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017 ARM$")
set(_VCPKG_TARGET_TRIPLET_ARCH arm)
- elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017")
+ elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017$")
set(_VCPKG_TARGET_TRIPLET_ARCH x86)
else()
find_program(_VCPKG_CL cl)
@@ -42,6 +43,8 @@ else()
set(_VCPKG_TARGET_TRIPLET_ARCH arm)
elseif(_VCPKG_CL MATCHES "bin/cl.exe$" OR _VCPKG_CL MATCHES "x86/cl.exe$")
set(_VCPKG_TARGET_TRIPLET_ARCH x86)
+ elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ set(_VCPKG_TARGET_TRIPLET_ARCH x64)
else()
message(FATAL_ERROR "Unable to determine target architecture.")
endif()
@@ -50,24 +53,28 @@ endif()
if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsPhone")
set(_VCPKG_TARGET_TRIPLET_PLAT uwp)
-else()
+elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
+ set(_VCPKG_TARGET_TRIPLET_PLAT linux)
+elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
set(_VCPKG_TARGET_TRIPLET_PLAT windows)
endif()
set(VCPKG_TARGET_TRIPLET ${_VCPKG_TARGET_TRIPLET_ARCH}-${_VCPKG_TARGET_TRIPLET_PLAT} CACHE STRING "Vcpkg target triplet (ex. x86-windows)")
set(_VCPKG_TOOLCHAIN_DIR ${CMAKE_CURRENT_LIST_DIR})
-# Detect .vcpkg-root to figure VCPKG_ROOT_DIR
-set(_VCPKG_ROOT_DIR_CANDIDATE ${CMAKE_CURRENT_LIST_DIR})
-while(IS_DIRECTORY ${_VCPKG_ROOT_DIR_CANDIDATE} AND NOT EXISTS "${_VCPKG_ROOT_DIR_CANDIDATE}/.vcpkg-root")
- get_filename_component(_VCPKG_ROOT_DIR_TEMP ${_VCPKG_ROOT_DIR_CANDIDATE} DIRECTORY)
- if (_VCPKG_ROOT_DIR_TEMP STREQUAL _VCPKG_ROOT_DIR_CANDIDATE) # If unchanged, we have reached the root of the drive
- message(FATAL_ERROR "Could not find .vcpkg-root")
- else()
- SET(_VCPKG_ROOT_DIR_CANDIDATE ${_VCPKG_ROOT_DIR_TEMP})
- endif()
-endwhile()
-set(_VCPKG_ROOT_DIR ${_VCPKG_ROOT_DIR_CANDIDATE})
+if(NOT DEFINED _VCPKG_ROOT_DIR)
+ # Detect .vcpkg-root to figure VCPKG_ROOT_DIR
+ set(_VCPKG_ROOT_DIR_CANDIDATE ${CMAKE_CURRENT_LIST_DIR})
+ while(IS_DIRECTORY ${_VCPKG_ROOT_DIR_CANDIDATE} AND NOT EXISTS "${_VCPKG_ROOT_DIR_CANDIDATE}/.vcpkg-root")
+ get_filename_component(_VCPKG_ROOT_DIR_TEMP ${_VCPKG_ROOT_DIR_CANDIDATE} DIRECTORY)
+ if (_VCPKG_ROOT_DIR_TEMP STREQUAL _VCPKG_ROOT_DIR_CANDIDATE) # If unchanged, we have reached the root of the drive
+ message(FATAL_ERROR "Could not find .vcpkg-root")
+ else()
+ SET(_VCPKG_ROOT_DIR_CANDIDATE ${_VCPKG_ROOT_DIR_TEMP})
+ endif()
+ endwhile()
+ set(_VCPKG_ROOT_DIR ${_VCPKG_ROOT_DIR_CANDIDATE} CACHE INTERNAL "Vcpkg root directory")
+endif()
set(_VCPKG_INSTALLED_DIR ${_VCPKG_ROOT_DIR}/installed)
if(CMAKE_BUILD_TYPE MATCHES "^Debug$" OR NOT DEFINED CMAKE_BUILD_TYPE)
@@ -77,17 +84,21 @@ if(CMAKE_BUILD_TYPE MATCHES "^Debug$" OR NOT DEFINED CMAKE_BUILD_TYPE)
list(APPEND CMAKE_LIBRARY_PATH
${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/manual-link
)
+ list(APPEND CMAKE_FIND_ROOT_PATH
+ ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug
+ )
endif()
list(APPEND CMAKE_PREFIX_PATH
${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}
)
+list(APPEND CMAKE_FIND_ROOT_PATH
+ ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}
+)
list(APPEND CMAKE_LIBRARY_PATH
${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/manual-link
)
-set(Boost_COMPILER "-vc140")
-
-if (NOT DEFINED CMAKE_SYSTEM_VERSION)
+if (NOT DEFINED CMAKE_SYSTEM_VERSION AND _VCPKG_TARGET_TRIPLET_PLAT MATCHES "windows|uwp")
include(${_VCPKG_ROOT_DIR}/scripts/cmake/vcpkg_get_windows_sdk.cmake)
# This is used as an implicit parameter for vcpkg_get_windows_sdk
set(VCPKG_ROOT_DIR ${_VCPKG_ROOT_DIR})
@@ -114,11 +125,11 @@ set(CMAKE_SYSTEM_IGNORE_PATH
"C:/OpenSSL-Win64/lib/VC/static"
)
-set(CMAKE_PROGRAM_PATH ${CMAKE_PROGRAM_PATH} ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools)
+list(APPEND CMAKE_PROGRAM_PATH ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools)
file(GLOB _VCPKG_TOOLS_DIRS ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/*)
foreach(_VCPKG_TOOLS_DIR ${_VCPKG_TOOLS_DIRS})
if(IS_DIRECTORY ${_VCPKG_TOOLS_DIR})
- set(CMAKE_PROGRAM_PATH ${CMAKE_PROGRAM_PATH} ${_VCPKG_TOOLS_DIR})
+ list(APPEND CMAKE_PROGRAM_PATH ${_VCPKG_TOOLS_DIR})
endif()
endforeach()
@@ -128,7 +139,7 @@ function(add_executable name)
list(FIND ARGV "IMPORTED" IMPORTED_IDX)
list(FIND ARGV "ALIAS" ALIAS_IDX)
if(IMPORTED_IDX EQUAL -1 AND ALIAS_IDX EQUAL -1)
- if(VCPKG_APPLOCAL_DEPS)
+ if(VCPKG_APPLOCAL_DEPS AND _VCPKG_TARGET_TRIPLET_PLAT MATCHES "windows|uwp")
add_custom_command(TARGET ${name} POST_BUILD
COMMAND powershell -noprofile -executionpolicy Bypass -file ${_VCPKG_TOOLCHAIN_DIR}/msbuild/applocal.ps1
-targetBinary $<TARGET_FILE:${name}>
@@ -154,10 +165,22 @@ endfunction()
macro(find_package name)
if("${name}" STREQUAL "Boost")
+ set(_Boost_USE_STATIC_LIBS ${Boost_USE_STATIC_LIBS})
+ set(_Boost_USE_MULTITHREADED ${Boost_USE_MULTITHREADED})
+ set(_Boost_USE_STATIC_RUNTIME ${Boost_USE_STATIC_RUNTIME})
+ set(_Boost_COMPILER ${Boost_COMPILER})
unset(Boost_USE_STATIC_LIBS)
unset(Boost_USE_MULTITHREADED)
unset(Boost_USE_STATIC_RUNTIME)
+ set(Boost_COMPILER "-vc140")
_find_package(${ARGV})
+ if(NOT Boost_FOUND)
+ set(Boost_USE_STATIC_LIBS ${_Boost_USE_STATIC_LIBS})
+ set(Boost_USE_MULTITHREADED ${_Boost_USE_MULTITHREADED})
+ set(Boost_USE_STATIC_RUNTIME ${_Boost_USE_STATIC_RUNTIME})
+ set(Boost_COMPILER ${_Boost_COMPILER})
+ _find_package(${ARGV})
+ endif()
elseif("${name}" STREQUAL "ICU")
function(_vcpkg_find_in_list)
list(FIND ARGV "COMPONENTS" COMPONENTS_IDX)
@@ -178,6 +201,23 @@ macro(find_package name)
if(TIFF_LIBRARIES)
list(APPEND TIFF_LIBRARIES ${LIBLZMA_LIBRARIES})
endif()
+ elseif("${name}" STREQUAL "tinyxml2")
+ _find_package(${ARGV})
+ if(TARGET tinyxml2_static AND NOT TARGET tinyxml2)
+ add_library(tinyxml2 INTERFACE IMPORTED)
+ set_target_properties(tinyxml2 PROPERTIES INTERFACE_LINK_LIBRARIES "tinyxml2_static")
+ endif()
+ elseif("${name}" STREQUAL "MPI")
+ if(MPI_C_LIB_NAMES)
+ set(MPI_C_WORKS TRUE)
+ set(MPI_C_WRAPPER_FOUND TRUE)
+ endif()
+ if(MPI_CXX_LIB_NAMES)
+ set(MPI_CXX_WORKS TRUE)
+ set(MPI_CXX_WRAPPER_FOUND TRUE)
+ set(MPI_CXX_VALIDATE_SKIP_MPICXX TRUE)
+ endif()
+ _find_package(${ARGV})
else()
_find_package(${ARGV})
endif()
@@ -192,8 +232,11 @@ set(_UNUSED ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP})
if(NOT _CMAKE_IN_TRY_COMPILE)
file(TO_CMAKE_PATH "${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}" _chainload_file)
+ file(TO_CMAKE_PATH "${_VCPKG_ROOT_DIR}" _root_dir)
file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/vcpkg.config.cmake"
"set(VCPKG_TARGET_TRIPLET \"${VCPKG_TARGET_TRIPLET}\" CACHE STRING \"\")\n"
"set(VCPKG_APPLOCAL_DEPS \"${VCPKG_APPLOCAL_DEPS}\" CACHE STRING \"\")\n"
- "set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE \"${_chainload_file}\" CACHE STRING \"\")\n")
-endif() \ No newline at end of file
+ "set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE \"${_chainload_file}\" CACHE STRING \"\")\n"
+ "set(_VCPKG_ROOT_DIR \"${_root_dir}\" CACHE STRING \"\")\n"
+ )
+endif()
diff --git a/scripts/cmake/vcpkg_build_cmake.cmake b/scripts/cmake/vcpkg_build_cmake.cmake
index 5dc81ec09..0b4bbd211 100644
--- a/scripts/cmake/vcpkg_build_cmake.cmake
+++ b/scripts/cmake/vcpkg_build_cmake.cmake
@@ -58,19 +58,23 @@ function(vcpkg_build_cmake)
set(TARGET_PARAM)
endif()
- message(STATUS "Build ${TARGET_TRIPLET}-rel")
- vcpkg_execute_required_process(
- COMMAND ${CMAKE_COMMAND} --build . --config Release ${TARGET_PARAM} -- ${BUILD_ARGS}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
- LOGNAME ${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}-rel
- )
- message(STATUS "Build ${TARGET_TRIPLET}-rel done")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Build ${TARGET_TRIPLET}-rel")
+ vcpkg_execute_required_process(
+ COMMAND ${CMAKE_COMMAND} --build . --config Release ${TARGET_PARAM} -- ${BUILD_ARGS}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
+ LOGNAME ${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}-rel
+ )
+ message(STATUS "Build ${TARGET_TRIPLET}-rel done")
+ endif()
- message(STATUS "Build ${TARGET_TRIPLET}-dbg")
- vcpkg_execute_required_process(
- COMMAND ${CMAKE_COMMAND} --build . --config Debug ${TARGET_PARAM} -- ${BUILD_ARGS}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- LOGNAME ${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}-dbg
- )
- message(STATUS "Build ${TARGET_TRIPLET}-dbg done")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ message(STATUS "Build ${TARGET_TRIPLET}-dbg")
+ vcpkg_execute_required_process(
+ COMMAND ${CMAKE_COMMAND} --build . --config Debug ${TARGET_PARAM} -- ${BUILD_ARGS}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME ${_bc_LOGFILE_ROOT}-${TARGET_TRIPLET}-dbg
+ )
+ message(STATUS "Build ${TARGET_TRIPLET}-dbg done")
+ endif()
endfunction()
diff --git a/scripts/cmake/vcpkg_build_msbuild.cmake b/scripts/cmake/vcpkg_build_msbuild.cmake
index 81f442ef7..b8403d277 100644
--- a/scripts/cmake/vcpkg_build_msbuild.cmake
+++ b/scripts/cmake/vcpkg_build_msbuild.cmake
@@ -87,25 +87,29 @@ function(vcpkg_build_msbuild)
/m
)
- message(STATUS "Building ${_csc_PROJECT_PATH} for Release")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
- vcpkg_execute_required_process(
- COMMAND msbuild ${_csc_PROJECT_PATH}
- /p:Configuration=${_csc_RELEASE_CONFIGURATION}
- ${_csc_OPTIONS}
- ${_csc_OPTIONS_RELEASE}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
- LOGNAME build-${TARGET_TRIPLET}-rel
- )
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Building ${_csc_PROJECT_PATH} for Release")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+ vcpkg_execute_required_process(
+ COMMAND msbuild ${_csc_PROJECT_PATH}
+ /p:Configuration=${_csc_RELEASE_CONFIGURATION}
+ ${_csc_OPTIONS}
+ ${_csc_OPTIONS_RELEASE}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
+ LOGNAME build-${TARGET_TRIPLET}-rel
+ )
+ endif()
- message(STATUS "Building ${_csc_PROJECT_PATH} for Debug")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
- vcpkg_execute_required_process(
- COMMAND msbuild ${_csc_PROJECT_PATH}
- /p:Configuration=${_csc_DEBUG_CONFIGURATION}
- ${_csc_OPTIONS}
- ${_csc_OPTIONS_DEBUG}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- LOGNAME build-${TARGET_TRIPLET}-dbg
- )
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ message(STATUS "Building ${_csc_PROJECT_PATH} for Debug")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+ vcpkg_execute_required_process(
+ COMMAND msbuild ${_csc_PROJECT_PATH}
+ /p:Configuration=${_csc_DEBUG_CONFIGURATION}
+ ${_csc_OPTIONS}
+ ${_csc_OPTIONS_DEBUG}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME build-${TARGET_TRIPLET}-dbg
+ )
+ endif()
endfunction()
diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake
index b979245aa..4bcf3d2c9 100644
--- a/scripts/cmake/vcpkg_configure_cmake.cmake
+++ b/scripts/cmake/vcpkg_configure_cmake.cmake
@@ -61,6 +61,14 @@ function(vcpkg_configure_cmake)
set(GENERATOR ${_csc_GENERATOR})
elseif(_csc_PREFER_NINJA AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND NOT _csc_HOST_ARCHITECTURE STREQUAL "x86")
set(GENERATOR "Ninja")
+ elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v120")
+ set(GENERATOR "Visual Studio 12 2013")
+ elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v120")
+ set(GENERATOR "Visual Studio 12 2013 Win64")
+ elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "arm" AND VCPKG_PLATFORM_TOOLSET MATCHES "v120")
+ set(GENERATOR "Visual Studio 12 2013 ARM")
+ elseif(VCPKG_CHAINLOAD_TOOLCHAIN_FILE)
+ set(GENERATOR "Ninja")
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND VCPKG_TARGET_ARCHITECTURE MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140")
set(GENERATOR "Visual Studio 14 2015")
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND VCPKG_TARGET_ARCHITECTURE MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140")
@@ -191,29 +199,33 @@ function(vcpkg_configure_cmake)
)
endif()
- message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
- vcpkg_execute_required_process(
- COMMAND ${CMAKE_COMMAND} ${_csc_SOURCE_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE}
- -G ${GENERATOR}
- -DCMAKE_BUILD_TYPE=Release
- -DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
- LOGNAME config-${TARGET_TRIPLET}-rel
- )
- message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+ vcpkg_execute_required_process(
+ COMMAND ${CMAKE_COMMAND} ${_csc_SOURCE_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE}
+ -G ${GENERATOR}
+ -DCMAKE_BUILD_TYPE=Release
+ -DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
+ LOGNAME config-${TARGET_TRIPLET}-rel
+ )
+ message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
+ endif()
- message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
- vcpkg_execute_required_process(
- COMMAND ${CMAKE_COMMAND} ${_csc_SOURCE_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG}
- -G ${GENERATOR}
- -DCMAKE_BUILD_TYPE=Debug
- -DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- LOGNAME config-${TARGET_TRIPLET}-dbg
- )
- message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+ vcpkg_execute_required_process(
+ COMMAND ${CMAKE_COMMAND} ${_csc_SOURCE_PATH} ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG}
+ -G ${GENERATOR}
+ -DCMAKE_BUILD_TYPE=Debug
+ -DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME config-${TARGET_TRIPLET}-dbg
+ )
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
+ endif()
set(_VCPKG_CMAKE_GENERATOR "${GENERATOR}" PARENT_SCOPE)
endfunction() \ No newline at end of file
diff --git a/scripts/cmake/vcpkg_configure_meson.cmake b/scripts/cmake/vcpkg_configure_meson.cmake
index 143bb74de..9b87261d5 100644
--- a/scripts/cmake/vcpkg_configure_meson.cmake
+++ b/scripts/cmake/vcpkg_configure_meson.cmake
@@ -42,31 +42,35 @@ function(vcpkg_configure_meson)
set(ENV{PATH} "$ENV{PATH};${NINJA_PATH}")
# configure release
- message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
- set(ENV{CFLAGS} "${MESON_COMMON_CFLAGS} ${MESON_RELEASE_CFLAGS}")
- set(ENV{CXXFLAGS} "${MESON_COMMON_CXXFLAGS} ${MESON_RELEASE_CXXFLAGS}")
- set(ENV{LDFLAGS} "${MESON_COMMON_LDFLAGS} ${MESON_RELEASE_LDFLAGS}")
- set(ENV{CPPFLAGS} "${MESON_COMMON_CPPFLAGS} ${MESON_RELEASE_CPPFLAGS}")
- vcpkg_execute_required_process(
- COMMAND ${MESON} ${_vcm_OPTIONS} ${_vcm_OPTIONS_RELEASE} ${_vcm_SOURCE_PATH}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
- LOGNAME config-${TARGET_TRIPLET}-rel
- )
- message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
-
- # configure debug
- message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
- set(ENV{CFLAGS} "${MESON_COMMON_CFLAGS} ${MESON_DEBUG_CFLAGS}")
- set(ENV{CXXFLAGS} "${MESON_COMMON_CXXFLAGS} ${MESON_DEBUG_CXXFLAGS}")
- set(ENV{LDFLAGS} "${MESON_COMMON_LDFLAGS} ${MESON_DEBUG_LDFLAGS}")
- set(ENV{CPPFLAGS} "${MESON_COMMON_CPPFLAGS} ${MESON_DEBUG_CPPFLAGS}")
- vcpkg_execute_required_process(
- COMMAND ${MESON} ${_vcm_OPTIONS} ${_vcm_OPTIONS_DEBUG} ${_vcm_SOURCE_PATH}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- LOGNAME config-${TARGET_TRIPLET}-dbg
- )
- message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+ set(ENV{CFLAGS} "${MESON_COMMON_CFLAGS} ${MESON_RELEASE_CFLAGS}")
+ set(ENV{CXXFLAGS} "${MESON_COMMON_CXXFLAGS} ${MESON_RELEASE_CXXFLAGS}")
+ set(ENV{LDFLAGS} "${MESON_COMMON_LDFLAGS} ${MESON_RELEASE_LDFLAGS}")
+ set(ENV{CPPFLAGS} "${MESON_COMMON_CPPFLAGS} ${MESON_RELEASE_CPPFLAGS}")
+ vcpkg_execute_required_process(
+ COMMAND ${MESON} ${_vcm_OPTIONS} ${_vcm_OPTIONS_RELEASE} ${_vcm_SOURCE_PATH}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
+ LOGNAME config-${TARGET_TRIPLET}-rel
+ )
+ message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
+ endif()
+
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ # configure debug
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+ set(ENV{CFLAGS} "${MESON_COMMON_CFLAGS} ${MESON_DEBUG_CFLAGS}")
+ set(ENV{CXXFLAGS} "${MESON_COMMON_CXXFLAGS} ${MESON_DEBUG_CXXFLAGS}")
+ set(ENV{LDFLAGS} "${MESON_COMMON_LDFLAGS} ${MESON_DEBUG_LDFLAGS}")
+ set(ENV{CPPFLAGS} "${MESON_COMMON_CPPFLAGS} ${MESON_DEBUG_CPPFLAGS}")
+ vcpkg_execute_required_process(
+ COMMAND ${MESON} ${_vcm_OPTIONS} ${_vcm_OPTIONS_DEBUG} ${_vcm_SOURCE_PATH}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME config-${TARGET_TRIPLET}-dbg
+ )
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
+ endif()
endfunction()
diff --git a/scripts/cmake/vcpkg_download_distfile.cmake b/scripts/cmake/vcpkg_download_distfile.cmake
index b22d82a16..24503338a 100644
--- a/scripts/cmake/vcpkg_download_distfile.cmake
+++ b/scripts/cmake/vcpkg_download_distfile.cmake
@@ -39,6 +39,16 @@ function(vcpkg_download_distfile VAR)
set(multipleValuesArgs URLS)
cmake_parse_arguments(vcpkg_download_distfile "" "${oneValueArgs}" "${multipleValuesArgs}" ${ARGN})
+ if(NOT DEFINED vcpkg_download_distfile_URLS)
+ message(FATAL_ERROR "vcpkg_download_distfile requires a URLS argument.")
+ endif()
+ if(NOT DEFINED vcpkg_download_distfile_FILENAME)
+ message(FATAL_ERROR "vcpkg_download_distfile requires a FILENAME argument.")
+ endif()
+ if(NOT DEFINED vcpkg_download_distfile_SHA512)
+ message(FATAL_ERROR "vcpkg_download_distfile requires a SHA512 argument.")
+ endif()
+
set(downloaded_file_path ${DOWNLOADS}/${vcpkg_download_distfile_FILENAME})
set(download_file_path_part "${DOWNLOADS}/temp/${vcpkg_download_distfile_FILENAME}")
diff --git a/scripts/cmake/vcpkg_execute_required_process.cmake b/scripts/cmake/vcpkg_execute_required_process.cmake
index 173bca6e9..7c4907016 100644
--- a/scripts/cmake/vcpkg_execute_required_process.cmake
+++ b/scripts/cmake/vcpkg_execute_required_process.cmake
@@ -38,13 +38,14 @@ function(vcpkg_execute_required_process)
RESULT_VARIABLE error_code
WORKING_DIRECTORY ${vcpkg_execute_required_process_WORKING_DIRECTORY})
#debug_message("error_code=${error_code}")
- file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}" NATIVE_BUILDTREES_DIR)
if(error_code)
+ file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/${vcpkg_execute_required_process_LOGNAME}-out.log" NATIVE_LOG_OUT)
+ file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/${vcpkg_execute_required_process_LOGNAME}-err.log" NATIVE_LOG_ERR)
message(FATAL_ERROR
" Command failed: ${vcpkg_execute_required_process_COMMAND}\n"
" Working Directory: ${vcpkg_execute_required_process_WORKING_DIRECTORY}\n"
" See logs for more information:\n"
- " ${NATIVE_BUILDTREES_DIR}\\${vcpkg_execute_required_process_LOGNAME}-out.log\n"
- " ${NATIVE_BUILDTREES_DIR}\\${vcpkg_execute_required_process_LOGNAME}-err.log\n")
+ " ${NATIVE_LOG_OUT}\n"
+ " ${NATIVE_LOG_ERR}\n")
endif()
endfunction()
diff --git a/scripts/cmake/vcpkg_find_acquire_program.cmake b/scripts/cmake/vcpkg_find_acquire_program.cmake
index e6a37e328..066126e6c 100644
--- a/scripts/cmake/vcpkg_find_acquire_program.cmake
+++ b/scripts/cmake/vcpkg_find_acquire_program.cmake
@@ -148,6 +148,14 @@ function(vcpkg_find_acquire_program VAR)
set(URL "https://github.com/wixtoolset/wix3/releases/download/wix311rtm/wix311-binaries.zip")
set(ARCHIVE "wix311-binaries.zip")
set(HASH 74f0fa29b5991ca655e34a9d1000d47d4272e071113fada86727ee943d913177ae96dc3d435eaf494d2158f37560cd4c2c5274176946ebdb17bf2354ced1c516)
+ elseif(VAR MATCHES "SCONS")
+ set(PROGNAME scons)
+ set(REQUIRED_INTERPRETER PYTHON2)
+ set(SCRIPTNAME "scons.py")
+ set(PATHS ${DOWNLOADS}/tools/scons)
+ set(URL "https://sourceforge.net/projects/scons/files/scons-local-3.0.1.zip/download")
+ set(ARCHIVE "scons-local-3.0.1.zip")
+ set(HASH fe121b67b979a4e9580c7f62cfdbe0c243eba62a05b560d6d513ac7f35816d439b26d92fc2d7b7d7241c9ce2a49ea7949455a17587ef53c04a5f5125ac635727)
else()
message(FATAL "unknown tool ${VAR} -- unable to acquire.")
endif()
diff --git a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
index 5bf1b2cdb..f86ad0661 100644
--- a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
+++ b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
@@ -27,29 +27,33 @@ function(vcpkg_fixup_cmake_targets)
set(DEBUG_CONFIG ${CURRENT_PACKAGES_DIR}/debug/${_vfct_CONFIG_PATH})
set(RELEASE_CONFIG ${CURRENT_PACKAGES_DIR}/${_vfct_CONFIG_PATH})
- if(NOT EXISTS ${DEBUG_CONFIG})
- message(FATAL_ERROR "'${DEBUG_CONFIG}' does not exist.")
- endif()
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ if(NOT EXISTS ${DEBUG_CONFIG})
+ message(FATAL_ERROR "'${DEBUG_CONFIG}' does not exist.")
+ endif()
- file(MAKE_DIRECTORY ${DEBUG_SHARE})
- file(GLOB FILES ${DEBUG_CONFIG}/*)
- file(COPY ${FILES} DESTINATION ${DEBUG_SHARE})
- file(REMOVE_RECURSE ${DEBUG_CONFIG})
+ file(MAKE_DIRECTORY ${DEBUG_SHARE})
+ file(GLOB FILES ${DEBUG_CONFIG}/*)
+ file(COPY ${FILES} DESTINATION ${DEBUG_SHARE})
+ file(REMOVE_RECURSE ${DEBUG_CONFIG})
+ endif()
file(GLOB FILES ${RELEASE_CONFIG}/*)
file(COPY ${FILES} DESTINATION ${RELEASE_SHARE})
file(REMOVE_RECURSE ${RELEASE_CONFIG})
- get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG} NAME)
- string(TOLOWER "${DEBUG_CONFIG_DIR_NAME}" DEBUG_CONFIG_DIR_NAME)
- if(DEBUG_CONFIG_DIR_NAME STREQUAL "cmake")
- file(REMOVE_RECURSE ${DEBUG_CONFIG})
- else()
- get_filename_component(DEBUG_CONFIG_PARENT_DIR ${DEBUG_CONFIG} DIRECTORY)
- get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG_PARENT_DIR} NAME)
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG} NAME)
string(TOLOWER "${DEBUG_CONFIG_DIR_NAME}" DEBUG_CONFIG_DIR_NAME)
if(DEBUG_CONFIG_DIR_NAME STREQUAL "cmake")
- file(REMOVE_RECURSE ${DEBUG_CONFIG_PARENT_DIR})
+ file(REMOVE_RECURSE ${DEBUG_CONFIG})
+ else()
+ get_filename_component(DEBUG_CONFIG_PARENT_DIR ${DEBUG_CONFIG} DIRECTORY)
+ get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG_PARENT_DIR} NAME)
+ string(TOLOWER "${DEBUG_CONFIG_DIR_NAME}" DEBUG_CONFIG_DIR_NAME)
+ if(DEBUG_CONFIG_DIR_NAME STREQUAL "cmake")
+ file(REMOVE_RECURSE ${DEBUG_CONFIG_PARENT_DIR})
+ endif()
endif()
endif()
@@ -67,8 +71,10 @@ function(vcpkg_fixup_cmake_targets)
endif()
endif()
- if(NOT EXISTS ${DEBUG_SHARE})
- message(FATAL_ERROR "'${DEBUG_SHARE}' does not exist.")
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ if(NOT EXISTS ${DEBUG_SHARE})
+ message(FATAL_ERROR "'${DEBUG_SHARE}' does not exist.")
+ endif()
endif()
file(GLOB UNUSED_FILES
@@ -94,23 +100,25 @@ function(vcpkg_fixup_cmake_targets)
file(WRITE ${RELEASE_TARGET} "${_contents}")
endforeach()
- file(GLOB DEBUG_TARGETS
- "${DEBUG_SHARE}/*[Tt]argets-debug.cmake"
- "${DEBUG_SHARE}/*[Cc]onfig-debug.cmake"
- "${DEBUG_SHARE}/*[Ee]xports-debug.cmake"
- )
- foreach(DEBUG_TARGET ${DEBUG_TARGETS})
- get_filename_component(DEBUG_TARGET_NAME ${DEBUG_TARGET} NAME)
-
- file(READ ${DEBUG_TARGET} _contents)
- string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" _contents "${_contents}")
- string(REGEX REPLACE "\\\${_IMPORT_PREFIX}/bin/([^ \"]+\\.exe)" "\${_IMPORT_PREFIX}/tools/${PORT}/\\1" _contents "${_contents}")
- string(REPLACE "\${_IMPORT_PREFIX}/lib" "\${_IMPORT_PREFIX}/debug/lib" _contents "${_contents}")
- string(REPLACE "\${_IMPORT_PREFIX}/bin" "\${_IMPORT_PREFIX}/debug/bin" _contents "${_contents}")
- file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/${DEBUG_TARGET_NAME} "${_contents}")
-
- file(REMOVE ${DEBUG_TARGET})
- endforeach()
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(GLOB DEBUG_TARGETS
+ "${DEBUG_SHARE}/*[Tt]argets-debug.cmake"
+ "${DEBUG_SHARE}/*[Cc]onfig-debug.cmake"
+ "${DEBUG_SHARE}/*[Ee]xports-debug.cmake"
+ )
+ foreach(DEBUG_TARGET ${DEBUG_TARGETS})
+ get_filename_component(DEBUG_TARGET_NAME ${DEBUG_TARGET} NAME)
+
+ file(READ ${DEBUG_TARGET} _contents)
+ string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" _contents "${_contents}")
+ string(REGEX REPLACE "\\\${_IMPORT_PREFIX}/bin/([^ \"]+\\.exe)" "\${_IMPORT_PREFIX}/tools/${PORT}/\\1" _contents "${_contents}")
+ string(REPLACE "\${_IMPORT_PREFIX}/lib" "\${_IMPORT_PREFIX}/debug/lib" _contents "${_contents}")
+ string(REPLACE "\${_IMPORT_PREFIX}/bin" "\${_IMPORT_PREFIX}/debug/bin" _contents "${_contents}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/${DEBUG_TARGET_NAME} "${_contents}")
+
+ file(REMOVE ${DEBUG_TARGET})
+ endforeach()
+ endif()
file(GLOB MAIN_TARGETS "${RELEASE_SHARE}/*[Tt]argets.cmake")
foreach(MAIN_TARGET ${MAIN_TARGETS})
diff --git a/scripts/cmake/vcpkg_from_github.cmake b/scripts/cmake/vcpkg_from_github.cmake
index 5730ce39a..b71ab3838 100644
--- a/scripts/cmake/vcpkg_from_github.cmake
+++ b/scripts/cmake/vcpkg_from_github.cmake
@@ -54,19 +54,19 @@ function(vcpkg_from_github)
set(multipleValuesArgs)
cmake_parse_arguments(_vdud "" "${oneValueArgs}" "${multipleValuesArgs}" ${ARGN})
- if(NOT _vdud_OUT_SOURCE_PATH)
+ if(NOT DEFINED _vdud_OUT_SOURCE_PATH)
message(FATAL_ERROR "OUT_SOURCE_PATH must be specified.")
endif()
- if((_vdud_REF AND NOT _vdud_SHA512) OR (NOT _vdud_REF AND _vdud_SHA512))
+ if((DEFINED _vdud_REF AND NOT DEFINED _vdud_SHA512) OR (NOT DEFINED _vdud_REF AND DEFINED _vdud_SHA512))
message(FATAL_ERROR "SHA512 must be specified if REF is specified.")
endif()
- if(NOT _vdud_REPO)
+ if(NOT DEFINED _vdud_REPO)
message(FATAL_ERROR "The GitHub repository must be specified.")
endif()
- if(NOT _vdud_REF AND NOT _vdud_HEAD_REF)
+ if(NOT DEFINED _vdud_REF AND NOT DEFINED _vdud_HEAD_REF)
message(FATAL_ERROR "At least one of REF and HEAD_REF must be specified.")
endif()
@@ -90,7 +90,7 @@ function(vcpkg_from_github)
endif()
endmacro()
- if(VCPKG_USE_HEAD_VERSION AND NOT _vdud_HEAD_REF)
+ if(VCPKG_USE_HEAD_VERSION AND NOT DEFINED _vdud_HEAD_REF)
message(STATUS "Package does not specify HEAD_REF. Falling back to non-HEAD version.")
set(VCPKG_USE_HEAD_VERSION OFF)
endif()
diff --git a/scripts/fetchDependency.ps1 b/scripts/fetchDependency.ps1
index 2cc782feb..f62fe450c 100644
--- a/scripts/fetchDependency.ps1
+++ b/scripts/fetchDependency.ps1
@@ -1,6 +1,6 @@
[CmdletBinding()]
param(
- [string]$Dependency
+ [Parameter(Mandatory=$true)][string]$Dependency
)
$scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition
@@ -20,14 +20,13 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency)
if($Dependency -eq "cmake")
{
- $requiredVersion = "3.9.5"
- $downloadVersion = "3.9.5"
- $url = "https://cmake.org/files/v3.9/cmake-3.9.5-win32-x86.zip"
- $downloadPath = "$downloadsDir\cmake-3.9.5-win32-x86.zip"
- $expectedDownloadedFileHash = "dd3e183254c12f7c338d3edfa642f1ac84a763b8b9a2feabb4ad5fccece5dff9"
- $executableFromDownload = "$downloadsDir\cmake-3.9.5-win32-x86\bin\cmake.exe"
+ $requiredVersion = "3.10.0"
+ $downloadVersion = "3.10.0"
+ $url = "https://cmake.org/files/v3.10/cmake-3.10.0-win32-x86.zip"
+ $downloadPath = "$downloadsDir\cmake-3.10.0-win32-x86.zip"
+ $expectedDownloadedFileHash = "dce666e897f95a88d3eed6cddd1faa3f44179d519b33ca6065b385bbc7072419"
+ $executableFromDownload = "$downloadsDir\cmake-3.10.0-win32-x86\bin\cmake.exe"
$extractionType = $ExtractionType_ZIP
- $extractionFolder = $downloadsDir
}
elseif($Dependency -eq "nuget")
{
@@ -60,7 +59,6 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency)
# Therefore, choosing the cmd dir here as well.
$executableFromDownload = "$downloadsDir\MinGit-2.15.0-32-bit\cmd\git.exe"
$extractionType = $ExtractionType_ZIP
- $extractionFolder = "$downloadsDir\MinGit-2.15.0-32-bit"
}
elseif($Dependency -eq "installerbase")
{
@@ -71,7 +69,6 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency)
$expectedDownloadedFileHash = "f2ce23cf5cf9fc7ce409bdca49328e09a070c0026d3c8a04e4dfde7b05b83fe8"
$executableFromDownload = "$downloadsDir\QtInstallerFramework-win-x86\bin\installerbase.exe"
$extractionType = $ExtractionType_ZIP
- $extractionFolder = $downloadsDir
}
else
{
@@ -91,7 +88,8 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency)
{
if (-not (Test-Path $executableFromDownload))
{
- vcpkgExtractFile -File $downloadPath -Destination $extractionFolder
+ $outFilename = (Get-ChildItem $downloadPath).BaseName
+ vcpkgExtractFile -File $downloadPath -DestinationDir $downloadsDir -outFilename $outFilename
}
}
elseif($extractionType -eq $ExtractionType_SELF_EXTRACTING_7Z)
diff --git a/scripts/findAnyMSBuildWithCppPlatformToolset.ps1 b/scripts/findAnyMSBuildWithCppPlatformToolset.ps1
index e58b58c04..46ba767b9 100644
--- a/scripts/findAnyMSBuildWithCppPlatformToolset.ps1
+++ b/scripts/findAnyMSBuildWithCppPlatformToolset.ps1
@@ -8,6 +8,11 @@ $withVSPath = $withVSPath -replace "\\$" # Remove potential trailing backslash
$scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition
$VisualStudioInstallationInstances = & $scriptsDir\findVisualStudioInstallationInstances.ps1
+if ($VisualStudioInstallationInstances -eq $null)
+{
+ throw "Could not find Visual Studio. VS2015 or VS2017 (with C++) needs to be installed."
+}
+
Write-Verbose "VS Candidates:`n`r$([system.String]::Join([Environment]::NewLine, $VisualStudioInstallationInstances))"
foreach ($instanceCandidateWithEOL in $VisualStudioInstallationInstances)
{
diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake
index b32f840d2..bc79b16ce 100644
--- a/scripts/get_triplet_environment.cmake
+++ b/scripts/get_triplet_environment.cmake
@@ -6,4 +6,6 @@ message("VCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE}")
message("VCPKG_CMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}")
message("VCPKG_CMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION}")
message("VCPKG_PLATFORM_TOOLSET=${VCPKG_PLATFORM_TOOLSET}")
-message("VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH}") \ No newline at end of file
+message("VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH}")
+message("VCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}")
+message("VCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE}")
diff --git a/scripts/internalCI.ps1 b/scripts/internalCI.ps1
index 16ce4fc7a..37f4f35a4 100644
--- a/scripts/internalCI.ps1
+++ b/scripts/internalCI.ps1
@@ -1,5 +1,7 @@
$ErrorActionPreference = "Stop"
+rm TEST-internal-ci.xml -errorAction SilentlyContinue
+
New-Item -type directory downloads -errorAction SilentlyContinue | Out-Null
./scripts/bootstrap.ps1
if (-not $?) { throw $? }
@@ -7,21 +9,14 @@ if (-not $?) { throw $? }
# Clear out any intermediate files from the previous build
if (Test-Path buildtrees)
{
- Get-ChildItem buildtrees/*/* | ? { $_.Name -ne "src" -and $_.Extension -ne ".log"} | Remove-Item -Recurse -Force
+ Get-ChildItem buildtrees/*/* | ? { $_.Name -ne "src" } | Remove-Item -Recurse -Force
}
# Purge any outdated packages
./vcpkg remove --outdated --recurse
if (-not $?) { throw $? }
-./vcpkg.exe install azure-storage-cpp cpprestsdk:x64-windows-static cpprestsdk:x86-uwp
-if (-not $?) { throw $? }
-
-./vcpkg.exe install bond cryptopp zlib expat sdl2 curl sqlite3 libuv protobuf:x64-windows sfml opencv:x64-windows uwebsockets uwebsockets:x64-windows-static
+./vcpkg.exe install azure-storage-cpp cpprestsdk:x64-windows-static cpprestsdk:x86-uwp `
+bond cryptopp zlib expat sdl2 curl sqlite3 libuv protobuf:x64-windows sfml opencv:x64-windows uwebsockets uwebsockets:x64-windows-static `
+opencv:x86-uwp boost:x86-uwp --keep-going "--x-xunit=TEST-internal-ci.xml"
if (-not $?) { throw $? }
-
-./vcpkg.exe install opencv:x86-uwp boost:x86-uwp
-if (-not $?) { throw $? }
-
-# ./vcpkg.exe install folly:x64-windows
-# if (-not $?) { throw $? }
diff --git a/toolsrc/CMakeLists.txt b/toolsrc/CMakeLists.txt
new file mode 100644
index 000000000..0168e2de2
--- /dev/null
+++ b/toolsrc/CMakeLists.txt
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.3)
+project(vcpkg CXX)
+
+add_compile_options(-std=c++1z)
+
+if(CMAKE_COMPILER_IS_GNUXX OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+ set(GCC 1)
+elseif(CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang")
+ set(CLANG 1)
+else()
+ message(FATAL_ERROR "Unknown compiler: ${CMAKE_CXX_COMPILER_ID}")
+endif()
+
+file(GLOB_RECURSE VCPKGLIB_SOURCES src/vcpkg/*.cpp)
+
+add_library(vcpkglib STATIC ${VCPKGLIB_SOURCES})
+target_compile_definitions(vcpkglib PRIVATE -DDISABLE_METRICS=0)
+target_include_directories(vcpkglib PUBLIC include)
+
+if(GCC)
+ target_link_libraries(vcpkglib PUBLIC stdc++fs)
+elseif(CLANG)
+ target_link_libraries(vcpkglib PUBLIC c++experimental)
+endif()
+
+add_executable(vcpkg src/vcpkg.cpp)
+target_link_libraries(vcpkg PRIVATE vcpkglib)
diff --git a/toolsrc/VERSION.txt b/toolsrc/VERSION.txt
index d7db639a5..e45ea373f 100644
--- a/toolsrc/VERSION.txt
+++ b/toolsrc/VERSION.txt
@@ -1 +1 @@
-"0.0.97" \ No newline at end of file
+"0.0.100" \ No newline at end of file
diff --git a/toolsrc/include/pch.h b/toolsrc/include/pch.h
index 5c31fbbd1..683bef171 100644
--- a/toolsrc/include/pch.h
+++ b/toolsrc/include/pch.h
@@ -41,6 +41,7 @@
#include <map>
#include <memory>
#include <mutex>
+#include <random>
#include <regex>
#include <set>
#include <stdexcept>
diff --git a/toolsrc/include/tests.pch.h b/toolsrc/include/tests.pch.h
index 0037af585..5c00fca4a 100644
--- a/toolsrc/include/tests.pch.h
+++ b/toolsrc/include/tests.pch.h
@@ -2,6 +2,7 @@
#include <CppUnitTest.h>
+#include <vcpkg/base/chrono.h>
#include <vcpkg/base/sortedvector.h>
#include <vcpkg/base/strings.h>
#include <vcpkg/base/util.h>
diff --git a/toolsrc/include/tests.utils.h b/toolsrc/include/tests.utils.h
index 485b8c294..0c0add7ab 100644
--- a/toolsrc/include/tests.utils.h
+++ b/toolsrc/include/tests.utils.h
@@ -23,4 +23,18 @@ std::unique_ptr<vcpkg::StatusParagraph> make_status_pgh(const char* name,
std::unique_ptr<vcpkg::StatusParagraph> make_status_feature_pgh(const char* name,
const char* feature,
const char* depends = "",
- const char* triplet = "x86-windows"); \ No newline at end of file
+ const char* triplet = "x86-windows");
+
+template<class T, class S>
+T&& unwrap(vcpkg::ExpectedT<T, S>&& p)
+{
+ Assert::IsTrue(p.has_value());
+ return std::move(*p.get());
+}
+
+template<class T>
+T&& unwrap(vcpkg::Optional<T>&& opt)
+{
+ Assert::IsTrue(opt.has_value());
+ return std::move(*opt.get());
+}
diff --git a/toolsrc/include/vcpkg/base/chrono.h b/toolsrc/include/vcpkg/base/chrono.h
index b525852f2..4291115f7 100644
--- a/toolsrc/include/vcpkg/base/chrono.h
+++ b/toolsrc/include/vcpkg/base/chrono.h
@@ -2,27 +2,65 @@
#include <chrono>
#include <string>
+#include <time.h>
+#include <vcpkg/base/optional.h>
namespace vcpkg::Chrono
{
class ElapsedTime
{
- public:
- static ElapsedTime create_started();
+ using duration = std::chrono::high_resolution_clock::time_point::duration;
- constexpr ElapsedTime() : m_start_tick() {}
+ public:
+ constexpr ElapsedTime() : m_duration() {}
+ constexpr ElapsedTime(duration d) : m_duration(d) {}
template<class TimeUnit>
- TimeUnit elapsed() const
+ TimeUnit as() const
+ {
+ return std::chrono::duration_cast<TimeUnit>(m_duration);
+ }
+
+ std::string to_string() const;
+
+ private:
+ std::chrono::high_resolution_clock::time_point::duration m_duration;
+ };
+
+ class ElapsedTimer
+ {
+ public:
+ static ElapsedTimer create_started();
+
+ constexpr ElapsedTimer() : m_start_tick() {}
+
+ ElapsedTime elapsed() const
{
- return std::chrono::duration_cast<TimeUnit>(std::chrono::high_resolution_clock::now() - this->m_start_tick);
+ return ElapsedTime(std::chrono::high_resolution_clock::now() - this->m_start_tick);
}
- double microseconds() const { return elapsed<std::chrono::duration<double, std::micro>>().count(); }
+ double microseconds() const { return elapsed().as<std::chrono::duration<double, std::micro>>().count(); }
std::string to_string() const;
private:
std::chrono::high_resolution_clock::time_point m_start_tick;
};
+
+ class CTime
+ {
+ public:
+ static Optional<CTime> get_current_date_time();
+ static Optional<CTime> parse(CStringView str);
+
+ constexpr CTime() : m_tm{0} {}
+ explicit constexpr CTime(tm t) : m_tm{t} {}
+
+ std::string to_string() const;
+
+ std::chrono::system_clock::time_point to_time_point() const;
+
+ private:
+ mutable tm m_tm;
+ };
}
diff --git a/toolsrc/include/vcpkg/base/files.h b/toolsrc/include/vcpkg/base/files.h
index 63cf3c6fd..51a12ceba 100644
--- a/toolsrc/include/vcpkg/base/files.h
+++ b/toolsrc/include/vcpkg/base/files.h
@@ -15,6 +15,7 @@ namespace fs
using stdfs::copy_options;
using stdfs::file_status;
using stdfs::path;
+ using stdfs::u8path;
inline bool is_regular_file(file_status s) { return stdfs::is_regular_file(s); }
inline bool is_directory(file_status s) { return stdfs::is_directory(s); }
diff --git a/toolsrc/include/vcpkg/base/graphs.h b/toolsrc/include/vcpkg/base/graphs.h
index b585d2bb9..bd22bbcb0 100644
--- a/toolsrc/include/vcpkg/base/graphs.h
+++ b/toolsrc/include/vcpkg/base/graphs.h
@@ -4,6 +4,7 @@
#include <unordered_set>
#include <vcpkg/base/checks.h>
+#include <vcpkg/base/span.h>
namespace vcpkg::Graphs
{
@@ -23,139 +24,97 @@ namespace vcpkg::Graphs
struct AdjacencyProvider
{
virtual std::vector<V> adjacency_list(const U& vertex) const = 0;
-
+ virtual std::string to_string(const V& vertex) const = 0;
virtual U load_vertex_data(const V& vertex) const = 0;
};
- template<class V, class U>
- static void topological_sort_internal(const V& vertex,
- const AdjacencyProvider<V, U>& f,
- std::unordered_map<V, ExplorationStatus>& exploration_status,
- std::vector<U>& sorted)
+ namespace details
{
- ExplorationStatus& status = exploration_status[vertex];
- switch (status)
+ template<class V, class U>
+ void topological_sort_internal(const V& vertex,
+ const AdjacencyProvider<V, U>& f,
+ std::unordered_map<V, ExplorationStatus>& exploration_status,
+ std::vector<U>& sorted)
{
- case ExplorationStatus::FULLY_EXPLORED: return;
- case ExplorationStatus::PARTIALLY_EXPLORED: Checks::exit_with_message(VCPKG_LINE_INFO, "cycle in graph");
- case ExplorationStatus::NOT_EXPLORED:
+ ExplorationStatus& status = exploration_status[vertex];
+ switch (status)
{
- status = ExplorationStatus::PARTIALLY_EXPLORED;
- U vertex_data = f.load_vertex_data(vertex);
- for (const V& neighbour : f.adjacency_list(vertex_data))
- topological_sort_internal(neighbour, f, exploration_status, sorted);
-
- sorted.push_back(std::move(vertex_data));
- status = ExplorationStatus::FULLY_EXPLORED;
- return;
+ case ExplorationStatus::FULLY_EXPLORED: return;
+ case ExplorationStatus::PARTIALLY_EXPLORED:
+ {
+ System::println("Cycle detected within graph:");
+ for (auto&& node : exploration_status)
+ {
+ if (node.second == ExplorationStatus::PARTIALLY_EXPLORED)
+ {
+ System::println(" %s", f.to_string(node.first));
+ }
+ }
+ Checks::exit_fail(VCPKG_LINE_INFO);
+ }
+ case ExplorationStatus::NOT_EXPLORED:
+ {
+ status = ExplorationStatus::PARTIALLY_EXPLORED;
+ U vertex_data = f.load_vertex_data(vertex);
+ for (const V& neighbour : f.adjacency_list(vertex_data))
+ topological_sort_internal(neighbour, f, exploration_status, sorted);
+
+ sorted.push_back(std::move(vertex_data));
+ status = ExplorationStatus::FULLY_EXPLORED;
+ return;
+ }
+ default: Checks::unreachable(VCPKG_LINE_INFO);
}
- default: Checks::unreachable(VCPKG_LINE_INFO);
}
}
- template<class V, class U>
- std::vector<U> topological_sort(const std::vector<V>& starting_vertices, const AdjacencyProvider<V, U>& f)
+ template<class VertexRange, class V, class U>
+ std::vector<U> topological_sort(const VertexRange& starting_vertices, const AdjacencyProvider<V, U>& f)
{
std::vector<U> sorted;
std::unordered_map<V, ExplorationStatus> exploration_status;
- for (auto& vertex : starting_vertices)
+ for (auto&& vertex : starting_vertices)
{
- topological_sort_internal(vertex, f, exploration_status, sorted);
+ details::topological_sort_internal(vertex, f, exploration_status, sorted);
}
return sorted;
}
template<class V>
- struct GraphAdjacencyProvider final : AdjacencyProvider<V, V>
- {
- const std::unordered_map<V, std::unordered_set<V>>& vertices;
-
- GraphAdjacencyProvider(const std::unordered_map<V, std::unordered_set<V>>& vertices) : vertices(vertices) {}
-
- std::vector<V> adjacency_list(const V& vertex) const override
- {
- const std::unordered_set<V>& as_set = this->vertices.at(vertex);
- return std::vector<V>(as_set.cbegin(), as_set.cend()); // TODO: Avoid redundant copy
- }
-
- V load_vertex_data(const V& vertex) const override { return vertex; }
- };
-
- template<class V>
- struct Graph
+ struct Graph final : AdjacencyProvider<V, V>
{
public:
- void add_vertex(V v) { this->vertices[v]; }
+ void add_vertex(const V& v) { this->m_edges[v]; }
- // TODO: Change with iterators
- void add_vertices(const std::vector<V>& vs)
+ void add_edge(const V& u, const V& v)
{
- for (const V& v : vs)
- {
- this->vertices[v];
- }
+ this->m_edges[v];
+ this->m_edges[u].insert(v);
}
- void add_edge(V u, V v)
+ std::vector<V> vertex_list() const
{
- this->vertices[v];
- this->vertices[u].insert(v);
+ std::vector<V> vertex_list;
+ for (auto&& vertex : this->m_edges)
+ vertex_list.emplace_back(vertex.first);
+ return vertex_list;
}
- std::vector<V> topological_sort() const
+ std::vector<V> adjacency_list(const V& vertex) const override
{
- GraphAdjacencyProvider<V> adjacency_provider{this->vertices};
- std::unordered_map<V, int> indegrees = count_indegrees();
-
- std::vector<V> sorted;
- sorted.reserve(indegrees.size());
-
- std::unordered_map<V, ExplorationStatus> exploration_status;
- exploration_status.reserve(indegrees.size());
-
- for (auto& pair : indegrees)
- {
- if (pair.second == 0) // Starting from vertices with indegree == 0. Not required.
- {
- V vertex = pair.first;
- topological_sort_internal(vertex, adjacency_provider, exploration_status, sorted);
- }
- }
-
- return sorted;
+ const std::unordered_set<V>& as_set = this->m_edges.at(vertex);
+ return std::vector<V>(as_set.cbegin(), as_set.cend()); // TODO: Avoid redundant copy
}
- std::unordered_map<V, int> count_indegrees() const
- {
- std::unordered_map<V, int> indegrees;
-
- for (auto& pair : this->vertices)
- {
- indegrees[pair.first];
- for (V neighbour : pair.second)
- {
- ++indegrees[neighbour];
- }
- }
-
- return indegrees;
- }
+ V load_vertex_data(const V& vertex) const override { return vertex; }
- const std::unordered_map<V, std::unordered_set<V>>& adjacency_list() const { return this->vertices; }
- std::vector<V> vertex_list() const
- {
- // why no &? it returns 0
- std::vector<V> vertex_list;
- for (const auto& vertex : this->vertices)
- {
- vertex_list.emplace_back(vertex.first);
- }
- return vertex_list;
- }
+ // Note: this function indicates how tied this template is to the exact type it will be templated upon.
+ // Possible fix: This type shouldn't implement to_string() and should instead be derived from?
+ std::string to_string(const V& spec) const override { return spec->spec.to_string(); }
private:
- std::unordered_map<V, std::unordered_set<V>> vertices;
+ std::unordered_map<V, std::unordered_set<V>> m_edges;
};
}
diff --git a/toolsrc/include/vcpkg/base/optional.h b/toolsrc/include/vcpkg/base/optional.h
index aa9e480fd..af2d297a6 100644
--- a/toolsrc/include/vcpkg/base/optional.h
+++ b/toolsrc/include/vcpkg/base/optional.h
@@ -53,10 +53,8 @@ namespace vcpkg
// Constructors are intentionally implicit
constexpr Optional(NullOpt) {}
- Optional(const T& t) : m_base(t) {}
-
- template<class = std::enable_if_t<!std::is_reference<T>::value>>
- Optional(T&& t) : m_base(std::move(t))
+ template<class U>
+ Optional(U&& t) : m_base(std::forward<U>(t))
{
}
diff --git a/toolsrc/include/vcpkg/base/system.h b/toolsrc/include/vcpkg/base/system.h
index 9f2d91435..31034f6b4 100644
--- a/toolsrc/include/vcpkg/base/system.h
+++ b/toolsrc/include/vcpkg/base/system.h
@@ -10,6 +10,28 @@ namespace vcpkg::System
fs::path get_exe_path_of_current_process();
+ struct CMakeVariable
+ {
+ CMakeVariable(const CStringView varname, const char* varvalue);
+ CMakeVariable(const CStringView varname, const std::string& varvalue);
+ CMakeVariable(const CStringView varname, const fs::path& path);
+
+ std::string s;
+ };
+
+ std::string make_cmake_cmd(const fs::path& cmake_exe,
+ const fs::path& cmake_script,
+ const std::vector<CMakeVariable>& pass_variables);
+
+ struct PowershellParameter
+ {
+ PowershellParameter(const CStringView varname, const char* varvalue);
+ PowershellParameter(const CStringView varname, const std::string& varvalue);
+ PowershellParameter(const CStringView varname, const fs::path& path);
+
+ std::string s;
+ };
+
struct ExitCodeAndOutput
{
int exit_code;
@@ -22,9 +44,13 @@ namespace vcpkg::System
ExitCodeAndOutput cmd_execute_and_capture_output(const CStringView cmd_line);
+ void powershell_execute(const std::string& title,
+ const fs::path& script_path,
+ const std::vector<PowershellParameter>& parameters = {});
+
std::string powershell_execute_and_capture_output(const std::string& title,
const fs::path& script_path,
- const CStringView args = "");
+ const std::vector<PowershellParameter>& parameters = {});
enum class Color
{
diff --git a/toolsrc/include/vcpkg/build.h b/toolsrc/include/vcpkg/build.h
index 1f6782ccf..e3f8bf79e 100644
--- a/toolsrc/include/vcpkg/build.h
+++ b/toolsrc/include/vcpkg/build.h
@@ -44,6 +44,12 @@ namespace vcpkg::Build
YES
};
+ enum class ConfigurationType
+ {
+ DEBUG,
+ RELEASE,
+ };
+
struct BuildPackageOptions
{
UseHeadVersion use_head_version;
@@ -89,6 +95,8 @@ namespace vcpkg::Build
std::string cmake_system_version;
Optional<std::string> platform_toolset;
Optional<fs::path> visual_studio_path;
+ Optional<std::string> external_toolchain_file;
+ Optional<ConfigurationType> build_type;
};
std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset);
@@ -106,39 +114,24 @@ namespace vcpkg::Build
struct BuildPackageConfig
{
- BuildPackageConfig(const SourceParagraph& src,
- const Triplet& triplet,
- fs::path&& port_dir,
- const BuildPackageOptions& build_package_options)
- : src(src)
- , scf(nullptr)
- , triplet(triplet)
- , port_dir(std::move(port_dir))
- , build_package_options(build_package_options)
- , feature_list(nullptr)
- {
- }
-
BuildPackageConfig(const SourceControlFile& src,
const Triplet& triplet,
fs::path&& port_dir,
const BuildPackageOptions& build_package_options,
const std::unordered_set<std::string>& feature_list)
- : src(*src.core_paragraph)
- , scf(&src)
+ : scf(src)
, triplet(triplet)
, port_dir(std::move(port_dir))
, build_package_options(build_package_options)
- , feature_list(&feature_list)
+ , feature_list(feature_list)
{
}
- const SourceParagraph& src;
- const SourceControlFile* scf;
+ const SourceControlFile& scf;
const Triplet& triplet;
fs::path port_dir;
const BuildPackageOptions& build_package_options;
- const std::unordered_set<std::string>* feature_list;
+ const std::unordered_set<std::string>& feature_list;
};
ExtendedBuildResult build_package(const VcpkgPaths& paths,
diff --git a/toolsrc/include/vcpkg/commands.h b/toolsrc/include/vcpkg/commands.h
index 74fd80c03..c82f504e0 100644
--- a/toolsrc/include/vcpkg/commands.h
+++ b/toolsrc/include/vcpkg/commands.h
@@ -39,6 +39,12 @@ namespace vcpkg::Commands
void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths);
}
+ namespace Upgrade
+ {
+ extern const CommandStructure COMMAND_STRUCTURE;
+ void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet);
+ }
+
namespace Edit
{
extern const CommandStructure COMMAND_STRUCTURE;
@@ -98,6 +104,7 @@ namespace vcpkg::Commands
namespace Version
{
+ const char* base_version();
const std::string& version();
void warn_if_vcpkg_version_mismatch(const VcpkgPaths& paths);
void perform_and_exit(const VcpkgCmdArguments& args);
diff --git a/toolsrc/include/vcpkg/dependencies.h b/toolsrc/include/vcpkg/dependencies.h
index 5411ee166..8902a7b08 100644
--- a/toolsrc/include/vcpkg/dependencies.h
+++ b/toolsrc/include/vcpkg/dependencies.h
@@ -1,6 +1,5 @@
#pragma once
-#include <vcpkg/base/graphs.h>
#include <vcpkg/base/optional.h>
#include <vcpkg/base/util.h>
#include <vcpkg/build.h>
@@ -30,7 +29,6 @@ namespace vcpkg::Dependencies
Optional<StatusParagraph> status_paragraph;
Optional<BinaryControlFile> binary_control_file;
- Optional<SourceParagraph> source_paragraph;
Optional<const SourceControlFile*> source_control_file;
};
}
@@ -92,11 +90,11 @@ namespace vcpkg::Dependencies
struct AnyAction
{
- AnyAction(InstallPlanAction&& iplan) : install_plan(std::move(iplan)) {}
- AnyAction(RemovePlanAction&& rplan) : remove_plan(std::move(rplan)) {}
+ AnyAction(InstallPlanAction&& iplan) : install_action(std::move(iplan)) {}
+ AnyAction(RemovePlanAction&& rplan) : remove_action(std::move(rplan)) {}
- Optional<InstallPlanAction> install_plan;
- Optional<RemovePlanAction> remove_plan;
+ Optional<InstallPlanAction> install_action;
+ Optional<RemovePlanAction> remove_action;
const PackageSpec& spec() const;
};
@@ -123,22 +121,44 @@ namespace vcpkg::Dependencies
struct PortFileProvider
{
- virtual const SourceControlFile& get_control_file(const std::string& spec) const = 0;
+ virtual Optional<const SourceControlFile&> get_control_file(const std::string& src_name) const = 0;
};
- struct MapPortFile : Util::ResourceBase, PortFileProvider
+ struct MapPortFileProvider : Util::ResourceBase, PortFileProvider
{
+ explicit MapPortFileProvider(const std::unordered_map<std::string, SourceControlFile>& map);
+ Optional<const SourceControlFile&> get_control_file(const std::string& src_name) const override;
+
+ private:
const std::unordered_map<std::string, SourceControlFile>& ports;
- explicit MapPortFile(const std::unordered_map<std::string, SourceControlFile>& map);
- const SourceControlFile& get_control_file(const std::string& spec) const override;
};
- struct PathsPortFile : Util::ResourceBase, PortFileProvider
+ struct PathsPortFileProvider : Util::ResourceBase, PortFileProvider
{
+ explicit PathsPortFileProvider(const VcpkgPaths& paths);
+ Optional<const SourceControlFile&> get_control_file(const std::string& src_name) const override;
+
+ private:
const VcpkgPaths& ports;
mutable std::unordered_map<std::string, SourceControlFile> cache;
- explicit PathsPortFile(const VcpkgPaths& paths);
- const SourceControlFile& get_control_file(const std::string& spec) const override;
+ };
+
+ struct ClusterGraph;
+ struct GraphPlan;
+
+ struct PackageGraph
+ {
+ PackageGraph(const PortFileProvider& provider, const StatusParagraphs& status_db);
+ ~PackageGraph();
+
+ void install(const FeatureSpec& spec);
+ void upgrade(const PackageSpec& spec);
+
+ std::vector<AnyAction> serialize() const;
+
+ private:
+ std::unique_ptr<GraphPlan> m_graph_plan;
+ std::unique_ptr<ClusterGraph> m_graph;
};
std::vector<InstallPlanAction> create_install_plan(const PortFileProvider& port_file_provider,
@@ -148,11 +168,18 @@ namespace vcpkg::Dependencies
std::vector<RemovePlanAction> create_remove_plan(const std::vector<PackageSpec>& specs,
const StatusParagraphs& status_db);
- std::vector<ExportPlanAction> create_export_plan(const VcpkgPaths& paths,
+ std::vector<ExportPlanAction> create_export_plan(const PortFileProvider& port_file_provider,
+ const VcpkgPaths& paths,
const std::vector<PackageSpec>& specs,
const StatusParagraphs& status_db);
std::vector<AnyAction> create_feature_install_plan(const std::unordered_map<std::string, SourceControlFile>& map,
const std::vector<FeatureSpec>& specs,
const StatusParagraphs& status_db);
+
+ std::vector<AnyAction> create_feature_install_plan(const PortFileProvider& port_file_provider,
+ const std::vector<FeatureSpec>& specs,
+ const StatusParagraphs& status_db);
+
+ void print_plan(const std::vector<AnyAction>& action_plan, const bool is_recursive = true);
}
diff --git a/toolsrc/include/vcpkg/globalstate.h b/toolsrc/include/vcpkg/globalstate.h
index 7cea361cf..360d3f43e 100644
--- a/toolsrc/include/vcpkg/globalstate.h
+++ b/toolsrc/include/vcpkg/globalstate.h
@@ -9,11 +9,13 @@ namespace vcpkg
{
struct GlobalState
{
- static Util::LockGuarded<Chrono::ElapsedTime> timer;
+ static Util::LockGuarded<Chrono::ElapsedTimer> timer;
+ static Util::LockGuarded<std::string> g_surveydate;
+
static std::atomic<bool> debugging;
static std::atomic<bool> feature_packages;
static std::atomic<int> g_init_console_cp;
static std::atomic<int> g_init_console_output_cp;
};
-} \ No newline at end of file
+}
diff --git a/toolsrc/include/vcpkg/install.h b/toolsrc/include/vcpkg/install.h
index 28896adee..2e92764dc 100644
--- a/toolsrc/include/vcpkg/install.h
+++ b/toolsrc/include/vcpkg/install.h
@@ -1,5 +1,6 @@
#pragma once
+#include <vcpkg/base/chrono.h>
#include <vcpkg/build.h>
#include <vcpkg/dependencies.h>
#include <vcpkg/vcpkgcmdarguments.h>
@@ -25,7 +26,7 @@ namespace vcpkg::Install
PackageSpec spec;
Build::ExtendedBuildResult build_result;
- std::string timing;
+ vcpkg::Chrono::ElapsedTime timing;
const Dependencies::AnyAction* action;
};
@@ -36,6 +37,7 @@ namespace vcpkg::Install
std::string total_elapsed_time;
void print() const;
+ std::string xunit_results() const;
};
struct InstallDir
diff --git a/toolsrc/include/vcpkg/packagespec.h b/toolsrc/include/vcpkg/packagespec.h
index 0487ae6b8..f1119e2f3 100644
--- a/toolsrc/include/vcpkg/packagespec.h
+++ b/toolsrc/include/vcpkg/packagespec.h
@@ -22,6 +22,10 @@ namespace vcpkg
static std::vector<PackageSpec> to_package_specs(const std::vector<std::string>& ports, const Triplet& triplet);
+ static std::vector<PackageSpec> from_dependencies_of_port(const std::string& port,
+ const std::vector<std::string>& dependencies,
+ const Triplet& triplet);
+
const std::string& name() const;
const Triplet& triplet() const;
@@ -30,6 +34,13 @@ namespace vcpkg
std::string to_string() const;
+ bool operator<(const PackageSpec& other) const
+ {
+ if (name() < other.name()) return true;
+ if (name() > other.name()) return false;
+ return triplet() < other.triplet();
+ }
+
private:
std::string m_name;
Triplet m_triplet;
diff --git a/toolsrc/include/vcpkg/paragraphs.h b/toolsrc/include/vcpkg/paragraphs.h
index c8dbea646..e2c7f2d99 100644
--- a/toolsrc/include/vcpkg/paragraphs.h
+++ b/toolsrc/include/vcpkg/paragraphs.h
@@ -32,7 +32,4 @@ namespace vcpkg::Paragraphs
std::vector<std::unique_ptr<SourceControlFile>> load_all_ports(const Files::Filesystem& fs,
const fs::path& ports_dir);
-
- std::map<std::string, VersionT> load_all_port_names_and_versions(const Files::Filesystem& fs,
- const fs::path& ports_dir);
}
diff --git a/toolsrc/include/vcpkg/postbuildlint.buildtype.h b/toolsrc/include/vcpkg/postbuildlint.buildtype.h
index ff651fd7a..0b469d9a0 100644
--- a/toolsrc/include/vcpkg/postbuildlint.buildtype.h
+++ b/toolsrc/include/vcpkg/postbuildlint.buildtype.h
@@ -8,12 +8,6 @@
namespace vcpkg::PostBuildLint
{
- enum class ConfigurationType
- {
- DEBUG,
- RELEASE,
- };
-
struct BuildType
{
enum class BackingEnum
@@ -24,12 +18,12 @@ namespace vcpkg::PostBuildLint
RELEASE_DYNAMIC
};
- static BuildType value_of(const ConfigurationType& config, const Build::LinkageType& linkage);
+ static BuildType value_of(const Build::ConfigurationType& config, const Build::LinkageType& linkage);
BuildType() = delete;
constexpr BuildType(const BackingEnum backing_enum,
- const ConfigurationType config,
+ const Build::ConfigurationType config,
const Build::LinkageType linkage)
: backing_enum(backing_enum), m_config(config), m_linkage(linkage)
{
@@ -37,14 +31,14 @@ namespace vcpkg::PostBuildLint
constexpr operator BackingEnum() const { return backing_enum; }
- const ConfigurationType& config() const;
+ const Build::ConfigurationType& config() const;
const Build::LinkageType& linkage() const;
const std::regex& crt_regex() const;
const std::string& to_string() const;
private:
BackingEnum backing_enum;
- ConfigurationType m_config;
+ Build::ConfigurationType m_config;
Build::LinkageType m_linkage;
};
@@ -55,12 +49,14 @@ namespace vcpkg::PostBuildLint
static constexpr CStringView ENUM_NAME = "vcpkg::PostBuildLint::BuildType";
- static constexpr BuildType DEBUG_STATIC = {BE::DEBUG_STATIC, ConfigurationType::DEBUG, LinkageType::STATIC};
- static constexpr BuildType DEBUG_DYNAMIC = {BE::DEBUG_DYNAMIC, ConfigurationType::DEBUG, LinkageType::DYNAMIC};
+ static constexpr BuildType DEBUG_STATIC = {
+ BE::DEBUG_STATIC, Build::ConfigurationType::DEBUG, LinkageType::STATIC};
+ static constexpr BuildType DEBUG_DYNAMIC = {
+ BE::DEBUG_DYNAMIC, Build::ConfigurationType::DEBUG, LinkageType::DYNAMIC};
static constexpr BuildType RELEASE_STATIC = {
- BE::RELEASE_STATIC, ConfigurationType::RELEASE, LinkageType::STATIC};
+ BE::RELEASE_STATIC, Build::ConfigurationType::RELEASE, LinkageType::STATIC};
static constexpr BuildType RELEASE_DYNAMIC = {
- BE::RELEASE_DYNAMIC, ConfigurationType::RELEASE, LinkageType::DYNAMIC};
+ BE::RELEASE_DYNAMIC, Build::ConfigurationType::RELEASE, LinkageType::DYNAMIC};
static constexpr std::array<BuildType, 4> VALUES = {
DEBUG_STATIC, DEBUG_DYNAMIC, RELEASE_STATIC, RELEASE_DYNAMIC};
diff --git a/toolsrc/include/vcpkg/update.h b/toolsrc/include/vcpkg/update.h
index 7587b9eb2..b85f7b2b3 100644
--- a/toolsrc/include/vcpkg/update.h
+++ b/toolsrc/include/vcpkg/update.h
@@ -1,5 +1,6 @@
#pragma once
+#include <vcpkg/dependencies.h>
#include <vcpkg/packagespec.h>
#include <vcpkg/statusparagraphs.h>
#include <vcpkg/vcpkgcmdarguments.h>
@@ -16,7 +17,8 @@ namespace vcpkg::Update
VersionDiff version_diff;
};
- std::vector<OutdatedPackage> find_outdated_packages(const std::map<std::string, VersionT>& src_names_to_versions,
+ std::vector<OutdatedPackage> find_outdated_packages(const Dependencies::PortFileProvider& provider,
const StatusParagraphs& status_db);
+
void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths);
-} \ No newline at end of file
+}
diff --git a/toolsrc/include/vcpkg/userconfig.h b/toolsrc/include/vcpkg/userconfig.h
new file mode 100644
index 000000000..63b8e5481
--- /dev/null
+++ b/toolsrc/include/vcpkg/userconfig.h
@@ -0,0 +1,20 @@
+#pragma once
+
+#include <string>
+#include <vcpkg/base/files.h>
+
+namespace vcpkg
+{
+ struct UserConfig
+ {
+ std::string user_id;
+ std::string user_time;
+ std::string user_mac;
+
+ std::string last_completed_survey;
+
+ static UserConfig try_read_data(const Files::Filesystem& fs);
+
+ void try_write_data(Files::Filesystem& fs) const;
+ };
+}
diff --git a/toolsrc/include/vcpkg/vcpkglib.h b/toolsrc/include/vcpkg/vcpkglib.h
index 9a7fdb861..3c8e676bf 100644
--- a/toolsrc/include/vcpkg/vcpkglib.h
+++ b/toolsrc/include/vcpkg/vcpkglib.h
@@ -20,18 +20,5 @@ namespace vcpkg
std::vector<StatusParagraphAndAssociatedFiles> get_installed_files(const VcpkgPaths& paths,
const StatusParagraphs& status_db);
- struct CMakeVariable
- {
- CMakeVariable(const CStringView varname, const char* varvalue);
- CMakeVariable(const CStringView varname, const std::string& varvalue);
- CMakeVariable(const CStringView varname, const fs::path& path);
-
- std::string s;
- };
-
- std::string make_cmake_cmd(const fs::path& cmake_exe,
- const fs::path& cmake_script,
- const std::vector<CMakeVariable>& pass_variables);
-
- std::string shorten_text(const std::string& desc, size_t length);
+ std::string shorten_text(const std::string& desc, const size_t length);
} // namespace vcpkg
diff --git a/toolsrc/include/vcpkg/vcpkgpaths.h b/toolsrc/include/vcpkg/vcpkgpaths.h
index 781dabd1a..33a9b0067 100644
--- a/toolsrc/include/vcpkg/vcpkgpaths.h
+++ b/toolsrc/include/vcpkg/vcpkgpaths.h
@@ -26,6 +26,11 @@ namespace vcpkg
std::vector<ToolsetArchOption> supported_architectures;
};
+ namespace Build
+ {
+ struct PreBuildInfo;
+ }
+
struct VcpkgPaths
{
static Expected<VcpkgPaths> create(const fs::path& vcpkg_root_dir);
@@ -67,10 +72,9 @@ namespace vcpkg
/// <summary>Retrieve a toolset matching a VS version</summary>
/// <remarks>
- /// Valid version strings are "v140", "v141", and "". Empty string gets the latest.
+ /// Valid version strings are "v120", "v140", "v141", and "". Empty string gets the latest.
/// </remarks>
- const Toolset& get_toolset(const Optional<std::string>& toolset_version,
- const Optional<fs::path>& visual_studio_path) const;
+ const Toolset& get_toolset(const Build::PreBuildInfo& prebuildinfo) const;
Files::Filesystem& get_filesystem() const;
@@ -83,5 +87,6 @@ namespace vcpkg
Lazy<fs::path> ifw_binarycreator_exe;
Lazy<fs::path> ifw_repogen_exe;
Lazy<std::vector<Toolset>> toolsets;
+ Lazy<std::vector<Toolset>> toolsets_vs2013;
};
}
diff --git a/toolsrc/src/tests.chrono.cpp b/toolsrc/src/tests.chrono.cpp
new file mode 100644
index 000000000..269cdca58
--- /dev/null
+++ b/toolsrc/src/tests.chrono.cpp
@@ -0,0 +1,41 @@
+#include "tests.pch.h"
+
+using namespace Microsoft::VisualStudio::CppUnitTestFramework;
+
+namespace Chrono = vcpkg::Chrono;
+
+namespace UnitTest1
+{
+ class ChronoTests : public TestClass<ChronoTests>
+ {
+ TEST_METHOD(parse_time)
+ {
+ auto timestring = "1990-02-03T04:05:06.0Z";
+ auto maybe_time = Chrono::CTime::parse(timestring);
+
+ Assert::IsTrue(maybe_time.has_value());
+
+ Assert::AreEqual(timestring, maybe_time.get()->to_string().c_str());
+ }
+
+ TEST_METHOD(parse_time_blank)
+ {
+ auto maybe_time = Chrono::CTime::parse("");
+
+ Assert::IsFalse(maybe_time.has_value());
+ }
+
+ TEST_METHOD(time_difference)
+ {
+ auto maybe_time1 = Chrono::CTime::parse("1990-02-03T04:05:06.0Z");
+ auto maybe_time2 = Chrono::CTime::parse("1990-02-10T04:05:06.0Z");
+
+ Assert::IsTrue(maybe_time1.has_value());
+ Assert::IsTrue(maybe_time2.has_value());
+
+ auto delta = maybe_time2.get()->to_time_point() - maybe_time1.get()->to_time_point();
+
+ Assert::AreEqual(24 * 7, std::chrono::duration_cast<std::chrono::hours>(delta).count());
+ }
+ };
+}
diff --git a/toolsrc/src/tests.plan.cpp b/toolsrc/src/tests.plan.cpp
index 122a4ffef..781588c91 100644
--- a/toolsrc/src/tests.plan.cpp
+++ b/toolsrc/src/tests.plan.cpp
@@ -36,7 +36,7 @@ namespace UnitTest1
std::vector<std::string> vec,
const Triplet& triplet = Triplet::X86_WINDOWS)
{
- const auto& plan = install_action->install_plan.value_or_exit(VCPKG_LINE_INFO);
+ const auto& plan = install_action->install_action.value_or_exit(VCPKG_LINE_INFO);
const auto& feature_list = plan.feature_list;
Assert::AreEqual(plan.spec.triplet().to_string().c_str(), triplet.to_string().c_str());
@@ -61,7 +61,7 @@ namespace UnitTest1
std::string pkg_name,
const Triplet& triplet = Triplet::X86_WINDOWS)
{
- const auto& plan = remove_action->remove_plan.value_or_exit(VCPKG_LINE_INFO);
+ const auto& plan = remove_action->remove_action.value_or_exit(VCPKG_LINE_INFO);
Assert::AreEqual(plan.spec.triplet().to_string().c_str(), triplet.to_string().c_str());
Assert::AreEqual(pkg_name.c_str(), plan.spec.name().c_str());
}
@@ -98,7 +98,7 @@ namespace UnitTest1
auto spec_b = spec_map.emplace("b", "c");
auto spec_c = spec_map.emplace("c");
- Dependencies::MapPortFile map_port(spec_map.map);
+ Dependencies::MapPortFileProvider map_port(spec_map.map);
auto install_plan =
Dependencies::create_install_plan(map_port, {spec_a}, StatusParagraphs(std::move(status_paragraphs)));
@@ -122,7 +122,7 @@ namespace UnitTest1
auto spec_g = spec_map.emplace("g");
auto spec_h = spec_map.emplace("h");
- Dependencies::MapPortFile map_port(spec_map.map);
+ Dependencies::MapPortFileProvider map_port(spec_map.map);
auto install_plan = Dependencies::create_install_plan(
map_port, {spec_a, spec_b, spec_c}, StatusParagraphs(std::move(status_paragraphs)));
@@ -162,7 +162,7 @@ namespace UnitTest1
StatusParagraphs(std::move(status_paragraphs)));
Assert::AreEqual(size_t(1), install_plan.size());
- auto p = install_plan[0].install_plan.get();
+ auto p = install_plan[0].install_action.get();
Assert::IsNotNull(p);
Assert::AreEqual("a", p->spec.name().c_str());
Assert::AreEqual(Dependencies::InstallPlanType::ALREADY_INSTALLED, p->plan_type);
@@ -183,13 +183,13 @@ namespace UnitTest1
StatusParagraphs(std::move(status_paragraphs)));
Assert::AreEqual(size_t(2), install_plan.size());
- auto p = install_plan[0].install_plan.get();
+ auto p = install_plan[0].install_action.get();
Assert::IsNotNull(p);
Assert::AreEqual("b", p->spec.name().c_str());
Assert::AreEqual(Dependencies::InstallPlanType::BUILD_AND_INSTALL, p->plan_type);
Assert::AreEqual(Dependencies::RequestType::AUTO_SELECTED, p->request_type);
- auto p2 = install_plan[1].install_plan.get();
+ auto p2 = install_plan[1].install_action.get();
Assert::IsNotNull(p2);
Assert::AreEqual("a", p2->spec.name().c_str());
Assert::AreEqual(Dependencies::InstallPlanType::BUILD_AND_INSTALL, p2->plan_type);
@@ -215,7 +215,7 @@ namespace UnitTest1
auto spec_j = spec_map.emplace("j", "k");
auto spec_k = spec_map.emplace("k");
- Dependencies::MapPortFile map_port(spec_map.map);
+ Dependencies::MapPortFileProvider map_port(spec_map.map);
auto install_plan =
Dependencies::create_install_plan(map_port, {spec_a}, StatusParagraphs(std::move(status_paragraphs)));
@@ -521,4 +521,138 @@ namespace UnitTest1
Assert::AreEqual("expat", remove_plan[2].spec.name().c_str());
}
};
+
+ class UpgradePlanTests : public TestClass<UpgradePlanTests>
+ {
+ TEST_METHOD(basic_upgrade_scheme)
+ {
+ std::vector<std::unique_ptr<StatusParagraph>> pghs;
+ pghs.push_back(make_status_pgh("a"));
+ StatusParagraphs status_db(std::move(pghs));
+
+ PackageSpecMap spec_map(Triplet::X86_WINDOWS);
+ auto spec_a = spec_map.emplace("a");
+
+ Dependencies::MapPortFileProvider provider(spec_map.map);
+ Dependencies::PackageGraph graph(provider, status_db);
+
+ graph.upgrade(spec_a);
+
+ auto plan = graph.serialize();
+
+ Assert::AreEqual(size_t(2), plan.size());
+ Assert::AreEqual("a", plan[0].spec().name().c_str());
+ Assert::IsTrue(plan[0].remove_action.has_value());
+ Assert::AreEqual("a", plan[1].spec().name().c_str());
+ Assert::IsTrue(plan[1].install_action.has_value());
+ }
+
+ TEST_METHOD(basic_upgrade_scheme_with_recurse)
+ {
+ std::vector<std::unique_ptr<StatusParagraph>> pghs;
+ pghs.push_back(make_status_pgh("a"));
+ pghs.push_back(make_status_pgh("b", "a"));
+ StatusParagraphs status_db(std::move(pghs));
+
+ PackageSpecMap spec_map(Triplet::X86_WINDOWS);
+ auto spec_a = spec_map.emplace("a");
+ spec_map.emplace("b", "a");
+
+ Dependencies::MapPortFileProvider provider(spec_map.map);
+ Dependencies::PackageGraph graph(provider, status_db);
+
+ graph.upgrade(spec_a);
+
+ auto plan = graph.serialize();
+
+ Assert::AreEqual(size_t(4), plan.size());
+ Assert::AreEqual("b", plan[0].spec().name().c_str());
+ Assert::IsTrue(plan[0].remove_action.has_value());
+
+ Assert::AreEqual("a", plan[1].spec().name().c_str());
+ Assert::IsTrue(plan[1].remove_action.has_value());
+
+ Assert::AreEqual("a", plan[2].spec().name().c_str());
+ Assert::IsTrue(plan[2].install_action.has_value());
+
+ Assert::AreEqual("b", plan[3].spec().name().c_str());
+ Assert::IsTrue(plan[3].install_action.has_value());
+ }
+
+ TEST_METHOD(basic_upgrade_scheme_with_bystander)
+ {
+ std::vector<std::unique_ptr<StatusParagraph>> pghs;
+ pghs.push_back(make_status_pgh("a"));
+ pghs.push_back(make_status_pgh("b"));
+ StatusParagraphs status_db(std::move(pghs));
+
+ PackageSpecMap spec_map(Triplet::X86_WINDOWS);
+ auto spec_a = spec_map.emplace("a");
+ spec_map.emplace("b", "a");
+
+ Dependencies::MapPortFileProvider provider(spec_map.map);
+ Dependencies::PackageGraph graph(provider, status_db);
+
+ graph.upgrade(spec_a);
+
+ auto plan = graph.serialize();
+
+ Assert::AreEqual(size_t(2), plan.size());
+ Assert::AreEqual("a", plan[0].spec().name().c_str());
+ Assert::IsTrue(plan[0].remove_action.has_value());
+ Assert::AreEqual("a", plan[1].spec().name().c_str());
+ Assert::IsTrue(plan[1].install_action.has_value());
+ }
+
+ TEST_METHOD(basic_upgrade_scheme_with_new_dep)
+ {
+ std::vector<std::unique_ptr<StatusParagraph>> pghs;
+ pghs.push_back(make_status_pgh("a"));
+ StatusParagraphs status_db(std::move(pghs));
+
+ PackageSpecMap spec_map(Triplet::X86_WINDOWS);
+ auto spec_a = spec_map.emplace("a", "b");
+ spec_map.emplace("b");
+
+ Dependencies::MapPortFileProvider provider(spec_map.map);
+ Dependencies::PackageGraph graph(provider, status_db);
+
+ graph.upgrade(spec_a);
+
+ auto plan = graph.serialize();
+
+ Assert::AreEqual(size_t(3), plan.size());
+ Assert::AreEqual("a", plan[0].spec().name().c_str());
+ Assert::IsTrue(plan[0].remove_action.has_value());
+ Assert::AreEqual("b", plan[1].spec().name().c_str());
+ Assert::IsTrue(plan[1].install_action.has_value());
+ Assert::AreEqual("a", plan[2].spec().name().c_str());
+ Assert::IsTrue(plan[2].install_action.has_value());
+ }
+
+ TEST_METHOD(basic_upgrade_scheme_with_features)
+ {
+ std::vector<std::unique_ptr<StatusParagraph>> pghs;
+ pghs.push_back(make_status_pgh("a"));
+ pghs.push_back(make_status_feature_pgh("a", "a1"));
+ StatusParagraphs status_db(std::move(pghs));
+
+ PackageSpecMap spec_map(Triplet::X86_WINDOWS);
+ auto spec_a = spec_map.emplace("a", "", {{"a1", ""}});
+
+ Dependencies::MapPortFileProvider provider(spec_map.map);
+ Dependencies::PackageGraph graph(provider, status_db);
+
+ graph.upgrade(spec_a);
+
+ auto plan = graph.serialize();
+
+ Assert::AreEqual(size_t(2), plan.size());
+
+ Assert::AreEqual("a", plan[0].spec().name().c_str());
+ Assert::IsTrue(plan[0].remove_action.has_value());
+
+ features_check(&plan[1], "a", {"core", "a1"});
+ }
+ };
}
diff --git a/toolsrc/src/tests.update.cpp b/toolsrc/src/tests.update.cpp
index 06ae797f4..b6e487c17 100644
--- a/toolsrc/src/tests.update.cpp
+++ b/toolsrc/src/tests.update.cpp
@@ -9,6 +9,8 @@ using namespace vcpkg::Update;
namespace UnitTest1
{
+ using Pgh = std::vector<std::unordered_map<std::string, std::string>>;
+
class UpdateTests : public TestClass<UpdateTests>
{
TEST_METHOD(find_outdated_packages_basic)
@@ -19,10 +21,12 @@ namespace UnitTest1
StatusParagraphs status_db(std::move(status_paragraphs));
- std::map<std::string, VersionT> port_versions;
- port_versions["a"] = VersionT("0");
+ std::unordered_map<std::string, SourceControlFile> map;
+ auto scf = unwrap(SourceControlFile::parse_control_file(Pgh{{{"Source", "a"}, {"Version", "0"}}}));
+ map.emplace("a", std::move(*scf));
+ Dependencies::MapPortFileProvider provider(map);
- auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(port_versions, status_db),
+ auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(provider, status_db),
&OutdatedPackage::compare_by_name);
Assert::AreEqual(size_t(1), pkgs.size());
@@ -41,10 +45,12 @@ namespace UnitTest1
StatusParagraphs status_db(std::move(status_paragraphs));
- std::map<std::string, VersionT> port_versions;
- port_versions["a"] = VersionT("0");
+ std::unordered_map<std::string, SourceControlFile> map;
+ auto scf = unwrap(SourceControlFile::parse_control_file(Pgh{{{"Source", "a"}, {"Version", "0"}}}));
+ map.emplace("a", std::move(*scf));
+ Dependencies::MapPortFileProvider provider(map);
- auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(port_versions, status_db),
+ auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(provider, status_db),
&OutdatedPackage::compare_by_name);
Assert::AreEqual(size_t(1), pkgs.size());
@@ -65,10 +71,12 @@ namespace UnitTest1
StatusParagraphs status_db(std::move(status_paragraphs));
- std::map<std::string, VersionT> port_versions;
- port_versions["a"] = VersionT("0");
+ std::unordered_map<std::string, SourceControlFile> map;
+ auto scf = unwrap(SourceControlFile::parse_control_file(Pgh{{{"Source", "a"}, {"Version", "0"}}}));
+ map.emplace("a", std::move(*scf));
+ Dependencies::MapPortFileProvider provider(map);
- auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(port_versions, status_db),
+ auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(provider, status_db),
&OutdatedPackage::compare_by_name);
Assert::AreEqual(size_t(1), pkgs.size());
@@ -84,10 +92,12 @@ namespace UnitTest1
StatusParagraphs status_db(std::move(status_paragraphs));
- std::map<std::string, VersionT> port_versions;
- port_versions["a"] = VersionT("2");
+ std::unordered_map<std::string, SourceControlFile> map;
+ auto scf = unwrap(SourceControlFile::parse_control_file(Pgh{{{"Source", "a"}, {"Version", "2"}}}));
+ map.emplace("a", std::move(*scf));
+ Dependencies::MapPortFileProvider provider(map);
- auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(port_versions, status_db),
+ auto pkgs = SortedVector<OutdatedPackage>(Update::find_outdated_packages(provider, status_db),
&OutdatedPackage::compare_by_name);
Assert::AreEqual(size_t(0), pkgs.size());
diff --git a/toolsrc/src/vcpkg.cpp b/toolsrc/src/vcpkg.cpp
index 5642f937c..094ea1dc5 100644
--- a/toolsrc/src/vcpkg.cpp
+++ b/toolsrc/src/vcpkg.cpp
@@ -20,11 +20,13 @@
#include <vcpkg/input.h>
#include <vcpkg/metrics.h>
#include <vcpkg/paragraphs.h>
+#include <vcpkg/userconfig.h>
#include <vcpkg/vcpkglib.h>
#include <cassert>
#include <fstream>
#include <memory>
+#include <random>
#pragma comment(lib, "ole32")
#pragma comment(lib, "shell32")
@@ -110,6 +112,28 @@ static void inner(const VcpkgCmdArguments& args)
if (args.command != "autocomplete")
{
Commands::Version::warn_if_vcpkg_version_mismatch(paths);
+ std::string surveydate = *GlobalState::g_surveydate.lock();
+ auto maybe_surveydate = Chrono::CTime::parse(surveydate);
+ if (auto p_surveydate = maybe_surveydate.get())
+ {
+ auto delta = std::chrono::system_clock::now() - p_surveydate->to_time_point();
+ // 24 hours/day * 30 days/month
+ if (std::chrono::duration_cast<std::chrono::hours>(delta).count() > 24 * 30)
+ {
+ std::default_random_engine generator(
+ static_cast<unsigned int>(std::chrono::system_clock::now().time_since_epoch().count()));
+ std::uniform_int_distribution<int> distribution(1, 4);
+
+ if (distribution(generator) == 1)
+ {
+ Metrics::g_metrics.lock()->track_property("surveyprompt", "true");
+ System::println(
+ System::Color::success,
+ "Your feedback is important to improve Vcpkg! Please take 3 minutes to complete our survey "
+ "by running: vcpkg contact --survey");
+ }
+ }
+ }
}
if (const auto command_function = find_command(Commands::get_available_commands_type_b()))
@@ -148,80 +172,41 @@ static void inner(const VcpkgCmdArguments& args)
static void load_config()
{
#if defined(_WIN32)
- fs::path localappdata;
- {
- // Config path in AppDataLocal
- wchar_t* localappdatapath = nullptr;
- if (S_OK != SHGetKnownFolderPath(FOLDERID_LocalAppData, 0, nullptr, &localappdatapath)) __fastfail(1);
- localappdata = localappdatapath;
- CoTaskMemFree(localappdatapath);
- }
-
- std::string user_id, user_time, user_mac;
- try
- {
- auto maybe_pghs = Paragraphs::get_paragraphs(Files::get_real_filesystem(), localappdata / "vcpkg" / "config");
- if (const auto p_pghs = maybe_pghs.get())
- {
- const auto& pghs = *p_pghs;
+ auto& fs = Files::get_real_filesystem();
- std::unordered_map<std::string, std::string> keys;
- if (pghs.size() > 0) keys = pghs[0];
-
- for (size_t x = 1; x < pghs.size(); ++x)
- {
- for (auto&& p : pghs[x])
- keys.insert(p);
- }
-
- user_id = keys["User-Id"];
- user_time = keys["User-Since"];
- user_mac = keys["Mac-Hash"];
- }
- }
- catch (...)
- {
- }
+ auto config = UserConfig::try_read_data(fs);
bool write_config = false;
// config file not found, could not be read, or invalid
- if (user_id.empty() || user_time.empty())
+ if (config.user_id.empty() || config.user_time.empty())
{
- ::vcpkg::Metrics::Metrics::init_user_information(user_id, user_time);
+ ::vcpkg::Metrics::Metrics::init_user_information(config.user_id, config.user_time);
write_config = true;
}
- if (user_mac.empty())
+ if (config.user_mac.empty())
{
- user_mac = Metrics::get_MAC_user();
+ config.user_mac = Metrics::get_MAC_user();
write_config = true;
}
{
auto locked_metrics = Metrics::g_metrics.lock();
- locked_metrics->set_user_information(user_id, user_time);
- locked_metrics->track_property("user_mac", user_mac);
+ locked_metrics->set_user_information(config.user_id, config.user_time);
+ locked_metrics->track_property("user_mac", config.user_mac);
}
+ if (config.last_completed_survey.empty())
+ {
+ config.last_completed_survey = config.user_time;
+ }
+
+ GlobalState::g_surveydate.lock()->assign(config.last_completed_survey);
+
if (write_config)
{
- try
- {
- std::error_code ec;
- auto& fs = Files::get_real_filesystem();
- fs.create_directory(localappdata / "vcpkg", ec);
- fs.write_contents(localappdata / "vcpkg" / "config",
- Strings::format("User-Id: %s\n"
- "User-Since: %s\n"
- "Mac-Hash: %s\n",
- user_id,
- user_time,
- user_mac));
- }
- catch (...)
- {
- }
+ config.try_write_data(fs);
}
#endif
}
@@ -255,7 +240,7 @@ int main(const int argc, const char* const* const argv)
{
if (argc == 0) std::abort();
- *GlobalState::timer.lock() = Chrono::ElapsedTime::create_started();
+ *GlobalState::timer.lock() = Chrono::ElapsedTimer::create_started();
#if defined(_WIN32)
GlobalState::g_init_console_cp = GetConsoleCP();
diff --git a/toolsrc/src/vcpkg/base/checks.cpp b/toolsrc/src/vcpkg/base/checks.cpp
index ed28d6e2b..23f2cc630 100644
--- a/toolsrc/src/vcpkg/base/checks.cpp
+++ b/toolsrc/src/vcpkg/base/checks.cpp
@@ -49,8 +49,7 @@ namespace vcpkg::Checks
#else
void register_console_ctrl_handler() {}
#endif
-
- [[noreturn]] void unreachable(const LineInfo& line_info)
+ void unreachable(const LineInfo& line_info)
{
System::println(System::Color::error, "Error: Unreachable code was reached");
System::println(System::Color::error, line_info.to_string()); // Always print line_info here
@@ -61,13 +60,13 @@ namespace vcpkg::Checks
#endif
}
- [[noreturn]] void exit_with_code(const LineInfo& line_info, const int exit_code)
+ void exit_with_code(const LineInfo& line_info, const int exit_code)
{
Debug::println(System::Color::error, line_info.to_string());
cleanup_and_exit(exit_code);
}
- [[noreturn]] void exit_with_message(const LineInfo& line_info, const CStringView error_message)
+ void exit_with_message(const LineInfo& line_info, const CStringView error_message)
{
System::println(System::Color::error, error_message);
exit_fail(line_info);
@@ -77,7 +76,7 @@ namespace vcpkg::Checks
{
if (!expression)
{
- exit_with_message(line_info, "");
+ exit_fail(line_info);
}
}
diff --git a/toolsrc/src/vcpkg/base/chrono.cpp b/toolsrc/src/vcpkg/base/chrono.cpp
index 5d28909fc..00f8ba3f1 100644
--- a/toolsrc/src/vcpkg/base/chrono.cpp
+++ b/toolsrc/src/vcpkg/base/chrono.cpp
@@ -50,12 +50,82 @@ namespace vcpkg::Chrono
return Strings::format("%.4g ns", nanos_as_double);
}
- ElapsedTime ElapsedTime::create_started()
+ ElapsedTimer ElapsedTimer::create_started()
{
- ElapsedTime t;
+ ElapsedTimer t;
t.m_start_tick = std::chrono::high_resolution_clock::now();
return t;
}
- std::string ElapsedTime::to_string() const { return format_time_userfriendly(elapsed<std::chrono::nanoseconds>()); }
+ std::string ElapsedTime::to_string() const { return format_time_userfriendly(as<std::chrono::nanoseconds>()); }
+
+ std::string ElapsedTimer::to_string() const { return elapsed().to_string(); }
+
+ Optional<CTime> CTime::get_current_date_time()
+ {
+ CTime ret;
+
+#if defined(_WIN32)
+ struct _timeb timebuffer;
+
+ _ftime_s(&timebuffer);
+
+ const errno_t err = gmtime_s(&ret.m_tm, &timebuffer.time);
+
+ if (err)
+ {
+ return nullopt;
+ }
+#else
+ time_t now = {0};
+ time(&now);
+ auto null_if_failed = gmtime_r(&now, &ret.m_tm);
+ if (null_if_failed == nullptr)
+ {
+ return nullopt;
+ }
+#endif
+
+ return ret;
+ }
+
+ Optional<CTime> CTime::parse(CStringView str)
+ {
+ CTime ret;
+ auto assigned =
+#if defined(_WIN32)
+ sscanf_s
+#else
+ sscanf
+#endif
+ (str.c_str(),
+ "%d-%d-%dT%d:%d:%d.",
+ &ret.m_tm.tm_year,
+ &ret.m_tm.tm_mon,
+ &ret.m_tm.tm_mday,
+ &ret.m_tm.tm_hour,
+ &ret.m_tm.tm_min,
+ &ret.m_tm.tm_sec);
+ if (assigned != 6) return nullopt;
+ if (ret.m_tm.tm_year < 1900) return nullopt;
+ ret.m_tm.tm_year -= 1900;
+ if (ret.m_tm.tm_mon < 1) return nullopt;
+ ret.m_tm.tm_mon -= 1;
+ mktime(&ret.m_tm);
+ return ret;
+ }
+
+ std::string CTime::to_string() const
+ {
+ std::array<char, 80> date;
+ date.fill(0);
+
+ strftime(&date[0], date.size(), "%Y-%m-%dT%H:%M:%S.0Z", &m_tm);
+ return &date[0];
+ }
+ std::chrono::system_clock::time_point CTime::to_time_point() const
+ {
+ auto t = mktime(&m_tm);
+ return std::chrono::system_clock::from_time_t(t);
+ }
}
diff --git a/toolsrc/src/vcpkg/base/files.cpp b/toolsrc/src/vcpkg/base/files.cpp
index 6e43debb1..8c9e137ed 100644
--- a/toolsrc/src/vcpkg/base/files.cpp
+++ b/toolsrc/src/vcpkg/base/files.cpp
@@ -72,7 +72,8 @@ namespace vcpkg::Files
{
std::vector<fs::path> ret;
- fs::stdfs::recursive_directory_iterator b(dir), e{};
+ std::error_code ec;
+ fs::stdfs::recursive_directory_iterator b(dir, ec), e{};
for (; b != e; ++b)
{
ret.push_back(b->path());
diff --git a/toolsrc/src/vcpkg/base/system.cpp b/toolsrc/src/vcpkg/base/system.cpp
index 47096ed63..625ee6ce0 100644
--- a/toolsrc/src/vcpkg/base/system.cpp
+++ b/toolsrc/src/vcpkg/base/system.cpp
@@ -51,11 +51,21 @@ namespace vcpkg::System
CPUArchitecture get_host_processor()
{
+#if defined(_WIN32)
auto w6432 = get_environment_variable("PROCESSOR_ARCHITEW6432");
if (const auto p = w6432.get()) return to_cpu_architecture(*p).value_or_exit(VCPKG_LINE_INFO);
const auto procarch = get_environment_variable("PROCESSOR_ARCHITECTURE").value_or_exit(VCPKG_LINE_INFO);
return to_cpu_architecture(procarch).value_or_exit(VCPKG_LINE_INFO);
+#else
+#if defined(__x86_64__) || defined(_M_X64)
+ return CPUArchitecture::X64;
+#elif defined(__x86__) || defined(_M_X86)
+ return CPUArchitecture::X86;
+#else
+#error "Unknown host architecture"
+#endif
+#endif
}
std::vector<CPUArchitecture> get_supported_host_architectures()
@@ -72,6 +82,53 @@ namespace vcpkg::System
return supported_architectures;
}
+ CMakeVariable::CMakeVariable(const CStringView varname, const char* varvalue)
+ : s(Strings::format(R"("-D%s=%s")", varname, varvalue))
+ {
+ }
+ CMakeVariable::CMakeVariable(const CStringView varname, const std::string& varvalue)
+ : CMakeVariable(varname, varvalue.c_str())
+ {
+ }
+ CMakeVariable::CMakeVariable(const CStringView varname, const fs::path& path)
+ : CMakeVariable(varname, path.generic_u8string())
+ {
+ }
+
+ std::string make_cmake_cmd(const fs::path& cmake_exe,
+ const fs::path& cmake_script,
+ const std::vector<CMakeVariable>& pass_variables)
+ {
+ const std::string cmd_cmake_pass_variables = Strings::join(" ", pass_variables, [](auto&& v) { return v.s; });
+ return Strings::format(
+ R"("%s" %s -P "%s")", cmake_exe.u8string(), cmd_cmake_pass_variables, cmake_script.generic_u8string());
+ }
+
+ PowershellParameter::PowershellParameter(const CStringView varname, const char* varvalue)
+ : s(Strings::format(R"(-%s '%s')", varname, varvalue))
+ {
+ }
+
+ PowershellParameter::PowershellParameter(const CStringView varname, const std::string& varvalue)
+ : PowershellParameter(varname, varvalue.c_str())
+ {
+ }
+
+ PowershellParameter::PowershellParameter(const CStringView varname, const fs::path& path)
+ : PowershellParameter(varname, path.generic_u8string())
+ {
+ }
+
+ static std::string make_powershell_cmd(const fs::path& script_path,
+ const std::vector<PowershellParameter>& parameters)
+ {
+ const std::string args = Strings::join(" ", parameters, [](auto&& v) { return v.s; });
+
+ // TODO: switch out ExecutionPolicy Bypass with "Remove Mark Of The Web" code and restore RemoteSigned
+ return Strings::format(
+ R"(powershell -NoProfile -ExecutionPolicy Bypass -Command "& {& '%s' %s}")", script_path.u8string(), args);
+ }
+
int cmd_execute_clean(const CStringView cmd_line)
{
#if defined(_WIN32)
@@ -145,6 +202,8 @@ namespace vcpkg::System
env_cstr.append(Strings::to_utf16(NEW_PATH));
env_cstr.push_back(L'\0');
+ env_cstr.append(L"VSLANG=1033");
+ env_cstr.push_back(L'\0');
STARTUPINFOW startup_info;
memset(&startup_info, 0, sizeof(STARTUPINFOW));
@@ -270,14 +329,37 @@ namespace vcpkg::System
#endif
}
+ void powershell_execute(const std::string& title,
+ const fs::path& script_path,
+ const std::vector<PowershellParameter>& parameters)
+ {
+ const std::string cmd = make_powershell_cmd(script_path, parameters);
+ const int rc = System::cmd_execute(cmd);
+
+ if (rc)
+ {
+ System::println(Color::error,
+ "%s\n"
+ "Could not run:\n"
+ " '%s'",
+ title,
+ script_path.generic_string());
+
+ {
+ auto locked_metrics = Metrics::g_metrics.lock();
+ locked_metrics->track_property("error", "powershell script failed");
+ locked_metrics->track_property("title", title);
+ }
+
+ Checks::exit_with_code(VCPKG_LINE_INFO, rc);
+ }
+ }
+
std::string powershell_execute_and_capture_output(const std::string& title,
const fs::path& script_path,
- const CStringView args)
+ const std::vector<PowershellParameter>& parameters)
{
- // TODO: switch out ExecutionPolicy Bypass with "Remove Mark Of The Web" code and restore RemoteSigned
- const std::string cmd = Strings::format(
- R"(powershell -NoProfile -ExecutionPolicy Bypass -Command "& {& '%s' %s}")", script_path.u8string(), args);
-
+ const std::string cmd = make_powershell_cmd(script_path, parameters);
auto rc = System::cmd_execute_and_capture_output(cmd);
if (rc.exit_code)
diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp
index c7136b713..7c9e905e8 100644
--- a/toolsrc/src/vcpkg/binaryparagraph.cpp
+++ b/toolsrc/src/vcpkg/binaryparagraph.cpp
@@ -92,8 +92,9 @@ namespace vcpkg
std::string BinaryParagraph::displayname() const
{
- const auto f = this->feature.empty() ? "core" : this->feature;
- return Strings::format("%s[%s]:%s", this->spec.name(), f, this->spec.triplet());
+ if (this->feature.empty() || this->feature == "core")
+ return Strings::format("%s:%s", this->spec.name(), this->spec.triplet());
+ return Strings::format("%s[%s]:%s", this->spec.name(), this->feature, this->spec.triplet());
}
std::string BinaryParagraph::dir() const { return this->spec.dir(); }
diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp
index e3787a97e..f43d8788e 100644
--- a/toolsrc/src/vcpkg/build.cpp
+++ b/toolsrc/src/vcpkg/build.cpp
@@ -67,7 +67,7 @@ namespace vcpkg::Build::Command
const Build::BuildPackageConfig build_config{
*scf, spec.triplet(), fs::path{port_dir}, build_package_options, features_as_set};
- const auto build_timer = Chrono::ElapsedTime::create_started();
+ const auto build_timer = Chrono::ElapsedTimer::create_started();
const auto result = Build::build_package(paths, build_config, status_db);
System::println("Elapsed time for package %s: %s", spec.to_string(), build_timer.to_string());
@@ -203,6 +203,10 @@ namespace vcpkg::Build
std::string make_build_env_cmd(const PreBuildInfo& pre_build_info, const Toolset& toolset)
{
+ if (pre_build_info.external_toolchain_file)
+ return Strings::format(
+ R"("%s" %s 2>&1)", toolset.vcvarsall.u8string(), Strings::join(" ", toolset.vcvarsall_options));
+
const char* tonull = " >nul";
if (GlobalState::debugging)
{
@@ -256,13 +260,13 @@ namespace vcpkg::Build
const BuildPackageConfig& config,
const StatusParagraphs& status_db)
{
- const PackageSpec spec =
- PackageSpec::from_name_and_triplet(config.src.name, config.triplet).value_or_exit(VCPKG_LINE_INFO);
+ const PackageSpec spec = PackageSpec::from_name_and_triplet(config.scf.core_paragraph->name, config.triplet)
+ .value_or_exit(VCPKG_LINE_INFO);
const Triplet& triplet = config.triplet;
{
std::vector<PackageSpec> missing_specs;
- for (auto&& dep : filter_dependencies(config.src.depends, triplet))
+ for (auto&& dep : filter_dependencies(config.scf.core_paragraph->depends, triplet))
{
if (status_db.find_installed(dep, triplet) == status_db.end())
{
@@ -286,27 +290,23 @@ namespace vcpkg::Build
std::string features;
if (GlobalState::feature_packages)
{
- if (config.feature_list)
+ for (auto&& feature : config.feature_list)
{
- for (auto&& feature : *config.feature_list)
- {
- features.append(feature + ";");
- }
- if (features.size() > 0)
- {
- features.pop_back();
- }
+ features.append(feature + ";");
+ }
+ if (features.size() > 0)
+ {
+ features.pop_back();
}
}
- const Toolset& toolset = paths.get_toolset(pre_build_info.platform_toolset, pre_build_info.visual_studio_path);
-
- const std::string cmd_launch_cmake = make_cmake_cmd(
+ const Toolset& toolset = paths.get_toolset(pre_build_info);
+ const std::string cmd_launch_cmake = System::make_cmake_cmd(
cmake_exe_path,
ports_cmake_script_path,
{
{"CMD", "BUILD"},
- {"PORT", config.src.name},
+ {"PORT", config.scf.core_paragraph->name},
{"CURRENT_PORT_DIR", config.port_dir / "/."},
{"TARGET_TRIPLET", triplet.canonical_name()},
{"VCPKG_PLATFORM_TOOLSET", toolset.version.c_str()},
@@ -320,7 +320,7 @@ namespace vcpkg::Build
const auto cmd_set_environment = make_build_env_cmd(pre_build_info, toolset);
const std::string command = Strings::format(R"(%s && %s)", cmd_set_environment, cmd_launch_cmake);
- const auto timer = Chrono::ElapsedTime::create_started();
+ const auto timer = Chrono::ElapsedTimer::create_started();
const int return_code = System::cmd_execute_clean(command);
const auto buildtimeus = timer.microseconds();
@@ -340,7 +340,7 @@ namespace vcpkg::Build
const BuildInfo build_info = read_build_info(paths.get_filesystem(), paths.build_info_file_path(spec));
const size_t error_count = PostBuildLint::perform_all_checks(spec, paths, pre_build_info, build_info);
- auto bcf = create_binary_control_file(config.src, triplet, build_info);
+ auto bcf = create_binary_control_file(*config.scf.core_paragraph, triplet, build_info);
if (error_count != 0)
{
@@ -348,16 +348,13 @@ namespace vcpkg::Build
}
if (GlobalState::feature_packages)
{
- if (config.feature_list)
+ for (auto&& feature : config.feature_list)
{
- for (auto&& feature : *config.feature_list)
+ for (auto&& f_pgh : config.scf.feature_paragraphs)
{
- for (auto&& f_pgh : config.scf->feature_paragraphs)
- {
- if (f_pgh->name == feature)
- bcf->features.push_back(
- create_binary_feature_control_file(*config.scf->core_paragraph, *f_pgh, triplet));
- }
+ if (f_pgh->name == feature)
+ bcf->features.push_back(
+ create_binary_feature_control_file(*config.scf.core_paragraph, *f_pgh, triplet));
}
}
}
@@ -493,11 +490,11 @@ namespace vcpkg::Build
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 auto cmd_launch_cmake = make_cmake_cmd(cmake_exe_path,
- ports_cmake_script_path,
- {
- {"CMAKE_TRIPLET_FILE", triplet_file_path},
- });
+ const auto cmd_launch_cmake = System::make_cmake_cmd(cmake_exe_path,
+ ports_cmake_script_path,
+ {
+ {"CMAKE_TRIPLET_FILE", triplet_file_path},
+ });
const auto ec_data = System::cmd_execute_and_capture_output(cmd_launch_cmake);
Checks::check_exit(VCPKG_LINE_INFO, ec_data.exit_code == 0, ec_data.output);
@@ -555,6 +552,27 @@ namespace vcpkg::Build
continue;
}
+ if (variable_name == "VCPKG_CHAINLOAD_TOOLCHAIN_FILE")
+ {
+ pre_build_info.external_toolchain_file =
+ variable_value.empty() ? nullopt : Optional<std::string>{variable_value};
+ continue;
+ }
+
+ if (variable_name == "VCPKG_BUILD_TYPE")
+ {
+ if (variable_value.empty())
+ pre_build_info.build_type = nullopt;
+ else if (Strings::case_insensitive_ascii_equals(variable_value, "debug"))
+ pre_build_info.build_type = ConfigurationType::DEBUG;
+ else if (Strings::case_insensitive_ascii_equals(variable_value, "release"))
+ pre_build_info.build_type = ConfigurationType::RELEASE;
+ else
+ Checks::exit_with_message(
+ VCPKG_LINE_INFO, "Unknown setting for VCPKG_BUILD_TYPE: %s", variable_value);
+ continue;
+ }
+
Checks::exit_with_message(VCPKG_LINE_INFO, "Unknown variable name %s", line);
}
diff --git a/toolsrc/src/vcpkg/commands.ci.cpp b/toolsrc/src/vcpkg/commands.ci.cpp
index 8f79b83e1..1a2f9b47f 100644
--- a/toolsrc/src/vcpkg/commands.ci.cpp
+++ b/toolsrc/src/vcpkg/commands.ci.cpp
@@ -27,7 +27,7 @@ namespace vcpkg::Commands::CI
const std::vector<PackageSpec> specs = PackageSpec::to_package_specs(ports, triplet);
StatusParagraphs status_db = database_load_check(paths);
- const auto& paths_port_file = Dependencies::PathsPortFile(paths);
+ const auto& paths_port_file = Dependencies::PathsPortFileProvider(paths);
std::vector<InstallPlanAction> install_plan =
Dependencies::create_install_plan(paths_port_file, specs, status_db);
@@ -63,9 +63,11 @@ namespace vcpkg::Commands::CI
};
static const std::string OPTION_EXCLUDE = "--exclude";
+ static const std::string OPTION_XUNIT = "--x-xunit";
- static const std::array<CommandSetting, 1> CI_SETTINGS = {{
+ static const std::array<CommandSetting, 2> CI_SETTINGS = {{
{OPTION_EXCLUDE, "Comma separated list of ports to skip"},
+ {OPTION_XUNIT, "File to output results in XUnit format (internal)"},
}};
const CommandStructure COMMAND_STRUCTURE = {
@@ -114,6 +116,18 @@ namespace vcpkg::Commands::CI
result.summary.print();
}
+ auto it_xunit = options.settings.find(OPTION_XUNIT);
+ if (it_xunit != options.settings.end())
+ {
+ std::string xunit_doc = "<assemblies><assembly><collection>\n";
+
+ for (auto&& result : results)
+ xunit_doc += result.summary.xunit_results();
+
+ xunit_doc += "</collection></assembly></assemblies>\n";
+ paths.get_filesystem().write_contents(fs::u8path(it_xunit->second), xunit_doc);
+ }
+
Checks::exit_success(VCPKG_LINE_INFO);
}
}
diff --git a/toolsrc/src/vcpkg/commands.contact.cpp b/toolsrc/src/vcpkg/commands.contact.cpp
index 07dcea80e..8063fe317 100644
--- a/toolsrc/src/vcpkg/commands.contact.cpp
+++ b/toolsrc/src/vcpkg/commands.contact.cpp
@@ -1,8 +1,10 @@
#include "pch.h"
+#include <vcpkg/base/chrono.h>
#include <vcpkg/base/system.h>
#include <vcpkg/commands.h>
#include <vcpkg/help.h>
+#include <vcpkg/userconfig.h>
namespace vcpkg::Commands::Contact
{
@@ -28,6 +30,17 @@ namespace vcpkg::Commands::Contact
if (Util::Sets::contains(parsed_args.switches, switches[0].name))
{
+#if defined(_WIN32)
+ auto maybe_now = Chrono::CTime::get_current_date_time();
+ if (auto p_now = maybe_now.get())
+ {
+ auto& fs = Files::get_real_filesystem();
+ auto config = UserConfig::try_read_data(fs);
+ config.last_completed_survey = p_now->to_string();
+ config.try_write_data(fs);
+ }
+#endif
+
System::cmd_execute("start https://aka.ms/NPS_vcpkg");
System::println("Default browser launched to https://aka.ms/NPS_vcpkg, thank you for your feedback!");
}
diff --git a/toolsrc/src/vcpkg/commands.cpp b/toolsrc/src/vcpkg/commands.cpp
index 15b10c7ea..ccf6fa729 100644
--- a/toolsrc/src/vcpkg/commands.cpp
+++ b/toolsrc/src/vcpkg/commands.cpp
@@ -13,9 +13,10 @@ namespace vcpkg::Commands
Span<const PackageNameAndFunction<CommandTypeA>> get_available_commands_type_a()
{
static std::vector<PackageNameAndFunction<CommandTypeA>> t = {
- PackageNameAndFunction<CommandTypeA>{"install", &Install::perform_and_exit},
+ {"install", &Install::perform_and_exit},
{"ci", &CI::perform_and_exit},
{"remove", &Remove::perform_and_exit},
+ {"upgrade", &Upgrade::perform_and_exit},
{"build", &Build::Command::perform_and_exit},
{"env", &Env::perform_and_exit},
{"build-external", &BuildExternal::perform_and_exit},
diff --git a/toolsrc/src/vcpkg/commands.create.cpp b/toolsrc/src/vcpkg/commands.create.cpp
index c7183d257..44f5f7928 100644
--- a/toolsrc/src/vcpkg/commands.create.cpp
+++ b/toolsrc/src/vcpkg/commands.create.cpp
@@ -4,7 +4,6 @@
#include <vcpkg/base/system.h>
#include <vcpkg/commands.h>
#include <vcpkg/help.h>
-#include <vcpkg/vcpkglib.h>
namespace vcpkg::Commands::Create
{
@@ -25,7 +24,7 @@ namespace vcpkg::Commands::Create
const fs::path& cmake_exe = paths.get_cmake_exe();
- std::vector<CMakeVariable> cmake_args{{"CMD", "CREATE"}, {"PORT", port_name}, {"URL", url}};
+ std::vector<System::CMakeVariable> cmake_args{{"CMD", "CREATE"}, {"PORT", port_name}, {"URL", url}};
if (args.command_arguments.size() >= 3)
{
diff --git a/toolsrc/src/vcpkg/commands.env.cpp b/toolsrc/src/vcpkg/commands.env.cpp
index 98b5aced9..6e52383d8 100644
--- a/toolsrc/src/vcpkg/commands.env.cpp
+++ b/toolsrc/src/vcpkg/commands.env.cpp
@@ -20,7 +20,7 @@ namespace vcpkg::Commands::Env
args.parse_arguments(COMMAND_STRUCTURE);
const auto pre_build_info = Build::PreBuildInfo::from_triplet_file(paths, default_triplet);
- const Toolset& toolset = paths.get_toolset(pre_build_info.platform_toolset, pre_build_info.visual_studio_path);
+ const Toolset& toolset = paths.get_toolset(pre_build_info);
System::cmd_execute_clean(Build::make_build_env_cmd(pre_build_info, toolset) + " && cmd");
Checks::exit_success(VCPKG_LINE_INFO);
diff --git a/toolsrc/src/vcpkg/commands.integrate.cpp b/toolsrc/src/vcpkg/commands.integrate.cpp
index 31b9ec722..460e99b88 100644
--- a/toolsrc/src/vcpkg/commands.integrate.cpp
+++ b/toolsrc/src/vcpkg/commands.integrate.cpp
@@ -139,7 +139,7 @@ namespace vcpkg::Commands::Integrate
static fs::path get_appdata_targets_path()
{
static const fs::path LOCAL_APP_DATA =
- fs::path(System::get_environment_variable("LOCALAPPDATA").value_or_exit(VCPKG_LINE_INFO));
+ fs::u8path(System::get_environment_variable("LOCALAPPDATA").value_or_exit(VCPKG_LINE_INFO));
return LOCAL_APP_DATA / "vcpkg" / "vcpkg.user.targets";
}
#endif
@@ -257,7 +257,7 @@ CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=%s")",
std::error_code ec;
const bool was_deleted = fs.remove(path, ec);
- Checks::check_exit(VCPKG_LINE_INFO, !ec, "Error: Unable to remove user-wide integration: %d", ec.message());
+ Checks::check_exit(VCPKG_LINE_INFO, !ec, "Error: Unable to remove user-wide integration: %s", ec.message());
if (was_deleted)
{
@@ -324,18 +324,20 @@ With a project open, go to Tools->NuGet Package Manager->Package Manager Console
" vcpkg integrate install Make installed packages available user-wide. Requires admin privileges on "
"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 project Generate a referencing nuget package for individual VS project use\n"
+ " vcpkg integrate powershell Enable PowerShell Tab-Completion\n";
namespace Subcommand
{
static const std::string INSTALL = "install";
static const std::string REMOVE = "remove";
static const std::string PROJECT = "project";
+ static const std::string POWERSHELL = "powershell";
}
static std::vector<std::string> valid_arguments(const VcpkgPaths&)
{
- return {Subcommand::INSTALL, Subcommand::REMOVE, Subcommand::PROJECT};
+ return {Subcommand::INSTALL, Subcommand::REMOVE, Subcommand::PROJECT, Subcommand::POWERSHELL};
}
const CommandStructure COMMAND_STRUCTURE = {
@@ -365,6 +367,12 @@ With a project open, go to Tools->NuGet Package Manager->Package Manager Console
{
return integrate_project(paths);
}
+ if (args.command_arguments[0] == Subcommand::POWERSHELL)
+ {
+ System::powershell_execute("PowerShell Tab-Completion",
+ paths.scripts / "addPoshVcpkgToPowershellProfile.ps1");
+ Checks::exit_success(VCPKG_LINE_INFO);
+ }
#endif
Checks::exit_with_message(VCPKG_LINE_INFO, "Unknown parameter %s for integrate", args.command_arguments[0]);
diff --git a/toolsrc/src/vcpkg/commands.list.cpp b/toolsrc/src/vcpkg/commands.list.cpp
index 1f2387843..960c57225 100644
--- a/toolsrc/src/vcpkg/commands.list.cpp
+++ b/toolsrc/src/vcpkg/commands.list.cpp
@@ -13,14 +13,14 @@ namespace vcpkg::Commands::List
{
if (full_desc)
{
- System::println("%-30s %-16s %s", pgh.package.displayname(), pgh.package.version, pgh.package.description);
+ System::println("%-50s %-16s %s", pgh.package.displayname(), pgh.package.version, pgh.package.description);
}
else
{
- System::println("%-30s %-16s %s",
- vcpkg::shorten_text(pgh.package.displayname(), 30),
+ System::println("%-50s %-16s %s",
+ vcpkg::shorten_text(pgh.package.displayname(), 50),
vcpkg::shorten_text(pgh.package.version, 16),
- vcpkg::shorten_text(pgh.package.description, 71));
+ vcpkg::shorten_text(pgh.package.description, 51));
}
}
diff --git a/toolsrc/src/vcpkg/commands.portsdiff.cpp b/toolsrc/src/vcpkg/commands.portsdiff.cpp
index 0277c8bdb..dba04ce5b 100644
--- a/toolsrc/src/vcpkg/commands.portsdiff.cpp
+++ b/toolsrc/src/vcpkg/commands.portsdiff.cpp
@@ -98,8 +98,11 @@ namespace vcpkg::Commands::PortsDiff
".vcpkg-root",
git_exe.u8string());
System::cmd_execute_clean(cmd);
- const std::map<std::string, VersionT> names_and_versions = Paragraphs::load_all_port_names_and_versions(
- paths.get_filesystem(), temp_checkout_path / ports_dir_name_as_string);
+ const auto all_ports =
+ Paragraphs::load_all_ports(paths.get_filesystem(), temp_checkout_path / ports_dir_name_as_string);
+ std::map<std::string, VersionT> names_and_versions;
+ for (auto&& port : all_ports)
+ names_and_versions.emplace(port->core_paragraph->name, port->core_paragraph->version);
fs.remove_all(temp_checkout_path, ec);
return names_and_versions;
}
@@ -151,14 +154,14 @@ namespace vcpkg::Commands::PortsDiff
const std::vector<std::string>& added_ports = setp.only_left;
if (!added_ports.empty())
{
- System::println("\nThe following %d ports were added:", added_ports.size());
+ System::println("\nThe following %zd ports were added:", added_ports.size());
do_print_name_and_version(added_ports, current_names_and_versions);
}
const std::vector<std::string>& removed_ports = setp.only_right;
if (!removed_ports.empty())
{
- System::println("\nThe following %d ports were removed:", removed_ports.size());
+ System::println("\nThe following %zd ports were removed:", removed_ports.size());
do_print_name_and_version(removed_ports, previous_names_and_versions);
}
@@ -168,7 +171,7 @@ namespace vcpkg::Commands::PortsDiff
if (!updated_ports.empty())
{
- System::println("\nThe following %d ports were updated:", updated_ports.size());
+ System::println("\nThe following %zd ports were updated:", updated_ports.size());
for (const UpdatedPort& p : updated_ports)
{
System::println(" - %-14s %-16s", p.port, p.version_diff.to_string());
diff --git a/toolsrc/src/vcpkg/commands.upgrade.cpp b/toolsrc/src/vcpkg/commands.upgrade.cpp
new file mode 100644
index 000000000..d2c868870
--- /dev/null
+++ b/toolsrc/src/vcpkg/commands.upgrade.cpp
@@ -0,0 +1,180 @@
+#include "pch.h"
+
+#include <vcpkg/base/util.h>
+#include <vcpkg/commands.h>
+#include <vcpkg/dependencies.h>
+#include <vcpkg/help.h>
+#include <vcpkg/input.h>
+#include <vcpkg/install.h>
+#include <vcpkg/statusparagraphs.h>
+#include <vcpkg/update.h>
+#include <vcpkg/vcpkglib.h>
+
+namespace vcpkg::Commands::Upgrade
+{
+ using Install::KeepGoing;
+ using Install::to_keep_going;
+
+ static const std::string OPTION_NO_DRY_RUN = "--no-dry-run";
+ static const std::string OPTION_KEEP_GOING = "--keep-going";
+
+ static const std::array<CommandSwitch, 2> INSTALL_SWITCHES = {{
+ {OPTION_NO_DRY_RUN, "Actually upgrade"},
+ {OPTION_KEEP_GOING, "Continue installing packages on failure"},
+ }};
+
+ const CommandStructure COMMAND_STRUCTURE = {
+ Help::create_example_string("upgrade --no-dry-run"),
+ 0,
+ SIZE_MAX,
+ {INSTALL_SWITCHES, {}},
+ nullptr,
+ };
+
+ void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet)
+ {
+ const ParsedArguments options = args.parse_arguments(COMMAND_STRUCTURE);
+
+ const bool no_dry_run = Util::Sets::contains(options.switches, OPTION_NO_DRY_RUN);
+ const KeepGoing keep_going = to_keep_going(Util::Sets::contains(options.switches, OPTION_KEEP_GOING));
+
+ StatusParagraphs status_db = database_load_check(paths);
+
+ Dependencies::PathsPortFileProvider provider(paths);
+ Dependencies::PackageGraph graph(provider, status_db);
+
+ // input sanitization
+ const std::vector<PackageSpec> specs = Util::fmap(args.command_arguments, [&](auto&& arg) {
+ return Input::check_and_get_package_spec(arg, default_triplet, COMMAND_STRUCTURE.example_text);
+ });
+
+ for (auto&& spec : specs)
+ {
+ Input::check_triplet(spec.triplet(), paths);
+ }
+
+ if (specs.empty())
+ {
+ // If no packages specified, upgrade all outdated packages.
+ auto outdated_packages = Update::find_outdated_packages(provider, status_db);
+
+ if (outdated_packages.empty())
+ {
+ System::println("All installed packages are up-to-date with the local portfiles.");
+ Checks::exit_success(VCPKG_LINE_INFO);
+ }
+
+ for (auto&& outdated_package : outdated_packages)
+ graph.upgrade(outdated_package.spec);
+ }
+ else
+ {
+ std::vector<PackageSpec> not_installed;
+ std::vector<PackageSpec> no_portfile;
+ std::vector<PackageSpec> to_upgrade;
+ std::vector<PackageSpec> up_to_date;
+
+ for (auto&& spec : specs)
+ {
+ auto it = status_db.find_installed(spec);
+ if (it == status_db.end())
+ {
+ not_installed.push_back(spec);
+ }
+
+ auto maybe_scf = provider.get_control_file(spec.name());
+ if (auto p_scf = maybe_scf.get())
+ {
+ if (it != status_db.end())
+ {
+ if (p_scf->core_paragraph->version != (*it)->package.version)
+ {
+ to_upgrade.push_back(spec);
+ }
+ else
+ {
+ up_to_date.push_back(spec);
+ }
+ }
+ }
+ else
+ {
+ no_portfile.push_back(spec);
+ }
+ }
+
+ Util::sort(not_installed);
+ Util::sort(no_portfile);
+ Util::sort(up_to_date);
+ Util::sort(to_upgrade);
+
+ if (!up_to_date.empty())
+ {
+ System::println(System::Color::success, "The following packages are up-to-date:");
+ System::println(Strings::join(
+ "", up_to_date, [](const PackageSpec& spec) { return " " + spec.to_string() + "\n"; }));
+ }
+
+ if (!not_installed.empty())
+ {
+ System::println(System::Color::error, "The following packages are not installed:");
+ System::println(Strings::join(
+ "", not_installed, [](const PackageSpec& spec) { return " " + spec.to_string() + "\n"; }));
+ }
+
+ if (!no_portfile.empty())
+ {
+ System::println(System::Color::error, "The following packages do not have a valid portfile:");
+ System::println(Strings::join(
+ "", no_portfile, [](const PackageSpec& spec) { return " " + spec.to_string() + "\n"; }));
+ }
+
+ Checks::check_exit(VCPKG_LINE_INFO, not_installed.empty() && no_portfile.empty());
+
+ if (to_upgrade.empty()) Checks::exit_success(VCPKG_LINE_INFO);
+
+ for (auto&& spec : to_upgrade)
+ graph.upgrade(spec);
+ }
+
+ auto plan = graph.serialize();
+
+ Checks::check_exit(VCPKG_LINE_INFO, !plan.empty());
+
+ const Build::BuildPackageOptions install_plan_options = {
+ Build::UseHeadVersion::NO,
+ Build::AllowDownloads::YES,
+ Build::CleanBuildtrees::NO,
+ };
+
+ // Set build settings for all install actions
+ for (auto&& action : plan)
+ {
+ if (auto p_install = action.install_action.get())
+ {
+ p_install->build_options = install_plan_options;
+ }
+ }
+
+ Dependencies::print_plan(plan, true);
+
+ if (!no_dry_run)
+ {
+ System::println(System::Color::warning,
+ "If you are sure you want to rebuild the above packages, run this command with the "
+ "--no-dry-run option.");
+ Checks::exit_fail(VCPKG_LINE_INFO);
+ }
+
+ const Install::InstallSummary summary = Install::perform(plan, keep_going, paths, status_db);
+
+ System::println("\nTotal elapsed time: %s\n", summary.total_elapsed_time);
+
+ if (keep_going == KeepGoing::YES)
+ {
+ summary.print();
+ }
+
+ Checks::exit_success(VCPKG_LINE_INFO);
+ }
+}
diff --git a/toolsrc/src/vcpkg/commands.version.cpp b/toolsrc/src/vcpkg/commands.version.cpp
index 3f44cf1a2..c21e8cafd 100644
--- a/toolsrc/src/vcpkg/commands.version.cpp
+++ b/toolsrc/src/vcpkg/commands.version.cpp
@@ -12,6 +12,13 @@
namespace vcpkg::Commands::Version
{
+ const char* base_version()
+ {
+ return
+#include "../VERSION.txt"
+ ;
+ }
+
const std::string& version()
{
static const std::string S_VERSION =
diff --git a/toolsrc/src/vcpkg/dependencies.cpp b/toolsrc/src/vcpkg/dependencies.cpp
index 6f599afd4..76aeb0eaa 100644
--- a/toolsrc/src/vcpkg/dependencies.cpp
+++ b/toolsrc/src/vcpkg/dependencies.cpp
@@ -65,26 +65,19 @@ namespace vcpkg::Dependencies
struct ClusterGraph : Util::MoveOnlyBase
{
- explicit ClusterGraph(std::unordered_map<std::string, const SourceControlFile*>&& ports)
- : m_ports(std::move(ports))
- {
- }
+ explicit ClusterGraph(const PortFileProvider& provider) : m_provider(provider) {}
Cluster& get(const PackageSpec& spec)
{
auto it = m_graph.find(spec);
if (it == m_graph.end())
{
- // Load on-demand from m_ports
- auto it_ports = m_ports.find(spec.name());
- if (it_ports != m_ports.end())
- {
- auto& clust = m_graph[spec];
- clust.spec = spec;
- cluster_from_scf(*it_ports->second, clust);
- return clust;
- }
- return m_graph[spec];
+ // Load on-demand from m_provider
+ auto maybe_scf = m_provider.get_control_file(spec.name());
+ auto& clust = m_graph[spec];
+ clust.spec = spec;
+ if (auto p_scf = maybe_scf.get()) cluster_from_scf(*p_scf, clust);
+ return clust;
}
return it->second;
}
@@ -107,26 +100,27 @@ namespace vcpkg::Dependencies
}
std::unordered_map<PackageSpec, Cluster> m_graph;
- std::unordered_map<std::string, const SourceControlFile*> m_ports;
+ const PortFileProvider& m_provider;
};
std::vector<PackageSpec> AnyParagraph::dependencies(const Triplet& triplet) const
{
if (const auto p = this->status_paragraph.get())
{
- return PackageSpec::to_package_specs(p->package.depends, triplet);
+ return PackageSpec::from_dependencies_of_port(p->package.spec.name(), p->package.depends, triplet);
}
if (const auto p = this->binary_control_file.get())
{
auto deps = Util::fmap_flatten(p->features, [](const BinaryParagraph& pgh) { return pgh.depends; });
deps.insert(deps.end(), p->core_paragraph.depends.cbegin(), p->core_paragraph.depends.cend());
- return PackageSpec::to_package_specs(deps, triplet);
+ return PackageSpec::from_dependencies_of_port(p->core_paragraph.spec.name(), deps, triplet);
}
- if (const auto p = this->source_paragraph.get())
+ if (const auto p = this->source_control_file.value_or(nullptr))
{
- return PackageSpec::to_package_specs(filter_dependencies(p->depends, triplet), triplet);
+ return PackageSpec::from_dependencies_of_port(
+ p->core_paragraph->name, filter_dependencies(p->core_paragraph->depends, triplet), triplet);
}
Checks::exit_with_message(VCPKG_LINE_INFO,
@@ -192,11 +186,13 @@ namespace vcpkg::Dependencies
return;
}
- if (auto p = any_paragraph.source_paragraph.get())
+ if (auto p = any_paragraph.source_control_file.get())
{
this->plan_type = InstallPlanType::BUILD_AND_INSTALL;
return;
}
+
+ Checks::unreachable(VCPKG_LINE_INFO);
}
std::string InstallPlanAction::displayname() const
@@ -226,12 +222,12 @@ namespace vcpkg::Dependencies
const PackageSpec& AnyAction::spec() const
{
- if (const auto p = install_plan.get())
+ if (const auto p = install_action.get())
{
return p->spec;
}
- if (const auto p = remove_plan.get())
+ if (const auto p = remove_action.get())
{
return p->spec;
}
@@ -257,7 +253,7 @@ namespace vcpkg::Dependencies
return;
}
- if (auto p = any_paragraph.source_paragraph.get())
+ if (auto p = any_paragraph.source_control_file.get())
{
this->plan_type = ExportPlanType::PORT_AVAILABLE_BUT_NOT_BUILT;
return;
@@ -269,21 +265,20 @@ namespace vcpkg::Dependencies
return left->spec.name() < right->spec.name();
}
- MapPortFile::MapPortFile(const std::unordered_map<std::string, SourceControlFile>& map) : ports(map) {}
+ MapPortFileProvider::MapPortFileProvider(const std::unordered_map<std::string, SourceControlFile>& map) : ports(map)
+ {
+ }
- const SourceControlFile& MapPortFile::get_control_file(const std::string& spec) const
+ Optional<const SourceControlFile&> MapPortFileProvider::get_control_file(const std::string& spec) const
{
auto scf = ports.find(spec);
- if (scf == ports.end())
- {
- Checks::exit_fail(VCPKG_LINE_INFO);
- }
+ if (scf == ports.end()) return nullopt;
return scf->second;
}
- PathsPortFile::PathsPortFile(const VcpkgPaths& paths) : ports(paths) {}
+ PathsPortFileProvider::PathsPortFileProvider(const VcpkgPaths& paths) : ports(paths) {}
- const SourceControlFile& PathsPortFile::get_control_file(const std::string& spec) const
+ Optional<const SourceControlFile&> PathsPortFileProvider::get_control_file(const std::string& spec) const
{
auto cache_it = cache.find(spec);
if (cache_it != cache.end())
@@ -298,56 +293,34 @@ namespace vcpkg::Dependencies
auto it = cache.emplace(spec, std::move(*scf->get()));
return it.first->second;
}
- print_error_message(source_control_file.error());
- Checks::exit_fail(VCPKG_LINE_INFO);
+ return nullopt;
}
std::vector<InstallPlanAction> create_install_plan(const PortFileProvider& port_file_provider,
const std::vector<PackageSpec>& specs,
const StatusParagraphs& status_db)
{
- struct InstallAdjacencyProvider final : Graphs::AdjacencyProvider<PackageSpec, InstallPlanAction>
- {
- const PortFileProvider& port_file_provider;
- const StatusParagraphs& status_db;
- const std::unordered_set<PackageSpec>& specs_as_set;
+ auto fspecs = Util::fmap(specs, [](const PackageSpec& spec) { return FeatureSpec(spec, ""); });
+ auto plan = create_feature_install_plan(port_file_provider, fspecs, status_db);
- InstallAdjacencyProvider(const PortFileProvider& port_file_provider,
- const StatusParagraphs& s,
- const std::unordered_set<PackageSpec>& specs_as_set)
- : port_file_provider(port_file_provider), status_db(s), specs_as_set(specs_as_set)
- {
- }
+ std::vector<InstallPlanAction> ret;
+ ret.reserve(plan.size());
- std::vector<PackageSpec> adjacency_list(const InstallPlanAction& plan) const override
+ for (auto&& action : plan)
+ {
+ if (auto p_install = action.install_action.get())
{
- if (plan.any_paragraph.status_paragraph.get()) return std::vector<PackageSpec>{};
- return plan.any_paragraph.dependencies(plan.spec.triplet());
+ ret.push_back(std::move(*p_install));
}
-
- InstallPlanAction load_vertex_data(const PackageSpec& spec) const override
+ else
{
- const RequestType request_type = specs_as_set.find(spec) != specs_as_set.end()
- ? RequestType::USER_REQUESTED
- : RequestType::AUTO_SELECTED;
- auto it = status_db.find_installed(spec);
- if (it != status_db.end()) return InstallPlanAction{spec, {*it->get(), nullopt, nullopt}, request_type};
- return InstallPlanAction{
- spec,
- {nullopt, nullopt, *port_file_provider.get_control_file(spec.name()).core_paragraph},
- request_type};
+ Checks::exit_with_message(VCPKG_LINE_INFO,
+ "The installation plan requires feature packages support. Please re-run the "
+ "command with --featurepackages.");
}
- };
-
- const std::unordered_set<PackageSpec> specs_as_set(specs.cbegin(), specs.cend());
- std::vector<InstallPlanAction> toposort =
- Graphs::topological_sort(specs, InstallAdjacencyProvider{port_file_provider, status_db, specs_as_set});
- Util::erase_remove_if(toposort, [](const InstallPlanAction& plan) {
- return plan.request_type == RequestType::AUTO_SELECTED &&
- plan.plan_type == InstallPlanType::ALREADY_INSTALLED;
- });
+ }
- return toposort;
+ return ret;
}
std::vector<RemovePlanAction> create_remove_plan(const std::vector<PackageSpec>& specs,
@@ -400,6 +373,8 @@ namespace vcpkg::Dependencies
}
return RemovePlanAction{spec, RemovePlanType::REMOVE, request_type};
}
+
+ std::string to_string(const PackageSpec& spec) const override { return spec.to_string(); }
};
const std::vector<StatusParagraph*>& installed_ports = get_installed_ports(status_db);
@@ -407,7 +382,8 @@ namespace vcpkg::Dependencies
return Graphs::topological_sort(specs, RemoveAdjacencyProvider{status_db, installed_ports, specs_as_set});
}
- std::vector<ExportPlanAction> create_export_plan(const VcpkgPaths& paths,
+ std::vector<ExportPlanAction> create_export_plan(const PortFileProvider& port_file_provider,
+ const VcpkgPaths& paths,
const std::vector<PackageSpec>& specs,
const StatusParagraphs& status_db)
{
@@ -415,12 +391,14 @@ namespace vcpkg::Dependencies
{
const VcpkgPaths& paths;
const StatusParagraphs& status_db;
+ const PortFileProvider& provider;
const std::unordered_set<PackageSpec>& specs_as_set;
ExportAdjacencyProvider(const VcpkgPaths& p,
const StatusParagraphs& s,
+ const PortFileProvider& prov,
const std::unordered_set<PackageSpec>& specs_as_set)
- : paths(p), status_db(s), specs_as_set(specs_as_set)
+ : paths(p), status_db(s), provider(prov), specs_as_set(specs_as_set)
{
}
@@ -439,19 +417,18 @@ namespace vcpkg::Dependencies
if (auto bcf = maybe_bpgh.get())
return ExportPlanAction{spec, AnyParagraph{nullopt, std::move(*bcf), nullopt}, request_type};
- auto maybe_scf = Paragraphs::try_load_port(paths.get_filesystem(), paths.port_dir(spec));
- if (auto scf = maybe_scf.get())
- return ExportPlanAction{spec, {nullopt, nullopt, *scf->get()->core_paragraph}, request_type};
- else
- print_error_message(maybe_scf.error());
+ auto maybe_scf = provider.get_control_file(spec.name());
+ if (auto scf = maybe_scf.get()) return ExportPlanAction{spec, {nullopt, nullopt, scf}, request_type};
Checks::exit_with_message(VCPKG_LINE_INFO, "Could not find package %s", spec);
}
+
+ std::string to_string(const PackageSpec& spec) const override { return spec.to_string(); }
};
const std::unordered_set<PackageSpec> specs_as_set(specs.cbegin(), specs.cend());
- std::vector<ExportPlanAction> toposort =
- Graphs::topological_sort(specs, ExportAdjacencyProvider{paths, status_db, specs_as_set});
+ std::vector<ExportPlanAction> toposort = Graphs::topological_sort(
+ specs, ExportAdjacencyProvider{paths, status_db, port_file_provider, specs_as_set});
return toposort;
}
@@ -461,11 +438,12 @@ namespace vcpkg::Dependencies
SUCCESS,
};
- MarkPlusResult mark_plus(const std::string& feature,
- Cluster& cluster,
- ClusterGraph& pkg_to_cluster,
- GraphPlan& graph_plan);
- void mark_minus(Cluster& cluster, ClusterGraph& pkg_to_cluster, GraphPlan& graph_plan);
+ static MarkPlusResult mark_plus(const std::string& feature,
+ Cluster& cluster,
+ ClusterGraph& pkg_to_cluster,
+ GraphPlan& graph_plan);
+
+ static void mark_minus(Cluster& cluster, ClusterGraph& pkg_to_cluster, GraphPlan& graph_plan);
MarkPlusResult mark_plus(const std::string& feature, Cluster& cluster, ClusterGraph& graph, GraphPlan& graph_plan)
{
@@ -557,111 +535,78 @@ namespace vcpkg::Dependencies
}
}
- static ClusterGraph create_feature_install_graph(const std::unordered_map<std::string, SourceControlFile>& map,
- const StatusParagraphs& status_db)
+ std::vector<AnyAction> create_feature_install_plan(const PortFileProvider& provider,
+ const std::vector<FeatureSpec>& specs,
+ const StatusParagraphs& status_db)
{
- std::unordered_map<std::string, const SourceControlFile*> ptr_map;
- for (auto&& p : map)
- ptr_map.emplace(p.first, &p.second);
- ClusterGraph graph(std::move(ptr_map));
-
- auto installed_ports = get_installed_ports(status_db);
-
- for (auto&& status_paragraph : installed_ports)
- {
- Cluster& cluster = graph.get(status_paragraph->package.spec);
-
- cluster.transient_uninstalled = false;
-
- cluster.status_paragraphs.emplace_back(status_paragraph);
-
- auto& status_paragraph_feature = status_paragraph->package.feature;
- // In this case, empty string indicates the "core" paragraph for a package.
- if (status_paragraph_feature.empty())
- {
- cluster.original_features.insert("core");
- }
- else
- {
- cluster.original_features.insert(status_paragraph_feature);
- }
- }
-
- for (auto&& status_paragraph : installed_ports)
- {
- auto& spec = status_paragraph->package.spec;
- auto& status_paragraph_feature = status_paragraph->package.feature;
- auto reverse_edges = FeatureSpec::from_strings_and_triplet(status_paragraph->package.depends,
- status_paragraph->package.spec.triplet());
-
- for (auto&& dependency : reverse_edges)
- {
- auto& dep_cluster = graph.get(dependency.spec());
-
- auto depends_name = dependency.feature();
- if (depends_name.empty()) depends_name = "core";
+ PackageGraph pgraph(provider, status_db);
+ for (auto&& spec : specs)
+ pgraph.install(spec);
- auto& target_node = dep_cluster.edges[depends_name];
- target_node.remove_edges.emplace_back(FeatureSpec{spec, status_paragraph_feature});
- }
- }
- return graph;
+ return pgraph.serialize();
}
std::vector<AnyAction> create_feature_install_plan(const std::unordered_map<std::string, SourceControlFile>& map,
const std::vector<FeatureSpec>& specs,
const StatusParagraphs& status_db)
{
- ClusterGraph graph = create_feature_install_graph(map, status_db);
+ MapPortFileProvider provider(map);
+ return create_feature_install_plan(provider, specs, status_db);
+ }
- GraphPlan graph_plan;
- for (auto&& spec : specs)
+ void PackageGraph::install(const FeatureSpec& spec)
+ {
+ Cluster& spec_cluster = m_graph->get(spec.spec());
+ spec_cluster.request_type = RequestType::USER_REQUESTED;
+ if (spec.feature() == "*")
{
- Cluster& spec_cluster = graph.get(spec.spec());
- spec_cluster.request_type = RequestType::USER_REQUESTED;
- if (spec.feature() == "*")
+ if (auto p_scf = spec_cluster.source_control_file.value_or(nullptr))
{
- if (auto p_scf = spec_cluster.source_control_file.value_or(nullptr))
+ for (auto&& feature : p_scf->feature_paragraphs)
{
- for (auto&& feature : p_scf->feature_paragraphs)
- {
- auto res = mark_plus(feature->name, spec_cluster, graph, graph_plan);
-
- Checks::check_exit(VCPKG_LINE_INFO,
- res == MarkPlusResult::SUCCESS,
- "Error: Unable to locate feature %s",
- spec);
- }
-
- auto res = mark_plus("core", spec_cluster, graph, graph_plan);
+ auto res = mark_plus(feature->name, spec_cluster, *m_graph, *m_graph_plan);
Checks::check_exit(
VCPKG_LINE_INFO, res == MarkPlusResult::SUCCESS, "Error: Unable to locate feature %s", spec);
}
- else
- {
- Checks::exit_with_message(
- VCPKG_LINE_INFO, "Error: Unable to handle '*' because can't find CONTROL for %s", spec.spec());
- }
- }
- else
- {
- auto res = mark_plus(spec.feature(), spec_cluster, graph, graph_plan);
+
+ auto res = mark_plus("core", spec_cluster, *m_graph, *m_graph_plan);
Checks::check_exit(
VCPKG_LINE_INFO, res == MarkPlusResult::SUCCESS, "Error: Unable to locate feature %s", spec);
}
+ else
+ {
+ Checks::exit_with_message(
+ VCPKG_LINE_INFO, "Error: Unable to handle '*' because can't find CONTROL for %s", spec.spec());
+ }
+ }
+ else
+ {
+ auto res = mark_plus(spec.feature(), spec_cluster, *m_graph, *m_graph_plan);
- graph_plan.install_graph.add_vertex(ClusterPtr{&spec_cluster});
+ Checks::check_exit(
+ VCPKG_LINE_INFO, res == MarkPlusResult::SUCCESS, "Error: Unable to locate feature %s", spec);
}
- Graphs::GraphAdjacencyProvider<ClusterPtr> adjacency_remove_graph(graph_plan.remove_graph.adjacency_list());
- auto remove_vertex_list = graph_plan.remove_graph.vertex_list();
- auto remove_toposort = Graphs::topological_sort(remove_vertex_list, adjacency_remove_graph);
+ m_graph_plan->install_graph.add_vertex(ClusterPtr{&spec_cluster});
+ }
+
+ void PackageGraph::upgrade(const PackageSpec& spec)
+ {
+ Cluster& spec_cluster = m_graph->get(spec);
+ spec_cluster.request_type = RequestType::USER_REQUESTED;
+
+ mark_minus(spec_cluster, *m_graph, *m_graph_plan);
+ }
+
+ std::vector<AnyAction> PackageGraph::serialize() const
+ {
+ auto remove_vertex_list = m_graph_plan->remove_graph.vertex_list();
+ auto remove_toposort = Graphs::topological_sort(remove_vertex_list, m_graph_plan->remove_graph);
- Graphs::GraphAdjacencyProvider<ClusterPtr> adjacency_install_graph(graph_plan.install_graph.adjacency_list());
- auto insert_vertex_list = graph_plan.install_graph.vertex_list();
- auto insert_toposort = Graphs::topological_sort(insert_vertex_list, adjacency_install_graph);
+ auto insert_vertex_list = m_graph_plan->install_graph.vertex_list();
+ auto insert_toposort = Graphs::topological_sort(insert_vertex_list, m_graph_plan->install_graph);
std::vector<AnyAction> plan;
@@ -705,4 +650,162 @@ namespace vcpkg::Dependencies
return plan;
}
+
+ static std::unique_ptr<ClusterGraph> create_feature_install_graph(const PortFileProvider& map,
+ const StatusParagraphs& status_db)
+ {
+ std::unique_ptr<ClusterGraph> graph = std::make_unique<ClusterGraph>(map);
+
+ auto installed_ports = get_installed_ports(status_db);
+
+ for (auto&& status_paragraph : installed_ports)
+ {
+ Cluster& cluster = graph->get(status_paragraph->package.spec);
+
+ cluster.transient_uninstalled = false;
+
+ cluster.status_paragraphs.emplace_back(status_paragraph);
+
+ auto& status_paragraph_feature = status_paragraph->package.feature;
+ // In this case, empty string indicates the "core" paragraph for a package.
+ if (status_paragraph_feature.empty())
+ {
+ cluster.original_features.insert("core");
+ }
+ else
+ {
+ cluster.original_features.insert(status_paragraph_feature);
+ }
+ }
+
+ // Populate the graph with "remove edges", which are the reverse of the Build-Depends edges.
+ for (auto&& status_paragraph : installed_ports)
+ {
+ auto& spec = status_paragraph->package.spec;
+ auto& status_paragraph_feature = status_paragraph->package.feature;
+ auto reverse_edges = FeatureSpec::from_strings_and_triplet(status_paragraph->package.depends,
+ status_paragraph->package.spec.triplet());
+
+ for (auto&& dependency : reverse_edges)
+ {
+ auto& dep_cluster = graph->get(dependency.spec());
+
+ auto depends_name = dependency.feature();
+ if (depends_name.empty()) depends_name = "core";
+
+ auto& target_node = dep_cluster.edges[depends_name];
+ target_node.remove_edges.emplace_back(FeatureSpec{spec, status_paragraph_feature});
+ }
+ }
+ return graph;
+ }
+
+ PackageGraph::PackageGraph(const PortFileProvider& provider, const StatusParagraphs& status_db)
+ : m_graph(create_feature_install_graph(provider, status_db)), m_graph_plan(std::make_unique<GraphPlan>())
+ {
+ }
+
+ PackageGraph::~PackageGraph() {}
+
+ void print_plan(const std::vector<AnyAction>& action_plan, const bool is_recursive)
+ {
+ std::vector<const RemovePlanAction*> remove_plans;
+ std::vector<const InstallPlanAction*> rebuilt_plans;
+ std::vector<const InstallPlanAction*> only_install_plans;
+ std::vector<const InstallPlanAction*> new_plans;
+ std::vector<const InstallPlanAction*> already_installed_plans;
+ std::vector<const InstallPlanAction*> excluded;
+
+ const bool has_non_user_requested_packages = Util::find_if(action_plan, [](const AnyAction& package) -> bool {
+ if (auto iplan = package.install_action.get())
+ return iplan->request_type != RequestType::USER_REQUESTED;
+ else
+ return false;
+ }) != action_plan.cend();
+
+ for (auto&& action : action_plan)
+ {
+ if (auto install_action = action.install_action.get())
+ {
+ // remove plans are guaranteed to come before install plans, so we know the plan will be contained if at
+ // all.
+ auto it = Util::find_if(
+ remove_plans, [&](const RemovePlanAction* plan) { return plan->spec == install_action->spec; });
+ if (it != remove_plans.end())
+ {
+ rebuilt_plans.emplace_back(install_action);
+ }
+ else
+ {
+ switch (install_action->plan_type)
+ {
+ case InstallPlanType::INSTALL: only_install_plans.emplace_back(install_action); break;
+ case InstallPlanType::ALREADY_INSTALLED:
+ if (install_action->request_type == RequestType::USER_REQUESTED)
+ already_installed_plans.emplace_back(install_action);
+ break;
+ case InstallPlanType::BUILD_AND_INSTALL: new_plans.emplace_back(install_action); break;
+ case InstallPlanType::EXCLUDED: excluded.emplace_back(install_action); break;
+ default: Checks::unreachable(VCPKG_LINE_INFO);
+ }
+ }
+ }
+ else if (auto remove_action = action.remove_action.get())
+ {
+ remove_plans.emplace_back(remove_action);
+ }
+ }
+
+ std::sort(remove_plans.begin(), remove_plans.end(), &RemovePlanAction::compare_by_name);
+ std::sort(rebuilt_plans.begin(), rebuilt_plans.end(), &InstallPlanAction::compare_by_name);
+ std::sort(only_install_plans.begin(), only_install_plans.end(), &InstallPlanAction::compare_by_name);
+ std::sort(new_plans.begin(), new_plans.end(), &InstallPlanAction::compare_by_name);
+ std::sort(already_installed_plans.begin(), already_installed_plans.end(), &InstallPlanAction::compare_by_name);
+ std::sort(excluded.begin(), excluded.end(), &InstallPlanAction::compare_by_name);
+
+ static auto actions_to_output_string = [](const std::vector<const InstallPlanAction*>& v) {
+ return Strings::join("\n", v, [](const InstallPlanAction* p) {
+ return to_output_string(p->request_type, p->displayname(), p->build_options);
+ });
+ };
+
+ if (excluded.size() > 0)
+ {
+ System::println("The following packages are excluded:\n%s", actions_to_output_string(excluded));
+ }
+
+ if (already_installed_plans.size() > 0)
+ {
+ System::println("The following packages are already installed:\n%s",
+ actions_to_output_string(already_installed_plans));
+ }
+
+ if (rebuilt_plans.size() > 0)
+ {
+ System::println("The following packages will be rebuilt:\n%s", actions_to_output_string(rebuilt_plans));
+ }
+
+ if (new_plans.size() > 0)
+ {
+ System::println("The following packages will be built and installed:\n%s",
+ actions_to_output_string(new_plans));
+ }
+
+ if (only_install_plans.size() > 0)
+ {
+ System::println("The following packages will be directly installed:\n%s",
+ actions_to_output_string(only_install_plans));
+ }
+
+ if (has_non_user_requested_packages)
+ System::println("Additional packages (*) will be modified to complete this operation.");
+
+ if (remove_plans.size() > 0 && !is_recursive)
+ {
+ System::println(System::Color::warning,
+ "If you are sure you want to rebuild the above packages, run the command with the "
+ "--recurse option");
+ Checks::exit_fail(VCPKG_LINE_INFO);
+ }
+ }
}
diff --git a/toolsrc/src/vcpkg/export.cpp b/toolsrc/src/vcpkg/export.cpp
index 9b86863eb..e3221a12f 100644
--- a/toolsrc/src/vcpkg/export.cpp
+++ b/toolsrc/src/vcpkg/export.cpp
@@ -290,7 +290,7 @@ namespace vcpkg::Export
{OPTION_IFW_INSTALLER_FILE_PATH, "Specify the file path for the exported installer"},
}};
- const CommandStructure vcpkg::Export::COMMAND_STRUCTURE = {
+ const CommandStructure COMMAND_STRUCTURE = {
Help::create_example_string("export zlib zlib:x64-windows boost --nuget"),
0,
SIZE_MAX,
@@ -369,7 +369,8 @@ namespace vcpkg::Export
static void print_next_step_info(const fs::path& prefix)
{
const fs::path cmake_toolchain = prefix / "scripts" / "buildsystems" / "vcpkg.cmake";
- const CMakeVariable cmake_variable = CMakeVariable("CMAKE_TOOLCHAIN_FILE", cmake_toolchain.generic_string());
+ const System::CMakeVariable cmake_variable =
+ System::CMakeVariable("CMAKE_TOOLCHAIN_FILE", cmake_toolchain.generic_string());
System::println("\n"
"To use the exported libraries in CMake projects use:"
"\n"
@@ -477,7 +478,9 @@ With a project open, go to Tools->NuGet Package Manager->Package Manager Console
// create the plan
const StatusParagraphs status_db = database_load_check(paths);
- std::vector<ExportPlanAction> export_plan = Dependencies::create_export_plan(paths, opts.specs, status_db);
+ Dependencies::PathsPortFileProvider provider(paths);
+ std::vector<ExportPlanAction> export_plan =
+ Dependencies::create_export_plan(provider, paths, opts.specs, status_db);
Checks::check_exit(VCPKG_LINE_INFO, !export_plan.empty(), "Export plan cannot be empty");
std::map<ExportPlanType, std::vector<const ExportPlanAction*>> group_by_plan_type;
diff --git a/toolsrc/src/vcpkg/globalstate.cpp b/toolsrc/src/vcpkg/globalstate.cpp
index 43230fa4b..123c77d46 100644
--- a/toolsrc/src/vcpkg/globalstate.cpp
+++ b/toolsrc/src/vcpkg/globalstate.cpp
@@ -4,7 +4,9 @@
namespace vcpkg
{
- Util::LockGuarded<Chrono::ElapsedTime> GlobalState::timer;
+ Util::LockGuarded<Chrono::ElapsedTimer> GlobalState::timer;
+ Util::LockGuarded<std::string> GlobalState::g_surveydate;
+
std::atomic<bool> GlobalState::debugging(false);
std::atomic<bool> GlobalState::feature_packages(false);
diff --git a/toolsrc/src/vcpkg/help.cpp b/toolsrc/src/vcpkg/help.cpp
index c83f0277b..b7d355742 100644
--- a/toolsrc/src/vcpkg/help.cpp
+++ b/toolsrc/src/vcpkg/help.cpp
@@ -85,6 +85,7 @@ namespace vcpkg::Help
" vcpkg remove --outdated Uninstall all out-of-date packages\n"
" vcpkg list List installed packages\n"
" vcpkg update Display list of packages for updating\n"
+ " vcpkg upgrade Rebuild all outdated packages\n"
" vcpkg hash <file> [alg] Hash a file by specific algorithm, default SHA512\n"
" vcpkg help topics Display the list of help topics\n"
" vcpkg help <topic> Display help for a specific topic\n"
diff --git a/toolsrc/src/vcpkg/install.cpp b/toolsrc/src/vcpkg/install.cpp
index f48b04d68..dcc130be3 100644
--- a/toolsrc/src/vcpkg/install.cpp
+++ b/toolsrc/src/vcpkg/install.cpp
@@ -292,25 +292,13 @@ namespace vcpkg::Install
System::println("Building package %s... ", display_name_with_features);
auto result = [&]() -> Build::ExtendedBuildResult {
- if (GlobalState::feature_packages)
- {
- const Build::BuildPackageConfig build_config{
- *action.any_paragraph.source_control_file.value_or_exit(VCPKG_LINE_INFO),
- action.spec.triplet(),
- paths.port_dir(action.spec),
- action.build_options,
- action.feature_list};
- return Build::build_package(paths, build_config, status_db);
- }
- else
- {
- const Build::BuildPackageConfig build_config{
- action.any_paragraph.source_paragraph.value_or_exit(VCPKG_LINE_INFO),
- action.spec.triplet(),
- paths.port_dir(action.spec),
- action.build_options};
- return Build::build_package(paths, build_config, status_db);
- }
+ const Build::BuildPackageConfig build_config{
+ *action.any_paragraph.source_control_file.value_or_exit(VCPKG_LINE_INFO),
+ action.spec.triplet(),
+ paths.port_dir(action.spec),
+ action.build_options,
+ action.feature_list};
+ return Build::build_package(paths, build_config, status_db);
}();
if (result.code != Build::BuildResult::SUCCEEDED)
@@ -348,108 +336,6 @@ namespace vcpkg::Install
Checks::unreachable(VCPKG_LINE_INFO);
}
- static void print_plan(const std::vector<AnyAction>& action_plan, const bool is_recursive)
- {
- std::vector<const RemovePlanAction*> remove_plans;
- std::vector<const InstallPlanAction*> rebuilt_plans;
- std::vector<const InstallPlanAction*> only_install_plans;
- std::vector<const InstallPlanAction*> new_plans;
- std::vector<const InstallPlanAction*> already_installed_plans;
- std::vector<const InstallPlanAction*> excluded;
-
- const bool has_non_user_requested_packages = Util::find_if(action_plan, [](const AnyAction& package) -> bool {
- if (auto iplan = package.install_plan.get())
- return iplan->request_type != RequestType::USER_REQUESTED;
- else
- return false;
- }) != action_plan.cend();
-
- for (auto&& action : action_plan)
- {
- if (auto install_action = action.install_plan.get())
- {
- // remove plans are guaranteed to come before install plans, so we know the plan will be contained if at
- // all.
- auto it = Util::find_if(
- remove_plans, [&](const RemovePlanAction* plan) { return plan->spec == install_action->spec; });
- if (it != remove_plans.end())
- {
- rebuilt_plans.emplace_back(install_action);
- }
- else
- {
- switch (install_action->plan_type)
- {
- case InstallPlanType::INSTALL: only_install_plans.emplace_back(install_action); break;
- case InstallPlanType::ALREADY_INSTALLED:
- if (install_action->request_type == RequestType::USER_REQUESTED)
- already_installed_plans.emplace_back(install_action);
- break;
- case InstallPlanType::BUILD_AND_INSTALL: new_plans.emplace_back(install_action); break;
- case InstallPlanType::EXCLUDED: excluded.emplace_back(install_action); break;
- default: Checks::unreachable(VCPKG_LINE_INFO);
- }
- }
- }
- else if (auto remove_action = action.remove_plan.get())
- {
- remove_plans.emplace_back(remove_action);
- }
- }
-
- std::sort(remove_plans.begin(), remove_plans.end(), &RemovePlanAction::compare_by_name);
- std::sort(rebuilt_plans.begin(), rebuilt_plans.end(), &InstallPlanAction::compare_by_name);
- std::sort(only_install_plans.begin(), only_install_plans.end(), &InstallPlanAction::compare_by_name);
- std::sort(new_plans.begin(), new_plans.end(), &InstallPlanAction::compare_by_name);
- std::sort(already_installed_plans.begin(), already_installed_plans.end(), &InstallPlanAction::compare_by_name);
- std::sort(excluded.begin(), excluded.end(), &InstallPlanAction::compare_by_name);
-
- static auto actions_to_output_string = [](const std::vector<const InstallPlanAction*>& v) {
- return Strings::join("\n", v, [](const InstallPlanAction* p) {
- return to_output_string(p->request_type, p->displayname(), p->build_options);
- });
- };
-
- if (excluded.size() > 0)
- {
- System::println("The following packages are excluded:\n%s", actions_to_output_string(excluded));
- }
-
- if (already_installed_plans.size() > 0)
- {
- System::println("The following packages are already installed:\n%s",
- actions_to_output_string(already_installed_plans));
- }
-
- if (rebuilt_plans.size() > 0)
- {
- System::println("The following packages will be rebuilt:\n%s", actions_to_output_string(rebuilt_plans));
- }
-
- if (new_plans.size() > 0)
- {
- System::println("The following packages will be built and installed:\n%s",
- actions_to_output_string(new_plans));
- }
-
- if (only_install_plans.size() > 0)
- {
- System::println("The following packages will be directly installed:\n%s",
- actions_to_output_string(only_install_plans));
- }
-
- if (has_non_user_requested_packages)
- System::println("Additional packages (*) will be installed to complete this operation.");
-
- if (remove_plans.size() > 0 && !is_recursive)
- {
- System::println(System::Color::warning,
- "If you are sure you want to rebuild the above packages, run the command with the "
- "--recurse option");
- Checks::exit_fail(VCPKG_LINE_INFO);
- }
- }
-
void InstallSummary::print() const
{
System::println("RESULTS");
@@ -484,22 +370,22 @@ namespace vcpkg::Install
{
std::vector<SpecSummary> results;
- const auto timer = Chrono::ElapsedTime::create_started();
+ const auto timer = Chrono::ElapsedTimer::create_started();
size_t counter = 0;
const size_t package_count = action_plan.size();
for (const auto& action : action_plan)
{
- const auto build_timer = Chrono::ElapsedTime::create_started();
+ const auto build_timer = Chrono::ElapsedTimer::create_started();
counter++;
const PackageSpec& spec = action.spec();
const std::string display_name = spec.to_string();
- System::println("Starting package %d/%d: %s", counter, package_count, display_name);
+ System::println("Starting package %zd/%zd: %s", counter, package_count, display_name);
results.emplace_back(spec, &action);
- if (const auto install_action = action.install_plan.get())
+ if (const auto install_action = action.install_action.get())
{
auto result = perform_install_plan_action(paths, *install_action, status_db);
@@ -511,9 +397,8 @@ namespace vcpkg::Install
results.back().build_result = std::move(result);
}
- else if (const auto remove_action = action.remove_plan.get())
+ else if (const auto remove_action = action.remove_action.get())
{
- Checks::check_exit(VCPKG_LINE_INFO, GlobalState::feature_packages);
Remove::perform_remove_plan_action(paths, *remove_action, Remove::Purge::YES, status_db);
}
else
@@ -521,8 +406,8 @@ namespace vcpkg::Install
Checks::unreachable(VCPKG_LINE_INFO);
}
- results.back().timing = build_timer.to_string();
- System::println("Elapsed time for package %s: %s", display_name, build_timer.to_string());
+ results.back().timing = build_timer.elapsed();
+ System::println("Elapsed time for package %s: %s", display_name, results.back().timing.to_string());
}
return InstallSummary{std::move(results), timer.to_string()};
@@ -533,6 +418,7 @@ namespace vcpkg::Install
static const std::string OPTION_NO_DOWNLOADS = "--no-downloads";
static const std::string OPTION_RECURSE = "--recurse";
static const std::string OPTION_KEEP_GOING = "--keep-going";
+ static const std::string OPTION_XUNIT = "--x-xunit";
static const std::array<CommandSwitch, 5> INSTALL_SWITCHES = {{
{OPTION_DRY_RUN, "Do not actually build or install"},
@@ -541,7 +427,9 @@ namespace vcpkg::Install
{OPTION_RECURSE, "Allow removal of packages as part of installation"},
{OPTION_KEEP_GOING, "Continue installing packages on failure"},
}};
- static const std::array<std::string, 0> INSTALL_SETTINGS;
+ static const std::array<CommandSetting, 1> INSTALL_SETTINGS = {{
+ {OPTION_XUNIT, "File to output results in XUnit format (Internal use)"},
+ }};
std::vector<std::string> get_all_port_names(const VcpkgPaths& paths)
{
@@ -555,13 +443,13 @@ namespace vcpkg::Install
Help::create_example_string("install zlib zlib:x64-windows curl boost"),
1,
SIZE_MAX,
- {INSTALL_SWITCHES, {}},
+ {INSTALL_SWITCHES, INSTALL_SETTINGS},
&get_all_port_names,
};
static void print_cmake_information(const BinaryParagraph& bpgh, const VcpkgPaths& paths)
{
- static const std::regex cmake_library_regex("^add_library\\(([^\\s\\$\\)]+)\\s");
+ static const std::regex cmake_library_regex(R"(\badd_library\(([^\s\)]+)\s)", std::regex_constants::ECMAScript);
auto& fs = paths.get_filesystem();
@@ -579,15 +467,17 @@ namespace vcpkg::Install
auto files = fs.read_lines(paths.listfile_path(bpgh));
if (auto p_lines = files.get())
{
+ std::map<std::string, std::vector<std::string>> library_targets;
+
for (auto&& suffix : *p_lines)
{
- if (Strings::case_insensitive_ascii_find(suffix, "/share/") != suffix.end())
+ if (Strings::case_insensitive_ascii_find(suffix, "/share/") != suffix.end() &&
+ suffix.substr(suffix.size() - 6) == ".cmake")
{
- std::vector<std::string> library_targets;
-
// File is inside the share folder
auto path = paths.installed / suffix;
auto maybe_contents = fs.read_contents(path);
+ auto find_package_name = path.parent_path().filename().u8string();
if (auto p_contents = maybe_contents.get())
{
std::sregex_iterator next(p_contents->begin(), p_contents->end(), cmake_library_regex);
@@ -596,37 +486,40 @@ namespace vcpkg::Install
while (next != last)
{
auto match = *next;
- library_targets.push_back(match[1]);
+ library_targets[find_package_name].push_back(match[1]);
++next;
}
}
+ }
+ }
- if (library_targets.empty())
- {
- }
- else if (library_targets.size() <= 4)
+ if (library_targets.empty())
+ {
+ }
+ else
+ {
+ System::println("The package %s provides CMake targets:\n", bpgh.spec);
+
+ for (auto&& library_target_pair : library_targets)
+ {
+ if (library_target_pair.second.size() <= 4)
{
- System::println("The package %s provides CMake targets:\n"
- "\n"
- " find_package(%s REQUIRED)\n"
+ System::println(" find_package(%s REQUIRED)\n"
" target_link_libraries(main PRIVATE %s)\n",
- bpgh.spec,
- path.parent_path().filename().u8string(),
- Strings::join(" ", library_targets));
+ library_target_pair.first,
+ Strings::join(" ", library_target_pair.second));
}
else
{
- auto omitted = library_targets.size() - 4;
- library_targets.erase(library_targets.begin() + 4, library_targets.end());
- System::println("The package %s provides CMake targets:\n"
- "\n"
- " find_package(%s REQUIRED)\n"
- " # Note: %d targets were omitted\n"
+ auto omitted = library_target_pair.second.size() - 4;
+ library_target_pair.second.erase(library_target_pair.second.begin() + 4,
+ library_target_pair.second.end());
+ System::println(" find_package(%s REQUIRED)\n"
+ " # Note: %zd targets were omitted\n"
" target_link_libraries(main PRIVATE %s)\n",
- bpgh.spec,
- path.parent_path().filename().u8string(),
+ library_target_pair.first,
omitted,
- Strings::join(" ", library_targets));
+ Strings::join(" ", library_target_pair.second));
}
}
}
@@ -668,31 +561,33 @@ namespace vcpkg::Install
};
// Note: action_plan will hold raw pointers to SourceControlFiles from this map
- std::unordered_map<std::string, SourceControlFile> scf_map;
std::vector<AnyAction> action_plan;
- if (GlobalState::feature_packages)
+ auto all_ports = Paragraphs::load_all_ports(paths.get_filesystem(), paths.ports);
+ std::unordered_map<std::string, SourceControlFile> scf_map;
+ for (auto&& port : all_ports)
+ scf_map[port->core_paragraph->name] = std::move(*port);
+ MapPortFileProvider provider(scf_map);
+
+ action_plan = create_feature_install_plan(provider, FullPackageSpec::to_feature_specs(specs), status_db);
+
+ if (!GlobalState::feature_packages)
{
- auto all_ports = Paragraphs::load_all_ports(paths.get_filesystem(), paths.ports);
- for (auto&& port : all_ports)
+ for (auto&& action : action_plan)
{
- scf_map[port->core_paragraph->name] = std::move(*port);
+ if (action.remove_action.has_value())
+ {
+ Checks::exit_with_message(
+ VCPKG_LINE_INFO,
+ "The installation plan requires feature packages support. Please re-run the "
+ "command with --featurepackages.");
+ }
}
- action_plan = create_feature_install_plan(scf_map, FullPackageSpec::to_feature_specs(specs), status_db);
- }
- else
- {
- Dependencies::PathsPortFile paths_port_file(paths);
- auto install_plan = Dependencies::create_install_plan(
- paths_port_file, Util::fmap(specs, [](auto&& spec) { return spec.package_spec; }), status_db);
-
- action_plan = Util::fmap(
- install_plan, [](InstallPlanAction& install_action) { return AnyAction(std::move(install_action)); });
}
for (auto&& action : action_plan)
{
- if (auto p_install = action.install_plan.get())
+ if (auto p_install = action.install_action.get())
{
p_install->build_options = install_plan_options;
if (p_install->request_type != RequestType::USER_REQUESTED)
@@ -705,16 +600,16 @@ namespace vcpkg::Install
// log the plan
const std::string specs_string = Strings::join(",", action_plan, [](const AnyAction& action) {
- if (auto iaction = action.install_plan.get())
+ if (auto iaction = action.install_action.get())
return iaction->spec.to_string();
- else if (auto raction = action.remove_plan.get())
+ else if (auto raction = action.remove_action.get())
return "R$" + raction->spec.to_string();
Checks::unreachable(VCPKG_LINE_INFO);
});
Metrics::g_metrics.lock()->track_property("installplan", specs_string);
- print_plan(action_plan, is_recursive);
+ Dependencies::print_plan(action_plan, is_recursive);
if (dry_run)
{
@@ -730,12 +625,21 @@ namespace vcpkg::Install
summary.print();
}
- auto& fs = paths.get_filesystem();
+ auto it_xunit = options.settings.find(OPTION_XUNIT);
+ if (it_xunit != options.settings.end())
+ {
+ std::string xunit_doc = "<assemblies><assembly><collection>\n";
+
+ xunit_doc += summary.xunit_results();
+
+ xunit_doc += "</collection></assembly></assemblies>\n";
+ paths.get_filesystem().write_contents(fs::u8path(it_xunit->second), xunit_doc);
+ }
for (auto&& result : summary.results)
{
if (!result.action) continue;
- if (auto p_install_action = result.action->install_plan.get())
+ if (auto p_install_action = result.action->install_action.get())
{
if (p_install_action->request_type != RequestType::USER_REQUESTED) continue;
auto bpgh = result.get_binary_paragraph();
@@ -748,7 +652,7 @@ namespace vcpkg::Install
}
SpecSummary::SpecSummary(const PackageSpec& spec, const Dependencies::AnyAction* action)
- : spec(spec), build_result{BuildResult::NULLVALUE, nullptr}, timing("0"), action(action)
+ : spec(spec), build_result{BuildResult::NULLVALUE, nullptr}, action(action)
{
}
@@ -756,7 +660,7 @@ namespace vcpkg::Install
{
if (build_result.binary_control_file) return &build_result.binary_control_file->core_paragraph;
if (action)
- if (auto p_install_plan = action->install_plan.get())
+ if (auto p_install_plan = action->install_action.get())
{
if (auto p_bcf = p_install_plan->any_paragraph.binary_control_file.get())
return &p_bcf->core_paragraph;
@@ -767,4 +671,41 @@ namespace vcpkg::Install
}
return nullptr;
}
+
+ std::string InstallSummary::xunit_results() const
+ {
+ std::string xunit_doc;
+ for (auto&& result : results)
+ {
+ std::string inner_block;
+ const char* result_string = "";
+ switch (result.build_result.code)
+ {
+ case BuildResult::POST_BUILD_CHECKS_FAILED:
+ case BuildResult::FILE_CONFLICTS:
+ case BuildResult::BUILD_FAILED:
+ result_string = "Fail";
+ inner_block = Strings::format("<failure><message><![CDATA[%s]]></message></failure>",
+ to_string(result.build_result.code));
+ break;
+ case BuildResult::EXCLUDED:
+ case BuildResult::CASCADED_DUE_TO_MISSING_DEPENDENCIES:
+ result_string = "Skip";
+ inner_block =
+ Strings::format("<reason><![CDATA[%s]]></reason>", to_string(result.build_result.code));
+ break;
+ case BuildResult::SUCCEEDED: result_string = "Pass"; break;
+ default: Checks::exit_fail(VCPKG_LINE_INFO);
+ }
+
+ xunit_doc += Strings::format(R"(<test name="%s" method="%s" time="%lld" result="%s">%s</test>)"
+ "\n",
+ result.spec,
+ result.spec,
+ result.timing.as<std::chrono::seconds>().count(),
+ result_string,
+ inner_block);
+ }
+ return xunit_doc;
+ }
}
diff --git a/toolsrc/src/vcpkg/metrics.cpp b/toolsrc/src/vcpkg/metrics.cpp
index d7e18a176..cdb21d260 100644
--- a/toolsrc/src/vcpkg/metrics.cpp
+++ b/toolsrc/src/vcpkg/metrics.cpp
@@ -1,7 +1,9 @@
#include "pch.h"
+#include <vcpkg/commands.h>
#include <vcpkg/metrics.h>
+#include <vcpkg/base/chrono.h>
#include <vcpkg/base/files.h>
#include <vcpkg/base/strings.h>
#include <vcpkg/base/system.h>
@@ -15,32 +17,13 @@ namespace vcpkg::Metrics
static std::string get_current_date_time()
{
- struct tm newtime;
- std::array<char, 80> date;
- date.fill(0);
-
-#if defined(_WIN32)
- struct _timeb timebuffer;
-
- _ftime_s(&timebuffer);
- time_t now = timebuffer.time;
- const int milli = timebuffer.millitm;
-
- const errno_t err = gmtime_s(&newtime, &now);
-
- if (err)
+ auto maybe_time = Chrono::CTime::get_current_date_time();
+ if (auto ptime = maybe_time.get())
{
- return "";
+ return ptime->to_string();
}
-#else
- time_t now;
- time(&now);
- gmtime_r(&now, &newtime);
- const int milli = 0;
-#endif
- strftime(&date[0], date.size(), "%Y-%m-%dT%H:%M:%S", &newtime);
- return std::string(&date[0]) + "." + std::to_string(milli) + "Z";
+ return "";
}
static std::string generate_random_UUID()
@@ -255,9 +238,10 @@ namespace vcpkg::Metrics
auto match = *next;
if (match[0] != "00-00-00-00-00-00")
{
- std::string matchstr = match[0];
+ const std::string matchstr = match[0];
+ const System::PowershellParameter value("Value", matchstr);
auto hash_result = System::powershell_execute_and_capture_output(
- "SHA256Hash", get_vcpkg_root() / "SHA256Hash.ps1", Strings::format("-Value \"%s\"", matchstr));
+ "SHA256Hash", get_vcpkg_root() / "scripts" / "SHA256Hash.ps1", {value});
Util::erase_remove_if(hash_result,
[](char ch) { return !(ch >= 'A' && ch <= 'F') && !(ch >= '0' && ch <= '9'); });
hash_result = Strings::ascii_to_lowercase(hash_result);
@@ -393,8 +377,9 @@ namespace vcpkg::Metrics
wchar_t temp_folder[MAX_PATH];
GetTempPathW(MAX_PATH, temp_folder);
- const fs::path temp_folder_path = temp_folder;
- const fs::path temp_folder_path_exe = temp_folder_path / "vcpkgmetricsuploader.exe";
+ const fs::path temp_folder_path = fs::path(temp_folder) / "vcpkg";
+ const fs::path temp_folder_path_exe =
+ temp_folder_path / Strings::format("vcpkgmetricsuploader-%s.exe", Commands::Version::base_version());
auto& fs = Files::get_real_filesystem();
@@ -412,6 +397,8 @@ namespace vcpkg::Metrics
}();
std::error_code ec;
+ fs.create_directories(temp_folder_path, ec);
+ if (ec) return;
fs.copy_file(exe_path, temp_folder_path_exe, fs::copy_options::skip_existing, ec);
if (ec) return;
}
@@ -419,8 +406,9 @@ namespace vcpkg::Metrics
const fs::path vcpkg_metrics_txt_path = temp_folder_path / ("vcpkg" + generate_random_UUID() + ".txt");
fs.write_contents(vcpkg_metrics_txt_path, payload);
- const std::string cmd_line =
- Strings::format("start %s %s", temp_folder_path_exe.u8string(), vcpkg_metrics_txt_path.u8string());
+ const std::string cmd_line = Strings::format("start \"vcpkgmetricsuploader.exe\" \"%s\" \"%s\"",
+ temp_folder_path_exe.u8string(),
+ vcpkg_metrics_txt_path.u8string());
System::cmd_execute_clean(cmd_line);
#endif
}
diff --git a/toolsrc/src/vcpkg/packagespec.cpp b/toolsrc/src/vcpkg/packagespec.cpp
index eeb9981af..a9e072094 100644
--- a/toolsrc/src/vcpkg/packagespec.cpp
+++ b/toolsrc/src/vcpkg/packagespec.cpp
@@ -2,6 +2,7 @@
#include <vcpkg/base/util.h>
#include <vcpkg/packagespec.h>
+#include <vcpkg/packagespecparseresult.h>
#include <vcpkg/parse.h>
using vcpkg::Parse::parse_comma_list;
@@ -95,8 +96,40 @@ namespace vcpkg
std::vector<PackageSpec> PackageSpec::to_package_specs(const std::vector<std::string>& ports,
const Triplet& triplet)
{
- return Util::fmap(ports, [&](const std::string s) {
- return PackageSpec::from_name_and_triplet(s, triplet).value_or_exit(VCPKG_LINE_INFO);
+ return Util::fmap(ports, [&](const std::string& spec_as_string) -> PackageSpec {
+ auto maybe_spec = PackageSpec::from_name_and_triplet(spec_as_string, triplet);
+ if (auto spec = maybe_spec.get())
+ {
+ return std::move(*spec);
+ }
+
+ const PackageSpecParseResult error_type = maybe_spec.error();
+ Checks::exit_with_message(VCPKG_LINE_INFO,
+ "Invalid package: %s\n"
+ "%s",
+ spec_as_string,
+ vcpkg::to_string(error_type));
+ });
+ }
+
+ std::vector<PackageSpec> PackageSpec::from_dependencies_of_port(const std::string& port,
+ const std::vector<std::string>& dependencies,
+ const Triplet& triplet)
+ {
+ return Util::fmap(dependencies, [&](const std::string& spec_as_string) -> PackageSpec {
+ auto maybe_spec = PackageSpec::from_name_and_triplet(spec_as_string, triplet);
+ if (auto spec = maybe_spec.get())
+ {
+ return std::move(*spec);
+ }
+
+ const PackageSpecParseResult error_type = maybe_spec.error();
+ Checks::exit_with_message(VCPKG_LINE_INFO,
+ "Invalid dependency [%s] in package [%s]\n"
+ "%s",
+ spec_as_string,
+ port,
+ vcpkg::to_string(error_type));
});
}
diff --git a/toolsrc/src/vcpkg/paragraphs.cpp b/toolsrc/src/vcpkg/paragraphs.cpp
index b93de190c..b66d53994 100644
--- a/toolsrc/src/vcpkg/paragraphs.cpp
+++ b/toolsrc/src/vcpkg/paragraphs.cpp
@@ -289,16 +289,4 @@ namespace vcpkg::Paragraphs
}
return std::move(results.paragraphs);
}
-
- std::map<std::string, VersionT> load_all_port_names_and_versions(const Files::Filesystem& fs,
- const fs::path& ports_dir)
- {
- auto all_ports = load_all_ports(fs, ports_dir);
-
- std::map<std::string, VersionT> names_and_versions;
- for (auto&& port : all_ports)
- names_and_versions.emplace(port->core_paragraph->name, port->core_paragraph->version);
-
- return names_and_versions;
- }
}
diff --git a/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp b/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp
index 2baaddb5e..e966ce78a 100644
--- a/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp
+++ b/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp
@@ -3,6 +3,8 @@
#include <vcpkg/base/checks.h>
#include <vcpkg/postbuildlint.buildtype.h>
+using vcpkg::Build::ConfigurationType;
+
namespace vcpkg::PostBuildLint
{
BuildType BuildType::value_of(const ConfigurationType& config, const Build::LinkageType& linkage)
diff --git a/toolsrc/src/vcpkg/postbuildlint.cpp b/toolsrc/src/vcpkg/postbuildlint.cpp
index d83d656cf..2b427737a 100644
--- a/toolsrc/src/vcpkg/postbuildlint.cpp
+++ b/toolsrc/src/vcpkg/postbuildlint.cpp
@@ -38,27 +38,41 @@ namespace vcpkg::PostBuildLint
}
};
- Span<const OutdatedDynamicCrt> get_outdated_dynamic_crts(CStringView toolset)
+ Span<const OutdatedDynamicCrt> get_outdated_dynamic_crts(const Optional<std::string>& toolset_version)
{
- static const std::vector<OutdatedDynamicCrt> V_NO_MSVCRT = {
+ static const std::vector<OutdatedDynamicCrt> V_NO_120 = {
{"msvcp100.dll", R"(msvcp100\.dll)"},
{"msvcp100d.dll", R"(msvcp100d\.dll)"},
{"msvcp110.dll", R"(msvcp110\.dll)"},
{"msvcp110_win.dll", R"(msvcp110_win\.dll)"},
- {"msvcp120.dll", R"(msvcp120\.dll)"},
- {"msvcp120_clr0400.dll", R"(msvcp120_clr0400\.dll)"},
{"msvcp60.dll", R"(msvcp60\.dll)"},
{"msvcp60.dll", R"(msvcp60\.dll)"},
+ {"msvcrt.dll", R"(msvcrt\.dll)"},
{"msvcr100.dll", R"(msvcr100\.dll)"},
{"msvcr100d.dll", R"(msvcr100d\.dll)"},
{"msvcr100_clr0400.dll", R"(msvcr100_clr0400\.dll)"},
{"msvcr110.dll", R"(msvcr110\.dll)"},
- {"msvcr120.dll", R"(msvcr120\.dll)"},
- {"msvcr120_clr0400.dll", R"(msvcr120_clr0400\.dll)"},
{"msvcrt20.dll", R"(msvcrt20\.dll)"},
- {"msvcrt40.dll", R"(msvcrt40\.dll)"}};
+ {"msvcrt40.dll", R"(msvcrt40\.dll)"},
+ };
+
+ static const std::vector<OutdatedDynamicCrt> V_NO_MSVCRT = [&]() {
+ auto ret = V_NO_120;
+ ret.push_back({"msvcp120.dll", R"(msvcp120\.dll)"});
+ ret.push_back({"msvcp120_clr0400.dll", R"(msvcp120_clr0400\.dll)"});
+ ret.push_back({"msvcr120.dll", R"(msvcr120\.dll)"});
+ ret.push_back({"msvcr120_clr0400.dll", R"(msvcr120_clr0400\.dll)"});
+ return ret;
+ }();
+
+ const auto tsv = toolset_version.get();
+ if (tsv && (*tsv) == "v120")
+ {
+ return V_NO_120;
+ }
+ // Default case for all version >= VS 2015.
return V_NO_MSVCRT;
}
@@ -465,7 +479,7 @@ namespace vcpkg::PostBuildLint
}
System::println(System::Color::warning,
- "Mismatching number of debug and release binaries. Found %d for debug but %d for release.",
+ "Mismatching number of debug and release binaries. Found %zd for debug but %zd for release.",
debug_count,
release_count);
System::println("Debug binaries");
@@ -639,7 +653,8 @@ namespace vcpkg::PostBuildLint
static LintStatus check_outdated_crt_linkage_of_dlls(const std::vector<fs::path>& dlls,
const fs::path dumpbin_exe,
- const BuildInfo& build_info)
+ const BuildInfo& build_info,
+ const PreBuildInfo& pre_build_info)
{
if (build_info.policies.is_enabled(BuildPolicy::ALLOW_OBSOLETE_MSVCRT)) return LintStatus::SUCCESS;
@@ -651,7 +666,7 @@ namespace vcpkg::PostBuildLint
System::ExitCodeAndOutput ec_data = System::cmd_execute_and_capture_output(cmd_line);
Checks::check_exit(VCPKG_LINE_INFO, ec_data.exit_code == 0, "Running command:\n %s\n failed", cmd_line);
- for (const OutdatedDynamicCrt& outdated_crt : get_outdated_dynamic_crts("v141"))
+ for (const OutdatedDynamicCrt& outdated_crt : get_outdated_dynamic_crts(pre_build_info.platform_toolset))
{
if (std::regex_search(ec_data.output.cbegin(), ec_data.output.cend(), outdated_crt.regex))
{
@@ -711,7 +726,7 @@ namespace vcpkg::PostBuildLint
const auto& fs = paths.get_filesystem();
// for dumpbin
- const Toolset& toolset = paths.get_toolset(pre_build_info.platform_toolset, pre_build_info.visual_studio_path);
+ const Toolset& toolset = paths.get_toolset(pre_build_info);
const fs::path package_dir = paths.package_dir(spec);
size_t error_count = 0;
@@ -743,7 +758,8 @@ namespace vcpkg::PostBuildLint
std::vector<fs::path> release_libs = fs.get_files_recursive(release_lib_dir);
Util::unstable_keep_if(release_libs, has_extension_pred(fs, ".lib"));
- error_count += check_matching_debug_and_release_binaries(debug_libs, release_libs);
+ if (!pre_build_info.build_type)
+ error_count += check_matching_debug_and_release_binaries(debug_libs, release_libs);
{
std::vector<fs::path> libs;
@@ -762,7 +778,8 @@ namespace vcpkg::PostBuildLint
{
case Build::LinkageType::DYNAMIC:
{
- error_count += check_matching_debug_and_release_binaries(debug_dlls, release_dlls);
+ if (!pre_build_info.build_type)
+ error_count += check_matching_debug_and_release_binaries(debug_dlls, release_dlls);
error_count += check_lib_files_are_available_if_dlls_are_available(
build_info.policies, debug_libs.size(), debug_dlls.size(), debug_lib_dir);
@@ -777,7 +794,7 @@ namespace vcpkg::PostBuildLint
error_count += check_uwp_bit_of_dlls(pre_build_info.cmake_system_name, dlls, toolset.dumpbin);
error_count += check_dll_architecture(pre_build_info.target_architecture, dlls);
- error_count += check_outdated_crt_linkage_of_dlls(dlls, toolset.dumpbin, build_info);
+ error_count += check_outdated_crt_linkage_of_dlls(dlls, toolset.dumpbin, build_info, pre_build_info);
break;
}
case Build::LinkageType::STATIC:
@@ -790,15 +807,15 @@ namespace vcpkg::PostBuildLint
if (!build_info.policies.is_enabled(BuildPolicy::ONLY_RELEASE_CRT))
{
- error_count +=
- check_crt_linkage_of_libs(BuildType::value_of(ConfigurationType::DEBUG, build_info.crt_linkage),
- debug_libs,
- toolset.dumpbin);
+ error_count += check_crt_linkage_of_libs(
+ BuildType::value_of(Build::ConfigurationType::DEBUG, build_info.crt_linkage),
+ debug_libs,
+ toolset.dumpbin);
}
- error_count +=
- check_crt_linkage_of_libs(BuildType::value_of(ConfigurationType::RELEASE, build_info.crt_linkage),
- release_libs,
- toolset.dumpbin);
+ error_count += check_crt_linkage_of_libs(
+ BuildType::value_of(Build::ConfigurationType::RELEASE, build_info.crt_linkage),
+ release_libs,
+ toolset.dumpbin);
break;
}
default: Checks::unreachable(VCPKG_LINE_INFO);
diff --git a/toolsrc/src/vcpkg/remove.cpp b/toolsrc/src/vcpkg/remove.cpp
index 8ae0bc881..4079d60c1 100644
--- a/toolsrc/src/vcpkg/remove.cpp
+++ b/toolsrc/src/vcpkg/remove.cpp
@@ -207,10 +207,11 @@ namespace vcpkg::Remove
System::println(System::Color::error, "Error: 'remove' accepts either libraries or '--outdated'");
Checks::exit_fail(VCPKG_LINE_INFO);
}
- specs = Util::fmap(
- Update::find_outdated_packages(
- Paragraphs::load_all_port_names_and_versions(paths.get_filesystem(), paths.ports), status_db),
- [](auto&& outdated) { return outdated.spec; });
+
+ Dependencies::PathsPortFileProvider provider(paths);
+
+ specs = Util::fmap(Update::find_outdated_packages(provider, status_db),
+ [](auto&& outdated) { return outdated.spec; });
if (specs.empty())
{
diff --git a/toolsrc/src/vcpkg/update.cpp b/toolsrc/src/vcpkg/update.cpp
index 29baef91e..d6c5614ed 100644
--- a/toolsrc/src/vcpkg/update.cpp
+++ b/toolsrc/src/vcpkg/update.cpp
@@ -14,7 +14,7 @@ namespace vcpkg::Update
return left.spec.name() < right.spec.name();
}
- std::vector<OutdatedPackage> find_outdated_packages(const std::map<std::string, VersionT>& src_names_to_versions,
+ std::vector<OutdatedPackage> find_outdated_packages(const Dependencies::PortFileProvider& provider,
const StatusParagraphs& status_db)
{
const std::vector<StatusParagraph*> installed_packages = get_installed_ports(status_db);
@@ -24,19 +24,23 @@ namespace vcpkg::Update
{
if (!pgh->package.feature.empty())
{
- // Skip feature packages; only consider master packages for needing updates.
+ // Skip feature paragraphs; only consider master paragraphs for needing updates.
continue;
}
- const auto it = src_names_to_versions.find(pgh->package.spec.name());
- if (it == src_names_to_versions.end())
+ auto maybe_scf = provider.get_control_file(pgh->package.spec.name());
+ if (auto p_scf = maybe_scf.get())
{
- // Package was not installed from portfile
- continue;
+ auto&& port_version = p_scf->core_paragraph->version;
+ auto&& installed_version = pgh->package.version;
+ if (installed_version != port_version)
+ {
+ output.push_back({pgh->package.spec, VersionDiff(installed_version, port_version)});
+ }
}
- if (it->second != pgh->package.version)
+ else
{
- output.push_back({pgh->package.spec, VersionDiff(pgh->package.version, it->second)});
+ // No portfile available
}
}
@@ -58,10 +62,10 @@ namespace vcpkg::Update
const StatusParagraphs status_db = database_load_check(paths);
- const auto outdated_packages = SortedVector<OutdatedPackage>(
- find_outdated_packages(Paragraphs::load_all_port_names_and_versions(paths.get_filesystem(), paths.ports),
- status_db),
- &OutdatedPackage::compare_by_name);
+ Dependencies::PathsPortFileProvider provider(paths);
+
+ const auto outdated_packages = SortedVector<OutdatedPackage>(find_outdated_packages(provider, status_db),
+ &OutdatedPackage::compare_by_name);
if (outdated_packages.empty())
{
@@ -69,19 +73,17 @@ namespace vcpkg::Update
}
else
{
- std::string install_line;
System::println("The following packages differ from their port versions:");
for (auto&& package : outdated_packages)
{
- install_line += package.spec.to_string();
- install_line += " ";
System::println(" %-32s %s", package.spec, package.version_diff.to_string());
}
System::println("\n"
- "To update these packages, run\n"
- " .\\vcpkg remove --outdated\n"
- " .\\vcpkg install " +
- install_line);
+ "To update these packages and all dependencies, run\n"
+ " .\\vcpkg upgrade\n"
+ "\n"
+ "To only remove outdated packages, run\n"
+ " .\\vcpkg remove --outdated\n");
}
Checks::exit_success(VCPKG_LINE_INFO);
diff --git a/toolsrc/src/vcpkg/userconfig.cpp b/toolsrc/src/vcpkg/userconfig.cpp
new file mode 100644
index 000000000..906594691
--- /dev/null
+++ b/toolsrc/src/vcpkg/userconfig.cpp
@@ -0,0 +1,88 @@
+#include "pch.h"
+
+#include <vcpkg/base/files.h>
+#include <vcpkg/base/lazy.h>
+#include <vcpkg/paragraphs.h>
+#include <vcpkg/userconfig.h>
+
+#if defined(_WIN32)
+namespace
+{
+ static vcpkg::Lazy<fs::path> s_localappdata;
+
+ static const fs::path& get_localappdata()
+ {
+ return s_localappdata.get_lazy([]() {
+ fs::path localappdata;
+ {
+ // Config path in AppDataLocal
+ wchar_t* localappdatapath = nullptr;
+ if (S_OK != SHGetKnownFolderPath(FOLDERID_LocalAppData, 0, nullptr, &localappdatapath)) __fastfail(1);
+ localappdata = localappdatapath;
+ CoTaskMemFree(localappdatapath);
+ }
+ return localappdata;
+ });
+ }
+}
+#endif
+
+namespace vcpkg
+{
+ UserConfig UserConfig::try_read_data(const Files::Filesystem& fs)
+ {
+ UserConfig ret;
+#if defined(_WIN32)
+ try
+ {
+ auto maybe_pghs = Paragraphs::get_paragraphs(fs, get_localappdata() / "vcpkg" / "config");
+ if (const auto p_pghs = maybe_pghs.get())
+ {
+ const auto& pghs = *p_pghs;
+
+ std::unordered_map<std::string, std::string> keys;
+ if (pghs.size() > 0) keys = pghs[0];
+
+ for (size_t x = 1; x < pghs.size(); ++x)
+ {
+ for (auto&& p : pghs[x])
+ keys.insert(p);
+ }
+
+ ret.user_id = keys["User-Id"];
+ ret.user_time = keys["User-Since"];
+ ret.user_mac = keys["Mac-Hash"];
+ ret.last_completed_survey = keys["Survey-Completed"];
+ }
+ }
+ catch (...)
+ {
+ }
+#endif
+
+ return ret;
+ }
+
+ void UserConfig::try_write_data(Files::Filesystem& fs) const
+ {
+#if defined(_WIN32)
+ try
+ {
+ std::error_code ec;
+ fs.create_directory(get_localappdata() / "vcpkg", ec);
+ fs.write_contents(get_localappdata() / "vcpkg" / "config",
+ Strings::format("User-Id: %s\n"
+ "User-Since: %s\n"
+ "Mac-Hash: %s\n"
+ "Survey-Completed: %s\n",
+ user_id,
+ user_time,
+ user_mac,
+ last_completed_survey));
+ }
+ catch (...)
+ {
+ }
+#endif
+ }
+}
diff --git a/toolsrc/src/vcpkg/vcpkglib.cpp b/toolsrc/src/vcpkg/vcpkglib.cpp
index 38b130f6f..5b2cec4d0 100644
--- a/toolsrc/src/vcpkg/vcpkglib.cpp
+++ b/toolsrc/src/vcpkg/vcpkglib.cpp
@@ -212,29 +212,7 @@ namespace vcpkg
return installed_files;
}
- CMakeVariable::CMakeVariable(const CStringView varname, const char* varvalue)
- : s(Strings::format(R"("-D%s=%s")", varname, varvalue))
- {
- }
- CMakeVariable::CMakeVariable(const CStringView varname, const std::string& varvalue)
- : CMakeVariable(varname, varvalue.c_str())
- {
- }
- CMakeVariable::CMakeVariable(const CStringView varname, const fs::path& path)
- : CMakeVariable(varname, path.generic_u8string())
- {
- }
-
- std::string make_cmake_cmd(const fs::path& cmake_exe,
- const fs::path& cmake_script,
- const std::vector<CMakeVariable>& pass_variables)
- {
- const std::string cmd_cmake_pass_variables = Strings::join(" ", pass_variables, [](auto&& v) { return v.s; });
- return Strings::format(
- R"("%s" %s -P "%s")", cmake_exe.u8string(), cmd_cmake_pass_variables, cmake_script.generic_u8string());
- }
-
- std::string shorten_text(const std::string& desc, size_t length)
+ std::string shorten_text(const std::string& desc, const size_t length)
{
Checks::check_exit(VCPKG_LINE_INFO, length >= 3);
auto simple_desc = std::regex_replace(desc, std::regex("\\s+"), " ");
diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp
index a553f4199..e64a681e2 100644
--- a/toolsrc/src/vcpkg/vcpkgpaths.cpp
+++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp
@@ -4,6 +4,7 @@
#include <vcpkg/base/files.h>
#include <vcpkg/base/system.h>
#include <vcpkg/base/util.h>
+#include <vcpkg/build.h>
#include <vcpkg/metrics.h>
#include <vcpkg/packagespec.h>
#include <vcpkg/vcpkgpaths.h>
@@ -91,9 +92,10 @@ namespace vcpkg
tool_name,
version_as_string);
const fs::path script = scripts_folder / "fetchDependency.ps1";
- const std::string title = "Fetching %s version %s (No sufficient installed version was found)";
- const std::string output =
- System::powershell_execute_and_capture_output(title, script, Strings::format("-Dependency %s", tool_name));
+ const std::string title = Strings::format(
+ "Fetching %s version %s (No sufficient installed version was found)", tool_name, version_as_string);
+ const System::PowershellParameter dependency_param("Dependency", tool_name);
+ const std::string output = System::powershell_execute_and_capture_output(title, script, {dependency_param});
const std::vector<std::string> dependency_path = keep_data_lines(output);
Checks::check_exit(
@@ -112,14 +114,20 @@ namespace vcpkg
static fs::path get_cmake_path(const fs::path& downloads_folder, const fs::path& scripts_folder)
{
- static constexpr std::array<int, 3> EXPECTED_VERSION = {3, 9, 5};
+#if defined(_WIN32)
+ static constexpr std::array<int, 3> EXPECTED_VERSION = {3, 10, 0};
+#else
+ static constexpr std::array<int, 3> EXPECTED_VERSION = {3, 5, 1};
+#endif
static const std::string VERSION_CHECK_ARGUMENTS = "--version";
- const fs::path downloaded_copy = downloads_folder / "cmake-3.9.5-win32-x86" / "bin" / "cmake.exe";
const std::vector<fs::path> from_path = Files::find_from_PATH("cmake");
std::vector<fs::path> candidate_paths;
+ const fs::path downloaded_copy = downloads_folder / "cmake-3.10.0-win32-x86" / "bin" / "cmake.exe";
+#if defined(_WIN32)
candidate_paths.push_back(downloaded_copy);
+#endif
candidate_paths.insert(candidate_paths.end(), from_path.cbegin(), from_path.cend());
#if defined(_WIN32)
candidate_paths.push_back(System::get_program_files_platform_bitness() / "CMake" / "bin" / "cmake.exe");
@@ -158,14 +166,20 @@ namespace vcpkg
fs::path get_git_path(const fs::path& downloads_folder, const fs::path& scripts_folder)
{
+#if defined(_WIN32)
static constexpr std::array<int, 3> EXPECTED_VERSION = {2, 15, 0};
+#else
+ static constexpr std::array<int, 3> EXPECTED_VERSION = {2, 7, 4};
+#endif
static const std::string VERSION_CHECK_ARGUMENTS = "--version";
- const fs::path downloaded_copy = downloads_folder / "MinGit-2.15.0-32-bit" / "cmd" / "git.exe";
const std::vector<fs::path> from_path = Files::find_from_PATH("git");
+ const fs::path downloaded_copy = downloads_folder / "MinGit-2.15.0-32-bit" / "cmd" / "git.exe";
std::vector<fs::path> candidate_paths;
+#if defined(_WIN32)
candidate_paths.push_back(downloaded_copy);
+#endif
candidate_paths.insert(candidate_paths.end(), from_path.cbegin(), from_path.cend());
#if defined(_WIN32)
candidate_paths.push_back(System::get_program_files_platform_bitness() / "git" / "cmd" / "git.exe");
@@ -267,7 +281,6 @@ namespace vcpkg
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))
{
@@ -371,6 +384,7 @@ namespace vcpkg
std::vector<fs::path> paths_examined;
std::vector<Toolset> found_toolsets;
+ std::vector<Toolset> excluded_toolsets;
const std::vector<VisualStudioInstance> vs_instances = get_visual_studio_instances(paths);
const bool v140_is_available = Util::find_if(vs_instances, [&](const VisualStudioInstance& vs_instance) {
@@ -427,17 +441,28 @@ namespace vcpkg
paths_examined.push_back(dumpbin_path);
if (fs.exists(dumpbin_path))
{
- found_toolsets.push_back(Toolset{
- vs_instance.root_path, dumpbin_path, vcvarsall_bat, {}, V_141, supported_architectures});
+ const Toolset v141toolset = Toolset{
+ vs_instance.root_path, dumpbin_path, vcvarsall_bat, {}, V_141, supported_architectures};
+
+ auto english_language_pack = dumpbin_path.parent_path() / "1033";
+
+ if (!fs.exists(english_language_pack))
+ {
+ excluded_toolsets.push_back(v141toolset);
+ break;
+ }
+
+ found_toolsets.push_back(v141toolset);
if (v140_is_available)
{
- found_toolsets.push_back(Toolset{vs_instance.root_path,
- dumpbin_path,
- vcvarsall_bat,
- {"-vcvars_ver=14.0"},
- V_140,
- supported_architectures});
+ const Toolset v140toolset = Toolset{vs_instance.root_path,
+ dumpbin_path,
+ vcvarsall_bat,
+ {"-vcvars_ver=14.0"},
+ V_140,
+ supported_architectures};
+ found_toolsets.push_back(v140toolset);
}
break;
@@ -447,44 +472,66 @@ namespace vcpkg
continue;
}
- if (major_version == "14")
+ if (major_version == "14" || major_version == "12")
{
const fs::path vcvarsall_bat = vs_instance.root_path / "VC" / "vcvarsall.bat";
paths_examined.push_back(vcvarsall_bat);
if (fs.exists(vcvarsall_bat))
{
- const fs::path vs2015_dumpbin_exe = vs_instance.root_path / "VC" / "bin" / "dumpbin.exe";
- paths_examined.push_back(vs2015_dumpbin_exe);
+ const fs::path vs_dumpbin_exe = vs_instance.root_path / "VC" / "bin" / "dumpbin.exe";
+ paths_examined.push_back(vs_dumpbin_exe);
- const fs::path vs2015_bin_dir = vcvarsall_bat.parent_path() / "bin";
+ const fs::path vs_bin_dir = vcvarsall_bat.parent_path() / "bin";
std::vector<ToolsetArchOption> supported_architectures;
- if (fs.exists(vs2015_bin_dir / "vcvars32.bat"))
+ if (fs.exists(vs_bin_dir / "vcvars32.bat"))
supported_architectures.push_back({"x86", CPU::X86, CPU::X86});
- if (fs.exists(vs2015_bin_dir / "amd64\\vcvars64.bat"))
+ if (fs.exists(vs_bin_dir / "amd64\\vcvars64.bat"))
supported_architectures.push_back({"x64", CPU::X64, CPU::X64});
- if (fs.exists(vs2015_bin_dir / "x86_amd64\\vcvarsx86_amd64.bat"))
+ if (fs.exists(vs_bin_dir / "x86_amd64\\vcvarsx86_amd64.bat"))
supported_architectures.push_back({"x86_amd64", CPU::X86, CPU::X64});
- if (fs.exists(vs2015_bin_dir / "x86_arm\\vcvarsx86_arm.bat"))
+ if (fs.exists(vs_bin_dir / "x86_arm\\vcvarsx86_arm.bat"))
supported_architectures.push_back({"x86_arm", CPU::X86, CPU::ARM});
- if (fs.exists(vs2015_bin_dir / "amd64_x86\\vcvarsamd64_x86.bat"))
+ if (fs.exists(vs_bin_dir / "amd64_x86\\vcvarsamd64_x86.bat"))
supported_architectures.push_back({"amd64_x86", CPU::X64, CPU::X86});
- if (fs.exists(vs2015_bin_dir / "amd64_arm\\vcvarsamd64_arm.bat"))
+ if (fs.exists(vs_bin_dir / "amd64_arm\\vcvarsamd64_arm.bat"))
supported_architectures.push_back({"amd64_arm", CPU::X64, CPU::ARM});
- if (fs.exists(vs2015_dumpbin_exe))
+ if (fs.exists(vs_dumpbin_exe))
{
- found_toolsets.push_back({vs_instance.root_path,
- vs2015_dumpbin_exe,
- vcvarsall_bat,
- {},
- V_140,
- supported_architectures});
+ const Toolset toolset = {vs_instance.root_path,
+ vs_dumpbin_exe,
+ vcvarsall_bat,
+ {},
+ major_version == "14" ? V_140 : V_120,
+ supported_architectures};
+
+ auto english_language_pack = vs_dumpbin_exe.parent_path() / "1033";
+
+ if (!fs.exists(english_language_pack))
+ {
+ excluded_toolsets.push_back(toolset);
+ break;
+ }
+
+ found_toolsets.push_back(toolset);
}
}
}
}
+ if (!excluded_toolsets.empty())
+ {
+ System::println(
+ System::Color::warning,
+ "Warning: The following VS instances are exluded because the English language pack is unavailable.");
+ for (const Toolset& toolset : excluded_toolsets)
+ {
+ System::println(" %s", toolset.visual_studio_root_path.u8string());
+ }
+ System::println(System::Color::warning, "Please install the English language pack.");
+ }
+
if (found_toolsets.empty())
{
System::println(System::Color::error, "Could not locate a complete toolset.");
@@ -499,16 +546,36 @@ namespace vcpkg
return found_toolsets;
}
- const Toolset& VcpkgPaths::get_toolset(const Optional<std::string>& toolset_version,
- const Optional<fs::path>& visual_studio_path) const
+ const Toolset& VcpkgPaths::get_toolset(const Build::PreBuildInfo& prebuildinfo) const
{
+ if (prebuildinfo.external_toolchain_file)
+ {
+ static Toolset external_toolset = []() -> Toolset {
+ Toolset ret;
+ ret.dumpbin = "";
+ ret.supported_architectures = {
+ ToolsetArchOption{"", System::get_host_processor(), System::get_host_processor()}};
+#if defined(_WIN32)
+ ret.vcvarsall = "cmd";
+ ret.vcvarsall_options = {"/c", "echo done"};
+#else
+ ret.vcvarsall = "true";
+ ret.vcvarsall_options = {};
+#endif
+ ret.version = "external";
+ ret.visual_studio_root_path = "";
+ return ret;
+ }();
+ return external_toolset;
+ }
+
// Invariant: toolsets are non-empty and sorted with newest at back()
const std::vector<Toolset>& vs_toolsets =
this->toolsets.get_lazy([this]() { return find_toolset_instances(*this); });
std::vector<const Toolset*> candidates = Util::element_pointers(vs_toolsets);
- const auto tsv = toolset_version.get();
- const auto vsp = visual_studio_path.get();
+ const auto tsv = prebuildinfo.platform_toolset.get();
+ const auto vsp = prebuildinfo.visual_studio_path.get();
if (tsv && vsp)
{
@@ -542,6 +609,7 @@ namespace vcpkg
vs_root_path.generic_string());
}
+ Checks::check_exit(VCPKG_LINE_INFO, !candidates.empty(), "No suitable Visual Studio instances were found");
return *candidates.front();
}
diff --git a/toolsrc/vcpkg.sln b/toolsrc/vcpkg.sln
index c97756c21..c2df757fc 100644
--- a/toolsrc/vcpkg.sln
+++ b/toolsrc/vcpkg.sln
@@ -11,6 +11,51 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vcpkgmetricsuploader", "vcp
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vcpkgtest", "vcpkgtest\vcpkgtest.vcxproj", "{F27B8DB0-1279-4AF8-A2E3-1D49C4F0220D}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{F5893B21-EA71-4432-84D6-5FB0E0461A2A}"
+ ProjectSection(SolutionItems) = preProject
+ ..\scripts\bootstrap.ps1 = ..\scripts\bootstrap.ps1
+ ..\scripts\fetchDependency.ps1 = ..\scripts\fetchDependency.ps1
+ ..\scripts\findAnyMSBuildWithCppPlatformToolset.ps1 = ..\scripts\findAnyMSBuildWithCppPlatformToolset.ps1
+ ..\scripts\findFileRecursivelyUp.ps1 = ..\scripts\findFileRecursivelyUp.ps1
+ ..\scripts\findVisualStudioInstallationInstances.ps1 = ..\scripts\findVisualStudioInstallationInstances.ps1
+ ..\scripts\get_triplet_environment.cmake = ..\scripts\get_triplet_environment.cmake
+ ..\scripts\getProgramFiles32bit.ps1 = ..\scripts\getProgramFiles32bit.ps1
+ ..\scripts\getProgramFilesPlatformBitness.ps1 = ..\scripts\getProgramFilesPlatformBitness.ps1
+ ..\scripts\getWindowsSDK.ps1 = ..\scripts\getWindowsSDK.ps1
+ ..\scripts\internalCI.ps1 = ..\scripts\internalCI.ps1
+ ..\scripts\ports.cmake = ..\scripts\ports.cmake
+ ..\scripts\SHA256Hash.ps1 = ..\scripts\SHA256Hash.ps1
+ ..\scripts\VcpkgPowershellUtils.ps1 = ..\scripts\VcpkgPowershellUtils.ps1
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cmake", "cmake", "{A0122231-04D5-420B-81CA-7960946E5E65}"
+ ProjectSection(SolutionItems) = preProject
+ ..\scripts\cmake\vcpkg_acquire_msys.cmake = ..\scripts\cmake\vcpkg_acquire_msys.cmake
+ ..\scripts\cmake\vcpkg_apply_patches.cmake = ..\scripts\cmake\vcpkg_apply_patches.cmake
+ ..\scripts\cmake\vcpkg_build_cmake.cmake = ..\scripts\cmake\vcpkg_build_cmake.cmake
+ ..\scripts\cmake\vcpkg_build_msbuild.cmake = ..\scripts\cmake\vcpkg_build_msbuild.cmake
+ ..\scripts\cmake\vcpkg_build_qmake.cmake = ..\scripts\cmake\vcpkg_build_qmake.cmake
+ ..\scripts\cmake\vcpkg_common_functions.cmake = ..\scripts\cmake\vcpkg_common_functions.cmake
+ ..\scripts\cmake\vcpkg_configure_cmake.cmake = ..\scripts\cmake\vcpkg_configure_cmake.cmake
+ ..\scripts\cmake\vcpkg_configure_meson.cmake = ..\scripts\cmake\vcpkg_configure_meson.cmake
+ ..\scripts\cmake\vcpkg_configure_qmake.cmake = ..\scripts\cmake\vcpkg_configure_qmake.cmake
+ ..\scripts\cmake\vcpkg_copy_pdbs.cmake = ..\scripts\cmake\vcpkg_copy_pdbs.cmake
+ ..\scripts\cmake\vcpkg_copy_tool_dependencies.cmake = ..\scripts\cmake\vcpkg_copy_tool_dependencies.cmake
+ ..\scripts\cmake\vcpkg_download_distfile.cmake = ..\scripts\cmake\vcpkg_download_distfile.cmake
+ ..\scripts\cmake\vcpkg_execute_required_process.cmake = ..\scripts\cmake\vcpkg_execute_required_process.cmake
+ ..\scripts\cmake\vcpkg_execute_required_process_repeat.cmake = ..\scripts\cmake\vcpkg_execute_required_process_repeat.cmake
+ ..\scripts\cmake\vcpkg_extract_source_archive.cmake = ..\scripts\cmake\vcpkg_extract_source_archive.cmake
+ ..\scripts\cmake\vcpkg_find_acquire_program.cmake = ..\scripts\cmake\vcpkg_find_acquire_program.cmake
+ ..\scripts\cmake\vcpkg_fixup_cmake_targets.cmake = ..\scripts\cmake\vcpkg_fixup_cmake_targets.cmake
+ ..\scripts\cmake\vcpkg_from_bitbucket.cmake = ..\scripts\cmake\vcpkg_from_bitbucket.cmake
+ ..\scripts\cmake\vcpkg_from_github.cmake = ..\scripts\cmake\vcpkg_from_github.cmake
+ ..\scripts\cmake\vcpkg_get_program_files_32_bit.cmake = ..\scripts\cmake\vcpkg_get_program_files_32_bit.cmake
+ ..\scripts\cmake\vcpkg_get_program_files_platform_bitness.cmake = ..\scripts\cmake\vcpkg_get_program_files_platform_bitness.cmake
+ ..\scripts\cmake\vcpkg_get_windows_sdk.cmake = ..\scripts\cmake\vcpkg_get_windows_sdk.cmake
+ ..\scripts\cmake\vcpkg_install_cmake.cmake = ..\scripts\cmake\vcpkg_install_cmake.cmake
+ ..\scripts\cmake\vcpkg_install_meson.cmake = ..\scripts\cmake\vcpkg_install_meson.cmake
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -55,4 +100,10 @@ Global
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {A0122231-04D5-420B-81CA-7960946E5E65} = {F5893B21-EA71-4432-84D6-5FB0E0461A2A}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {DEDCC7AF-0FE6-4387-9FFE-495D6C1AEE1B}
+ EndGlobalSection
EndGlobal
diff --git a/toolsrc/vcpkg/vcpkg.vcxproj b/toolsrc/vcpkg/vcpkg.vcxproj
index fd8e5d33e..d15e8dd44 100644
--- a/toolsrc/vcpkg/vcpkg.vcxproj
+++ b/toolsrc/vcpkg/vcpkg.vcxproj
@@ -138,6 +138,9 @@
<ItemGroup>
<ClCompile Include="..\src\vcpkg.cpp" />
</ItemGroup>
+ <ItemGroup>
+ <Text Include="..\VERSION.txt" />
+ </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
diff --git a/toolsrc/vcpkg/vcpkg.vcxproj.filters b/toolsrc/vcpkg/vcpkg.vcxproj.filters
index ca9723bbf..45a6238f6 100644
--- a/toolsrc/vcpkg/vcpkg.vcxproj.filters
+++ b/toolsrc/vcpkg/vcpkg.vcxproj.filters
@@ -19,4 +19,9 @@
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
+ <ItemGroup>
+ <Text Include="..\VERSION.txt">
+ <Filter>Source Files</Filter>
+ </Text>
+ </ItemGroup>
</Project> \ No newline at end of file
diff --git a/toolsrc/vcpkglib/vcpkglib.vcxproj b/toolsrc/vcpkglib/vcpkglib.vcxproj
index ae332e015..455891f85 100644
--- a/toolsrc/vcpkglib/vcpkglib.vcxproj
+++ b/toolsrc/vcpkglib/vcpkglib.vcxproj
@@ -178,6 +178,7 @@
<ClInclude Include="..\include\vcpkg\statusparagraphs.h" />
<ClInclude Include="..\include\vcpkg\triplet.h" />
<ClInclude Include="..\include\vcpkg\update.h" />
+ <ClInclude Include="..\include\vcpkg\userconfig.h" />
<ClInclude Include="..\include\vcpkg\vcpkgcmdarguments.h" />
<ClInclude Include="..\include\vcpkg\vcpkglib.h" />
<ClInclude Include="..\include\vcpkg\vcpkgpaths.h" />
@@ -219,6 +220,7 @@
<ClCompile Include="..\src\vcpkg\commands.owns.cpp" />
<ClCompile Include="..\src\vcpkg\commands.portsdiff.cpp" />
<ClCompile Include="..\src\vcpkg\commands.search.cpp" />
+ <ClCompile Include="..\src\vcpkg\commands.upgrade.cpp" />
<ClCompile Include="..\src\vcpkg\commands.version.cpp" />
<ClCompile Include="..\src\vcpkg\dependencies.cpp" />
<ClCompile Include="..\src\vcpkg\export.cpp" />
@@ -240,6 +242,7 @@
<ClCompile Include="..\src\vcpkg\statusparagraphs.cpp" />
<ClCompile Include="..\src\vcpkg\triplet.cpp" />
<ClCompile Include="..\src\vcpkg\update.cpp" />
+ <ClCompile Include="..\src\vcpkg\userconfig.cpp" />
<ClCompile Include="..\src\vcpkg\vcpkgcmdarguments.cpp" />
<ClCompile Include="..\src\vcpkg\vcpkglib.cpp" />
<ClCompile Include="..\src\vcpkg\vcpkgpaths.cpp" />
diff --git a/toolsrc/vcpkglib/vcpkglib.vcxproj.filters b/toolsrc/vcpkglib/vcpkglib.vcxproj.filters
index e902bffbb..f8f517ad7 100644
--- a/toolsrc/vcpkglib/vcpkglib.vcxproj.filters
+++ b/toolsrc/vcpkglib/vcpkglib.vcxproj.filters
@@ -192,6 +192,12 @@
<ClCompile Include="..\src\vcpkg\base\system.cpp">
<Filter>Source Files\vcpkg\base</Filter>
</ClCompile>
+ <ClCompile Include="..\src\vcpkg\userconfig.cpp">
+ <Filter>Source Files\vcpkg</Filter>
+ </ClCompile>
+ <ClCompile Include="..\src\vcpkg\commands.upgrade.cpp">
+ <Filter>Source Files\vcpkg</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\include\pch.h">
@@ -332,5 +338,8 @@
<ClInclude Include="..\include\vcpkg\export.ifw.h">
<Filter>Header Files\vcpkg</Filter>
</ClInclude>
+ <ClInclude Include="..\include\vcpkg\userconfig.h">
+ <Filter>Header Files\vcpkg</Filter>
+ </ClInclude>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/toolsrc/vcpkgtest/vcpkgtest.vcxproj b/toolsrc/vcpkgtest/vcpkgtest.vcxproj
index 9eafc1ada..166216c45 100644
--- a/toolsrc/vcpkgtest/vcpkgtest.vcxproj
+++ b/toolsrc/vcpkgtest/vcpkgtest.vcxproj
@@ -20,6 +20,7 @@
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\tests.arguments.cpp" />
+ <ClCompile Include="..\src\tests.chrono.cpp" />
<ClCompile Include="..\src\tests.dependencies.cpp" />
<ClCompile Include="..\src\tests.packagespec.cpp" />
<ClCompile Include="..\src\tests.paragraph.cpp" />
diff --git a/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters b/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters
index 2121f9782..422f9298e 100644
--- a/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters
+++ b/toolsrc/vcpkgtest/vcpkgtest.vcxproj.filters
@@ -42,6 +42,9 @@
<ClCompile Include="..\src\tests.utils.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="..\src\tests.chrono.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\include\tests.pch.h">