aboutsummaryrefslogtreecommitdiff
path: root/ports
diff options
context:
space:
mode:
Diffstat (limited to 'ports')
-rw-r--r--ports/abseil/CMakeLists.txt96
-rw-r--r--ports/abseil/CONTROL7
-rw-r--r--ports/abseil/portfile.cmake36
-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/no-pragma-warning.patch14
-rw-r--r--ports/alac-decoder/portfile.cmake31
-rw-r--r--ports/alac-decoder/remove_stdint_headers.patch193
-rw-r--r--ports/alac/CMakeLists.txt65
-rw-r--r--ports/alac/CONTROL3
-rw-r--r--ports/alac/portfile.cmake25
-rw-r--r--ports/alembic/CONTROL4
-rw-r--r--ports/alembic/bypass-findhdf5.patch30
-rw-r--r--ports/alembic/fix-hdf5link.patch17
-rw-r--r--ports/alembic/portfile.cmake57
-rw-r--r--ports/allegro5/CONTROL4
-rw-r--r--ports/allegro5/fix-pdb-install.patch34
-rw-r--r--ports/allegro5/portfile.cmake94
-rw-r--r--ports/anax/CONTROL2
-rw-r--r--ports/anax/portfile.cmake18
-rw-r--r--ports/angle/001-fix-uwp.patch113
-rw-r--r--ports/angle/CMakeLists.txt210
-rw-r--r--ports/angle/CONTROL4
-rw-r--r--ports/angle/commit.h3
-rw-r--r--ports/angle/portfile.cmake40
-rw-r--r--ports/antlr4/CONTROL2
-rw-r--r--ports/antlr4/portfile.cmake14
-rw-r--r--ports/antlr4/static.patch16
-rw-r--r--ports/apr-util/CONTROL4
-rw-r--r--ports/apr-util/portfile.cmake37
-rw-r--r--ports/apr-util/use-vcpkg-expat.patch128
-rw-r--r--ports/apr/CONTROL2
-rw-r--r--ports/apr/portfile.cmake21
-rw-r--r--ports/arb/CMakeLists.txt94
-rw-r--r--ports/arb/CONTROL4
-rw-r--r--ports/arb/portfile.cmake32
-rw-r--r--ports/args/CONTROL3
-rw-r--r--ports/args/portfile.cmake21
-rw-r--r--ports/armadillo/ArmadilloConfig.cmake4
-rw-r--r--ports/armadillo/CONTROL3
-rw-r--r--ports/armadillo/disable-wrapper.patch50
-rw-r--r--ports/armadillo/portfile.cmake39
-rw-r--r--ports/armadillo/usage5
-rw-r--r--ports/arrow/CONTROL4
-rw-r--r--ports/arrow/all.patch130
-rw-r--r--ports/arrow/portfile.cmake58
-rw-r--r--ports/asio/CONTROL2
-rw-r--r--ports/asio/portfile.cmake24
-rw-r--r--ports/asmjit/CONTROL3
-rw-r--r--ports/asmjit/portfile.cmake40
-rw-r--r--ports/assimp/CONTROL2
-rw-r--r--ports/assimp/dont-overwrite-prefix-path.patch12
-rw-r--r--ports/assimp/portfile.cmake61
-rw-r--r--ports/assimp/uninitialized-variable.patch13
-rw-r--r--ports/atk/CMakeLists.txt31
-rw-r--r--ports/atk/CONTROL2
-rw-r--r--ports/atk/portfile.cmake5
-rw-r--r--ports/atkmm/CONTROL4
-rw-r--r--ports/atkmm/COPYING510
-rw-r--r--ports/atkmm/README2
-rw-r--r--ports/atkmm/fix_charset.patch98
-rw-r--r--ports/atkmm/fix_properties.patch306
-rw-r--r--ports/atkmm/msvc_recommended_pragmas.h34
-rw-r--r--ports/atkmm/portfile.cmake70
-rw-r--r--ports/aubio/CMakeLists.txt101
-rw-r--r--ports/aubio/CONTROL4
-rw-r--r--ports/aubio/portfile.cmake36
-rw-r--r--ports/aurora/CONTROL3
-rw-r--r--ports/aurora/portfile.cmake11
-rw-r--r--ports/avro-c/CONTROL4
-rw-r--r--ports/avro-c/avro-pr-217.patch421
-rw-r--r--ports/avro-c/avro.patch349
-rw-r--r--ports/avro-c/portfile.cmake33
-rw-r--r--ports/aws-sdk-cpp/CONTROL422
-rw-r--r--ports/aws-sdk-cpp/CONTROL.in5
-rw-r--r--ports/aws-sdk-cpp/compute_build_only.cmake418
-rw-r--r--ports/aws-sdk-cpp/disable_warning_as_error.patch13
-rw-r--r--ports/aws-sdk-cpp/drop_git.patch13
-rw-r--r--ports/aws-sdk-cpp/generateFeatures.ps151
-rw-r--r--ports/aws-sdk-cpp/portfile.cmake100
-rw-r--r--ports/azmq/CONTROL6
-rw-r--r--ports/azmq/portfile.cmake15
-rw-r--r--ports/azure-c-shared-utility/CONTROL3
-rw-r--r--ports/azure-c-shared-utility/portfile.cmake40
-rw-r--r--ports/azure-iot-sdk-c/CONTROL4
-rw-r--r--ports/azure-iot-sdk-c/improve-external-deps-2.patch20
-rw-r--r--ports/azure-iot-sdk-c/improve-external-deps.patch94
-rw-r--r--ports/azure-iot-sdk-c/portfile.cmake47
-rw-r--r--ports/azure-storage-cpp/CONTROL6
-rw-r--r--ports/azure-storage-cpp/cmake.patch64
-rw-r--r--ports/azure-storage-cpp/portfile.cmake17
-rw-r--r--ports/azure-storage-cpp/pplx-do-while.patch52
-rw-r--r--ports/azure-storage-cpp/static-builds.patch13
-rw-r--r--ports/azure-uamqp-c/CONTROL4
-rw-r--r--ports/azure-uamqp-c/glob-headers.patch14
-rw-r--r--ports/azure-uamqp-c/portfile.cmake41
-rw-r--r--ports/azure-uhttp-c/CONTROL4
-rw-r--r--ports/azure-uhttp-c/portfile.cmake40
-rw-r--r--ports/azure-umqtt-c/CONTROL4
-rw-r--r--ports/azure-umqtt-c/portfile.cmake39
-rw-r--r--ports/beast/CONTROL6
-rw-r--r--ports/beast/portfile.cmake14
-rw-r--r--ports/benchmark/CONTROL4
-rw-r--r--ports/benchmark/fix-cmakelists.patch27
-rw-r--r--ports/benchmark/portfile.cmake19
-rw-r--r--ports/berkeleydb/CMakeLists.txt276
-rw-r--r--ports/berkeleydb/CONTROL3
-rw-r--r--ports/berkeleydb/portfile.cmake27
-rw-r--r--ports/bigint/CMakeLists.txt41
-rw-r--r--ports/bigint/CONTROL3
-rw-r--r--ports/bigint/portfile.cmake27
-rw-r--r--ports/bitserializer/CONTROL4
-rw-r--r--ports/bitserializer/portfile.cmake13
-rw-r--r--ports/blaze/CONTROL4
-rw-r--r--ports/blaze/no-absolute-paths-in-install.patch33
-rw-r--r--ports/blaze/portfile.cmake31
-rw-r--r--ports/blosc/CONTROL4
-rw-r--r--ports/blosc/portfile.cmake50
-rw-r--r--ports/bond/0001_boost_static_libs.patch23
-rw-r--r--ports/bond/0002_omit_rapidjson.patch4
-rw-r--r--ports/bond/CONTROL4
-rw-r--r--ports/bond/portfile.cmake26
-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.cmake16
-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.cmake64
-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.cmake16
-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.cmake21
-rw-r--r--ports/boost-container-hash/CONTROL5
-rw-r--r--ports/boost-container-hash/portfile.cmake14
-rw-r--r--ports/boost-container/CONTROL5
-rw-r--r--ports/boost-container/portfile.cmake16
-rw-r--r--ports/boost-context/CONTROL5
-rw-r--r--ports/boost-context/portfile.cmake21
-rw-r--r--ports/boost-contract/CONTROL5
-rw-r--r--ports/boost-contract/portfile.cmake16
-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.cmake16
-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.cmake16
-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.cmake19
-rw-r--r--ports/boost-fiber/CONTROL5
-rw-r--r--ports/boost-fiber/portfile.cmake21
-rw-r--r--ports/boost-filesystem/CONTROL5
-rw-r--r--ports/boost-filesystem/portfile.cmake16
-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.cmake14
-rw-r--r--ports/boost-graph/CONTROL5
-rw-r--r--ports/boost-graph/portfile.cmake16
-rw-r--r--ports/boost-hana-msvc/CONTROL4
-rw-r--r--ports/boost-hana-msvc/portfile.cmake12
-rw-r--r--ports/boost-hana/CONTROL5
-rw-r--r--ports/boost-hana/portfile.cmake20
-rw-r--r--ports/boost-heap/CONTROL5
-rw-r--r--ports/boost-heap/portfile.cmake14
-rw-r--r--ports/boost-hof/CONTROL5
-rw-r--r--ports/boost-hof/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/CMakeLists.txt37
-rw-r--r--ports/boost-iostreams/CONTROL5
-rw-r--r--ports/boost-iostreams/portfile.cmake30
-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/cmake-fragment.cmake10
-rw-r--r--ports/boost-locale/portfile.cmake30
-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.cmake29
-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.cmake16
-rw-r--r--ports/boost-metaparse/CONTROL5
-rw-r--r--ports/boost-metaparse/portfile.cmake14
-rw-r--r--ports/boost-modular-build-helper/CMakeLists.txt134
-rw-r--r--ports/boost-modular-build-helper/CONTROL2
-rw-r--r--ports/boost-modular-build-helper/Jamroot.jam153
-rw-r--r--ports/boost-modular-build-helper/boost-modular-build.cmake324
-rw-r--r--ports/boost-modular-build-helper/nothing.bat0
-rw-r--r--ports/boost-modular-build-helper/portfile.cmake12
-rw-r--r--ports/boost-modular-build-helper/user-config.jam50
-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.cmake16
-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.cmake16
-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.cmake16
-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.cmake21
-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.cmake16
-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.cmake22
-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.cmake16
-rw-r--r--ports/boost-signals/CONTROL5
-rw-r--r--ports/boost-signals/portfile.cmake16
-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.cmake16
-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.cmake16
-rw-r--r--ports/boost-test/CONTROL5
-rw-r--r--ports/boost-test/portfile.cmake35
-rw-r--r--ports/boost-thread/CONTROL5
-rw-r--r--ports/boost-thread/b2-options.cmake1
-rw-r--r--ports/boost-thread/portfile.cmake21
-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.cmake16
-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.cmake16
-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/boost-modular-headers.cmake24
-rw-r--r--ports/boost-vcpkg-helpers/generate-ports.ps1421
-rw-r--r--ports/boost-vcpkg-helpers/portfile.cmake7
-rw-r--r--ports/boost-vcpkg-helpers/post-source-stubs/context.cmake5
-rw-r--r--ports/boost-vcpkg-helpers/post-source-stubs/fiber.cmake5
-rw-r--r--ports/boost-vcpkg-helpers/post-source-stubs/log.cmake13
-rw-r--r--ports/boost-vcpkg-helpers/post-source-stubs/python.cmake5
-rw-r--r--ports/boost-vcpkg-helpers/post-source-stubs/test.cmake5
-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.cmake16
-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/0001-Fix-boost-ICU-support.patch166
-rw-r--r--ports/boost/CONTROL13
-rw-r--r--ports/boost/desktop/user-config.jam31
-rw-r--r--ports/boost/portfile.cmake296
-rw-r--r--ports/boost/usage5
-rw-r--r--ports/boost/uwp/user-config.jam8
-rw-r--r--ports/box2d/CMakeLists.txt21
-rw-r--r--ports/box2d/CONTROL2
-rw-r--r--ports/box2d/portfile.cmake55
-rw-r--r--ports/breakpad/CMakeLists.txt49
-rw-r--r--ports/breakpad/CONTROL4
-rw-r--r--ports/breakpad/portfile.cmake24
-rw-r--r--ports/brotli/CONTROL3
-rw-r--r--ports/brotli/portfile.cmake45
-rw-r--r--ports/brynet/CONTROL3
-rw-r--r--ports/brynet/portfile.cmake26
-rw-r--r--ports/bullet3/CONTROL2
-rw-r--r--ports/bullet3/portfile.cmake32
-rw-r--r--ports/butteraugli/CMakeLists.txt39
-rw-r--r--ports/butteraugli/CONTROL4
-rw-r--r--ports/butteraugli/missing_header.patch12
-rw-r--r--ports/butteraugli/portfile.cmake30
-rw-r--r--ports/bzip2/CONTROL2
-rw-r--r--ports/bzip2/portfile.cmake2
-rw-r--r--ports/bzip2/usage4
-rw-r--r--ports/c-ares/CONTROL4
-rw-r--r--ports/c-ares/portfile.cmake21
-rw-r--r--ports/caf/CONTROL4
-rw-r--r--ports/caf/openssl-version-override.patch14
-rw-r--r--ports/caf/portfile.cmake48
-rw-r--r--ports/caffe2/CONTROL4
-rw-r--r--ports/caffe2/msvc-fixes.patch396
-rw-r--r--ports/caffe2/portfile.cmake118
-rw-r--r--ports/cairo/CMakeLists.txt214
-rw-r--r--ports/cairo/CMakeLists_cairo.txt311
-rw-r--r--ports/cairo/CONTROL2
-rw-r--r--ports/cairo/export-only-in-shared-build.patch15
-rw-r--r--ports/cairo/portfile.cmake51
-rw-r--r--ports/cairomm/CONTROL4
-rw-r--r--ports/cairomm/cmake/FindSigC++.cmake2
-rw-r--r--ports/capstone/CONTROL3
-rw-r--r--ports/capstone/portfile.cmake51
-rw-r--r--ports/cartographer/CONTROL4
-rw-r--r--ports/cartographer/fix-find-packages.patch146
-rw-r--r--ports/cartographer/portfile.cmake40
-rw-r--r--ports/catch-classic/CONTROL5
-rw-r--r--ports/catch-classic/portfile.cmake18
-rw-r--r--ports/catch/CONTROL5
-rw-r--r--ports/catch/portfile.cmake27
-rw-r--r--ports/catch2/CONTROL4
-rw-r--r--ports/catch2/portfile.cmake30
-rw-r--r--ports/cccapstone/CONTROL4
-rw-r--r--ports/cccapstone/portfile.cmake11
-rw-r--r--ports/ccd/0001_fix_symbols_export.patch39
-rw-r--r--ports/ccd/CONTROL (renamed from ports/libccd/CONTROL)4
-rw-r--r--ports/ccd/portfile.cmake30
-rw-r--r--ports/ccfits/CONTROL4
-rw-r--r--ports/ccfits/dll_exports.patch495
-rw-r--r--ports/ccfits/portfile.cmake49
-rw-r--r--ports/cctz/CMakeLists.txt38
-rw-r--r--ports/cctz/CONTROL3
-rw-r--r--ports/cctz/portfile.cmake27
-rw-r--r--ports/celero/CONTROL3
-rw-r--r--ports/celero/portfile.cmake32
-rw-r--r--ports/cereal/CONTROL2
-rw-r--r--ports/cereal/portfile.cmake31
-rw-r--r--ports/ceres/CONTROL24
-rw-r--r--ports/ceres/portfile.cmake83
-rw-r--r--ports/cfitsio/CONTROL3
-rw-r--r--ports/cfitsio/portfile.cmake34
-rw-r--r--ports/cgal/CONTROL4
-rw-r--r--ports/cgal/portfile.cmake34
-rw-r--r--ports/cgicc/CMakeLists.txt115
-rw-r--r--ports/cgicc/CONTROL3
-rw-r--r--ports/cgicc/portfile.cmake25
-rw-r--r--ports/chaiscript/CONTROL3
-rw-r--r--ports/chaiscript/portfile.cmake25
-rw-r--r--ports/chakracore/CONTROL4
-rw-r--r--ports/chakracore/portfile.cmake78
-rw-r--r--ports/charls/CONTROL4
-rw-r--r--ports/chipmunk/CONTROL3
-rw-r--r--ports/chipmunk/portfile.cmake75
-rw-r--r--ports/chmlib/CMakeLists.txt23
-rw-r--r--ports/chmlib/CONTROL3
-rw-r--r--ports/chmlib/portfile.cmake34
-rw-r--r--ports/cimg/CMakeLists.txt21
-rw-r--r--ports/cimg/CONTROL3
-rw-r--r--ports/cimg/portfile.cmake23
-rw-r--r--ports/clapack/CONTROL2
-rw-r--r--ports/clapack/portfile.cmake2
-rw-r--r--ports/clara/CONTROL3
-rw-r--r--ports/clara/portfile.cmake11
-rw-r--r--ports/clblas/CONTROL4
-rw-r--r--ports/clblas/cmake.patch36
-rw-r--r--ports/clblas/portfile.cmake58
-rw-r--r--ports/clfft/CONTROL4
-rw-r--r--ports/clfft/portfile.cmake37
-rw-r--r--ports/clfft/tweak-install.patch28
-rw-r--r--ports/clockutils/CONTROL2
-rw-r--r--ports/cmark/CONTROL3
-rw-r--r--ports/cmark/portfile.cmake40
-rw-r--r--ports/console-bridge/CONTROL3
-rw-r--r--ports/console-bridge/portfile.cmake43
-rw-r--r--ports/console-bridge/static-macro.patch15
-rw-r--r--ports/coolprop/CONTROL4
-rw-r--r--ports/coolprop/portfile.cmake121
-rw-r--r--ports/corrade/CONTROL19
-rw-r--r--ports/corrade/portfile.cmake85
-rw-r--r--ports/cpp-redis/CONTROL4
-rw-r--r--ports/cpp-redis/portfile.cmake59
-rw-r--r--ports/cpp-redis/tacopie/CMakeLists.txt8
-rw-r--r--ports/cppcms/CONTROL4
-rw-r--r--ports/cppcms/portfile.cmake38
-rw-r--r--ports/cpprestsdk/0001_cmake.patch96
-rw-r--r--ports/cpprestsdk/0002_no_websocketpp_in_uwp.patch13
-rw-r--r--ports/cpprestsdk/CONTROL6
-rw-r--r--ports/cpprestsdk/portfile.cmake18
-rw-r--r--ports/cppunit/CONTROL2
-rw-r--r--ports/cppunit/portfile.cmake21
-rw-r--r--ports/cppwinrt/CONTROL2
-rw-r--r--ports/cppwinrt/portfile.cmake25
-rw-r--r--ports/cppzmq/CONTROL2
-rw-r--r--ports/cppzmq/portfile.cmake26
-rw-r--r--ports/cpr/CONTROL4
-rw-r--r--ports/cpr/enable-install.patch17
-rw-r--r--ports/cpr/portfile.cmake32
-rw-r--r--ports/crc32c/CONTROL3
-rw-r--r--ports/crc32c/portfile.cmake38
-rw-r--r--ports/crow/CONTROL3
-rw-r--r--ports/crow/portfile.cmake12
-rw-r--r--ports/cryptopp/CONTROL2
-rw-r--r--ports/cryptopp/cmake.patch15
-rw-r--r--ports/cryptopp/patch.patch12
-rw-r--r--ports/cryptopp/portfile.cmake42
-rw-r--r--ports/ctemplate/CMakeLists.txt96
-rw-r--r--ports/ctemplate/CONTROL3
-rw-r--r--ports/ctemplate/fix-msvc.patch17
-rw-r--r--ports/ctemplate/portfile.cmake25
-rw-r--r--ports/cuda/CONTROL2
-rw-r--r--ports/cuda/portfile.cmake16
-rw-r--r--ports/cunit/CMakeLists.txt61
-rw-r--r--ports/cunit/CONTROL3
-rw-r--r--ports/cunit/portfile.cmake23
-rw-r--r--ports/curl/0001_cmake.patch15
-rw-r--r--ports/curl/0002_fix_uwp.patch77
-rw-r--r--ports/curl/0003_fix_libraries.patch13
-rw-r--r--ports/curl/0004_nghttp2_staticlib.patch14
-rw-r--r--ports/curl/CONTROL24
-rw-r--r--ports/curl/portfile.cmake154
-rw-r--r--ports/curl/usage5
-rw-r--r--ports/cxxopts/CONTROL3
-rw-r--r--ports/cxxopts/portfile.cmake11
-rw-r--r--ports/date/CMakeLists.txt44
-rw-r--r--ports/date/CONTROL7
-rw-r--r--ports/date/fix-date.patch36
-rw-r--r--ports/date/portfile.cmake51
-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/CONTROL29
-rw-r--r--ports/devil/enable-static.patch26
-rw-r--r--ports/devil/portfile.cmake87
-rw-r--r--ports/dimcli/CONTROL3
-rw-r--r--ports/dimcli/portfile.cmake28
-rw-r--r--ports/directxmesh/CONTROL4
-rw-r--r--ports/directxmesh/portfile.cmake34
-rw-r--r--ports/directxtex/CONTROL2
-rw-r--r--ports/directxtex/portfile.cmake38
-rw-r--r--ports/directxtk/CONTROL2
-rw-r--r--ports/directxtk/portfile.cmake45
-rw-r--r--ports/directxtk12/portfile.cmake4
-rw-r--r--ports/dirent/CONTROL3
-rw-r--r--ports/dirent/portfile.cmake16
-rw-r--r--ports/discord-rpc/CONTROL3
-rw-r--r--ports/discord-rpc/portfile.cmake36
-rw-r--r--ports/dlfcn-win32/CONTROL2
-rw-r--r--ports/dlib/CONTROL8
-rw-r--r--ports/dlib/portfile.cmake90
-rw-r--r--ports/doctest/CONTROL2
-rw-r--r--ports/doctest/portfile.cmake4
-rw-r--r--ports/double-conversion/001-fix-arm.patch13
-rw-r--r--ports/double-conversion/CONTROL2
-rw-r--r--ports/double-conversion/portfile.cmake88
-rw-r--r--ports/draco/CONTROL4
-rw-r--r--ports/draco/portfile.cmake56
-rw-r--r--ports/duktape/CMakeLists.txt20
-rw-r--r--ports/duktape/CONTROL4
-rw-r--r--ports/duktape/duk_config.h.patch13
-rw-r--r--ports/duktape/portfile.cmake38
-rw-r--r--ports/dxut/portfile.cmake5
-rw-r--r--ports/eastl/CONTROL4
-rw-r--r--ports/eastl/portfile.cmake29
-rw-r--r--ports/ebml/CMakeLists.txt132
-rw-r--r--ports/ebml/CONTROL3
-rw-r--r--ports/ebml/EbmlConfig.cmake1
-rw-r--r--ports/ebml/export-endofstreamx.patch25
-rw-r--r--ports/ebml/portfile.cmake52
-rw-r--r--ports/ecm/CONTROL2
-rw-r--r--ports/ecm/portfile.cmake13
-rw-r--r--ports/eigen3/CONTROL2
-rw-r--r--ports/eigen3/portfile.cmake22
-rw-r--r--ports/embree/CONTROL4
-rw-r--r--ports/embree/portfile.cmake50
-rw-r--r--ports/enet/CMakeLists.txt81
-rw-r--r--ports/enet/CONTROL4
-rw-r--r--ports/enet/portfile.cmake38
-rw-r--r--ports/entityx/CONTROL2
-rw-r--r--ports/entityx/portfile.cmake4
-rw-r--r--ports/entt/CONTROL3
-rw-r--r--ports/entt/portfile.cmake18
-rw-r--r--ports/epsilon/0001-VS2015-provides-snprintf.patch51
-rw-r--r--ports/epsilon/0002-Add-CFLAGS-for-CRT-selection-and-warning-supression.patch81
-rw-r--r--ports/epsilon/CONTROL3
-rw-r--r--ports/epsilon/portfile.cmake99
-rw-r--r--ports/evpp/CONTROL4
-rw-r--r--ports/evpp/fix-rapidjson-1-1.patch159
-rw-r--r--ports/evpp/portfile.cmake45
-rw-r--r--ports/exiv2/CONTROL4
-rw-r--r--ports/exiv2/portfile.cmake37
-rw-r--r--ports/exiv2/use-iconv.patch37
-rw-r--r--ports/expat/CONTROL2
-rw-r--r--ports/expat/portfile.cmake27
-rw-r--r--ports/exprtk/CONTROL3
-rw-r--r--ports/exprtk/copyright8
-rw-r--r--ports/exprtk/portfile.cmake11
-rw-r--r--ports/fadbad/CONTROL3
-rw-r--r--ports/fadbad/portfile.cmake18
-rw-r--r--ports/fastcdr/CONTROL3
-rw-r--r--ports/fastcdr/install-cmake.patch26
-rw-r--r--ports/fastcdr/portfile.cmake45
-rw-r--r--ports/fastlz/CONTROL2
-rw-r--r--ports/fastrtps/CONTROL4
-rw-r--r--ports/fastrtps/fix-install.patch14
-rw-r--r--ports/fastrtps/portfile.cmake32
-rw-r--r--ports/fcl/0001_fix_package_detection.patch81
-rw-r--r--ports/fcl/0002-fix_dependencies.patch14
-rw-r--r--ports/fcl/CONTROL4
-rw-r--r--ports/fcl/portfile.cmake48
-rw-r--r--ports/fdk-aac/CMakeLists.txt206
-rw-r--r--ports/fdk-aac/CONTROL3
-rw-r--r--ports/fdk-aac/fdk-aac.def19
-rw-r--r--ports/fdk-aac/portfile.cmake22
-rw-r--r--ports/ffmpeg/CONTROL35
-rw-r--r--ports/ffmpeg/FindFFMPEG.cmake11
-rw-r--r--ports/ffmpeg/build.sh8
-rw-r--r--ports/ffmpeg/configure_opencv.patch11
-rw-r--r--ports/ffmpeg/create-lib-libraries.patch26
-rw-r--r--ports/ffmpeg/detect-openssl.patch25
-rw-r--r--ports/ffmpeg/portfile.cmake130
-rw-r--r--ports/fftw3/CMakeLists.txt96
-rw-r--r--ports/fftw3/CONTROL2
-rw-r--r--ports/fftw3/config.h393
-rw-r--r--ports/fftw3/portfile.cmake72
-rw-r--r--ports/flann/CONTROL3
-rw-r--r--ports/flann/Revert-fix-install-flann.patch41
-rw-r--r--ports/flann/export-all-symbols-of-flann-cpp.patch12
-rw-r--r--ports/flann/fix-install-flann.patch41
-rw-r--r--ports/flann/portfile.cmake51
-rw-r--r--ports/flatbuffers/CONTROL4
-rw-r--r--ports/flatbuffers/portfile.cmake31
-rw-r--r--ports/flint/CONTROL4
-rw-r--r--ports/flint/dll_flint.patch76
-rw-r--r--ports/flint/lib_flint.patch40
-rw-r--r--ports/flint/portfile.cmake111
-rw-r--r--ports/fltk/CONTROL4
-rw-r--r--ports/fltk/portfile.cmake41
-rw-r--r--ports/fluidsynth/CONTROL4
-rw-r--r--ports/fluidsynth/portfile.cmake34
-rw-r--r--ports/fmem/CONTROL3
-rw-r--r--ports/fmem/portfile.cmake25
-rw-r--r--ports/fmt/CONTROL2
-rw-r--r--ports/fmt/portfile.cmake26
-rw-r--r--ports/folly/CONTROL29
-rw-r--r--ports/folly/FindLZ4.cmake13
-rw-r--r--ports/folly/FindSnappy.cmake13
-rw-r--r--ports/folly/find-gflags.patch13
-rw-r--r--ports/folly/fix-cmakelists.patch89
-rw-r--r--ports/folly/fix-generators.patch36
-rw-r--r--ports/folly/portfile.cmake47
-rw-r--r--ports/fontconfig/CMakeLists.txt4
-rw-r--r--ports/fontconfig/CONTROL4
-rw-r--r--ports/fontconfig/include/config.h153
-rw-r--r--ports/fontconfig/include/fcobjshash.h108
-rw-r--r--ports/fontconfig/include/fcstdint.h3
-rw-r--r--ports/fontconfig/portfile.cmake33
-rw-r--r--ports/forest/CONTROL3
-rw-r--r--ports/forest/portfile.cmake15
-rw-r--r--ports/freeglut/CONTROL4
-rw-r--r--ports/freeglut/portfile.cmake30
-rw-r--r--ports/freeglut/usage4
-rw-r--r--ports/freeimage/CMakeLists.txt40
-rw-r--r--ports/freeimage/CONTROL4
-rw-r--r--ports/freeimage/FreeImageConfig-dynamic.h1
-rw-r--r--ports/freeimage/cmake/FindOpenEXR.cmake28
-rw-r--r--ports/freeimage/cmake/FindWEBP.cmake12
-rw-r--r--ports/freeimage/portfile.cmake3
-rw-r--r--ports/freeimage/use-external-openexr.patch44
-rw-r--r--ports/freerdp/CONTROL4
-rw-r--r--ports/freerdp/portfile.cmake31
-rw-r--r--ports/freetype-gl/0001-Use-external-Glew-and-Freetype.patch24
-rw-r--r--ports/freetype-gl/CONTROL4
-rw-r--r--ports/freetype-gl/portfile.cmake65
-rw-r--r--ports/freetype/0002-Add-CONFIG_INSTALL_PATH-option.patch36
-rw-r--r--ports/freetype/CONTROL4
-rw-r--r--ports/freetype/portfile.cmake38
-rw-r--r--ports/freetype/usage4
-rw-r--r--ports/freetype/vcpkg-cmake-wrapper.cmake10
-rw-r--r--ports/freexl/CONTROL5
-rw-r--r--ports/freexl/fix-makefiles.patch43
-rw-r--r--ports/freexl/fix-sources.patch35
-rw-r--r--ports/freexl/portfile.cmake90
-rw-r--r--ports/fuzzylite/CONTROL3
-rw-r--r--ports/fuzzylite/portfile.cmake46
-rw-r--r--ports/g2o/CONTROL4
-rw-r--r--ports/g2o/portfile.cmake45
-rw-r--r--ports/gainput/CONTROL3
-rw-r--r--ports/gainput/portfile.cmake47
-rw-r--r--ports/gamma/CMakeLists.txt44
-rw-r--r--ports/gamma/CONTROL4
-rw-r--r--ports/gamma/portfile.cmake27
-rw-r--r--ports/gdal/0001-Add-support-for-MSVC1900-backported-from-GDAL2.patch70
-rw-r--r--ports/gdal/0001-Fix-debug-crt-flags.patch27
-rw-r--r--ports/gdal/0002-Add-variable-CXX_CRT_FLAGS-to-allow-for-selection-of.patch50
-rw-r--r--ports/gdal/0003-Ensures-inclusion-of-PDB-in-release-dll-if-so-reques.patch26
-rw-r--r--ports/gdal/CONTROL2
-rw-r--r--ports/gdal/no-my-bool.patch12
-rw-r--r--ports/gdal/portfile.cmake46
-rw-r--r--ports/gdcm2/CONTROL2
-rw-r--r--ports/gdcm2/gdcmSystem.patch11
-rw-r--r--ports/gdcm2/portfile.cmake7
-rw-r--r--ports/gdcm2/socketxx.patch11
-rw-r--r--ports/gdk-pixbuf/CMakeLists.txt1
-rw-r--r--ports/gdk-pixbuf/CONTROL2
-rw-r--r--ports/gdk-pixbuf/portfile.cmake4
-rw-r--r--ports/geogram/CONTROL4
-rw-r--r--ports/geogram/Config.cmake.in4
-rw-r--r--ports/geogram/fix-cmake-config-and-install.patch209
-rw-r--r--ports/geogram/portfile.cmake67
-rw-r--r--ports/geographiclib/CONTROL2
-rw-r--r--ports/geos/CONTROL2
-rw-r--r--ports/geos/geos_c-static-support.patch110
-rw-r--r--ports/geos/portfile.cmake45
-rw-r--r--ports/gettext/0001-Fix-macro-definitions.patch33
-rw-r--r--ports/gettext/0002-Fix-uwp-build.patch77
-rw-r--r--ports/gettext/CMakeLists.txt96
-rw-r--r--ports/gettext/CMakeLists_libintl.txt54
-rw-r--r--ports/gettext/CONTROL3
-rw-r--r--ports/gettext/config.win32.h (renamed from ports/gettext/config.h)17
-rw-r--r--ports/gettext/libgnuintl.win32.h (renamed from ports/gettext/libgnuintl.h)2
-rw-r--r--ports/gettext/portfile.cmake36
-rw-r--r--ports/gettimeofday/CMakeLists.txt14
-rw-r--r--ports/gettimeofday/CONTROL3
-rw-r--r--ports/gettimeofday/LICENSE33
-rw-r--r--ports/gettimeofday/gettimeofday.c67
-rw-r--r--ports/gettimeofday/gettimeofday.def2
-rw-r--r--ports/gettimeofday/gettimeofday.h13
-rw-r--r--ports/gettimeofday/portfile.cmake11
-rw-r--r--ports/gflags/0001-patch-dir.patch13
-rw-r--r--ports/gflags/CONTROL2
-rw-r--r--ports/gflags/fix-install.patch46
-rw-r--r--ports/gflags/fix-static-linking.patch13
-rw-r--r--ports/gflags/portfile.cmake20
-rw-r--r--ports/gherkin-c/CONTROL3
-rw-r--r--ports/gherkin-c/portfile.cmake23
-rw-r--r--ports/giflib/CONTROL2
-rw-r--r--ports/gl2ps/CONTROL4
-rw-r--r--ports/gl2ps/portfile.cmake24
-rw-r--r--ports/gl2ps/separate-static-dynamic-build.patch214
-rw-r--r--ports/gl3w/0001-enable-shared-build.patch60
-rw-r--r--ports/gl3w/CMakeLists.txt41
-rw-r--r--ports/gl3w/CONTROL3
-rw-r--r--ports/gl3w/portfile.cmake53
-rw-r--r--ports/glbinding/CONTROL2
-rw-r--r--ports/glbinding/portfile.cmake20
-rw-r--r--ports/glew/CONTROL4
-rw-r--r--ports/glew/portfile.cmake129
-rw-r--r--ports/glew/usage4
-rw-r--r--ports/glfw3/CONTROL4
-rw-r--r--ports/gli/CONTROL3
-rw-r--r--ports/gli/portfile.cmake21
-rw-r--r--ports/glib/CMakeLists.txt219
-rw-r--r--ports/glib/CONTROL2
-rw-r--r--ports/glib/cmake/install_headers.cmake5
-rw-r--r--ports/glib/portfile.cmake23
-rw-r--r--ports/glibmm/CMakeLists.txt121
-rw-r--r--ports/glibmm/CONTROL4
-rw-r--r--ports/glibmm/glibmm-api-variant.patch84
-rw-r--r--ports/glibmm/msvc_recommended_pragmas.h34
-rw-r--r--ports/glibmm/portfile.cmake37
-rw-r--r--ports/glm/CONTROL2
-rw-r--r--ports/glm/ignore-warning-C4201.patch128
-rw-r--r--ports/glm/portfile.cmake41
-rw-r--r--ports/globjects/CONTROL2
-rw-r--r--ports/globjects/portfile.cmake7
-rw-r--r--ports/glog/CONTROL2
-rw-r--r--ports/glog/fix-cmake-install-files.patch32
-rw-r--r--ports/glog/portfile.cmake36
-rw-r--r--ports/glslang/CONTROL4
-rw-r--r--ports/glslang/portfile.cmake71
-rw-r--r--ports/gmime/CMakeLists.txt125
-rw-r--r--ports/gmime/CONTROL4
-rw-r--r--ports/gmime/config.h184
-rw-r--r--ports/gmime/gmime.def614
-rw-r--r--ports/gmime/idna.h3
-rw-r--r--ports/gmime/portfile.cmake38
-rw-r--r--ports/google-cloud-cpp/CONTROL4
-rw-r--r--ports/google-cloud-cpp/portfile.cmake44
-rw-r--r--ports/graphicsmagick/CMakeLists.txt6
-rw-r--r--ports/graphicsmagick/CONTROL2
-rw-r--r--ports/graphicsmagick/magick_types.h133
-rw-r--r--ports/graphicsmagick/portfile.cmake13
-rw-r--r--ports/graphite2/CONTROL4
-rw-r--r--ports/graphite2/disable-tests-docs.patch19
-rw-r--r--ports/graphite2/fix-static-build.patch21
-rw-r--r--ports/graphite2/portfile.cmake34
-rw-r--r--ports/grpc/CONTROL6
-rw-r--r--ports/grpc/disable-csharp-ext-2.patch20
-rw-r--r--ports/grpc/disable-csharp-ext.patch22
-rw-r--r--ports/grpc/fix-uwp.patch554
-rw-r--r--ports/grpc/portfile.cmake38
-rw-r--r--ports/grpc/revert-c019e05.patch18
-rw-r--r--ports/gsl-lite/CONTROL3
-rw-r--r--ports/gsl-lite/portfile.cmake18
-rw-r--r--ports/gsl/CMakeLists.txt34
-rw-r--r--ports/gsl/CONTROL2
-rw-r--r--ports/gsl/portfile.cmake24
-rw-r--r--ports/gsl/usage4
-rw-r--r--ports/gtest/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch37
-rw-r--r--ports/gtest/0002-Fix-z7-override.patch13
-rw-r--r--ports/gtest/CONTROL4
-rw-r--r--ports/gtest/portfile.cmake68
-rw-r--r--ports/gtest/usage6
-rw-r--r--ports/gtk/CONTROL2
-rw-r--r--ports/gtk/portfile.cmake4
-rw-r--r--ports/gtkmm/CONTROL4
-rw-r--r--ports/gtkmm/COPYING502
-rw-r--r--ports/gtkmm/README3
-rw-r--r--ports/gtkmm/fix_charset.patch2053
-rw-r--r--ports/gtkmm/fix_properties.patch2423
-rw-r--r--ports/gtkmm/msvc_recommended_pragmas.h34
-rw-r--r--ports/gtkmm/portfile.cmake104
-rw-r--r--ports/gts/CONTROL4
-rw-r--r--ports/gts/portfile.cmake31
-rw-r--r--ports/guetzli/CMakeLists.txt46
-rw-r--r--ports/guetzli/CONTROL4
-rw-r--r--ports/guetzli/portfile.cmake24
-rw-r--r--ports/gumbo/CMakeLists.txt32
-rw-r--r--ports/gumbo/CONTROL3
-rw-r--r--ports/gumbo/portfile.cmake24
-rw-r--r--ports/halide/CONTROL3
-rw-r--r--ports/halide/portfile.cmake88
-rw-r--r--ports/harfbuzz/0001-fix-uwp-build.patch15
-rw-r--r--ports/harfbuzz/CONTROL4
-rw-r--r--ports/harfbuzz/find-package-freetype-2.patch13
-rw-r--r--ports/harfbuzz/portfile.cmake32
-rw-r--r--ports/hdf5/CONTROL11
-rw-r--r--ports/hdf5/disable-static-libs.patch105
-rw-r--r--ports/hdf5/link-libraries-private.patch16
-rw-r--r--ports/hdf5/portfile.cmake48
-rw-r--r--ports/highfive/CONTROL4
-rw-r--r--ports/highfive/portfile.cmake28
-rw-r--r--ports/hpx/CONTROL5
-rw-r--r--ports/hpx/portfile.cmake94
-rw-r--r--ports/http-parser/CMakeLists.txt30
-rw-r--r--ports/http-parser/CONTROL4
-rw-r--r--ports/http-parser/portfile.cmake28
-rw-r--r--ports/hunspell/0001_fix_unistd.patch78
-rw-r--r--ports/hunspell/CMakeLists.txt151
-rw-r--r--ports/hunspell/CONTROL3
-rw-r--r--ports/hunspell/config.h.in35
-rw-r--r--ports/hunspell/portfile.cmake52
-rw-r--r--ports/hwloc/CMakeLists.txt51
-rw-r--r--ports/hwloc/CONTROL4
-rw-r--r--ports/hwloc/portfile.cmake33
-rw-r--r--ports/hypre/CONTROL4
-rw-r--r--ports/hypre/fix-root-cmakelists.patch25
-rw-r--r--ports/hypre/portfile.cmake8
-rw-r--r--ports/icu/CONTROL2
-rw-r--r--ports/icu/portfile.cmake42
-rw-r--r--ports/if97/CONTROL3
-rw-r--r--ports/if97/portfile.cmake19
-rw-r--r--ports/ilmbase/CONTROL3
-rw-r--r--ports/ilmbase/fix-parallel-build.patch54
-rw-r--r--ports/ilmbase/portfile.cmake49
-rw-r--r--ports/imgui/CMakeLists.txt44
-rw-r--r--ports/imgui/CONTROL3
-rw-r--r--ports/imgui/portfile.cmake25
-rw-r--r--ports/inja/CONTROL4
-rw-r--r--ports/inja/portfile.cmake11
-rw-r--r--ports/intel-mkl/CONTROL3
-rw-r--r--ports/intel-mkl/portfile.cmake32
-rw-r--r--ports/ismrmrd/CONTROL4
-rw-r--r--ports/ismrmrd/portfile.cmake47
-rw-r--r--ports/itk/CONTROL4
-rw-r--r--ports/itk/portfile.cmake62
-rw-r--r--ports/jack2/CMakeLists.txt14
-rw-r--r--ports/jack2/CONTROL4
-rw-r--r--ports/jack2/portfile.cmake29
-rw-r--r--ports/jansson/CONTROL3
-rw-r--r--ports/jansson/portfile.cmake51
-rw-r--r--ports/jasper/CONTROL4
-rw-r--r--ports/jasper/jasper-fix-uwp.patch32
-rw-r--r--ports/jasper/opengl-not-required.patch14
-rw-r--r--ports/jasper/portfile.cmake45
-rw-r--r--ports/jbig2dec/CMakeLists.txt25
-rw-r--r--ports/jbig2dec/CONTROL4
-rw-r--r--ports/jbig2dec/portfile.cmake23
-rw-r--r--ports/jbigkit/CONTROL2
-rw-r--r--ports/jemalloc/CONTROL4
-rw-r--r--ports/jemalloc/fix-cmakelists.patch67
-rw-r--r--ports/jemalloc/fix-utilities.patch30
-rw-r--r--ports/jemalloc/portfile.cmake37
-rw-r--r--ports/json-dto/CONTROL4
-rw-r--r--ports/json-dto/portfile.cmake33
-rw-r--r--ports/jsoncpp/CONTROL2
-rw-r--r--ports/jsoncpp/portfile.cmake30
-rw-r--r--ports/jsonnet/CMakeLists.txt53
-rw-r--r--ports/jsonnet/CONTROL3
-rw-r--r--ports/jsonnet/portfile.cmake29
-rw-r--r--ports/jxrlib/CONTROL2
-rw-r--r--ports/jxrlib/portfile.cmake14
-rw-r--r--ports/kealib/CONTROL8
-rw-r--r--ports/kealib/fix-cmake.patch122
-rw-r--r--ports/kealib/portfile.cmake39
-rw-r--r--ports/keystone/CONTROL3
-rw-r--r--ports/keystone/portfile.cmake51
-rw-r--r--ports/kf5plotting/CONTROL4
-rw-r--r--ports/kf5plotting/portfile.cmake24
-rw-r--r--ports/kinectsdk1/CONTROL3
-rw-r--r--ports/kinectsdk1/portfile.cmake71
-rw-r--r--ports/kinectsdk2/CONTROL3
-rw-r--r--ports/kinectsdk2/portfile.cmake72
-rw-r--r--ports/lcm/CONTROL5
-rw-r--r--ports/lcm/only-install-one-flavor.patch19
-rw-r--r--ports/lcm/portfile.cmake55
-rw-r--r--ports/lcms/CMakeLists.txt11
-rw-r--r--ports/lcms/CONTROL4
-rw-r--r--ports/lcms/portfile.cmake26
-rw-r--r--ports/lcms/shared.patch2
-rw-r--r--ports/leptonica/CONTROL4
-rw-r--r--ports/leptonica/fix-cmakelists.patch34
-rw-r--r--ports/leptonica/portfile.cmake40
-rw-r--r--ports/leptonica/use-tiff-libraries.patch13
-rw-r--r--ports/leveldb/CMakeLists.txt75
-rw-r--r--ports/leveldb/CONTROL3
-rw-r--r--ports/leveldb/msvc_code_fix.diff63
-rw-r--r--ports/leveldb/portfile.cmake30
-rw-r--r--ports/libaiff/CMakeLists.txt32
-rw-r--r--ports/libaiff/CONTROL3
-rw-r--r--ports/libaiff/allow_utf_16_filename.patch214
-rw-r--r--ports/libaiff/buffer_uninitialized.patch42
-rw-r--r--ports/libaiff/config.h12
-rw-r--r--ports/libaiff/portfile.cmake41
-rw-r--r--ports/libarchive/CONTROL2
-rw-r--r--ports/libarchive/fix-buildsystem.patch4
-rw-r--r--ports/libarchive/fix-lz4.patch18
-rw-r--r--ports/libarchive/portfile.cmake16
-rw-r--r--ports/libbson/CONTROL4
-rw-r--r--ports/libbson/fix-uwp.patch76
-rw-r--r--ports/libbson/portfile.cmake36
-rw-r--r--ports/libbson/static.patch18
-rw-r--r--ports/libccd/portfile.cmake41
-rw-r--r--ports/libcds/CONTROL4
-rw-r--r--ports/libcds/cmake-install.patch31
-rw-r--r--ports/libcds/lib-suffix-option.patch13
-rw-r--r--ports/libcds/portfile.cmake42
-rw-r--r--ports/libconfig/CMakeLists.txt52
-rw-r--r--ports/libconfig/CONTROL3
-rw-r--r--ports/libconfig/portfile.cmake38
-rw-r--r--ports/libdatrie/CMakeLists.txt94
-rw-r--r--ports/libdatrie/CONTROL4
-rw-r--r--ports/libdatrie/config.h.cmake87
-rw-r--r--ports/libdatrie/fix-exports.patch8
-rw-r--r--ports/libdatrie/fix-trietool.patch31
-rw-r--r--ports/libdatrie/portfile.cmake55
-rw-r--r--ports/libdisasm/CMakeLists.txt49
-rw-r--r--ports/libdisasm/CONTROL3
-rw-r--r--ports/libdisasm/portfile.cmake35
-rw-r--r--ports/libdisasm/sizeofvoid.patch29
-rw-r--r--ports/libepoxy/CONTROL2
-rw-r--r--ports/libepoxy/portfile.cmake18
-rw-r--r--ports/libevent/CONTROL5
-rw-r--r--ports/libevent/fix-target-files.patch36
-rw-r--r--ports/libevent/portfile.cmake51
-rw-r--r--ports/libexif/CMakeLists.txt142
-rw-r--r--ports/libexif/CONTROL3
-rw-r--r--ports/libexif/config.h.cmake96
-rw-r--r--ports/libexif/libexif.def130
-rw-r--r--ports/libexif/portfile.cmake31
-rw-r--r--ports/libffi/CMakeLists.txt112
-rw-r--r--ports/libffi/CONTROL2
-rw-r--r--ports/libffi/fficonfig.h163
-rw-r--r--ports/libffi/portfile.cmake80
-rw-r--r--ports/libflac/CMakeLists.txt30
-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/libfreenect2/CONTROL4
-rw-r--r--ports/libfreenect2/portfile.cmake41
-rw-r--r--ports/libgd/CONTROL2
-rw-r--r--ports/libgeotiff/0001-Updates-to-CMake-configuration-to-align-with-other-C.patch88
-rw-r--r--ports/libgeotiff/0002-Fix-directory-output.patch28
-rw-r--r--ports/libgeotiff/0003-Fix-cmake-TIFF-detection.patch36
-rw-r--r--ports/libgeotiff/0004-Fix-libxtiff-installation.patch64
-rw-r--r--ports/libgeotiff/0005-Control-shared-library-build-with-option.patch34
-rw-r--r--ports/libgeotiff/0006-Fix-utility-link-error.patch42
-rw-r--r--ports/libgeotiff/CONTROL4
-rw-r--r--ports/libgeotiff/portfile.cmake56
-rw-r--r--ports/libgit2/CONTROL3
-rw-r--r--ports/libgit2/portfile.cmake30
-rw-r--r--ports/libgo/CONTROL4
-rw-r--r--ports/libgo/cmake.patch34
-rw-r--r--ports/libgo/libgo-config.cmake25
-rw-r--r--ports/libgo/portfile.cmake63
-rw-r--r--ports/libgo/usage5
-rw-r--r--ports/libgta/CONTROL4
-rw-r--r--ports/libgta/portfile.cmake36
-rw-r--r--ports/libharu/CONTROL4
-rw-r--r--ports/libharu/portfile.cmake56
-rw-r--r--ports/libiconv/0002-Config-for-MSVC.patch54
-rw-r--r--ports/libiconv/CMakeLists.txt96
-rw-r--r--ports/libiconv/CONTROL2
-rw-r--r--ports/libiconv/portfile.cmake24
-rw-r--r--ports/libiconv/unofficial-iconv-config.cmake6
-rw-r--r--ports/libidn2/CMakeLists.txt103
-rw-r--r--ports/libidn2/CONTROL4
-rw-r--r--ports/libidn2/config.h995
-rw-r--r--ports/libidn2/portfile.cmake49
-rw-r--r--ports/libidn2/string.h10
-rw-r--r--ports/libjpeg-turbo/CONTROL2
-rw-r--r--ports/libjpeg-turbo/add-options-for-exes-docs-headers.patch20
-rw-r--r--ports/libjpeg-turbo/linux-cmake.patch26
-rw-r--r--ports/libjpeg-turbo/portfile.cmake57
-rw-r--r--ports/libjpeg-turbo/usage5
-rw-r--r--ports/libkml/CONTROL4
-rw-r--r--ports/libkml/patch_empty_literal_on_vc.patch13
-rw-r--r--ports/libkml/portfile.cmake28
-rw-r--r--ports/liblinear/CMakeLists.txt47
-rw-r--r--ports/liblinear/CONTROL3
-rw-r--r--ports/liblinear/portfile.cmake26
-rw-r--r--ports/liblo/CONTROL3
-rw-r--r--ports/liblo/portfile.cmake36
-rw-r--r--ports/liblzma/CMakeLists.txt54
-rw-r--r--ports/liblzma/CONTROL2
-rw-r--r--ports/liblzma/portfile.cmake67
-rw-r--r--ports/liblzma/usage5
-rw-r--r--ports/libmad/CMakeLists.txt2
-rw-r--r--ports/libmad/CONTROL2
-rw-r--r--ports/libmad/portfile.cmake5
-rw-r--r--ports/libmad/use_fpm_default.patch16
-rw-r--r--ports/libmariadb/CONTROL2
-rw-r--r--ports/libmariadb/portfile.cmake82
-rw-r--r--ports/libmicrohttpd/CMakeLists.txt78
-rw-r--r--ports/libmicrohttpd/CONTROL3
-rw-r--r--ports/libmicrohttpd/portfile.cmake23
-rw-r--r--ports/libmikmod/CONTROL4
-rw-r--r--ports/libmikmod/portfile.cmake52
-rw-r--r--ports/libmodplug/CONTROL2
-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.txt53
-rw-r--r--ports/libmupdf/CONTROL4
-rw-r--r--ports/libmupdf/portfile.cmake27
-rw-r--r--ports/libmysql/CONTROL7
-rw-r--r--ports/libmysql/boost_and_build.patch44
-rw-r--r--ports/libmysql/ignore-boost-version.patch13
-rw-r--r--ports/libmysql/portfile.cmake205
-rw-r--r--ports/libmysql/system-libs.patch150
-rw-r--r--ports/libnice/CMakeLists.txt2
-rw-r--r--ports/libnice/CONTROL4
-rw-r--r--ports/libodb-mysql/CMakeLists.txt44
-rw-r--r--ports/libodb-mysql/CONTROL4
-rw-r--r--ports/libodb-mysql/portfile.cmake45
-rw-r--r--ports/libodb-pgsql/CONTROL4
-rw-r--r--ports/libodb-sqlite/CONTROL2
-rw-r--r--ports/libodb/CONTROL2
-rw-r--r--ports/libodb/portfile.cmake9
-rw-r--r--ports/libogg/CONTROL2
-rw-r--r--ports/libogg/portfile.cmake49
-rw-r--r--ports/libopenmpt/CMakeLists.txt289
-rw-r--r--ports/libopenmpt/CONTROL4
-rw-r--r--ports/libopenmpt/portfile.cmake26
-rw-r--r--ports/libopusenc/CMakeLists.txt38
-rw-r--r--ports/libopusenc/CONTROL4
-rw-r--r--ports/libopusenc/portfile.cmake29
-rw-r--r--ports/libp7-baical/CMakeLists.txt5
-rw-r--r--ports/libp7-baical/CONTROL2
-rw-r--r--ports/libp7-baical/portfile.cmake8
-rw-r--r--ports/libpng-apng/CONTROL4
-rw-r--r--ports/libpng-apng/portfile.cmake78
-rw-r--r--ports/libpng-apng/usage4
-rw-r--r--ports/libpng-apng/use-abort-on-all-platforms.patch17
-rw-r--r--ports/libpng/CONTROL2
-rw-r--r--ports/libpng/dont-double-eval-CMAKE_SYSTEM_PROCESSOR.patch15
-rw-r--r--ports/libpng/portfile.cmake36
-rw-r--r--ports/libpng/skip-install-symlink.patch22
-rw-r--r--ports/libpng/usage4
-rw-r--r--ports/libpopt/CONTROL2
-rw-r--r--ports/libpq/CMakeLists.txt106
-rw-r--r--ports/libpq/CONTROL4
-rw-r--r--ports/libpq/pg_config.darwin.h191
-rw-r--r--ports/libpq/pg_config.linux.h173
-rw-r--r--ports/libpq/portfile.cmake35
-rw-r--r--ports/libpqxx/CMakeLists.txt68
-rw-r--r--ports/libpqxx/CONTROL4
-rw-r--r--ports/libpqxx/config-internal-compiler.h.in14
-rw-r--r--ports/libpqxx/config-public-compiler.h.in8
-rw-r--r--ports/libpqxx/portfile.cmake23
-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/librabbitmq/CONTROL4
-rw-r--r--ports/librabbitmq/portfile.cmake29
-rw-r--r--ports/libraw/CONTROL4
-rw-r--r--ports/libraw/portfile.cmake25
-rw-r--r--ports/librsync/CONTROL3
-rw-r--r--ports/librsync/portfile.cmake39
-rw-r--r--ports/librtmp/CMakeLists.txt56
-rw-r--r--ports/librtmp/CONTROL4
-rw-r--r--ports/librtmp/fix_strncasecmp.patch20
-rw-r--r--ports/librtmp/hide_netstackdump.patch58
-rw-r--r--ports/librtmp/librtmp.def109
-rw-r--r--ports/librtmp/portfile.cmake37
-rw-r--r--ports/libsamplerate/CMakeLists.txt14
-rw-r--r--ports/libsamplerate/CONTROL3
-rw-r--r--ports/libsamplerate/portfile.cmake26
-rw-r--r--ports/libsigcpp/CMakeLists.txt2
-rw-r--r--ports/libsigcpp/CONTROL2
-rw-r--r--ports/libsndfile/CONTROL2
-rw-r--r--ports/libsndfile/portfile.cmake52
-rw-r--r--ports/libsndfile/uwp-createfile-getfilesize-addendum.patch13
-rw-r--r--ports/libsndfile/uwp-createfile-getfilesize.patch58
-rw-r--r--ports/libsodium/CONTROL3
-rw-r--r--ports/libsodium/disable-tests.patch16
-rw-r--r--ports/libsodium/portfile.cmake74
-rw-r--r--ports/libspatialite/CONTROL5
-rw-r--r--ports/libspatialite/fix-latin-literals.patch108
-rw-r--r--ports/libspatialite/fix-makefiles.patch61
-rw-r--r--ports/libspatialite/fix-sources.patch32
-rw-r--r--ports/libspatialite/portfile.cmake114
-rw-r--r--ports/libssh/CONTROL4
-rw-r--r--ports/libssh/build-one-flavor.patch20
-rw-r--r--ports/libssh/only-one-flavor-threads.patch21
-rw-r--r--ports/libssh/portfile.cmake58
-rw-r--r--ports/libssh2/CONTROL4
-rw-r--r--ports/libssh2/portfile.cmake4
-rw-r--r--ports/libstemmer/CMakeLists.txt22
-rw-r--r--ports/libstemmer/CONTROL3
-rw-r--r--ports/libstemmer/LICENSE19
-rw-r--r--ports/libstemmer/portfile.cmake24
-rw-r--r--ports/libtheora/0001-fix-uwp.patch53
-rw-r--r--ports/libtheora/CMakeLists.txt116
-rw-r--r--ports/libtheora/CONTROL2
-rw-r--r--ports/libtheora/libtheora.def61
-rw-r--r--ports/libtheora/portfile.cmake40
-rw-r--r--ports/libtorrent/CONTROL4
-rw-r--r--ports/libtorrent/add-datetime-to-boost-libs.patch13
-rw-r--r--ports/libtorrent/boost-167.patch48
-rw-r--r--ports/libtorrent/portfile.cmake54
-rw-r--r--ports/libudis86/CMakeLists.txt56
-rw-r--r--ports/libudis86/CONTROL3
-rw-r--r--ports/libudis86/portfile.cmake33
-rw-r--r--ports/libunibreak/CMakeLists.txt35
-rw-r--r--ports/libunibreak/CONTROL3
-rw-r--r--ports/libunibreak/portfile.cmake24
-rw-r--r--ports/libusb-win32/CONTROL2
-rw-r--r--ports/libusb-win32/portfile.cmake4
-rw-r--r--ports/libusb/CONTROL2
-rw-r--r--ports/libusb/libfreenect2.patch268
-rw-r--r--ports/libusb/portfile.cmake5
-rw-r--r--ports/libuuid/CMakeLists.txt35
-rw-r--r--ports/libuuid/CONTROL3
-rw-r--r--ports/libuuid/config.linux.h13
-rw-r--r--ports/libuuid/portfile.cmake29
-rw-r--r--ports/libuv/CMakeLists.txt65
-rw-r--r--ports/libuv/CONTROL4
-rw-r--r--ports/libuv/portfile.cmake11
-rw-r--r--ports/libvorbis/CONTROL2
-rw-r--r--ports/libvorbis/portfile.cmake8
-rw-r--r--ports/libvpx/CONTROL2
-rw-r--r--ports/libvpx/portfile.cmake23
-rw-r--r--ports/libwebm/CONTROL2
-rw-r--r--ports/libwebp/0001-add-install-to-cmake.patch21
-rw-r--r--ports/libwebp/0002-add-missing-directory-to-cmake.patch12
-rw-r--r--ports/libwebp/CONTROL2
-rw-r--r--ports/libwebp/FindWebP.cmake27
-rw-r--r--ports/libwebp/build_fixes.patch33
-rw-r--r--ports/libwebp/portfile.cmake32
-rw-r--r--ports/libwebsockets/0001-Fix-UWP.patch120
-rw-r--r--ports/libwebsockets/CONTROL4
-rw-r--r--ports/libwebsockets/portfile.cmake54
-rw-r--r--ports/libxml2/CMakeLists.txt93
-rw-r--r--ports/libxml2/CONTROL2
-rw-r--r--ports/libxml2/config.linux.h56
-rw-r--r--ports/libxml2/config.osx.h54
-rw-r--r--ports/libxml2/portfile.cmake19
-rw-r--r--ports/libxml2/usage5
-rw-r--r--ports/libxml2/vcpkg-cmake-wrapper.cmake13
-rw-r--r--ports/libxmlpp/CMakeLists.txt97
-rw-r--r--ports/libxmlpp/CONTROL4
-rw-r--r--ports/libxmlpp/fixAutoPtrExpired.patch114
-rw-r--r--ports/libxmlpp/portfile.cmake31
-rw-r--r--ports/libxmp-lite/0001-msvc-buildfix.patch23
-rw-r--r--ports/libxmp-lite/0002-fix-symbols.patch44
-rw-r--r--ports/libxmp-lite/CMakeLists.txt65
-rw-r--r--ports/libxmp-lite/CONTROL3
-rw-r--r--ports/libxmp-lite/portfile.cmake27
-rw-r--r--ports/libzip/CONTROL4
-rw-r--r--ports/libzip/LICENSE66
-rw-r--r--ports/libzip/cmake_dont_build_more_than_needed.patch19
-rw-r--r--ports/libzip/portfile.cmake32
-rw-r--r--ports/live555/CMakeLists.txt27
-rw-r--r--ports/live555/CONTROL3
-rw-r--r--ports/live555/portfile.cmake35
-rw-r--r--ports/llvm/CONTROL4
-rw-r--r--ports/llvm/install-cmake-modules-to-share.patch10
-rw-r--r--ports/llvm/portfile.cmake83
-rw-r--r--ports/lmdb/CONTROL4
-rw-r--r--ports/lmdb/cmake/CMakeLists.txt4
-rw-r--r--ports/lodepng/CMakeLists.txt41
-rw-r--r--ports/lodepng/CONTROL3
-rw-r--r--ports/lodepng/portfile.cmake28
-rw-r--r--ports/log4cplus/CONTROL3
-rw-r--r--ports/log4cplus/portfile.cmake31
-rw-r--r--ports/lpeg/CMakeLists.txt28
-rw-r--r--ports/lpeg/CONTROL4
-rw-r--r--ports/lpeg/lpeg.def3
-rw-r--r--ports/lpeg/portfile.cmake32
-rw-r--r--ports/lua/CMakeLists.txt9
-rw-r--r--ports/lua/CONTROL2
-rw-r--r--ports/lua/portfile.cmake2
-rw-r--r--ports/luafilesystem/CMakeLists.txt21
-rw-r--r--ports/luafilesystem/CONTROL4
-rw-r--r--ports/luafilesystem/lfs-def-fix.patch20
-rw-r--r--ports/luafilesystem/portfile.cmake35
-rw-r--r--ports/luajit/001-fixStaticBuild.patch26
-rw-r--r--ports/luajit/CONTROL3
-rw-r--r--ports/luajit/portfile.cmake85
-rw-r--r--ports/luasocket/CMakeLists.txt65
-rw-r--r--ports/luasocket/CONTROL4
-rw-r--r--ports/luasocket/portfile.cmake40
-rw-r--r--ports/lz4/CMakeLists.txt2
-rw-r--r--ports/lz4/CONTROL2
-rw-r--r--ports/lz4/auto-define-import-macro.patch28
-rw-r--r--ports/lz4/portfile.cmake32
-rw-r--r--ports/lzfse/CONTROL3
-rw-r--r--ports/lzfse/disable-cli-option.patch51
-rw-r--r--ports/lzfse/portfile.cmake37
-rw-r--r--ports/lzo/CONTROL2
-rw-r--r--ports/lzo/portfile.cmake33
-rw-r--r--ports/magnum-extras/CONTROL9
-rw-r--r--ports/magnum-extras/portfile.cmake72
-rw-r--r--ports/magnum-integration/CONTROL16
-rw-r--r--ports/magnum-integration/portfile.cmake65
-rw-r--r--ports/magnum-plugins/001-tools-path.patch26
-rw-r--r--ports/magnum-plugins/CONTROL80
-rw-r--r--ports/magnum-plugins/portfile.cmake86
-rw-r--r--ports/magnum/001-sdl-includes.patch20
-rw-r--r--ports/magnum/002-tools-path.patch26
-rw-r--r--ports/magnum/003-glfw-find-module.patch13
-rw-r--r--ports/magnum/CONTROL127
-rw-r--r--ports/magnum/magnumdeploy.ps138
-rw-r--r--ports/magnum/portfile.cmake101
-rw-r--r--ports/matio/CMakeLists.txt54
-rw-r--r--ports/matio/CONTROL4
-rw-r--r--ports/matio/portfile.cmake22
-rw-r--r--ports/matroska/CMakeLists.txt110
-rw-r--r--ports/matroska/CONTROL4
-rw-r--r--ports/matroska/MatroskaConfig.cmake1
-rw-r--r--ports/matroska/portfile.cmake45
-rw-r--r--ports/mbedtls/CONTROL3
-rw-r--r--ports/mbedtls/portfile.cmake27
-rw-r--r--ports/meschach/CMakeLists.txt89
-rw-r--r--ports/meschach/CONTROL3
-rw-r--r--ports/meschach/portfile.cmake21
-rw-r--r--ports/metis/CONTROL2
-rw-r--r--ports/mhook/CONTROL3
-rw-r--r--ports/mhook/portfile.cmake21
-rw-r--r--ports/minizip/CMakeLists.txt71
-rw-r--r--ports/minizip/CONTROL4
-rw-r--r--ports/minizip/portfile.cmake34
-rw-r--r--ports/mman/CONTROL3
-rw-r--r--ports/mman/mman-static.patch33
-rw-r--r--ports/mman/portfile.cmake37
-rw-r--r--ports/mman/usage4
-rw-r--r--ports/mongo-c-driver/CONTROL6
-rw-r--r--ports/mongo-c-driver/bson.patch23
-rw-r--r--ports/mongo-c-driver/fix-uwp.patch72
-rw-r--r--ports/mongo-c-driver/portfile.cmake58
-rw-r--r--ports/mongo-c-driver/static.patch13
-rw-r--r--ports/mongo-cxx-driver/CONTROL6
-rw-r--r--ports/monkeys-audio/CONTROL5
-rw-r--r--ports/monkeys-audio/license42
-rw-r--r--ports/monkeys-audio/portfile.cmake55
-rw-r--r--ports/monkeys-audio/use-dynamic-linkage.patch36
-rw-r--r--ports/mosquitto/0001-win64-cmake.patch40
-rw-r--r--ports/mosquitto/CONTROL8
-rw-r--r--ports/mosquitto/cmake-2.patch68
-rw-r--r--ports/mosquitto/cmake.patch13
-rw-r--r--ports/mosquitto/portfile.cmake56
-rw-r--r--ports/mozjpeg/CONTROL3
-rw-r--r--ports/mozjpeg/portfile.cmake54
-rw-r--r--ports/mpark-variant/CONTROL3
-rw-r--r--ports/mpark-variant/portfile.cmake24
-rw-r--r--ports/mpfr/CMakeLists.txt277
-rw-r--r--ports/mpfr/CONTROL4
-rw-r--r--ports/mpfr/gmp_printf.c6
-rw-r--r--ports/mpfr/portfile.cmake25
-rw-r--r--ports/mpg123/0002-fix-x86-build.patch37
-rw-r--r--ports/mpg123/CONTROL4
-rw-r--r--ports/mpg123/portfile.cmake153
-rw-r--r--ports/mpir/CONTROL6
-rw-r--r--ports/mpir/enable-runtimelibrary-toggle.patch26
-rw-r--r--ports/mpir/portfile.cmake179
-rw-r--r--ports/ms-gsl/CONTROL2
-rw-r--r--ports/ms-gsl/portfile.cmake9
-rw-r--r--ports/msgpack/CONTROL2
-rw-r--r--ports/msgpack/add-static-lib-option.patch84
-rw-r--r--ports/msgpack/portfile.cmake28
-rw-r--r--ports/msinttypes/CONTROL3
-rw-r--r--ports/msinttypes/portfile.cmake13
-rw-r--r--ports/msix/CMakeLists.txt1
-rw-r--r--ports/msix/CONTROL5
-rw-r--r--ports/msix/install-cmake.patch35
-rw-r--r--ports/msix/portfile.cmake46
-rw-r--r--ports/msmpi/CONTROL2
-rw-r--r--ports/msmpi/portfile.cmake52
-rw-r--r--ports/mujs/CMakeLists.txt24
-rw-r--r--ports/mujs/CONTROL3
-rw-r--r--ports/mujs/portfile.cmake27
-rw-r--r--ports/muparser/CONTROL3
-rw-r--r--ports/muparser/portfile.cmake25
-rw-r--r--ports/nana/CONTROL4
-rw-r--r--ports/nana/fix-linking.patch51
-rw-r--r--ports/nana/portfile.cmake27
-rw-r--r--ports/nanodbc/CONTROL4
-rw-r--r--ports/nanomsg/CONTROL4
-rw-r--r--ports/nanomsg/portfile.cmake38
-rw-r--r--ports/netcdf-c/CONTROL2
-rw-r--r--ports/netcdf-c/portfile.cmake7
-rw-r--r--ports/netcdf-cxx4/CONTROL2
-rw-r--r--ports/nghttp2/CONTROL3
-rw-r--r--ports/nghttp2/enable-static.patch27
-rw-r--r--ports/nghttp2/portfile.cmake50
-rw-r--r--ports/nlohmann-json/CONTROL2
-rw-r--r--ports/nlohmann-json/portfile.cmake30
-rw-r--r--ports/nlopt/0001_export_symbols.patch25
-rw-r--r--ports/nlopt/CONTROL3
-rw-r--r--ports/nlopt/portfile.cmake30
-rw-r--r--ports/nmslib/CONTROL8
-rw-r--r--ports/nmslib/fix-cmake-order.patch23
-rw-r--r--ports/nmslib/fix-headers.patch92
-rw-r--r--ports/nmslib/portfile.cmake60
-rw-r--r--ports/nuklear/CONTROL3
-rw-r--r--ports/nuklear/portfile.cmake11
-rw-r--r--ports/nvtt/CONTROL3
-rw-r--r--ports/nvtt/portfile.cmake44
-rw-r--r--ports/octomap/CONTROL2
-rw-r--r--ports/octomap/portfile.cmake5
-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.patch38
-rw-r--r--ports/ogre/CONTROL12
-rw-r--r--ports/ogre/OGREConfig.cmake37
-rw-r--r--ports/ogre/portfile.cmake139
-rw-r--r--ports/openal-soft/CONTROL4
-rw-r--r--ports/openal-soft/cmake-3-11.patch14
-rw-r--r--ports/openal-soft/dont-export-symbols-in-static-build.patch13
-rw-r--r--ports/openal-soft/portfile.cmake71
-rw-r--r--ports/openblas/CONTROL2
-rw-r--r--ports/openblas/install-openblas.patch8
-rw-r--r--ports/openblas/portfile.cmake82
-rw-r--r--ports/openblas/whitespace.patch64
-rw-r--r--ports/opencl/CONTROL3
-rw-r--r--ports/opencl/portfile.cmake90
-rw-r--r--ports/opencl/usage7
-rw-r--r--ports/opencv/0001-winrt-fixes.patch61
-rw-r--r--ports/opencv/0002-install-options.patch (renamed from ports/opencv/opencv-installation-options.patch)100
-rw-r--r--ports/opencv/0003-disable-downloading.patch11
-rw-r--r--ports/opencv/0004-use-find-package-required.patch83
-rw-r--r--ports/opencv/0005-remove-protobuf-target.patch31
-rw-r--r--ports/opencv/001-fix-uwp.patch57
-rw-r--r--ports/opencv/002-fix-uwp.patch39
-rw-r--r--ports/opencv/CONTROL80
-rw-r--r--ports/opencv/open_contrib-remove-waldboost.patch13
-rw-r--r--ports/opencv/portfile.cmake403
-rw-r--r--ports/opencv/usage5
-rw-r--r--ports/openexr/CMakeLists.txt.patch86
-rw-r--r--ports/openexr/CONTROL4
-rw-r--r--ports/openexr/FindOpenEXR.cmake13
-rw-r--r--ports/openexr/add-missing-export.patch13
-rw-r--r--ports/openexr/fix-static-linking.patch14
-rw-r--r--ports/openexr/portfile.cmake63
-rw-r--r--ports/opengl/CONTROL4
-rw-r--r--ports/opengl/portfile.cmake74
-rw-r--r--ports/openimageio/CONTROL4
-rw-r--r--ports/openimageio/portfile.cmake60
-rw-r--r--ports/openjpeg/CONTROL2
-rw-r--r--ports/openjpeg/portfile.cmake28
-rw-r--r--ports/openmama/CONTROL4
-rw-r--r--ports/openmama/portfile.cmake84
-rw-r--r--ports/openmesh/CONTROL3
-rw-r--r--ports/openmesh/portfile.cmake38
-rw-r--r--ports/openni2/CONTROL4
-rw-r--r--ports/openni2/disable_kinect.patch40
-rw-r--r--ports/openni2/inherit_from_parent_or_project_defaults.patch41
-rw-r--r--ports/openni2/openni2deploy.ps118
-rw-r--r--ports/openni2/portfile.cmake226
-rw-r--r--ports/openni2/replace_environment_variable.patch76
-rw-r--r--ports/openni2/upgrade_projects.patch1572
-rw-r--r--ports/openssl/CMakeLists.txt130
-rw-r--r--ports/openssl/CONTROL2
-rw-r--r--ports/openssl/EmbedSymbolsInStaticLibsZ7.patch25
-rw-r--r--ports/openssl/PerlScriptSpaceInPathFixes.patch35
-rw-r--r--ports/openssl/make-openssl.bat9
-rw-r--r--ports/openssl/portfile-nonwindows.cmake37
-rw-r--r--ports/openssl/portfile-uwp.cmake79
-rw-r--r--ports/openssl/portfile.cmake117
-rw-r--r--ports/openssl/remove-deps.cmake7
-rw-r--r--ports/openssl/usage4
-rw-r--r--ports/openssl/vcpkg-cmake-wrapper.cmake10
-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/openvpn3/CMakeLists.txt26
-rw-r--r--ports/openvpn3/CONTROL4
-rw-r--r--ports/openvpn3/portfile.cmake37
-rw-r--r--ports/openvr/CONTROL2
-rw-r--r--ports/openvr/portfile.cmake21
-rw-r--r--ports/opus/CONTROL2
-rw-r--r--ports/opus/no-main.patch14
-rw-r--r--ports/opus/portfile.cmake72
-rw-r--r--ports/opusfile/CMakeLists.txt40
-rw-r--r--ports/opusfile/CONTROL4
-rw-r--r--ports/opusfile/portfile.cmake29
-rw-r--r--ports/osg/CONTROL4
-rw-r--r--ports/osg/portfile.cmake58
-rw-r--r--ports/osgearth/CONTROL4
-rw-r--r--ports/osgearth/portfile.cmake64
-rw-r--r--ports/paho-mqtt/CONTROL4
-rw-r--r--ports/paho-mqtt/disable_tests.patch16
-rw-r--r--ports/paho-mqtt/portfile.cmake86
-rw-r--r--ports/paho-mqtt/remove_compiler_options.patch13
-rw-r--r--ports/pango/CMakeLists.txt1
-rw-r--r--ports/pango/CONTROL2
-rw-r--r--ports/pango/portfile.cmake5
-rw-r--r--ports/pangolin/CONTROL4
-rw-r--r--ports/pangolin/portfile.cmake57
-rw-r--r--ports/pangomm/CONTROL4
-rw-r--r--ports/pangomm/COPYING515
-rw-r--r--ports/pangomm/README3
-rw-r--r--ports/pangomm/fix_charset.patch110
-rw-r--r--ports/pangomm/fix_properties.patch75
-rw-r--r--ports/pangomm/msvc_recommended_pragmas.h34
-rw-r--r--ports/pangomm/portfile.cmake76
-rw-r--r--ports/parmetis/CONTROL2
-rw-r--r--ports/parson/CMakeLists.txt19
-rw-r--r--ports/parson/CONTROL3
-rw-r--r--ports/parson/portfile.cmake33
-rw-r--r--ports/pcl/CONTROL24
-rw-r--r--ports/pcl/boost_uuid_random_generator_compat.patch13
-rw-r--r--ports/pcl/cmakelists.patch25
-rw-r--r--ports/pcl/config.patch63
-rw-r--r--ports/pcl/config_install.patch22
-rw-r--r--ports/pcl/find_cuda.patch15
-rw-r--r--ports/pcl/find_flann.patch24
-rw-r--r--ports/pcl/find_openni2.patch12
-rw-r--r--ports/pcl/find_qhull.patch13
-rw-r--r--ports/pcl/portfile.cmake91
-rw-r--r--ports/pcl/vs2017-15.4-workaround.patch41
-rw-r--r--ports/pcre/CONTROL2
-rw-r--r--ports/pcre/fix-arm-config-define.patch60
-rw-r--r--ports/pcre/fix-option-2.patch24
-rw-r--r--ports/pcre/fix-option.patch13
-rw-r--r--ports/pcre/portfile.cmake7
-rw-r--r--ports/pcre2/CONTROL2
-rw-r--r--ports/pcre2/fix-space.patch13
-rw-r--r--ports/pcre2/portfile.cmake12
-rw-r--r--ports/pdal/0001-win32_compiler_options.cmake.patch14
-rw-r--r--ports/pdal/CONTROL4
-rw-r--r--ports/pdal/FindGDAL.cmake13
-rw-r--r--ports/pdal/FindGEOS.cmake13
-rw-r--r--ports/pdal/FindGeoTIFF.cmake13
-rw-r--r--ports/pdal/no-source-dir-writes.patch49
-rw-r--r--ports/pdal/portfile.cmake82
-rw-r--r--ports/pdcurses/CONTROL2
-rw-r--r--ports/pdcurses/portfile.cmake47
-rw-r--r--ports/physfs/CONTROL3
-rw-r--r--ports/physfs/portfile.cmake33
-rw-r--r--ports/picosha2/CONTROL3
-rw-r--r--ports/picosha2/portfile.cmake11
-rw-r--r--ports/piex/CMakeLists.txt43
-rw-r--r--ports/piex/CONTROL3
-rw-r--r--ports/piex/portfile.cmake28
-rw-r--r--ports/pixman/CMakeLists.txt64
-rw-r--r--ports/pixman/CMakeLists_pixman.txt53
-rw-r--r--ports/pixman/CONTROL2
-rw-r--r--ports/pixman/portfile.cmake35
-rw-r--r--ports/plibsys/CONTROL3
-rw-r--r--ports/plibsys/portfile.cmake69
-rw-r--r--ports/plog/CONTROL3
-rw-r--r--ports/plog/portfile.cmake17
-rw-r--r--ports/plplot/CONTROL8
-rw-r--r--ports/plplot/install-interface-include-directories.patch13
-rw-r--r--ports/plplot/portfile.cmake79
-rw-r--r--ports/pmdk/CONTROL3
-rw-r--r--ports/pmdk/addPowerShellExecutionPolicy.patch22
-rw-r--r--ports/pmdk/portfile.cmake77
-rw-r--r--ports/pmdk/v141.patch13
-rw-r--r--ports/poco/CONTROL6
-rw-r--r--ports/poco/fix-static-internal-pcre.patch27
-rw-r--r--ports/poco/portfile.cmake34
-rw-r--r--ports/podofo/CONTROL8
-rw-r--r--ports/podofo/portfile.cmake45
-rw-r--r--ports/portaudio/CONTROL2
-rw-r--r--ports/portaudio/crt_linkage_build_config.patch61
-rw-r--r--ports/portaudio/find_dsound.patch114
-rw-r--r--ports/portaudio/portfile.cmake13
-rw-r--r--ports/portmidi/CONTROL3
-rw-r--r--ports/portmidi/portfile.cmake49
-rw-r--r--ports/pqp/CONTROL2
-rw-r--r--ports/proj/CONTROL5
-rw-r--r--ports/proj/portfile.cmake58
-rw-r--r--ports/proj4/0001-CMake-add-detection-of-recent-visual-studio-versions.patch (renamed from ports/proj/0001-CMake-add-detection-of-recent-visual-studio-versions.patch)0
-rw-r--r--ports/proj4/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch (renamed from ports/proj/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch)0
-rw-r--r--ports/proj4/0003-CMake-configurable-cmake-config-install-location.patch (renamed from ports/proj/0003-CMake-configurable-cmake-config-install-location.patch)0
-rw-r--r--ports/proj4/CONTROL3
-rw-r--r--ports/proj4/portfile.cmake76
-rw-r--r--ports/protobuf/001-add-compiler-flag.patch70
-rw-r--r--ports/protobuf/CONTROL7
-rw-r--r--ports/protobuf/export-ParseGeneratorParameter.patch13
-rw-r--r--ports/protobuf/fix-uwp.patch12
-rw-r--r--ports/protobuf/js-embed.patch25
-rw-r--r--ports/protobuf/portfile.cmake102
-rw-r--r--ports/ptex/CONTROL4
-rw-r--r--ports/ptex/fix-build.patch65
-rw-r--r--ports/ptex/portfile.cmake35
-rw-r--r--ports/pthreads/CMakeLists.txt213
-rw-r--r--ports/pthreads/CONTROL3
-rw-r--r--ports/pthreads/portfile.cmake52
-rw-r--r--ports/pugixml/CONTROL2
-rw-r--r--ports/pugixml/portfile.cmake39
-rw-r--r--ports/pugixml/pugixmlapi.patch13
-rw-r--r--ports/pybind11/CONTROL5
-rw-r--r--ports/pybind11/portfile.cmake33
-rw-r--r--ports/pystring/CMakeLists.txt23
-rw-r--r--ports/pystring/CONTROL3
-rw-r--r--ports/pystring/portfile.cmake22
-rw-r--r--ports/python3/0001-Static-library.patch39
-rw-r--r--ports/python3/0002-Static-CRT.patch15
-rw-r--r--ports/python3/0003-Fix-header-for-static-linkage.patch14
-rw-r--r--ports/python3/0004-Fix-iomodule-for-RS4-SDK.patch12
-rw-r--r--ports/python3/CONTROL3
-rw-r--r--ports/python3/portfile.cmake86
-rw-r--r--ports/qca/CONTROL4
-rw-r--r--ports/qhull/CONTROL3
-rw-r--r--ports/qhull/portfile.cmake49
-rw-r--r--ports/qpid-proton/CONTROL4
-rw-r--r--ports/qpid-proton/portfile.cmake48
-rw-r--r--ports/qscintilla/CONTROL4
-rw-r--r--ports/qscintilla/portfile.cmake71
-rw-r--r--ports/qt5-3d/CONTROL4
-rw-r--r--ports/qt5-3d/portfile.cmake5
-rw-r--r--ports/qt5-base/CONTROL4
-rw-r--r--ports/qt5-base/configure_qt.cmake (renamed from ports/qt5/configure_qt.cmake)67
-rw-r--r--ports/qt5-base/fix-system-freetype.patch13
-rw-r--r--ports/qt5-base/fix-system-pcre2-linux.patch17
-rw-r--r--ports/qt5-base/fix-system-pcre2.patch18
-rw-r--r--ports/qt5-base/fixcmake.py (renamed from ports/qt5/fixcmake.py)21
-rw-r--r--ports/qt5-base/install_qt.cmake (renamed from ports/qt5/install_qt.cmake)56
-rw-r--r--ports/qt5-base/portfile.cmake185
-rw-r--r--ports/qt5-base/qt_debug.conf13
-rw-r--r--ports/qt5-base/qt_release.conf13
-rw-r--r--ports/qt5-base/qtdeploy.ps1 (renamed from ports/qt5/qtdeploy.ps1)9
-rw-r--r--ports/qt5-charts/CONTROL4
-rw-r--r--ports/qt5-charts/portfile.cmake5
-rw-r--r--ports/qt5-datavis3d/CONTROL4
-rw-r--r--ports/qt5-datavis3d/portfile.cmake5
-rw-r--r--ports/qt5-declarative/CONTROL4
-rw-r--r--ports/qt5-declarative/portfile.cmake7
-rw-r--r--ports/qt5-gamepad/CONTROL4
-rw-r--r--ports/qt5-gamepad/portfile.cmake5
-rw-r--r--ports/qt5-graphicaleffects/CONTROL4
-rw-r--r--ports/qt5-graphicaleffects/portfile.cmake7
-rw-r--r--ports/qt5-imageformats/CONTROL4
-rw-r--r--ports/qt5-imageformats/portfile.cmake7
-rw-r--r--ports/qt5-modularscripts/CONTROL3
-rw-r--r--ports/qt5-modularscripts/fixcmake.py66
-rw-r--r--ports/qt5-modularscripts/portfile.cmake9
-rw-r--r--ports/qt5-modularscripts/qt_modular_library.cmake138
-rw-r--r--ports/qt5-multimedia/CONTROL4
-rw-r--r--ports/qt5-multimedia/portfile.cmake5
-rw-r--r--ports/qt5-networkauth/CONTROL4
-rw-r--r--ports/qt5-networkauth/portfile.cmake5
-rw-r--r--ports/qt5-quickcontrols/CONTROL4
-rw-r--r--ports/qt5-quickcontrols/portfile.cmake7
-rw-r--r--ports/qt5-quickcontrols2/CONTROL4
-rw-r--r--ports/qt5-quickcontrols2/portfile.cmake5
-rw-r--r--ports/qt5-scxml/CONTROL4
-rw-r--r--ports/qt5-scxml/portfile.cmake5
-rw-r--r--ports/qt5-serialport/CONTROL4
-rw-r--r--ports/qt5-serialport/portfile.cmake5
-rw-r--r--ports/qt5-speech/CONTROL4
-rw-r--r--ports/qt5-speech/portfile.cmake5
-rw-r--r--ports/qt5-svg/CONTROL4
-rw-r--r--ports/qt5-svg/portfile.cmake5
-rw-r--r--ports/qt5-tools/CONTROL4
-rw-r--r--ports/qt5-tools/portfile.cmake7
-rw-r--r--ports/qt5-virtualkeyboard/CONTROL4
-rw-r--r--ports/qt5-virtualkeyboard/portfile.cmake7
-rw-r--r--ports/qt5-websockets/CONTROL4
-rw-r--r--ports/qt5-websockets/portfile.cmake5
-rw-r--r--ports/qt5-winextras/CONTROL4
-rw-r--r--ports/qt5-winextras/portfile.cmake5
-rw-r--r--ports/qt5-xmlpatterns/CONTROL4
-rw-r--r--ports/qt5-xmlpatterns/portfile.cmake5
-rw-r--r--ports/qt5/CONTROL6
-rw-r--r--ports/qt5/fix-commandline-overrides.patch149
-rw-r--r--ports/qt5/fix-qalgorithms-vs2017.patch138
-rw-r--r--ports/qt5/portfile.cmake83
-rw-r--r--ports/quirc/CMakeLists.txt19
-rw-r--r--ports/quirc/CONTROL3
-rw-r--r--ports/quirc/patch-for-msvc.patch36
-rw-r--r--ports/quirc/portfile.cmake31
-rw-r--r--ports/qwt/CONTROL4
-rw-r--r--ports/qwt/portfile.cmake33
-rw-r--r--ports/ragel/CONTROL2
-rw-r--r--ports/ragel/portfile.cmake3
-rw-r--r--ports/range-v3-vs2015/CONTROL3
-rw-r--r--ports/range-v3-vs2015/portfile.cmake14
-rw-r--r--ports/range-v3/CONTROL3
-rw-r--r--ports/range-v3/portfile.cmake51
-rw-r--r--ports/rapidjson/CONTROL2
-rw-r--r--ports/rapidjson/portfile.cmake36
-rw-r--r--ports/rapidjson/usage4
-rw-r--r--ports/re2/CONTROL3
-rw-r--r--ports/re2/portfile.cmake20
-rw-r--r--ports/readosm/CONTROL4
-rw-r--r--ports/readosm/fix-makefiles.patch49
-rw-r--r--ports/readosm/fix-version-macro.patch13
-rw-r--r--ports/readosm/portfile.cmake86
-rw-r--r--ports/realsense2/CONTROL7
-rw-r--r--ports/realsense2/portfile.cmake58
-rw-r--r--ports/recast/CMakeLists.txt57
-rw-r--r--ports/recast/CONTROL3
-rw-r--r--ports/recast/portfile.cmake27
-rw-r--r--ports/redshell/CONTROL4
-rw-r--r--ports/redshell/portfile.cmake64
-rw-r--r--ports/refprop-headers/CONTROL3
-rw-r--r--ports/refprop-headers/portfile.cmake19
-rw-r--r--ports/restinio/CONTROL4
-rw-r--r--ports/restinio/portfile.cmake27
-rw-r--r--ports/rhash/CMakeLists.txt15
-rw-r--r--ports/rhash/CONTROL3
-rw-r--r--ports/rhash/portfile.cmake25
-rw-r--r--ports/robin-map/CONTROL3
-rw-r--r--ports/robin-map/portfile.cmake17
-rw-r--r--ports/rocksdb/0002-disable-gtest.patch25
-rw-r--r--ports/rocksdb/0003-only-build-one-flavor.patch48
-rw-r--r--ports/rocksdb/0004-zlib-findpackage.patch13
-rw-r--r--ports/rocksdb/CONTROL16
-rw-r--r--ports/rocksdb/Findlz4.cmake13
-rw-r--r--ports/rocksdb/Findsnappy.cmake13
-rw-r--r--ports/rocksdb/pass-major-version.patch20
-rw-r--r--ports/rocksdb/portfile.cmake89
-rw-r--r--ports/rocksdb/use-find-package.patch13
-rw-r--r--ports/rpclib/CONTROL3
-rw-r--r--ports/rpclib/portfile.cmake30
-rw-r--r--ports/rs-core-lib/CONTROL4
-rw-r--r--ports/rs-core-lib/portfile.cmake14
-rw-r--r--ports/rtmidi/CMakeLists.txt27
-rw-r--r--ports/rtmidi/CONTROL3
-rw-r--r--ports/rtmidi/portfile.cmake20
-rw-r--r--ports/rttr/CONTROL3
-rw-r--r--ports/rttr/disable-unit-tests.patch14
-rw-r--r--ports/rttr/fix-directory-output.patch10
-rw-r--r--ports/rttr/portfile.cmake55
-rw-r--r--ports/rttr/remove-owner-read-perms.patch41
-rw-r--r--ports/scintilla/CONTROL3
-rw-r--r--ports/scintilla/portfile.cmake55
-rw-r--r--ports/sciter/CONTROL2
-rw-r--r--ports/sciter/portfile.cmake57
-rw-r--r--ports/sdl2-gfx/CMakeLists.txt30
-rw-r--r--ports/sdl2-gfx/CONTROL4
-rw-r--r--ports/sdl2-gfx/portfile.cmake22
-rw-r--r--ports/sdl2-image/CMakeLists.txt98
-rw-r--r--ports/sdl2-image/CONTROL2
-rw-r--r--ports/sdl2-image/correct-sdl-headers-dir.patch25
-rw-r--r--ports/sdl2-image/portfile.cmake15
-rw-r--r--ports/sdl2-mixer/CMakeLists.txt50
-rw-r--r--ports/sdl2-mixer/CONTROL4
-rw-r--r--ports/sdl2-mixer/portfile.cmake10
-rw-r--r--ports/sdl2-net/CMakeLists.txt9
-rw-r--r--ports/sdl2-net/CONTROL2
-rw-r--r--ports/sdl2-ttf/CMakeLists.txt5
-rw-r--r--ports/sdl2-ttf/CONTROL2
-rw-r--r--ports/sdl2/CONTROL2
-rw-r--r--ports/sdl2/dont-ignore-default-libs.patch22
-rw-r--r--ports/sdl2/enable-winrt-cmake.patch206
-rw-r--r--ports/sdl2/export-symbols-only-in-shared-build.patch24
-rw-r--r--ports/sdl2/portfile.cmake115
-rw-r--r--ports/sdl2pp/CONTROL4
-rw-r--r--ports/sdl2pp/find-debug-libs.patch54
-rw-r--r--ports/sdl2pp/portfile.cmake28
-rw-r--r--ports/secp256k1/CMakeLists.txt26
-rw-r--r--ports/secp256k1/CONTROL3
-rw-r--r--ports/secp256k1/libsecp256k1-config.h29
-rw-r--r--ports/secp256k1/portfile.cmake28
-rw-r--r--ports/selene/CONTROL4
-rw-r--r--ports/selene/portfile.cmake34
-rw-r--r--ports/sery/CONTROL2
-rw-r--r--ports/sfgui/CONTROL4
-rw-r--r--ports/sfgui/portfile.cmake43
-rw-r--r--ports/sfml/CMakeLists.txt122
-rw-r--r--ports/sfml/CONTROL4
-rw-r--r--ports/sfml/portfile.cmake52
-rw-r--r--ports/shaderc/CMakeLists.txt60
-rw-r--r--ports/shaderc/CMakeLists_spirv.txt2
-rw-r--r--ports/shaderc/CONTROL2
-rw-r--r--ports/shaderc/portfile.cmake43
-rw-r--r--ports/shapelib/CONTROL3
-rw-r--r--ports/shapelib/option-build-test.patch13
-rw-r--r--ports/shapelib/portfile.cmake52
-rw-r--r--ports/shogun/CONTROL4
-rw-r--r--ports/shogun/MSDirent.cmake1
-rw-r--r--ports/shogun/cmake.patch73
-rw-r--r--ports/shogun/portfile.cmake78
-rw-r--r--ports/signalrclient/CONTROL4
-rw-r--r--ports/signalrclient/portfile.cmake26
-rw-r--r--ports/smpeg2/CMakeLists.txt5
-rw-r--r--ports/smpeg2/CONTROL2
-rw-r--r--ports/smpeg2/portfile.cmake1
-rw-r--r--ports/snappy/CMakeLists.txt164
-rw-r--r--ports/snappy/CONTROL2
-rw-r--r--ports/snappy/SnappyConfig.cmake.in9
-rw-r--r--ports/snappy/config.h.in95
-rw-r--r--ports/snappy/portfile.cmake20
-rw-r--r--ports/sobjectizer/CONTROL3
-rw-r--r--ports/sobjectizer/portfile.cmake36
-rw-r--r--ports/soci/CONTROL3
-rw-r--r--ports/soci/no-define-snprintf.patch14
-rw-r--r--ports/soci/portfile.cmake61
-rw-r--r--ports/soil/CMakeLists.txt50
-rw-r--r--ports/soil/CONTROL3
-rw-r--r--ports/soil/LICENSE6
-rw-r--r--ports/soil/SOILConfig.cmake.in13
-rw-r--r--ports/soil/SOILConfigVersion.cmake.in11
-rw-r--r--ports/soil/portfile.cmake29
-rw-r--r--ports/sol/CONTROL3
-rw-r--r--ports/sol/portfile.cmake14
-rw-r--r--ports/sophus/CONTROL4
-rw-r--r--ports/sophus/portfile.cmake27
-rw-r--r--ports/soundtouch/CMakeLists.txt32
-rw-r--r--ports/soundtouch/CONTROL4
-rw-r--r--ports/soundtouch/portfile.cmake39
-rw-r--r--ports/spaceland/CONTROL4
-rw-r--r--ports/spaceland/portfile.cmake37
-rw-r--r--ports/spatialite-tools/CONTROL4
-rw-r--r--ports/spatialite-tools/fix-makefiles.patch128
-rw-r--r--ports/spatialite-tools/portfile.cmake118
-rw-r--r--ports/spdlog/CONTROL2
-rw-r--r--ports/spdlog/portfile.cmake4
-rw-r--r--ports/speex/CMakeLists.txt80
-rw-r--r--ports/speex/CONTROL3
-rw-r--r--ports/speex/portfile.cmake27
-rw-r--r--ports/speexdsp/CMakeLists.txt37
-rw-r--r--ports/speexdsp/CONTROL4
-rw-r--r--ports/speexdsp/portfile.cmake30
-rw-r--r--ports/spirit-po/CONTROL4
-rw-r--r--ports/spirit-po/portfile.cmake16
-rw-r--r--ports/spirv-tools/CONTROL6
-rw-r--r--ports/spirv-tools/portfile.cmake80
-rw-r--r--ports/sqlite-modern-cpp/CONTROL2
-rw-r--r--ports/sqlite-modern-cpp/portfile.cmake16
-rw-r--r--ports/sqlite-orm/CONTROL4
-rw-r--r--ports/sqlite-orm/portfile.cmake15
-rw-r--r--ports/sqlite3/CMakeLists.txt29
-rw-r--r--ports/sqlite3/CONTROL9
-rw-r--r--ports/sqlite3/portfile.cmake26
-rw-r--r--ports/sqlitecpp/0001-Find-external-sqlite3.patch26
-rw-r--r--ports/sqlitecpp/CONTROL4
-rw-r--r--ports/sqlitecpp/portfile.cmake33
-rw-r--r--ports/stb/CONTROL2
-rw-r--r--ports/stb/portfile.cmake12
-rw-r--r--ports/string-theory/CONTROL3
-rw-r--r--ports/string-theory/portfile.cmake42
-rw-r--r--ports/strtk/CONTROL4
-rw-r--r--ports/strtk/copyright8
-rw-r--r--ports/strtk/portfile.cmake11
-rw-r--r--ports/suitesparse/CONTROL8
-rw-r--r--ports/suitesparse/fix-install-suitesparse.patch29
-rw-r--r--ports/suitesparse/portfile.cmake92
-rw-r--r--ports/suitesparse/remove-debug-postfix.patch11
-rw-r--r--ports/sundials/CONTROL3
-rw-r--r--ports/sundials/portfile.cmake49
-rw-r--r--ports/szip/CONTROL2
-rw-r--r--ports/szip/disable-static-lib-in-shared-build.patch15
-rw-r--r--ports/szip/fix-szip-config-to-set-szip-found.patch11
-rw-r--r--ports/szip/portfile.cmake28
-rw-r--r--ports/tacopie/CONTROL3
-rw-r--r--ports/tacopie/fix-cmakelists.patch27
-rw-r--r--ports/tacopie/fix-export.patch20
-rw-r--r--ports/tacopie/portfile.cmake46
-rw-r--r--ports/taglib/CONTROL4
-rw-r--r--ports/taglib/dont-assume-latin-1.patch18
-rw-r--r--ports/taglib/portfile.cmake18
-rw-r--r--ports/taglib/replace_non-uwp_functions.patch29
-rw-r--r--ports/tap-windows6/CONTROL3
-rw-r--r--ports/tap-windows6/portfile.cmake15
-rw-r--r--ports/tbb/CONTROL2
-rw-r--r--ports/tbb/portfile.cmake113
-rw-r--r--ports/tclap/CONTROL2
-rw-r--r--ports/tclap/portfile.cmake8
-rw-r--r--ports/telnetpp/CONTROL4
-rw-r--r--ports/telnetpp/portfile.cmake47
-rw-r--r--ports/tesseract/CONTROL4
-rw-r--r--ports/tesseract/portfile.cmake53
-rw-r--r--ports/tesseract/use-vcpkg-icu.patch11
-rw-r--r--ports/tesseract/ws2-32.patch12
-rw-r--r--ports/theia/CONTROL4
-rw-r--r--ports/theia/fix-cmakelists.patch310
-rw-r--r--ports/theia/fix-find-suitesparse.patch227
-rw-r--r--ports/theia/fix-glog-error.patch12
-rw-r--r--ports/theia/fix-oiio.patch391
-rw-r--r--ports/theia/fix-vlfeat-static.patch49
-rw-r--r--ports/theia/portfile.cmake63
-rw-r--r--ports/think-cell-range/CONTROL2
-rw-r--r--ports/think-cell-range/portfile.cmake8
-rw-r--r--ports/thor/CONTROL4
-rw-r--r--ports/thor/portfile.cmake70
-rw-r--r--ports/thrift/CONTROL4
-rw-r--r--ports/thrift/portfile.cmake55
-rw-r--r--ports/tidy-html5/CONTROL3
-rw-r--r--ports/tidy-html5/portfile.cmake40
-rw-r--r--ports/tidy-html5/remove_execution_character_set.patch90
-rw-r--r--ports/tiff/CONTROL4
-rw-r--r--ports/tiff/portfile.cmake9
-rw-r--r--ports/tiny-dnn/CONTROL3
-rw-r--r--ports/tiny-dnn/portfile.cmake14
-rw-r--r--ports/tinydir/CONTROL3
-rw-r--r--ports/tinydir/portfile.cmake11
-rw-r--r--ports/tinyexif/CONTROL4
-rw-r--r--ports/tinyexif/portfile.cmake30
-rw-r--r--ports/tinyexr/CONTROL2
-rw-r--r--ports/tinyexr/portfile.cmake2
-rw-r--r--ports/tinythread/CMakeLists.txt25
-rw-r--r--ports/tinythread/CONTROL3
-rw-r--r--ports/tinythread/portfile.cmake21
-rw-r--r--ports/tinytoml/CONTROL3
-rw-r--r--ports/tinytoml/portfile.cmake16
-rw-r--r--ports/tinyxml/0001_use_stl.patch27
-rw-r--r--ports/tinyxml/CMakeLists.txt25
-rw-r--r--ports/tinyxml/CONTROL3
-rw-r--r--ports/tinyxml/License.txt20
-rw-r--r--ports/tinyxml/portfile.cmake30
-rw-r--r--ports/tinyxml2/CONTROL4
-rw-r--r--ports/tinyxml2/portfile.cmake37
-rw-r--r--ports/tinyxml2/vcpkg-cmake-wrapper.cmake5
-rw-r--r--ports/torch-th/CONTROL3
-rw-r--r--ports/torch-th/debug.patch52
-rw-r--r--ports/torch-th/portfile.cmake36
-rw-r--r--ports/tre/CMakeLists.txt37
-rw-r--r--ports/tre/CONTROL3
-rw-r--r--ports/tre/portfile.cmake26
-rw-r--r--ports/treehopper/CONTROL3
-rw-r--r--ports/treehopper/portfile.cmake32
-rw-r--r--ports/unicorn-lib/CMakeLists.txt30
-rw-r--r--ports/unicorn-lib/CONTROL4
-rw-r--r--ports/unicorn-lib/portfile.cmake23
-rw-r--r--ports/unicorn/CONTROL3
-rw-r--r--ports/unicorn/portfile.cmake58
-rw-r--r--ports/units/CONTROL3
-rw-r--r--ports/units/portfile.cmake25
-rw-r--r--ports/unittest-cpp/CONTROL3
-rw-r--r--ports/unittest-cpp/portfile.cmake29
-rw-r--r--ports/unrar/CONTROL3
-rw-r--r--ports/unrar/portfile.cmake40
-rw-r--r--ports/urdfdom-headers/CONTROL3
-rw-r--r--ports/urdfdom-headers/portfile.cmake25
-rw-r--r--ports/urdfdom/0001_use_math_defines.patch26
-rw-r--r--ports/urdfdom/0002_fix_exports.patch29
-rw-r--r--ports/urdfdom/CONTROL4
-rw-r--r--ports/urdfdom/portfile.cmake51
-rw-r--r--ports/uriparser/CMakeLists.txt25
-rw-r--r--ports/uriparser/CONTROL3
-rw-r--r--ports/uriparser/portfile.cmake23
-rw-r--r--ports/utf8h/CONTROL3
-rw-r--r--ports/utf8h/portfile.cmake15
-rw-r--r--ports/utf8proc/CONTROL3
-rw-r--r--ports/utf8proc/fix-buildsystem.patch48
-rw-r--r--ports/utf8proc/portfile.cmake28
-rw-r--r--ports/utfcpp/CONTROL2
-rw-r--r--ports/utfcpp/portfile.cmake8
-rw-r--r--ports/utfz/CONTROL3
-rw-r--r--ports/utfz/portfile.cmake23
-rw-r--r--ports/uvatlas/portfile.cmake16
-rw-r--r--ports/uwebsockets/CMakeLists.txt1
-rw-r--r--ports/uwebsockets/CONTROL4
-rw-r--r--ports/uwebsockets/portfile.cmake14
-rw-r--r--ports/vlpp/CMakeLists.txt40
-rw-r--r--ports/vlpp/CONTROL3
-rw-r--r--ports/vlpp/portfile.cmake31
-rw-r--r--ports/vtk-dicom/CONTROL8
-rw-r--r--ports/vtk-dicom/portfile.cmake42
-rw-r--r--ports/vtk/CONTROL24
-rw-r--r--ports/vtk/FindGDAL.cmake127
-rw-r--r--ports/vtk/FindHDF5.cmake31
-rw-r--r--ports/vtk/SplitLibraryConfigurations.cmake28
-rw-r--r--ports/vtk/disable-workaround-findhdf5.patch21
-rw-r--r--ports/vtk/fix-find-libharu.patch18
-rw-r--r--ports/vtk/fix-find-libproj4.patch68
-rw-r--r--ports/vtk/fix-find-mysql.patch10
-rw-r--r--ports/vtk/fix-find-odbc.patch11
-rw-r--r--ports/vtk/netcdf-use-hdf5-definitions.patch10
-rw-r--r--ports/vtk/portfile.cmake350
-rw-r--r--ports/vtk/transfer-3rd-party-module-definitions.patch26
-rw-r--r--ports/vtk/transfer-hdf5-definitions.patch10
-rw-r--r--ports/vtk/use-fixed-find-hdf5.patch20
-rw-r--r--ports/vxl/CONTROL4
-rw-r--r--ports/vxl/portfile.cmake37
-rw-r--r--ports/websocketpp/CONTROL4
-rw-r--r--ports/websocketpp/openssl_110.patch19
-rw-r--r--ports/websocketpp/portfile.cmake28
-rw-r--r--ports/wildmidi/0001-add-install-target.patch30
-rw-r--r--ports/wildmidi/0002-use-ansi.patch22
-rw-r--r--ports/wildmidi/CONTROL3
-rw-r--r--ports/wildmidi/portfile.cmake51
-rw-r--r--ports/wincrypt/CONTROL3
-rw-r--r--ports/wincrypt/portfile.cmake30
-rw-r--r--ports/winpcap/CONTROL3
-rw-r--r--ports/winpcap/create_bin.bat20
-rw-r--r--ports/winpcap/create_lib.patch19
-rw-r--r--ports/winpcap/packetNtx.patch.in725
-rw-r--r--ports/winpcap/portfile.cmake190
-rw-r--r--ports/winpcap/wpcap.patch414
-rw-r--r--ports/winpcap/wpcap.patch.in414
-rw-r--r--ports/winsock2/CONTROL3
-rw-r--r--ports/winsock2/portfile.cmake30
-rw-r--r--ports/wt/0001-boost-1.66.patch370
-rw-r--r--ports/wt/0002-link-glew.patch23
-rw-r--r--ports/wt/0003-disable-boost-autolink.patch22
-rw-r--r--ports/wt/CONTROL4
-rw-r--r--ports/wt/add-disable-boost-autolink-option.patch26
-rw-r--r--ports/wt/portfile.cmake35
-rw-r--r--ports/wtl/CONTROL2
-rw-r--r--ports/wtl/portfile.cmake11
-rw-r--r--ports/wxwidgets/CONTROL4
-rw-r--r--ports/wxwidgets/disable-platform-lib-dir.patch13
-rw-r--r--ports/wxwidgets/portfile.cmake51
-rw-r--r--ports/x264/CONTROL3
-rw-r--r--ports/x264/portfile.cmake133
-rw-r--r--ports/x264/uwp-cflags.patch12
-rw-r--r--ports/x265/CONTROL3
-rw-r--r--ports/x265/disable-install-pdb.patch13
-rw-r--r--ports/x265/portfile.cmake42
-rw-r--r--ports/xalan-c/portfile.cmake8
-rw-r--r--ports/xerces-c/portfile.cmake16
-rw-r--r--ports/xerces-c/usage4
-rw-r--r--ports/xlnt/CONTROL3
-rw-r--r--ports/xlnt/portfile.cmake12
-rw-r--r--ports/xxhash/CONTROL2
-rw-r--r--ports/xxhash/portfile.cmake25
-rw-r--r--ports/yajl/CONTROL3
-rw-r--r--ports/yajl/cmake.patch36
-rw-r--r--ports/yajl/portfile.cmake34
-rw-r--r--ports/yaml-cpp/CONTROL2
-rw-r--r--ports/yaml-cpp/portfile.cmake72
-rw-r--r--ports/yara/CMakeLists.txt106
-rw-r--r--ports/yara/CONTROL4
-rw-r--r--ports/yara/portfile.cmake26
-rw-r--r--ports/yato/CONTROL3
-rw-r--r--ports/yato/portfile.cmake41
-rw-r--r--ports/yoga/CONTROL3
-rw-r--r--ports/yoga/portfile.cmake47
-rw-r--r--ports/zeromq/CONTROL2
-rw-r--r--ports/zeromq/portfile.cmake108
-rw-r--r--ports/zlib/CONTROL4
-rw-r--r--ports/zlib/cmake_dont_build_more_than_needed.patch42
-rw-r--r--ports/zlib/portfile.cmake29
-rw-r--r--ports/zlib/usage4
-rw-r--r--ports/zstd/CONTROL2
-rw-r--r--ports/zstd/fix-buildsystem.diff100
-rw-r--r--ports/zstd/portfile.cmake23
-rw-r--r--ports/zziplib/CMakeLists.txt3
-rw-r--r--ports/zziplib/CONTROL2
-rw-r--r--ports/zziplib/portfile.cmake11
2005 files changed, 62805 insertions, 7865 deletions
diff --git a/ports/abseil/CMakeLists.txt b/ports/abseil/CMakeLists.txt
new file mode 100644
index 000000000..fabe1516c
--- /dev/null
+++ b/ports/abseil/CMakeLists.txt
@@ -0,0 +1,96 @@
+cmake_minimum_required(VERSION 3.8)
+project(abseil CXX)
+
+add_definitions(-DNOMINMAX -DWIN32_LEAN_AND_MEAN)
+
+set(CMAKE_CXX_STANDARD 14)
+
+set(CMAKE_DEBUG_POSTFIX d)
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+if(CMAKE_BUILD_TYPE STREQUAL "Release")
+ option(INSTALL_HEADERS "Install header files" ON)
+else()
+ option(INSTALL_HEADERS "Install header files" OFF)
+endif()
+
+function(add_sublibrary LIB)
+ file(GLOB_RECURSE SOURCES "absl/${LIB}/*.cc")
+ list(FILTER SOURCES EXCLUDE REGEX "_test(ing)?(_.+)?.cc$|_nonprod.cc$|test_util.cc$")
+ file(GLOB HEADERS "absl/${LIB}/*.h" "absl/${LIB}/*.inc")
+ file(GLOB INTERNAL_HEADERS "absl/${LIB}/internal/*.h")
+
+ if(SOURCES)
+ if("STATIC" IN_LIST ARGN)
+ add_library(${LIB} STATIC ${SOURCES})
+ else()
+ add_library(${LIB} ${SOURCES})
+ endif()
+ set_target_properties(${LIB} PROPERTIES OUTPUT_NAME "absl_${LIB}")
+ target_include_directories(${LIB} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<INSTALL_INTERFACE:include>)
+ else()
+ add_library(${LIB} INTERFACE)
+ target_include_directories(${LIB} INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<INSTALL_INTERFACE:include>)
+ endif()
+
+
+ install(TARGETS ${LIB} EXPORT unofficial-abseil-targets
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ )
+
+ if(INSTALL_HEADERS)
+ if(HEADERS)
+ install(FILES ${HEADERS} DESTINATION "include/absl/${LIB}")
+ endif()
+ if(INTERNAL_HEADERS)
+ install(FILES ${INTERNAL_HEADERS} DESTINATION "include/absl/${LIB}/internal")
+ endif()
+ endif()
+endfunction()
+
+function(target_link_public_libraries A)
+ get_target_property(A_TYPE ${A} TYPE)
+ if(A_TYPE STREQUAL INTERFACE_LIBRARY)
+ target_link_libraries(${A} INTERFACE ${ARGN})
+ else()
+ target_link_libraries(${A} PUBLIC ${ARGN})
+ endif()
+endfunction()
+
+add_sublibrary(algorithm)
+add_sublibrary(base)
+add_sublibrary(container)
+add_sublibrary(debugging)
+add_sublibrary(memory)
+add_sublibrary(meta)
+add_sublibrary(numeric)
+add_sublibrary(strings)
+add_sublibrary(synchronization STATIC)
+# Time must be static because there are global variables intended for export
+add_sublibrary(time STATIC)
+add_sublibrary(types)
+add_sublibrary(utility)
+
+target_link_public_libraries(algorithm base meta)
+target_link_public_libraries(container algorithm base memory)
+target_link_public_libraries(debugging base)
+target_link_public_libraries(memory meta)
+target_link_public_libraries(meta base)
+target_link_public_libraries(numeric base)
+target_link_public_libraries(strings base memory meta numeric)
+target_link_public_libraries(types base utility meta algorithm strings)
+target_link_public_libraries(utility base meta)
+target_link_public_libraries(time base numeric)
+target_link_public_libraries(synchronization base time)
+
+find_package(unofficial-cctz REQUIRED)
+target_link_libraries(time PUBLIC unofficial::cctz)
+
+install(
+ EXPORT unofficial-abseil-targets
+ FILE unofficial-abseil-config.cmake
+ NAMESPACE unofficial::abseil::
+ DESTINATION share/unofficial-abseil
+)
diff --git a/ports/abseil/CONTROL b/ports/abseil/CONTROL
new file mode 100644
index 000000000..0b46aff1e
--- /dev/null
+++ b/ports/abseil/CONTROL
@@ -0,0 +1,7 @@
+Source: abseil
+Version: 2018-05-01-1
+Description: an open-source collection designed to augment the C++ standard library.
+ Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.
+ In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you.
+ Abseil is not meant to be a competitor to the standard library; we've just found that many of these utilities serve a purpose within our code base, and we now want to provide those resources to the C++ community as a whole.
+Build-Depends: cctz
diff --git a/ports/abseil/portfile.cmake b/ports/abseil/portfile.cmake
new file mode 100644
index 000000000..46a31b2e4
--- /dev/null
+++ b/ports/abseil/portfile.cmake
@@ -0,0 +1,36 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "Abseil currently only supports being built for desktop")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO abseil/abseil-cpp
+ REF 9613678332c976568272c8f4a78631a29159271d
+ SHA512 a3694d4c74f542f7a55872707548469e1bdc6dcd05d40ffd62de41d7440dc1fb98d260f690a6799ad39142e35226b04aacc6122aa1edf104fc9d396997995a8c
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-abseil TARGET_PATH share/unofficial-abseil)
+
+file(GLOB_RECURSE HEADERS ${CURRENT_PACKAGES_DIR}/include/*)
+foreach(FILE ${HEADERS})
+ file(READ "${FILE}" _contents)
+ string(REPLACE "std::min(" "(std::min)(" _contents "${_contents}")
+ string(REPLACE "std::max(" "(std::max)(" _contents "${_contents}")
+ file(WRITE "${FILE}" "${_contents}")
+endforeach()
+
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/abseil RENAME copyright)
diff --git a/ports/ace/CONTROL b/ports/ace/CONTROL
index 7a620f3c6..4dc7311b2 100644
--- a/ports/ace/CONTROL
+++ b/ports/ace/CONTROL
@@ -1,3 +1,3 @@
Source: ace
-Version: 6.4.3
+Version: 6.4.8
Description: The ADAPTIVE Communication Environment
diff --git a/ports/ace/portfile.cmake b/ports/ace/portfile.cmake
index a6293fa24..5f8f178e5 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.3.zip"
- FILENAME "ACE-6.4.3.zip"
- SHA512 1d700733ec617559f338e908b2343c66c0c856bfac7bd2230f18290970fe3bc25a394839a9d66fa74f6edd239a70f9d6cf5746585ed796fbe9f8aeca90eab84e
+ URLS "http://download.dre.vanderbilt.edu/previous_versions/ACE-6.4.8.zip"
+ FILENAME "ACE-6.4.8.zip"
+ SHA512 a46e7d03bf9d8a76905c91e416749b092016210bd93308bdee0ca8740f7f3ac7c4b4d5688929729fa277c02019710c7e288f5f5f9ee187a0ec176d9ebbb90f96
)
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/no-pragma-warning.patch b/ports/alac-decoder/no-pragma-warning.patch
new file mode 100644
index 000000000..97e2960c8
--- /dev/null
+++ b/ports/alac-decoder/no-pragma-warning.patch
@@ -0,0 +1,14 @@
+diff --git a/alac.c b/alac.c
+index b829e29..8e8805f 100644
+--- a/alac.c
++++ b/alac.c
+@@ -284,7 +284,9 @@ static int count_leading_zeros(int input)
+ return output;
+ }
+ #else
++#if !defined(_MSC_VER)
+ #warning using generic count leading zeroes. You may wish to write one for your CPU / compiler
++#endif
+ static int count_leading_zeros(int input)
+ {
+ int output = 0;
diff --git a/ports/alac-decoder/portfile.cmake b/ports/alac-decoder/portfile.cmake
new file mode 100644
index 000000000..c1390d7f8
--- /dev/null
+++ b/ports/alac-decoder/portfile.cmake
@@ -0,0 +1,31 @@
+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
+ ${CMAKE_CURRENT_LIST_DIR}/no-pragma-warning.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON
+)
+
+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/CMakeLists.txt b/ports/alac/CMakeLists.txt
new file mode 100644
index 000000000..843189546
--- /dev/null
+++ b/ports/alac/CMakeLists.txt
@@ -0,0 +1,65 @@
+cmake_minimum_required (VERSION 3.9)
+project (alac)
+
+set(HEADERS
+ codec/EndianPortable.h
+ codec/aglib.h
+ codec/ALACAudioTypes.h
+ codec/ALACBitUtilities.h
+ codec/ALACDecoder.h
+ codec/ALACEncoder.h
+ codec/dplib.h
+ codec/matrixlib.h
+)
+
+
+set (SRCS
+ codec/EndianPortable.c
+ codec/ALACBitUtilities.c
+ codec/ALACDecoder.cpp
+ codec/ALACEncoder.cpp
+ codec/ag_dec.c
+ codec/ag_enc.c
+ codec/dp_dec.c
+ codec/dp_enc.c
+ codec/matrix_dec.c
+ codec/matrix_enc.c
+)
+
+set(EXE_SRCS
+ convert-utility/main.cpp
+ convert-utility/CAFFileALAC.cpp
+)
+
+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(. codec convert-utility)
+
+add_library(libalac ${SRCS})
+
+add_executable(alacconvert ${EXE_SRCS})
+target_link_libraries(alacconvert libalac)
+
+install(
+ TARGETS libalac
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_TOOLS)
+ install (
+ TARGETS alacconvert
+ RUNTIME DESTINATION tools/alac
+ )
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES ${HEADERS} DESTINATION include/alac)
+endif()
diff --git a/ports/alac/CONTROL b/ports/alac/CONTROL
new file mode 100644
index 000000000..f50b135e9
--- /dev/null
+++ b/ports/alac/CONTROL
@@ -0,0 +1,3 @@
+Source: alac
+Version: 2017-11-03-c38887c5
+Description: The Apple Lossless Audio Codec (ALAC) is a lossless audio codec developed by Apple and deployed on all of its platforms and devices.
diff --git a/ports/alac/portfile.cmake b/ports/alac/portfile.cmake
new file mode 100644
index 000000000..309ebfef9
--- /dev/null
+++ b/ports/alac/portfile.cmake
@@ -0,0 +1,25 @@
+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 macosforge/alac
+ REF c38887c5c5e64a4b31108733bd79ca9b2496d987
+ SHA512 8da18df25807e76f9187f7bf30585aace303d55444f0a614ab00d98d11caca3fdc5c6f5b9fd11e5f4c92a2ab1e86fef73deeeada57e9d49951fea8b80ba383cc
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+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)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/alac RENAME copyright)
diff --git a/ports/alembic/CONTROL b/ports/alembic/CONTROL
new file mode 100644
index 000000000..9a43a7b00
--- /dev/null
+++ b/ports/alembic/CONTROL
@@ -0,0 +1,4 @@
+Source: alembic
+Version: 1.7.8
+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/bypass-findhdf5.patch b/ports/alembic/bypass-findhdf5.patch
new file mode 100644
index 000000000..91cb37fab
--- /dev/null
+++ b/ports/alembic/bypass-findhdf5.patch
@@ -0,0 +1,30 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ce0a8e0..229fc77 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -226,7 +226,24 @@ INCLUDE_DIRECTORIES(${ALEMBIC_ILMBASE_INCLUDE_DIRECTORY})
+ IF (USE_HDF5)
+ FIND_PACKAGE(ZLIB REQUIRED)
+ SET(ALEMBIC_WITH_HDF5 "1")
+- INCLUDE("./cmake/AlembicHDF5.cmake")
++ #INCLUDE("./cmake/AlembicHDF5.cmake")
++ FIND_LIBRARY(HDF5_LIBRARIES_RELEASE
++ NAMES hdf5
++ PATHS ${HDF5_ROOT}/lib
++ )
++ MESSAGE(STATUS ${HDF5_LIBRARIES_RELEASE})
++ FIND_LIBRARY(HDF5_LIBRARIES_DEBUG
++ NAMES hdf5_D
++ PATHS ${HDF5_ROOT}/debug/lib
++ )
++ MESSAGE(STATUS ${HDF5_LIBRARIES_DEBUG})
++ SET(HDF5_LIBRARIES
++ optimized ${HDF5_LIBRARIES_RELEASE}
++ debug ${HDF5_LIBRARIES_DEBUG}
++ )
++ SET(HDF5_INCLUDE_DIRS
++ ${HDF5_ROOT}/include
++ )
+ INCLUDE_DIRECTORIES(${HDF5_INCLUDE_DIRS})
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DH5_USE_18_API")
+ ENDIF()
diff --git a/ports/alembic/fix-hdf5link.patch b/ports/alembic/fix-hdf5link.patch
new file mode 100644
index 000000000..b9729f1ca
--- /dev/null
+++ b/ports/alembic/fix-hdf5link.patch
@@ -0,0 +1,17 @@
+diff --git a/lib/Alembic/CMakeLists.txt b/lib/Alembic/CMakeLists.txt
+index 5028c91..1f81d50 100644
+--- a/lib/Alembic/CMakeLists.txt
++++ b/lib/Alembic/CMakeLists.txt
+@@ -49,6 +49,12 @@ ADD_SUBDIRECTORY(AbcMaterial)
+ ADD_SUBDIRECTORY(Ogawa)
+
+ ADD_LIBRARY(Alembic ${LIB_TYPE} ${CXX_FILES})
++IF (USE_HDF5)
++ TARGET_LINK_LIBRARIES(Alembic
++ ${HDF5_LIBRARIES}
++ )
++ ADD_DEFINITIONS(-DH5_BUILT_AS_DYNAMIC_LIB)
++ENDIF()
+
+ TARGET_INCLUDE_DIRECTORIES(Alembic
+ PUBLIC
diff --git a/ports/alembic/portfile.cmake b/ports/alembic/portfile.cmake
new file mode 100644
index 000000000..d9720a178
--- /dev/null
+++ b/ports/alembic/portfile.cmake
@@ -0,0 +1,57 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(STATUS "Alembic does not support static linkage. Building dynamically.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO alembic/alembic
+ REF 1.7.8
+ SHA512 bc36e30d1aecd67da16247365a973c462e9716309d090fefe36f625c8d2ab2d517fe8ac694a9188cd6eeb623a3217f59f461c82fcfec43d0a60a07381526983a
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-hdf5link.patch
+ ${CMAKE_CURRENT_LIST_DIR}/bypass-findhdf5.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DUSE_HDF5=ON
+ -DHDF5_ROOT=${CURRENT_INSTALLED_DIR}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/Alembic")
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(GLOB EXE ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+file(GLOB DEBUG_EXE ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+file(REMOVE ${EXE})
+file(REMOVE ${DEBUG_EXE})
+file(RENAME ${CURRENT_PACKAGES_DIR}/lib/Alembic.dll ${CURRENT_PACKAGES_DIR}/bin/Alembic.dll)
+file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/Alembic.dll ${CURRENT_PACKAGES_DIR}/debug/bin/Alembic.dll)
+
+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}")
+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}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/Alembic/AlembicTargets-release.cmake "${RELEASE_CONFIG}")
+
+# Put the license file where vcpkg expects it
+file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/Alembic/)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/Alembic/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/Alembic/copyright)
diff --git a/ports/allegro5/CONTROL b/ports/allegro5/CONTROL
new file mode 100644
index 000000000..6cf78f2a0
--- /dev/null
+++ b/ports/allegro5/CONTROL
@@ -0,0 +1,4 @@
+Source: allegro5
+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/fix-pdb-install.patch b/ports/allegro5/fix-pdb-install.patch
new file mode 100644
index 000000000..714c69cf5
--- /dev/null
+++ b/ports/allegro5/fix-pdb-install.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 72348fe..c6fbecb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1010,14 +1010,9 @@ else()
+ set(PKG_CONFIG_FILES allegro ${ADDON_PKG_CONFIG_FILES})
+ endif(WANT_MONOLITH)
+
+-# Install pkg-config files on Unix, and when cross-compiling on Unix.
++# Install pkg-config files
+
+-if(UNIX AND NOT WANT_FRAMEWORKS AND NOT IPHONE)
+- set(INSTALL_PKG_CONFIG_FILES true)
+-endif()
+-if(CMAKE_CROSSCOMPILING AND CMAKE_HOST_UNIX)
+- set(INSTALL_PKG_CONFIG_FILES true)
+-endif()
++set(INSTALL_PKG_CONFIG_FILES true)
+
+ if(INSTALL_PKG_CONFIG_FILES)
+ append_lib_type_suffix(lib_type)
+diff --git a/cmake/Common.cmake b/cmake/Common.cmake
+index 782196f..de29535 100644
+--- a/cmake/Common.cmake
++++ b/cmake/Common.cmake
+@@ -223,7 +223,7 @@ function(install_our_library target filename)
+ # PUBLIC_HEADER DESTINATION "include"
+ )
+ if(MSVC AND BUILD_SHARED_LIBS)
+- install(FILES ${CMAKE_BINARY_DIR}/lib/\${CMAKE_INSTALL_CONFIG_NAME}/${filename}.pdb
++ install(FILES ${CMAKE_BINARY_DIR}/lib/${filename}.pdb
+ DESTINATION lib
+ CONFIGURATIONS Debug RelWithDebInfo
+ )
diff --git a/ports/allegro5/portfile.cmake b/ports/allegro5/portfile.cmake
new file mode 100644
index 000000000..d22a0ecd9
--- /dev/null
+++ b/ports/allegro5/portfile.cmake
@@ -0,0 +1,94 @@
+# 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(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO liballeg/allegro5
+ REF 5.2.3.0
+ SHA512 419f036d0265062dbec0e9306b153de5af5375186f7b5b2fe62a80549fc0e2c2a6afff81a6772effa7624fe2e452ed0a2830872ef25cc3b23fea93af99f60ba9
+ HEAD_REF master
+)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(ALLEGRO_USE_STATIC ON)
+else()
+ set(ALLEGRO_USE_STATIC OFF)
+endif()
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-pdb-install.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ -DWANT_DOCS=OFF
+ -DALLEGRO_SDL=OFF
+ -DWANT_DEMO=OFF
+ -DSHARED=${ALLEGRO_USE_STATIC}
+ -DWANT_EXAMPLES=OFF
+ -DWANT_CURL_EXAMPLE=OFF
+ -DWANT_TESTS=OFF
+ -DWANT_AUDIO=ON
+ -DWANT_COLOR=ON
+ -DWANT_D3D=ON
+ -DWANT_D3D9EX=OFF # Not available on vcpkg
+ -DWANT_DSOUND=ON
+ -DWANT_FLAC=ON
+ -DWANT_FONT=ON
+ -DWANT_GLES2=ON
+ -DWANT_GLES3=ON
+ -DWANT_IMAGE=ON
+ -DWANT_IMAGE_JPG=ON
+ -DWANT_IMAGE_PNG=ON
+ -DWANT_MEMFILE=ON
+ -DWANT_MODAUDIO=OFF # Not available on vcpkg right now
+ -DWANT_NATIVE_DIALOG=ON
+ -DWANT_NATIVE_IMAGE_LOADER=ON
+ -DWANT_OGG_VIDEO=ON
+ -DWANT_OPENAL=ON
+ -DWANT_OPENGL=ON
+ -DWANT_OPENSL=OFF # Not yet available on vcpkg
+ -DWANT_OPUS=ON
+ -DWANT_PHYSFS=ON
+ -DWANT_POPUP_EXAMPLES=OFF
+ -DWANT_PRIMITIVES=ON
+ -DWANT_RELEASE_LOGGING=OFF
+ -DWANT_SHADERS_D3D=ON
+ -DWANT_SHADERS_GL=ON
+ -DWANT_TREMOR=OFF # Not yet available on vcpkg
+ -DWANT_TTF=ON
+ -DWANT_VIDEO=ON
+ -DWANT_VORBIS=ON
+ -DOPENAL_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/AL
+ -DZLIB_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include
+ OPTIONS_RELEASE -DWANT_ALLOW_SSE=ON
+ OPTIONS_DEBUG -DWANT_ALLOW_SSE=OFF
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/allegro5)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/allegro5/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/allegro5/copyright)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(GLOB PDB_GLOB ${CURRENT_BUILDTREES_DIR}-dbg/lib/*.pdb)
+file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}-dbg/lib/Debug)
+file(COPY ${PDB_GLOB} DESTINATION ${CURRENT_BUILDTREES_DIR}-dbg/lib/Debug)
+
+vcpkg_copy_pdbs()
diff --git a/ports/anax/CONTROL b/ports/anax/CONTROL
index ce3da2f57..12be38d11 100644
--- a/ports/anax/CONTROL
+++ b/ports/anax/CONTROL
@@ -1,3 +1,3 @@
Source: anax
-Version: 2.1.0-1
+Version: 2.1.0-3
Description: An open source C++ entity system. <https://github.com/miguelmartin75/anax>
diff --git a/ports/anax/portfile.cmake b/ports/anax/portfile.cmake
index ef14f7264..8881957fc 100644
--- a/ports/anax/portfile.cmake
+++ b/ports/anax/portfile.cmake
@@ -8,13 +8,13 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/anax-2.1.0)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/miguelmartin75/anax/archive/v2.1.0.zip"
- FILENAME "anax-2.1.0.zip"
- SHA512 89f2df64add676ab48a19953b95d8eae1da9c8c5f3c0f6bc757a3bc99af6e4360c56c12d27d12c672ccd754b1f53a5e271533b381641f20e8cf3ca8ddda6cd1a
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO miguelmartin75/anax
+ REF v2.1.0
+ SHA512 b573733b5f9634bf8cfc5b0715074f9a8ee29ecb48dc981d9371254a1f6ff8afbbb9ba6aa0877d53e518e5486ecc398a6d331fb9b5dbfd17d8707679216e11a3
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
@@ -23,8 +23,8 @@ vcpkg_apply_patches(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS
- -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
+ OPTIONS
+ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
)
vcpkg_install_cmake()
@@ -34,3 +34,5 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/anax)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/anax/LICENSE ${CURRENT_PACKAGES_DIR}/share/anax/copyright)
+
+vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/angle/001-fix-uwp.patch b/ports/angle/001-fix-uwp.patch
new file mode 100644
index 000000000..bae1c8724
--- /dev/null
+++ b/ports/angle/001-fix-uwp.patch
@@ -0,0 +1,113 @@
+diff --git "a//src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp" "b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp"
+index dd37ace8..9116b9e6 100644
+--- "a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp"
++++ "b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp"
+@@ -141,6 +141,7 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device,
+ unsigned int width,
+ unsigned int height,
+ bool containsAlpha,
++ unsigned int samples,
+ IDXGISwapChain1 **swapChain)
+ {
+ if (device == nullptr || factory == nullptr || swapChain == nullptr || width == 0 ||
+@@ -154,7 +155,7 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device,
+ swapChainDesc.Height = height;
+ swapChainDesc.Format = format;
+ swapChainDesc.Stereo = FALSE;
+- swapChainDesc.SampleDesc.Count = 1;
++ swapChainDesc.SampleDesc.Count = samples;
+ swapChainDesc.SampleDesc.Quality = 0;
+ swapChainDesc.BufferUsage =
+ DXGI_USAGE_SHADER_INPUT | DXGI_USAGE_RENDER_TARGET_OUTPUT | DXGI_USAGE_BACK_BUFFER;
+diff --git "a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h" "b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h"
+index d43bf0ba..77b4ae95 100644
+--- "a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h"
++++ "b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h"
+@@ -32,7 +32,8 @@ class CoreWindowNativeWindow : public InspectableNativeWindow, public std::enabl
+ DXGI_FORMAT format,
+ unsigned int width,
+ unsigned int height,
+- bool containsAlpha,
++ bool containsAlpha,
++ unsigned int samples,
+ IDXGISwapChain1 **swapChain) override;
+
+ protected:
+diff --git "a/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h" "b/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h"
+index 3e67269f..a66935ce 100644
+--- "a/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h"
++++ "b/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h"
+@@ -53,6 +53,7 @@ class InspectableNativeWindow
+ unsigned int width,
+ unsigned int height,
+ bool containsAlpha,
++ unsigned int samples,
+ IDXGISwapChain1 **swapChain) = 0;
+
+ bool getClientRect(RECT *rect)
+diff --git "a/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp" "b/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp"
+index 2ef2235c..284fccbb 100644
+--- "a/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp"
++++ "b/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp"
+@@ -89,6 +89,7 @@ HRESULT NativeWindow11WinRT::createSwapChain(ID3D11Device *device,
+ DXGI_FORMAT format,
+ UINT width,
+ UINT height,
++ UINT samples,
+ IDXGISwapChain **swapChain)
+ {
+ if (mImpl)
+@@ -96,7 +97,7 @@ HRESULT NativeWindow11WinRT::createSwapChain(ID3D11Device *device,
+ IDXGIFactory2 *factory2 = d3d11::DynamicCastComObject<IDXGIFactory2>(factory);
+ IDXGISwapChain1 *swapChain1 = nullptr;
+ HRESULT result =
+- mImpl->createSwapChain(device, factory2, format, width, height, mHasAlpha, &swapChain1);
++ mImpl->createSwapChain(device, factory2, format, width, height, mHasAlpha, samples, &swapChain1);
+ SafeRelease(factory2);
+ *swapChain = static_cast<IDXGISwapChain *>(swapChain1);
+ return result;
+diff --git "a/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h" "b/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h"
+index 996fd3a1..97a2c2c4 100644
+--- "a/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h"
++++ "b/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h"
+@@ -34,6 +34,7 @@ class NativeWindow11WinRT : public NativeWindow11
+ DXGI_FORMAT format,
+ UINT width,
+ UINT height,
++ UINT samples,
+ IDXGISwapChain **swapChain) override;
+
+ void commitChange() override;
+diff --git "a/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp" "b/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp"
+index c6d07fc8..89d9f870 100644
+--- "a/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp"
++++ "b/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp"
+@@ -246,6 +246,7 @@ HRESULT SwapChainPanelNativeWindow::createSwapChain(ID3D11Device *device,
+ unsigned int width,
+ unsigned int height,
+ bool containsAlpha,
++ unsigned int samples,
+ IDXGISwapChain1 **swapChain)
+ {
+ if (device == nullptr || factory == nullptr || swapChain == nullptr || width == 0 ||
+@@ -259,7 +260,7 @@ HRESULT SwapChainPanelNativeWindow::createSwapChain(ID3D11Device *device,
+ swapChainDesc.Height = height;
+ swapChainDesc.Format = format;
+ swapChainDesc.Stereo = FALSE;
+- swapChainDesc.SampleDesc.Count = 1;
++ swapChainDesc.SampleDesc.Count = samples;
+ swapChainDesc.SampleDesc.Quality = 0;
+ swapChainDesc.BufferUsage =
+ DXGI_USAGE_SHADER_INPUT | DXGI_USAGE_RENDER_TARGET_OUTPUT | DXGI_USAGE_BACK_BUFFER;
+diff --git "a/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h" "b/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h"
+index f9a2fc0e..dc5c804e 100644
+--- "a/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h"
++++ "b/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h"
+@@ -27,6 +27,7 @@ class SwapChainPanelNativeWindow : public InspectableNativeWindow, public std::e
+ unsigned int width,
+ unsigned int height,
+ bool containsAlpha,
++ unsigned int samples,
+ IDXGISwapChain1 **swapChain) override;
+
+ protected:
diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt
new file mode 100644
index 000000000..53fff2223
--- /dev/null
+++ b/ports/angle/CMakeLists.txt
@@ -0,0 +1,210 @@
+cmake_minimum_required(VERSION 3.8)
+project(angle CXX)
+
+if(WIN32 AND NOT WINDOWS_STORE)
+ set(WINDOWS_DESKTOP 1)
+else()
+ set(WINDOWS_DESKTOP 0)
+endif()
+
+add_compile_options(/d2guard4 /Wv:18)
+set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /guard:cf")
+
+add_definitions(
+ -D_CRT_SECURE_NO_DEPRECATE
+ -D_SCL_SECURE_NO_WARNINGS
+ -D_HAS_EXCEPTIONS=0
+ -DNOMINMAX
+ -DANGLE_STANDALONE_BUILD
+ -DANGLE_ENABLE_DEBUG_ANNOTATIONS
+)
+
+configure_file(commit.h include/id/commit.h COPYONLY)
+include_directories(include src ${CMAKE_CURRENT_BINARY_DIR}/include)
+
+##########
+# angle::common
+file(GLOB ANGLE_COMMON_SOURCES "src/common/*.h" "src/common/*.inl" "src/common/*.cpp" "src/common/third_party/base/*.h")
+list(FILTER ANGLE_COMMON_SOURCES EXCLUDE REGEX "_unittest|event_tracer|_linux|_mac")
+add_library(angle_common STATIC ${ANGLE_COMMON_SOURCES})
+target_include_directories(angle_common PUBLIC src/common/third_party/base)
+add_library(angle::common ALIAS angle_common)
+
+##########
+# angle::image_util
+file(GLOB ANGLE_IMAGE_UTIL_SOURCES "src/image_util/*.h" "src/image_util/*.inl" "src/image_util/*.cpp")
+add_library(angle_image_util STATIC ${ANGLE_IMAGE_UTIL_SOURCES})
+target_link_libraries(angle_image_util PRIVATE angle::common)
+add_library(angle::image_util ALIAS angle_image_util)
+
+##########
+# angle::translator
+file(GLOB TRANSLATOR_SOURCES
+ "src/compiler/translator/glslang.l"
+ "src/compiler/translator/glslang.y"
+ "src/compiler/translator/*.h"
+ "src/compiler/translator/*.cpp"
+ "src/third_party/compiler/ArrayBoundsClamper.cpp"
+)
+add_library(angle_translator STATIC ${TRANSLATOR_SOURCES})
+target_compile_definitions(angle_translator PUBLIC
+ -DANGLE_ENABLE_ESSL
+ -DANGLE_ENABLE_GLSL
+ -DANGLE_ENABLE_HLSL
+)
+target_link_libraries(angle_translator PRIVATE angle::common)
+add_library(angle::translator ALIAS angle_translator)
+
+##########
+# angle::preprocessor
+file(GLOB PREPROCESSOR_SOURCES
+ "src/compiler/preprocessor/*.h"
+ "src/compiler/preprocessor/*.cpp"
+)
+add_library(angle_preprocessor STATIC ${PREPROCESSOR_SOURCES})
+target_link_libraries(angle_preprocessor PRIVATE angle::common)
+add_library(angle::preprocessor ALIAS angle_preprocessor)
+
+##########
+# libANGLE
+
+## OpenGL Renderer
+if(WINDOWS_DESKTOP)
+ file(GLOB LIBANGLE_GL_SOURCES
+ "src/libANGLE/renderer/gl/*.cpp"
+ "src/libANGLE/renderer/gl/*.inl"
+ "src/libANGLE/renderer/gl/*.h"
+
+ "src/libANGLE/renderer/gl/wgl/*.cpp"
+ "src/libANGLE/renderer/gl/wgl/*.inl"
+ "src/libANGLE/renderer/gl/wgl/*.h"
+ )
+ list(FILTER LIBANGLE_GL_SOURCES EXCLUDE REGEX "_unittest")
+ add_library(angle_renderer_opengl INTERFACE)
+ target_sources(angle_renderer_opengl INTERFACE ${LIBANGLE_GL_SOURCES})
+ target_compile_definitions(angle_renderer_opengl INTERFACE -DANGLE_ENABLE_OPENGL)
+ add_library(angle::renderer::opengl ALIAS angle_renderer_opengl)
+endif()
+
+## All D3D Sources
+file(GLOB_RECURSE LIBANGLE_D3D_SOURCES
+ "src/libANGLE/renderer/d3d/*.cpp"
+ "src/libANGLE/renderer/d3d/*.inl"
+ "src/libANGLE/renderer/d3d/*.h"
+)
+list(FILTER LIBANGLE_D3D_SOURCES EXCLUDE REGEX "_unittest")
+
+## WinRT D3D Renderer
+if(WINDOWS_STORE)
+ set(LIBANGLE_D3D_WINRT_SOURCES ${LIBANGLE_D3D_SOURCES})
+ list(FILTER LIBANGLE_D3D_WINRT_SOURCES INCLUDE REGEX "winrt")
+ add_library(angle_renderer_winrt INTERFACE)
+ target_sources(angle_renderer_winrt INTERFACE ${LIBANGLE_D3D_WINRT_SOURCES})
+ add_library(angle::renderer::winrt ALIAS angle_renderer_winrt)
+endif()
+
+## Win32/d3d9 D3D Renderer
+if(WINDOWS_DESKTOP)
+ set(LIBANGLE_D3D_DESKTOP_SOURCES ${LIBANGLE_D3D_SOURCES})
+ list(FILTER LIBANGLE_D3D_DESKTOP_SOURCES INCLUDE REGEX "d3d9|win32")
+ find_library(D3D9_LIB NAMES d3d9)
+ add_library(angle_renderer_win32 INTERFACE)
+ target_sources(angle_renderer_win32 INTERFACE ${LIBANGLE_D3D_DESKTOP_SOURCES})
+ target_compile_definitions(angle_renderer_win32 INTERFACE -DANGLE_ENABLE_D3D9)
+ target_link_libraries(angle_renderer_win32 INTERFACE ${D3D9_LIB})
+ add_library(angle::renderer::win32 ALIAS angle_renderer_win32)
+endif()
+
+## D3D11 Base renderer
+list(FILTER LIBANGLE_D3D_SOURCES EXCLUDE REGEX "winrt|d3d9|win32")
+find_library(DXGUID_LIB NAMES dxguid)
+find_library(D3D11_LIB NAMES d3d11)
+add_library(angle_renderer_d3d INTERFACE)
+target_sources(angle_renderer_d3d INTERFACE ${LIBANGLE_D3D_SOURCES})
+target_compile_definitions(angle_renderer_d3d INTERFACE
+ -DANGLE_ENABLE_D3D11
+ "-DANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ \"d3dcompiler_47.dll\", \"d3dcompiler_46.dll\", \"d3dcompiler_43.dll\" }"
+)
+target_link_libraries(angle_renderer_d3d INTERFACE ${D3D11_LIB} ${DXGUID_LIB})
+add_library(angle::renderer::d3d ALIAS angle_renderer_d3d)
+
+## Core libANGLE library
+file(GLOB LIBANGLE_SOURCES
+ "src/third_party/systeminfo/SystemInfo.cpp"
+ "src/common/third_party/murmurhash/MurmurHash3.cpp"
+ "src/common/event_tracer.cpp"
+
+ "src/libANGLE/*.cpp"
+ "src/libANGLE/*.inl"
+ "src/libANGLE/*.h"
+
+ "src/libANGLE/renderer/*.cpp"
+ "src/libANGLE/renderer/*.inl"
+ "src/libANGLE/renderer/*.h"
+
+ "src/libANGLE/renderer/null/*.cpp"
+ "src/libANGLE/renderer/null/*.inl"
+ "src/libANGLE/renderer/null/*.h"
+)
+list(FILTER LIBANGLE_SOURCES EXCLUDE REGEX "_unittest")
+
+add_library(libANGLE STATIC ${LIBANGLE_SOURCES})
+target_link_libraries(libANGLE PRIVATE
+ angle::common
+ angle::image_util
+ angle::translator
+ angle::preprocessor
+ angle::renderer::d3d
+ $<$<BOOL:${WINDOWS_STORE}>:angle::renderer::winrt>
+ $<$<BOOL:${WINDOWS_DESKTOP}>:angle::renderer::win32>
+ $<$<BOOL:${WINDOWS_DESKTOP}>:angle::renderer::opengl>
+)
+target_include_directories(libANGLE PRIVATE "src/third_party/khronos")
+target_compile_definitions(libANGLE
+ PRIVATE -DANGLE_ENABLE_NULL
+ PUBLIC -DLIBANGLE_IMPLEMENTATION
+)
+add_library(angle::libANGLE ALIAS libANGLE)
+
+##########
+# libGLESv2
+file(GLOB LIBGLESV2_SOURCES "src/libGLESv2/*.h" "src/libGLESv2/*.cpp" "src/libGLESv2/libGLESv2.def")
+add_library(libGLESv2 ${LIBGLESV2_SOURCES})
+target_link_libraries(libGLESv2 PRIVATE angle::common angle::libANGLE)
+target_compile_definitions(libGLESv2
+ PRIVATE -DLIBGLESV2_IMPLEMENTATION
+ PUBLIC
+ -DGL_GLEXT_PROTOTYPES
+ -DGL_APICALL=
+ -DEGLAPI=
+)
+target_include_directories(libGLESv2 PUBLIC "$<INSTALL_INTERFACE:include>")
+
+##########
+# libEGL
+add_library(libEGL
+ "src/libEGL/libEGL.def"
+ "src/libEGL/libEGL.cpp"
+ "src/libEGL/libEGL.rc"
+ "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 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/
+ DESTINATION include
+ FILES_MATCHING PATTERN "*.h"
+ PATTERN "GLSLANG" EXCLUDE
+ PATTERN "export.h" EXCLUDE
+ )
+endif()
diff --git a/ports/angle/CONTROL b/ports/angle/CONTROL
new file mode 100644
index 000000000..12f912ac8
--- /dev/null
+++ b/ports/angle/CONTROL
@@ -0,0 +1,4 @@
+Source: angle
+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/commit.h b/ports/angle/commit.h
new file mode 100644
index 000000000..57a20e3b7
--- /dev/null
+++ b/ports/angle/commit.h
@@ -0,0 +1,3 @@
+#define ANGLE_COMMIT_HASH "invalid-hash"
+#define ANGLE_COMMIT_HASH_SIZE 12
+#define ANGLE_COMMIT_DATE "invalid-date"
diff --git a/ports/angle/portfile.cmake b/ports/angle/portfile.cmake
new file mode 100644
index 000000000..e21aa83bc
--- /dev/null
+++ b/ports/angle/portfile.cmake
@@ -0,0 +1,40 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(STATUS "ANGLE currently only supports being built as a dynamic library")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "ANGLE currently only supports being built for desktop")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/angle
+ REF 8d471f907d8d4ec1d46bc9366493bd76c11c1870
+ SHA512 b4670caeeaa5d662bc82702eb5f620123812ea6b5d82f57a65df54ae25cdaa5c9ff0fdb592448b07569d9c09af3d3c51b0b2f135c5800d1845b425009656bf18
+ HEAD_REF master
+)
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/001-fix-uwp.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/commit.h DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=1
+)
+
+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/CONTROL b/ports/antlr4/CONTROL
index 03877e495..bf4df8d1c 100644
--- a/ports/antlr4/CONTROL
+++ b/ports/antlr4/CONTROL
@@ -1,3 +1,3 @@
Source: antlr4
-Version: 4.6-1
+Version: 4.7
Description: ANother Tool for Language Recognition \ No newline at end of file
diff --git a/ports/antlr4/portfile.cmake b/ports/antlr4/portfile.cmake
index 78266b6eb..0d77208e0 100644
--- a/ports/antlr4/portfile.cmake
+++ b/ports/antlr4/portfile.cmake
@@ -1,12 +1,16 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
include(vcpkg_common_functions)
-set(VERSION 4.6)
+set(VERSION 4.7)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/runtime)
vcpkg_download_distfile(ARCHIVE
- URLS "http://www.antlr.org/download/antlr4-cpp-runtime-4.6-source.zip"
+ URLS "http://www.antlr.org/download/antlr4-cpp-runtime-4.7-source.zip"
FILENAME "antlr4-cpp-runtime-${VERSION}-source.zip"
- SHA512 e123c2227e41ce80da5a3758725a018690ed70a4e10c23da26c966259e6bdafa192f4363f5a7e1181ef9a47bf3cc50d6b0ca7b26c8dd2b19222a7edf54de8de2
+ SHA512 a14fd3320537075a8d4c1cfa81d416bad6257d238608e2428f4930495072cce984c707126e3777ffd3849dd6b6cdf1bf43624bd6d318b1fa5dd6749a7304f808
)
# license not exist in antlr folder.
@@ -24,7 +28,7 @@ vcpkg_apply_patches(
${CMAKE_CURRENT_LIST_DIR}/Fix-building-in-Visual-Studio-2017.patch
)
-if (${VCPKG_LIBRARY_LINKAGE} STREQUAL static)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
set(DEBUG_CONFIG "Debug Static")
set(RELEASE_CONFIG "Release Static")
else()
@@ -53,7 +57,7 @@ file(COPY ${SOURCE_PATH}/bin/vs-2015/${TRIPLET_SYSTEM_ARCH}/${DEBUG_CONFIG
file(COPY ${SOURCE_PATH}/bin/vs-2015/${TRIPLET_SYSTEM_ARCH}/${RELEASE_CONFIG}/antlr4-runtime.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
-if (${VCPKG_LIBRARY_LINKAGE} STREQUAL static)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
vcpkg_apply_patches(
SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
PATCHES ${CMAKE_CURRENT_LIST_DIR}/static.patch
diff --git a/ports/antlr4/static.patch b/ports/antlr4/static.patch
index fb54c5ae4..e66787233 100644
--- a/ports/antlr4/static.patch
+++ b/ports/antlr4/static.patch
@@ -1,12 +1,12 @@
diff --git a/antlr4-common.h b/antlr4-common.h
-index 197fd6d..34a62c8 100644
+index ce45e9e..3162795 100644
--- a/antlr4-common.h
+++ b/antlr4-common.h
-@@ -34,6 +34,7 @@
- #include <bitset>
- #include <condition_variable>
+@@ -48,6 +48,7 @@
+ #endif
-+#define ANTLR4CPP_STATIC
- // Defines for the Guid class and other platform dependent stuff.
- #ifdef _WIN32
- #pragma warning (disable: 4250) // Class inherits by dominance.
+ #define GUID_WINDOWS
++ #define ANTLR4CPP_STATIC
+
+ #ifdef _WIN64
+ typedef __int64 ssize_t;
diff --git a/ports/apr-util/CONTROL b/ports/apr-util/CONTROL
new file mode 100644
index 000000000..81814a2ca
--- /dev/null
+++ b/ports/apr-util/CONTROL
@@ -0,0 +1,4 @@
+Source: apr-util
+Version: 1.6.0-1
+Description: Apache Portable Runtime (APR) project mission is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementation
+Build-Depends: expat, apr, openssl
diff --git a/ports/apr-util/portfile.cmake b/ports/apr-util/portfile.cmake
new file mode 100644
index 000000000..abff4b47d
--- /dev/null
+++ b/ports/apr-util/portfile.cmake
@@ -0,0 +1,37 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/apr-util-1.6.0)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://archive.apache.org/dist/apr/apr-util-1.6.0-win32-src.zip"
+ FILENAME "apr-util-1.6.0-win32-src.zip"
+ SHA512 98679ea181d3132020713481703bbefa0c174e0b2a0df65dfdd176e9771935e1f9455c4242bac19dded9414abe2b9d293fcc674ab16f96d8987bcf26346fce3a
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/use-vcpkg-expat.patch"
+)
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+
+file(READ ${CURRENT_PACKAGES_DIR}/include/apu.h APU_H)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ string(REPLACE "defined(APU_DECLARE_EXPORT)" "1" APU_H "${APU_H}")
+else()
+ string(REPLACE "defined(APU_DECLARE_STATIC)" "1" APU_H "${APU_H}")
+endif()
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/apu.h "${APU_H}")
+
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/apr-util RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/apr-util/use-vcpkg-expat.patch b/ports/apr-util/use-vcpkg-expat.patch
new file mode 100644
index 000000000..8bfe3e24e
--- /dev/null
+++ b/ports/apr-util/use-vcpkg-expat.patch
@@ -0,0 +1,128 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 43fdf49..56424c3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -27,8 +27,9 @@ OPTION(APR_HAS_LDAP "LDAP support" ON)
+ OPTION(INSTALL_PDB "Install .pdb files (if generated)" ON)
+ OPTION(APR_BUILD_TESTAPR "Build the test suite" OFF)
+ OPTION(TEST_STATIC_LIBS "Test programs use APR static libraries instead of shared libraries?" OFF)
+-SET(APR_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE STRING "Directory with APR include files")
+-SET(APR_LIBRARIES "${CMAKE_INSTALL_PREFIX}/lib/libapr-1.lib" CACHE STRING "APR library to link with")
++
++find_path(APR_INCLUDE_DIR apr.h)
++find_library(APR_LIBRARIES NAMES libapr-1 apr-1)
+
+ IF(NOT EXISTS "${APR_INCLUDE_DIR}/apr.h")
+ MESSAGE(FATAL_ERROR "APR include directory ${APR_INCLUDE_DIR} is not correct.")
+@@ -75,8 +76,8 @@ CONFIGURE_FILE(include/apu_want.hw
+ COPYONLY)
+
+ # TBD:
+-# SET(XMLLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/xml/expat/lib)
+-SET(XMLLIB_LIBRARIES libexpat)
++find_path(XMLLIB_INCLUDE_DIR expat.h)
++find_library(XMLLIB_LIBRARIES NAMES expat)
+
+ SET(LDAP_LIBRARIES)
+ IF(APR_HAS_LDAP)
+@@ -217,11 +218,11 @@ SET(APR_TEST_SOURCES
+ test/testxml.c
+ )
+
+-SET(EXPAT_SOURCES
+- xml/expat/lib/xmlrole.c
+- xml/expat/lib/xmltok.c
+- xml/expat/lib/xmlparse.c
+-)
++# SET(EXPAT_SOURCES
++# xml/expat/lib/xmlrole.c
++# xml/expat/lib/xmltok.c
++# xml/expat/lib/xmlparse.c
++# )
+
+ SET(install_targets)
+ SET(install_bin_pdb)
+@@ -230,21 +231,25 @@ SET(dbd_drivers)
+ # Note: The WINNT definition on some targets is used only by libaprutil.rc.
+
+ # static expat (not installed)
+-ADD_LIBRARY(libexpat STATIC ${EXPAT_SOURCES})
+-SET_TARGET_PROPERTIES(libexpat PROPERTIES COMPILE_DEFINITIONS "XML_STATIC;COMPILED_FROM_DSP")
++# ADD_LIBRARY(libexpat STATIC ${EXPAT_SOURCES})
++# SET_TARGET_PROPERTIES(libexpat PROPERTIES COMPILE_DEFINITIONS "XML_STATIC;COMPILED_FROM_DSP")
+
+ # libaprutil-1 is shared, aprutil-1 is static
++if(BUILD_SHARED_LIBS)
+ ADD_LIBRARY(libaprutil-1 SHARED ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED} libaprutil.rc)
+ SET(install_targets ${install_targets} libaprutil-1)
+ SET(install_bin_pdb ${install_bin_pdb} ${PROJECT_BINARY_DIR}/libaprutil-1.pdb)
+ TARGET_LINK_LIBRARIES(libaprutil-1 ${APR_LIBRARIES} ${XMLLIB_LIBRARIES})
+ SET_TARGET_PROPERTIES(libaprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_EXPORT;APR_DECLARE_EXPORT;XML_STATIC;WINNT")
+
++else()
+ ADD_LIBRARY(aprutil-1 STATIC ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED})
+ SET(install_targets ${install_targets} aprutil-1)
+ TARGET_LINK_LIBRARIES(aprutil-1 ${APR_LIBRARIES} ${XMLLIB_LIBRARIES})
+ SET_TARGET_PROPERTIES(aprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_STATIC;APR_DECLARE_STATIC;APU_DSO_MODULE_BUILD;XML_STATIC")
++endif()
+
++if(BUILD_SHARED_LIBS)
+ IF(APU_HAVE_CRYPTO)
+ IF(NOT OPENSSL_FOUND)
+ MESSAGE(FATAL_ERROR "Only OpenSSL-based crypto is currently implemented in the cmake build")
+@@ -270,7 +275,7 @@ IF(APU_HAVE_ODBC)
+ ENDIF()
+
+ IF(APR_HAS_LDAP)
+- ADD_LIBRARY(apr_ldap-1 SHARED ldap/apr_ldap_init.c ldap/apr_ldap_option.c
++ ADD_LIBRARY(apr_ldap-1 SHARED ldap/apr_ldap_init.c ldap/apr_ldap_option.c
+ ldap/apr_ldap_rebind.c libaprutil.rc)
+ SET(install_targets ${install_targets} apr_ldap-1)
+ SET(install_bin_pdb ${install_bin_pdb} ${PROJECT_BINARY_DIR}/apr_ldap-1.pdb)
+@@ -281,6 +286,7 @@ IF(APR_HAS_LDAP)
+ ELSE()
+ SET(apr_ldap_libraries)
+ ENDIF()
++endif()
+
+ IF(APR_BUILD_TESTAPR)
+ ENABLE_TESTING()
+@@ -288,13 +294,13 @@ IF(APR_BUILD_TESTAPR)
+ ADD_CUSTOM_TARGET(check COMMAND ${CMAKE_CTEST_COMMAND} --verbose)
+
+ # copy data files to build directory so that we can run programs from there
+- EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory
++ EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory
+ ${PROJECT_BINARY_DIR}/data)
+- EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different
++ EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${PROJECT_SOURCE_DIR}/test/data/billion-laughs.xml
+ ${PROJECT_BINARY_DIR}/data/billion-laughs.xml)
+
+- IF(TEST_STATIC_LIBS)
++ IF(NOT BUILD_SHARED_LIBS)
+ SET(whichapr aprutil-1)
+ SET(apiflag "-DAPR_DECLARE_STATIC -DAPU_DECLARE_STATIC")
+ ELSE()
+@@ -330,13 +336,15 @@ INSTALL(TARGETS ${install_targets}
+ ARCHIVE DESTINATION lib
+ )
+
+-IF(INSTALL_PDB)
+- INSTALL(FILES ${install_bin_pdb}
+- DESTINATION bin
+- CONFIGURATIONS RelWithDebInfo Debug)
+-ENDIF()
++# IF(INSTALL_PDB)
++# INSTALL(FILES ${install_bin_pdb}
++# DESTINATION bin
++# CONFIGURATIONS RelWithDebInfo Debug)
++# ENDIF()
+
+-INSTALL(FILES ${APR_PUBLIC_HEADERS_STATIC} ${APR_PUBLIC_HEADERS_GENERATED} DESTINATION include)
++if(NOT DISABLE_INSTALL_HEADERS)
++ INSTALL(FILES ${APR_PUBLIC_HEADERS_STATIC} ${APR_PUBLIC_HEADERS_GENERATED} DESTINATION include)
++endif()
+
+ STRING(TOUPPER "${CMAKE_BUILD_TYPE}" buildtype)
+ MESSAGE(STATUS "")
diff --git a/ports/apr/CONTROL b/ports/apr/CONTROL
index eed3c518d..1f771a0ed 100644
--- a/ports/apr/CONTROL
+++ b/ports/apr/CONTROL
@@ -1,3 +1,3 @@
Source: apr
-Version: 1.5.2
+Version: 1.6.3
Description: The Apache Portable Runtime (APR) is a C library that forms a system portability layer that covers many operating systems.
diff --git a/ports/apr/portfile.cmake b/ports/apr/portfile.cmake
index f65b44649..22bd260c8 100644
--- a/ports/apr/portfile.cmake
+++ b/ports/apr/portfile.cmake
@@ -1,17 +1,16 @@
-# 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)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/apr-1.5.2)
+
+set(VERSION 1.6.3)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/apr-${VERSION})
vcpkg_download_distfile(ARCHIVE
- URLS "https://www.apache.org/dist/apr/apr-1.5.2.tar.bz2"
- FILENAME "apr-1.5.2.tar.bz2"
- SHA512 d1156ad16abf07887797777b56c2147c890f16d8445829b3e3b4917950d24c5fd2f8febd439992467a5ea0511da562c0fb4a7cfd8a235ab55882388bfa2b919d
+ URLS "https://www.apache.org/dist/apr/apr-${VERSION}.tar.bz2"
+ FILENAME "apr-${VERSION}.tar.bz2"
+ SHA512 f6b8679ae7fafff793c825c78775c84a646267c441710a50664589850e13148719b4eab48ab6e7c95b7aed085cff831115687434a7b160dcc2faa0eae63ac996
)
vcpkg_extract_source_archive(${ARCHIVE})
diff --git a/ports/arb/CMakeLists.txt b/ports/arb/CMakeLists.txt
new file mode 100644
index 000000000..3474c9974
--- /dev/null
+++ b/ports/arb/CMakeLists.txt
@@ -0,0 +1,94 @@
+cmake_minimum_required(VERSION 2.8.12)
+
+project(arb C)
+
+set (DEPS mpir mpfr pthreads flint2 gettimeofday)
+set (mpir_lib gmp mpir)
+set (mpfr_lib mpfr)
+set (pthreads_lib pthreads pthread)
+set (flint2_lib ${LIBRARY_TYPE}_flint flint)
+set (gettimeofday_lib gettimeofday)
+
+set (mpir_header gmp.h)
+set (mpfr_header mpfr.h)
+set (pthreads_header pthread.h)
+set (flint2_header flint/flint.h)
+set (gettimeofday_header gettimeofday.h)
+
+foreach (LIB ${DEPS})
+ string (TOUPPER ${LIB} LIB_UPPER)
+ find_library(${LIB_UPPER}_LIBRARY NAMES ${${LIB}_lib})
+ if (NOT ${LIB_UPPER}_LIBRARY)
+ message(FATAL_ERROR "${LIB} library not found.")
+ endif()
+ add_library(${LIB} UNKNOWN IMPORTED)
+ set_property(TARGET ${LIB} PROPERTY IMPORTED_LOCATION ${${LIB_UPPER}_LIBRARY})
+ message("${LIB} found in ${${LIB_UPPER}_LIBRARY}")
+endforeach ()
+
+foreach (LIB ${DEPS})
+ string(TOUPPER ${LIB} HEADER_PKG)
+ set (HEADER ${${LIB}_header})
+ find_path(${HEADER_PKG}_INCLUDE_DIR NAMES ${HEADER})
+ if (NOT ${HEADER_PKG}_INCLUDE_DIR)
+ message(FATAL_ERROR "${HEADER} header not found.")
+ endif()
+ message("${HEADER} found in ${${HEADER_PKG}_INCLUDE_DIR}")
+ set (DEP_INCLUDE_DIRS ${DEP_INCLUDE_DIRS} ${${HEADER_PKG}_INCLUDE_DIR})
+endforeach ()
+
+file(GLOB TEMP "*.h")
+
+foreach (TEMP_H ${TEMP})
+ get_filename_component(FOLDER ${TEMP_H} NAME_WE)
+ set(FOLDERS ${FOLDERS} ${FOLDER})
+endforeach()
+
+foreach (FOLDER ${FOLDERS})
+ file(GLOB TEMP "${FOLDER}/*.c")
+ set(SRC ${SRC} ${TEMP})
+endforeach ()
+
+include_directories(BEFORE ${arb_SOURCE_DIR})
+include_directories(BEFORE ${DEP_INCLUDE_DIRS})
+
+add_library(arb ${SRC})
+
+target_compile_definitions(arb PRIVATE HAVE_TLS=1 FLINT_REENTRANT=0)
+if (BUILD_SHARED_LIBS)
+ target_compile_definitions(arb PRIVATE MSC_USE_DLL)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS yes)
+ MESSAGE( STATUS "Building shared libraries" )
+else ()
+ target_compile_definitions(arb PRIVATE PTW32_STATIC_LIB)
+ MESSAGE( STATUS "Building static libraries" )
+endif()
+target_compile_definitions(arb PRIVATE "ARB_BUILD_DLL")
+
+target_link_libraries(arb ${DEPS})
+
+install(TARGETS arb
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+ )
+
+foreach (FOLDER ${FOLDERS})
+ set(HEADERS ${HEADERS} ${FOLDER}.h)
+endforeach ()
+
+install(FILES ${HEADERS} DESTINATION include)
+
+if (BUILD_TESTS)
+ enable_testing()
+ foreach (FOLDER ${FOLDERS})
+ file(GLOB TEMP "${FOLDER}/test/*.c")
+ foreach (TEST_SOURCE ${TEMP})
+ get_filename_component(TEST_NAME ${TEST_SOURCE} NAME_WE)
+ add_executable(${FOLDER}-${TEST_NAME} ${TEST_SOURCE})
+ target_link_libraries(${FOLDER}-${TEST_NAME} arb)
+ add_test(${FOLDER}-${TEST_NAME} ${FOLDER}-${TEST_NAME})
+ endforeach ()
+ endforeach ()
+endif ()
+
diff --git a/ports/arb/CONTROL b/ports/arb/CONTROL
new file mode 100644
index 000000000..2166fd1e0
--- /dev/null
+++ b/ports/arb/CONTROL
@@ -0,0 +1,4 @@
+Source: arb
+Version: 2.11.1
+Description: a C library for arbitrary-precision interval arithmetic
+Build-Depends: flint
diff --git a/ports/arb/portfile.cmake b/ports/arb/portfile.cmake
new file mode 100644
index 000000000..32bb3a23b
--- /dev/null
+++ b/ports/arb/portfile.cmake
@@ -0,0 +1,32 @@
+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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO fredrik-johansson/arb
+ REF 2.11.1
+ SHA512 7a014da5208b55f20c7a3cd3eb51070b09ae107b04cbbd6329925780c2ab4d7c38e1fb3619f21456fa806939818370fcae921f59eb013661b6bdd3d0971e3353
+ HEAD_REF master
+)
+
+file(REMOVE ${SOURCE_PATH}/CMakeLists.txt)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/arb RENAME copyright)
+
+# Remove duplicate headers
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/args/CONTROL b/ports/args/CONTROL
new file mode 100644
index 000000000..83205335a
--- /dev/null
+++ b/ports/args/CONTROL
@@ -0,0 +1,3 @@
+Source: args
+Version: 2018-05-17
+Description: A simple header-only C++ argument parser library.
diff --git a/ports/args/portfile.cmake b/ports/args/portfile.cmake
new file mode 100644
index 000000000..215f1ce92
--- /dev/null
+++ b/ports/args/portfile.cmake
@@ -0,0 +1,21 @@
+#header-only library
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Taywee/args
+ REF bd0429e91f5bb140271870d5421e412bf78b9f31
+ SHA512 585314e572b97d9b1689f71617f33562da46652141f094a3845eeace7acedc8560e010e5b7fb7afa4ff2dc37a62724445f5c8650c0c6270d42c4b5fd271a5e76
+ HEAD_REF master
+)
+
+# Put the licence file where vcpkg expects it
+file(COPY ${SOURCE_PATH}/license DESTINATION ${CURRENT_PACKAGES_DIR}/share/args)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/args/license ${CURRENT_PACKAGES_DIR}/share/args/copyright)
+
+# Copy the args header files
+file(INSTALL ${SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN "*.hxx")
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/examples ${CURRENT_PACKAGES_DIR}/include/test)
+
+vcpkg_copy_pdbs()
diff --git a/ports/armadillo/ArmadilloConfig.cmake b/ports/armadillo/ArmadilloConfig.cmake
new file mode 100644
index 000000000..4658b665c
--- /dev/null
+++ b/ports/armadillo/ArmadilloConfig.cmake
@@ -0,0 +1,4 @@
+set(ARMADILLO_FOUND TRUE)
+set(ARMADILLO_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../include")
+set(ARMADILLO_LIBRARY_DIRS)
+set(ARMADILLO_LIBRARIES)
diff --git a/ports/armadillo/CONTROL b/ports/armadillo/CONTROL
new file mode 100644
index 000000000..59a3ba1f4
--- /dev/null
+++ b/ports/armadillo/CONTROL
@@ -0,0 +1,3 @@
+Source: armadillo
+Version: 8.400.0-1
+Description: Armadillo is a high quality linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use
diff --git a/ports/armadillo/disable-wrapper.patch b/ports/armadillo/disable-wrapper.patch
new file mode 100644
index 000000000..06eb4a776
--- /dev/null
+++ b/ports/armadillo/disable-wrapper.patch
@@ -0,0 +1,50 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7924a8f..853c2ee 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -27,7 +27,7 @@ include(CheckLibraryExists)
+ ## You will then need to link your programs with -lblas -llapack instead of -larmadillo
+ ## If you're using OpenBLAS, link your programs with -lopenblas -llapack instead of -larmadillo
+
+-set(ARMA_USE_WRAPPER true)
++set(ARMA_USE_WRAPPER false)
+
+
+ # the settings below will be automatically configured by the rest of this script
+@@ -379,7 +379,7 @@ message(STATUS "Generating ${PROJECT_BINARY_DIR}/tmp/include/config.hpp")
+ configure_file(${PROJECT_BINARY_DIR}/tmp/include/armadillo_bits/config.hpp.cmake ${PROJECT_BINARY_DIR}/tmp/include/armadillo_bits/config.hpp)
+
+ message(STATUS "Generating ${PROJECT_SOURCE_DIR}/examples/Makefile")
+-configure_file(${PROJECT_SOURCE_DIR}/examples/Makefile.cmake ${PROJECT_SOURCE_DIR}/examples/Makefile)
++#configure_file(${PROJECT_SOURCE_DIR}/examples/Makefile.cmake ${PROJECT_SOURCE_DIR}/examples/Makefile)
+
+
+ include_directories(${PROJECT_BINARY_DIR}/tmp/include/ ${CMAKE_REQUIRED_INCLUDES})
+@@ -439,11 +439,13 @@ PATTERN "*~" EXCLUDE
+ PATTERN "*orig" EXCLUDE
+ )
+
++if(ARMA_USE_WRAPPER)
+ install(TARGETS armadillo EXPORT ArmadilloLibraryDepends
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+-
++endif()
++
+ # Export the package for use from the build-tree
+ # (this registers the build-tree with a global CMake-registry)
+ export(PACKAGE armadillo)
+@@ -465,10 +467,11 @@ configure_file(${PROJECT_SOURCE_DIR}/cmake_aux/InstallFiles/ArmadilloConfigVersi
+ "${PROJECT_BINARY_DIR}/ArmadilloConfigVersion.cmake" @ONLY)
+
+ # Install the export set for use with the install-tree
++if(ARMA_USE_WRAPPER)
+ install(EXPORT ArmadilloLibraryDepends DESTINATION
+ "${CMAKE_INSTALL_DATADIR}/Armadillo/CMake"
+ COMPONENT dev)
+-
++endif()
+
+ ## GLOBAL INSTALL FILES
+ # Create ArmadilloConfig.cmake file for the use from the install tree
diff --git a/ports/armadillo/portfile.cmake b/ports/armadillo/portfile.cmake
new file mode 100644
index 000000000..b8240089c
--- /dev/null
+++ b/ports/armadillo/portfile.cmake
@@ -0,0 +1,39 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("Armadillo only supports static library linkage")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+#as conradsnicta/armadillo-code has no release, and the link http://sourceforge.net/projects/arma/files/armadillo-8.400.0.tar.xz is not worked, I use the latest commit for 8.400.x branch
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO conradsnicta/armadillo-code
+ REF a25f66da4c27d40a4a7699199cbf4dc747e712a7
+ SHA512 bf5e1de18c38503e46f72f4f9f145477b6b782baf0df42600acb8811c7a07a5d8c0cd2ac3015d4169c961876e4cbb0457a7c1417b55ba52c98d4f78d145f9ae6
+ HEAD_REF unstable
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/disable-wrapper.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DDETECT_HDF5=false
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/Armadillo/CMake)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/ArmadilloConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/Armadillo)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/Armadillo RENAME copyright)
diff --git a/ports/armadillo/usage b/ports/armadillo/usage
new file mode 100644
index 000000000..26d82f0ef
--- /dev/null
+++ b/ports/armadillo/usage
@@ -0,0 +1,5 @@
+The package armadillo is compatible with built-in CMake targets:
+
+ find_package(Armadillo CONFIG REQUIRED)
+ target_include_directories(main PRIVATE ${ARMADILLO_INCLUDE_DIRS})
+ target_link_libraries(main PRIVATE ${ARMADILLO_LIBRARIES})
diff --git a/ports/arrow/CONTROL b/ports/arrow/CONTROL
new file mode 100644
index 000000000..000b8a6d6
--- /dev/null
+++ b/ports/arrow/CONTROL
@@ -0,0 +1,4 @@
+Source: arrow
+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/all.patch b/ports/arrow/all.patch
new file mode 100644
index 000000000..6e0d175c3
--- /dev/null
+++ b/ports/arrow/all.patch
@@ -0,0 +1,130 @@
+diff --git a/cmake_modules/FindBrotli.cmake b/cmake_modules/FindBrotli.cmake
+index f2e714c..2e475dc 100644
+--- a/cmake_modules/FindBrotli.cmake
++++ b/cmake_modules/FindBrotli.cmake
+@@ -65,16 +65,13 @@ if (BROTLI_INCLUDE_DIR AND (PARQUET_MINIMAL_DEPENDENCY OR BROTLI_LIBRARIES))
+ set(BROTLI_FOUND TRUE)
+ get_filename_component( BROTLI_LIBS ${BROTLI_LIBRARY_ENC} PATH )
+ set(BROTLI_LIB_NAME brotli)
+- if (MSVC AND NOT BROTLI_MSVC_STATIC_LIB_SUFFIX)
+- set(BROTLI_MSVC_STATIC_LIB_SUFFIX _static)
+- endif()
+ set(BROTLI_STATIC_LIB
+- ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
+- ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
+- ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}common${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
+- set(BROTLI_STATIC_LIBRARY_ENC ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
+- set(BROTLI_STATIC_LIBRARY_DEC ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
+- set(BROTLI_STATIC_LIBRARY_COMMON ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}common${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
++ ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${CMAKE_STATIC_LIBRARY_SUFFIX}
++ ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${CMAKE_STATIC_LIBRARY_SUFFIX}
++ ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}common${CMAKE_STATIC_LIBRARY_SUFFIX})
++ set(BROTLI_STATIC_LIBRARY_ENC ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${CMAKE_STATIC_LIBRARY_SUFFIX})
++ set(BROTLI_STATIC_LIBRARY_DEC ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${CMAKE_STATIC_LIBRARY_SUFFIX})
++ set(BROTLI_STATIC_LIBRARY_COMMON ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}common${CMAKE_STATIC_LIBRARY_SUFFIX})
+ set(BROTLI_SHARED_LIB
+ ${BROTLI_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${CMAKE_SHARED_LIBRARY_SUFFIX}
+ ${BROTLI_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${CMAKE_SHARED_LIBRARY_SUFFIX}
+diff --git a/cmake_modules/FindFlatbuffers.cmake b/cmake_modules/FindFlatbuffers.cmake
+index 804f479..ff9bde1 100644
+--- a/cmake_modules/FindFlatbuffers.cmake
++++ b/cmake_modules/FindFlatbuffers.cmake
+@@ -53,6 +53,7 @@ endif ()
+
+ find_program(FLATBUFFERS_COMPILER flatc
+ "${FLATBUFFERS_HOME}/bin"
++ "${FLATBUFFERS_HOME}/tools"
+ /usr/local/bin
+ /usr/bin
+ NO_DEFAULT_PATH
+diff --git a/cmake_modules/FindLz4.cmake b/cmake_modules/FindLz4.cmake
+index 07707cf..9cbf67d 100644
+--- a/cmake_modules/FindLz4.cmake
++++ b/cmake_modules/FindLz4.cmake
+@@ -29,15 +29,7 @@ elseif ( Lz4_HOME )
+ list( APPEND _lz4_roots ${Lz4_HOME} )
+ endif()
+
+-if (MSVC AND NOT LZ4_MSVC_STATIC_LIB_SUFFIX)
+- set(LZ4_MSVC_STATIC_LIB_SUFFIX "_static")
+-endif()
+-
+-set(LZ4_STATIC_LIB_SUFFIX
+- "${LZ4_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+-
+-set(LZ4_STATIC_LIB_NAME
+- ${CMAKE_STATIC_LIBRARY_PREFIX}lz4${LZ4_STATIC_LIB_SUFFIX})
++set(LZ4_STATIC_LIB_NAME lz4)
+
+ find_path(LZ4_INCLUDE_DIR NAMES lz4.h
+ PATHS ${_lz4_roots}
+diff --git a/cmake_modules/FindSnappy.cmake b/cmake_modules/FindSnappy.cmake
+index 867963c..8a432db 100644
+--- a/cmake_modules/FindSnappy.cmake
++++ b/cmake_modules/FindSnappy.cmake
+@@ -55,7 +55,7 @@ if (SNAPPY_INCLUDE_DIR AND (PARQUET_MINIMAL_DEPENDENCY OR SNAPPY_LIBRARIES))
+ set(SNAPPY_HEADER_NAME snappy.h)
+ set(SNAPPY_HEADER ${SNAPPY_INCLUDE_DIR}/${SNAPPY_HEADER_NAME})
+ set(SNAPPY_LIB_NAME snappy)
+- set(SNAPPY_STATIC_LIB ${SNAPPY_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${SNAPPY_LIB_NAME}${SNAPPY_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
++ set(SNAPPY_STATIC_LIB ${SNAPPY_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${SNAPPY_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX})
+ set(SNAPPY_SHARED_LIB ${SNAPPY_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${SNAPPY_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+ else ()
+ set(SNAPPY_FOUND FALSE)
+diff --git a/cmake_modules/FindZLIB.cmake b/cmake_modules/FindZLIB.cmake
+index 78b84f2..eb09001 100644
+--- a/cmake_modules/FindZLIB.cmake
++++ b/cmake_modules/FindZLIB.cmake
+@@ -62,11 +62,11 @@ if (ZLIB_INCLUDE_DIR AND (PARQUET_MINIMAL_DEPENDENCY OR ZLIB_LIBRARIES))
+ set(ZLIB_LIB_NAME z)
+ if (MSVC)
+ if (NOT ZLIB_MSVC_STATIC_LIB_SUFFIX)
+- set(ZLIB_MSVC_STATIC_LIB_SUFFIX libstatic)
++ set(ZLIB_MSVC_STATIC_LIB_SUFFIX lib)
+ endif()
+ set(ZLIB_MSVC_SHARED_LIB_SUFFIX lib)
+ endif()
+- set(ZLIB_STATIC_LIB ${ZLIB_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${ZLIB_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
++ set(ZLIB_STATIC_LIB ${ZLIB_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${ZLIB_MSVC_SHARED_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
+ set(ZLIB_SHARED_LIB ${ZLIB_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${ZLIB_MSVC_SHARED_LIB_SUFFIX}${CMAKE_SHARED_LIBRARY_SUFFIX})
+ else ()
+ set(ZLIB_FOUND FALSE)
+diff --git a/cmake_modules/FindZSTD.cmake b/cmake_modules/FindZSTD.cmake
+index 02a0c39..73c61b5 100644
+--- a/cmake_modules/FindZSTD.cmake
++++ b/cmake_modules/FindZSTD.cmake
+@@ -29,21 +29,11 @@ elseif ( ZStd_HOME )
+ list( APPEND _zstd_roots ${ZStd_HOME} )
+ endif()
+
+-if (MSVC AND NOT ZSTD_MSVC_STATIC_LIB_SUFFIX)
+- set(ZSTD_MSVC_STATIC_LIB_SUFFIX "_static")
+-endif()
+-
+-set(ZSTD_STATIC_LIB_SUFFIX
+- "${ZSTD_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+-
+-set(ZSTD_STATIC_LIB_NAME
+- ${CMAKE_STATIC_LIBRARY_PREFIX}zstd${ZSTD_STATIC_LIB_SUFFIX})
+-
+ find_path(ZSTD_INCLUDE_DIR NAMES zstd.h
+ PATHS ${_zstd_roots}
+ NO_DEFAULT_PATH
+ PATH_SUFFIXES "include" )
+-find_library(ZSTD_STATIC_LIB NAMES ${ZSTD_STATIC_LIB_NAME} lib${ZSTD_STATIC_LIB_NAME}
++find_library(ZSTD_STATIC_LIB NAMES libzstd libzstd_static zstd zstd_static
+ PATHS ${_zstd_roots}
+ NO_DEFAULT_PATH
+ PATH_SUFFIXES "lib" )
+diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
+index a888e92..0fe3629 100644
+--- a/cmake_modules/ThirdpartyToolchain.cmake
++++ b/cmake_modules/ThirdpartyToolchain.cmake
+@@ -119,6 +119,7 @@ endif()
+ set(Boost_DEBUG TRUE)
+ set(Boost_USE_MULTITHREADED ON)
+ set(Boost_ADDITIONAL_VERSIONS
++ "1.65.0" "1.65"
+ "1.64.0" "1.64"
+ "1.63.0" "1.63"
+ "1.62.0" "1.61"
diff --git a/ports/arrow/portfile.cmake b/ports/arrow/portfile.cmake
new file mode 100644
index 000000000..a462d3e9b
--- /dev/null
+++ b/ports/arrow/portfile.cmake
@@ -0,0 +1,58 @@
+include(vcpkg_common_functions)
+
+if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ message(FATAL_ERROR "Apache Arrow only supports x64")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO apache/arrow
+ REF apache-arrow-0.6.0
+ SHA512 c0e89b959dfe75e895a3427edd4eee663be5ee542e9ea13f7311d0775fe7a00188eafa07ba524e3d3c0a71fc8e11213f10fe4ebfdf451754816062249ffa7f3d
+ HEAD_REF master
+)
+
+set(CPP_SOURCE_PATH "${SOURCE_PATH}/cpp")
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${CPP_SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/all.patch"
+)
+
+
+string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "dynamic" ARROW_BUILD_SHARED)
+string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "static" ARROW_BUILD_STATIC)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${CPP_SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DARROW_BUILD_TESTS=off
+ -DRAPIDJSON_HOME=${CURRENT_INSTALLED_DIR}
+ -DFLATBUFFERS_HOME=${CURRENT_INSTALLED_DIR}
+ -DARROW_ZLIB_VENDORED=ON
+ -DBROTLI_HOME=${CURRENT_INSTALLED_DIR}
+ -DLZ4_HOME=${CURRENT_INSTALLED_DIR}
+ -DZSTD_HOME=${CURRENT_INSTALLED_DIR}
+ -DSNAPPY_HOME=${CURRENT_INSTALLED_DIR}
+ -DBOOST_ROOT=${CURRENT_INSTALLED_DIR}
+ -DGFLAGS_HOME=${CURRENT_INSTALLED_DIR}
+ -DZLIB_HOME=${CURRENT_INSTALLED_DIR}
+ -DARROW_BUILD_STATIC=${ARROW_BUILD_STATIC}
+ -DARROW_BUILD_SHARED=${ARROW_BUILD_SHARED}
+)
+
+vcpkg_install_cmake()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/arrow_static.lib ${CURRENT_PACKAGES_DIR}/lib/arrow.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/arrow_static.lib ${CURRENT_PACKAGES_DIR}/debug/lib/arrow.lib)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin)
+else()
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/arrow_static.lib ${CURRENT_PACKAGES_DIR}/debug/lib/arrow_static.lib)
+endif()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/arrow RENAME copyright)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/asio/CONTROL b/ports/asio/CONTROL
index 18d9692f5..ec8ab41a8 100644
--- a/ports/asio/CONTROL
+++ b/ports/asio/CONTROL
@@ -1,3 +1,3 @@
Source: asio
-Version: 1.10.8
+Version: 1.12.0-2
Description: Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach.
diff --git a/ports/asio/portfile.cmake b/ports/asio/portfile.cmake
index 39fefa012..284e25300 100644
--- a/ports/asio/portfile.cmake
+++ b/ports/asio/portfile.cmake
@@ -1,16 +1,22 @@
#header-only library
include(vcpkg_common_functions)
-SET(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/asio-asio-1-10-8/asio/)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/chriskohlhoff/asio/archive/asio-1-10-8.zip"
- FILENAME "asio-1-10-8.zip"
- SHA512 bc9794a20fc7844a2a9d22bfa418005f61defbcecdd612daba0d317e6f8fc5a61d3a3b2d7d557b92584294b8adfccc3c47a8f0441f3e34a47a0f715ca1ba0e5b
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO chriskohlhoff/asio
+ REF asio-1-12-0
+ SHA512 a0e341fd6a848784e1533df84d1e6b361c8468f59d4fbde68c1500c1f8a2124ad78db0169098dbbc594ce26717eb9760f37af13cb288a549e2bda563eecf2be3
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
# Handle copyright
-file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/asio)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/asio/COPYING ${CURRENT_PACKAGES_DIR}/share/asio/copyright)
+file(COPY ${SOURCE_PATH}/asio/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright)
# Copy the asio header files
-file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.hpp" PATTERN "*.ipp")
+file(INSTALL ${SOURCE_PATH}/asio/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.hpp" PATTERN "*.ipp")
+
+# Always use "ASIO_STANDALONE" to avoid boost dependency
+file(READ "${CURRENT_PACKAGES_DIR}/include/asio/detail/config.hpp" _contents)
+string(REPLACE "defined(ASIO_STANDALONE)" "!defined(VCPKG_DISABLE_ASIO_STANDALONE)" _contents "${_contents}")
+file(WRITE "${CURRENT_PACKAGES_DIR}/include/asio/detail/config.hpp" "${_contents}")
diff --git a/ports/asmjit/CONTROL b/ports/asmjit/CONTROL
new file mode 100644
index 000000000..37e16b63a
--- /dev/null
+++ b/ports/asmjit/CONTROL
@@ -0,0 +1,3 @@
+Source: asmjit
+Version: 673dcefaa048c5f5a2bf8b85daf8f7b9978d018a
+Description: Complete x86/x64 JIT and Remote Assembler for C++
diff --git a/ports/asmjit/portfile.cmake b/ports/asmjit/portfile.cmake
new file mode 100644
index 000000000..3efe1e025
--- /dev/null
+++ b/ports/asmjit/portfile.cmake
@@ -0,0 +1,40 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO asmjit/asmjit
+ REF 673dcefaa048c5f5a2bf8b85daf8f7b9978d018a
+ SHA512 f3cf4b603424ec0bf7e00463ad94e157bd549265730be66e5e29af31182ca3a6a318ff4c1b1d0fcd2595163df51ad6d34041583b8cbe73be1155562739c25555
+ HEAD_REF master
+)
+
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DASMJIT_STATIC=1
+ )
+else()
+ vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ )
+endif()
+
+
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/asmjit RENAME copyright)
diff --git a/ports/assimp/CONTROL b/ports/assimp/CONTROL
index 2c4736563..a2cb8e780 100644
--- a/ports/assimp/CONTROL
+++ b/ports/assimp/CONTROL
@@ -1,4 +1,4 @@
Source: assimp
-Version: 3.3.1
+Version: 4.1.0-1
Description: The Open Asset import library
Build-Depends: zlib
diff --git a/ports/assimp/dont-overwrite-prefix-path.patch b/ports/assimp/dont-overwrite-prefix-path.patch
new file mode 100644
index 000000000..fc58a99c5
--- /dev/null
+++ b/ports/assimp/dont-overwrite-prefix-path.patch
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d781d1f..0d64d50 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -92,7 +92,6 @@ if (WIN32)
+ endif()
+
+ IF(MSVC)
+- set (CMAKE_PREFIX_PATH "D:\\libs\\devil")
+ OPTION( ASSIMP_INSTALL_PDB
+ "Install MSVC debug files."
+ ON
diff --git a/ports/assimp/portfile.cmake b/ports/assimp/portfile.cmake
index 452233265..6d4a7ec1d 100644
--- a/ports/assimp/portfile.cmake
+++ b/ports/assimp/portfile.cmake
@@ -1,40 +1,51 @@
-# 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}
-#
-
include(vcpkg_common_functions)
-SET(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/assimp-3.3.1)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/assimp/assimp/archive/v3.3.1.zip"
- FILENAME "assimp-3.3.1.zip"
- SHA512 d8488702989629a80297b9aea1f91fd5f3d0736f91cc5d7991a41ade99a445e9897c752fbedb2829350fabb5439d4ea31d34bbedb771b3e66aef23cd40b02122
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO assimp/assimp
+ REF v4.1.0
+ SHA512 5f1292de873ae16c9921d1d44f2871474d74c0ddfd76cc928a7d9b3e03aa6eca4cc72af0513da20a86d09c55d48646e610fd4a4f2b05364f08ad09cf27cbc67a
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/dont-overwrite-prefix-path.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/uninitialized-variable.patch"
)
-vcpkg_extract_source_archive(${ARCHIVE})
+
+file(REMOVE ${SOURCE_PATH}/cmake-modules/FindZLIB.cmake)
+set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
+set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS -DASSIMP_BUILD_TESTS=False
- -DASSIMP_BUILD_ASSIMP_VIEW=False
- -DASSIMP_BUILD_ZLIB=False
- -DASSIMP_BUILD_ASSIMP_TOOLS=False
- # OPTIONS_RELEASE -DOPTIMIZE=1
- # OPTIONS_DEBUG -DDEBUGGABLE=1
+ OPTIONS -DASSIMP_BUILD_TESTS=OFF
+ -DASSIMP_BUILD_ASSIMP_VIEW=OFF
+ -DASSIMP_BUILD_ZLIB=OFF
+ -DASSIMP_BUILD_ASSIMP_TOOLS=OFF
+ -DASSIMP_INSTALL_PDB=OFF
)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/assimp-4.1")
+
+vcpkg_copy_pdbs()
+
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake/assimp-3.3 ${CURRENT_PACKAGES_DIR}/share/assimp)
-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(READ ${CURRENT_PACKAGES_DIR}/share/assimp/assimp-config.cmake ASSIMP_CONFIG)
+string(REPLACE "get_filename_component(ASSIMP_ROOT_DIR \"\${_PREFIX}\" PATH)"
+ "set(ASSIMP_ROOT_DIR \${_PREFIX})" ASSIMP_CONFIG ${ASSIMP_CONFIG})
+string(REPLACE "assimp\${ASSIMP_LIBRARY_SUFFIX}"
+ "assimp\${ASSIMP_LIBRARY_SUFFIX}.lib" ASSIMP_CONFIG ${ASSIMP_CONFIG})
+string(REPLACE "set( ASSIMP_LIBRARIES \${ASSIMP_LIBRARIES})"
+ "set( ASSIMP_LIBRARIES \${ASSIMP_LIBRARY_DIRS}/\${ASSIMP_LIBRARIES})" ASSIMP_CONFIG ${ASSIMP_CONFIG})
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/assimp/assimp-config.cmake "${ASSIMP_CONFIG}")
+
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/assimp)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/assimp/LICENSE ${CURRENT_PACKAGES_DIR}/share/assimp/copyright)
-
-vcpkg_copy_pdbs() \ No newline at end of file
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/atk/CMakeLists.txt b/ports/atk/CMakeLists.txt
index f260e09e9..41937fff9 100644
--- a/ports/atk/CMakeLists.txt
+++ b/ports/atk/CMakeLists.txt
@@ -11,21 +11,26 @@ endif()
# generate atkmarshal.c and atkmarshal.h source files
# glib-genmarshal should be installed along with glib
-if(NOT EXISTS ${CMAKE_SOURCE_DIR}/atk/atkmarshal.h OR NOT EXISTS ${CMAKE_SOURCE_DIR}/atk/atkmarshal.c)
- find_program(GLIB_GENMARSHAL glib-genmarshal PATH_SUFFIXES glib)
- execute_process(
- COMMAND ${GLIB_GENMARSHAL} --prefix=atk_marshal atkmarshal.list --header
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/atk
- OUTPUT_FILE ${CMAKE_SOURCE_DIR}/atk/atkmarshal.h)
- execute_process(
- COMMAND ${GLIB_GENMARSHAL} --prefix=atk_marshal atkmarshal.list --body
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/atk
- OUTPUT_FILE ${CMAKE_SOURCE_DIR}/atk/atkmarshal.c)
-endif()
+find_program(GLIB_GENMARSHAL glib-genmarshal PATH_SUFFIXES glib)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/atk)
+
+message("Generating atkmarshal.h: ${GLIB_GENMARSHAL} --prefix=atk_marshal ${CMAKE_CURRENT_SOURCE_DIR}/atk/atkmarshal.list --header")
+execute_process(
+ COMMAND ${GLIB_GENMARSHAL} --prefix=atk_marshal ${CMAKE_CURRENT_SOURCE_DIR}/atk/atkmarshal.list --header
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/atk
+ OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/atk/atkmarshal.h
+)
+
+message("Generating atkmarshal.c: ${GLIB_GENMARSHAL} --prefix=atk_marshal ${CMAKE_CURRENT_SOURCE_DIR}/atk/atkmarshal.list --body")
+execute_process(
+ COMMAND ${GLIB_GENMARSHAL} --prefix=atk_marshal ${CMAKE_CURRENT_SOURCE_DIR}/atk/atkmarshal.list --body
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/atk
+ OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/atk/atkmarshal.c
+)
-configure_file(config.h.win32 ${CMAKE_SOURCE_DIR}/config.h COPYONLY)
+configure_file(config.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/config.h COPYONLY)
add_definitions(-DHAVE_CONFIG_H)
-include_directories(. ./atk)
+include_directories(. ./atk ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/atk)
find_path(GLIB_INCLUDE_DIR glib.h)
find_library(GLIB_GLIB_LIBRARY glib-${GLIB_LIB_VERSION})
diff --git a/ports/atk/CONTROL b/ports/atk/CONTROL
index 149c564a7..b4bdda0eb 100644
--- a/ports/atk/CONTROL
+++ b/ports/atk/CONTROL
@@ -1,4 +1,4 @@
Source: atk
-Version: 2.24.0
+Version: 2.24.0-2
Description: GNOME Accessibility Toolkit
Build-Depends: glib, gettext
diff --git a/ports/atk/portfile.cmake b/ports/atk/portfile.cmake
index 66207d5ca..8b65312e5 100644
--- a/ports/atk/portfile.cmake
+++ b/ports/atk/portfile.cmake
@@ -1,7 +1,6 @@
# ATK uses DllMain
-if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- message(STATUS "Warning: Static building not supported. Building dynamic.")
- set(VCPKG_LIBRARY_LINKAGE dynamic)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "ATK only supports dynamic library and crt linkage")
endif()
include(vcpkg_common_functions)
diff --git a/ports/atkmm/CONTROL b/ports/atkmm/CONTROL
new file mode 100644
index 000000000..3a8d55164
--- /dev/null
+++ b/ports/atkmm/CONTROL
@@ -0,0 +1,4 @@
+Source: atkmm
+Version: 2.24.2
+Description: atkmm is the official C++ interface for the ATK accessibility toolkit library. It may be used, for instance, by user interfaces implemented with gtkmm.
+Build-Depends: glib, gettext, atk, glibmm
diff --git a/ports/atkmm/COPYING b/ports/atkmm/COPYING
new file mode 100644
index 000000000..2d2d780e6
--- /dev/null
+++ b/ports/atkmm/COPYING
@@ -0,0 +1,510 @@
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations
+below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it
+becomes a de-facto standard. To achieve this, non-free programs must
+be allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control
+compilation and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at least
+ three years, to give the same user the materials specified in
+ Subsection 6a, above, for a charge no more than the cost of
+ performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply, and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License
+may add an explicit geographical distribution limitation excluding those
+countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms
+of the ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library.
+It is safest to attach them to the start of each source file to most
+effectively convey the exclusion of warranty; and each file should
+have at least the "copyright" line and a pointer to where the full
+notice is found.
+
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the library,
+if necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James
+ Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/ports/atkmm/README b/ports/atkmm/README
new file mode 100644
index 000000000..e3ac5c916
--- /dev/null
+++ b/ports/atkmm/README
@@ -0,0 +1,2 @@
+atkmm is the C++ binding for the ATK library.
+This module is part of the GNOME C++ bindings effort <http://www.gtkmm.org/>.
diff --git a/ports/atkmm/fix_charset.patch b/ports/atkmm/fix_charset.patch
new file mode 100644
index 000000000..60cd8fbcd
--- /dev/null
+++ b/ports/atkmm/fix_charset.patch
@@ -0,0 +1,98 @@
+diff --git a/MSVC_Net2013/atkmm.vcxproj b/MSVC_Net2013/atkmm.vcxproj
+index 40f21cb..e9f5c5e 100644
+--- a/MSVC_Net2013/atkmm.vcxproj
++++ b/MSVC_Net2013/atkmm.vcxproj
+@@ -22,21 +22,22 @@
+ <ProjectName>atkmm</ProjectName>
+ <ProjectGuid>{9FE0D5A6-458C-45C7-B954-2C3C1E6196C2}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+diff --git a/MSVC_Net2013/gendef.vcxproj b/MSVC_Net2013/gendef.vcxproj
+index d6f2798..aab7023 100644
+--- a/MSVC_Net2013/gendef.vcxproj
++++ b/MSVC_Net2013/gendef.vcxproj
+@@ -21,21 +21,22 @@
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{07324745-C9BE-4D65-B08A-9C88188C0C28}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+diff --git a/MSVC_Net2013/install.vcxproj b/MSVC_Net2013/install.vcxproj
+index 6225a66..7f61dc5 100644
+--- a/MSVC_Net2013/install.vcxproj
++++ b/MSVC_Net2013/install.vcxproj
+@@ -22,28 +22,29 @@
+ <ProjectGuid>{2093D218-190E-4194-9421-3BA7CBF33B10}</ProjectGuid>
+ <RootNamespace>install</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
diff --git a/ports/atkmm/fix_properties.patch b/ports/atkmm/fix_properties.patch
new file mode 100644
index 000000000..a03924386
--- /dev/null
+++ b/ports/atkmm/fix_properties.patch
@@ -0,0 +1,306 @@
+diff --git a/MSVC_Net2013/atkmm-build-defines.props b/MSVC_Net2013/atkmm-build-defines.props
+index 421f5c3..0275e6e 100644
+--- a/MSVC_Net2013/atkmm-build-defines.props
++++ b/MSVC_Net2013/atkmm-build-defines.props
+@@ -5,8 +5,6 @@
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros">
+ <AtkMMBuildDefs>ATKMM_BUILD</AtkMMBuildDefs>
+- <CPPDepLibsRelease>glibmm-vc$(VSVer)0-2_4.lib;sigc-vc$(VSVer)0-2_0.lib</CPPDepLibsRelease>
+- <CPPDepLibsDebug>glibmm-vc$(VSVer)0-d-2_4.lib;sigc-vc$(VSVer)0-d-2_0.lib</CPPDepLibsDebug>
+ </PropertyGroup>
+ <PropertyGroup>
+ <_PropertySheetDisplayName>panogmmbuilddefinesprops</_PropertySheetDisplayName>
+@@ -15,25 +13,19 @@
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+ <ClCompile>
+- <AdditionalIncludeDirectories>.\atkmm;..\atk;$(GlibEtcInstallRoot)\include\glibmm-2.4;$(GlibEtcInstallRoot)\lib\glibmm-2.4\include;$(GlibEtcInstallRoot)\include\sigc++-2.0;$(GlibEtcInstallRoot)\lib\sigc++-2.0\include;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>.\atkmm;..\atk;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <AdditionalOptions>/d2Zi+ %(AdditionalOptions)</AdditionalOptions>
+ </ClCompile>
+ <Link>
+- <AdditionalDependencies>atk-1.0.lib;gobject-2.0.lib;glib-2.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
+- <AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <BuildMacro Include="AtkMMBuildDefs">
+ <Value>$(AtkMMBuildDefs)</Value>
+ </BuildMacro>
+- <BuildMacro Include="CPPDepLibsRelease">
+- <Value>$(CPPDepLibsRelease)</Value>
+- </BuildMacro>
+- <BuildMacro Include="CPPDepLibsDebug">
+- <Value>$(CPPDepLibsDebug)</Value>
+- </BuildMacro>
+ </ItemGroup>
+ </Project>
+\ No newline at end of file
+diff --git a/MSVC_Net2013/atkmm-version-paths.props b/MSVC_Net2013/atkmm-version-paths.props
+index affd50f..675aa3e 100644
+--- a/MSVC_Net2013/atkmm-version-paths.props
++++ b/MSVC_Net2013/atkmm-version-paths.props
+@@ -2,13 +2,9 @@
+ <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup Label="UserMacros">
+ <VSVer>12</VSVer>
+- <GlibEtcInstallRoot>$(SolutionDir)\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
+- <CopyDir>$(GlibEtcInstallRoot)</CopyDir>
+ <DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName)\</DefDir>
+ <ApiMajorVersion>1</ApiMajorVersion>
+ <ApiMinorVersion>6</ApiMinorVersion>
+- <ReleaseDllSuffix>-vc$(VSVer)0-$(ApiMajorVersion)_$(ApiMinorVersion)</ReleaseDllSuffix>
+- <DebugDllSuffix>-vc$(VSVer)0-d-$(ApiMajorVersion)_$(ApiMinorVersion)</DebugDllSuffix>
+ </PropertyGroup>
+ <PropertyGroup>
+ <_PropertySheetDisplayName>atkmmversionpathsprops</_PropertySheetDisplayName>
+@@ -17,12 +13,6 @@
+ <BuildMacro Include="VSVer">
+ <Value>$(VSVer)</Value>
+ </BuildMacro>
+- <BuildMacro Include="GlibEtcInstallRoot">
+- <Value>$(GlibEtcInstallRoot)</Value>
+- </BuildMacro>
+- <BuildMacro Include="CopyDir">
+- <Value>$(CopyDir)</Value>
+- </BuildMacro>
+ <BuildMacro Include="DefDir">
+ <Value>$(DefDir)</Value>
+ </BuildMacro>
+@@ -32,11 +22,5 @@
+ <BuildMacro Include="ApiMinorVersion">
+ <Value>$(ApiMinorVersion)</Value>
+ </BuildMacro>
+- <BuildMacro Include="ReleaseDllSuffix">
+- <Value>$(ReleaseDllSuffix)</Value>
+- </BuildMacro>
+- <BuildMacro Include="DebugDllSuffix">
+- <Value>$(DebugDllSuffix)</Value>
+- </BuildMacro>
+ </ItemGroup>
+ </Project>
+\ No newline at end of file
+diff --git a/MSVC_Net2013/atkmm.vcxproj b/MSVC_Net2013/atkmm.vcxproj
+index c3db50a..40f21cb 100644
+--- a/MSVC_Net2013/atkmm.vcxproj
++++ b/MSVC_Net2013/atkmm.vcxproj
+@@ -41,7 +41,7 @@
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+diff --git a/MSVC_Net2013/atkmm.vcxproj.filters b/MSVC_Net2013/atkmm.vcxproj.filters
+index f0fca22..6598996 100644
+--- a/MSVC_Net2013/atkmm.vcxproj.filters
++++ b/MSVC_Net2013/atkmm.vcxproj.filters
+@@ -15,55 +15,143 @@
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+- <ClCompile Include="..\atk\atkmm\action.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\component.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\document.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\editabletext.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\hyperlink.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\hypertext.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\image.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\implementor.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\init.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\noopobject.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\object.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\objectaccessible.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\range.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\relation.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\relationset.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\selection.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\stateset.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\streamablecontent.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\table.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\text.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\value.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\atk\atkmm\wrap_init.cc"><Filter>Source Files</Filter></ClCompile>
++ <ClCompile Include="..\atk\atkmm\action.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\component.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\document.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\editabletext.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\hyperlink.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\hypertext.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\image.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\implementor.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\init.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\noopobject.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\object.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\objectaccessible.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\range.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\relation.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\relationset.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\selection.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\stateset.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\streamablecontent.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\table.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\text.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\value.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\atk\atkmm\wrap_init.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+- <ClInclude Include="..\atk\atkmm\action.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\component.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\document.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\editabletext.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\hyperlink.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\hypertext.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\image.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\implementor.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\init.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\noopobject.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\object.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\objectaccessible.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\range.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\relation.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\relationset.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\selection.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\stateset.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\streamablecontent.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\table.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\text.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\value.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\atk\atkmm\wrap_init.h"><Filter>Header Files</Filter></ClInclude>
++ <ClInclude Include="..\atk\atkmm\action.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\component.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\document.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\editabletext.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\hyperlink.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\hypertext.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\image.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\implementor.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\init.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\noopobject.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\object.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\objectaccessible.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\range.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\relation.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\relationset.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\selection.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\stateset.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\streamablecontent.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\table.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\text.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\value.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\atk\atkmm\wrap_init.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+- <ResourceCompile Include="atkmm.rc">
++ <ResourceCompile Include=".\atkmm\atkmm.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+diff --git a/MSVC_Net2013/gendef.vcxproj b/MSVC_Net2013/gendef.vcxproj
+index 554054c..d6f2798 100644
+--- a/MSVC_Net2013/gendef.vcxproj
++++ b/MSVC_Net2013/gendef.vcxproj
+@@ -40,7 +40,7 @@
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
diff --git a/ports/atkmm/msvc_recommended_pragmas.h b/ports/atkmm/msvc_recommended_pragmas.h
new file mode 100644
index 000000000..c0eb1d5ed
--- /dev/null
+++ b/ports/atkmm/msvc_recommended_pragmas.h
@@ -0,0 +1,34 @@
+#ifndef _MSC_VER
+#pragma error "This header is for Microsoft VC only."
+#endif /* _MSC_VER */
+
+/* Make MSVC more pedantic, this is a recommended pragma list
+ * from _Win32_Programming_ by Rector and Newcomer.
+ */
+#pragma warning(error:4002) /* too many actual parameters for macro */
+#pragma warning(error:4003) /* not enough actual parameters for macro */
+#pragma warning(1:4010) /* single-line comment contains line-continuation character */
+#pragma warning(error:4013) /* 'function' undefined; assuming extern returning int */
+#pragma warning(1:4016) /* no function return type; using int as default */
+#pragma warning(error:4020) /* too many actual parameters */
+#pragma warning(error:4021) /* too few actual parameters */
+#pragma warning(error:4027) /* function declared without formal parameter list */
+#pragma warning(error:4029) /* declared formal parameter list different from definition */
+#pragma warning(error:4033) /* 'function' must return a value */
+#pragma warning(error:4035) /* 'function' : no return value */
+#pragma warning(error:4045) /* array bounds overflow */
+#pragma warning(error:4047) /* different levels of indirection */
+#pragma warning(error:4049) /* terminating line number emission */
+#pragma warning(error:4053) /* An expression of type void was used as an operand */
+#pragma warning(error:4071) /* no function prototype given */
+#pragma warning(disable:4101) /* unreferenced local variable */
+#pragma warning(error:4150)
+
+#pragma warning(disable:4244) /* No possible loss of data warnings */
+#pragma warning(disable:4305) /* No truncation from int to char warnings */
+
+#pragma warning(error:4819) /* The file contains a character that cannot be represented in the current code page */
+
+/* work around Microsoft's premature attempt to deprecate the C-Library */
+#define _CRT_SECURE_NO_WARNINGS
+#define _CRT_NONSTDC_NO_WARNINGS
diff --git a/ports/atkmm/portfile.cmake b/ports/atkmm/portfile.cmake
new file mode 100644
index 000000000..74cf021c8
--- /dev/null
+++ b/ports/atkmm/portfile.cmake
@@ -0,0 +1,70 @@
+# ATK uses DllMain, so atkmm also
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(STATUS "Warning: Static building not supported. Building dynamic.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/atkmm-2.24.2)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://ftp.gnome.org/pub/GNOME/sources/atkmm/2.24/atkmm-2.24.2.tar.xz"
+ FILENAME "atkmm-2.24.2.tar.xz"
+ SHA512 427714cdf3b10e3f9bc36df09c4b05608d295f5895fb1e079b9bd84afdf7bf1cfdec6794ced7f1e35bd430b76f87792df4ee63c515071a2ea6e3e51e672cdbe2
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix_properties.patch ${CMAKE_CURRENT_LIST_DIR}/fix_charset.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/msvc_recommended_pragmas.h DESTINATION ${SOURCE_PATH}/MSVC_Net2013)
+
+set(VS_PLATFORM ${VCPKG_TARGET_ARCHITECTURE})
+if(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86)
+ set(VS_PLATFORM "Win32")
+endif(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86)
+vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/MSVC_Net2013/atkmm.sln
+ TARGET atkmm
+ PLATFORM ${VS_PLATFORM}
+ USE_VCPKG_INTEGRATION
+)
+
+# Handle headers
+file(COPY ${SOURCE_PATH}/MSVC_Net2013/atkmm/atkmmconfig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(COPY ${SOURCE_PATH}/atk/atkmm.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(
+ COPY
+ ${SOURCE_PATH}/atk/atkmm
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
+ FILES_MATCHING PATTERN *.h
+)
+
+# Handle libraries
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/atkmm.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+)
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/atkmm.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+)
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/atkmm.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+)
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/atkmm.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+vcpkg_copy_pdbs()
+
+# Handle copyright and readme
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/atkmm RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/atkmm RENAME readme.txt)
diff --git a/ports/aubio/CMakeLists.txt b/ports/aubio/CMakeLists.txt
new file mode 100644
index 000000000..a405a48de
--- /dev/null
+++ b/ports/aubio/CMakeLists.txt
@@ -0,0 +1,101 @@
+cmake_minimum_required(VERSION 3.8)
+project(aubio C)
+
+add_definitions(
+ -DHAVE_STDLIB_H=1
+ -DHAVE_STDIO_H=1
+ -DHAVE_MATH_H=1
+ -DHAVE_STRING_H=1
+ -DHAVE_LIMITS_H=1
+ -DHAVE_STDARG_H=1
+ -DHAVE_C99_VARARGS_MACROS=1
+
+ -DHAVE_SNDFILE=1
+ -DHAVE_WAVWRITE=1
+ -DHAVE_WAVREAD=1
+ -DHAVE_LIBAV=1
+ -DHAVE_SWRESAMPLE=1
+
+ -D_CRT_SECURE_NO_WARNINGS=1
+)
+
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+set(CMAKE_DEBUG_POSTFIX d)
+
+option(BUILD_TOOLS "Build and install tools" ON)
+set(TOOLS_INSTALLDIR "bin" CACHE STRING "Target directory for installed tools")
+
+find_path(LIBSNDFILE_H sndfile.h)
+find_library(LIBSNDFILE_LIB NAMES libsndfile-1 libsndfile)
+find_library(AVCODEC_LIB avcodec)
+find_library(AVUTIL_LIB avutil)
+find_library(AVDEVICE_LIB avdevice)
+find_library(AVFILTER_LIB avfilter)
+find_library(AVFORMAT_LIB avformat)
+find_library(SWRESAMPLE_LIB swresample)
+find_library(OGG_LIB ogg)
+find_library(FLAC_LIB flac)
+find_library(VORBIS_LIB vorbis)
+find_library(VORBISENC_LIB vorbisenc)
+find_package(BZip2 REQUIRED)
+find_package(LibLZMA REQUIRED)
+
+include_directories(src ${LIBSNDFILE_H} ${LIBLZMA_INCLUDE_DIRS})
+
+file(GLOB_RECURSE SOURCES src/*.c)
+
+set_source_files_properties(src/io/sink_wavwrite.c PROPERTIES COMPILE_FLAGS /FIWinsock2.h)
+add_library(aubio ${SOURCES})
+target_link_libraries(aubio PUBLIC
+ ${LIBSNDFILE_LIB}
+ ${OGG_LIB}
+ ${FLAC_LIB}
+ ${VORBIS_LIB}
+ ${VORBISENC_LIB}
+ ${AVCODEC_LIB}
+ ${AVUTIL_LIB}
+ ${AVDEVICE_LIB}
+ ${AVFILTER_LIB}
+ ${AVFORMAT_LIB}
+ ${SWRESAMPLE_LIB}
+ BZip2::BZip2
+ ${LIBLZMA_LIBRARIES}
+ ws2_32.lib
+ Secur32.lib
+)
+
+if(BUILD_TOOLS)
+ set(EXAMPLE_EXECS aubiomfcc aubionotes aubioonset aubiopitch aubioquiet aubiotrack)
+ foreach(EXAMPLE_EXEC ${EXAMPLE_EXECS})
+ add_executable(${EXAMPLE_EXEC} examples/${EXAMPLE_EXEC}.c examples/utils.c examples/jackio.c)
+ target_link_libraries(${EXAMPLE_EXEC} PRIVATE aubio)
+ target_compile_definitions(${EXAMPLE_EXEC} PRIVATE -DHAVE_WIN_HACKS=1)
+ endforeach()
+ # Create and add fake config.h to avoid build errors (file is generated for
+ # cross-platform requirements in waf build-system)
+ file(WRITE "${CMAKE_BINARY_DIR}/config.h" "")
+ include_directories(${CMAKE_BINARY_DIR})
+
+ install(
+ TARGETS ${EXAMPLE_EXECS}
+ RUNTIME DESTINATION ${TOOLS_INSTALLDIR}
+ )
+endif()
+
+install(
+ TARGETS aubio
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(
+ DIRECTORY src/
+ DESTINATION include/aubio
+ FILES_MATCHING
+ PATTERN "*.h"
+ PATTERN "*_priv.h" EXCLUDE
+ PATTERN "config.h" EXCLUDE
+ )
+endif()
diff --git a/ports/aubio/CONTROL b/ports/aubio/CONTROL
new file mode 100644
index 000000000..6f5daa30a
--- /dev/null
+++ b/ports/aubio/CONTROL
@@ -0,0 +1,4 @@
+Source: aubio
+Version: 0.4.6-2
+Description: Aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio.
+Build-Depends: ffmpeg, libsndfile, libogg, libflac, libvorbis, bzip2, liblzma
diff --git a/ports/aubio/portfile.cmake b/ports/aubio/portfile.cmake
new file mode 100644
index 000000000..02b898246
--- /dev/null
+++ b/ports/aubio/portfile.cmake
@@ -0,0 +1,36 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/aubio-3c230fae309e9ea3298783368dd71bae6172359a)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO aubio/aubio
+ REF 0.4.6
+ SHA512 9bb787d81f39ab8e3440be9936552a712a24e009884818e13e80dde756ad3874055bcd931ca3af638122f6a0d0bc53e62e1abeedce3fd79af35fe9ddea6bc707
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_RELEASE
+ -DTOOLS_INSTALLDIR=tools/aubio
+ -DBUILD_TOOLS=ON
+ OPTIONS_DEBUG
+ -DDISABLE_INSTALL_HEADERS=1
+ -DBUILD_TOOLS=OFF
+)
+vcpkg_install_cmake()
+
+# Handle copyright and credentials
+file(COPY
+ ${SOURCE_PATH}/COPYING
+ ${SOURCE_PATH}/AUTHORS
+ ${SOURCE_PATH}/ChangeLog
+ ${SOURCE_PATH}/README.md
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/share/aubio)
+
+vcpkg_copy_pdbs()
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/aubio)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/aubio/COPYING ${CURRENT_PACKAGES_DIR}/share/aubio/copyright)
diff --git a/ports/aurora/CONTROL b/ports/aurora/CONTROL
new file mode 100644
index 000000000..172c019cd
--- /dev/null
+++ b/ports/aurora/CONTROL
@@ -0,0 +1,3 @@
+Source: aurora
+Version: 2017-06-21-c75699d2a8caa726260c29b6d7a0fd35f8f28933
+Description: Aurora is an open-source C++ library providing various rather uncommon C++ utilities
diff --git a/ports/aurora/portfile.cmake b/ports/aurora/portfile.cmake
new file mode 100644
index 000000000..32e3d804f
--- /dev/null
+++ b/ports/aurora/portfile.cmake
@@ -0,0 +1,11 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Bromeon/Aurora
+ REF c75699d2a8caa726260c29b6d7a0fd35f8f28933
+ SHA512 862253e281eb441b773feb330d5ce4d7fe10769f516e927c0f875477ec912671fc35132a48986b2394f6d0a7160a5cb70afe868c597350c385ce23686b9613d6
+ HEAD_REF master
+)
+file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR})
+file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/aurora RENAME copyright)
+vcpkg_copy_pdbs()
diff --git a/ports/avro-c/CONTROL b/ports/avro-c/CONTROL
new file mode 100644
index 000000000..5bcf16fe5
--- /dev/null
+++ b/ports/avro-c/CONTROL
@@ -0,0 +1,4 @@
+Source: avro-c
+Version: 1.8.2-1
+Description: Apache Avro is a data serialization system
+Build-Depends: jansson, liblzma, zlib
diff --git a/ports/avro-c/avro-pr-217.patch b/ports/avro-c/avro-pr-217.patch
new file mode 100644
index 000000000..9a5ddd3a8
--- /dev/null
+++ b/ports/avro-c/avro-pr-217.patch
@@ -0,0 +1,421 @@
+diff --git a/lang/c/src/schema.c b/lang/c/src/schema.c
+index 3ade1140e..97e3ff354 100644
+--- a/lang/c/src/schema.c
++++ b/lang/c/src/schema.c
+@@ -2,17 +2,17 @@
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+- * The ASF licenses this file to you under the Apache License, Version 2.0
++ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+- *
++ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+- *
++ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+- * permissions and limitations under the License.
++ * permissions and limitations under the License.
+ */
+
+ #include "avro/allocation.h"
+@@ -61,7 +61,7 @@ static int is_avro_id(const char *name)
+ }
+ }
+ /*
+- * starts with [A-Za-z_] subsequent [A-Za-z0-9_]
++ * starts with [A-Za-z_] subsequent [A-Za-z0-9_]
+ */
+ return 1;
+ }
+@@ -199,7 +199,13 @@ static void avro_schema_free(avro_schema_t schema)
+ case AVRO_LINK:{
+ struct avro_link_schema_t *link;
+ link = avro_schema_to_link(schema);
+- avro_schema_decref(link->to);
++ /* Since we didn't increment the
++ * reference count of the target
++ * schema when we created the link, we
++ * should not decrement the reference
++ * count of the target schema when we
++ * free the link.
++ */
+ avro_freet(struct avro_link_schema_t, link);
+ }
+ break;
+@@ -727,7 +733,19 @@ avro_schema_t avro_schema_link(avro_schema_t to)
+ avro_set_error("Cannot allocate new link schema");
+ return NULL;
+ }
+- link->to = avro_schema_incref(to);
++
++ /* Do not increment the reference count of target schema
++ * pointed to by the AVRO_LINK. AVRO_LINKs are only valid
++ * internal to a schema. The target schema pointed to by a
++ * link will be valid as long as the top-level schema is
++ * valid. Similarly, the link will be valid as long as the
++ * top-level schema is valid. Therefore the validity of the
++ * link ensures the validity of its target, and we don't need
++ * an additional reference count on the target. This mechanism
++ * of an implied validity also breaks reference count cycles
++ * for recursive schemas, which result in memory leaks.
++ */
++ link->to = to;
+ avro_schema_init(&link->obj, AVRO_LINK);
+ return &link->obj;
+ }
+@@ -807,7 +825,7 @@ avro_type_from_json_t(json_t *json, avro_type_t *type,
+ return EINVAL;
+ }
+ /*
+- * TODO: gperf/re2c this
++ * TODO: gperf/re2c this
+ */
+ if (strcmp(type_str, "string") == 0) {
+ *type = AVRO_STRING;
+@@ -1259,7 +1277,7 @@ avro_schema_from_json_length(const char *jsontext, size_t length,
+ return avro_schema_from_json_root(root, schema);
+ }
+
+-avro_schema_t avro_schema_copy(avro_schema_t schema)
++avro_schema_t avro_schema_copy_root(avro_schema_t schema, st_table *named_schemas)
+ {
+ long i;
+ avro_schema_t new_schema = NULL;
+@@ -1276,7 +1294,7 @@ avro_schema_t avro_schema_copy(avro_schema_t schema)
+ case AVRO_BOOLEAN:
+ case AVRO_NULL:
+ /*
+- * No need to copy primitives since they're static
++ * No need to copy primitives since they're static
+ */
+ new_schema = schema;
+ break;
+@@ -1288,6 +1306,10 @@ avro_schema_t avro_schema_copy(avro_schema_t schema)
+ new_schema =
+ avro_schema_record(record_schema->name,
+ record_schema->space);
++ if (save_named_schemas(new_schema, named_schemas)) {
++ avro_set_error("Cannot save enum schema");
++ return NULL;
++ }
+ for (i = 0; i < record_schema->fields->num_entries; i++) {
+ union {
+ st_data_t data;
+@@ -1295,10 +1317,11 @@ avro_schema_t avro_schema_copy(avro_schema_t schema)
+ } val;
+ st_lookup(record_schema->fields, i, &val.data);
+ avro_schema_t type_copy =
+- avro_schema_copy(val.field->type);
++ avro_schema_copy_root(val.field->type, named_schemas);
+ avro_schema_record_field_append(new_schema,
+ val.field->name,
+ type_copy);
++ avro_schema_decref(type_copy);
+ }
+ }
+ break;
+@@ -1309,6 +1332,10 @@ avro_schema_t avro_schema_copy(avro_schema_t schema)
+ avro_schema_to_enum(schema);
+ new_schema = avro_schema_enum_ns(enum_schema->name,
+ enum_schema->space);
++ if (save_named_schemas(new_schema, named_schemas)) {
++ avro_set_error("Cannot save enum schema");
++ return NULL;
++ }
+ for (i = 0; i < enum_schema->symbols->num_entries; i++) {
+ union {
+ st_data_t data;
+@@ -1329,6 +1356,10 @@ avro_schema_t avro_schema_copy(avro_schema_t schema)
+ avro_schema_fixed_ns(fixed_schema->name,
+ fixed_schema->space,
+ fixed_schema->size);
++ if (save_named_schemas(new_schema, named_schemas)) {
++ avro_set_error("Cannot save fixed schema");
++ return NULL;
++ }
+ }
+ break;
+
+@@ -1337,11 +1368,12 @@ avro_schema_t avro_schema_copy(avro_schema_t schema)
+ struct avro_map_schema_t *map_schema =
+ avro_schema_to_map(schema);
+ avro_schema_t values_copy =
+- avro_schema_copy(map_schema->values);
++ avro_schema_copy_root(map_schema->values, named_schemas);
+ if (!values_copy) {
+ return NULL;
+ }
+ new_schema = avro_schema_map(values_copy);
++ avro_schema_decref(values_copy);
+ }
+ break;
+
+@@ -1350,11 +1382,12 @@ avro_schema_t avro_schema_copy(avro_schema_t schema)
+ struct avro_array_schema_t *array_schema =
+ avro_schema_to_array(schema);
+ avro_schema_t items_copy =
+- avro_schema_copy(array_schema->items);
++ avro_schema_copy_root(array_schema->items, named_schemas);
+ if (!items_copy) {
+ return NULL;
+ }
+ new_schema = avro_schema_array(items_copy);
++ avro_schema_decref(items_copy);
+ }
+ break;
+
+@@ -1372,12 +1405,13 @@ avro_schema_t avro_schema_copy(avro_schema_t schema)
+ avro_schema_t schema;
+ } val;
+ st_lookup(union_schema->branches, i, &val.data);
+- schema_copy = avro_schema_copy(val.schema);
++ schema_copy = avro_schema_copy_root(val.schema, named_schemas);
+ if (avro_schema_union_append
+ (new_schema, schema_copy)) {
+ avro_schema_decref(new_schema);
+ return NULL;
+ }
++ avro_schema_decref(schema_copy);
+ }
+ }
+ break;
+@@ -1386,12 +1420,12 @@ avro_schema_t avro_schema_copy(avro_schema_t schema)
+ {
+ struct avro_link_schema_t *link_schema =
+ avro_schema_to_link(schema);
+- /*
+- * TODO: use an avro_schema_copy of to instead of pointing to
+- * the same reference
+- */
+- avro_schema_incref(link_schema->to);
+- new_schema = avro_schema_link(link_schema->to);
++ avro_schema_t to;
++
++ to = find_named_schemas(avro_schema_name(link_schema->to),
++ avro_schema_namespace(link_schema->to),
++ named_schemas);
++ new_schema = avro_schema_link(to);
+ }
+ break;
+
+@@ -1401,6 +1435,23 @@ avro_schema_t avro_schema_copy(avro_schema_t schema)
+ return new_schema;
+ }
+
++avro_schema_t avro_schema_copy(avro_schema_t schema)
++{
++ avro_schema_t new_schema;
++ st_table *named_schemas;
++
++ named_schemas = st_init_strtable_with_size(DEFAULT_TABLE_SIZE);
++ if (!named_schemas) {
++ avro_set_error("Cannot allocate named schema map");
++ return NULL;
++ }
++
++ new_schema = avro_schema_copy_root(schema, named_schemas);
++ st_foreach(named_schemas, HASH_FUNCTION_CAST named_schema_free_foreach, 0);
++ st_free_table(named_schemas);
++ return new_schema;
++}
++
+ avro_schema_t avro_schema_get_subschema(const avro_schema_t schema,
+ const char *name)
+ {
+diff --git a/lang/c/tests/CMakeLists.txt b/lang/c/tests/CMakeLists.txt
+index 445e689a7..0870ef5ec 100644
+--- a/lang/c/tests/CMakeLists.txt
++++ b/lang/c/tests/CMakeLists.txt
+@@ -48,12 +48,14 @@ add_avro_test(test_data_structures)
+ add_avro_test(test_avro_schema)
+ add_avro_test(test_avro_schema_names)
+ add_avro_test(test_avro_values)
++add_avro_test(test_avro_766)
+ add_avro_test(test_avro_968)
+ add_avro_test(test_avro_984)
+ add_avro_test(test_avro_1034)
+ add_avro_test(test_avro_1084)
+ add_avro_test(test_avro_1087)
+ add_avro_test(test_avro_1165)
++add_avro_test(test_avro_1167)
+ add_avro_test(test_avro_1237)
+ add_avro_test(test_avro_1238)
+ add_avro_test(test_avro_1279)
+diff --git a/lang/c/tests/test_avro_1167.c b/lang/c/tests/test_avro_1167.c
+new file mode 100644
+index 000000000..869b37d17
+--- /dev/null
++++ b/lang/c/tests/test_avro_1167.c
+@@ -0,0 +1,84 @@
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one or more
++ * contributor license agreements. See the NOTICE file distributed with
++ * this work for additional information regarding copyright ownership.
++ * The ASF licenses this file to you under the Apache License, Version 2.0
++ * (the "License"); you may not use this file except in compliance with
++ * the License. You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
++ * implied. See the License for the specific language governing
++ * permissions and limitations under the License.
++ */
++
++#include <stdio.h>
++#include <string.h>
++#include <avro.h>
++
++/* To see the AVRO-1167 memory leak, run this test program through
++ * valgrind. The specific valgrind commandline to use from the
++ * avro-trunk/lang/c/tests directory is:
++ * valgrind -v --track-origins=yes --leak-check=full
++ * --show-reachable = yes ../build/tests/test_avro_1167
++ */
++
++int main(int argc, char **argv)
++{
++ const char *json =
++ "{"
++ " \"name\": \"repeated_subrecord_array\","
++ " \"type\": \"record\","
++ " \"fields\": ["
++ " { \"name\": \"subrecord_one\","
++ " \"type\": {"
++ " \"name\": \"SubrecordType\","
++ " \"type\": \"record\","
++ " \"fields\": ["
++ " { \"name\": \"x\", \"type\": \"int\" },"
++ " { \"name\": \"y\", \"type\": \"int\" }"
++ " ]"
++ " }"
++ " },"
++ " { \"name\": \"subrecord_two\", \"type\": \"SubrecordType\" },"
++ " { \"name\": \"subrecord_array\", \"type\": {"
++ " \"type\":\"array\","
++ " \"items\": \"SubrecordType\""
++ " }"
++ " }"
++ " ]"
++ "}";
++
++ int rval;
++ avro_schema_t schema = NULL;
++ avro_schema_t schema_copy = NULL;
++ avro_schema_error_t error;
++
++ (void) argc;
++ (void) argv;
++
++ rval = avro_schema_from_json(json, strlen(json), &schema, &error);
++ if ( rval )
++ {
++ printf("Failed to read schema from JSON.\n");
++ exit(EXIT_FAILURE);
++ }
++ else
++ {
++ printf("Successfully read schema from JSON.\n");
++ }
++
++ schema_copy = avro_schema_copy( schema );
++ if ( ! avro_schema_equal(schema, schema_copy) )
++ {
++ printf("Failed avro_schema_equal(schema, schema_copy)\n");
++ exit(EXIT_FAILURE);
++ }
++
++ avro_schema_decref(schema);
++ avro_schema_decref(schema_copy);
++ return 0;
++}
+diff --git a/lang/c/tests/test_avro_766.c b/lang/c/tests/test_avro_766.c
+new file mode 100755
+index 000000000..4e21368c4
+--- /dev/null
++++ b/lang/c/tests/test_avro_766.c
+@@ -0,0 +1,76 @@
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one or more
++ * contributor license agreements. See the NOTICE file distributed with
++ * this work for additional information regarding copyright ownership.
++ * The ASF licenses this file to you under the Apache License, Version 2.0
++ * (the "License"); you may not use this file except in compliance with
++ * the License. You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
++ * implied. See the License for the specific language governing
++ * permissions and limitations under the License.
++ */
++
++#include <stdio.h>
++#include <string.h>
++#include <avro.h>
++
++/* To see the AVRO-766 memory leak, run this test program through
++ * valgrind. The specific valgrind commandline to use from the
++ * avro-trunk/lang/c/tests directory is:
++ * valgrind -v --track-origins=yes --leak-check=full
++ * --show-reachable = yes ../build/tests/test_avro_766
++ */
++int main(int argc, char **argv)
++{
++ const char *json =
++ "{"
++ " \"type\": \"record\","
++ " \"name\": \"list\","
++ " \"fields\": ["
++ " { \"name\": \"x\", \"type\": \"int\" },"
++ " { \"name\": \"y\", \"type\": \"int\" },"
++ " { \"name\": \"next\", \"type\": [\"null\",\"list\"]},"
++ " { \"name\": \"arraylist\", \"type\": { \"type\":\"array\", \"items\": \"list\" } }"
++ " ]"
++ "}";
++
++ int rval;
++ avro_schema_t schema = NULL;
++ avro_schema_error_t error;
++
++ (void) argc;
++ (void) argv;
++
++ rval = avro_schema_from_json(json, strlen(json), &schema, &error);
++ if ( rval )
++ {
++ printf("Failed to read schema from JSON.\n");
++ exit(EXIT_FAILURE);
++ }
++ else
++ {
++ printf("Successfully read schema from JSON.\n");
++ }
++
++#define TEST_AVRO_1167 (1)
++ #if TEST_AVRO_1167
++ {
++ avro_schema_t schema_copy = NULL;
++ schema_copy = avro_schema_copy( schema );
++ if ( ! avro_schema_equal(schema, schema_copy) )
++ {
++ printf("Failed avro_schema_equal(schema, schema_copy)\n");
++ exit(EXIT_FAILURE);
++ }
++ avro_schema_decref(schema_copy);
++ }
++ #endif
++
++ avro_schema_decref(schema);
++ return 0;
++}
diff --git a/ports/avro-c/avro.patch b/ports/avro-c/avro.patch
new file mode 100644
index 000000000..50c32a6d3
--- /dev/null
+++ b/ports/avro-c/avro.patch
@@ -0,0 +1,349 @@
+diff -ur a/lang/c/CMakeLists.txt b/lang/c/CMakeLists.txt
+--- a/lang/c/CMakeLists.txt 2017-04-17 19:56:17.000000000 -0400
++++ b/lang/c/CMakeLists.txt 2017-11-12 20:03:13.776973800 -0500
+@@ -50,7 +50,7 @@
+ else(UNIX)
+ # Hard code for win32 -- need to figure out how to port version.sh for
+ # Windows.
+- set(LIBAVRO_VERSION "22:0:0")
++ set(LIBAVRO_VERSION "23:0:0")
+ endif(UNIX)
+
+
+@@ -151,25 +151,24 @@
+ message("Disabled snappy codec. libsnappy not found or zlib not found.")
+ endif (SNAPPY_FOUND AND ZLIB_FOUND)
+
+-find_package(PkgConfig)
+-pkg_check_modules(LZMA liblzma)
+-if (LZMA_FOUND)
++find_package(LIBLZMA)
++if (LIBLZMA_FOUND)
+ set(LZMA_PKG liblzma)
+ add_definitions(-DLZMA_CODEC)
+- include_directories(${LZMA_INCLUDE_DIRS})
+- link_directories(${LZMA_LIBRARY_DIRS})
++ include_directories(${LIBLZMA_INCLUDE_DIRS})
++ link_directories(${LIBLZMA_LIBRARY_DIRS})
+ message("Enabled lzma codec")
+-else (LZMA_FOUND)
++else (LIBLZMA_FOUND)
+ set(LZMA_PKG "")
+ set(LZMA_LIBRARIES "")
+ message("Disabled lzma codec. liblzma not found.")
+-endif (LZMA_FOUND)
++endif (LIBLZMA_FOUND)
+
+-set(CODEC_LIBRARIES ${ZLIB_LIBRARIES} ${LZMA_LIBRARIES} ${SNAPPY_LIBRARIES})
++set(CODEC_LIBRARIES ${ZLIB_LIBRARIES} ${LIBLZMA_LIBRARIES} ${SNAPPY_LIBRARIES})
+ set(CODEC_PKG "@ZLIB_PKG@ @LZMA_PKG@ @SNAPPY_PKG@")
+
+ # Jansson JSON library
+-pkg_check_modules(JANSSON jansson>=2.3)
++find_package(JANSSON REQUIRED)
+ if (JANSSON_FOUND)
+ set(JANSSON_PKG libjansson)
+ include_directories(${JANSSON_INCLUDE_DIR})
+diff -ur a/lang/c/examples/quickstop.c b/lang/c/examples/quickstop.c
+--- a/lang/c/examples/quickstop.c 2017-04-17 19:56:17.000000000 -0400
++++ b/lang/c/examples/quickstop.c 2017-11-10 12:40:59.151301400 -0500
+@@ -16,6 +16,7 @@
+ */
+
+ #include <avro.h>
++#include <avro/platform.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+
+@@ -102,7 +103,7 @@
+
+ if (avro_record_get(person, "ID", &id_datum) == 0) {
+ avro_int64_get(id_datum, &i64);
+- fprintf(stdout, "%"PRId64" | ", i64);
++ fprintf(stdout, "%" PRId64 " | ", i64);
+ }
+ if (avro_record_get(person, "First", &first_datum) == 0) {
+ avro_string_get(first_datum, &p);
+diff -ur a/lang/c/src/avro/msinttypes.h b/lang/c/src/avro/msinttypes.h
+--- a/lang/c/src/avro/msinttypes.h 2017-04-17 19:56:17.000000000 -0400
++++ b/lang/c/src/avro/msinttypes.h 2017-11-10 12:37:30.372271300 -0500
+@@ -54,6 +54,9 @@
+
+ // 7.8 Format conversion of integer types
+
++#if (_MSC_VER >= 1900)
++# include <inttypes.h>
++#else
+ typedef struct {
+ intmax_t quot;
+ intmax_t rem;
+@@ -311,5 +314,6 @@
+ #define wcstoimax _wcstoi64
+ #define wcstoumax _wcstoui64
+
++#endif
+
+ #endif // _MSC_INTTYPES_H_ ]
+diff -ur a/lang/c/src/avro/msstdint.h b/lang/c/src/avro/msstdint.h
+--- a/lang/c/src/avro/msstdint.h 2017-04-17 19:56:17.000000000 -0400
++++ b/lang/c/src/avro/msstdint.h 2017-11-10 10:44:14.011482500 -0500
+@@ -42,6 +42,10 @@
+
+ #include <limits.h>
+
++#if (_MSC_VER >= 1900)
++# include <stdint.h>
++#else
++
+ // For Visual Studio 6 in C++ mode and for many Visual Studio versions when
+ // compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
+ // or compiler give many errors like this:
+@@ -243,5 +247,6 @@
+
+ #endif // __STDC_CONSTANT_MACROS ]
+
++#endif // _MSC_VER < 1900
+
+ #endif // _MSC_STDINT_H_ ]
+diff -ur a/lang/c/src/avro_private.h b/lang/c/src/avro_private.h
+--- a/lang/c/src/avro_private.h 2017-04-17 19:56:17.000000000 -0400
++++ b/lang/c/src/avro_private.h 2017-11-10 10:32:33.414879700 -0500
+@@ -34,7 +34,7 @@
+ #endif
+
+ #ifdef _WIN32
+-#define snprintf _snprintf
++ //#define snprintf _snprintf
+ #endif
+
+ /* Note that AVRO_PLATFORM_IS_BIG_ENDIAN is *always* defined. It is
+diff -ur a/lang/c/src/avroappend.c b/lang/c/src/avroappend.c
+--- a/lang/c/src/avroappend.c 2017-04-17 19:56:17.000000000 -0400
++++ b/lang/c/src/avroappend.c 2017-11-10 12:15:14.878275800 -0500
+@@ -20,7 +20,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #ifdef _WIN32
+-#include <unistd.h>
++#include <io.h>
+ #endif
+
+ #include "avro.h"
+diff -ur a/lang/c/src/codec.c b/lang/c/src/codec.c
+--- a/lang/c/src/codec.c 2017-04-17 19:56:17.000000000 -0400
++++ b/lang/c/src/codec.c 2017-11-10 11:09:08.033816100 -0500
+@@ -266,7 +266,7 @@
+ s->next_in = (Bytef*)data;
+ s->avail_in = (uInt)len;
+
+- s->next_out = c->block_data;
++ s->next_out = (Bytef*)c->block_data;
+ s->avail_out = (uInt)c->block_size;
+
+ s->total_out = 0;
+@@ -310,10 +310,10 @@
+
+ c->used_size = 0;
+
+- s->next_in = data;
++ s->next_in = (Bytef*)data;
+ s->avail_in = len;
+
+- s->next_out = c->block_data;
++ s->next_out = (Bytef*)c->block_data;
+ s->avail_out = c->block_size;
+
+ s->total_out = 0;
+@@ -334,7 +334,7 @@
+ if (err == Z_BUF_ERROR)
+ {
+ c->block_data = avro_realloc(c->block_data, c->block_size, c->block_size * 2);
+- s->next_out = c->block_data + s->total_out;
++ s->next_out = (Bytef*)c->block_data + s->total_out;
+ s->avail_out += c->block_size;
+ c->block_size = c->block_size * 2;
+ }
+@@ -437,7 +437,7 @@
+ return 1;
+ }
+
+- ret = lzma_raw_buffer_encode(filters, NULL, data, len, codec->block_data, &written, codec->block_size);
++ ret = lzma_raw_buffer_encode(filters, NULL, (const uint8_t *)data, len, (uint8_t *)codec->block_data, &written, codec->block_size);
+
+ codec->used_size = written;
+
+@@ -468,8 +468,8 @@
+
+ do
+ {
+- ret = lzma_raw_buffer_decode(filters, NULL, data,
+- &read_pos, len, codec->block_data, &write_pos,
++ ret = lzma_raw_buffer_decode(filters, NULL, (const uint8_t *)data,
++ &read_pos, len, (uint8_t *)codec->block_data, &write_pos,
+ codec->block_size);
+
+ codec->used_size = write_pos;
+diff -ur a/lang/c/src/schema.c b/lang/c/src/schema.c
+--- a/lang/c/src/schema.c 2017-04-17 19:56:17.000000000 -0400
++++ b/lang/c/src/schema.c 2017-11-10 11:45:45.268458000 -0500
+@@ -74,7 +74,7 @@
+ * namespace (as a newly allocated buffer using Avro's allocator). */
+ static char *split_namespace_name(const char *fullname, const char **name_out)
+ {
+- char *last_dot = strrchr(fullname, '.');
++ const char *last_dot = strrchr(fullname, '.');
+ if (last_dot == NULL) {
+ *name_out = fullname;
+ return NULL;
+@@ -742,12 +742,12 @@
+ }
+
+ static const char *
+-qualify_name(const char *name, const char *namespace)
++qualify_name(const char *name, const char *namespaceX)
+ {
+ char *full_name;
+- if (namespace != NULL && strchr(name, '.') == NULL) {
+- full_name = avro_str_alloc(strlen(name) + strlen(namespace) + 2);
+- sprintf(full_name, "%s.%s", namespace, name);
++ if (namespaceX != NULL && strchr(name, '.') == NULL) {
++ full_name = avro_str_alloc(strlen(name) + strlen(namespaceX) + 2);
++ sprintf(full_name, "%s.%s", namespaceX, name);
+ } else {
+ full_name = avro_strdup(name);
+ }
+@@ -758,20 +758,20 @@
+ save_named_schemas(const avro_schema_t schema, st_table *st)
+ {
+ const char *name = avro_schema_name(schema);
+- const char *namespace = avro_schema_namespace(schema);
+- const char *full_name = qualify_name(name, namespace);
++ const char *namespaceX = avro_schema_namespace(schema);
++ const char *full_name = qualify_name(name, namespaceX);
+ int rval = st_insert(st, (st_data_t) full_name, (st_data_t) schema);
+ return rval;
+ }
+
+ static avro_schema_t
+-find_named_schemas(const char *name, const char *namespace, st_table *st)
++find_named_schemas(const char *name, const char *namespaceX, st_table *st)
+ {
+ union {
+ avro_schema_t schema;
+ st_data_t data;
+ } val;
+- const char *full_name = qualify_name(name, namespace);
++ const char *full_name = qualify_name(name, namespaceX);
+ int rval = st_lookup(st, (st_data_t) full_name, &(val.data));
+ avro_str_free((char *)full_name);
+ if (rval) {
+@@ -784,7 +784,7 @@
+ static int
+ avro_type_from_json_t(json_t *json, avro_type_t *type,
+ st_table *named_schemas, avro_schema_t *named_type,
+- const char *namespace)
++ const char *namespaceX)
+ {
+ json_t *json_type;
+ const char *type_str;
+@@ -835,7 +835,7 @@
+ *type = AVRO_MAP;
+ } else if (strcmp(type_str, "fixed") == 0) {
+ *type = AVRO_FIXED;
+- } else if ((*named_type = find_named_schemas(type_str, namespace, named_schemas))) {
++ } else if ((*named_type = find_named_schemas(type_str, namespaceX, named_schemas))) {
+ *type = AVRO_LINK;
+ } else {
+ avro_set_error("Unknown Avro \"type\": %s", type_str);
+@@ -930,12 +930,12 @@
+ }
+
+ if (strchr(fullname, '.')) {
+- char *namespace = split_namespace_name(fullname, &name);
+- *schema = avro_schema_record(name, namespace);
+- avro_str_free(namespace);
++ char *namespaceX = split_namespace_name(fullname, &name);
++ *schema = avro_schema_record(name, namespaceX);
++ avro_str_free(namespaceX);
+ } else if (json_is_string(json_namespace)) {
+- const char *namespace = json_string_value(json_namespace);
+- *schema = avro_schema_record(fullname, namespace);
++ const char *namespaceX = json_string_value(json_namespace);
++ *schema = avro_schema_record(fullname, namespaceX);
+ } else {
+ *schema = avro_schema_record(fullname, parent_namespace);
+ }
+@@ -1026,13 +1026,13 @@
+ }
+
+ if (strchr(fullname, '.')) {
+- char *namespace;
+- namespace = split_namespace_name(fullname, &name);
+- *schema = avro_schema_enum_ns(name, namespace);
+- avro_str_free(namespace);
++ char *namespaceX;
++ namespaceX = split_namespace_name(fullname, &name);
++ *schema = avro_schema_enum_ns(name, namespaceX);
++ avro_str_free(namespaceX);
+ } else if (json_is_string(json_namespace)) {
+- const char *namespace = json_string_value(json_namespace);
+- *schema = avro_schema_enum_ns(fullname, namespace);
++ const char *namespaceX = json_string_value(json_namespace);
++ *schema = avro_schema_enum_ns(fullname, namespaceX);
+ } else {
+ *schema = avro_schema_enum_ns(fullname, parent_namespace);
+ }
+@@ -1160,13 +1160,13 @@
+ fullname = json_string_value(json_name);
+
+ if (strchr(fullname, '.')) {
+- char *namespace;
+- namespace = split_namespace_name(fullname, &name);
+- *schema = avro_schema_fixed_ns(name, namespace, (int64_t) size);
+- avro_str_free(namespace);
++ char *namespaceX;
++ namespaceX = split_namespace_name(fullname, &name);
++ *schema = avro_schema_fixed_ns(name, namespaceX, (int64_t) size);
++ avro_str_free(namespaceX);
+ } else if (json_is_string(json_namespace)) {
+- const char *namespace = json_string_value(json_namespace);
+- *schema = avro_schema_fixed_ns(fullname, namespace, (int64_t) size);
++ const char *namespaceX = json_string_value(json_namespace);
++ *schema = avro_schema_fixed_ns(fullname, namespaceX, (int64_t) size);
+ } else {
+ *schema = avro_schema_fixed_ns(fullname, parent_namespace, (int64_t) size);
+ }
+@@ -1749,9 +1749,9 @@
+ {
+ int rval;
+ check(rval, avro_write_str(out, "\""));
+- const char *namespace = avro_schema_namespace(link->to);
+- if (namespace && nullstrcmp(namespace, parent_namespace)) {
+- check(rval, avro_write_str(out, namespace));
++ const char *namespaceX = avro_schema_namespace(link->to);
++ if (namespaceX && nullstrcmp(namespaceX, parent_namespace)) {
++ check(rval, avro_write_str(out, namespaceX));
+ check(rval, avro_write_str(out, "."));
+ }
+ check(rval, avro_write_str(out, avro_schema_name(link->to)));
+diff -ur a/lang/c/tests/test_avro_data.c b/lang/c/tests/test_avro_data.c
+--- a/lang/c/tests/test_avro_data.c 2017-04-17 19:56:17.000000000 -0400
++++ b/lang/c/tests/test_avro_data.c 2017-11-10 12:41:29.924190100 -0500
+@@ -112,7 +112,7 @@
+ if (size != avro_writer_tell(writer)) {
+ fprintf(stderr,
+ "Unable to calculate size %s validate=%d "
+- "(%"PRId64" != %"PRId64")\n %s\n",
++ "(%" PRId64 " != %" PRId64 ")\n %s\n",
+ type, validate, size, avro_writer_tell(writer),
+ avro_strerror());
+ exit(EXIT_FAILURE);
+@@ -142,7 +142,7 @@
+ {
+ char *json = NULL;
+ avro_datum_to_json(datum, 1, &json);
+- if (strcasecmp(json, expected) != 0) {
++ if (stricmp(json, expected) != 0) {
+ fprintf(stderr, "Unexpected JSON encoding: %s\n", json);
+ exit(EXIT_FAILURE);
+ }
diff --git a/ports/avro-c/portfile.cmake b/ports/avro-c/portfile.cmake
new file mode 100644
index 000000000..087d3b3af
--- /dev/null
+++ b/ports/avro-c/portfile.cmake
@@ -0,0 +1,33 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO apache/avro
+ REF release-1.8.2
+ SHA512 a48cc353aadd45ad2c8593bf89ec3f1ddb0fcd364b79dd002a60a54d49cab714b46eee8bd6dc47b13588b9eead49c754dfe05f6aff735752fca8d2cd35ae8649
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/avro.patch
+ ${CMAKE_CURRENT_LIST_DIR}/avro-pr-217.patch)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/lang/c
+ PREFER_NINJA
+ OPTIONS
+ -DCMAKE_DISABLE_FIND_PACKAGE_Snappy=ON
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(COPY ${SOURCE_PATH}/lang/c/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/avro-c)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/avro-c/LICENSE ${CURRENT_PACKAGES_DIR}/share/avro-c/copyright)
diff --git a/ports/aws-sdk-cpp/CONTROL b/ports/aws-sdk-cpp/CONTROL
index 18de04d46..d91cf33c7 100644
--- a/ports/aws-sdk-cpp/CONTROL
+++ b/ports/aws-sdk-cpp/CONTROL
@@ -1,3 +1,423 @@
Source: aws-sdk-cpp
-Version: 1.0.61
+Version: 1.4.52
Description: AWS SDK for C++
+Build-Depends: openssl (!uwp&!windows), curl (!uwp&!windows)
+Default-Features: dynamodb, ec2, kms, rds, s3, sns, sqs
+# Automatically generated by generateFeatures.ps1
+
+Feature: access-management
+Description: C++ SDK for the AWS access-management service
+
+Feature: acm
+Description: C++ SDK for the AWS acm service
+
+Feature: alexaforbusiness
+Description: C++ SDK for the AWS alexaforbusiness service
+
+Feature: apigateway
+Description: C++ SDK for the AWS apigateway service
+
+Feature: application-autoscaling
+Description: C++ SDK for the AWS application-autoscaling service
+
+Feature: appstream
+Description: C++ SDK for the AWS appstream service
+
+Feature: appsync
+Description: C++ SDK for the AWS appsync service
+
+Feature: athena
+Description: C++ SDK for the AWS athena service
+
+Feature: autoscaling
+Description: C++ SDK for the AWS autoscaling service
+
+Feature: autoscaling-plans
+Description: C++ SDK for the AWS autoscaling-plans service
+
+Feature: AWSMigrationHub
+Description: C++ SDK for the AWS AWSMigrationHub service
+
+Feature: batch
+Description: C++ SDK for the AWS batch service
+
+Feature: budgets
+Description: C++ SDK for the AWS budgets service
+
+Feature: ce
+Description: C++ SDK for the AWS ce service
+
+Feature: cloud9
+Description: C++ SDK for the AWS cloud9 service
+
+Feature: clouddirectory
+Description: C++ SDK for the AWS clouddirectory service
+
+Feature: cloudformation
+Description: C++ SDK for the AWS cloudformation service
+
+Feature: cloudfront
+Description: C++ SDK for the AWS cloudfront service
+
+Feature: cloudhsm
+Description: C++ SDK for the AWS cloudhsm service
+
+Feature: cloudhsmv2
+Description: C++ SDK for the AWS cloudhsmv2 service
+
+Feature: cloudsearch
+Description: C++ SDK for the AWS cloudsearch service
+
+Feature: cloudsearchdomain
+Description: C++ SDK for the AWS cloudsearchdomain service
+
+Feature: cloudtrail
+Description: C++ SDK for the AWS cloudtrail service
+
+Feature: codebuild
+Description: C++ SDK for the AWS codebuild service
+
+Feature: codecommit
+Description: C++ SDK for the AWS codecommit service
+
+Feature: codedeploy
+Description: C++ SDK for the AWS codedeploy service
+
+Feature: codepipeline
+Description: C++ SDK for the AWS codepipeline service
+
+Feature: codestar
+Description: C++ SDK for the AWS codestar service
+
+Feature: cognito-identity
+Description: C++ SDK for the AWS cognito-identity service
+
+Feature: cognito-idp
+Description: C++ SDK for the AWS cognito-idp service
+
+Feature: cognito-sync
+Description: C++ SDK for the AWS cognito-sync service
+
+Feature: comprehend
+Description: C++ SDK for the AWS comprehend service
+
+Feature: config
+Description: C++ SDK for the AWS config service
+
+Feature: connect
+Description: C++ SDK for the AWS connect service
+
+Feature: cur
+Description: C++ SDK for the AWS cur service
+
+Feature: datapipeline
+Description: C++ SDK for the AWS datapipeline service
+
+Feature: dax
+Description: C++ SDK for the AWS dax service
+
+Feature: devicefarm
+Description: C++ SDK for the AWS devicefarm service
+
+Feature: directconnect
+Description: C++ SDK for the AWS directconnect service
+
+Feature: discovery
+Description: C++ SDK for the AWS discovery service
+
+Feature: dms
+Description: C++ SDK for the AWS dms service
+
+Feature: ds
+Description: C++ SDK for the AWS ds service
+
+Feature: dynamodb
+Description: C++ SDK for the AWS dynamodb service
+
+Feature: dynamodbstreams
+Description: C++ SDK for the AWS dynamodbstreams service
+
+Feature: ec2
+Description: C++ SDK for the AWS ec2 service
+
+Feature: ecr
+Description: C++ SDK for the AWS ecr service
+
+Feature: ecs
+Description: C++ SDK for the AWS ecs service
+
+Feature: elasticache
+Description: C++ SDK for the AWS elasticache service
+
+Feature: elasticbeanstalk
+Description: C++ SDK for the AWS elasticbeanstalk service
+
+Feature: elasticfilesystem
+Description: C++ SDK for the AWS elasticfilesystem service
+
+Feature: elasticloadbalancing
+Description: C++ SDK for the AWS elasticloadbalancing service
+
+Feature: elasticloadbalancingv2
+Description: C++ SDK for the AWS elasticloadbalancingv2 service
+
+Feature: elasticmapreduce
+Description: C++ SDK for the AWS elasticmapreduce service
+
+Feature: elastictranscoder
+Description: C++ SDK for the AWS elastictranscoder service
+
+Feature: email
+Description: C++ SDK for the AWS email service
+
+Feature: es
+Description: C++ SDK for the AWS es service
+
+Feature: events
+Description: C++ SDK for the AWS events service
+
+Feature: firehose
+Description: C++ SDK for the AWS firehose service
+
+Feature: gamelift
+Description: C++ SDK for the AWS gamelift service
+
+Feature: glacier
+Description: C++ SDK for the AWS glacier service
+
+Feature: glue
+Description: C++ SDK for the AWS glue service
+
+Feature: greengrass
+Description: C++ SDK for the AWS greengrass service
+
+Feature: guardduty
+Description: C++ SDK for the AWS guardduty service
+
+Feature: health
+Description: C++ SDK for the AWS health service
+
+Feature: iam
+Description: C++ SDK for the AWS iam service
+
+Feature: identity-management
+Description: C++ SDK for the AWS identity-management service
+
+Feature: importexport
+Description: C++ SDK for the AWS importexport service
+
+Feature: inspector
+Description: C++ SDK for the AWS inspector service
+
+Feature: iot
+Description: C++ SDK for the AWS iot service
+
+Feature: iot-data
+Description: C++ SDK for the AWS iot-data service
+
+Feature: iot-jobs-data
+Description: C++ SDK for the AWS iot-jobs-data service
+
+Feature: kinesis
+Description: C++ SDK for the AWS kinesis service
+
+Feature: kinesis-video-archived-media
+Description: C++ SDK for the AWS kinesis-video-archived-media service
+
+Feature: kinesis-video-media
+Description: C++ SDK for the AWS kinesis-video-media service
+
+Feature: kinesisanalytics
+Description: C++ SDK for the AWS kinesisanalytics service
+
+Feature: kinesisvideo
+Description: C++ SDK for the AWS kinesisvideo service
+
+Feature: kms
+Description: C++ SDK for the AWS kms service
+
+Feature: lambda
+Description: C++ SDK for the AWS lambda service
+
+Feature: lex
+Description: C++ SDK for the AWS lex service
+
+Feature: lex-models
+Description: C++ SDK for the AWS lex-models service
+
+Feature: lightsail
+Description: C++ SDK for the AWS lightsail service
+
+Feature: logs
+Description: C++ SDK for the AWS logs service
+
+Feature: machinelearning
+Description: C++ SDK for the AWS machinelearning service
+
+Feature: marketplace-entitlement
+Description: C++ SDK for the AWS marketplace-entitlement service
+
+Feature: marketplacecommerceanalytics
+Description: C++ SDK for the AWS marketplacecommerceanalytics service
+
+Feature: mediaconvert
+Description: C++ SDK for the AWS mediaconvert service
+
+Feature: medialive
+Description: C++ SDK for the AWS medialive service
+
+Feature: mediapackage
+Description: C++ SDK for the AWS mediapackage service
+
+Feature: mediastore
+Description: C++ SDK for the AWS mediastore service
+
+Feature: mediastore-data
+Description: C++ SDK for the AWS mediastore-data service
+
+Feature: meteringmarketplace
+Description: C++ SDK for the AWS meteringmarketplace service
+
+Feature: mobile
+Description: C++ SDK for the AWS mobile service
+
+Feature: mobileanalytics
+Description: C++ SDK for the AWS mobileanalytics service
+
+Feature: monitoring
+Description: C++ SDK for the AWS monitoring service
+
+Feature: mq
+Description: C++ SDK for the AWS mq service
+
+Feature: mturk-requester
+Description: C++ SDK for the AWS mturk-requester service
+
+Feature: opsworks
+Description: C++ SDK for the AWS opsworks service
+
+Feature: opsworkscm
+Description: C++ SDK for the AWS opsworkscm service
+
+Feature: organizations
+Description: C++ SDK for the AWS organizations service
+
+Feature: pinpoint
+Description: C++ SDK for the AWS pinpoint service
+
+Feature: polly
+Description: C++ SDK for the AWS polly service
+
+Feature: pricing
+Description: C++ SDK for the AWS pricing service
+
+Feature: queues
+Description: C++ SDK for the AWS queues service
+
+Feature: rds
+Description: C++ SDK for the AWS rds service
+
+Feature: redshift
+Description: C++ SDK for the AWS redshift service
+
+Feature: rekognition
+Description: C++ SDK for the AWS rekognition service
+
+Feature: resource-groups
+Description: C++ SDK for the AWS resource-groups service
+
+Feature: resourcegroupstaggingapi
+Description: C++ SDK for the AWS resourcegroupstaggingapi service
+
+Feature: route53
+Description: C++ SDK for the AWS route53 service
+
+Feature: route53domains
+Description: C++ SDK for the AWS route53domains service
+
+Feature: s3
+Description: C++ SDK for the AWS s3 service
+
+Feature: s3-encryption
+Description: C++ SDK for the AWS s3-encryption service
+
+Feature: sagemaker
+Description: C++ SDK for the AWS sagemaker service
+
+Feature: sagemaker-runtime
+Description: C++ SDK for the AWS sagemaker-runtime service
+
+Feature: sdb
+Description: C++ SDK for the AWS sdb service
+
+Feature: serverlessrepo
+Description: C++ SDK for the AWS serverlessrepo service
+
+Feature: servicecatalog
+Description: C++ SDK for the AWS servicecatalog service
+
+Feature: servicediscovery
+Description: C++ SDK for the AWS servicediscovery service
+
+Feature: shield
+Description: C++ SDK for the AWS shield service
+
+Feature: sms
+Description: C++ SDK for the AWS sms service
+
+Feature: snowball
+Description: C++ SDK for the AWS snowball service
+
+Feature: sns
+Description: C++ SDK for the AWS sns service
+
+Feature: sqs
+Description: C++ SDK for the AWS sqs service
+
+Feature: ssm
+Description: C++ SDK for the AWS ssm service
+
+Feature: states
+Description: C++ SDK for the AWS states service
+
+Feature: storagegateway
+Description: C++ SDK for the AWS storagegateway service
+
+Feature: sts
+Description: C++ SDK for the AWS sts service
+
+Feature: support
+Description: C++ SDK for the AWS support service
+
+Feature: swf
+Description: C++ SDK for the AWS swf service
+
+Feature: text-to-speech
+Description: C++ SDK for the AWS text-to-speech service
+
+Feature: transcribe
+Description: C++ SDK for the AWS transcribe service
+
+Feature: transfer
+Description: C++ SDK for the AWS transfer service
+
+Feature: translate
+Description: C++ SDK for the AWS translate service
+
+Feature: waf
+Description: C++ SDK for the AWS waf service
+
+Feature: waf-regional
+Description: C++ SDK for the AWS waf-regional service
+
+Feature: workdocs
+Description: C++ SDK for the AWS workdocs service
+
+Feature: workmail
+Description: C++ SDK for the AWS workmail service
+
+Feature: workspaces
+Description: C++ SDK for the AWS workspaces service
+
+Feature: xray
+Description: C++ SDK for the AWS xray service
diff --git a/ports/aws-sdk-cpp/CONTROL.in b/ports/aws-sdk-cpp/CONTROL.in
new file mode 100644
index 000000000..184374de6
--- /dev/null
+++ b/ports/aws-sdk-cpp/CONTROL.in
@@ -0,0 +1,5 @@
+Source: aws-sdk-cpp
+Version: 1.4.30-1
+Description: AWS SDK for C++
+Build-Depends: openssl (!uwp&!windows), curl (!uwp&!windows)
+Default-Features: dynamodb, ec2, kms, rds, s3, sns, sqs
diff --git a/ports/aws-sdk-cpp/compute_build_only.cmake b/ports/aws-sdk-cpp/compute_build_only.cmake
new file mode 100644
index 000000000..f4a139153
--- /dev/null
+++ b/ports/aws-sdk-cpp/compute_build_only.cmake
@@ -0,0 +1,418 @@
+# Automatically generated by generateFeatures.ps1
+if("access-management" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY access-management)
+endif()
+if("acm" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY acm)
+endif()
+if("alexaforbusiness" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY alexaforbusiness)
+endif()
+if("apigateway" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY apigateway)
+endif()
+if("application-autoscaling" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY application-autoscaling)
+endif()
+if("appstream" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY appstream)
+endif()
+if("appsync" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY appsync)
+endif()
+if("athena" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY athena)
+endif()
+if("autoscaling" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY autoscaling)
+endif()
+if("autoscaling-plans" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY autoscaling-plans)
+endif()
+if("AWSMigrationHub" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY AWSMigrationHub)
+endif()
+if("batch" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY batch)
+endif()
+if("budgets" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY budgets)
+endif()
+if("ce" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY ce)
+endif()
+if("cloud9" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY cloud9)
+endif()
+if("clouddirectory" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY clouddirectory)
+endif()
+if("cloudformation" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY cloudformation)
+endif()
+if("cloudfront" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY cloudfront)
+endif()
+if("cloudhsm" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY cloudhsm)
+endif()
+if("cloudhsmv2" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY cloudhsmv2)
+endif()
+if("cloudsearch" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY cloudsearch)
+endif()
+if("cloudsearchdomain" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY cloudsearchdomain)
+endif()
+if("cloudtrail" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY cloudtrail)
+endif()
+if("codebuild" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY codebuild)
+endif()
+if("codecommit" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY codecommit)
+endif()
+if("codedeploy" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY codedeploy)
+endif()
+if("codepipeline" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY codepipeline)
+endif()
+if("codestar" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY codestar)
+endif()
+if("cognito-identity" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY cognito-identity)
+endif()
+if("cognito-idp" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY cognito-idp)
+endif()
+if("cognito-sync" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY cognito-sync)
+endif()
+if("comprehend" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY comprehend)
+endif()
+if("config" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY config)
+endif()
+if("connect" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY connect)
+endif()
+if("cur" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY cur)
+endif()
+if("datapipeline" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY datapipeline)
+endif()
+if("dax" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY dax)
+endif()
+if("devicefarm" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY devicefarm)
+endif()
+if("directconnect" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY directconnect)
+endif()
+if("discovery" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY discovery)
+endif()
+if("dms" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY dms)
+endif()
+if("ds" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY ds)
+endif()
+if("dynamodb" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY dynamodb)
+endif()
+if("dynamodbstreams" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY dynamodbstreams)
+endif()
+if("ec2" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY ec2)
+endif()
+if("ecr" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY ecr)
+endif()
+if("ecs" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY ecs)
+endif()
+if("elasticache" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY elasticache)
+endif()
+if("elasticbeanstalk" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY elasticbeanstalk)
+endif()
+if("elasticfilesystem" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY elasticfilesystem)
+endif()
+if("elasticloadbalancing" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY elasticloadbalancing)
+endif()
+if("elasticloadbalancingv2" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY elasticloadbalancingv2)
+endif()
+if("elasticmapreduce" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY elasticmapreduce)
+endif()
+if("elastictranscoder" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY elastictranscoder)
+endif()
+if("email" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY email)
+endif()
+if("es" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY es)
+endif()
+if("events" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY events)
+endif()
+if("firehose" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY firehose)
+endif()
+if("gamelift" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY gamelift)
+endif()
+if("glacier" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY glacier)
+endif()
+if("glue" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY glue)
+endif()
+if("greengrass" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY greengrass)
+endif()
+if("guardduty" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY guardduty)
+endif()
+if("health" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY health)
+endif()
+if("iam" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY iam)
+endif()
+if("identity-management" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY identity-management)
+endif()
+if("importexport" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY importexport)
+endif()
+if("inspector" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY inspector)
+endif()
+if("iot" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY iot)
+endif()
+if("iot-data" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY iot-data)
+endif()
+if("iot-jobs-data" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY iot-jobs-data)
+endif()
+if("kinesis" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY kinesis)
+endif()
+if("kinesis-video-archived-media" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY kinesis-video-archived-media)
+endif()
+if("kinesis-video-media" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY kinesis-video-media)
+endif()
+if("kinesisanalytics" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY kinesisanalytics)
+endif()
+if("kinesisvideo" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY kinesisvideo)
+endif()
+if("kms" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY kms)
+endif()
+if("lambda" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY lambda)
+endif()
+if("lex" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY lex)
+endif()
+if("lex-models" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY lex-models)
+endif()
+if("lightsail" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY lightsail)
+endif()
+if("logs" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY logs)
+endif()
+if("machinelearning" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY machinelearning)
+endif()
+if("marketplace-entitlement" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY marketplace-entitlement)
+endif()
+if("marketplacecommerceanalytics" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY marketplacecommerceanalytics)
+endif()
+if("mediaconvert" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY mediaconvert)
+endif()
+if("medialive" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY medialive)
+endif()
+if("mediapackage" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY mediapackage)
+endif()
+if("mediastore" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY mediastore)
+endif()
+if("mediastore-data" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY mediastore-data)
+endif()
+if("meteringmarketplace" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY meteringmarketplace)
+endif()
+if("mobile" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY mobile)
+endif()
+if("mobileanalytics" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY mobileanalytics)
+endif()
+if("monitoring" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY monitoring)
+endif()
+if("mq" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY mq)
+endif()
+if("mturk-requester" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY mturk-requester)
+endif()
+if("opsworks" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY opsworks)
+endif()
+if("opsworkscm" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY opsworkscm)
+endif()
+if("organizations" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY organizations)
+endif()
+if("pinpoint" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY pinpoint)
+endif()
+if("polly" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY polly)
+endif()
+if("pricing" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY pricing)
+endif()
+if("queues" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY queues)
+endif()
+if("rds" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY rds)
+endif()
+if("redshift" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY redshift)
+endif()
+if("rekognition" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY rekognition)
+endif()
+if("resource-groups" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY resource-groups)
+endif()
+if("resourcegroupstaggingapi" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY resourcegroupstaggingapi)
+endif()
+if("route53" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY route53)
+endif()
+if("route53domains" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY route53domains)
+endif()
+if("s3" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY s3)
+endif()
+if("s3-encryption" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY s3-encryption)
+endif()
+if("sagemaker" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY sagemaker)
+endif()
+if("sagemaker-runtime" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY sagemaker-runtime)
+endif()
+if("sdb" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY sdb)
+endif()
+if("serverlessrepo" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY serverlessrepo)
+endif()
+if("servicecatalog" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY servicecatalog)
+endif()
+if("servicediscovery" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY servicediscovery)
+endif()
+if("shield" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY shield)
+endif()
+if("sms" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY sms)
+endif()
+if("snowball" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY snowball)
+endif()
+if("sns" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY sns)
+endif()
+if("sqs" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY sqs)
+endif()
+if("ssm" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY ssm)
+endif()
+if("states" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY states)
+endif()
+if("storagegateway" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY storagegateway)
+endif()
+if("sts" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY sts)
+endif()
+if("support" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY support)
+endif()
+if("swf" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY swf)
+endif()
+if("text-to-speech" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY text-to-speech)
+endif()
+if("transcribe" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY transcribe)
+endif()
+if("transfer" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY transfer)
+endif()
+if("translate" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY translate)
+endif()
+if("waf" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY waf)
+endif()
+if("waf-regional" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY waf-regional)
+endif()
+if("workdocs" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY workdocs)
+endif()
+if("workmail" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY workmail)
+endif()
+if("workspaces" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY workspaces)
+endif()
+if("xray" IN_LIST FEATURES)
+ list(APPEND BUILD_ONLY xray)
+endif()
diff --git a/ports/aws-sdk-cpp/disable_warning_as_error.patch b/ports/aws-sdk-cpp/disable_warning_as_error.patch
deleted file mode 100644
index ec5587eb8..000000000
--- a/ports/aws-sdk-cpp/disable_warning_as_error.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/cmake/compiler_settings.cmake b/cmake/compiler_settings.cmake
-index 36795a2..77334ee 100644
---- a/cmake/compiler_settings.cmake
-+++ b/cmake/compiler_settings.cmake
-@@ -57,7 +57,7 @@ endif()
- if(MSVC)
- # warnings as errors, max warning level (4)
- if(NOT CMAKE_CXX_FLAGS MATCHES "/WX")
-- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
-+ #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
- endif()
-
- # taken from http://stackoverflow.com/questions/2368811/how-to-set-warning-level-in-cmake
diff --git a/ports/aws-sdk-cpp/drop_git.patch b/ports/aws-sdk-cpp/drop_git.patch
deleted file mode 100644
index 491831bd7..000000000
--- a/ports/aws-sdk-cpp/drop_git.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 9d2a98a..ce58b68 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -22,7 +22,7 @@ if(CMAKE_MAJOR_VERSION LESS 3)
- endif()
-
- # git is required for Android builds and optional for all other platforms
--find_package(Git)
-+#find_package(Git)
-
- # Cmake invocation variables:
- # CUSTOM_MEMORY_MANAGEMENT - if set to 1, generates the sdk project files with custom memory management enabled, otherwise disables it
diff --git a/ports/aws-sdk-cpp/generateFeatures.ps1 b/ports/aws-sdk-cpp/generateFeatures.ps1
new file mode 100644
index 000000000..8c8b1a342
--- /dev/null
+++ b/ports/aws-sdk-cpp/generateFeatures.ps1
@@ -0,0 +1,51 @@
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory=$true)][string]$ExtractedSources,
+ [Parameter(Mandatory=$true)][string]$ControlFileIn,
+ [Parameter(Mandatory=$true)][string]$ControlFile,
+ [Parameter(Mandatory=$true)][string]$CMakeFragmentFile
+)
+
+$subfolders = Get-Item $ExtractedSources\aws-cpp-sdk-*
+
+$controltext = gc $ControlFileIn
+$controltext += @("# Automatically generated by generateFeatures.ps1")
+
+$cmakefragmenttext = @("# Automatically generated by generateFeatures.ps1")
+
+function GetDescription($dir, $modulename)
+{
+ if (Test-Path "$dir\CMakeLists.txt")
+ {
+ $descs = @(Select-String -Path "$dir\CMakeLists.txt" -Pattern "`"C\+\+ SDK for the AWS [^`"]*`"")
+ if ($descs.count -eq 1) {
+ $desc = $descs[0].Matches.Value -replace "`"",""
+ "Description: $desc"
+ }
+ else { "Description: C++ SDK for the AWS $modulename service" }
+ }
+ else { "Description: C++ SDK for the AWS $modulename service" }
+}
+
+$subfolders | % {
+ $modulename = $_.name -replace "^aws-cpp-sdk-",""
+ if ($modulename -match "-tests`$") { return }
+ if ($modulename -match "-sample`$") { return }
+ if ($modulename -eq "core") { return }
+
+ $controltext += @("")
+ $controltext += @("Feature: $modulename")
+ $controltext += @(GetDescription $_ $modulename)
+
+ $cmakefragmenttext += @(
+ "if(`"$modulename`" IN_LIST FEATURES)",
+ " list(APPEND BUILD_ONLY $modulename)",
+ "endif()"
+ )
+}
+
+Write-Verbose ($controltext -join "`n")
+[IO.File]::WriteAllText($ControlFile, ($controltext -join "`n")+"`n")
+
+Write-Verbose ($cmakefragmenttext -join "`n")
+[IO.File]::WriteAllText($CMakeFragmentFile, ($cmakefragmenttext -join "`n") +"`n")
diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake
index 93c7a7265..1d566339e 100644
--- a/ports/aws-sdk-cpp/portfile.cmake
+++ b/ports/aws-sdk-cpp/portfile.cmake
@@ -1,53 +1,83 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/aws-sdk-cpp-1.0.61)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/aws/aws-sdk-cpp/archive/1.0.61.tar.gz"
- FILENAME "aws-sdk-cpp-1.0.61.tar.gz"
- SHA512 aef0a85a32db24dc4fba0fc49c2533074580f3df628e787ff0808f03deea5dac42e19b1edc966706784e98cfed17a350c3eff4f222df7cc756065be56d1fc6a6
-)
-vcpkg_extract_source_archive(${ARCHIVE})
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/drop_git.patch
- ${CMAKE_CURRENT_LIST_DIR}/disable_warning_as_error.patch
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO aws/aws-sdk-cpp
+ REF 1.4.52
+ SHA512 ef10a2d9d491ae28179ec7622b34470153cf3a6fdf50ca8f942c098d74a12a9e555c314537c91e06285990fe942bee9e4ff21396752153d482e9db1776981d6b
+ HEAD_REF master
)
-if(VCPKG_CRT_LINKAGE STREQUAL static)
- set(FORCE_SHARED_CRT OFF)
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
+
+set(BUILD_ONLY core)
+
+include(${CMAKE_CURRENT_LIST_DIR}/compute_build_only.cmake)
+
+if(CMAKE_HOST_WIN32)
+ string(REPLACE ";" "\\\\\\;" BUILD_ONLY "${BUILD_ONLY}")
else()
- set(FORCE_SHARED_CRT ON)
+ string(REPLACE ";" "\\\\\\\\\\\;" BUILD_ONLY "${BUILD_ONLY}")
endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA
- OPTIONS
- -DENABLE_TESTING=OFF
- -DFORCE_SHARED_CRT=${FORCE_SHARED_CRT}
+ PREFER_NINJA
+ OPTIONS
+ -DENABLE_UNITY_BUILD=ON
+ -DENABLE_TESTING=OFF
+ -DFORCE_SHARED_CRT=${FORCE_SHARED_CRT}
+ -DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE
+ "-DBUILD_ONLY=${BUILD_ONLY}"
)
vcpkg_install_cmake()
-file(REMOVE_RECURSE
- ${CURRENT_PACKAGES_DIR}/debug/include
- ${CURRENT_PACKAGES_DIR}/lib/cmake
- ${CURRENT_PACKAGES_DIR}/lib/pkgconfig
- ${CURRENT_PACKAGES_DIR}/debug/lib/cmake
- ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig
- ${CURRENT_PACKAGES_DIR}/nuget
- ${CURRENT_PACKAGES_DIR}/debug/nuget)
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake TARGET_PATH share)
+
+vcpkg_copy_pdbs()
+
+file(GLOB_RECURSE AWS_TARGETS "${CURRENT_PACKAGES_DIR}/share/*/*-targets-*.cmake")
+foreach(AWS_TARGET IN LISTS AWS_TARGETS)
+ file(READ ${AWS_TARGET} _contents)
+ string(REGEX REPLACE
+ "bin\\/([A-Za-z0-9_.-]+\\.lib)"
+ "lib/\\1"
+ _contents "${_contents}")
+ file(WRITE ${AWS_TARGET} "${_contents}")
+endforeach()
+
+file(GLOB AWS_CONFIGS "${CURRENT_PACKAGES_DIR}/share/*/aws-cpp-sdk-*-config.cmake")
+list(FILTER AWS_CONFIGS EXCLUDE REGEX "aws-cpp-sdk-core-config\\.cmake\$")
+foreach(AWS_CONFIG IN LISTS AWS_CONFIGS)
+ file(READ "${AWS_CONFIG}" _contents)
+ file(WRITE "${AWS_CONFIG}" "include(CMakeFindDependencyMacro)\nfind_dependency(aws-cpp-sdk-core)\n${_contents}")
+endforeach()
+
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/include
+ ${CURRENT_PACKAGES_DIR}/debug/share
+ ${CURRENT_PACKAGES_DIR}/share/AWSSDK
+ ${CURRENT_PACKAGES_DIR}/lib/pkgconfig
+ ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig
+ ${CURRENT_PACKAGES_DIR}/nuget
+ ${CURRENT_PACKAGES_DIR}/debug/nuget
+)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- file(GLOB LIB_FILES ${CURRENT_PACKAGES_DIR}/bin/*.lib)
- file(GLOB DEBUG_LIB_FILES ${CURRENT_PACKAGES_DIR}/debug/bin/*.lib)
- file(COPY ${LIB_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
- file(COPY ${DEBUG_LIB_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
- file(REMOVE ${LIB_FILES} ${DEBUG_LIB_FILES})
-
- file(APPEND ${CURRENT_PACKAGES_DIR}/include/aws/core/SDKConfig.h "#define USE_IMPORT_EXPORT")
+ file(GLOB LIB_FILES ${CURRENT_PACKAGES_DIR}/bin/*.lib)
+ if(LIB_FILES)
+ file(COPY ${LIB_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+ file(REMOVE ${LIB_FILES})
+ endif()
+ file(GLOB DEBUG_LIB_FILES ${CURRENT_PACKAGES_DIR}/debug/bin/*.lib)
+ if(DEBUG_LIB_FILES)
+ file(COPY ${DEBUG_LIB_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+ file(REMOVE ${DEBUG_LIB_FILES})
+ endif()
+
+ file(APPEND ${CURRENT_PACKAGES_DIR}/include/aws/core/SDKConfig.h "#ifndef USE_IMPORT_EXPORT\n#define USE_IMPORT_EXPORT\n#endif")
endif()
# Handle copyright
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/aws-sdk-cpp RENAME copyright) \ No newline at end of file
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/aws-sdk-cpp RENAME copyright)
diff --git a/ports/azmq/CONTROL b/ports/azmq/CONTROL
new file mode 100644
index 000000000..350bee266
--- /dev/null
+++ b/ports/azmq/CONTROL
@@ -0,0 +1,6 @@
+Source: azmq
+Version: 1.0.2
+Build-Depends: boost-asio, boost-assert, boost-config, boost-container, boost-format, boost-intrusive, boost-iterator, boost-lexical-cast, boost-logic, boost-optional, boost-random, boost-range, boost-regex, boost-system, boost-thread, boost-utility, zeromq
+Description: Boost Asio style bindings for ZeroMQ
+ This library is built on top of ZeroMQ's standard C interface and is intended to work well with C++ applications which use the Boost libraries in general, and Asio in particular.
+ The main abstraction exposed by the library is azmq::socket which provides an Asio style socket interface to the underlying zeromq socket and interfaces with Asio's io_service(). The socket implementation participates in the io_service's reactor for asynchronous IO and may be freely mixed with other Asio socket types (raw TCP/UDP/Serial/etc.).
diff --git a/ports/azmq/portfile.cmake b/ports/azmq/portfile.cmake
new file mode 100644
index 000000000..867b688ee
--- /dev/null
+++ b/ports/azmq/portfile.cmake
@@ -0,0 +1,15 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO zeromq/azmq
+ REF v1.0.2
+ SHA512 6e60a670d070ddf84dbd406e88225ff12f84ce39e0e64e9aff4314e174506c286d72cfebb5e2e51eab221f6e163a17cce539d052cea3c18954ec495b096f087b
+ HEAD_REF master
+)
+
+file(COPY ${SOURCE_PATH}/azmq DESTINATION ${CURRENT_PACKAGES_DIR}/include/)
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE-BOOST_1_0
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/azmq RENAME copyright)
diff --git a/ports/azure-c-shared-utility/CONTROL b/ports/azure-c-shared-utility/CONTROL
new file mode 100644
index 000000000..08fecee67
--- /dev/null
+++ b/ports/azure-c-shared-utility/CONTROL
@@ -0,0 +1,3 @@
+Source: azure-c-shared-utility
+Version: 1.1.3
+Description: Azure C SDKs common code
diff --git a/ports/azure-c-shared-utility/portfile.cmake b/ports/azure-c-shared-utility/portfile.cmake
new file mode 100644
index 000000000..6b706aae3
--- /dev/null
+++ b/ports/azure-c-shared-utility/portfile.cmake
@@ -0,0 +1,40 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("azure-c-shared-utility only supports static linkage")
+ set(VCPKG_LIBRARY_LINKAGE "static")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Azure/azure-c-shared-utility
+ REF 1.1.3
+ SHA512 8c69f39ccca30d11a7e665a46e3ec33826af062657a87d32f68e80c6182b15d5e02839f9e541f5dc840219e3256ac090452f4873b6a1a62b3fe6682780314056
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -Dskip_samples=ON
+ -Duse_installed_dependencies=ON
+ -Duse_default_uuid=ON
+ -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/azure_c_shared_utility)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(COPY ${SOURCE_PATH}/configs/azure_iot_build_rules.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-c-shared-utility)
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-c-shared-utility RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/azure-iot-sdk-c/CONTROL b/ports/azure-iot-sdk-c/CONTROL
new file mode 100644
index 000000000..a706b195c
--- /dev/null
+++ b/ports/azure-iot-sdk-c/CONTROL
@@ -0,0 +1,4 @@
+Source: azure-iot-sdk-c
+Version: 1.2.3
+Build-Depends: azure-uamqp-c, azure-umqtt-c, azure-c-shared-utility, parson
+Description: A C99 SDK for connecting devices to Microsoft Azure IoT services
diff --git a/ports/azure-iot-sdk-c/improve-external-deps-2.patch b/ports/azure-iot-sdk-c/improve-external-deps-2.patch
new file mode 100644
index 000000000..04795fa1f
--- /dev/null
+++ b/ports/azure-iot-sdk-c/improve-external-deps-2.patch
@@ -0,0 +1,20 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index aa2dfad..f1656ea 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -129,15 +129,6 @@ endif()
+ #Use solution folders.
+ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+
+-# build the parson library for json parsing
+-add_library(parson
+- ./deps/parson/parson.c
+- ./deps/parson/parson.h
+-)
+-if(MSVC)
+- set_source_files_properties(../deps/parson/parson.c PROPERTIES COMPILE_FLAGS "/wd4244 /wd4232")
+-endif()
+-
+ if(IN_OPENWRT)
+ ADD_DEFINITIONS("$ENV{TARGET_LDFLAGS}" "$ENV{TARGET_CPPFLAGS}" "$ENV{TARGET_CFLAGS}")
+ INCLUDE_DIRECTORIES("$ENV{TOOLCHAIN_DIR}/usr/include" "$ENV{TARGET_LDFLAGS}" "$ENV{TARGET_CPPFLAGS}" "$ENV{TARGET_CFLAGS}")
diff --git a/ports/azure-iot-sdk-c/improve-external-deps.patch b/ports/azure-iot-sdk-c/improve-external-deps.patch
new file mode 100644
index 000000000..d96e0fe38
--- /dev/null
+++ b/ports/azure-iot-sdk-c/improve-external-deps.patch
@@ -0,0 +1,94 @@
+diff --git a/configs/azure_iot_sdksConfig.cmake b/configs/azure_iot_sdksConfig.cmake
+index b9c62e8..edf5847 100644
+--- a/configs/azure_iot_sdksConfig.cmake
++++ b/configs/azure_iot_sdksConfig.cmake
+@@ -1,5 +1,10 @@
+ #Copyright (c) Microsoft. All rights reserved.
+ #Licensed under the MIT license. See LICENSE file in the project root for full license information.
++include(CMakeFindDependencyMacro)
++find_dependency(unofficial-parson)
++find_dependency(uamqp)
++find_dependency(umqtt)
++find_dependency(azure_c_shared_utility)
+
+ include("${CMAKE_CURRENT_LIST_DIR}/azure_iot_sdksTargets.cmake")
+
+diff --git a/dependencies.cmake b/dependencies.cmake
+index 063733a..71bfc7d 100644
+--- a/dependencies.cmake
++++ b/dependencies.cmake
+@@ -18,6 +18,8 @@ if(${use_installed_dependencies})
+ endif()
+ endif()
+
++ find_package(unofficial-parson REQUIRED)
++ link_libraries(unofficial::parson::parson)
+ else()
+ add_subdirectory(c-utility)
+
+diff --git a/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt b/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt
+index 161872a..d53e111 100644
+--- a/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt
++++ b/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt
+@@ -31,12 +31,10 @@ set(${theseTestsName}_nuget_c_files
+
+ set(${theseTestsName}_c_files
+ ../../../certs/certs.c
+- ../../../deps/parson/parson.c
+ )
+
+ set(${theseTestsName}_h_files
+ ../../../certs/certs.h
+- ../../../deps/parson/parson.h
+ ../common_dt_e2e/iothubclient_common_dt_e2e.h
+ )
+
+diff --git a/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt b/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt
+index d472161..b0291e8 100644
+--- a/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt
++++ b/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt
+@@ -31,12 +31,10 @@ set(${theseTestsName}_nuget_c_files
+
+ set(${theseTestsName}_c_files
+ ../../../certs/certs.c
+- ../../../deps/parson/parson.c
+ )
+
+ set(${theseTestsName}_h_files
+ ../../../certs/certs.h
+- ../../../deps/parson/parson.h
+ ../common_dt_e2e/iothubclient_common_dt_e2e.h
+ )
+
+diff --git a/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt b/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt
+index d05d654..5872c8d 100644
+--- a/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt
++++ b/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt
+@@ -31,12 +31,10 @@ set(${theseTestsName}_nuget_c_files
+
+ set(${theseTestsName}_c_files
+ ../../../certs/certs.c
+- ../../../deps/parson/parson.c
+ )
+
+ set(${theseTestsName}_h_files
+ ../../../certs/certs.h
+- ../../../deps/parson/parson.h
+ ../common_dt_e2e/iothubclient_common_dt_e2e.h
+ )
+
+diff --git a/iothub_service_client/CMakeLists.txt b/iothub_service_client/CMakeLists.txt
+index 11a9a9a..4097293 100644
+--- a/iothub_service_client/CMakeLists.txt
++++ b/iothub_service_client/CMakeLists.txt
+@@ -72,9 +72,7 @@ endif()
+ setSdkTargetBuildProperties(iothub_service_client)
+
+ if(NOT ${nuget_e2e_tests})
+- target_link_libraries(iothub_service_client uamqp parson)
+-else()
+- target_link_libraries(iothub_service_client parson)
++ target_link_libraries(iothub_service_client uamqp)
+ endif()
+
+ if (NOT ${ARCHITECTURE} STREQUAL "ARM")
diff --git a/ports/azure-iot-sdk-c/portfile.cmake b/ports/azure-iot-sdk-c/portfile.cmake
new file mode 100644
index 000000000..0abffcb0f
--- /dev/null
+++ b/ports/azure-iot-sdk-c/portfile.cmake
@@ -0,0 +1,47 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("azure-iot-sdk-c only supports static linkage")
+ set(VCPKG_LIBRARY_LINKAGE "static")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Azure/azure-iot-sdk-c
+ REF 1.2.3
+ SHA512 6192d454bb2ecb01989f7636751acd6919021b55b772f4ea25a6d0ddd263e7f988275f7fb0b1c304d4ebd30418c9f870eb1c504a4a504f2faeb712ef8e669d5a
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/improve-external-deps.patch
+ ${CMAKE_CURRENT_LIST_DIR}/improve-external-deps-2.patch
+)
+
+file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/azure-c-shared-utility/configs/)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -Dskip_samples=ON
+ -Duse_installed_dependencies=ON
+ -Duse_default_uuid=ON
+ -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/azure_iot_sdks)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-iot-sdk-c RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/azure-storage-cpp/CONTROL b/ports/azure-storage-cpp/CONTROL
index 94126a366..eec7c8fcd 100644
--- a/ports/azure-storage-cpp/CONTROL
+++ b/ports/azure-storage-cpp/CONTROL
@@ -1,5 +1,5 @@
Source: azure-storage-cpp
-Version: 3.0.0-2
-Build-Depends: cpprestsdk, atlmfc
+Version: 4.0.0
+Build-Depends: cpprestsdk, atlmfc (windows), boost-log (!windows&!uwp), boost-locale (!windows&!uwp), libxml2 (!windows&!uwp), libuuid (!windows&!uwp)
Description: Microsoft Azure Storage Client SDK for C++
- A client library for working with Microsoft Azure storage services including blobs, files, tables, and queues. This client library enables working with the Microsoft Azure storage services which include the blob service for storing binary and text data, the file service for storing binary and text data, the table service for storing structured non-relational data, and the queue service for storing messages that may be accessed by a client. Microsoft Azure Storage team's blog - http://blogs.msdn.com/b/windowsazurestorage/ \ No newline at end of file
+ A client library for working with Microsoft Azure storage services including blobs, files, tables, and queues. This client library enables working with the Microsoft Azure storage services which include the blob service for storing binary and text data, the file service for storing binary and text data, the table service for storing structured non-relational data, and the queue service for storing messages that may be accessed by a client. Microsoft Azure Storage team's blog - http://blogs.msdn.com/b/windowsazurestorage/
diff --git a/ports/azure-storage-cpp/cmake.patch b/ports/azure-storage-cpp/cmake.patch
index 96fdace2d..04f6b5ade 100644
--- a/ports/azure-storage-cpp/cmake.patch
+++ b/ports/azure-storage-cpp/cmake.patch
@@ -1,8 +1,32 @@
diff --git a/Microsoft.WindowsAzure.Storage/CMakeLists.txt b/Microsoft.WindowsAzure.Storage/CMakeLists.txt
-index 07878c2..8d1c47e 100644
+index a23b93f..e471b86 100644
--- a/Microsoft.WindowsAzure.Storage/CMakeLists.txt
+++ b/Microsoft.WindowsAzure.Storage/CMakeLists.txt
-@@ -51,20 +51,25 @@ if(UNIX)
+@@ -1,5 +1,5 @@
+ set(CMAKE_LEGACY_CYGWIN_WIN32 0)
+-cmake_minimum_required(VERSION 2.6)
++cmake_minimum_required(VERSION 3.8)
+ project(azurestorage)
+
+ enable_testing()
+@@ -21,8 +21,6 @@ if(UNIX)
+
+ # Prefer the latest (make the latest one first)
+ list(REVERSE OPENSSL_ROOT_DIR)
+-
+-
+ if(NOT GETTEXT_LIB_DIR)
+ message(WARNING "No GETTEXT_LIB_DIR specified, assuming: /usr/local/opt/gettext/lib")
+ set(GETTEXT_LIB_DIR "/usr/local/opt/gettext/lib")
+@@ -40,6 +38,7 @@ if(UNIX)
+ find_package(OpenSSL 1.0.0 REQUIRED)
+
+
++
+ find_package(UUID REQUIRED)
+ find_package(Casablanca REQUIRED)
+ find_package(LibXML2 REQUIRED)
+@@ -48,20 +47,25 @@ if(UNIX)
find_package(UnitTest++ REQUIRED)
endif()
@@ -36,7 +60,7 @@ index 07878c2..8d1c47e 100644
message("-- Setting gcc options")
set(WARNINGS "-Wall -Wextra -Wunused-parameter -Wcast-align -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls -Wunreachable-code")
-@@ -81,22 +86,29 @@ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
+@@ -78,22 +82,31 @@ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
add_definitions(-DBOOST_LOG_DYN_LINK)
endif()
add_definitions(-D_TURN_OFF_PLATFORM_STRING)
@@ -75,23 +99,39 @@ index 07878c2..8d1c47e 100644
+ add_compile_options(/MP)
+ if(BUILD_SHARED_LIBS)
+ add_definitions(-DWASTORAGE_DLL -D_USRDLL)
++ else()
++ add_definitions(-D_NO_WASTORAGE_API)
+ endif()
else()
message("-- Unknown compiler, success is doubtful.")
endif()
-@@ -109,7 +121,6 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/Binaries)
+@@ -106,7 +119,6 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/Binaries)
set(AZURESTORAGE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/includes)
- set(AZURESTORAGE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/includes ${CASABLANCA_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIRS} ${LibXML++_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} ${Glibmm_INCLUDE_DIRS})
+ set(AZURESTORAGE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/includes ${CASABLANCA_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} ${LibXML2_INCLUDE_DIR})
-
set(AZURESTORAGE_LIBRARY azurestorage)
- set(AZURESTORAGE_LIBRARIES ${AZURESTORAGE_LIBRARY} ${CASABLANCA_LIBRARIES} ${Boost_LIBRARIES} ${Boost_FRAMEWORK} ${OPENSSL_LIBRARIES} ${LibXML++_LIBRARIES} ${UUID_LIBRARIES} ${Glibmm_LIBRARIES})
+ set(AZURESTORAGE_LIBRARIES ${AZURESTORAGE_LIBRARY} ${CASABLANCA_LIBRARY} ${Boost_LIBRARIES} ${Boost_FRAMEWORK} ${OPENSSL_LIBRARIES} ${UUID_LIBRARIES} ${LibXML2_LIBRARIES})
diff --git a/Microsoft.WindowsAzure.Storage/cmake/Modules/FindCasablanca.cmake b/Microsoft.WindowsAzure.Storage/cmake/Modules/FindCasablanca.cmake
-index 5c1df3c..da66eb4 100644
+index 5c1df3c..40e1767 100644
--- a/Microsoft.WindowsAzure.Storage/cmake/Modules/FindCasablanca.cmake
+++ b/Microsoft.WindowsAzure.Storage/cmake/Modules/FindCasablanca.cmake
-@@ -27,6 +27,7 @@ find_path(CASABLANCA_INCLUDE_DIR
+@@ -23,10 +23,21 @@ find_path(CASABLANCA_INCLUDE_DIR
+ include
+ )
+
++find_package(cpprestsdk)
++
++if(cpprestsdk_FOUND)
++ set(CASABLANCA_LIBRARY cpprestsdk::cpprest)
++ set(CASABLANCA_PROCESS_LIBS CASABLANCA_LIBRARY)
++ set(CASABLANCA_PROCESS_INCLUDES CASABLANCA_INCLUDE_DIR)
++ libfind_process(CASABLANCA)
++ return()
++endif()
++
+ # Library
find_library(CASABLANCA_LIBRARY
NAMES
cpprest
@@ -100,7 +140,7 @@ index 5c1df3c..da66eb4 100644
${CASABLANCA_PKGCONF_LIBRARY_DIRS}
${CASABLANCA_DIR}
diff --git a/Microsoft.WindowsAzure.Storage/src/CMakeLists.txt b/Microsoft.WindowsAzure.Storage/src/CMakeLists.txt
-index b08111f..74ba2fb 100644
+index 59fedac..3737eeb 100644
--- a/Microsoft.WindowsAzure.Storage/src/CMakeLists.txt
+++ b/Microsoft.WindowsAzure.Storage/src/CMakeLists.txt
@@ -2,7 +2,7 @@ include_directories(${Boost_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR})
@@ -110,9 +150,9 @@ index b08111f..74ba2fb 100644
-if(UNIX)
+if(UNIX OR WIN32)
set(SOURCES
+ xml_wrapper.cpp
xmlhelpers.cpp
- response_parsers.cpp
-@@ -64,24 +64,46 @@ if ("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
+@@ -65,24 +65,46 @@ if ("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
endif()
if (APPLE)
@@ -139,7 +179,7 @@ index b08111f..74ba2fb 100644
target_link_libraries(${AZURESTORAGE_LIBRARIES})
+if(WIN32)
-+ target_link_libraries(${AZURESTORAGE_LIBRARY} Ws2_32.lib rpcrt4.lib xmllite.lib bcrypt.lib)
++ target_link_libraries(${AZURESTORAGE_LIBRARY} Ws2_32.lib rpcrt4.lib xmllite.lib bcrypt.lib)
+endif()
# Portions specific to azure storage binary versioning and installation.
diff --git a/ports/azure-storage-cpp/portfile.cmake b/ports/azure-storage-cpp/portfile.cmake
index 150c4aafc..99c388208 100644
--- a/ports/azure-storage-cpp/portfile.cmake
+++ b/ports/azure-storage-cpp/portfile.cmake
@@ -1,23 +1,24 @@
+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 Azure/azure-storage-cpp
- REF v3.0.0
- SHA512 45d0d7f8cc350a16cff0371cdd442e851912c89061acfec559482e8f79cebafffd8681b32a30b878e329235cd3aaad5d2ff797d1148302e3109cf5111df14b97
+ REF v4.0.0
+ SHA512 5ca264e014685852eb52b5b732d352e3eaaca3358d4bdf78ac2a571fd3b18f2d967583ce4ec64105fb87f0ef182a84671248f3f6a62c4886ff05dfa10c773605
HEAD_REF master
-)
-
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
PATCHES
${CMAKE_CURRENT_LIST_DIR}/cmake.patch
- ${CMAKE_CURRENT_LIST_DIR}/static-builds.patch
+ ${CMAKE_CURRENT_LIST_DIR}/pplx-do-while.patch
)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}/Microsoft.WindowsAzure.Storage
OPTIONS
+ -DCMAKE_FIND_FRAMEWORK=LAST
-DBUILD_TESTS=OFF
-DBUILD_SAMPLES=OFF
)
@@ -27,7 +28,7 @@ vcpkg_install_cmake()
file(INSTALL
${SOURCE_PATH}/LICENSE.txt
DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-storage-cpp RENAME copyright)
-file(REMOVE_RECURSE
+file(REMOVE_RECURSE
${CURRENT_PACKAGES_DIR}/debug/include)
vcpkg_copy_pdbs()
diff --git a/ports/azure-storage-cpp/pplx-do-while.patch b/ports/azure-storage-cpp/pplx-do-while.patch
new file mode 100644
index 000000000..0c2163442
--- /dev/null
+++ b/ports/azure-storage-cpp/pplx-do-while.patch
@@ -0,0 +1,52 @@
+diff --git a/Microsoft.WindowsAzure.Storage/includes/wascore/executor.h b/Microsoft.WindowsAzure.Storage/includes/wascore/executor.h
+index 756163d..6fbfd44 100644
+--- a/Microsoft.WindowsAzure.Storage/includes/wascore/executor.h
++++ b/Microsoft.WindowsAzure.Storage/includes/wascore/executor.h
+@@ -366,7 +366,7 @@ namespace azure { namespace storage { namespace core {
+ // TODO: Reduce usage of auto variable types
+
+ auto instance = std::make_shared<executor_impl>(command, options, context);
+- return pplx::details::do_while([instance]() -> pplx::task<bool>
++ return details::_do_while([instance]() -> pplx::task<bool>
+ {
+ // 0. Begin request
+ instance->validate_location_mode();
+diff --git a/Microsoft.WindowsAzure.Storage/includes/wascore/util.h b/Microsoft.WindowsAzure.Storage/includes/wascore/util.h
+index f3401f2..6a6aa48 100644
+--- a/Microsoft.WindowsAzure.Storage/includes/wascore/util.h
++++ b/Microsoft.WindowsAzure.Storage/includes/wascore/util.h
+@@ -127,6 +127,21 @@ namespace azure { namespace storage { namespace core {
+ };
+ #endif
+
++ namespace details
++ {
++ template<class F, class T = bool>
++ pplx::task<T> _do_while(F func)
++ {
++ pplx::task<T> first = func();
++ return first.then([=](bool guard) -> pplx::task<T> {
++ if (guard)
++ return azure::storage::core::details::_do_while<F,T>(func);
++ else
++ return first;
++ });
++ }
++ }
++
+ }}} // namespace azure::storage::core
+
+ #pragma pop_macro("max")
+diff --git a/Microsoft.WindowsAzure.Storage/src/util.cpp b/Microsoft.WindowsAzure.Storage/src/util.cpp
+index dd2250a..b8d1341 100644
+--- a/Microsoft.WindowsAzure.Storage/src/util.cpp
++++ b/Microsoft.WindowsAzure.Storage/src/util.cpp
+@@ -98,7 +98,7 @@ namespace azure { namespace storage { namespace core {
+ auto obuffer = ostream.streambuf();
+ auto length_ptr = (length != std::numeric_limits<utility::size64_t>::max()) ? std::make_shared<utility::size64_t>(length) : nullptr;
+ auto total_ptr = std::make_shared<utility::size64_t>(0);
+- return pplx::details::do_while([istream, obuffer, buffer_size, length_ptr, total_ptr, max_length] () -> pplx::task<bool>
++ return azure::storage::core::details::_do_while([istream, obuffer, buffer_size, length_ptr, total_ptr, max_length] () -> pplx::task<bool>
+ {
+ size_t read_length = buffer_size;
+ if ((length_ptr != nullptr) && (*length_ptr < read_length))
diff --git a/ports/azure-storage-cpp/static-builds.patch b/ports/azure-storage-cpp/static-builds.patch
deleted file mode 100644
index 09b2f1077..000000000
--- a/ports/azure-storage-cpp/static-builds.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Microsoft.WindowsAzure.Storage/CMakeLists.txt b/Microsoft.WindowsAzure.Storage/CMakeLists.txt
-index 8d1c47e..3b4d1c0 100644
---- a/Microsoft.WindowsAzure.Storage/CMakeLists.txt
-+++ b/Microsoft.WindowsAzure.Storage/CMakeLists.txt
-@@ -108,6 +108,8 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
- add_compile_options(/MP)
- if(BUILD_SHARED_LIBS)
- add_definitions(-DWASTORAGE_DLL -D_USRDLL)
-+ else()
-+ add_definitions(-D_NO_WASTORAGE_API)
- endif()
- else()
- message("-- Unknown compiler, success is doubtful.")
diff --git a/ports/azure-uamqp-c/CONTROL b/ports/azure-uamqp-c/CONTROL
new file mode 100644
index 000000000..098209ac9
--- /dev/null
+++ b/ports/azure-uamqp-c/CONTROL
@@ -0,0 +1,4 @@
+Source: azure-uamqp-c
+Version: 1.2.3
+Build-Depends: azure-c-shared-utility
+Description: AMQP library for C
diff --git a/ports/azure-uamqp-c/glob-headers.patch b/ports/azure-uamqp-c/glob-headers.patch
new file mode 100644
index 000000000..245744f2b
--- /dev/null
+++ b/ports/azure-uamqp-c/glob-headers.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index dbf79e5..aec44e5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -74,7 +74,8 @@ if(WIN32)
+ include_directories($ENV{OpenSSLDir}/include)
+ endif()
+
+-set(uamqp_h_files
++file(GLOB uamqp_h_files
++ ./inc/azure_uamqp_c/*
+ ./inc/azure_uamqp_c/amqp_definitions.h
+ ./inc/azure_uamqp_c/amqp_frame_codec.h
+ ./inc/azure_uamqp_c/amqp_management.h
diff --git a/ports/azure-uamqp-c/portfile.cmake b/ports/azure-uamqp-c/portfile.cmake
new file mode 100644
index 000000000..c037010f1
--- /dev/null
+++ b/ports/azure-uamqp-c/portfile.cmake
@@ -0,0 +1,41 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("azure-uamqp-c only supports static linkage")
+ set(VCPKG_LIBRARY_LINKAGE "static")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Azure/azure-uamqp-c
+ REF 1.2.3
+ SHA512 18fc978517371fcb19e1c078f07d06b3bf8ec046c5cba955dd3cfe0a364d8775542acc970d81fa42384942ea4db7fb60d8939e80e90baf582c9d9e6ff0b577b5
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} PATCHES ${CMAKE_CURRENT_LIST_DIR}/glob-headers.patch)
+
+file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/azure-c-shared-utility/configs/)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -Dskip_samples=ON
+ -Duse_installed_dependencies=ON
+ -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/uamqp)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-uamqp-c RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/azure-uhttp-c/CONTROL b/ports/azure-uhttp-c/CONTROL
new file mode 100644
index 000000000..3711a7dfe
--- /dev/null
+++ b/ports/azure-uhttp-c/CONTROL
@@ -0,0 +1,4 @@
+Source: azure-uhttp-c
+Version: 2018-02-09
+Build-Depends: azure-c-shared-utility
+Description: Azure HTTP Library written in C
diff --git a/ports/azure-uhttp-c/portfile.cmake b/ports/azure-uhttp-c/portfile.cmake
new file mode 100644
index 000000000..a04290ec1
--- /dev/null
+++ b/ports/azure-uhttp-c/portfile.cmake
@@ -0,0 +1,40 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("azure-uhttp-c only supports static linkage")
+ set(VCPKG_LIBRARY_LINKAGE "static")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Azure/azure-uhttp-c
+ REF 2018-02-09
+ SHA512 0668be0f7624d021b6d24e81c21c606ab4a59990eb3d83fea6d2c6cf9ea3f2c6904ad021afcf9645c3c5f2238e9b83146f36522c662b0a2626d928cb4a0218ba
+ HEAD_REF master
+)
+
+file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/c-utility/configs/)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -Dskip_samples=ON
+ -Duse_installed_dependencies=ON
+ -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC}
+ -DCMAKE_INSTALL_INCLUDEDIR=include
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/uhttp)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-uhttp-c RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/azure-umqtt-c/CONTROL b/ports/azure-umqtt-c/CONTROL
new file mode 100644
index 000000000..68cfaaa05
--- /dev/null
+++ b/ports/azure-umqtt-c/CONTROL
@@ -0,0 +1,4 @@
+Source: azure-umqtt-c
+Version: 1.1.3
+Build-Depends: azure-c-shared-utility
+Description: General purpose library for communication over the mqtt protocol
diff --git a/ports/azure-umqtt-c/portfile.cmake b/ports/azure-umqtt-c/portfile.cmake
new file mode 100644
index 000000000..f24e087bf
--- /dev/null
+++ b/ports/azure-umqtt-c/portfile.cmake
@@ -0,0 +1,39 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("azure-umqtt-c only supports static linkage")
+ set(VCPKG_LIBRARY_LINKAGE "static")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Azure/azure-umqtt-c
+ REF 1.1.3
+ SHA512 5c57fe40dce8166e1e138db45b642152a337dbbbc4d85998ac99b016627c0135b99bd7b189d249c6278837ef4af5ba4e4f964a9b65788acef37d7b37ae125b16
+ HEAD_REF master
+)
+
+file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/c-utility/configs/)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -Dskip_samples=ON
+ -Duse_installed_dependencies=ON
+ -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/umqtt)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-umqtt-c RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/beast/CONTROL b/ports/beast/CONTROL
index 09f588090..0c889b941 100644
--- a/ports/beast/CONTROL
+++ b/ports/beast/CONTROL
@@ -1,4 +1,4 @@
Source: beast
-Version: v40
-Build-Depends: boost
-Description: HTTP and WebSocket, header-only using Boost.Asio and C++11
+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 b464613e2..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 f2d825594ee34ccc1ebc0b231899a1735245778d
- SHA512 21ea2ba77ff8c1dac873e7abd4caa03da50f155c34b39783380d4319c930be02076bf2b7ffcf93a964cac60bfb0a2ec8621156c332adedd3a2af82a27ca50e1a
- 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) \ No newline at end of file
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
diff --git a/ports/benchmark/CONTROL b/ports/benchmark/CONTROL
index 21f36fe43..9853a1509 100644
--- a/ports/benchmark/CONTROL
+++ b/ports/benchmark/CONTROL
@@ -1,3 +1,3 @@
Source: benchmark
-Version: 1.1.0
-Description: A library to support the benchmarking of functions, similar to unit-tests. \ No newline at end of file
+Version: 1.4.0
+Description: A library to support the benchmarking of functions, similar to unit-tests.
diff --git a/ports/benchmark/fix-cmakelists.patch b/ports/benchmark/fix-cmakelists.patch
deleted file mode 100644
index f1d72fdc3..000000000
--- a/ports/benchmark/fix-cmakelists.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 4038875..94d2aea 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -28,17 +28,20 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- endif()
-
- # Expose public API
--target_include_directories(benchmark PUBLIC ${PROJECT_SOURCE_DIR}/include)
-+target_include_directories(benchmark PRIVATE ${PROJECT_SOURCE_DIR}/include)
-
- # Install target (will install the library to specified CMAKE_INSTALL_PREFIX variable)
- install(
- TARGETS benchmark
-+ EXPORT benchmarkTargets
- ARCHIVE DESTINATION lib
- LIBRARY DESTINATION lib
- RUNTIME DESTINATION bin
-- COMPONENT library)
-+ INCLUDES DESTINATION include)
-
- install(
- DIRECTORY "${PROJECT_SOURCE_DIR}/include/benchmark"
- DESTINATION include
- FILES_MATCHING PATTERN "*.*h")
-+
-+install(EXPORT benchmarkTargets NAMESPACE benchmark:: DESTINATION share/benchmark)
diff --git a/ports/benchmark/portfile.cmake b/ports/benchmark/portfile.cmake
index d8fc98a7e..d724bf5ee 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,30 +16,27 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO google/benchmark
- REF v1.1.0
- SHA512 533061531e6a37723a626addc9e779018c4c2cfc8634ae45860eec0d3800103b5b562f865ac1dc0c8dbe045579b81e59de887e1c48318cebf160f03c18321831
+ REF v1.4.0
+ SHA512 4bb5119fe6c0558e5a8b39486169ffcbf24e877ec7f28636dfab1692936b77334f76d28bda2cdada18e5070579da7a5bf0617bfbb6a09848f0b071df8e694d76
HEAD_REF master
)
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch"
-)
-
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
- -DBENCHMARK_ENABLE_TESTING=OFF
+ -DBENCHMARK_ENABLE_TESTING=OFF
+ -DCMAKE_DEBUG_POSTFIX=d
)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
-vcpkg_fixup_cmake_targets()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/benchmark)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/benchmark)
diff --git a/ports/berkeleydb/CMakeLists.txt b/ports/berkeleydb/CMakeLists.txt
new file mode 100644
index 000000000..1eb130c3e
--- /dev/null
+++ b/ports/berkeleydb/CMakeLists.txt
@@ -0,0 +1,276 @@
+cmake_minimum_required(VERSION 3.8)
+project(berkeleydb C CXX)
+
+option(INSTALL_HEADERS "Install header files" ON)
+
+add_definitions(
+ -DWIN32
+ -D_WINDOWS
+ -D_CRT_SECURE_NO_DEPRECATE
+ -D_CRT_NONSTDC_NO_DEPRECATE
+ -D_LIB
+)
+
+if (BUILD_SHARED_LIBS)
+ add_definitions(
+ -D_LIB
+ )
+else()
+ add_definitions(
+ -DDB_CREATE_DLL
+ -D_USRDLL
+ )
+endif()
+
+add_library(libdb48
+ btree/bt_compact.c
+ btree/bt_compare.c
+ btree/bt_compress.c
+ btree/bt_conv.c
+ btree/bt_curadj.c
+ btree/bt_cursor.c
+ btree/bt_delete.c
+ btree/bt_method.c
+ btree/bt_open.c
+ btree/bt_put.c
+ btree/bt_rec.c
+ btree/bt_reclaim.c
+ btree/bt_recno.c
+ btree/bt_rsearch.c
+ btree/bt_search.c
+ btree/bt_split.c
+ btree/bt_stat.c
+ btree/bt_upgrade.c
+ btree/bt_verify.c
+ btree/btree_auto.c
+ db/crdel_auto.c
+ db/crdel_rec.c
+ common/crypto_stub.c
+ cxx/cxx_db.cpp
+ cxx/cxx_dbc.cpp
+ cxx/cxx_dbt.cpp
+ cxx/cxx_env.cpp
+ cxx/cxx_except.cpp
+ cxx/cxx_lock.cpp
+ cxx/cxx_logc.cpp
+ cxx/cxx_mpool.cpp
+ cxx/cxx_multi.cpp
+ cxx/cxx_seq.cpp
+ cxx/cxx_txn.cpp
+ db/db.c
+ db/db_am.c
+ db/db_auto.c
+ common/db_byteorder.c
+ db/db_cam.c
+ db/db_cds.c
+ db/db_conv.c
+ db/db_dispatch.c
+ db/db_dup.c
+ common/db_err.c
+ common/db_getlong.c
+ common/db_idspace.c
+ common/db_compint.c
+ db/db_iface.c
+ db/db_join.c
+ common/db_log2.c
+ db/db_meta.c
+ db/db_method.c
+ db/db_open.c
+ db/db_overflow.c
+ db/db_ovfl_vrfy.c
+ db/db_pr.c
+ db/db_rec.c
+ db/db_reclaim.c
+ db/db_remove.c
+ db/db_rename.c
+ db/db_ret.c
+ db/db_setid.c
+ db/db_setlsn.c
+ common/db_shash.c
+ db/db_sort_multiple.c
+ db/db_stati.c
+ db/db_truncate.c
+ db/db_upg.c
+ db/db_upg_opd.c
+ db/db_vrfy.c
+ db/db_vrfyutil.c
+ db/partition.c
+ dbm/dbm.c
+ dbreg/dbreg.c
+ dbreg/dbreg_auto.c
+ dbreg/dbreg_rec.c
+ dbreg/dbreg_stat.c
+ dbreg/dbreg_util.c
+ common/dbt.c
+ env/env_alloc.c
+ env/env_config.c
+ env/env_failchk.c
+ env/env_file.c
+ env/env_globals.c
+ env/env_method.c
+ env/env_name.c
+ env/env_open.c
+ env/env_recover.c
+ env/env_region.c
+ env/env_register.c
+ env/env_sig.c
+ env/env_stat.c
+ fileops/fileops_auto.c
+ fileops/fop_basic.c
+ fileops/fop_rec.c
+ fileops/fop_util.c
+ hash/hash.c
+ hash/hash_auto.c
+ hash/hash_conv.c
+ hash/hash_dup.c
+ hash/hash_func.c
+ hash/hash_meta.c
+ hash/hash_method.c
+ hash/hash_open.c
+ hash/hash_page.c
+ hash/hash_rec.c
+ hash/hash_reclaim.c
+ hash/hash_stat.c
+ hash/hash_upgrade.c
+ hash/hash_verify.c
+ hmac/hmac.c
+ hsearch/hsearch.c
+ build_windows/libdb.def
+ lock/lock.c
+ lock/lock_deadlock.c
+ lock/lock_failchk.c
+ lock/lock_id.c
+ lock/lock_list.c
+ lock/lock_method.c
+ lock/lock_region.c
+ lock/lock_stat.c
+ lock/lock_timer.c
+ lock/lock_util.c
+ log/log.c
+ log/log_archive.c
+ log/log_compare.c
+ log/log_debug.c
+ log/log_get.c
+ log/log_method.c
+ log/log_put.c
+ log/log_stat.c
+ common/mkpath.c
+ mp/mp_alloc.c
+ mp/mp_bh.c
+ mp/mp_fget.c
+ mp/mp_fmethod.c
+ mp/mp_fopen.c
+ mp/mp_fput.c
+ mp/mp_fset.c
+ mp/mp_method.c
+ mp/mp_mvcc.c
+ mp/mp_region.c
+ mp/mp_register.c
+ mp/mp_resize.c
+ mp/mp_stat.c
+ mp/mp_sync.c
+ mp/mp_trickle.c
+ mutex/mut_alloc.c
+ mutex/mut_failchk.c
+ mutex/mut_method.c
+ mutex/mut_region.c
+ mutex/mut_stat.c
+ mutex/mut_win32.c
+ common/openflags.c
+ os/os_abort.c
+ os/os_addrinfo.c
+ os_windows/os_abs.c
+ os/os_alloc.c
+ os_windows/os_clock.c
+ os_windows/os_config.c
+ os_windows/os_cpu.c
+ os/os_ctime.c
+ os_windows/os_dir.c
+ os_windows/os_errno.c
+ os_windows/os_fid.c
+ os_windows/os_flock.c
+ os_windows/os_fsync.c
+ os_windows/os_getenv.c
+ os_windows/os_handle.c
+ os_windows/os_map.c
+ os_windows/os_mkdir.c
+ os_windows/os_open.c
+ os/os_pid.c
+ os_windows/os_rename.c
+ os/os_root.c
+ os/os_rpath.c
+ os_windows/os_rw.c
+ os_windows/os_seek.c
+ os/os_stack.c
+ os_windows/os_stat.c
+ os/os_tmpdir.c
+ os_windows/os_truncate.c
+ os/os_uid.c
+ os_windows/os_unlink.c
+ os_windows/os_yield.c
+ qam/qam.c
+ qam/qam_auto.c
+ qam/qam_conv.c
+ qam/qam_files.c
+ qam/qam_method.c
+ qam/qam_open.c
+ qam/qam_rec.c
+ qam/qam_stat.c
+ qam/qam_upgrade.c
+ qam/qam_verify.c
+ rep/rep_auto.c
+ rep/rep_backup.c
+ rep/rep_elect.c
+ rep/rep_lease.c
+ rep/rep_log.c
+ rep/rep_method.c
+ rep/rep_record.c
+ rep/rep_region.c
+ rep/rep_stat.c
+ rep/rep_util.c
+ rep/rep_verify.c
+ repmgr/repmgr_auto.c
+ repmgr/repmgr_elect.c
+ repmgr/repmgr_method.c
+ repmgr/repmgr_msg.c
+ repmgr/repmgr_net.c
+ repmgr/repmgr_queue.c
+ repmgr/repmgr_sel.c
+ repmgr/repmgr_stat.c
+ repmgr/repmgr_util.c
+ repmgr/repmgr_windows.c
+ sequence/seq_stat.c
+ sequence/sequence.c
+ hmac/sha1.c
+ clib/strsep.c
+ txn/txn.c
+ txn/txn_auto.c
+ txn/txn_chkpt.c
+ txn/txn_failchk.c
+ txn/txn_method.c
+ txn/txn_rec.c
+ txn/txn_recover.c
+ txn/txn_region.c
+ txn/txn_stat.c
+ txn/txn_util.c
+ common/os_method.c
+ common/util_cache.c
+ common/util_log.c
+ common/util_sig.c
+ common/zerofill.c
+)
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR} build_windows dbinc)
+
+target_link_libraries(libdb48 PUBLIC ws2_32.lib)
+
+install(TARGETS libdb48
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
+
+if(INSTALL_HEADERS)
+ file(GLOB HEADERS build_windows/*.h)
+ install(FILES ${HEADERS} DESTINATION include)
+endif() \ No newline at end of file
diff --git a/ports/berkeleydb/CONTROL b/ports/berkeleydb/CONTROL
new file mode 100644
index 000000000..a0ac528b7
--- /dev/null
+++ b/ports/berkeleydb/CONTROL
@@ -0,0 +1,3 @@
+Source: berkeleydb
+Version: 4.8.30
+Description: A high-performance embedded database for key/value data.
diff --git a/ports/berkeleydb/portfile.cmake b/ports/berkeleydb/portfile.cmake
new file mode 100644
index 000000000..38f383d7b
--- /dev/null
+++ b/ports/berkeleydb/portfile.cmake
@@ -0,0 +1,27 @@
+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)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://download.oracle.com/berkeley-db/db-4.8.30.NC.zip"
+ FILENAME "db-4.8.30.NC.zip"
+ SHA512 59c1d2d5a3551f988ab1dc063900572b67ad087537e0d71760de34601f9ebd4d5c070a49b809bec4a599a62417e9a162683ce0f6442deb1a0dadb80764bf6eab
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DINSTALL_HEADERS=OFF
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/berkeleydb RENAME copyright)
diff --git a/ports/bigint/CMakeLists.txt b/ports/bigint/CMakeLists.txt
new file mode 100644
index 000000000..e4cccbe12
--- /dev/null
+++ b/ports/bigint/CMakeLists.txt
@@ -0,0 +1,41 @@
+cmake_minimum_required(VERSION 3.8.0)
+project(bigint)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+include_directories(".")
+
+set(
+ bigint_srcs
+ BigUnsigned.cc
+ BigInteger.cc
+ BigIntegerAlgorithms.cc
+ BigUnsignedInABase.cc
+ BigIntegerUtils.cc
+)
+
+set(
+ bigint_hh
+ NumberlikeArray.hh
+ BigUnsigned.hh
+ BigInteger.hh
+ BigIntegerAlgorithms.hh
+ BigUnsignedInABase.hh
+ BigIntegerLibrary.hh
+ BigIntegerUtils.hh
+)
+
+add_library(bigint ${bigint_srcs})
+
+install(
+ TARGETS bigint
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES ${bigint_hh} DESTINATION include/bigint)
+endif()
diff --git a/ports/bigint/CONTROL b/ports/bigint/CONTROL
new file mode 100644
index 000000000..5247cbf81
--- /dev/null
+++ b/ports/bigint/CONTROL
@@ -0,0 +1,3 @@
+Source: bigint
+Version: 2010.04.30-2
+Description: C++ Big Integer Library
diff --git a/ports/bigint/portfile.cmake b/ports/bigint/portfile.cmake
new file mode 100644
index 000000000..8a710aa54
--- /dev/null
+++ b/ports/bigint/portfile.cmake
@@ -0,0 +1,27 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "Dynamic not supported building static")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/bigint-2010.04.30)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://mattmccutchen.net/bigint/bigint-2010.04.30.tar.bz2"
+ FILENAME "bigint-2010.04.30.tar.bz2"
+ SHA512 bb64380e51991f97a2489c04801ab4372f795b5e23870ad12d71087f1a2afba9b32f74dcdbdcb5228ebf0dd74a37185285bac7653dd3c62d6118d63c298689af
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/bigint RENAME copyright)
diff --git a/ports/bitserializer/CONTROL b/ports/bitserializer/CONTROL
new file mode 100644
index 000000000..95e36f5b9
--- /dev/null
+++ b/ports/bitserializer/CONTROL
@@ -0,0 +1,4 @@
+Source: bitserializer
+Version: 0.7
+Build-Depends: cpprestsdk
+Description: The library for simple serialization of arbitrary C++ types to various output formats (currently just supported JSON based on CppRestSDK).
diff --git a/ports/bitserializer/portfile.cmake b/ports/bitserializer/portfile.cmake
new file mode 100644
index 000000000..5e59f0c71
--- /dev/null
+++ b/ports/bitserializer/portfile.cmake
@@ -0,0 +1,13 @@
+include(vcpkg_common_functions)
+vcpkg_from_bitbucket(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Pavel_Kisliak/BitSerializer
+ REF 0.7
+ SHA512 3a50b1b3077115f60d298f4257ae6a5a350c1d8b3d575af83b4f0746757ab3393da7c81ac9c7db4e30540fe94f1742b1d39de724b2dec080faf727b885bb19a4
+ HEAD_REF master
+)
+
+file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR})
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/bitserializer RENAME copyright)
diff --git a/ports/blaze/CONTROL b/ports/blaze/CONTROL
new file mode 100644
index 000000000..c72f70865
--- /dev/null
+++ b/ports/blaze/CONTROL
@@ -0,0 +1,4 @@
+Source: blaze
+Version: 3.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/blaze/no-absolute-paths-in-install.patch b/ports/blaze/no-absolute-paths-in-install.patch
new file mode 100644
index 000000000..a601a37e7
--- /dev/null
+++ b/ports/blaze/no-absolute-paths-in-install.patch
@@ -0,0 +1,33 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0d102ab..5d918b8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -36,7 +36,7 @@ cmake_minimum_required(VERSION 3.5)
+ add_library(blaze INTERFACE)
+ target_include_directories(blaze INTERFACE
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>
+- $<INSTALL_INTERFACE:install>
++ $<INSTALL_INTERFACE:include>
+ )
+
+ target_compile_options(blaze INTERFACE
+@@ -48,8 +48,8 @@ target_compile_options(blaze INTERFACE
+ #==================================================================================================
+
+ find_package(LAPACK REQUIRED)
+-target_link_libraries(blaze INTERFACE ${LAPACK_LIBRARIES})
+-target_compile_options(blaze INTERFACE ${LAPACK_LINKER_FLAGS})
++target_link_libraries(blaze INTERFACE $<BUILD_INTERFACE:${LAPACK_LIBRARIES}>)
++target_compile_options(blaze INTERFACE $<BUILD_INTERFACE:${LAPACK_LINKER_FLAGS}>)
+
+
+ #==================================================================================================
+@@ -57,7 +57,7 @@ target_compile_options(blaze INTERFACE ${LAPACK_LINKER_FLAGS})
+ #==================================================================================================
+
+ find_package(Boost 1.54.0 REQUIRED)
+-target_include_directories(blaze INTERFACE ${Boost_INCLUDE_DIRS})
++target_include_directories(blaze INTERFACE $<BUILD_INTERFACE:${Boost_INCLUDE_DIRS}>)
+
+
+ #==================================================================================================
diff --git a/ports/blaze/portfile.cmake b/ports/blaze/portfile.cmake
new file mode 100644
index 000000000..6de95aeb5
--- /dev/null
+++ b/ports/blaze/portfile.cmake
@@ -0,0 +1,31 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_bitbucket(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO blaze-lib/blaze
+ REF v3.3
+ SHA512 1210db57fca04832ff9382cbb904f22f70eab3acbc355a1d22435bfe042d6acac7f86a908d8654cf49517c2ad825cd8be19f85b20b1ebd46a79d474a424653c8
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/no-absolute-paths-in-install.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBLAZE_SMP_THREADS=C++11
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/blaze/cmake)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/blaze)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/blaze/LICENSE ${CURRENT_PACKAGES_DIR}/share/blaze/copyright)
diff --git a/ports/blosc/CONTROL b/ports/blosc/CONTROL
new file mode 100644
index 000000000..1a2378aed
--- /dev/null
+++ b/ports/blosc/CONTROL
@@ -0,0 +1,4 @@
+Source: blosc
+Version: 1.13.5-1
+Build-Depends: lz4, snappy, zlib, zstd
+Description: A blocking, shuffling and loss-less compression library that can be faster than `memcpy()`
diff --git a/ports/blosc/portfile.cmake b/ports/blosc/portfile.cmake
new file mode 100644
index 000000000..33d6f729a
--- /dev/null
+++ b/ports/blosc/portfile.cmake
@@ -0,0 +1,50 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Blosc/c-blosc
+ REF v1.13.5
+ SHA512 3ddc83c16c91d87959179f58bd23fe8e4bbd07c17312cdfdd0bc238a743e695f2914baf0b69efd923e8e54e8455699c8e528d3966d9126e15a8897d3c529db25
+ HEAD_REF master
+)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(BLOSC_STATIC ON)
+ set(BLOSC_SHARED OFF)
+else()
+ set(BLOSC_STATIC OFF)
+ set(BLOSC_SHARED ON)
+endif()
+
+file(REMOVE_RECURSE ${SOURCE_PATH}/internal-complibs)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS -DPREFER_EXTERNAL_LZ4=ON
+ -DPREFER_EXTERNAL_SNAPPY=ON
+ -DPREFER_EXTERNAL_ZLIB=ON
+ -DPREFER_EXTERNAL_ZSTD=ON
+ -DBUILD_TESTS=OFF
+ -DBUILD_BENCHMARKS=OFF
+ -DBUILD_STATIC=${BLOSC_STATIC}
+ -DBUILD_SHARED=${BLOSC_SHARED}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+if (BLOSC_SHARED)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
+
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/blosc.dll ${CURRENT_PACKAGES_DIR}/debug/bin/blosc.dll)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/blosc.dll ${CURRENT_PACKAGES_DIR}/bin/blosc.dll)
+endif()
+
+# cleanup
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSES/BLOSC.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/blosc RENAME copyright)
+
diff --git a/ports/bond/0001_boost_static_libs.patch b/ports/bond/0001_boost_static_libs.patch
deleted file mode 100644
index 9e84800e6..000000000
--- a/ports/bond/0001_boost_static_libs.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/cmake/Config.cmake b/cmake/Config.cmake
-index c6e2b40d..d8b4d689 100644
---- a/cmake/Config.cmake
-+++ b/cmake/Config.cmake
-@@ -35,7 +35,7 @@ if (MSVC)
- # Bond with MSVC CRT-specific code too much. More details at
- # https://msdn.microsoft.com/en-us/library/ms175759.aspx
- add_definitions (-D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1 -D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1)
-- set (Boost_USE_STATIC_LIBS ON)
-+ set (Boost_USE_STATIC_LIBS OFF)
- endif (MSVC)
-
- if (WIN32)
-@@ -106,9 +106,6 @@ if (DEFINED ENV{APPVEYOR} AND ("$ENV{BOND_BUILD}" STREQUAL "C++"))
- endif()
- endif()
-
--# disable Boost auto-linking
--add_definitions (-DBOOST_ALL_NO_LIB)
--
- # VS2015U2 fixed a bug with atomics and emits a warning without this definition.
- add_definitions (-D_ENABLE_ATOMIC_ALIGNMENT_FIX)
-
diff --git a/ports/bond/0002_omit_rapidjson.patch b/ports/bond/0002_omit_rapidjson.patch
index 38d43f98d..7d502353d 100644
--- a/ports/bond/0002_omit_rapidjson.patch
+++ b/ports/bond/0002_omit_rapidjson.patch
@@ -1,8 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 72d62c5e..d7eb5cd4 100644
+index fe0f629e..54b6d8ec 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -39,7 +39,6 @@ install (DIRECTORY
+@@ -49,7 +49,6 @@ install (DIRECTORY
cpp/inc/bond
cpp/generated/bond
python/inc/bond
diff --git a/ports/bond/CONTROL b/ports/bond/CONTROL
index 29d17b584..eea3a85cb 100644
--- a/ports/bond/CONTROL
+++ b/ports/bond/CONTROL
@@ -1,5 +1,5 @@
Source: bond
Maintainer: bond@microsoft.com
-Version: 5.3.1
+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 c28021a38..b64be214c 100644
--- a/ports/bond/portfile.cmake
+++ b/ports/bond/portfile.cmake
@@ -1,38 +1,35 @@
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+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/bond-5.3.1)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/bond-7.0.2)
vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/Microsoft/bond/archive/5.3.1.zip"
- FILENAME "bond-5.3.1.zip"
- SHA512 aa1b3b6cbbbfbdb450306b59d0216c4b63b25ce2f5852387b42cb5c098e8fb6f90d8d1f688344fa4375244510009767d7d46a6a0b5f49c725b22cf3e9d73d1e5
+ URLS "https://github.com/Microsoft/bond/archive/7.0.2.zip"
+ FILENAME "bond-7.0.2.zip"
+ SHA512 4ae3b88fafbede6c1433d171713bdbfcbed61a3d2a983d7df4e33af893a50f233be0e95c1ea8e5f30dafb017b2a8100a23721292b04184159e5fd796b1a43398
)
vcpkg_download_distfile(GBC_ARCHIVE
- URLS "https://github.com/Microsoft/bond/releases/download/5.3.1/gbc-5.3.1-amd64.exe.zip"
- FILENAME "gbc-5.3.1-amd64.zip"
- SHA512 fb1eff0b7bd34cba26fa6a0ffeba7789cff55976e95a695aa2cf6ae60b5c4e8b0dd15f0d7968599bd5b17c9b8b325aa29e3e13aca4854ec38ed50253d67038e4
+ URLS "https://github.com/Microsoft/bond/releases/download/7.0.2/gbc-7.0.2-amd64.exe.zip"
+ FILENAME "gbc-7.0.2-amd64.exe.zip"
+ SHA512 069eafd7641ebd719425037cb8249d2d214eb09c6ce38fbf1d1811c01d1839b0a0987c55217075b6ae9f477f750d582250134387a530edb2aee407b21d973915
)
vcpkg_extract_source_archive(${ARCHIVE})
# Extract the precompiled gbc
vcpkg_extract_source_archive(${GBC_ARCHIVE} ${CURRENT_BUILDTREES_DIR}/tools/)
-set(FETCHED_GBC_PATH ${CURRENT_BUILDTREES_DIR}/tools/gbc-5.3.1-amd64.exe)
+set(FETCHED_GBC_PATH ${CURRENT_BUILDTREES_DIR}/tools/gbc-7.0.2-amd64.exe)
-if (NOT EXISTS ${FETCHED_GBC_PATH})
+if (NOT EXISTS "${FETCHED_GBC_PATH}")
message(FATAL_ERROR "Fetching GBC failed. Expected '${FETCHED_GBC_PATH}' to exists, but it doesn't.")
endif()
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
- # Change Boost_USE_STATIC_LIBS to be compatible with vcpkg's treatment
- # of Boost
- ${CMAKE_CURRENT_LIST_DIR}/0001_boost_static_libs.patch
# Don't install rapidjson from the (empty) submodule. With vcpkg, we get
# rapidjson from vcpkg
${CMAKE_CURRENT_LIST_DIR}/0002_omit_rapidjson.patch
@@ -40,9 +37,12 @@ vcpkg_apply_patches(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
-DBOND_LIBRARIES_ONLY=TRUE
-DBOND_GBC_PATH=${FETCHED_GBC_PATH}
+ -DBOND_ENABLE_COMM=FALSE
+ -DBOND_ENABLE_GRPC=FALSE
)
vcpkg_install_cmake()
diff --git a/ports/boost-accumulators/CONTROL b/ports/boost-accumulators/CONTROL
new file mode 100644
index 000000000..7c3b8aedc
--- /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.67.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..f4e5abf16
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/accumulators
+ REF boost-1.67.0
+ SHA512 f68e35b502f22af605d8d5c1648b856cbdeaa2f592ad1a7732ea2be6d9207271f4842320875bde693651479c39a394055fb2315e5422a6ebb623412fb44b2a04
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..bf9846b26
--- /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.67.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..55f8ddad1
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/algorithm
+ REF boost-1.67.0
+ SHA512 74509b979d71c1aa21734555022c056b4ab508e01e715d469b0021704654cc27db91ce41266bb567b62d5cfafe0f92d1c0fda67f917b5198b0326713240c2e77
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..11f7f2090
--- /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.67.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..28c878dc4
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/align
+ REF boost-1.67.0
+ SHA512 4dfbe372e977787067b7d270bd54f66919e48620300552f76ec3075e02e4514214d3bd8b5ff83599b7f277a8cafa95e550620231bfe366f38aa26ee51c6ef942
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..c420de0d9
--- /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.67.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..a5fbf5279
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/any
+ REF boost-1.67.0
+ SHA512 1fd58fdd94cb08078f77d9131568255f35afb63e52a66379d14b35d5d9572f97468fc8a70b966d2c13b28149ccc8659ec0ba70c3cbda62ae08b8f8f1961c15e4
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..429743ad5
--- /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.67.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..e0245f551
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/array
+ REF boost-1.67.0
+ SHA512 db8ae6ffa7b29405d3e140acc22dd5bba9c7eade435fa2235b4c54e1c45c1bb28b927e4168ce4811a0206b83fe99580feffc6ae36a8c6cf99f6b13a2eb0682cd
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..2fdc3dc0a
--- /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.67.0-1
+Build-Depends: boost-coroutine (!uwp), boost-date-time, boost-regex, boost-system, boost-vcpkg-helpers, openssl
+Description: Boost asio module
diff --git a/ports/boost-asio/portfile.cmake b/ports/boost-asio/portfile.cmake
new file mode 100644
index 000000000..de750d6d3
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/asio
+ REF boost-1.67.0
+ SHA512 b7497608afa49580eeb9a74feefc624eb66a3e6db21f2a65291ccb287fe60dc8d923a9143bc10e73b8508ec2ef094e6caf2ef96528790c5324b6aceced55f29f
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..701ae791f
--- /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.67.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..d37ed3bee
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/assert
+ REF boost-1.67.0
+ SHA512 e0559f543bffc1acd6a95bf54978a29eff42c6e8c5f825a7b93cb652a5260bcfd5eb1a09b2859e9a3621c3438e7670e4e4132735acdce4d43608cfdf426e5444
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..1f3046320
--- /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.67.0
+Build-Depends: boost-array, boost-config, boost-detail, boost-mpl, boost-preprocessor, boost-ptr-container, boost-range, boost-static-assert, boost-throw-exception, 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..a8b01985b
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/assign
+ REF boost-1.67.0
+ SHA512 e7fd39fc4bcf7cc97c3f987a2cc7434c51d23fe47dbd480ac9203209c61db0883b479582adcfdef22b9f007df3467b43da72bef8b186ea8c5883a85013394dd2
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..488cbe7de
--- /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.67.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-integer, boost-modular-build-helper, 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..12f253805
--- /dev/null
+++ b/ports/boost-atomic/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/atomic
+ REF boost-1.67.0
+ SHA512 4a4ab037e17c6c2a5a1ae5acb880392f863daa4cc87ca22349d9da565b229d68ce1befe96d7457778dddd40afb95266d6cb45552a46d9679f7bc935e8fb16b85
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..867f09008
--- /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.67.0
+Build-Depends: boost-asio, boost-assert, boost-bind, 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..355d5bc3e
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/beast
+ REF boost-1.67.0
+ SHA512 7530553985c8beee0b24b1ba77b8c6e2279315c74c20f8d6d2f2028fb6fed6c80f81eacb8a2de6fce651fcb6bf0c9d67f65234cb2e1fd433e0f6ceda1566e5b6
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..9bffc6bbc
--- /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.67.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..a9b8e0e12
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/bimap
+ REF boost-1.67.0
+ SHA512 c142c149fcfd0a33e130779a0a9f9be41d077703137b6537bfc8c8ed7ff9031fd8e196f076791e00450a286c1ace56979ee7a0c59348f304f2d41daf12aba355
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..bdc97f096
--- /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.67.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..e55b91055
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/bind
+ REF boost-1.67.0
+ SHA512 4172a426fad408f06f7e36f90396158b8fb345ff7b4147ec3471771d465335c9b01f7e7dda040c842684a5c6eef596ea4c8f7b803489fbddfb016e48e3fcf8fd
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..678914811
--- /dev/null
+++ b/ports/boost-build/CONTROL
@@ -0,0 +1,3 @@
+Source: boost-build
+Version: 1.67.0
+Description: Boost.Build
diff --git a/ports/boost-build/portfile.cmake b/ports/boost-build/portfile.cmake
new file mode 100644
index 000000000..dfd507997
--- /dev/null
+++ b/ports/boost-build/portfile.cmake
@@ -0,0 +1,64 @@
+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()
+elseif(CMAKE_HOST_WIN32 AND VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ return()
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/build
+ REF boost-1.67.0
+ SHA512 93aa3f0c76245fefe2ceabde9c287e7738f79cdab71eeb42ba426f06e7846b5da5c00fc7581d7f31135687e10660521d34c7ffb1ce7299b70d7330a81b0e5acc
+ HEAD_REF master
+)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://raw.githubusercontent.com/boostorg/boost/boost-1.67.0/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.67.0/boostcpp.jam"
+ FILENAME "boost-1.67.0-boostcpp.jam"
+ SHA512 4d887b05b4873e651fd9bc20f04fc072c7d801fd50445c989517cd39c3a8aa132ed46c407fb0efb35825fc0fc1035393d5ac0da5922be2c120cf2bfff952b3bc
+)
+
+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)
+
+# 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}")
+
+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...")
+if(CMAKE_HOST_WIN32)
+ 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}
+ )
+else()
+ vcpkg_execute_required_process(
+ COMMAND "${CURRENT_PACKAGES_DIR}/tools/boost-build/bootstrap.sh"
+ WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/boost-build
+ LOGNAME bootstrap-${TARGET_TRIPLET}
+ )
+endif()
diff --git a/ports/boost-callable-traits/CONTROL b/ports/boost-callable-traits/CONTROL
new file mode 100644
index 000000000..4951e77c5
--- /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.67.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..7d262945f
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/callable_traits
+ REF boost-1.67.0
+ SHA512 5a6dedd5b8c4f57d4e896dbd963927459a42cc2488dd09628b5cc484327d21b32d7f5f2d976a55b4a62783faa4688b6f020983030bfc1f4307acf7f66b179fbc
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..529526653
--- /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.67.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-integer, boost-modular-build-helper, 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..2918d3e9d
--- /dev/null
+++ b/ports/boost-chrono/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/chrono
+ REF boost-1.67.0
+ SHA512 ce86585c30b7500dd9f75074325428b57278e5bd88e6accbee235477ff73a0056fffae40ec0d88bcd28bfa59c4b37f290a618dc5af684dc6fc89302358d5d049
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..53c0acf58
--- /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.67.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..ad1753f8e
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/circular_buffer
+ REF boost-1.67.0
+ SHA512 1c1f085f81def77135b95fd3255ef0280c84c7f899b632b91c28bdc33dcfff8eaef3f9f233a356499756305a11c4a33022b72a46b990ec56db73ac4036711c45
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..3379e76da
--- /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.67.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..41f9b81fb
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/compatibility
+ REF boost-1.67.0
+ SHA512 d8733176ab4d208d5d44fe2a14c73d0309f62be5c2b9b9f50558c44c034c4f727260787185696bbaf5051b359bb14435cdc467644251e5d67b0b945d8f3b84a1
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..094eae8b6
--- /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.67.0
+Build-Depends: boost-algorithm, boost-array, boost-assert, boost-chrono, boost-config, boost-core, boost-filesystem (!uwp), 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..a31f9d897
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/compute
+ REF boost-1.67.0
+ SHA512 d7f470eb2dcf96198d68d61edf8d53491819f8e29452f80e4140e34a11e044ecd45cfdbcd28cc29da2e905c6f324872704d4a834c62242050a0d5fc46deda029
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..c5f814b20
--- /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.67.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..fae7c074c
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/concept_check
+ REF boost-1.67.0
+ SHA512 82b67cf07b455b4775bc10a872d3b181af6bf689c7b3cd14160da9434965607840dd200a33f9286cde6c8aabad13a0af863c584d93eb1510bfb8a099d0169076
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..ba249ccb3
--- /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.67.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..0e705c2b7
--- /dev/null
+++ b/ports/boost-config/portfile.cmake
@@ -0,0 +1,21 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/config
+ REF boost-1.67.0
+ SHA512 517dc632e009c052f7d594c715342a2d94a95e0bcf466c3e3fbab1de38b7314846733f98e7010c386a5bab81d365fb6a08be04d21bee8c93450df97c53a12791
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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()
+file(COPY ${SOURCE_PATH}/checks DESTINATION ${CURRENT_PACKAGES_DIR}/share/boost-config)
diff --git a/ports/boost-container-hash/CONTROL b/ports/boost-container-hash/CONTROL
new file mode 100644
index 000000000..1e50b4400
--- /dev/null
+++ b/ports/boost-container-hash/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-container-hash
+Version: 1.67.0
+Build-Depends: boost-assert, boost-compatibility, boost-config, boost-core, boost-detail, boost-integer, boost-static-assert, boost-type-traits, boost-vcpkg-helpers
+Description: Boost container_hash module
diff --git a/ports/boost-container-hash/portfile.cmake b/ports/boost-container-hash/portfile.cmake
new file mode 100644
index 000000000..c9692bd76
--- /dev/null
+++ b/ports/boost-container-hash/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/container_hash
+ REF boost-1.67.0
+ SHA512 6d9916c1ad2483c6877ecf5141c724319a9d65b672ad1c0d7cf5ee396755788cee78955b8cd4a1bf5f5351c68d78b0cc8a4993c70379639eb1a85cae940c06f3
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-container/CONTROL b/ports/boost-container/CONTROL
new file mode 100644
index 000000000..bd2afdfc1
--- /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.67.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-core, boost-functional, boost-integer, boost-intrusive, boost-modular-build-helper, 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..58ab998b4
--- /dev/null
+++ b/ports/boost-container/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/container
+ REF boost-1.67.0
+ SHA512 559479466cf75ee7ce8f88d1c465f9c375722c954f2a833e842c732ba3dfc70bd30ae10e42e11afc043edc52767cddcf1f925b3c88f9d2c026f3e422ababd397
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..5797590fe
--- /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.67.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-integer, boost-modular-build-helper, 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..ecdfe4d69
--- /dev/null
+++ b/ports/boost-context/portfile.cmake
@@ -0,0 +1,21 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/context
+ REF boost-1.67.0
+ SHA512 4d6f7c0211c6941c8089d844b4ceae45322c2089ce41c029a21ef9b4fabdc0030a0c99fcc6c6be43d10372a171726b03a62aecae0241b8f2427439a2a283c306
+ HEAD_REF master
+)
+
+file(READ "${SOURCE_PATH}/build/Jamfile.v2" _contents)
+string(REPLACE "import ../../config/checks/config" "import config/checks/config" _contents "${_contents}")
+file(WRITE "${SOURCE_PATH}/build/Jamfile.v2" "${_contents}")
+file(COPY "${CURRENT_INSTALLED_DIR}/share/boost-config/checks" DESTINATION "${SOURCE_PATH}/build/config")
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-contract/CONTROL b/ports/boost-contract/CONTROL
new file mode 100644
index 000000000..b881538b1
--- /dev/null
+++ b/ports/boost-contract/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-contract
+Version: 1.67.0
+Build-Depends: boost-any, boost-assert, boost-build, boost-config, boost-core, boost-detail, boost-exception, boost-function, boost-function-types, boost-modular-build-helper, boost-mpl, boost-optional, boost-preprocessor, boost-smart-ptr, boost-static-assert, boost-thread (!uwp), boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost contract module
diff --git a/ports/boost-contract/portfile.cmake b/ports/boost-contract/portfile.cmake
new file mode 100644
index 000000000..a83fe112d
--- /dev/null
+++ b/ports/boost-contract/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/contract
+ REF boost-1.67.0
+ SHA512 f0d069773d9c152be01ef803f05f134ee85190f44eec3147b8d9c025b7bf21f8b674141add0e249b0d8bb66b8d5d24f4f0e2d5b6e838ea72e38d3c64aa76c436
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..516434726
--- /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.67.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..067f58c66
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/conversion
+ REF boost-1.67.0
+ SHA512 6a8bdcec46a08b6b29a9288c24e6dd868c694ebd33ae8062c8ee9784be91d12031cda27841ea9f6212cdb8f0e9b9b21d68ccb96c3d38011cad5c93bfc62a568d
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..807fe0380
--- /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.67.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..693a9178d
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/convert
+ REF boost-1.67.0
+ SHA512 c51909030b2263a7f837e3732824d75b2fdf8b585c560f58e90ca8d2e6e3c48584cdc52e70f1058ef1e7fbe66085abd6053484025d14fb26201beddcf89c91ff
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..2a765e76f
--- /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.67.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..29a2b6a1f
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/core
+ REF boost-1.67.0
+ SHA512 3b00c5893012e420c0faf6de3b43c0c4ae4645ced19b7f10403c6a7cd194954df7a4462999ca78226b29858848690223657e4eef9b6cf36d92828d5642057381
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..6a0a4a69e
--- /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.67.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-context (!uwp), boost-detail, boost-exception, boost-integer, boost-modular-build-helper, boost-move, boost-range, boost-system, boost-thread (!uwp), 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..4b0e88cd1
--- /dev/null
+++ b/ports/boost-coroutine/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/coroutine
+ REF boost-1.67.0
+ SHA512 c636fc88a981d983f29cf5721c056d4c2cedbd48fe54d0aa4f2069ccb2c7438ee661167ff87298c22d7d84f6c61b1dd677d1ea91733e5e8fb04f7033d1559f63
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..b9701bcb1
--- /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.67.0
+Build-Depends: boost-assert, boost-config, boost-context (!uwp), 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..55d637732
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/coroutine2
+ REF boost-1.67.0
+ SHA512 9ff6607abb4006a503da52915d2f8f653d68a64fd0501962eee49393229be7d9fa35f0f4564306413271f08d33317e55475c0789e36639a178044f1424215097
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..2c51d0629
--- /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.67.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..a045eedee
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/crc
+ REF boost-1.67.0
+ SHA512 9168aed67125e955abd8e689bbbcb780adc16345447e1b781344b13d66827ab24ad2af038e10153c64bc458b66cf2cfe2961ddb22a3c494a86429dab60349a18
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..89af5c17e
--- /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.67.0
+Build-Depends: boost-algorithm, boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-detail, boost-integer, boost-io, boost-lexical-cast, boost-math, boost-modular-build-helper, boost-mpl, boost-numeric-conversion, 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..fd5ce947d
--- /dev/null
+++ b/ports/boost-date-time/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/date_time
+ REF boost-1.67.0
+ SHA512 e164bc45bb7e4836521b31cb75a0fa3e960d0bdd0c7dabc4f8f457056c54b54bbd06f44a934aa5c7f2ee680f2f994b9fba47a0e460287c8e2d22b49450fc0872
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..ab5e1efd3
--- /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.67.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..93fe10eb1
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/detail
+ REF boost-1.67.0
+ SHA512 3746e61719cee4e7307677633edf170f8824b8fbd9aa7f159c9ff1feac662fc73f9a4bbe06fad9d9c5fbe356d6ec398d53223ddb7d85c01f906fe698f217f8b4
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..a3ea6717d
--- /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.67.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..8115c4d8b
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/disjoint_sets
+ REF boost-1.67.0
+ SHA512 cc792b79935983656b40785520e3eef9b578a69fcc3c54b3ba24d60a8a36fccc86722dfc4ea621aec727d6c73b22586dbd38f253293dc46730cc418f6832bc33
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..f5b9f1b63
--- /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.67.0
+Build-Depends: boost-config, boost-core, boost-filesystem (!uwp), 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-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..51ce40f96
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/dll
+ REF boost-1.67.0
+ SHA512 bf8bb5e422abd2cded6aa1181570db487f2db786ce8261ed1816eae7e6a8386795f91d8c5ded981a691c19d82a5bffb2aabfe6f5c95ceccc6e22de35c854b21c
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..7910a4010
--- /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.67.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..a612a4a7e
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/dynamic_bitset
+ REF boost-1.67.0
+ SHA512 242c7f79a50c98357017bfd09a3d2b27b2a9f1f8e12518eb497bd684ac9cf2dd6afdffb417a135a3648e40f4efb10c0f45703cff302212b8bdcf35ab1428955f
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..80aff90ad
--- /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.67.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..18ff7dfaa
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/endian
+ REF boost-1.67.0
+ SHA512 198cb5eb9b9f9a4ca6bd069c79f9222e748248d7f7f8231ab9b288334f3f77c37b398abc5d097463a4ce69b4f0de209f247d5f15b1ccdd0fcbf036009ddd73ad
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..0a64b7cb9
--- /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.67.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-core, boost-modular-build-helper, 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..19c6c2058
--- /dev/null
+++ b/ports/boost-exception/portfile.cmake
@@ -0,0 +1,19 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/exception
+ REF boost-1.67.0
+ SHA512 b5b27177ea5e434b7d8898b281a43ad1e74b02ce80b9cc184b34bebc3d43e39fe72b84003096f320b2fade1d0cfaa0a56d0a228fd96782cdd32c2fb143b78ae2
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..1e200489f
--- /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.67.0
+Build-Depends: boost-algorithm, boost-assert, boost-build, boost-config, boost-context (!uwp), boost-core, boost-detail, boost-filesystem (!uwp), boost-format, boost-intrusive, boost-modular-build-helper, 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..244192dca
--- /dev/null
+++ b/ports/boost-fiber/portfile.cmake
@@ -0,0 +1,21 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/fiber
+ REF boost-1.67.0
+ SHA512 2f29021b781a853fb0b00cb7a6e0a541f17d71af4f33e9a47fd875e06d3073e703dfba5cdc7a349b735a1083eff5039ebb227204f7e56f4ad949cafc485095b0
+ HEAD_REF master
+)
+
+file(READ "${SOURCE_PATH}/build/Jamfile.v2" _contents)
+string(REPLACE "import ../../config/checks/config" "import config/checks/config" _contents "${_contents}")
+file(WRITE "${SOURCE_PATH}/build/Jamfile.v2" "${_contents}")
+file(COPY "${CURRENT_INSTALLED_DIR}/share/boost-config/checks" DESTINATION "${SOURCE_PATH}/build/config")
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..503a4af37
--- /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.67.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-functional, boost-integer, boost-io, boost-iterator, boost-modular-build-helper, 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..c80609e37
--- /dev/null
+++ b/ports/boost-filesystem/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/filesystem
+ REF boost-1.67.0
+ SHA512 a81dbf5dcf1b7bde572b02276ee25f78c5673d64aee8b5f864e6b2e04f29cdbf8ecd469b1f039bcda3b490372d3387121a896bf7faf30f767f63c107a1cf581d
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..49feb377c
--- /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.67.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..ab0e36ed3
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/flyweight
+ REF boost-1.67.0
+ SHA512 eec64c8c0d473e6bb07968c8cb2dd9c12788a72008d59c8b53b14ea15ada18e740c518df6bcece1cecd13f9511898c69e00693a769404d4e51e2f7efb6c00754
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..72cc98a56
--- /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.67.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..59977a213
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/foreach
+ REF boost-1.67.0
+ SHA512 67cce17f58564a1ab09f85f9da3c73135dab2171be9487723e69d1bf10cb1abef2aae3747d39ca605510505510943a114d7637d49dd5f3b097c191b4993052b5
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..0b8cf858d
--- /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.67.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..d88559d64
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/format
+ REF boost-1.67.0
+ SHA512 31d355d0986f18f32373a45ee6a5d4d8f688dcc3bd13fdf388dd77166459871deb33bc7ecc9dbbc46fcf546ba3ed8a475c5f4fdcf6377af320ec18d15a9a35d4
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..bad8d7e56
--- /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.67.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..ee327ef33
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/function_types
+ REF boost-1.67.0
+ SHA512 843c87d527615c70524cd537252619187aa8088aa5e7f46bffa7d1bd75ba8852901ee89a15490ea90b0be331712d0e8b4db369f9aede83c150b7201b430f0adc
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..c9b474fd9
--- /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.67.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..b8c0a6841
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/function
+ REF boost-1.67.0
+ SHA512 8484b7bcab099a0c96dc021a0a33551ecb0b56fee4bbc6c5a43becc0a82f307f3836204857bfc45aa2db255c7faf61831e8a46f537ebf9bd5730a408c7103c7c
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..7b5b90be4
--- /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.67.0
+Build-Depends: boost-config, boost-mpl, 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..89ac3b17a
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/functional
+ REF boost-1.67.0
+ SHA512 05f8149975166b68a32e0e98b08b91e41b19d2304416afd62dfceaabf76323ee4b711aedc0e5379520d9e4decaeead1e6b8121737732f524d31664a3777670ba
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..62c087b14
--- /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.67.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..164c4f70d
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/fusion
+ REF boost-1.67.0
+ SHA512 2ac1af4f1a9aa9b90fb7057a8133e668207225a46e23c5ec1e65020b8a63c6daeabbf799f0b7aa9946fc5f9dded1003e00c68645363fa9e15014f2af7ea1498b
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..52879d024
--- /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.67.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..9b63741e9
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/geometry
+ REF boost-1.67.0
+ SHA512 25a2a758804597054442747f9a3288989aee92e42212b1837562d3c629aa1ed0c210e86cb83f4501f7e4280550b194a727ef26ed222ef627a8d260549781bcd3
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..94770b5ee
--- /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.67.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..94e470ac9
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/gil
+ REF boost-1.67.0
+ SHA512 a40b89a97444d62ed1c6ba2c4ccf6442df9d8afddd7a9af8eacb0a587eb2952faabbd608ebd17030c10a3ce77f32dc6d4bed846fa78a0f57f4b992c0333a2d33
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..e7435bd2a
--- /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.67.0
+Build-Depends: boost-assert, boost-compatibility, boost-config, boost-detail, boost-dynamic-bitset, boost-function, boost-functional, boost-graph, boost-iterator, boost-lexical-cast, boost-math, 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..71b44bef2
--- /dev/null
+++ b/ports/boost-graph-parallel/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/graph_parallel
+ REF boost-1.67.0
+ SHA512 f83c9bfb65c519e545657bd2e2752b37ce45d5e21877dd8a8fc36c895c5612cf0284508188be6b46719a5a5b771d5ad1e0fcb00a3082f7f9c5fb0788f2b9d560
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..a3345ffa0
--- /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.67.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-modular-build-helper, 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 (!uwp), 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..75048b8b6
--- /dev/null
+++ b/ports/boost-graph/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/graph
+ REF boost-1.67.0
+ SHA512 afcfa95744da4f4ceefced30601d64a40fa600e3d41311f6140588d8a23e54fcb05226c381fcef0b8b992d61b95a915c867e50221c5290b6c54b915546b3935e
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-hana-msvc/CONTROL b/ports/boost-hana-msvc/CONTROL
new file mode 100644
index 000000000..0d2f178f8
--- /dev/null
+++ b/ports/boost-hana-msvc/CONTROL
@@ -0,0 +1,4 @@
+Source: boost-hana-msvc
+Version: 1.67.0-1
+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-msvc/portfile.cmake b/ports/boost-hana-msvc/portfile.cmake
new file mode 100644
index 000000000..c56926499
--- /dev/null
+++ b/ports/boost-hana-msvc/portfile.cmake
@@ -0,0 +1,12 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO xiangfan-ms/hana
+ REF caa985795ab6c4b2c7bcf1458ccbb6ded65c15cb
+ SHA512 7ed65bda17042c42f7a76d88e66df61155800066119f6b256e20cf04dcd18d46584d3e44ad6555e9a17d9c0bf85fbf173ae6079f5a4a878341f959c855ebee6b
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..a64771061
--- /dev/null
+++ b/ports/boost-hana/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 but has edits
+Source: boost-hana
+Version: 1.67.0-1
+Build-Depends: boost-config, boost-core, boost-fusion, boost-mpl, boost-tuple, boost-vcpkg-helpers, boost-hana-msvc (windows), boost-hana-msvc (uwp)
+Description: Boost hana module
diff --git a/ports/boost-hana/portfile.cmake b/ports/boost-hana/portfile.cmake
new file mode 100644
index 000000000..ef2bc9bb3
--- /dev/null
+++ b/ports/boost-hana/portfile.cmake
@@ -0,0 +1,20 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 but has edits
+
+include(vcpkg_common_functions)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR NOT VCPKG_CMAKE_SYSTEM_NAME)
+ message("The current MSVC releases can't compile boost hana yet.")
+ message("Use a fork from boost 1.67 which has source workarounds instead.")
+ set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+else()
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/hana
+ REF boost-1.67.0
+ SHA512 45e8b9da8c09bd6cb74f52068f0e4af43f40126227ad5c557e111c8edce2e8857f5a11c6ecc6c57833041a38d9355a7c0263f9b84cc335725c994a9cb029411b
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
+endif()
diff --git a/ports/boost-heap/CONTROL b/ports/boost-heap/CONTROL
new file mode 100644
index 000000000..5724d68e8
--- /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.67.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..bdccbce0d
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/heap
+ REF boost-1.67.0
+ SHA512 e8c511c8e1cdf0f9f20cf5923657f5a6dff2348a50570b0590444764106030bb40d7efa6e2087818ca71a11bf5fe62642ea08a4a8d7b2b25051f68a46c383a6d
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-hof/CONTROL b/ports/boost-hof/CONTROL
new file mode 100644
index 000000000..886630ca5
--- /dev/null
+++ b/ports/boost-hof/CONTROL
@@ -0,0 +1,5 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost-hof
+Version: 1.67.0
+Build-Depends: boost-vcpkg-helpers
+Description: Boost hof module
diff --git a/ports/boost-hof/portfile.cmake b/ports/boost-hof/portfile.cmake
new file mode 100644
index 000000000..59fc83381
--- /dev/null
+++ b/ports/boost-hof/portfile.cmake
@@ -0,0 +1,14 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/hof
+ REF boost-1.67.0
+ SHA512 797240bb1a3ac0ed5335dd858db7816f7f07ce99794e5d7b16b08de82ae1d80e7de9f029673569d9f880cc616037299d50571ad7ffb94e30b2d7b08392b4d1c3
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..2923589ef
--- /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.67.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..087769896
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/icl
+ REF boost-1.67.0
+ SHA512 1234057200f4329631041a6c1bc644e3096cb24df3e3b3c19bddbe9915e2b2e27148640666befa61e165e6143f47f83280e3a89f84b70c93fa07e6ab38d7c854
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..adde53632
--- /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.67.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..17bd4fbcb
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/integer
+ REF boost-1.67.0
+ SHA512 bac11eb68d0f0a29919df25e29352daca3f24ab4c183f2f052fbbe1e4c93ac15657b24f9bd450b31910b33c68234581e834d51651585bbba7e69b10646ab224f
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..72f7f45a6
--- /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.67.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..b46d0dd91
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/interprocess
+ REF boost-1.67.0
+ SHA512 ea4ece14b396220549bd3887330cd4a49149f303c936c03e27e232683235f62f759f44f0a473e24d3466bbadfd785633589caacaf620f861cddf03750c270467
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..c9f43b7d1
--- /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.67.0
+Build-Depends: boost-compatibility, boost-config, boost-logic (!uwp), 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..373fe4777
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/interval
+ REF boost-1.67.0
+ SHA512 fb02438e6e29ab3ce21fbb87cd8562d278f9f352b3964cb7a62a6f0ea0b38567af5bfd12973cdd48c6235283b0b7b6ef9ecfd9c9a130b14c22a9764aec6c2102
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..d7d7ae3f0
--- /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.67.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..73f5d7673
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/intrusive
+ REF boost-1.67.0
+ SHA512 9181b1c7ea651c4c8aa0ae226b2a35cb65521da105249b12af899e294ed1f20868002846a3f200b40d51c795c0a6e6b3b2b2f41ea59e817a842cb09aadcf9f9e
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..26764cae4
--- /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.67.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..729e22175
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/io
+ REF boost-1.67.0
+ SHA512 a0549634a0d2afe1646437dab5b018a139f9e1b98fb3cb2a5730262700d64aa54a87a9676901ac192676fc5ee4b61aee11205f20acaa0da5746844ac292a913a
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-iostreams/CMakeLists.txt b/ports/boost-iostreams/CMakeLists.txt
new file mode 100644
index 000000000..17e0af6de
--- /dev/null
+++ b/ports/boost-iostreams/CMakeLists.txt
@@ -0,0 +1,37 @@
+cmake_minimum_required(VERSION 3.5)
+project(boost-iostreams)
+
+if(BUILD_SHARED_LIBS)
+ add_definitions(-DBOOST_IOSTREAMS_DYN_LINK=1)
+endif()
+add_definitions(
+ -DBOOST_ALL_NO_LIB=1
+ -DBOOST_IOSTREAMS_USE_DEPRECATED
+)
+include_directories(include)
+file(GLOB SOURCES src/*.cpp)
+add_library(boost_iostreams ${SOURCES})
+
+if(MSVC)
+ set_property(TARGET boost_iostreams PROPERTY OUTPUT_NAME_RELEASE boost_iostreams-vc140-mt)
+ set_property(TARGET boost_iostreams PROPERTY OUTPUT_NAME_DEBUG boost_iostreams-vc140-mt-gd)
+
+ set_property(TARGET boost_iostreams PROPERTY RUNTIME_OUTPUT_NAME_RELEASE boost_iostreams-vc141-mt-x32-1_67)
+ set_property(TARGET boost_iostreams PROPERTY RUNTIME_OUTPUT_NAME_DEBUG boost_iostreams-vc141-mt-gd-x32-1_67)
+endif()
+
+find_package(ZLIB REQUIRED)
+target_link_libraries(boost_iostreams PRIVATE ZLIB::ZLIB)
+
+find_package(BZip2 REQUIRED)
+target_link_libraries(boost_iostreams PRIVATE BZip2::BZip2)
+
+find_package(LibLZMA REQUIRED)
+target_include_directories(boost_iostreams PRIVATE ${LIBLZMA_INCLUDE_DIRS})
+target_link_libraries(boost_iostreams PRIVATE ${LIBLZMA_LIBRARIES})
+
+install(TARGETS boost_iostreams
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
diff --git a/ports/boost-iostreams/CONTROL b/ports/boost-iostreams/CONTROL
new file mode 100644
index 000000000..249031a5a
--- /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.67.0
+Build-Depends: boost-assert, boost-bind, boost-build, boost-config, boost-core, boost-detail, boost-function, boost-integer, boost-iterator, boost-modular-build-helper, 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, liblzma
+Description: Boost iostreams module
diff --git a/ports/boost-iostreams/portfile.cmake b/ports/boost-iostreams/portfile.cmake
new file mode 100644
index 000000000..c929f9ed7
--- /dev/null
+++ b/ports/boost-iostreams/portfile.cmake
@@ -0,0 +1,30 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/iostreams
+ REF boost-1.67.0
+ SHA512 73fada0b6e236e0b86f28d8cf75e71dfb6b6a84622986cd72f39de3a310442e6122c91d22ba95bd29381dd559f5cac52a1e28cf97e7e8a6f0c70ccc4f38ceeba
+ HEAD_REF master
+)
+
+vcpkg_download_distfile(LICENSE
+ URLS "https://raw.githubusercontent.com/boostorg/boost/boost-1.67.0/LICENSE_1_0.txt"
+ FILENAME "boost_LICENSE_1_0.txt"
+ SHA512 d6078467835dba8932314c1c1e945569a64b065474d7aced27c9a7acc391d52e9f234138ed9f1aa9cd576f25f12f557e0b733c14891d42c16ecdc4a7bd4d60b8
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(COPY ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR})
+file(INSTALL ${LICENSE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/boost-iostreams RENAME copyright)
diff --git a/ports/boost-iterator/CONTROL b/ports/boost-iterator/CONTROL
new file mode 100644
index 000000000..f6acb2afa
--- /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.67.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..e2163a620
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/iterator
+ REF boost-1.67.0
+ SHA512 245a63416ae578b494328798d578fe3f253e339abd10c047a14137181759b99d02a9eef4fa4872b794154378a1b80b12fd502849d67b8b13012e6b08b66b650e
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..a1996dfbf
--- /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.67.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..b14d46c97
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/lambda
+ REF boost-1.67.0
+ SHA512 d95b3df3321639c4ced7db0fa10e5f204d20961a95d185080a40477520a591b5806974ec7cb28256bbb8b58e2f635cac60fff47eefabe29c5c3fabda211e276f
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..68b6e1e05
--- /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.67.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..877a8cf84
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/lexical_cast
+ REF boost-1.67.0
+ SHA512 b3c0c4e94265784001d8b9fc317a2bafe4c83aede9311a7172a76b1c0bf47cc811f7963e9580d0d3f0527f16531abb204b9201c0cc611dd322bcfce2671fa54d
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..415cba13d
--- /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.67.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..95d8334f6
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/local_function
+ REF boost-1.67.0
+ SHA512 dfe717ff4fd46a44422162fa00289a1f57aaed42215d238b4219d493bf4945564e1d6103599c0c3d90ed196eff2dc7ad6f0949e284ddfc9c6f400620b63ebaf8
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..eca61edd4
--- /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.67.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-function, boost-integer, boost-iterator, boost-modular-build-helper, boost-smart-ptr, boost-static-assert, boost-thread (!uwp), boost-type-traits, boost-unordered, boost-vcpkg-helpers, libiconv (!uwp&!windows)
+Description: Boost locale module
+
+Feature: icu
+Description: ICU backend for Boost.Locale
+Build-Depends: icu
diff --git a/ports/boost-locale/cmake-fragment.cmake b/ports/boost-locale/cmake-fragment.cmake
new file mode 100644
index 000000000..11d3ed70e
--- /dev/null
+++ b/ports/boost-locale/cmake-fragment.cmake
@@ -0,0 +1,10 @@
+find_library(LIBICONV_LIBRARY iconv)
+get_filename_component(LIBICONV_DIR "${LIBICONV_LIBRARY}" DIRECTORY)
+
+list(APPEND B2_OPTIONS
+ boost.locale.iconv=on
+ boost.locale.posix=on
+ /boost/locale//boost_locale
+ boost.locale.icu=off
+ -sICONV_PATH=${LIBICONV_LIBRARY}
+)
diff --git a/ports/boost-locale/portfile.cmake b/ports/boost-locale/portfile.cmake
new file mode 100644
index 000000000..c4dbf9229
--- /dev/null
+++ b/ports/boost-locale/portfile.cmake
@@ -0,0 +1,30 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/locale
+ REF boost-1.67.0
+ SHA512 220ed43884722e7a342b8fa5010e8659ccebcd106907c38052b411d710f110924a2b4622cb10e1302ad0553cf350430f02c63e3e66d45bb38b47d7eb022d01d9
+ HEAD_REF master
+)
+
+if("icu" IN_LIST FEATURES)
+ set(BOOST_LOCALE_ICU on)
+else()
+ set(BOOST_LOCALE_ICU off)
+endif()
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(
+ SOURCE_PATH ${SOURCE_PATH}
+ BOOST_CMAKE_FRAGMENT "${CMAKE_CURRENT_LIST_DIR}/cmake-fragment.cmake"
+ OPTIONS
+ boost.locale.iconv=off
+ boost.locale.posix=off
+ /boost/locale//boost_locale
+ boost.locale.icu=${BOOST_LOCALE_ICU}
+)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..ca9746fdc
--- /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.67.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..af6f80454
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/lockfree
+ REF boost-1.67.0
+ SHA512 d4287c5782191469a077f7cebfa64d72733f186fe627e9fa97a3856168423f9f606168bb67b47814ef2047f0b7434c02dc6ff93ba3f817923d3dff22f46360f9
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..6f4116b03
--- /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.67.0
+Build-Depends: boost-align, boost-array, boost-asio, boost-assert, boost-atomic, boost-bind, boost-build, boost-compatibility, boost-config, boost-container, boost-core, boost-date-time, boost-detail, boost-exception, boost-filesystem (!uwp), boost-function-types, boost-fusion, boost-integer, boost-interprocess, boost-intrusive, boost-io, boost-iterator, boost-lexical-cast, boost-locale (!uwp), boost-math, boost-modular-build-helper, 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 (!uwp), 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..5d9dbb622
--- /dev/null
+++ b/ports/boost-log/portfile.cmake
@@ -0,0 +1,29 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/log
+ REF boost-1.67.0
+ SHA512 68046c749156e11c8c1aa256a54bc89d809b2fa627565051ef09481378cb401eeaec533585f34ce065abb1e416381be536ca19ad972d35b3096e4332d1ffee9d
+ HEAD_REF master
+)
+
+file(READ "${SOURCE_PATH}/build/Jamfile.v2" _contents)
+string(REPLACE "import ../../config/checks/config" "import config/checks/config" _contents "${_contents}")
+string(REPLACE " <conditional>@select-arch-specific-sources" "#<conditional>@select-arch-specific-sources" _contents "${_contents}")
+file(WRITE "${SOURCE_PATH}/build/Jamfile.v2" "${_contents}")
+file(COPY "${CURRENT_INSTALLED_DIR}/share/boost-config/checks" DESTINATION "${SOURCE_PATH}/build/config")
+
+file(READ ${SOURCE_PATH}/build/log-architecture.jam _contents)
+string(REPLACE
+ "\nproject.load [ path.join [ path.make $(here:D) ] ../../config/checks/architecture ] ;"
+ "\nproject.load [ path.join [ path.make $(here:D) ] config/checks/architecture ] ;"
+ _contents "${_contents}")
+file(WRITE ${SOURCE_PATH}/build/log-architecture.jam "${_contents}")
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..32310be7c
--- /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.67.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..fce91a705
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/logic
+ REF boost-1.67.0
+ SHA512 2a82bbfcea9d1a4ed8563374dc8796873b05ab474edebaea9a9e983148c80ce9bd76625d2bf7e40942c328321cf259ddc70f89550f43a4c6c3e36cb7e5cbe569
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..d9cc1cf1a
--- /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.67.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-modular-build-helper, 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..cfeb034fa
--- /dev/null
+++ b/ports/boost-math/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/math
+ REF boost-1.67.0
+ SHA512 7d84aacd9a39daf61f836cf522331ea21b18413b28716a2620fcf49c05b32e0e2f7e14f7bd207fc1df7a6b450356158891ef2576335911b0d6a3f78326eb8c62
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..86ddf75f1
--- /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.67.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..d25238629
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/metaparse
+ REF boost-1.67.0
+ SHA512 d92a78f3dd56083464bb2544427e87c5208d716f509452ada3150fb1beb43caae4dba16daf6626ae0783d1ae0812bbe49be23a638138bccdca873037857ec7a4
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost-modular-build-helper/CMakeLists.txt b/ports/boost-modular-build-helper/CMakeLists.txt
new file mode 100644
index 000000000..dc4d13dd1
--- /dev/null
+++ b/ports/boost-modular-build-helper/CMakeLists.txt
@@ -0,0 +1,134 @@
+cmake_minimum_required(VERSION 3.9)
+project(boost CXX)
+
+find_path(ZLIB_INCLUDE zlib.h)
+find_path(BZIP2_INCLUDE bzlib.h)
+find_path(ICU_PATH include/unicode/utf.h)
+
+set(VCPKG_PLATFORM_TOOLSET external)
+
+set(B2_OPTIONS)
+
+if(DEFINED BOOST_CMAKE_FRAGMENT)
+ include(${BOOST_CMAKE_FRAGMENT})
+endif()
+
+# Add build type specific options
+if(BUILD_SHARED_LIBS)
+ list(APPEND B2_OPTIONS runtime-link=shared)
+ set(LIB_RUNTIME_LINK "shared")
+else()
+ list(APPEND B2_OPTIONS runtime-link=static)
+ set(LIB_RUNTIME_LINK "static")
+endif()
+
+if(BUILD_SHARED_LIBS)
+ list(APPEND B2_OPTIONS link=shared)
+else()
+ list(APPEND B2_OPTIONS link=static)
+endif()
+
+if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ list(APPEND B2_OPTIONS address-model=64)
+else()
+ list(APPEND B2_OPTIONS address-model=32)
+endif()
+
+if(APPLE)
+ list(APPEND B2_OPTIONS target-os=darwin toolset=clang)
+else()
+ list(APPEND B2_OPTIONS target-os=linux toolset=gcc)
+endif()
+
+string(REPLACE " " " <compileflags>" CXXFLAGS "${CMAKE_CXX_FLAGS}")
+#set(CXXFLAGS "${CXXFLAGS} <compileflags>-Wno-error=unused-command-line-argument")
+if(CMAKE_CXX_COMPILER_TARGET)
+ set(CXXFLAGS "${CXXFLAGS} <compileflags>${CMAKE_CXX_COMPILE_OPTIONS_TARGET} <compileflags>${CMAKE_CXX_COMPILER_TARGET}")
+endif()
+if(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN)
+ set(CXXFLAGS "${CXXFLAGS} <compileflags>${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} <compileflags>${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}")
+endif()
+if(CMAKE_SYSROOT AND CMAKE_CXX_COMPILE_OPTIONS_SYSROOT)
+ set(CXXFLAGS "${CXXFLAGS} <compileflags>${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}")
+endif()
+foreach(INCDIR ${CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES})
+ set(CXXFLAGS "${CXXFLAGS} <compileflags>${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}")
+endforeach()
+
+if(APPLE)
+ set(CXXFLAGS "${CXXFLAGS} <compileflags>-D_DARWIN_C_SOURCE")
+endif()
+
+find_library(ZLIB_LIBPATH z)
+list(APPEND B2_OPTIONS
+ -sZLIB_BINARY=z
+ -sZLIB_LIBPATH="${ZLIB_LIBPATH}"
+)
+if(CMAKE_BUILD_TYPE STREQUAL "Release")
+ find_library(BZIP2_LIBPATH bz2)
+ list(APPEND B2_OPTIONS
+ -sBZIP2_BINARY=bz2
+ -sBZIP2_LIBPATH="${BZIP2_LIBPATH}"
+ variant=release
+ )
+elseif(CMAKE_BUILD_TYPE STREQUAL "Debug")
+ find_library(BZIP2_LIBPATH bz2d)
+ list(APPEND B2_OPTIONS
+ -sBZIP2_BINARY=bz2d
+ -sBZIP2_LIBPATH="${BZIP2_LIBPATH}"
+ variant=debug
+ )
+endif()
+
+configure_file(${CMAKE_CURRENT_LIST_DIR}/user-config.jam ${CMAKE_CURRENT_BINARY_DIR}/user-config.jam @ONLY)
+
+set(NUMBER_OF_PROCESSORS 1)
+if(DEFINED ENV{NUMBER_OF_PROCESSORS})
+ set(NUMBER_OF_PROCESSORS $ENV{NUMBER_OF_PROCESSORS})
+elseif(CMAKE_HOST_LINUX)
+ execute_process(
+ COMMAND nproc
+ OUTPUT_VARIABLE NUMBER_OF_PROCESSORS
+ )
+ string(REPLACE "\n" "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}")
+ string(REPLACE " " "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}")
+endif()
+if(NOT NUMBER_OF_PROCESSORS)
+ set(NUMBER_OF_PROCESSORS 1)
+endif()
+
+add_custom_target(boost ALL
+ COMMAND "${B2_EXE}"
+ --user-config=${CMAKE_CURRENT_BINARY_DIR}/user-config.jam
+ --stagedir=${CMAKE_CURRENT_BINARY_DIR}/stage
+ --build-dir=${CMAKE_CURRENT_BINARY_DIR}
+ ${B2_OPTIONS}
+ --layout=system
+ --with-atomic
+ --with-random
+ --with-date_time
+ --with-filesystem
+ --with-system
+ --with-thread
+ --with-chrono
+ -sZLIB_INCLUDE="${ZLIB_INCLUDE}"
+ -sBZIP2_INCLUDE="${BZIP2_INCLUDE}"
+ -sICU_PATH="${ICU_PATH}"
+ -j${NUMBER_OF_PROCESSORS}
+ -sBOOST_ROOT=${BOOST_BUILD_PATH}
+ -sBOOST_BUILD_PATH=${BOOST_BUILD_PATH}
+ --debug-configuration
+ --ignore-site-config
+ --hash
+ -q
+
+ architecture=x86
+ threading=multi
+ threadapi=pthread
+ debug-symbols=on
+ WORKING_DIRECTORY ${SOURCE_PATH}/build
+)
+
+install(
+ CODE "file(GLOB LIBS ${CMAKE_CURRENT_BINARY_DIR}/boost/build/*/*.a)\nif(LIBS)\nfile(INSTALL \${LIBS} DESTINATION \"\${CMAKE_INSTALL_PREFIX}/lib\")\nendif()"
+)
diff --git a/ports/boost-modular-build-helper/CONTROL b/ports/boost-modular-build-helper/CONTROL
new file mode 100644
index 000000000..0ee783390
--- /dev/null
+++ b/ports/boost-modular-build-helper/CONTROL
@@ -0,0 +1,2 @@
+Source: boost-modular-build-helper
+Version: 2018-05-14
diff --git a/ports/boost-modular-build-helper/Jamroot.jam b/ports/boost-modular-build-helper/Jamroot.jam
new file mode 100644
index 000000000..8c24fff86
--- /dev/null
+++ b/ports/boost-modular-build-helper/Jamroot.jam
@@ -0,0 +1,153 @@
+constant BOOST_VERSION : 1.67.0 ;
+constant BOOST_VERSION_ABI_TAG : 1_67 ;
+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_LIB_PREFIX@boost_system@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
+ lib boost_system : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_system@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
+ explicit boost_system ;
+
+ use-project /boost : . ;
+ alias system : boost_system ;
+}
+
+if "@PORT@" != "boost-chrono"
+{
+ use-project /boost/chrono : . ;
+
+ lib boost_chrono : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_chrono@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
+ lib boost_chrono : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_chrono@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
+ explicit boost_chrono ;
+}
+
+if "@PORT@" != "boost-regex"
+{
+ use-project /boost/regex : . ;
+
+ lib boost_regex : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_regex@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
+ lib boost_regex : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_regex@BOOST_LIB_DEBUG_SUFFIX@" <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_LIB_PREFIX@boost_date_time@BOOST_LIB_RELEASE_SUFFIX@" <variant>release -<library>/boost/date_time//boost_date_time ;
+ lib boost_date_time : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_date_time@BOOST_LIB_DEBUG_SUFFIX@" <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_LIB_PREFIX@boost_thread@BOOST_LIB_RELEASE_SUFFIX@" <variant>release : : <library>/boost/date_time//boost_date_time ;
+ lib boost_thread : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_thread@BOOST_LIB_DEBUG_SUFFIX@" <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_LIB_PREFIX@boost_timer@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
+ lib boost_timer : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_timer@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
+ explicit boost_timer ;
+}
+
+if "@PORT@" != "boost-filesystem"
+{
+ use-project /boost/filesystem : . ;
+
+ lib boost_filesystem : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_filesystem@BOOST_LIB_RELEASE_SUFFIX@" <variant>release : : <library>/boost/system//boost_system ;
+ lib boost_filesystem : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_filesystem@BOOST_LIB_DEBUG_SUFFIX@" <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_LIB_PREFIX@boost_atomic@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
+ lib boost_atomic : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_atomic@BOOST_LIB_DEBUG_SUFFIX@" <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_LIB_PREFIX@boost_context@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
+ lib boost_context : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_context@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
+ explicit boost_context ;
+}
+
+if "@PORT@" != "boost-test"
+{
+ use-project /boost/test : . ;
+
+ lib boost_unit_test_framework : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_unit_test_framework@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
+ lib boost_unit_test_framework : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_unit_test_framework@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
+ explicit boost_unit_test_framework ;
+}
+
+if "@PORT@" != "boost-serialization"
+{
+ use-project /boost/serialization : . ;
+
+ lib boost_serialization : : <file>"@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_serialization@BOOST_LIB_RELEASE_SUFFIX@" <variant>release ;
+ lib boost_serialization : : <file>"@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_serialization@BOOST_LIB_DEBUG_SUFFIX@" <variant>debug ;
+ explicit boost_serialization ;
+}
+
+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-modular-build-helper/boost-modular-build.cmake b/ports/boost-modular-build-helper/boost-modular-build.cmake
new file mode 100644
index 000000000..d28762175
--- /dev/null
+++ b/ports/boost-modular-build-helper/boost-modular-build.cmake
@@ -0,0 +1,324 @@
+function(boost_modular_build)
+ cmake_parse_arguments(_bm "" "SOURCE_PATH;REQUIREMENTS;BOOST_CMAKE_FRAGMENT" "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(CMAKE_HOST_WIN32 AND VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ get_filename_component(BOOST_BUILD_PATH "${CURRENT_INSTALLED_DIR}/../x86-windows/tools/boost-build" ABSOLUTE)
+ elseif(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" AND NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ get_filename_component(BOOST_BUILD_PATH "${CURRENT_INSTALLED_DIR}/../x86-windows/tools/boost-build" ABSOLUTE)
+ else()
+ set(BOOST_BUILD_PATH "${CURRENT_INSTALLED_DIR}/tools/boost-build")
+ 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(EXISTS "${BOOST_BUILD_PATH}/b2.exe")
+ set(B2_EXE "${BOOST_BUILD_PATH}/b2.exe")
+ elseif(EXISTS "${BOOST_BUILD_PATH}/b2")
+ set(B2_EXE "${BOOST_BUILD_PATH}/b2")
+ else()
+ message(FATAL_ERROR "Could not find b2 in ${BOOST_BUILD_PATH}")
+ endif()
+
+ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ list(APPEND _bm_OPTIONS windows-api=store)
+ endif()
+
+ set(_bm_DIR ${CURRENT_INSTALLED_DIR}/share/boost-build)
+
+ set(REQUIREMENTS ${_bm_REQUIREMENTS})
+
+ if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(BOOST_LIB_PREFIX)
+ set(BOOST_LIB_RELEASE_SUFFIX -vc140-mt.lib)
+ set(BOOST_LIB_DEBUG_SUFFIX -vc140-mt-gd.lib)
+ else()
+ set(BOOST_LIB_PREFIX lib)
+ set(BOOST_LIB_RELEASE_SUFFIX .a)
+ set(BOOST_LIB_DEBUG_SUFFIX .a)
+ endif()
+
+ if(EXISTS "${_bm_SOURCE_PATH}/build/Jamfile.v2")
+ file(READ ${_bm_SOURCE_PATH}/build/Jamfile.v2 _contents)
+ #string(REPLACE "import ../../predef/check/predef" "import predef/check/predef" _contents "${_contents}")
+ #string(REPLACE "import ../../config/checks/config" "import config/checks/config" _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()
+
+ configure_file(${_bm_DIR}/Jamroot.jam ${_bm_SOURCE_PATH}/Jamroot.jam @ONLY)
+ # if(EXISTS "${CURRENT_INSTALLED_DIR}/share/boost-config/checks")
+ # file(COPY "${CURRENT_INSTALLED_DIR}/share/boost-config/checks" DESTINATION "${_bm_SOURCE_PATH}/build/config")
+ # endif()
+ # if(EXISTS "${CURRENT_INSTALLED_DIR}/share/boost-predef/check")
+ # file(COPY "${CURRENT_INSTALLED_DIR}/share/boost-predef/check" DESTINATION "${_bm_SOURCE_PATH}/build/predef")
+ # endif()
+
+ if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ if(DEFINED _bm_BOOST_CMAKE_FRAGMENT)
+ set(fragment_option "-DBOOST_CMAKE_FRAGMENT=${_bm_BOOST_CMAKE_FRAGMENT}")
+ endif()
+ vcpkg_configure_cmake(
+ SOURCE_PATH ${CURRENT_INSTALLED_DIR}/share/boost-build
+ PREFER_NINJA
+ OPTIONS
+ "-DB2_EXE=${B2_EXE}"
+ "-DSOURCE_PATH=${_bm_SOURCE_PATH}"
+ "-DBOOST_BUILD_PATH=${BOOST_BUILD_PATH}"
+ ${fragment_option}
+ )
+ vcpkg_install_cmake()
+
+ if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/lib)
+ message(FATAL_ERROR "No libraries were produced. This indicates a failure while building the boost library.")
+ endif()
+ return()
+ 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
+ )
+
+ if(DEFINED ENV{NUMBER_OF_PROCESSORS})
+ set(NUMBER_OF_PROCESSORS $ENV{NUMBER_OF_PROCESSORS})
+ else()
+ execute_process(
+ COMMAND nproc
+ OUTPUT_VARIABLE NUMBER_OF_PROCESSORS
+ )
+ string(REPLACE "\n" "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}")
+ string(REPLACE " " "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}")
+ endif()
+
+ ######################
+ # Generate configuration
+ ######################
+ list(APPEND _bm_OPTIONS
+ -j${NUMBER_OF_PROCESSORS}
+ --debug-configuration
+ --debug-building
+ --debug-generators
+ --disable-icu
+ --ignore-site-config
+ --hash
+ -q
+ -sZLIB_INCLUDE="${CURRENT_INSTALLED_DIR}/include"
+ -sBZIP2_INCLUDE="${CURRENT_INSTALLED_DIR}/include"
+ threading=multi
+ )
+ if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ list(APPEND _bm_OPTIONS threadapi=win32)
+ else()
+ list(APPEND _bm_OPTIONS threadapi=pthread)
+ endif()
+ set(_bm_OPTIONS_DBG
+ -sZLIB_BINARY=zlibd
+ -sZLIB_LIBPATH="${CURRENT_INSTALLED_DIR}/debug/lib"
+ -sBZIP2_BINARY=bz2d
+ -sBZIP2_LIBPATH="${CURRENT_INSTALLED_DIR}/debug/lib"
+ )
+
+ set(_bm_OPTIONS_REL
+ -sZLIB_BINARY=zlib
+ -sZLIB_LIBPATH="${CURRENT_INSTALLED_DIR}/lib"
+ -sBZIP2_BINARY=bz2
+ -sBZIP2_LIBPATH="${CURRENT_INSTALLED_DIR}/lib"
+ )
+
+
+ # 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)
+ elseif(VCPKG_PLATFORM_TOOLSET MATCHES "external")
+ list(APPEND _bm_OPTIONS toolset=gcc)
+ else()
+ message(FATAL_ERROR "Unsupported value for VCPKG_PLATFORM_TOOLSET: '${VCPKG_PLATFORM_TOOLSET}'")
+ endif()
+
+ ######################
+ # Perform build + Package
+ ######################
+ 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}
+ ${_bm_OPTIONS_REL}
+ variant=release
+ debug-symbols=on
+ WORKING_DIRECTORY ${_bm_SOURCE_PATH}/build
+ 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}
+ ${_bm_OPTIONS_DBG}
+ variant=debug
+ WORKING_DIRECTORY ${_bm_SOURCE_PATH}/build
+ 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
+ ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/boost/build/*/*.a
+ ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/boost/build/*/*.so
+ )
+ file(COPY ${REL_LIBS}
+ DESTINATION ${CURRENT_PACKAGES_DIR}/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
+ ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/boost/build/*/*.a
+ ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/boost/build/*/*.so
+ )
+ file(COPY ${DBG_LIBS}
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/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 "-1_67" "" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake > 3.10 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()
+
+ vcpkg_copy_pdbs()
+endfunction()
diff --git a/ports/boost-modular-build-helper/nothing.bat b/ports/boost-modular-build-helper/nothing.bat
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/ports/boost-modular-build-helper/nothing.bat
diff --git a/ports/boost-modular-build-helper/portfile.cmake b/ports/boost-modular-build-helper/portfile.cmake
new file mode 100644
index 000000000..6ed367434
--- /dev/null
+++ b/ports/boost-modular-build-helper/portfile.cmake
@@ -0,0 +1,12 @@
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+
+file(
+ COPY
+ ${CMAKE_CURRENT_LIST_DIR}/boost-modular-build.cmake
+ ${CMAKE_CURRENT_LIST_DIR}/Jamroot.jam
+ ${CMAKE_CURRENT_LIST_DIR}/nothing.bat
+ ${CMAKE_CURRENT_LIST_DIR}/user-config.jam
+ ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/share/boost-build
+)
diff --git a/ports/boost-modular-build-helper/user-config.jam b/ports/boost-modular-build-helper/user-config.jam
new file mode 100644
index 000000000..abefc7fae
--- /dev/null
+++ b/ports/boost-modular-build-helper/user-config.jam
@@ -0,0 +1,50 @@
+import toolset ;
+
+if "@VCPKG_PLATFORM_TOOLSET@" != "external"
+{
+ using msvc : : cl.exe :
+ <setup>"@NOTHING_BAT@"
+ @TOOLSET_OPTIONS@
+ ;
+}
+else
+{
+ using gcc : 5.4.1 : @CMAKE_CXX_COMPILER@
+ :
+ <ranlib>@CMAKE_RANLIB@
+ <archiver>@CMAKE_AR@
+ @CXXFLAGS@
+ # MINGW here causes b2 to not run cygpath
+ <flavor>mingw
+ ;
+}
+
+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 ;
+}
+
+if "@PORT@" = "boost-mpi"
+{
+ using mpi : :
+ <library-path>"@CURRENT_INSTALLED_DIR@/lib"
+ <include>"@CURRENT_INSTALLED_DIR@/include"
+ <find-shared-library>msmpi ;
+}
+
+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 : : ;
+
+lib iconv : : <file>"@LIBICONV_LIBRARY@" <link>shared <runtime-link>shared <variant>release : : ;
+lib iconv : : <file>"@LIBICONV_LIBRARY@" <link>shared <runtime-link>shared <variant>debug : : ;
diff --git a/ports/boost-move/CONTROL b/ports/boost-move/CONTROL
new file mode 100644
index 000000000..4f68406d4
--- /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.67.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..f0b02398d
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/move
+ REF boost-1.67.0
+ SHA512 4ff739fbd59db18b4e8ec6b2bd85072422a6253b964d5f12c49e8c0f022ad5760927f753c4b1e75bcb7c38fd8e6f7a9b31aa58b5f8672eb273011a8602dfeb80
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..fa92b50d1
--- /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.67.0
+Build-Depends: boost-config, 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..95aa349b2
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/mp11
+ REF boost-1.67.0
+ SHA512 baf1127b837db0902576bbb7f4bb09ad8f38f19ae45025879ae49ba9fef723647460b35a58f81d6bb7cf7dbbf94ff81cd32a948540e276660c8b8de5318f474b
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..c6d33eb26
--- /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.67.0-1
+Build-Depends: boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-foreach, boost-function, boost-graph, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-modular-build-helper, 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, msmpi
+Description: Boost mpi module
diff --git a/ports/boost-mpi/portfile.cmake b/ports/boost-mpi/portfile.cmake
new file mode 100644
index 000000000..ac67bd677
--- /dev/null
+++ b/ports/boost-mpi/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/mpi
+ REF boost-1.67.0
+ SHA512 fd9c5795db268dbd16bfc051344f6f58ca691dafefb05e2f89521db84d57c6f0ee3f750a75d06b3aaefb14261d0bc40f5e002932383ae0f03c6456d0086c6b8e
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..350007a53
--- /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.67.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..92f6df54b
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/mpl
+ REF boost-1.67.0
+ SHA512 90143065ae6a180dd542ad50ceb111d221b587e6e109707c3421582996f0918828f42df69d1e44071981996f30fe59e969efa2271a8b70e70a10516f9b83b1f4
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..704e55def
--- /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.67.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..c22d53aa3
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/msm
+ REF boost-1.67.0
+ SHA512 073afc97247d0cf6eb579cffafbd43696390b28125d7e104cba4b5e2ac6120b24f64c5fa167f5e5958d7e7fb93eb7ea698b660f9fcee781bd84068919f6512e7
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..efa6049e7
--- /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.67.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..93ff6b0aa
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/multi_array
+ REF boost-1.67.0
+ SHA512 a1f58b1223ffc6935d3ff9dd599dea294af36e9532adef471be0c971450ffd5ebafed6b0ab61637663df22e933b066eccac1fa50c783961d7a4bcf209c7d0fbb
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..86e7733dd
--- /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.67.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..cc458c95a
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/multi_index
+ REF boost-1.67.0
+ SHA512 6630d086a99b5e36d344643030a1639ab1d9393ccc93b112d56cb6c674e97f67b4a9245e51d0b43416274f50d2af094551c814822c9b17abc19b52227042ad91
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..b78a02113
--- /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.67.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..5ded1a0d8
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/multiprecision
+ REF boost-1.67.0
+ SHA512 a2481ad9856ab5024d86097967f187596f18eada71effa51313fb72b02809f5177582fe13bfa5db647f31b5a667b209bf044bc0598385408494c0f6284d0c8a2
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..674e4ca0a
--- /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.67.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..b14d24011
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/numeric_conversion
+ REF boost-1.67.0
+ SHA512 0c1d46e4529bcec8eeb5b138f9ded9974688e14923eb148dc8e89f7fce93d07236be5448d28d9812f7b87bdd11391f0ab8ca57b659b7bedc820d0080b3a3f5d1
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..86baeb6a6
--- /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.67.0
+Build-Depends: boost-array, boost-assert, boost-bind, boost-compute, boost-config, boost-core, boost-function, boost-fusion, boost-iterator, boost-math, 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..38293012e
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/odeint
+ REF boost-1.67.0
+ SHA512 9c18b9ec2f02c9b36afb06c80ad9e881ab7c41580c2fca5b5c5a62c0aa6e1c3e9bb72c8a28670749e3723ce4bce4397db45547ba4db76acd6088f07644cadaa0
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..d20c879af
--- /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.67.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..261634e12
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/optional
+ REF boost-1.67.0
+ SHA512 a161c9bc69cb39d9828be89d9113766d930ef0c1b12de113b5d103e8139fceabdaac0081664f14ef96f1f9df1fac0b36469010766da3ba4c054910244c452bc8
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..360daf3a3
--- /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.67.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..3e5ae71bc
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/parameter
+ REF boost-1.67.0
+ SHA512 f49f1cbedc0b09de484af7ffd9d00e129e9e8cc88fd82d47a95f89b06eae909973843347d1fe09936d686d026d2266384cf23b7dd9a5d7df2d8889629fea1684
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..f6cf5316b
--- /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.67.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..3df599d31
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/phoenix
+ REF boost-1.67.0
+ SHA512 38095cd0de7a2fb03e4acaf27364a9f9797e1c92315b956f78a5f3d478fbd65a0b97dba53e9081418223864222f9a560f679b6c973ed994233e68b39fd3a5d63
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..9cdae8e73
--- /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.67.0
+Build-Depends: boost-assert, boost-config, boost-core, boost-detail, boost-iterator, boost-mpl, boost-type-erasure (!uwp), 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..f6d495b04
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/poly_collection
+ REF boost-1.67.0
+ SHA512 9ebf5a9a682f0d79ee80dbc1a097dbd06f7c7d064798e25d72a369fa771beb6c37ed9553bc3b8cdbbcb40bc89a628155a850807f5487c714655d2fdb85102b66
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..ea01f4bb0
--- /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.67.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..83d6d5b5e
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/polygon
+ REF boost-1.67.0
+ SHA512 d6fbf84a808065a5d6946ff0eae8af41d280dc6e30d34c1d1e6f9e5860884f94466d976db4b9537e94c40a76129ae0567cebd05a1116b80ff66629c423520753
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..7013cb6c4
--- /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.67.0
+Build-Depends: boost-assert, boost-compatibility, boost-config, boost-detail, boost-integer, boost-thread (!uwp), 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..e85dd3329
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/pool
+ REF boost-1.67.0
+ SHA512 fe6f9a5e147806e80fa706e7f02a1b4b6f48e044c6b2a7d7fce6685ec2ada960c17a1ae3fb8cf19661ca8e9e3b1b3a49a30328f9e5ca12f15514810733a1c299
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..92b0e35cd
--- /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.67.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..5b495ed8d
--- /dev/null
+++ b/ports/boost-predef/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/predef
+ REF boost-1.67.0
+ SHA512 c67076cb04de0ad0bfdc2fabc4112fe4a1ffb6c21a42e4e11a63e173ef3573e614fe515e7ad7af0cf6628a90fa44aad45013f79ae68d5f35df034953f84b75e1
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
+
+file(COPY ${SOURCE_PATH}/tools/check DESTINATION ${CURRENT_PACKAGES_DIR}/share/boost-predef)
diff --git a/ports/boost-preprocessor/CONTROL b/ports/boost-preprocessor/CONTROL
new file mode 100644
index 000000000..f6f683423
--- /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.67.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..0626080f4
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/preprocessor
+ REF boost-1.67.0
+ SHA512 9bb18c25144c1428c6e9a32a670c041bc6165b862636b5c626e8b66959906988605f75548fc61539f91c32282b72c150b8b398f7fcee2fa2e5720032b74fd80f
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..a5654c920
--- /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.67.0
+Build-Depends: boost-algorithm, boost-asio, boost-config, boost-core, boost-filesystem (!uwp), 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..d59399e5f
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/process
+ REF boost-1.67.0
+ SHA512 a279fcd351c2f8a2087438b67e973f74e150c24585cf586fd59f81c0ec712f8c042768549823268618c7c9c106ed5d8153a7d020fc415ac40f5d78a2a7e93bb6
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..f37b745ba
--- /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.67.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-modular-build-helper, 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..4f8624361
--- /dev/null
+++ b/ports/boost-program-options/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/program_options
+ REF boost-1.67.0
+ SHA512 eccb93bbc8ba6808afb06764577184c3b58cb260e0a5ead5a79c43300379744b4c9649ecf18b9c88b3c22c9f1a28d4c7bcf77f638693a97f38bfd15e48b58804
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..f8142fa41
--- /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.67.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..c2c4561fd
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/property_map
+ REF boost-1.67.0
+ SHA512 07360357577815c6545473d3b5ac64e6851031cc926bcc72419e0bbc49b291477a1e15663e79916044f2e8b946dee397dc1aede7eb2286d506fd86c87e81db48
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..cbb168eae
--- /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.67.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..8a87f7410
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/property_tree
+ REF boost-1.67.0
+ SHA512 b22b596af0a6a39a4671c44aa099cd4c2235a5f51e1400f14df2925a5a17487d8910253228c61b1198f0184e58e6e2940c7fde5c193549c21efe737bed363d67
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..9b6adca8f
--- /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.67.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..34691bdf3
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/proto
+ REF boost-1.67.0
+ SHA512 ed20abaad9b61d9a82f544a9ae3d05e1f908551958ea0a86b6325a2440a30c94c30caddc5354b603428df070a9eb418adad487d2cc3f2ea0c9a4bf361e8b2ca8
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..9c664a05d
--- /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.67.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..0f1892dda
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/ptr_container
+ REF boost-1.67.0
+ SHA512 d8349a2b3ebff817ffc42301b61d13536c341def39dd3ec9bf5f5abfa0c7ad545f6b5f8babd3cc276b7c171e55760ea2d0a03dcc0653ac7a245246c89d1b7117
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..36bb42387
--- /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.67.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..73980e640
--- /dev/null
+++ b/ports/boost-python/portfile.cmake
@@ -0,0 +1,21 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/python
+ REF boost-1.67.0
+ SHA512 59091af63626cc6e33f76bded8733b5fb044f7139197e6c887e8e279831954c1e8b67341b6b2f3c9dce97e67a166996321ea439609d225dab7f68762423d6211
+ 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}")
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..ee0044271
--- /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.67.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..014723f28
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/qvm
+ REF boost-1.67.0
+ SHA512 dce723e782bb19737a51e99c3535ab7101569ad217a475b25c742d4a35fd774d5b02883a3604b75a4141f8cbb385c82ed1496051032d1d993fb6218549885095
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..e9f682433
--- /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.67.0
+Build-Depends: boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-detail, boost-integer, boost-io, boost-math, boost-modular-build-helper, 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..6112ed2c3
--- /dev/null
+++ b/ports/boost-random/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/random
+ REF boost-1.67.0
+ SHA512 482a25fed9c420407cb83c8003a78dc518bb3942e23c3b206a0f0e050148fbed91aa0526b78614189d162d7c65d7a3ffb566a1735b23e1d0d5d592af0cdc499f
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..a9c7421ea
--- /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.67.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..c649c87ff
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/range
+ REF boost-1.67.0
+ SHA512 f6c400a40937b09eee02eecbd579d67530fd4cae5f5f9a02cd3914cbcf6d4170870fa6c05a5a018e070f9ddc8c75c43dd93171f57a032ff5294ed19a3cc299af
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..a58bbdab0
--- /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.67.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..45caa9299
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/ratio
+ REF boost-1.67.0
+ SHA512 0ff5a25d9e9798c52cc017df6a7b52a2c13becb84ab6dda06244a92459f1602ff3843e71cda205ed9c831b4727929cbebc688e8b028e029005ffb8f04e39f259
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..fcc4de99f
--- /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.67.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..5ced46770
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/rational
+ REF boost-1.67.0
+ SHA512 27fece61a7de96bf783a5f5d5b290934f76741848466fbe256c5517fb5671105d68e3126fd4b135c73a0290cbd81cff9849b599d14cdd948897d1ecc573ab016
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..edfbe8672
--- /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.67.0
+Build-Depends: boost-assert, boost-build, boost-compatibility, boost-concept-check, boost-config, boost-container-hash, boost-core, boost-detail, boost-functional, boost-integer, boost-iterator, boost-modular-build-helper, 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..8895931d6
--- /dev/null
+++ b/ports/boost-regex/portfile.cmake
@@ -0,0 +1,22 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/regex
+ REF boost-1.67.0
+ SHA512 e3b3aaaf866aa9e6a4148c545f4d4a4ab8037dc8882ed7cd4eecd7727976d1a137a4c4e5599283f5d6f3616e865369d80733070f571fdb990555e4769f59ab83
+ 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()
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH} REQUIREMENTS "${REQUIREMENTS}")
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..fff7088b2
--- /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.67.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..61add4866
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/scope_exit
+ REF boost-1.67.0
+ SHA512 31386f5e44669a01c3396df8fa001c85c7c6231413f4ed788602bb2861db3535e0ed01c61c4b9bdccdcc0020ce92dbbf2bc02711abbbf8dbafe089305d21fb5a
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..d2c4357be
--- /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.67.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-modular-build-helper, 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..b8229d3ec
--- /dev/null
+++ b/ports/boost-serialization/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/serialization
+ REF boost-1.67.0
+ SHA512 719b69945ebdf9eca9849c74bfab38ce1e2c8b4a11ea7cdf98c3da6250887f1712c841b18e428c5bac421b007e3bd0efce9b2c12893395982df98826621dc3bc
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..47f3c2382
--- /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.67.0
+Build-Depends: boost-any, boost-build, boost-config, boost-core, boost-function, boost-iterator, boost-modular-build-helper, 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..32d456803
--- /dev/null
+++ b/ports/boost-signals/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/signals
+ REF boost-1.67.0
+ SHA512 420281efef7ad8742ead144e924b21a8aaac500e8075c0bdf9e1d835d2069b4514f9d0af9ff9b00270334413cbe501acee7cb3eb7a218a53aed0479ff4e8367b
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..0d90874ba
--- /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.67.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..56ee81f08
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/signals2
+ REF boost-1.67.0
+ SHA512 5c691c9275ac2f640a46a1f5a03debd326ce1c64905af6475ebe6caced3ffa4fe27a3a6b91ce60c72bcf06fcd5fbeba79afaef8314f2be655b1ad648d5a046e4
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..6a6f5fb28
--- /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.67.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..a83bc4a22
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/smart_ptr
+ REF boost-1.67.0
+ SHA512 f8e9aaf7dce69fa21c1023bd990cc10957e2965261c9ac54cc4a045a6a4675f9e6a4796ec2e359f967d9670126434ec49ff0ba72fec0d041a86a569463e16d4c
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..9a52c06cc
--- /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.67.0
+Build-Depends: boost-integer, boost-range, 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..a8f999030
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/sort
+ REF boost-1.67.0
+ SHA512 dfd8f61aa342c226a88390f8b05d394fd8c019ebc8d008dbb3022bca4716d4e9623e9d2024fd3143ead3de89441b470dc234252b96d80dcd3d6e2be5ce4bd090
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..ee973c0b4
--- /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.67.0
+Build-Depends: boost-algorithm, boost-array, boost-assert, boost-compatibility, boost-concept-check, boost-config, boost-core, boost-detail, boost-endian, boost-filesystem (!uwp), boost-foreach, boost-function, boost-function-types, boost-fusion, boost-integer, boost-io, boost-iostreams (!uwp), boost-iterator, boost-lexical-cast, boost-locale (!uwp), 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 (!uwp), 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..f7b3f04f8
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/spirit
+ REF boost-1.67.0
+ SHA512 c5afd70ff38112232966e204e543b83316693a941f9da0300e9214ad3198601c805b2259f7e9ce58afc03b9e91403d98f94852b0e4eaa71b9e94157ca37aac9b
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..bba967212
--- /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.67.0
+Build-Depends: boost-array, boost-build, boost-config, boost-container-hash, boost-core, boost-lexical-cast, boost-math, boost-modular-build-helper, 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..5cb9ac5bc
--- /dev/null
+++ b/ports/boost-stacktrace/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/stacktrace
+ REF boost-1.67.0
+ SHA512 30e425d113c155b7a1a9f5802ce5c0efa91223825e09bf6dc596e208b1fec7e1adacbabe6950f5d35037a8bd4e2c3841e95cb9a02419a652beabfb083c460edc
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..b98913b82
--- /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.67.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..a76882124
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/statechart
+ REF boost-1.67.0
+ SHA512 2b63d4664b3fc20adf12106607ef1485700d5aeea9bbfc9005a9ac08984034a8a31c037a4ae3e99b4787187ed797844d26afb1140f73ef5009504549be64a6cf
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..58be1dfc7
--- /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.67.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..125f80bbb
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/static_assert
+ REF boost-1.67.0
+ SHA512 6ffffe8c9bb799851dd5b3f03ec3038c7545ee55429a2c9124c6b7c5abbe43b8cb0cc860d758fbbeaa1810775da8f0ad1bfd25362a78866c1ecf5242bdb548eb
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..01985fbe6
--- /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.67.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-core, boost-integer, boost-modular-build-helper, 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..d61109754
--- /dev/null
+++ b/ports/boost-system/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/system
+ REF boost-1.67.0
+ SHA512 3d7c8d9e0c4f3f5be95cf897e265adb1f2c96faa5dbc13b8050f988ddc94b9510531718b1726b147ab3484bff1ccf7bf18179084dcea968dcf80fd2f1c68686c
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..182c9ccf6
--- /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.67.0-2
+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-modular-build-helper, boost-mpl, boost-numeric-conversion, boost-optional, boost-preprocessor, 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..d5834c60d
--- /dev/null
+++ b/ports/boost-test/portfile.cmake
@@ -0,0 +1,35 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/test
+ REF boost-1.67.0
+ SHA512 9af937ef02982039b5aab54e142b877fef6c46f71b7cc8c83d81f850f4b4229ee93425ab8a88e6888952686e1e23da6591da072432a06c1bceae83c793a43cf5
+ HEAD_REF master
+)
+
+file(READ "${SOURCE_PATH}/build/Jamfile.v2" _contents)
+string(REPLACE "import ../../predef/check/predef" "import predef/check/predef" _contents "${_contents}")
+file(WRITE "${SOURCE_PATH}/build/Jamfile.v2" "${_contents}")
+file(COPY "${CURRENT_INSTALLED_DIR}/share/boost-predef/check" DESTINATION "${SOURCE_PATH}/build/predef")
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+ file(GLOB MONITOR_LIBS ${CURRENT_PACKAGES_DIR}/lib/*_exec_monitor*)
+ file(COPY ${MONITOR_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+ file(REMOVE ${MONITOR_LIBS})
+endif()
+
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ file(GLOB DEBUG_MONITOR_LIBS ${CURRENT_PACKAGES_DIR}/debug/lib/*_exec_monitor*)
+ file(COPY ${DEBUG_MONITOR_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ file(REMOVE ${DEBUG_MONITOR_LIBS})
+endif()
+
diff --git a/ports/boost-thread/CONTROL b/ports/boost-thread/CONTROL
new file mode 100644
index 000000000..6eeb13ebc
--- /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.67.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-modular-build-helper, 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/b2-options.cmake b/ports/boost-thread/b2-options.cmake
new file mode 100644
index 000000000..07acc10b5
--- /dev/null
+++ b/ports/boost-thread/b2-options.cmake
@@ -0,0 +1 @@
+list(APPEND B2_OPTIONS /boost/thread//boost_thread)
diff --git a/ports/boost-thread/portfile.cmake b/ports/boost-thread/portfile.cmake
new file mode 100644
index 000000000..30f203d31
--- /dev/null
+++ b/ports/boost-thread/portfile.cmake
@@ -0,0 +1,21 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/thread
+ REF boost-1.67.0
+ SHA512 e641484c2d021d0a8b77955bd9ee7f53f4a4c7f003b9260aa17c78b236a8cda4b1ec59c9fb16aab823b7be9d6da6a67c2d333308d8b1d5c9bbaa6a0de9018479
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(
+ SOURCE_PATH ${SOURCE_PATH}
+ REQUIREMENTS "<library>/boost/date_time//boost_date_time"
+ OPTIONS /boost/thread//boost_thread
+ BOOST_CMAKE_FRAGMENT ${CMAKE_CURRENT_LIST_DIR}/b2-options.cmake
+)
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..d6b606c78
--- /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.67.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..dca2f1ac4
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/throw_exception
+ REF boost-1.67.0
+ SHA512 ce049466973f338071acd51dab620c0a428eb6777384003f5ffc1a90128cf87d7f8283aeb351ca576a8cfabe46e603b7d748fbe2f03b46227b6eb9faf292f106
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..67537375d
--- /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.67.0
+Build-Depends: boost-build, boost-chrono, boost-compatibility, boost-config, boost-core, boost-integer, boost-io, boost-modular-build-helper, 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..1f3b9dcda
--- /dev/null
+++ b/ports/boost-timer/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/timer
+ REF boost-1.67.0
+ SHA512 6028432edbdee4318d3295c9834417d31816efd8e16c5a0bcc41c0b1ffdd422c31eadb01cb0934684421bb07079476ecae41ec64d314c60d19d02ed9d995c682
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..ed1cb640e
--- /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.67.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..15ebbe89c
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/tokenizer
+ REF boost-1.67.0
+ SHA512 2240809c63060f267c9b62171fcc1d959a199d8de65647de767c9829068a81e600d9084a8af0681bb09152e82789df2f13975a7ff1f0cd9ab6789347fe3154c6
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..fb2d59aa3
--- /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.67.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..4e15f4095
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/tti
+ REF boost-1.67.0
+ SHA512 e46b2a5cfd84c46577c499ee643f62804daf376fecaf15d3425b73d0221ab34dc2f882e31d7f8906adabafd271fc3707c6c5a2d99da8446a88951c4e828567f3
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..7129158e3
--- /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.67.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..be031628c
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/tuple
+ REF boost-1.67.0
+ SHA512 de9e0836ec0f923483d2738de44f1738a5d9c00cd4ea3f0c61192e892bf026d16a5719f874811b04c6e9d27b0ee7ac80a3b88b30198ca06d54df181640b374b8
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..579b091a0
--- /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.67.0
+Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-fusion, boost-iterator, boost-modular-build-helper, boost-mp11, boost-mpl, boost-preprocessor, boost-smart-ptr, boost-thread (!uwp), boost-throw-exception, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-vmd
+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..c6c07eb1b
--- /dev/null
+++ b/ports/boost-type-erasure/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/type_erasure
+ REF boost-1.67.0
+ SHA512 45bcade387e21315ea94f69981531ca38c367d6e7e8bcc82e67b86360d4f0e6a786ff94935a10a7b2e6bed21c0847008bbfa70e8adc5f3704f4eafef54664d86
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..ec217ec27
--- /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.67.0
+Build-Depends: boost-config, boost-container-hash, boost-core, 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..1554e1258
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/type_index
+ REF boost-1.67.0
+ SHA512 31a471bedaa8e30eb84e22e7f059938ffb25c649a80b203067da1c63bcb8d1fcd9cf61bff593fcdb6d463408bc6cb2775dbb589ac04bc6de7e0bc351e0b3abd9
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..f7eab32a7
--- /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.67.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..0ae0417b2
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/type_traits
+ REF boost-1.67.0
+ SHA512 3a2c0b3498c9a71d668fcb0f0b46b7c97275396f5fe3703ceb2534a34bc497af10a655da72570ab9073a0a92db6ed079ed4ddd14fff54c791784d734a54d24bc
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..25c345a3e
--- /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.67.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..2e7aaca5b
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/typeof
+ REF boost-1.67.0
+ SHA512 91b29446146a44aa0983c953086e45863b40e7d053670a0ef78f703d2419db7ac1615b42b7eca70e70088b7da9e9c37687e9ac570fc3995a74a9e78cae78280c
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..a6dd9d24e
--- /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.67.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..db221b6cd
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/ublas
+ REF boost-1.67.0
+ SHA512 5ff9cbbd1e9dd33eb1230e2d5247d80526be1d5f5d3e145dbdb2f95c1f61b86438a937174936cf4489fac81111b72ee317a6e653ae6c3d84b58bdc1cd2ce7a82
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..2d85d080a
--- /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.67.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..df480dbb5
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/units
+ REF boost-1.67.0
+ SHA512 33ce1386e67982d4b6f45fa78ce787332c7a753463650762a66da1064741fc6f9909fe1929416ec7918060300cedda93642fd6adb4a2d5f4c689f4d48b2a720f
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..50cd43f5f
--- /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.67.0
+Build-Depends: boost-assert, boost-compatibility, boost-config, boost-container, boost-core, boost-detail, boost-functional, 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..02fae3899
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/unordered
+ REF boost-1.67.0
+ SHA512 8eb086d4993ff7079b0919b0ad39ac16b37b4951eb9cf4d5f388aff37cf2b7ae42621277a23f8d870a35ff571de44ee1dc7b0faf108fdbf1ccdd8ed2d6be51d4
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..481427860
--- /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.67.0
+Build-Depends: boost-config, boost-core, boost-detail, boost-integer, 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..1a919c18a
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/utility
+ REF boost-1.67.0
+ SHA512 4123a71af8234789b2b68f2a3b6e13e7ad3e46484e8b06ee2159d7337d101a2b1c8b8e7ca70ce29f0b71802f45014e1db03253e1f6515a6ad2f9d5ebced77caf
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..09af27bd7
--- /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.67.0
+Build-Depends: boost-assert, boost-compatibility, boost-config, boost-core, boost-integer, boost-io, boost-numeric-conversion, boost-predef, boost-random, boost-serialization, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-tti, boost-type-traits, boost-vcpkg-helpers, boost-winapi
+Description: Boost uuid module
diff --git a/ports/boost-uuid/portfile.cmake b/ports/boost-uuid/portfile.cmake
new file mode 100644
index 000000000..b68c1f68b
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/uuid
+ REF boost-1.67.0
+ SHA512 224324198b24c4606ca0c3c370c8d344730e6851ccdff012eaa6024ede958b342c5b728ddbb0a5c52dedcd0ac628bf12213de14654348c3e18eb20aa73d8b7e4
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..246ee7355
--- /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.67.0
+Build-Depends: boost-assert, boost-bind, boost-config, boost-core, boost-detail, boost-functional, boost-integer, boost-move, boost-mpl, boost-preprocessor, boost-static-assert, boost-throw-exception, boost-type-index, boost-type-traits, boost-utility, boost-vcpkg-helpers
+Description: Boost variant module
diff --git a/ports/boost-variant/portfile.cmake b/ports/boost-variant/portfile.cmake
new file mode 100644
index 000000000..8449a21aa
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/variant
+ REF boost-1.67.0
+ SHA512 1fc6a0a98cdb2eca64f8a380e31724c70a9a0260ab2e433ad5812c580c9e2a867c6faf7ee17b0c6cf94b6410af1e509ac5d51e93b6fa1174b3d1c55ca62a10c7
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..42e02b3aa
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/CONTROL
@@ -0,0 +1,3 @@
+Source: boost-vcpkg-helpers
+Version: 4
+Description: a set of vcpkg-internal scripts used to modularize boost
diff --git a/ports/boost-vcpkg-helpers/boost-modular-headers.cmake b/ports/boost-vcpkg-helpers/boost-modular-headers.cmake
new file mode 100644
index 000000000..1a4b8574b
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/boost-modular-headers.cmake
@@ -0,0 +1,24 @@
+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..0635608fd
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/generate-ports.ps1
@@ -0,0 +1,421 @@
+[CmdletBinding()]
+param (
+ $libraries = @(),
+ $version = "1.67.0"
+)
+
+$scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition
+
+$libsDisabledInLinux = "python|fiber"
+$libsDisabledInUWP = "iostreams|filesystem|thread|context|contract|python|stacktrace|program[_-]options|coroutine`$|fiber|locale|test|type[_-]erasure|wave|log"
+
+function Generate()
+{
+ param (
+ [string]$Name,
+ [string]$Hash,
+ [bool]$NeedsBuild,
+ $Depends = @()
+ )
+
+ $controlDeps = ($Depends | sort) -join ", "
+
+ $sanitizedName = $name -replace "_","-"
+
+ $versionsuffix = ""
+ if ($Name -eq "python" -or $Name -eq "asio" -or $Name -eq "mpi")
+ {
+ $versionsuffix = "-1"
+ }
+
+ if ($Name -eq "test")
+ {
+ $versionsuffix = "-2"
+ }
+
+ mkdir "$scriptsDir/../boost-$sanitizedName" -erroraction SilentlyContinue | out-null
+ $controlLines = @(
+ "# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1"
+ "Source: boost-$sanitizedName"
+ "Version: $version$versionsuffix"
+ "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)"
+ ""
+ "vcpkg_from_github("
+ " OUT_SOURCE_PATH SOURCE_PATH"
+ " REPO boostorg/$Name"
+ " REF boost-$version"
+ " SHA512 $Hash"
+ " HEAD_REF master"
+ ")"
+ ""
+ )
+
+ if (Test-Path "$scriptsDir/post-source-stubs/$Name.cmake")
+ {
+ $portfileLines += @(get-content "$scriptsDir/post-source-stubs/$Name.cmake")
+ }
+
+ if ($NeedsBuild)
+ {
+ if ($Name -eq "locale")
+ {
+ $portfileLines += @(
+ "if(`"icu`" IN_LIST FEATURES)"
+ " set(BOOST_LOCALE_ICU on)"
+ "else()"
+ " set(BOOST_LOCALE_ICU off)"
+ "endif()"
+ ""
+ "include(`${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)"
+ "boost_modular_build("
+ " SOURCE_PATH `${SOURCE_PATH}"
+ " BOOST_CMAKE_FRAGMENT `"`${CMAKE_CURRENT_LIST_DIR}/cmake-fragment.cmake`""
+ " 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()"
+ ""
+ "include(`${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)"
+ "boost_modular_build(SOURCE_PATH `${SOURCE_PATH} REQUIREMENTS `"`${REQUIREMENTS}`")"
+ )
+ }
+ elseif ($Name -eq "thread")
+ {
+ $portfileLines += @(
+ "include(`${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)"
+ "boost_modular_build(SOURCE_PATH `${SOURCE_PATH} REQUIREMENTS `"<library>/boost/date_time//boost_date_time`" OPTIONS /boost/thread//boost_thread)"
+ )
+ }
+ else
+ {
+ $portfileLines += @(
+ "include(`${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)"
+ "boost_modular_build(SOURCE_PATH `${SOURCE_PATH})"
+ )
+ }
+ }
+ $portfileLines += @(
+ "include(`${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)"
+ "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()"
+ "file(COPY `${SOURCE_PATH}/checks DESTINATION `${CURRENT_PACKAGES_DIR}/share/boost-config)"
+ )
+ }
+ if ($Name -eq "predef")
+ {
+ $portfileLines += @(
+ ""
+ "file(COPY `${SOURCE_PATH}/tools/check DESTINATION `${CURRENT_PACKAGES_DIR}/share/boost-predef)"
+ )
+ }
+ if ($Name -eq "test")
+ {
+ $portfileLines += @(
+ "if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL `"release`")"
+ " file(MAKE_DIRECTORY `${CURRENT_PACKAGES_DIR}/lib/manual-link)"
+ " file(GLOB MONITOR_LIBS `${CURRENT_PACKAGES_DIR}/lib/*_exec_monitor*)"
+ " file(COPY `${MONITOR_LIBS} DESTINATION `${CURRENT_PACKAGES_DIR}/lib/manual-link)"
+ " file(REMOVE `${MONITOR_LIBS})"
+ "endif()"
+ ""
+ "if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL `"debug`")"
+ " file(MAKE_DIRECTORY `${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)"
+ " file(GLOB DEBUG_MONITOR_LIBS `${CURRENT_PACKAGES_DIR}/debug/lib/*_exec_monitor*)"
+ " file(COPY `${DEBUG_MONITOR_LIBS} DESTINATION `${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)"
+ " file(REMOVE `${DEBUG_MONITOR_LIBS})"
+ "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
+ }
+}
+else
+{
+ pushd $scriptsDir/boost
+ try
+ {
+ git fetch
+ git checkout -f 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..."
+ & "$scriptsDir\..\..\downloads\tools\aria2-18.01.0-windows\aria2-1.33.1-win-32bit-build1\aria2c.exe" "https://github.com/boostorg/$library/archive/boost-$version.tar.gz" -d "$scriptsDir/downloads" -o "$library-boost-$version.tar.gz"
+ }
+ $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 $_ })
+
+ if ($library -eq "regex")
+ {
+ $deps += @("container_hash")
+ }
+
+ $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 `
+ ($_ -notmatch "mpi")`
+ -and `
+ (($library -notmatch "spirit") -or ($_ -notmatch "serialization"))`
+ -and `
+ (($library -notmatch "utility|concept_check") -or ($_ -notmatch "iterator"))
+ } | % { "boost-$_" -replace "_","-" } | % {
+ if ($_ -match $libsDisabledInLinux -and $_ -match $libsDisabledInUWP)
+ {
+ "$_ (windows)"
+ }
+ elseif ($_ -match $libsDisabledInUWP)
+ {
+ "$_ (!uwp)"
+ }
+ else
+ {
+ $_
+ }
+ })
+
+ $deps += @("boost-vcpkg-helpers")
+
+ $needsBuild = $false
+ if ((Test-Path $unpacked/build/Jamfile.v2) -and $library -ne "metaparse" -and $library -ne "graph_parallel")
+ {
+ $deps += @("boost-build", "boost-modular-build-helper")
+ $needsBuild = $true
+ }
+
+ if ($library -eq "python")
+ {
+ $deps += @("python3")
+ $needsBuild = $true
+ }
+ elseif ($library -eq "iostreams")
+ {
+ $deps += @("zlib", "bzip2")
+ }
+ elseif ($library -eq "locale")
+ {
+ $deps += @("libiconv (!uwp&!windows)")
+ }
+ elseif ($library -eq "asio")
+ {
+ $deps += @("openssl")
+ }
+ elseif ($library -eq "mpi")
+ {
+ $deps += @("msmpi")
+ }
+
+ Generate `
+ -Name $library `
+ -Hash $hash `
+ -Depends $deps `
+ -NeedsBuild $needsBuild
+
+ if ($library -match $libsDisabledInLinux -and $library -match $libsDisabledInUWP)
+ {
+ $libraries_in_boost_port += @("$library (windows)")
+ }
+ elseif ($library -match $libsDisabledInUWP)
+ {
+ $libraries_in_boost_port += @("$library (!uwp)")
+ }
+ else
+ {
+ $libraries_in_boost_port += @($library)
+ }
+
+ }
+ finally
+ {
+ popd
+ }
+}
+
+# Generate master boost control file which depends on each individual library
+# mpi is excluded due to it having a dependency on msmpi
+$boostDependsList = @($libraries_in_boost_port | % { "boost-$_" -replace "_","-" } | ? { $_ -notmatch "boost-mpi" }) -join ", "
+
+@(
+ "# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1"
+ "Source: boost"
+ "Version: $version"
+ "Description: Peer-reviewed portable C++ source libraries"
+ "Build-Depends: $boostDependsList"
+ ""
+ "Feature: mpi"
+ "Description: Build with MPI support"
+ "Build-Depends: boost-mpi"
+) | 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/portfile.cmake b/ports/boost-vcpkg-helpers/portfile.cmake
new file mode 100644
index 000000000..32f501f24
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/portfile.cmake
@@ -0,0 +1,7 @@
+
+file(
+ COPY ${CMAKE_CURRENT_LIST_DIR}/boost-modular-headers.cmake
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/boost-vcpkg-helpers
+)
+
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
diff --git a/ports/boost-vcpkg-helpers/post-source-stubs/context.cmake b/ports/boost-vcpkg-helpers/post-source-stubs/context.cmake
new file mode 100644
index 000000000..9ccf34233
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/post-source-stubs/context.cmake
@@ -0,0 +1,5 @@
+file(READ "${SOURCE_PATH}/build/Jamfile.v2" _contents)
+string(REPLACE "import ../../config/checks/config" "import config/checks/config" _contents "${_contents}")
+file(WRITE "${SOURCE_PATH}/build/Jamfile.v2" "${_contents}")
+file(COPY "${CURRENT_INSTALLED_DIR}/share/boost-config/checks" DESTINATION "${SOURCE_PATH}/build/config")
+
diff --git a/ports/boost-vcpkg-helpers/post-source-stubs/fiber.cmake b/ports/boost-vcpkg-helpers/post-source-stubs/fiber.cmake
new file mode 100644
index 000000000..9ccf34233
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/post-source-stubs/fiber.cmake
@@ -0,0 +1,5 @@
+file(READ "${SOURCE_PATH}/build/Jamfile.v2" _contents)
+string(REPLACE "import ../../config/checks/config" "import config/checks/config" _contents "${_contents}")
+file(WRITE "${SOURCE_PATH}/build/Jamfile.v2" "${_contents}")
+file(COPY "${CURRENT_INSTALLED_DIR}/share/boost-config/checks" DESTINATION "${SOURCE_PATH}/build/config")
+
diff --git a/ports/boost-vcpkg-helpers/post-source-stubs/log.cmake b/ports/boost-vcpkg-helpers/post-source-stubs/log.cmake
new file mode 100644
index 000000000..78500ddc3
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/post-source-stubs/log.cmake
@@ -0,0 +1,13 @@
+file(READ "${SOURCE_PATH}/build/Jamfile.v2" _contents)
+string(REPLACE "import ../../config/checks/config" "import config/checks/config" _contents "${_contents}")
+string(REPLACE " <conditional>@select-arch-specific-sources" "#<conditional>@select-arch-specific-sources" _contents "${_contents}")
+file(WRITE "${SOURCE_PATH}/build/Jamfile.v2" "${_contents}")
+file(COPY "${CURRENT_INSTALLED_DIR}/share/boost-config/checks" DESTINATION "${SOURCE_PATH}/build/config")
+
+file(READ ${SOURCE_PATH}/build/log-architecture.jam _contents)
+string(REPLACE
+ "\nproject.load [ path.join [ path.make $(here:D) ] ../../config/checks/architecture ] ;"
+ "\nproject.load [ path.join [ path.make $(here:D) ] config/checks/architecture ] ;"
+ _contents "${_contents}")
+file(WRITE ${SOURCE_PATH}/build/log-architecture.jam "${_contents}")
+
diff --git a/ports/boost-vcpkg-helpers/post-source-stubs/python.cmake b/ports/boost-vcpkg-helpers/post-source-stubs/python.cmake
new file mode 100644
index 000000000..40b8e0a0b
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/post-source-stubs/python.cmake
@@ -0,0 +1,5 @@
+# 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}")
diff --git a/ports/boost-vcpkg-helpers/post-source-stubs/test.cmake b/ports/boost-vcpkg-helpers/post-source-stubs/test.cmake
new file mode 100644
index 000000000..b2872338d
--- /dev/null
+++ b/ports/boost-vcpkg-helpers/post-source-stubs/test.cmake
@@ -0,0 +1,5 @@
+file(READ "${SOURCE_PATH}/build/Jamfile.v2" _contents)
+string(REPLACE "import ../../predef/check/predef" "import predef/check/predef" _contents "${_contents}")
+file(WRITE "${SOURCE_PATH}/build/Jamfile.v2" "${_contents}")
+file(COPY "${CURRENT_INSTALLED_DIR}/share/boost-predef/check" DESTINATION "${SOURCE_PATH}/build/predef")
+
diff --git a/ports/boost-vmd/CONTROL b/ports/boost-vmd/CONTROL
new file mode 100644
index 000000000..b6bea6cff
--- /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.67.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..0d96a6606
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/vmd
+ REF boost-1.67.0
+ SHA512 479b816decaf5bba27f6aee25af950bfce2df62ebd1e278cf62ad6260bb590ac93c284f09de43fc96d0504093937507d55bffd1ae751af6120a4632da02409d6
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..aa1a8e707
--- /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.67.0
+Build-Depends: boost-assert, boost-build, boost-concept-check, boost-config, boost-core, boost-detail, boost-filesystem (!uwp), boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-modular-build-helper, 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..479770e92
--- /dev/null
+++ b/ports/boost-wave/portfile.cmake
@@ -0,0 +1,16 @@
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/wave
+ REF boost-1.67.0
+ SHA512 e298b903dbeae5577938e92559b699a0f89abcff9299781c1857c401503b6c31b56420908aed6f0063b25508e97e978c39282352a1355d0924012e384994094b
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-build/boost-modular-build.cmake)
+boost_modular_build(SOURCE_PATH ${SOURCE_PATH})
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..9f3242243
--- /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.67.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..30c36ee1f
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/winapi
+ REF boost-1.67.0
+ SHA512 1a0935132e8058b3f592406aaf6bb6fa8df6c96c35e61e09d84e39c6ab00c50b87346789d309fdfb7de8f6252134a76a59c0dc214fe1f4ee25d82c379cf63a3c
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+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..baa3e7216
--- /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.67.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..2d4791918
--- /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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO boostorg/xpressive
+ REF boost-1.67.0
+ SHA512 3883764ee2d0c5cfcf444319ae5c7ec547d27d0f54c1e2f4e4b134be25c3fbc7954bae1f783cac96386a63984dcff4197bd98176644c1d6bc50926256f39069d
+ HEAD_REF master
+)
+
+include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
+boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
diff --git a/ports/boost/0001-Fix-boost-ICU-support.patch b/ports/boost/0001-Fix-boost-ICU-support.patch
new file mode 100644
index 000000000..1952f5a64
--- /dev/null
+++ b/ports/boost/0001-Fix-boost-ICU-support.patch
@@ -0,0 +1,166 @@
+---
+ libs/locale/build/Jamfile.v2 | 63 ++++++--------------------------------
+ libs/locale/build/has_icu_test.cpp | 4 ---
+ libs/regex/build/Jamfile.v2 | 47 +++++++---------------------
+ 3 files changed, 20 insertions(+), 94 deletions(-)
+
+diff --git a/libs/locale/build/Jamfile.v2 b/libs/locale/build/Jamfile.v2
+index 578e722..5f25917 100644
+--- a/libs/locale/build/Jamfile.v2
++++ b/libs/locale/build/Jamfile.v2
+@@ -70,62 +70,17 @@ if $(ICU_LINK)
+ }
+ else
+ {
+- searched-lib icuuc : : <name>icuuc
+- <search>$(ICU_PATH)/lib
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icuuc : : <toolset>msvc
+- <variant>debug
+- <name>icuucd
+- <search>$(ICU_PATH)/lib
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icuuc : : <name>this_is_an_invalid_library_name ;
+-
+- searched-lib icudt : : <search>$(ICU_PATH)/lib
+- <name>icudata
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icudt : : <search>$(ICU_PATH)/lib
+- <name>icudt
+- <toolset>msvc
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icudt : : <name>this_is_an_invalid_library_name ;
+-
+- searched-lib icuin : : <search>$(ICU_PATH)/lib
+- <name>icui18n
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icuin : : <toolset>msvc
+- <variant>debug
+- <name>icuind
+- <search>$(ICU_PATH)/lib
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icuin : : <toolset>msvc
+- <variant>release
+- <name>icuin
+- <search>$(ICU_PATH)/lib
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icuin : : <name>this_is_an_invalid_library_name ;
+-
+- explicit icuuc icudt icuin ;
++ alias icuuc : /user-config//icuuc ;
++ alias icuin : /user-config//icuin ;
++ alias icudt : /user-config//icudt ;
++
++ explicit icuuc icuin icudt ;
+
+ ICU_OPTS = <include>$(ICU_PATH)/include
+- <library>icuuc/<link>shared/<runtime-link>shared
+- <library>icudt/<link>shared/<runtime-link>shared
+- <library>icuin/<link>shared/<runtime-link>shared
+- <dll-path>$(ICU_PATH)/bin
+- <runtime-link>shared ;
++ <library>icuuc
++ <library>icuin
++ <library>icudt
++ <dll-path>$(ICU_PATH)/bin ;
+
+
+
+diff --git a/libs/locale/build/has_icu_test.cpp b/libs/locale/build/has_icu_test.cpp
+index 9419b30..ed9be05 100644
+--- a/libs/locale/build/has_icu_test.cpp
++++ b/libs/locale/build/has_icu_test.cpp
+@@ -15,10 +15,6 @@
+ #include <unicode/uchar.h>
+ #include <unicode/coll.h>
+
+-#if defined(_MSC_VER) && !defined(_DLL)
+-#error "Mixing ICU with a static runtime doesn't work"
+-#endif
+-
+ int main()
+ {
+ icu::Locale loc;
+diff --git a/libs/regex/build/Jamfile.v2 b/libs/regex/build/Jamfile.v2
+index 58fd1fb..76ee9f4 100644
+--- a/libs/regex/build/Jamfile.v2
++++ b/libs/regex/build/Jamfile.v2
+@@ -48,50 +48,25 @@ if ! $(disable-icu)
+ }
+ else
+ {
+- lib icuuc : : <runtime-link>shared <conditional>@path_options ;
+- lib icuuc : : <toolset>msvc <variant>debug <name>icuucd <runtime-link>shared <conditional>@path_options ;
+- lib icuuc : : <toolset>intel <target-os>windows <variant>debug <name>icuucd <runtime-link>shared <conditional>@path_options ;
+- lib icuuc : : <name>sicuuc <runtime-link>static <conditional>@path_options ;
+- lib icuuc : : <toolset>msvc <variant>debug <name>sicuucd <runtime-link>static <conditional>@path_options ;
+- lib icuuc : : <toolset>intel <target-os>windows <variant>debug <name>sicuucd <runtime-link>static <conditional>@path_options ;
+- lib icuuc : : <name>this_is_an_invalid_library_name ;
+-
+- lib icudt : : <name>icudata <runtime-link>shared <conditional>@path_options ;
+- lib icudt : : <name>icudt <toolset>msvc <runtime-link>shared <conditional>@path_options ;
+- lib icudt : : <name>icudt <toolset>intel <target-os>windows <runtime-link>shared <conditional>@path_options ;
+- lib icudt : : <name>sicudata <runtime-link>static <conditional>@path_options ;
+- lib icudt : : <name>sicudt <toolset>msvc <runtime-link>static <conditional>@path_options ;
+- lib icudt : : <name>sicudt <toolset>intel <target-os>windows <runtime-link>static <conditional>@path_options ;
+- lib icudt : : <name>this_is_an_invalid_library_name ;
+-
+- lib icuin : : <name>icui18n <runtime-link>shared <conditional>@path_options ;
+- lib icuin : : <toolset>msvc <variant>debug <name>icuind <runtime-link>shared <conditional>@path_options ;
+- lib icuin : : <toolset>msvc <name>icuin <runtime-link>shared <conditional>@path_options ;
+- lib icuin : : <toolset>intel <target-os>windows <variant>debug <name>icuind <runtime-link>shared <conditional>@path_options ;
+- lib icuin : : <toolset>intel <target-os>windows <name>icuin <runtime-link>shared <conditional>@path_options ;
+- lib icuin : : <name>sicui18n <runtime-link>static <conditional>@path_options ;
+- lib icuin : : <toolset>msvc <variant>debug <name>sicuind <runtime-link>static <conditional>@path_options ;
+- lib icuin : : <toolset>msvc <name>sicuin <runtime-link>static <conditional>@path_options ;
+- lib icuin : : <toolset>intel <target-os>windows <variant>debug <name>sicuind <runtime-link>static <conditional>@path_options ;
+- lib icuin : : <toolset>intel <target-os>windows <name>sicuin <runtime-link>static <conditional>@path_options ;
+- lib icuin : : <name>this_is_an_invalid_library_name ;
++
++ alias icuuc : /user-config//icuuc ;
++ alias icuin : /user-config//icuin ;
++ alias icudt : /user-config//icudt ;
++
++ explicit icuuc icuin icudt ;
+
+ ICU_OPTS =
+ <include>$(ICU_PATH)/include
+- <runtime-link>shared:<library>icuuc/<link>shared
+- <runtime-link>shared:<library>icudt/<link>shared
+- <runtime-link>shared:<library>icuin/<link>shared
+- <runtime-link>static:<library>icuuc
+- <runtime-link>static:<library>icudt
+- <runtime-link>static:<library>icuin
+- <define>BOOST_HAS_ICU=1
+- <runtime-link>static:<define>U_STATIC_IMPLEMENTATION=1
++ <library>icuuc
++ <library>icudt
++ <library>icuin
++ <define>BOOST_HAS_ICU=1
+ ;
+ }
+
+ }
+
+-unit-test has_icu : has_icu_test.cpp : $(ICU_OPTS) ;
++exe has_icu : has_icu_test.cpp : $(ICU_OPTS) ;
+ explicit has_icu ;
+
+ alias icu_options : : : : [ check-target-builds has_icu : $(ICU_OPTS) : ] ;
+--
+2.12.2.windows.2
+
diff --git a/ports/boost/CONTROL b/ports/boost/CONTROL
index ec2e77ffa..23fc8ef59 100644
--- a/ports/boost/CONTROL
+++ b/ports/boost/CONTROL
@@ -1,4 +1,9 @@
-Source: boost
-Version: 1.64-4
-Description: Peer-reviewed portable C++ source libraries
-Build-Depends: zlib, bzip2
+# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1
+Source: boost
+Version: 1.67.0
+Description: Peer-reviewed portable C++ source libraries
+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-container-hash, boost-context (!uwp), boost-contract (!uwp), boost-conversion, boost-convert, boost-core, boost-coroutine (!uwp), 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 (!uwp), 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-hof, boost-icl, boost-integer, boost-interprocess, boost-intrusive, boost-io, boost-iostreams (!uwp), boost-iterator, boost-lambda, boost-lexical-cast, boost-locale (!uwp), boost-local-function, boost-lockfree, boost-log (!uwp), boost-logic (!uwp), boost-math, boost-metaparse, boost-move, boost-mp11, 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 (!uwp), 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 (!uwp), boost-statechart, boost-static-assert, boost-system, boost-test (!uwp), boost-thread (!uwp), boost-throw-exception, boost-timer, boost-tokenizer, boost-tti, boost-tuple, boost-typeof, boost-type-erasure (!uwp), boost-type-index, boost-type-traits, boost-units, boost-unordered, boost-utility, boost-uuid, boost-variant, boost-vmd, boost-wave (!uwp), boost-winapi, boost-xpressive
+
+Feature: mpi
+Description: Build with MPI support
+Build-Depends: boost-mpi
diff --git a/ports/boost/desktop/user-config.jam b/ports/boost/desktop/user-config.jam
index 8faba6d72..311cc8951 100644
--- a/ports/boost/desktop/user-config.jam
+++ b/ports/boost/desktop/user-config.jam
@@ -5,3 +5,34 @@ using msvc : 14.0 : cl.exe :
using msvc : 14.1 : cl.exe :
<setup>echo
;
+
+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 : : <search>"@CURRENT_INSTALLED_DIR@/lib" : :
+ <runtime-link>"@LIB_RUNTIME_LINK@"
+ <library>advapi32 ;
+
+lib icuuc : : <search>"@CURRENT_INSTALLED_DIR@/debug/lib"
+ <variant>debug
+ <name>icuucd : :
+ <runtime-link>"@LIB_RUNTIME_LINK@"
+ <library>advapi32 ;
+
+lib icuin : : <search>"@CURRENT_INSTALLED_DIR@/lib" : :
+ <runtime-link>"@LIB_RUNTIME_LINK@" ;
+
+lib icuin : : <search>"@CURRENT_INSTALLED_DIR@/debug/lib"
+ <variant>debug
+ <name>icuind : :
+ <runtime-link>"@LIB_RUNTIME_LINK@" ;
+
+lib icudt : : <search>"@CURRENT_INSTALLED_DIR@/lib" : :
+ <runtime-link>"@LIB_RUNTIME_LINK@" ;
+
+lib icudt : : <search>"@CURRENT_INSTALLED_DIR@/debug/lib"
+ <variant>debug
+ <name>icudtd : :
+ <runtime-link>"@LIB_RUNTIME_LINK@" ; \ No newline at end of file
diff --git a/ports/boost/portfile.cmake b/ports/boost/portfile.cmake
index 79c2f02da..0283a2085 100644
--- a/ports/boost/portfile.cmake
+++ b/ports/boost/portfile.cmake
@@ -1,294 +1,2 @@
-include(vcpkg_common_functions)
-set(VERSION 1_64)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/boost_${VERSION}_0)
-
-######################
-# Acquire and arrange sources
-######################
-vcpkg_download_distfile(ARCHIVE_FILE
- URLS "https://sourceforge.net/projects/boost/files/boost/1.64.0/boost_${VERSION}_0.tar.bz2"
- FILENAME "boost_${VERSION}_0.tar.bz2"
- SHA512 68477f148f61be617552ef48559c5c2cb90d42264cabd6d5e87215d0d5024b48fca27c4afcfc1f77e490c6220d44fb1abdf0a53703867a2e4132c2857f69fedf
-)
-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.diff"
- SHA512 77dad42bfd9bbab2bbddf361d5b7ad3dd6f812f4294c6dd1a677bb4d0191a4fff43bca32fdd4fce05d428562abb6e38afd0fd33ca6a8b5f28481d70cd2f3dd67
-)
-
-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})
-
-######################
-# 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"
- 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"
- -j$ENV{NUMBER_OF_PROCESSORS}
- --debug-configuration
- --hash
- -q
-
- --without-python
- threading=multi
-)
-
-if (VCPKG_CRT_LINKAGE STREQUAL dynamic)
- list(APPEND B2_OPTIONS runtime-link=shared)
-else()
- list(APPEND B2_OPTIONS 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(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-fiber
- # --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-filesystem # libs\filesystem\src\operations.cpp(178): error C2039: 'GetEnvironmentVariableW': is not a member of '`global namespace''
- --without-thread
- --without-iostreams
- --without-container
- )
- 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()
-
-# Add build type specific options
-set(B2_OPTIONS_DBG
- ${B2_OPTIONS}
- -sZLIB_BINARY=zlibd
- -sZLIB_LIBPATH="${CURRENT_INSTALLED_DIR}\\debug\\lib"
- -sBZIP2_BINARY=bz2d
- -sBZIP2_LIBPATH="${CURRENT_INSTALLED_DIR}\\debug\\lib"
-)
-
-set(B2_OPTIONS_REL
- ${B2_OPTIONS}
- -sZLIB_BINARY=zlib
- -sZLIB_LIBPATH="${CURRENT_INSTALLED_DIR}\\lib"
- -sBZIP2_BINARY=bz2
- -sBZIP2_LIBPATH="${CURRENT_INSTALLED_DIR}\\lib"
-)
-
-######################
-# 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#define BOOST_ALL_NO_LIB\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)
-if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/boost_test_exec_monitor-vc140-mt-${VERSION}.lib)
- file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link)
- file(RENAME
- ${CURRENT_PACKAGES_DIR}/lib/boost_test_exec_monitor-vc140-mt-${VERSION}.lib
- ${CURRENT_PACKAGES_DIR}/lib/manual-link/boost_test_exec_monitor-vc140-mt-${VERSION}.lib
- )
-endif()
-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)
-if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/boost_test_exec_monitor-vc140-mt-gd-${VERSION}.lib)
- file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
- file(RENAME
- ${CURRENT_PACKAGES_DIR}/debug/lib/boost_test_exec_monitor-vc140-mt-gd-${VERSION}.lib
- ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/boost_test_exec_monitor-vc140-mt-gd-${VERSION}.lib
- )
-endif()
-message(STATUS "Packaging ${TARGET_TRIPLET}-dbg done")
-
-vcpkg_copy_pdbs()
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+
diff --git a/ports/boost/usage b/ports/boost/usage
new file mode 100644
index 000000000..28d429010
--- /dev/null
+++ b/ports/boost/usage
@@ -0,0 +1,5 @@
+The package boost is compatible with built-in CMake targets:
+
+ find_package(Boost REQUIRED [COMPONENTS <libs>...])
+ target_link_libraries(main PRIVATE ${Boost_LIBRARIES})
+ target_include_directories(main PRIVATE ${Boost_INCLUDE_DIRS})
diff --git a/ports/boost/uwp/user-config.jam b/ports/boost/uwp/user-config.jam
index 88e7c5974..975b1d412 100644
--- a/ports/boost/uwp/user-config.jam
+++ b/ports/boost/uwp/user-config.jam
@@ -13,3 +13,11 @@ using msvc : 14.1 : cl.exe :
<linkflags>RuntimeObject.lib
<linkflags>ole32.lib
;
+
+project user-config ;
+
+lib icuuc : : <name>dummy_lib_that_doesnt_exist ;
+
+lib icuin : : <name>dummy_lib_that_doesnt_exist ;
+
+lib icudt : : <name>dummy_lib_that_doesnt_exist ; \ No newline at end of file
diff --git a/ports/box2d/CMakeLists.txt b/ports/box2d/CMakeLists.txt
new file mode 100644
index 000000000..951554266
--- /dev/null
+++ b/ports/box2d/CMakeLists.txt
@@ -0,0 +1,21 @@
+cmake_minimum_required(VERSION 3.9)
+project(Box2d CXX)
+
+file(GLOB_RECURSE SOURCES Box2D/Box2D/*.cpp)
+
+add_library(Box2D ${SOURCES})
+target_include_directories(Box2D PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Box2D> $<INSTALL_INTERFACE:include>)
+
+install(TARGETS Box2D
+ EXPORT unofficial-box2d-targets
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
+
+install(
+ EXPORT unofficial-box2d-targets
+ FILE unofficial-box2d-config.cmake
+ NAMESPACE unofficial::box2d::
+ DESTINATION share/unofficial-box2d
+)
diff --git a/ports/box2d/CONTROL b/ports/box2d/CONTROL
index 7cfcb01a0..220a5a058 100644
--- a/ports/box2d/CONTROL
+++ b/ports/box2d/CONTROL
@@ -1,3 +1,3 @@
Source: box2d
-Version: 2.3.1-374664b
+Version: 2.3.1-374664b-1
Description: Box2D (http://box2d.org) is an open source C++ engine for simulating rigid bodies in 2D.
diff --git a/ports/box2d/portfile.cmake b/ports/box2d/portfile.cmake
index 8bfc5fb54..c35f37444 100644
--- a/ports/box2d/portfile.cmake
+++ b/ports/box2d/portfile.cmake
@@ -1,62 +1,35 @@
-
-# Get output directory
-set(PROJECT_ARCH_BITS "x64")
-if(TRIPLET_SYSTEM_ARCH MATCHES "x86")
- set(PROJECT_ARCH_BITS "x32")
-elseif(TRIPLET_SYSTEM_ARCH MATCHES "arm")
- message(FATAL_ERROR "ARM not supported")
-endif(TRIPLET_SYSTEM_ARCH MATCHES "x86")
-
include(vcpkg_common_functions)
-if(EXISTS "${CURRENT_BUILDTREES_DIR}/src/.git")
- file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("Box2D only supports building as a static library")
+ set(VCPKG_LIBRARY_LINKAGE "static")
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO erincatto/Box2D
REF 374664b2a4ce2e7c24fbad6e1ed34bebcc9ab6bc
- SHA512 ae2bbee66644eea91d0e92156a4bece44053dfa8fd6b8630712a73b92210d4c75153df94e3386c64c49796b001af1ad7dee44868c16368b114567e1f6931d242
+ SHA512 39074bab01b36104aa685bfe39b40eb903d9dfb54cc3ba8098125db5291f55a8a9e578fc59563b2e8743abbbb26f419be7ae1524e235e7bd759257f99ff96bda
HEAD_REF master
)
-# Put the licence and readme files where vcpkg expects it
-message(STATUS "Packaging license")
-file(COPY ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/box2d)
-file(COPY ${SOURCE_PATH}/Box2D/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/box2d)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/box2d/License.txt ${CURRENT_PACKAGES_DIR}/share/box2d/copyright)
-message(STATUS "Packaging license done")
-
-# Building:
-set(OUTPUTS_PATH "${SOURCE_PATH}/Box2D/Build/vs2015/bin/${PROJECT_ARCH_BITS}")
-
-vcpkg_build_msbuild(PROJECT_PATH ${SOURCE_PATH}/Box2D/Build/vs2015/Box2D.vcxproj)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
-message(STATUS "Packaging ${TARGET_TRIPLET}-Release lib")
-file(
- INSTALL ${OUTPUTS_PATH}/Release/
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib
- FILES_MATCHING PATTERN "*.lib"
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
)
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/Box2D.lib ${CURRENT_PACKAGES_DIR}/lib/box2d.lib)
-message(STATUS "Packaging ${TARGET_TRIPLET}-Release lib done")
+vcpkg_install_cmake()
-message(STATUS "Packaging ${TARGET_TRIPLET}-Debug lib")
-file(
- INSTALL ${OUTPUTS_PATH}/Debug/
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
- FILES_MATCHING PATTERN "*.lib"
-)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/Box2D.lib ${CURRENT_PACKAGES_DIR}/debug/lib/box2d.lib)
-message(STATUS "Packaging ${TARGET_TRIPLET}-Debug lib done")
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-box2d TARGET_PATH share/unofficial-box2d)
-message(STATUS "Packaging headers")
file(
COPY ${SOURCE_PATH}/Box2D/Box2D
DESTINATION ${CURRENT_PACKAGES_DIR}/include
- PATTERN "*.h"
+ FILES_MATCHING PATTERN "*.h"
)
-message(STATUS "Packaging headers done")
vcpkg_copy_pdbs()
+
+file(COPY ${SOURCE_PATH}/Box2D/License.txt ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/box2d)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/box2d/License.txt ${CURRENT_PACKAGES_DIR}/share/box2d/copyright)
diff --git a/ports/breakpad/CMakeLists.txt b/ports/breakpad/CMakeLists.txt
new file mode 100644
index 000000000..f4c19cb8c
--- /dev/null
+++ b/ports/breakpad/CMakeLists.txt
@@ -0,0 +1,49 @@
+cmake_minimum_required(VERSION 3.8)
+project(breakpad CXX)
+
+add_definitions(
+ -DNOMINMAX
+ -DUNICODE
+ -DWIN32_LEAN_AND_MEAN
+ -D_CRT_SECURE_NO_WARNINGS
+ -D_CRT_SECURE_NO_DEPRECATE
+ -D_CRT_NONSTDC_NO_DEPRECATE
+)
+
+set(CMAKE_DEBUG_POSTFIX d)
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+string(COMPARE EQUAL "${CMAKE_BUILD_TYPE}" "Release" DEFAULT_INSTALL_HEADERS)
+option(INSTALL_HEADERS "Install header files" ${DEFAULT_INSTALL_HEADERS})
+
+file(GLOB_RECURSE SOURCES src/processor/*.cc)
+list(FILTER SOURCES EXCLUDE REGEX
+ "_unittest|synth_minidump|/tests|/testdata|/linux|/mac|/android|/solaris|microdump_stackwalk|minidump_dump|minidump_stackwalk")
+
+find_library(LIBDISASM_LIB NAMES libdisasmd libdisasm)
+
+add_library(libbreakpad ${SOURCES})
+target_link_libraries(libbreakpad PRIVATE ${LIBDISASM_LIB})
+
+target_include_directories(libbreakpad
+ PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
+ $<INSTALL_INTERFACE:include>
+)
+
+install(TARGETS libbreakpad EXPORT unofficial-breakpad-targets
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(INSTALL_HEADERS)
+ install(DIRECTORY src/google_breakpad DESTINATION include)
+endif()
+
+install(
+ EXPORT unofficial-breakpad-targets
+ FILE unofficial-breakpad-config.cmake
+ NAMESPACE unofficial::breakpad::
+ DESTINATION share/unofficial-breakpad
+)
diff --git a/ports/breakpad/CONTROL b/ports/breakpad/CONTROL
new file mode 100644
index 000000000..d6622f15a
--- /dev/null
+++ b/ports/breakpad/CONTROL
@@ -0,0 +1,4 @@
+Source: breakpad
+Version: 2018-04-17
+Build-Depends: libdisasm
+Description: a set of client and server components which implement a crash-reporting system.
diff --git a/ports/breakpad/portfile.cmake b/ports/breakpad/portfile.cmake
new file mode 100644
index 000000000..939988ef2
--- /dev/null
+++ b/ports/breakpad/portfile.cmake
@@ -0,0 +1,24 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/breakpad
+ REF 9eac2058b70615519b2c4d8c6bdbfca1bd079e39
+ SHA512 2bdbfc7455bde3b93c1b0e3d47250722525ffeddbe99277e48d0c2930c461162e9342ed7560b4ea5d1245baf162b1102f0e01176611b403c672435e4f518a7fd
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-breakpad TARGET_PATH share/unofficial-breakpad)
+
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/breakpad RENAME copyright)
diff --git a/ports/brotli/CONTROL b/ports/brotli/CONTROL
new file mode 100644
index 000000000..512faf203
--- /dev/null
+++ b/ports/brotli/CONTROL
@@ -0,0 +1,3 @@
+Source: brotli
+Version: 1.0.2-3
+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
new file mode 100644
index 000000000..64f1485a6
--- /dev/null
+++ b/ports/brotli/portfile.cmake
@@ -0,0 +1,45 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/brotli
+ REF v1.0.2
+ SHA512 b3ec98159e63b4169dea3e958d60d89247dc1c0f78aab27bfffb2ece659fa024df990d410aa15c12b2082d42e3785e32ec248dce2b116c7f34e98bb6337f9fc9
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DBROTLI_DISABLE_TESTS=ON
+)
+
+vcpkg_install_cmake()
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/brotli)
+file(GLOB EXES ${CURRENT_PACKAGES_DIR}/bin/brotli ${CURRENT_PACKAGES_DIR}/bin/brotli.exe)
+file(GLOB DEBUG_EXES ${CURRENT_PACKAGES_DIR}/debug/bin/brotli ${CURRENT_PACKAGES_DIR}/debug/bin/brotli.exe)
+file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/brotli)
+file(REMOVE ${EXES} ${DEBUG_EXES})
+
+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"
+ "${CURRENT_PACKAGES_DIR}/lib/*.a"
+ "${CURRENT_PACKAGES_DIR}/debug/lib/*.a"
+ )
+ list(FILTER LIBS EXCLUDE REGEX "-static\\.lib\$")
+ list(FILTER LIBS EXCLUDE REGEX "-static\\.a\$")
+ file(REMOVE_RECURSE ${LIBS} ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+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/bullet3/CONTROL b/ports/bullet3/CONTROL
index 6320c6578..36f8b1838 100644
--- a/ports/bullet3/CONTROL
+++ b/ports/bullet3/CONTROL
@@ -1,3 +1,3 @@
Source: bullet3
-Version: 2.86.1
+Version: 2.87
Description: Bullet Physics is a professional collision detection, rigid body, and soft body dynamics library
diff --git a/ports/bullet3/portfile.cmake b/ports/bullet3/portfile.cmake
index 17d6f8ea7..f86f323f3 100644
--- a/ports/bullet3/portfile.cmake
+++ b/ports/bullet3/portfile.cmake
@@ -1,11 +1,23 @@
+# 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/bullet3-2.86.1)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/bulletphysics/bullet3/archive/2.86.1.zip"
- FILENAME "bullet3-2.86.1.zip"
- SHA512 96c67bed63db4b7d46196cebda57b80543ea37bd19f013adcfe19ee6c2c3319ed007bcd1ebbe345d8c75b7e80588f4a7d85cb6a07e1a5eea759d97ce4d94f972
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO bulletphysics/bullet3
+ REF 2.87
+ SHA512 649e470223295666eda6f7ff59d03097637c2645b5cd951977060ae14b89f56948ce03e437e83c986d26876f187d7ee34e790bc3882d5d66da9af89a4ab81c21
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
@@ -22,14 +34,14 @@ vcpkg_configure_cmake(
-DINSTALL_LIBS=ON
)
-vcpkg_build_cmake()
vcpkg_install_cmake()
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(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/bullet3)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/bullet3/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/bullet3/copyright)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/bullet/BulletInverseDynamics/details)
vcpkg_copy_pdbs()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/bullet3 RENAME copyright) \ No newline at end of file
diff --git a/ports/butteraugli/CMakeLists.txt b/ports/butteraugli/CMakeLists.txt
new file mode 100644
index 000000000..6a2e5ca02
--- /dev/null
+++ b/ports/butteraugli/CMakeLists.txt
@@ -0,0 +1,39 @@
+cmake_minimum_required(VERSION 3.8.0)
+project(butteraugli CXX)
+
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+add_compile_options(-D_CRT_SECURE_NO_WARNINGS -DNOMINMAX)
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018)
+else()
+ add_compile_options(-std=c++11)
+endif()
+
+find_package(JPEG REQUIRED)
+find_package(PNG REQUIRED)
+
+include_directories("." ${JPEG_INCLUDE_DIR} ${PNG_INCLUDE_DIRS})
+
+add_library(butteraugli_lib butteraugli/butteraugli.cc)
+
+install(
+ TARGETS butteraugli_lib
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_TOOLS)
+ add_executable(butteraugli butteraugli/butteraugli_main.cc)
+ find_library(TURBO turbojpeg)
+ target_link_libraries(butteraugli butteraugli_lib ${JPEG_LIBRARIES} ${TURBO} ${PNG_LIBRARIES})
+
+ install (
+ TARGETS butteraugli
+ RUNTIME DESTINATION tools/butteraugli
+ )
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES butteraugli/butteraugli.h DESTINATION include/butteraugli)
+endif()
diff --git a/ports/butteraugli/CONTROL b/ports/butteraugli/CONTROL
new file mode 100644
index 000000000..5d9c92dfd
--- /dev/null
+++ b/ports/butteraugli/CONTROL
@@ -0,0 +1,4 @@
+Source: butteraugli
+Version: 2018-02-25
+Description: butteraugli estimates the psychovisual difference between two images
+Build-Depends: libpng, libjpeg-turbo
diff --git a/ports/butteraugli/missing_header.patch b/ports/butteraugli/missing_header.patch
new file mode 100644
index 000000000..11d314fad
--- /dev/null
+++ b/ports/butteraugli/missing_header.patch
@@ -0,0 +1,12 @@
+diff --git "a/butteraugli/butteraugli_main.cc" "b/butteraugli/butteraugli_main.cc"
+index f38af1d..ebf3197 100644
+--- "a/butteraugli/butteraugli_main.cc"
++++ "b/butteraugli/butteraugli_main.cc"
+@@ -2,6 +2,7 @@
+ #include <cstdint>
+ #include <cstdio>
+ #include <vector>
++#include <algorithm>
+ #include "butteraugli/butteraugli.h"
+
+ extern "C" {
diff --git a/ports/butteraugli/portfile.cmake b/ports/butteraugli/portfile.cmake
new file mode 100644
index 000000000..b6f690539
--- /dev/null
+++ b/ports/butteraugli/portfile.cmake
@@ -0,0 +1,30 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/butteraugli
+ REF 856a4da68d02d30e3bf843e33536f2b3a698b249
+ SHA512 f02ee97f186b59cc685a63095e5618aedbfebf08ab2cf438189fc4214c7d562506368ec210c08df236132dc2f855b6b0a6226bd6dc27c1c04e9c1b0b0ac4f1df
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/missing_header.patch"
+ )
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/butteraugli)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/butteraugli RENAME copyright)
diff --git a/ports/bzip2/CONTROL b/ports/bzip2/CONTROL
index 1c7303c22..613d3f251 100644
--- a/ports/bzip2/CONTROL
+++ b/ports/bzip2/CONTROL
@@ -1,3 +1,3 @@
Source: bzip2
-Version: 1.0.6-1
+Version: 1.0.6-2
Description: High-quality data compressor.
diff --git a/ports/bzip2/portfile.cmake b/ports/bzip2/portfile.cmake
index f5823fb94..d4dd18fd5 100644
--- a/ports/bzip2/portfile.cmake
+++ b/ports/bzip2/portfile.cmake
@@ -36,3 +36,5 @@ file(WRITE ${CURRENT_PACKAGES_DIR}/include/bzlib.h "${BZLIB_H}")
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/bzip2)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/bzip2/LICENSE ${CURRENT_PACKAGES_DIR}/share/bzip2/copyright)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/bzip2/usage b/ports/bzip2/usage
new file mode 100644
index 000000000..084bf390a
--- /dev/null
+++ b/ports/bzip2/usage
@@ -0,0 +1,4 @@
+The package bzip2 is compatible with built-in CMake targets:
+
+ find_package(BZip2 REQUIRED)
+ target_link_libraries(main PRIVATE BZip2::BZip2)
diff --git a/ports/c-ares/CONTROL b/ports/c-ares/CONTROL
index 977066b4c..70eb454e4 100644
--- a/ports/c-ares/CONTROL
+++ b/ports/c-ares/CONTROL
@@ -1,4 +1,4 @@
Source: c-ares
-Version: 1.12.1-dev-40eb41f
+Version: cares-1_14_0
Description: A C library for asynchronous DNS requests
-Build-Depends: \ No newline at end of file
+Build-Depends:
diff --git a/ports/c-ares/portfile.cmake b/ports/c-ares/portfile.cmake
index 4c97ed46e..4a569b567 100644
--- a/ports/c-ares/portfile.cmake
+++ b/ports/c-ares/portfile.cmake
@@ -1,10 +1,14 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "c-ares does not currently support UWP.")
+endif()
+
include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO c-ares/c-ares
- REF 40eb41f522eb9a86f9397352f10d1e63c89f2c54
- SHA512 901d7da97098f79d13ae8d72c85936bd15fbd6b65399c247462ad5367ac85ff32c90325998c21364f959e1bde2c8b7dbc9d9d7524ea34e6bc48dfb3854c199e1
+ REF cares-1_14_0
+ SHA512 3ae7938648aec2fae651667bef02139f7eef2e7cd425cc310b7e3d56f409646f6170d37a3c9269aa654bfb1ced0a52b89fe49be9023edf8ff57efd0efaf59052
HEAD_REF master
)
@@ -28,14 +32,17 @@ vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/c-ares")
-if(VCPKG_CRT_LINKAGE STREQUAL static)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
else()
- file(GLOB RELEASE_EXE_FILES "${CURRENT_PACKAGES_DIR}/bin/*.exe")
- file(REMOVE ${RELEASE_EXE_FILES})
- file(GLOB DEBUG_EXE_FILES "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe")
- file(REMOVE ${DEBUG_EXE_FILES})
+ file(GLOB EXE_FILES
+ "${CURRENT_PACKAGES_DIR}/bin/*.exe"
+ "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe"
+ )
+ if (EXE_FILES)
+ file(REMOVE ${EXE_FILES})
+ endif()
endif()
vcpkg_copy_pdbs()
diff --git a/ports/caf/CONTROL b/ports/caf/CONTROL
new file mode 100644
index 000000000..e9b8cd0bf
--- /dev/null
+++ b/ports/caf/CONTROL
@@ -0,0 +1,4 @@
+Source: caf
+Version: 0.15.7
+Build-Depends: openssl
+Description: an open source C++11 actor model implementation featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more.
diff --git a/ports/caf/openssl-version-override.patch b/ports/caf/openssl-version-override.patch
new file mode 100644
index 000000000..bccbd6ca4
--- /dev/null
+++ b/ports/caf/openssl-version-override.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a7b75f7..794af1d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -545,6 +545,9 @@ if(NOT CAF_NO_OPENSSL)
+ message(STATUS
+ "Disable OpenSSL. Required >= 1.0.1 due to TLSv1.2 support.")
+ set(CAF_NO_OPENSSL yes)
++ elseif(CAF_OPENSSL_VERSION_OVERRIDE)
++ include_directories(BEFORE ${OPENSSL_INCLUDE_DIR})
++ add_optional_caf_lib(openssl)
+ else()
+ # Check if openssl headers and library versions match
+ set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES})
diff --git a/ports/caf/portfile.cmake b/ports/caf/portfile.cmake
new file mode 100644
index 000000000..aecd84116
--- /dev/null
+++ b/ports/caf/portfile.cmake
@@ -0,0 +1,48 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(VCPKG_LIBRARY_LINKAGE "static")
+ message("CAF only supports static library linkage")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO actor-framework/actor-framework
+ REF 0.15.7
+ SHA512 ff0fa205ad71677b84fa09a2e6ce6bb6d1bc9b790bbbc3ac51505467402ff61a218528004212efa2063c798cc512972d318a2c9423067ee51cef719de2b6b186
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/openssl-version-override.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON
+ -DCAF_BUILD_STATIC=ON
+ -DCAF_BUILD_STATIC_ONLY=ON
+ -DCAF_NO_TOOLS=ON
+ -DCAF_NO_EXAMPLES=ON
+ -DCAF_NO_BENCHMARKS=ON
+ -DCAF_NO_UNIT_TESTS=ON
+ -DCAF_NO_PROTOBUF_EXAMPLES=ON
+ -DCAF_NO_QT_EXAMPLES=ON
+ -DCAF_NO_OPENCL=ON
+ -DCAF_NO_OPENSSL=OFF
+ -DCAF_NO_CURL_EXAMPLES=ON
+ -DCAF_OPENSSL_VERSION_OVERRIDE=ON
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/caf RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/caffe2/CONTROL b/ports/caffe2/CONTROL
new file mode 100644
index 000000000..d09de8e6d
--- /dev/null
+++ b/ports/caffe2/CONTROL
@@ -0,0 +1,4 @@
+Source: caffe2
+Version: 0.8.1
+Build-Depends: lmdb, gflags, glog, eigen3, protobuf
+Description: Caffe2 is a lightweight, modular, and scalable deep learning framework.
diff --git a/ports/caffe2/msvc-fixes.patch b/ports/caffe2/msvc-fixes.patch
new file mode 100644
index 000000000..446dbd44e
--- /dev/null
+++ b/ports/caffe2/msvc-fixes.patch
@@ -0,0 +1,396 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8054d98..35934f5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -56,6 +56,14 @@ option(USE_ROCKSDB "Use RocksDB" ON)
+ option(USE_SNPE "Use Qualcomm's SNPE library" OFF)
+ option(USE_THREADS "Use Threads" ON)
+ option(USE_ZMQ "Use ZMQ" OFF)
++if(MSVC)
++ if(BUILD_BUILD_SHARED_LIBS)
++ set(USE_STATIC_RUNTIME_DEFAULT OFF)
++ else()
++ set(USE_STATIC_RUNTIME_DEFAULT ON)
++ endif()
++ option(USE_STATIC_RUNTIME "Link to the static runtime (/MT) instead of dynamic (/MD)" ${USE_STATIC_RUNTIME_DEFAULT})
++endif()
+
+ # External projects
+ include(ExternalProject)
+@@ -99,7 +107,7 @@ else()
+ foreach(flag_var
+ CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
+ CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
+- if (NOT ${BUILD_SHARED_LIBS})
++ if (USE_STATIC_RUNTIME)
+ if(${flag_var} MATCHES "/MD")
+ string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
+ endif(${flag_var} MATCHES "/MD")
+diff --git a/caffe2/core/logging.cc b/caffe2/core/logging.cc
+index 1b4468e..1379f3a 100644
+--- a/caffe2/core/logging.cc
++++ b/caffe2/core/logging.cc
+@@ -117,7 +117,7 @@ using fLB::FLAGS_logtostderr;
+
+ #endif // CAFFE2_USE_GFLAGS
+
+-CAFFE2_DEFINE_int(caffe2_log_level, google::ERROR,
++CAFFE2_DEFINE_int(caffe2_log_level, google::GLOG_ERROR,
+ "The minimum log level that caffe2 will output.");
+
+ // Google glog's api does not have an external function that allows one to check
+@@ -134,15 +134,23 @@ bool IsGoogleLoggingInitialized();
+ namespace caffe2 {
+ bool InitCaffeLogging(int* argc, char** argv) {
+ if (*argc == 0) return true;
+- if (!::google::glog_internal_namespace_::IsGoogleLoggingInitialized()) {
++#if !(defined(_MSC_VER) && defined(GLOG_IS_A_DLL))
++ // IsGoogleLoggingInitialized is not exported from the glog DLL
++ // so we can't call it. If our program calls InitGoogleLogging twice glog will
++ // abort it.
++ if (!::google::glog_internal_namespace_::IsGoogleLoggingInitialized())
++#endif
++ {
+ ::google::InitGoogleLogging(argv[0]);
++#if !defined(_MSC_VER)
+ ::google::InstallFailureSignalHandler();
++#endif
+ }
+ // If caffe2_log_level is set and is lower than the min log level by glog,
+ // we will transfer the caffe2_log_level setting to glog to override that.
+ FLAGS_minloglevel = std::min(FLAGS_caffe2_log_level, FLAGS_minloglevel);
+ // If caffe2_log_level is explicitly set, let's also turn on logtostderr.
+- if (FLAGS_caffe2_log_level < google::ERROR) {
++ if (FLAGS_caffe2_log_level < google::GLOG_ERROR) {
+ FLAGS_logtostderr = 1;
+ }
+ // Also, transfer the caffe2_log_level verbose setting to glog.
+@@ -154,7 +162,7 @@ bool InitCaffeLogging(int* argc, char** argv) {
+
+ void ShowLogInfoToStderr() {
+ FLAGS_logtostderr = 1;
+- FLAGS_minloglevel = std::min(FLAGS_minloglevel, google::INFO);
++ FLAGS_minloglevel = std::min(FLAGS_minloglevel, google::GLOG_INFO);
+ }
+ } // namespace caffe2
+
+diff --git a/caffe2/core/logging_is_google_glog.h b/caffe2/core/logging_is_google_glog.h
+index 7dd2b4f..2df4435 100644
+--- a/caffe2/core/logging_is_google_glog.h
++++ b/caffe2/core/logging_is_google_glog.h
+@@ -8,7 +8,7 @@
+ // it. Some mobile platforms do not like stl_logging, so we add an
+ // overload in that case as well.
+
+-#if !defined(__CUDACC__) && !defined(CAFFE2_USE_MINIMAL_GOOGLE_GLOG)
++#if !defined(__CUDARCH__) && !defined(CAFFE2_USE_MINIMAL_GOOGLE_GLOG)
+ #include <glog/stl_logging.h>
+ #else // !defined(__CUDACC__) && !!defined(CAFFE2_USE_MINIMAL_GOOGLE_GLOG)
+
+diff --git a/caffe2/image/image_input_op.h b/caffe2/image/image_input_op.h
+index 9604e98..7d90014 100644
+--- a/caffe2/image/image_input_op.h
++++ b/caffe2/image/image_input_op.h
+@@ -214,13 +214,13 @@ ImageInputOp<Context>::ImageInputOp(
+
+ // hard-coded PCA eigenvectors and eigenvalues, based on RBG channel order
+ color_lighting_eigvecs_.push_back(
+- std::vector<float>{-144.7125, 183.396, 102.2295});
++ std::vector<float>{-144.7125f, 183.396f, 102.2295f});
+ color_lighting_eigvecs_.push_back(
+- std::vector<float>{-148.104, -1.1475, -207.57});
++ std::vector<float>{-148.104f, -1.1475f, -207.57f});
+ color_lighting_eigvecs_.push_back(
+- std::vector<float>{-148.818, -177.174, 107.1765});
++ std::vector<float>{-148.818f, -177.174f, 107.1765f});
+
+- color_lighting_eigvals_ = std::vector<float>{0.2175, 0.0188, 0.0045};
++ color_lighting_eigvals_ = std::vector<float>{0.2175f, 0.0188f, 0.0045f};
+
+ CAFFE_ENFORCE_GT(batch_size_, 0, "Batch size should be nonnegative.");
+ if (use_caffe_datum_) {
+diff --git a/caffe2/operators/batch_matmul_op.cc b/caffe2/operators/batch_matmul_op.cc
+index c2e578d..28cf030 100644
+--- a/caffe2/operators/batch_matmul_op.cc
++++ b/caffe2/operators/batch_matmul_op.cc
+@@ -34,7 +34,7 @@ size (C x K x N) where C is the batch size and i ranges from 0 to C-1.
+ b_dim1 = in[1].dims(2);
+ }
+ return vector<TensorShape> {
+- CreateTensorShape(vector<int> {
++ CreateTensorShape(vector<TIndex> {
+ in[0].dims(0), a_dim0, b_dim1},
+ in[0].data_type())
+ };
+diff --git a/caffe2/operators/layer_norm_op.cu b/caffe2/operators/layer_norm_op.cu
+index df13fc3..68bbc97 100644
+--- a/caffe2/operators/layer_norm_op.cu
++++ b/caffe2/operators/layer_norm_op.cu
+@@ -252,8 +252,8 @@ bool LayerNormGradientOp<CUDAContext>::DoRunWithType<float>() {
+ auto* ginput = Output(0);
+
+ const auto canonical_axis = norm_inputs.canonical_axis_index(axis_);
+- const int left = norm_inputs.size_to_dim(canonical_axis);
+- const int right = norm_inputs.size_from_dim(canonical_axis);
++ const TIndex left = norm_inputs.size_to_dim(canonical_axis);
++ const TIndex right = norm_inputs.size_from_dim(canonical_axis);
+
+ ginput->ResizeLike(norm_inputs);
+ std::vector<TIndex> stats_dims(
+@@ -261,7 +261,7 @@ bool LayerNormGradientOp<CUDAContext>::DoRunWithType<float>() {
+ stats_dims.push_back(1);
+ dmean_.Resize(stats_dims);
+ dstdev_.Resize(stats_dims);
+- gscratch_.Resize(std::vector<size_t>{left, right});
++ gscratch_.Resize(std::vector<TIndex>{left, right});
+
+ std::vector<int> segs(left + 1);
+ std::iota(segs.begin(), segs.end(), 0);
+@@ -291,7 +291,7 @@ bool LayerNormGradientOp<CUDAContext>::DoRunWithType<float>() {
+ dout.data<float>(),
+ gscratch_.mutable_data<float>());
+
+- dstdev_.Resize(vector<size_t>{left, 1});
++ dstdev_.Resize(vector<TIndex>{left, 1});
+ // dstdev = reduce(temp1)
+ allocScratchAndReduce(
+ gscratch_.data<float>(),
+diff --git a/caffe2/operators/lengths_top_k_op.cc b/caffe2/operators/lengths_top_k_op.cc
+index c871d53..bad741a 100644
+--- a/caffe2/operators/lengths_top_k_op.cc
++++ b/caffe2/operators/lengths_top_k_op.cc
+@@ -14,7 +14,7 @@ bool LengthsTopKOp<T, Context>::RunOnDevice() {
+
+ output_topk_values->Resize(N * k_);
+ output_topk_indices->Resize(N * k_);
+- std::vector<int> output_dims = std::vector<int>({N, k_});
++ std::vector<TIndex> output_dims = std::vector<TIndex>({N, k_});
+ output_topk_values->Reshape(output_dims);
+ output_topk_indices->Reshape(output_dims);
+ T* output_topk_values_data = output_topk_values->template mutable_data<T>();
+diff --git a/caffe2/operators/pool_op_cudnn.cu b/caffe2/operators/pool_op_cudnn.cu
+index a380d8d..b0cd326 100644
+--- a/caffe2/operators/pool_op_cudnn.cu
++++ b/caffe2/operators/pool_op_cudnn.cu
+@@ -467,6 +467,15 @@ class CuDNNPoolGradientOp : public ConvPoolOpBase<CUDAContext> {
+ cudnnPoolingDescriptor_t pooling_desc_;
+ cudnnPoolingMode_t mode_;
+
++// MSVC defines IN and OUT in minwindef.h
++#ifdef IN
++#undef IN
++#endif
++
++#ifdef OUT
++#undef OUT
++#endif
++
+ // Input: X, Y, dY
+ // Output: dX
+ INPUT_TAGS(IN, OUT, OUT_GRAD);
+diff --git a/caffe2/operators/recurrent_op_cudnn.cc b/caffe2/operators/recurrent_op_cudnn.cc
+index 7777813..58bc8c3 100644
+--- a/caffe2/operators/recurrent_op_cudnn.cc
++++ b/caffe2/operators/recurrent_op_cudnn.cc
+@@ -115,10 +115,11 @@ void RecurrentBaseOp<T>::initialize(
+
+ // RNN setup
+ {
+- CUDNN_ENFORCE(cudnnSetRNNDescriptor(
++// Do not use #if condition inside CUDNN_ENFORCE
++// to avoid macro expansion errors.
+ #if CUDNN_MAJOR >= 7
++CUDNN_ENFORCE(cudnnSetRNNDescriptor(
+ cudnn_wrapper_.inline_cudnn_handle(),
+-#endif
+ rnnDesc_,
+ hiddenSize,
+ numLayers,
+@@ -126,10 +127,19 @@ void RecurrentBaseOp<T>::initialize(
+ rnnInput,
+ rnnDirection,
+ rnnMode,
+-#if CUDNN_MAJOR >= 7
+ CUDNN_RNN_ALGO_STANDARD, // TODO: verify correctness / efficiency.
+-#endif
+ cudnnTypeWrapper<T>::type));
++#else
++ CUDNN_ENFORCE(cudnnSetRNNDescriptor(
++ rnnDesc_,
++ hiddenSize,
++ numLayers,
++ dropoutDesc_,
++ rnnInput,
++ rnnDirection,
++ rnnMode,
++ cudnnTypeWrapper<T>::type));
++#endif // CUDNN_MAJOR >= 7
+ }
+ // X setup
+ {
+diff --git a/caffe2/utils/CMakeLists.txt b/caffe2/utils/CMakeLists.txt
+index f90af5a..919a638 100644
+--- a/caffe2/utils/CMakeLists.txt
++++ b/caffe2/utils/CMakeLists.txt
+@@ -27,6 +27,10 @@ exclude(Caffe2_CPU_SRCS "${Caffe2_CPU_SRCS}" ${Caffe2_GPU_SRCS})
+ # will directly link nnpack pthreadpool.
+ file(GLOB_RECURSE tmp pthreadpool*)
+ exclude(Caffe2_CPU_SRCS "${Caffe2_CPU_SRCS}" ${tmp})
++if(MSVC)
++ file(GLOB_RECURSE tmp *ThreadPool.cc)
++ exclude(Caffe2_CPU_SRCS "${Caffe2_CPU_SRCS}" ${tmp})
++endif()
+
+ # ---[ GPU test files
+ file(GLOB_RECURSE tmp *_gpu_test.cc)
+diff --git a/caffe2/utils/GpuBitonicSort.cuh b/caffe2/utils/GpuBitonicSort.cuh
+index f52bb50..a199bcb 100644
+--- a/caffe2/utils/GpuBitonicSort.cuh
++++ b/caffe2/utils/GpuBitonicSort.cuh
+@@ -39,9 +39,11 @@ __device__ inline void bitonicSort(K* keys,
+ // Assume the sort is taking place in shared memory
+ // static_assert(Power2SortSize * (sizeof(K) + sizeof(V)) < 32768,
+ // "sort data too large (>32768 bytes)");
+- static_assert(math::integerIsPowerOf2(Power2SortSize),
++ static_assert(math::integerIsPowerOf2(
++ std::integral_constant<int, Power2SortSize>::value),
+ "sort size must be power of 2");
+- static_assert(math::integerIsPowerOf2(ThreadsPerBlock),
++ static_assert(math::integerIsPowerOf2(
++ std::integral_constant<int, ThreadsPerBlock>::value),
+ "threads in block must be power of 2");
+
+ // If what we are sorting is too small, then not all threads
+@@ -107,7 +109,8 @@ __device__ inline void warpBitonicSort(K* keys,
+ // Smaller sorts should use a warp shuffle sort
+ static_assert(Power2SortSize > kWarpSize,
+ "sort not large enough");
+- static_assert(math::integerIsPowerOf2(Power2SortSize),
++ static_assert(math::integerIsPowerOf2(
++ std::integral_constant<int, Power2SortSize>::value),
+ "sort size must be power of 2");
+ static_assert(Power2SortSize <= kMaxBitonicSortSize,
+ "sort size <= 4096 only supported");
+diff --git a/caffe2/utils/math.h b/caffe2/utils/math.h
+index 6c352dc..a1eda9d 100644
+--- a/caffe2/utils/math.h
++++ b/caffe2/utils/math.h
+@@ -426,18 +426,10 @@ constexpr T roundUp(T a, T b) {
+ return divUp<T>(a, b) * b;
+ }
+
+-// Returns true if the given integer type is a power-of-2 (positive only)
+-// Note(jiayq): windows reported an error per
+-// https://github.com/caffe2/caffe2/issues/997
+-// and as a result will make it a macro.
+-#ifdef _MSC_VER
+-#define integerIsPowerOf2(v) ((v) && !((v) & ((v) - 1)))
+-#else // _MSC_VER
+ template <typename T>
+ constexpr bool integerIsPowerOf2(T v) {
+ return (v && !(v & (v - 1)));
+ }
+-#endif // _MSC_VER
+
+ // Returns log2(n) for a positive integer type
+ template <typename T>
+diff --git a/cmake/Cuda.cmake b/cmake/Cuda.cmake
+index df70e2f..ca1b123 100644
+--- a/cmake/Cuda.cmake
++++ b/cmake/Cuda.cmake
+@@ -37,6 +37,10 @@ function(caffe2_detect_installed_gpus out_variable)
+ ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if(__nvcc_res EQUAL 0)
++ # nvcc outputs text containing line breaks when building with MSVC.
++ # The line below prevents CMake from inserting a variable with line
++ # breaks in the cache
++ string(REGEX MATCH "([1-9].[0-9])" __nvcc_out "${__nvcc_out}")
+ string(REPLACE "2.1" "2.1(2.0)" __nvcc_out "${__nvcc_out}")
+ set(CUDA_gpu_detect_output ${__nvcc_out} CACHE INTERNAL "Returned GPU architetures from caffe_detect_gpus tool" FORCE)
+ endif()
+@@ -249,7 +253,7 @@ endif()
+ # Debug and Release symbol support
+ if (MSVC)
+ if (${CMAKE_BUILD_TYPE} MATCHES "Release")
+- if (${BUILD_SHARED_LIBS})
++ if (NOT USE_STATIC_RUNTIME)
+ list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -MD")
+ else()
+ list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -MT")
+@@ -259,7 +263,7 @@ if (MSVC)
+ "Caffe2 currently does not support the combination of MSVC, Cuda "
+ "and Debug mode. Either set USE_CUDA=OFF or set the build type "
+ "to Release")
+- if (${BUILD_SHARED_LIBS})
++ if (NOT USE_STATIC_RUNTIME)
+ list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -MDd")
+ else()
+ list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -MTd")
+diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+index afb6b68..bdad8b6 100644
+--- a/cmake/Dependencies.cmake
++++ b/cmake/Dependencies.cmake
+@@ -182,6 +182,15 @@ if(USE_OPENCV)
+ message(WARNING "Not compiling with OpenCV. Suppress this warning with -DUSE_OPENCV=OFF")
+ set(USE_OPENCV OFF)
+ endif()
++ if(USE_OPENCV AND VCPKG_TARGET_TRIPLET MATCHES static)
++ find_package(LibLZMA QUIET)
++ if(LIBLZMA_FOUND)
++ list(APPEND Caffe2_DEPENDENCY_LIBS ${LIBLZMA_LIBRARIES})
++ else()
++ message(WARNING "Not compiling with OpenCV. Could not find liblzma. Suppress this warning with -DUSE_OPENCV=OFF")
++ set(USE_OPENCV OFF)
++ endif()
++ endif()
+ endif()
+
+ # ---[ FFMPEG
+diff --git a/cmake/Modules/FindGlog.cmake b/cmake/Modules/FindGlog.cmake
+index 1167532..9780ba5 100644
+--- a/cmake/Modules/FindGlog.cmake
++++ b/cmake/Modules/FindGlog.cmake
+@@ -27,6 +27,10 @@ if(MSVC)
+ endif()
+ if(TARGET ${GLOG_LIBRARY})
+ get_target_property(GLOG_INCLUDE_DIR ${GLOG_LIBRARY} INTERFACE_INCLUDE_DIRECTORIES)
++ get_target_property(GLOG_TYPE ${GLOG_LIBRARY} TYPE)
++ if("${GLOG_TYPE}" STREQUAL "SHARED_LIBRARY")
++ add_definitions(-DGLOG_IS_A_DLL=1)
++ endif()
+ endif()
+ else()
+ find_library(GLOG_LIBRARY glog
+diff --git a/cmake/ProtoBuf.cmake b/cmake/ProtoBuf.cmake
+index 89975c8..e37d6da 100644
+--- a/cmake/ProtoBuf.cmake
++++ b/cmake/ProtoBuf.cmake
+@@ -13,6 +13,9 @@ function(custom_protobuf_find)
+ # so we turn it off here.
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations" PARENT_SCOPE)
+ endif()
++ if(MSVC)
++ set(protobuf_MSVC_STATIC_RUNTIME ${USE_STATIC_RUNTIME})
++ endif()
+ add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/protobuf/cmake)
+ caffe2_include_directories(${PROJECT_SOURCE_DIR}/third_party/protobuf/src)
+ list(APPEND Caffe2_DEPENDENCY_LIBS libprotobuf)
+diff --git a/cmake/Summary.cmake b/cmake/Summary.cmake
+index b7423a6..2996484 100644
+--- a/cmake/Summary.cmake
++++ b/cmake/Summary.cmake
+@@ -19,6 +19,13 @@ function (Caffe2_print_configuration_summary)
+ message(STATUS " System : ${CMAKE_SYSTEM_NAME}")
+ message(STATUS " C++ compiler : ${CMAKE_CXX_COMPILER}")
+ message(STATUS " C++ compiler version : ${CMAKE_CXX_COMPILER_VERSION}")
++ if(MSVC)
++ if(USE_STATIC_RUNTIME)
++ message(STATUS " Runtime : static (/MT)")
++ else()
++ message(STATUS " Runtime : dynamic (/MD)")
++ endif()
++ endif()
+ message(STATUS " Protobuf compiler : ${PROTOBUF_PROTOC_EXECUTABLE}")
+ message(STATUS " CXX flags : ${CMAKE_CXX_FLAGS}")
+ message(STATUS " Build type : ${CMAKE_BUILD_TYPE}")
diff --git a/ports/caffe2/portfile.cmake b/ports/caffe2/portfile.cmake
new file mode 100644
index 000000000..d2770f338
--- /dev/null
+++ b/ports/caffe2/portfile.cmake
@@ -0,0 +1,118 @@
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "Warning: Dynamic building not supported yet. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+if (VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
+ message(FATAL_ERROR "Caffe2 cannot be built for the x86 architecture")
+endif()
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO caffe2/caffe2
+ REF eab13a2d5c807bf5d49efd4584787b639a981b79
+ SHA512 505a8540b0c28329c4e2ce443ac8e198c1ee613eb6b932927ee9d04c8afdc95081f3c4581408b7097d567840427b31f6d7626ea80f27e56532f2f2e6acd87023
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/msvc-fixes.patch
+)
+
+if(VCPKG_CRT_LINKAGE STREQUAL static)
+ set(USE_STATIC_RUNTIME ON)
+else()
+ set(USE_STATIC_RUNTIME OFF)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_SHARED_LIBS=OFF
+ # Set to ON to use python
+ -DBUILD_PYTHON=OFF
+ -DUSE_STATIC_RUNTIME=${USE_STATIC_RUNTIME}
+ -DUSE_GFLAGS=ON
+ -DUSE_GLOG=ON
+ # Cannot use OpenCV without USE_CUDA=ON right now
+ -DUSE_OPENCV=OFF
+ -DUSE_THREADS=ON
+ # Uncomment to use MKL
+ # -DBLAS=MKL
+ -DUSE_CUDA=OFF
+ -DUSE_FFMPEG=OFF
+ -DUSE_GLOO=OFF
+ -DUSE_LEVELDB=OFF
+ -DUSE_LITE_PROTO=OFF
+ -DUSE_METAL=OFF
+ -DUSE_MOBILE_OPENGL=OFF
+ -DUSE_MPI=OFF
+ -DUSE_NCCL=OFF
+ -DUSE_NERVANA_GPU=OFF
+ -DUSE_NNPACK=OFF
+ -DUSE_OBSERVERS=OFF
+ -DUSE_OPENMP=ON
+ -DUSE_REDIS=OFF
+ -DUSE_ROCKSDB=OFF
+ -DUSE_SNPE=OFF
+ -DUSE_ZMQ=OFF
+ -DBUILD_TEST=OFF
+ -DPROTOBUF_PROTOC_EXECUTABLE:FILEPATH=${CURRENT_INSTALLED_DIR}/tools/protoc.exe
+)
+
+vcpkg_install_cmake()
+
+# Remove folders from install
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/caffe)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/caffe2)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/caffe)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/caffe2)
+
+# Remove empty directories from include (should probably fix or
+# patch caffe2 install script)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/test)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/python)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/experiments/python)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/contrib/opengl)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/contrib/nnpack)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/contrib/libopencl-stub)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/contrib/docker-ubuntu-14.04)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/binaries)
+
+# Move bin to tools
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools)
+file(GLOB BINARIES ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+foreach(binary ${BINARIES})
+ get_filename_component(binary_name ${binary} NAME)
+ file(RENAME ${binary} ${CURRENT_PACKAGES_DIR}/tools/${binary_name})
+endforeach()
+
+# Remove bin directory
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+endif()
+
+# Remove headers and tools from debug build
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(GLOB BINARIES ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+foreach(binary ${BINARIES})
+ get_filename_component(binary_name ${binary} NAME)
+ file(REMOVE ${binary})
+endforeach()
+
+# Remove bin directory
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+# install license
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/caffe2)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/caffe2 RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/cairo/CMakeLists.txt b/ports/cairo/CMakeLists.txt
index 348732130..692c29cd5 100644
--- a/ports/cairo/CMakeLists.txt
+++ b/ports/cairo/CMakeLists.txt
@@ -1,3 +1,213 @@
cmake_minimum_required(VERSION 3.0)
-project(cairo VERSION 1.14.6 LANGUAGES C CXX)
-add_subdirectory(src)
+project(cairo C)
+
+# Add include directories
+include_directories("." "./win32")
+
+file(GLOB SOURCES
+"cairo-analysis-surface.c"
+"cairo-arc.c"
+"cairo-array.c"
+"cairo-atomic.c"
+"cairo-base64-stream.c"
+"cairo-base85-stream.c"
+"cairo-bentley-ottmann.c"
+"cairo-bentley-ottmann-rectangular.c"
+"cairo-bentley-ottmann-rectilinear.c"
+"cairo-botor-scan-converter.c"
+"cairo-boxes.c"
+"cairo-boxes-intersect.c"
+"cairo.c"
+"cairo-cache.c"
+"cairo-clip.c"
+"cairo-clip-boxes.c"
+"cairo-clip-polygon.c"
+"cairo-clip-region.c"
+"cairo-clip-surface.c"
+"cairo-color.c"
+"cairo-composite-rectangles.c"
+"cairo-compositor.c"
+"cairo-contour.c"
+"cairo-damage.c"
+"cairo-debug.c"
+"cairo-default-context.c"
+"cairo-device.c"
+"cairo-error.c"
+"cairo-fallback-compositor.c"
+"cairo-fixed.c"
+"cairo-font-face.c"
+"cairo-font-face-twin.c"
+"cairo-font-face-twin-data.c"
+"cairo-font-options.c"
+"cairo-freelist.c"
+"cairo-freed-pool.c"
+"cairo-gstate.c"
+"cairo-hash.c"
+"cairo-hull.c"
+"cairo-image-compositor.c"
+"cairo-image-info.c"
+"cairo-image-source.c"
+"cairo-image-surface.c"
+"cairo-line.c"
+"cairo-lzw.c"
+"cairo-matrix.c"
+"cairo-mask-compositor.c"
+"cairo-mesh-pattern-rasterizer.c"
+"cairo-mempool.c"
+"cairo-misc.c"
+"cairo-mono-scan-converter.c"
+"cairo-mutex.c"
+"cairo-no-compositor.c"
+"cairo-observer.c"
+"cairo-output-stream.c"
+"cairo-paginated-surface.c"
+"cairo-path-bounds.c"
+"cairo-path.c"
+"cairo-path-fill.c"
+"cairo-path-fixed.c"
+"cairo-path-in-fill.c"
+"cairo-path-stroke.c"
+"cairo-path-stroke-boxes.c"
+"cairo-path-stroke-polygon.c"
+"cairo-path-stroke-traps.c"
+"cairo-path-stroke-tristrip.c"
+"cairo-pattern.c"
+"cairo-pen.c"
+"cairo-polygon.c"
+"cairo-polygon-intersect.c"
+"cairo-polygon-reduce.c"
+"cairo-raster-source-pattern.c"
+"cairo-recording-surface.c"
+"cairo-rectangle.c"
+"cairo-rectangular-scan-converter.c"
+"cairo-region.c"
+"cairo-rtree.c"
+"cairo-scaled-font.c"
+"cairo-shape-mask-compositor.c"
+"cairo-slope.c"
+"cairo-spans.c"
+"cairo-spans-compositor.c"
+"cairo-spline.c"
+"cairo-stroke-dash.c"
+"cairo-stroke-style.c"
+"cairo-surface.c"
+"cairo-surface-clipper.c"
+"cairo-surface-fallback.c"
+"cairo-surface-observer.c"
+"cairo-surface-offset.c"
+"cairo-surface-snapshot.c"
+"cairo-surface-subsurface.c"
+"cairo-surface-wrapper.c"
+"cairo-time.c"
+"cairo-tor-scan-converter.c"
+"cairo-tor22-scan-converter.c"
+"cairo-clip-tor-scan-converter.c"
+"cairo-tag-attributes.c"
+"cairo-tag-stack.c"
+"cairo-toy-font-face.c"
+"cairo-traps.c"
+"cairo-tristrip.c"
+"cairo-traps-compositor.c"
+"cairo-unicode.c"
+"cairo-user-font.c"
+"cairo-version.c"
+"cairo-wideint.c"
+# win32
+"win32/cairo-win32-debug.c"
+"win32/cairo-win32-device.c"
+"win32/cairo-win32-gdi-compositor.c"
+"win32/cairo-win32-system.c"
+"win32/cairo-win32-surface.c"
+"win32/cairo-win32-display-surface.c"
+"win32/cairo-win32-printing-surface.c"
+"win32/cairo-win32-font.c"
+# generic font support
+"cairo-cff-subset.c"
+"cairo-scaled-font-subsets.c"
+"cairo-truetype-subset.c"
+"cairo-type1-fallback.c"
+"cairo-type1-glyph-names.c"
+"cairo-type1-subset.c"
+"cairo-type3-glyph-surface.c"
+# pdf
+"cairo-pdf-interchange.c"
+"cairo-pdf-operators.c"
+"cairo-pdf-shading.c"
+"cairo-pdf-surface.c"
+# png
+"cairo-png.c"
+# ps surface
+"cairo-ps-surface.c"
+# deflate source
+"cairo-deflate-stream.c"
+# svg surface
+"cairo-svg-surface.c"
+# script surface
+"cairo-script-surface.c"
+# fontconfig + freetype
+"cairo-ft-font.c"
+)
+
+set(CMAKE_DEBUG_POSTFIX "d")
+
+find_package(ZLIB REQUIRED)
+find_package(PNG REQUIRED)
+
+# Make the pixman library available
+if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+ set(PIXMAN_SUFFIX "d")
+endif()
+find_library(PIXMAN_LIBRARY NAMES pixman-1${PIXMAN_SUFFIX})
+
+find_package(Freetype CONFIG REQUIRED)
+
+# Cairo needs to be told which features of FreeType are availible
+add_definitions(
+ -DHAVE_FT_GLYPHSLOT_EMBOLDEN=1
+ -DHAVE_FT_LIBRARY_SETLCDFILTER=1
+ -DHAVE_FT_GLYPHSLOT_OBLIQUE=1
+ -DHAVE_FT_LOAD_SFNT_TABLE=1
+ -DHAVE_FT_GET_X11_FONT_FORMAT=1)
+
+# Find FontConfig
+find_library(FONTCONFIG_LIBRARY fontconfig)
+
+add_library(cairo ${SOURCES})
+# cairo produces a lot of warnings which are disabled here because they otherwise fill up the log files
+target_compile_options(cairo PUBLIC "/wd4244" PUBLIC "/wd4146" PUBLIC "/wd4312" PUBLIC "/wd4267"
+ PUBLIC "/wd4996" PUBLIC "/wd4311" PUBLIC "/wd4334" PUBLIC "/wd4101")
+target_link_libraries(cairo gdi32 msimg32 user32 ZLIB::ZLIB PNG::PNG freetype ${PIXMAN_LIBRARY} ${FONTCONFIG_LIBRARY})
+
+install(TARGETS cairo
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION bin
+ ARCHIVE DESTINATION lib
+)
+
+# GObject support module
+
+set(CAIRO_GOBJECT_SOURCES
+ "../util/cairo-gobject/cairo-gobject-enums.c"
+ "../util/cairo-gobject/cairo-gobject-structs.c")
+
+# GObject support sources do not include header with export macro
+if(BUILD_SHARED_LIBS)
+ set_source_files_properties(
+ "../util/cairo-gobject/cairo-gobject-enums.c"
+ "../util/cairo-gobject/cairo-gobject-structs.c"
+ PROPERTIES COMPILE_DEFINITIONS "cairo_public=__declspec(dllexport)")
+endif()
+
+# Make GLib's GObject available
+find_path(GLIB_INCLUDE_DIR glib.h)
+find_library(GLIB_LIBRARY NAMES glib-2.0)
+find_library(GOBJECT_LIBRARY NAMES gobject-2.0)
+set(GLIB_LIBRARIES ${GLIB_LIBRARY} ${GOBJECT_LIBRARY})
+
+add_library(cairo-gobject ${CAIRO_GOBJECT_SOURCES})
+target_link_libraries(cairo-gobject cairo ${GLIB_LIBRARIES})
+target_include_directories(cairo-gobject PRIVATE ${GLIB_INCLUDE_DIR})
+install(TARGETS cairo-gobject
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
diff --git a/ports/cairo/CMakeLists_cairo.txt b/ports/cairo/CMakeLists_cairo.txt
deleted file mode 100644
index 33077bc21..000000000
--- a/ports/cairo/CMakeLists_cairo.txt
+++ /dev/null
@@ -1,311 +0,0 @@
-set(CURRENT_INSTALLED_DIR ${CMAKE_PREFIX_PATH})
-
-# Add include directories
-include_directories("." "./win32" "${CURRENT_INSTALLED_DIR}/include")
-
-file(GLOB SOURCES
-"cairo-analysis-surface.c"
-"cairo-arc.c"
-"cairo-array.c"
-"cairo-atomic.c"
-"cairo-base64-stream.c"
-"cairo-base85-stream.c"
-"cairo-bentley-ottmann.c"
-"cairo-bentley-ottmann-rectangular.c"
-"cairo-bentley-ottmann-rectilinear.c"
-"cairo-botor-scan-converter.c"
-"cairo-boxes.c"
-"cairo-boxes-intersect.c"
-"cairo.c"
-"cairo-cache.c"
-"cairo-clip.c"
-"cairo-clip-boxes.c"
-"cairo-clip-polygon.c"
-"cairo-clip-region.c"
-"cairo-clip-surface.c"
-"cairo-color.c"
-"cairo-composite-rectangles.c"
-"cairo-compositor.c"
-"cairo-contour.c"
-"cairo-damage.c"
-"cairo-debug.c"
-"cairo-default-context.c"
-"cairo-device.c"
-"cairo-error.c"
-"cairo-fallback-compositor.c"
-"cairo-fixed.c"
-"cairo-font-face.c"
-"cairo-font-face-twin.c"
-"cairo-font-face-twin-data.c"
-"cairo-font-options.c"
-"cairo-freelist.c"
-"cairo-freed-pool.c"
-"cairo-gstate.c"
-"cairo-hash.c"
-"cairo-hull.c"
-"cairo-image-compositor.c"
-"cairo-image-info.c"
-"cairo-image-source.c"
-"cairo-image-surface.c"
-"cairo-line.c"
-"cairo-lzw.c"
-"cairo-matrix.c"
-"cairo-mask-compositor.c"
-"cairo-mesh-pattern-rasterizer.c"
-"cairo-mempool.c"
-"cairo-misc.c"
-"cairo-mono-scan-converter.c"
-"cairo-mutex.c"
-"cairo-no-compositor.c"
-"cairo-observer.c"
-"cairo-output-stream.c"
-"cairo-paginated-surface.c"
-"cairo-path-bounds.c"
-"cairo-path.c"
-"cairo-path-fill.c"
-"cairo-path-fixed.c"
-"cairo-path-in-fill.c"
-"cairo-path-stroke.c"
-"cairo-path-stroke-boxes.c"
-"cairo-path-stroke-polygon.c"
-"cairo-path-stroke-traps.c"
-"cairo-path-stroke-tristrip.c"
-"cairo-pattern.c"
-"cairo-pen.c"
-"cairo-polygon.c"
-"cairo-polygon-intersect.c"
-"cairo-polygon-reduce.c"
-"cairo-raster-source-pattern.c"
-"cairo-recording-surface.c"
-"cairo-rectangle.c"
-"cairo-rectangular-scan-converter.c"
-"cairo-region.c"
-"cairo-rtree.c"
-"cairo-scaled-font.c"
-"cairo-shape-mask-compositor.c"
-"cairo-slope.c"
-"cairo-spans.c"
-"cairo-spans-compositor.c"
-"cairo-spline.c"
-"cairo-stroke-dash.c"
-"cairo-stroke-style.c"
-"cairo-surface.c"
-"cairo-surface-clipper.c"
-"cairo-surface-fallback.c"
-"cairo-surface-observer.c"
-"cairo-surface-offset.c"
-"cairo-surface-snapshot.c"
-"cairo-surface-subsurface.c"
-"cairo-surface-wrapper.c"
-"cairo-time.c"
-"cairo-tor-scan-converter.c"
-"cairo-tor22-scan-converter.c"
-"cairo-clip-tor-scan-converter.c"
-"cairo-tag-attributes.c"
-"cairo-tag-stack.c"
-"cairo-toy-font-face.c"
-"cairo-traps.c"
-"cairo-tristrip.c"
-"cairo-traps-compositor.c"
-"cairo-unicode.c"
-"cairo-user-font.c"
-"cairo-version.c"
-"cairo-wideint.c"
-# win32
-"win32/cairo-win32-debug.c"
-"win32/cairo-win32-device.c"
-"win32/cairo-win32-gdi-compositor.c"
-"win32/cairo-win32-system.c"
-"win32/cairo-win32-surface.c"
-"win32/cairo-win32-display-surface.c"
-"win32/cairo-win32-printing-surface.c"
-"win32/cairo-win32-font.c"
-# generic font support
-"cairo-cff-subset.c"
-"cairo-scaled-font-subsets.c"
-"cairo-truetype-subset.c"
-"cairo-type1-fallback.c"
-"cairo-type1-glyph-names.c"
-"cairo-type1-subset.c"
-"cairo-type3-glyph-surface.c"
-# pdf
-"cairo-pdf-interchange.c"
-"cairo-pdf-operators.c"
-"cairo-pdf-shading.c"
-"cairo-pdf-surface.c"
-# png
-"cairo-png.c"
-# ps surface
-"cairo-ps-surface.c"
-# deflate source
-"cairo-deflate-stream.c"
-# svg surface
-"cairo-svg-surface.c"
-# script surface
-"cairo-script-surface.c"
-# fontconfig + freetype
-"cairo-ft-font.c"
-)
-
-set(CMAKE_DEBUG_POSTFIX "d")
-
-if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
- # Make the zlib library available
- find_library(ZLIB_DEBUG_IMPLIB NAMES zlibd)
- if (ZLIB_DEBUG_IMPLIB STREQUAL ZLIB_DEBUG_IMPLIB-NOTFOUND)
- message(FATAL_ERROR "The zlibd.lib import library could not be found. Check to ensure that zlib is properly installed.")
- endif()
- add_library(zlib UNKNOWN IMPORTED)
- set_property(TARGET zlib PROPERTY IMPORTED_LOCATION "${ZLIB_DEBUG_IMPLIB}")
-
- # Make the libpng library available
- find_library(LIBPNG_DEBUG_IMPLIB NAMES libpng16d)
- if (LIBPNG_DEBUG_IMPLIB STREQUAL LIBPNG_DEBUG_IMPLIB-NOTFOUND)
- message(FATAL_ERROR "The libpng16d.lib import library could not be found. Check to ensure that libpng is properly installed.")
- endif()
- add_library(libpng UNKNOWN IMPORTED)
- set_property(TARGET libpng PROPERTY IMPORTED_LOCATION "${LIBPNG_DEBUG_IMPLIB}")
-
- # Make the pixman library available
- find_library(PIXMAN_DEBUG_IMPLIB NAMES pixman-1d)
- if (PIXMAN_DEBUG_IMPLIB STREQUAL PIXMAN_DEBUG_IMPLIB-NOTFOUND)
- message(FATAL_ERROR "The pixman-1d.lib import library could not be found. Check to ensure that pixman is properly installed.")
- endif()
- add_library(pixman UNKNOWN IMPORTED)
- set_property(TARGET pixman PROPERTY IMPORTED_LOCATION "${PIXMAN_DEBUG_IMPLIB}")
-
-elseif (${CMAKE_BUILD_TYPE} STREQUAL "Release")
- # Make the zlib library available
- find_library(ZLIB_RELEASE_IMPLIB NAMES zlib)
- if (ZLIB_RELEASE_IMPLIB STREQUAL ZLIB_RELEASE_IMPLIB-NOTFOUND)
- message(FATAL_ERROR "The zlib.lib import library could not be found. Check to ensure that zlib is properly installed.")
- endif()
- add_library(zlib UNKNOWN IMPORTED)
- set_property(TARGET zlib PROPERTY IMPORTED_LOCATION "${ZLIB_RELEASE_IMPLIB}")
-
- # Make the libpng library available
- find_library(LIBPNG_RELEASE_IMPLIB NAMES libpng16)
- if (LIBPNG_RELEASE_IMPLIB STREQUAL LIBPNG_RELEASE_IMPLIB-NOTFOUND)
- message(FATAL_ERROR "The libpng16.lib import library could not be found. Check to ensure that libpng is properly installed.")
- endif()
- add_library(libpng UNKNOWN IMPORTED)
- set_property(TARGET libpng PROPERTY IMPORTED_LOCATION "${LIBPNG_RELEASE_IMPLIB}")
-
- # Make the pixman library available
- find_library(PIXMAN_RELEASE_IMPLIB NAMES pixman-1)
- if (PIXMAN_RELEASE_IMPLIB STREQUAL PIXMAN_RELEASE_IMPLIB-NOTFOUND)
- message(FATAL_ERROR "The pixman-1.lib import library could not be found. Check to ensure that pixman is properly installed.")
- endif()
- add_library(pixman UNKNOWN IMPORTED)
- set_property(TARGET pixman PROPERTY IMPORTED_LOCATION "${PIXMAN_RELEASE_IMPLIB}")
-
-else()
- message(FATAL_ERROR "Unexpected value '${CMAKE_BUILD_TYPE}' for CMAKE_BUILD_TYPE.")
-endif()
-
-# Make the gdi32 library available
-find_library(GDI32_LIBRARY NAMES gdi32)
-if (GDI32_LIBRARY STREQUAL GDI32_LIBRARY-NOTFOUND)
- message(FATAL_ERROR "The gdi32.lib import library could not be found. Check to ensure that the Windows SDK is installed.")
-endif()
-add_library(gdi32 UNKNOWN IMPORTED)
-set_property(TARGET gdi32 PROPERTY IMPORTED_LOCATION "${GDI32_LIBRARY}")
-
-# Make the msimg32 library available
-find_library(MSIMG32_LIBRARY NAMES msimg32)
-if (MSIMG32_LIBRARY STREQUAL MSIMG32_LIBRARY-NOTFOUND)
- message(FATAL_ERROR "The msimg32.lib import library could not be found. Check to ensure that the Windows SDK is installed.")
-endif()
-add_library(msimg32 UNKNOWN IMPORTED)
-set_property(TARGET msimg32 PROPERTY IMPORTED_LOCATION "${MSIMG32_LIBRARY}")
-
-# Make the user32 library available
-find_library(USER32_LIBRARY NAMES user32)
-if (USER32_LIBRARY STREQUAL USER32_LIBRARY-NOTFOUND)
- message(FATAL_ERROR "The user32.lib import library could not be found. Check to ensure that the Windows SDK is installed.")
-endif()
-add_library(user32 UNKNOWN IMPORTED)
-set_property(TARGET user32 PROPERTY IMPORTED_LOCATION "${USER32_LIBRARY}")
-
-# Find dependencies of optional modules
-
-# Find FreeType
-if(CMAKE_BUILD_TYPE STREQUAL Debug)
- set(FREETYPE_SUFFIX d)
-endif()
-find_library(FREETYPE_LIBRARY freetype${FREETYPE_SUFFIX})
-if (FREETYPE_LIBRARY MATCHES NOTFOUND)
- message(FATAL_ERROR "The freetype library could not be found. Check to ensure that it is properly installed.")
-endif()
-
-# Cairo needs to be told which features of FreeType are availible
-add_definitions(
- -DHAVE_FT_GLYPHSLOT_EMBOLDEN=1
- -DHAVE_FT_LIBRARY_SETLCDFILTER=1
- -DHAVE_FT_GLYPHSLOT_OBLIQUE=1
- -DHAVE_FT_LOAD_SFNT_TABLE=1
- -DHAVE_FT_GET_X11_FONT_FORMAT=1)
-
-# Find FontConfig
-find_library(FONTCONFIG_LIBRARY fontconfig)
-if (FONTCONFIG_LIBRARY MATCHES NOTFOUND)
- message(FATAL_ERROR "The fontconfig library could not be found. Check to ensure that it is properly installed.")
-endif()
-
-if (BUILD_SHARED_LIBS)
- add_library(cairo ${SOURCES})
- # cairo produces a lot of warnings which are disabled here because they otherwise fill up the log files
- target_compile_options(cairo PUBLIC "/wd4244" PUBLIC "/wd4146" PUBLIC "/wd4312" PUBLIC "/wd4267" PUBLIC "/wd4996" PUBLIC "/wd4311" PUBLIC "/wd4334" PUBLIC "/wd4101")
- target_link_libraries(cairo gdi32 msimg32 user32 zlib libpng pixman ${FREETYPE_LIBRARY} ${FONTCONFIG_LIBRARY})
-
- install(TARGETS cairo
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION bin
- ARCHIVE DESTINATION lib
- )
-else()
- add_library(cairo-static ${SOURCES})
- target_compile_options(cairo-static PUBLIC "/DCAIRO_WIN32_STATIC_BUILD=1")
- # cairo produces a lot of warnings which are disabled here because they otherwise fill up the log files
- target_compile_options(cairo-static PUBLIC "/wd4244" PUBLIC "/wd4146" PUBLIC "/wd4312" PUBLIC "/wd4267" PUBLIC "/wd4996" PUBLIC "/wd4311" PUBLIC "/wd4334" PUBLIC "/wd4101")
- target_link_libraries(cairo-static gdi32 msimg32 user32 zlib libpng pixman ${FREETYPE_LIBRARY} ${FONTCONFIG_LIBRARY})
-
- install(TARGETS cairo-static
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib
- )
-endif()
-
-# GObject support module
-
-set(CAIRO_GOBJECT_SOURCES
- "../util/cairo-gobject/cairo-gobject-enums.c"
- "../util/cairo-gobject/cairo-gobject-structs.c")
-
-# GObject support sources do not include header with export macro
-if(BUILD_SHARED_LIBS)
- set_source_files_properties(
- "../util/cairo-gobject/cairo-gobject-enums.c"
- "../util/cairo-gobject/cairo-gobject-structs.c"
- PROPERTIES COMPILE_DEFINITIONS cairo_public=__declspec\(dllexport\))
-endif()
-
-# Make GLib's GObject available
-find_library(GLIB_LIBRARY NAMES glib-2.0)
-find_library(GOBJECT_LIBRARY NAMES gobject-2.0)
-set(GLIB_LIBRARIES ${GLIB_LIBRARY} ${GOBJECT_LIBRARY})
-if (GLIB_LIBRARIES MATCHES NOTFOUND)
- message(FATAL_ERROR "The glib library could not be found. Check to ensure that it is properly installed.")
-endif()
-
-add_library(cairo-gobject ${CAIRO_GOBJECT_SOURCES})
-if(BUILD_SHARED_LIBS)
- target_link_libraries(cairo-gobject cairo ${GLIB_LIBRARIES})
-else()
- target_link_libraries(cairo-gobject cairo-static ${GLIB_LIBRARIES})
-endif()
-install(TARGETS cairo-gobject
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib)
diff --git a/ports/cairo/CONTROL b/ports/cairo/CONTROL
index 89ba03b79..80269f5a7 100644
--- a/ports/cairo/CONTROL
+++ b/ports/cairo/CONTROL
@@ -1,4 +1,4 @@
Source: cairo
-Version: 1.15.4
+Version: 1.15.8-1
Description: Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.
Build-Depends: zlib, libpng, pixman, glib, freetype, fontconfig
diff --git a/ports/cairo/export-only-in-shared-build.patch b/ports/cairo/export-only-in-shared-build.patch
new file mode 100644
index 000000000..d8b46c1ee
--- /dev/null
+++ b/ports/cairo/export-only-in-shared-build.patch
@@ -0,0 +1,15 @@
+diff --git a/src/cairoint.h b/src/cairoint.h
+index 4fedf86..dfa149e 100644
+--- a/src/cairoint.h
++++ b/src/cairoint.h
+@@ -50,7 +50,9 @@
+ #include "config.h"
+ #endif
+
+-#ifdef _MSC_VER
++#if defined _MSC_VER && defined cairo_EXPORTS
+ #define cairo_public __declspec(dllexport)
++#else
++#define cairo_public
+ #endif
+
diff --git a/ports/cairo/portfile.cmake b/ports/cairo/portfile.cmake
index 57b45e91c..6fb0e7ce8 100644
--- a/ports/cairo/portfile.cmake
+++ b/ports/cairo/portfile.cmake
@@ -7,33 +7,32 @@
#
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cairo-1.15.4)
+set(CAIRO_VERSION 1.15.8)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cairo-${CAIRO_VERSION})
vcpkg_download_distfile(ARCHIVE
- URLS "http://cairographics.org/snapshots/cairo-1.15.4.tar.xz"
- FILENAME "cairo-1.15.4.tar.xz"
- SHA512 ac3e6879fcf0876bca9f801cdf9e970ef1822644228cdd21962d0bf5db5fc074973f4ae651eb9c76b44fffd405cf0a0c7cbb228dba96b835ea137a2740277ee9
+ URLS "http://cairographics.org/snapshots/cairo-${CAIRO_VERSION}.tar.xz"
+ FILENAME "cairo-${CAIRO_VERSION}.tar.xz"
+ SHA512 5af1eebf432201dae0efaa5b6766b151d8273ea00dae48e104d56477005b4d423d64b5d11c512736a4cb076632fb2a572ec35becd922825a68d933bb5ff96ca1
)
vcpkg_extract_source_archive(${ARCHIVE})
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_cairo.txt DESTINATION ${SOURCE_PATH}/src)
-file(RENAME ${SOURCE_PATH}/src/CMakeLists_cairo.txt ${SOURCE_PATH}/src/CMakeLists.txt)
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/export-only-in-shared-build.patch"
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/src)
file(COPY ${CURRENT_PORT_DIR}/cairo-features.h DESTINATION ${SOURCE_PATH}/src)
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- )
-elseif (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- )
-endif()
+vcpkg_configure_cmake(
+ PREFER_NINJA
+ SOURCE_PATH ${SOURCE_PATH}/src
+)
vcpkg_install_cmake()
# Copy the appropriate header files.
-file(COPY
+foreach(FILE
"${SOURCE_PATH}/src/cairo.h"
"${SOURCE_PATH}/src/cairo-deprecated.h"
"${SOURCE_PATH}/src/cairo-features.h"
@@ -44,10 +43,20 @@ file(COPY
"${SOURCE_PATH}/cairo-version.h"
"${SOURCE_PATH}/src/cairo-win32.h"
"${SOURCE_PATH}/util/cairo-gobject/cairo-gobject.h"
-"${SOURCE_PATH}/src/cairo-ft.h"
-DESTINATION
-${CURRENT_PACKAGES_DIR}/include
-)
+"${SOURCE_PATH}/src/cairo-ft.h")
+ file(COPY ${FILE} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+ file(COPY ${FILE} DESTINATION ${CURRENT_PACKAGES_DIR}/include/cairo)
+endforeach()
+
+foreach(FILE "${CURRENT_PACKAGES_DIR}/include/cairo.h" "${CURRENT_PACKAGES_DIR}/include/cairo/cairo.h")
+ file(READ ${FILE} CAIRO_H)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ string(REPLACE "defined (CAIRO_WIN32_STATIC_BUILD)" "1" CAIRO_H "${CAIRO_H}")
+ else()
+ string(REPLACE "defined (CAIRO_WIN32_STATIC_BUILD)" "0" CAIRO_H "${CAIRO_H}")
+ endif()
+ file(WRITE ${FILE} "${CAIRO_H}")
+endforeach()
# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/cairo)
diff --git a/ports/cairomm/CONTROL b/ports/cairomm/CONTROL
index d8eda4a53..c92877435 100644
--- a/ports/cairomm/CONTROL
+++ b/ports/cairomm/CONTROL
@@ -1,4 +1,4 @@
Source: cairomm
-Version: 1.15.3-1
+Version: 1.15.3-2
Description: A C++ wrapper for the cairo graphics library
-Build-Depends: cairo, libsigcpp \ No newline at end of file
+Build-Depends: cairo, libsigcpp
diff --git a/ports/cairomm/cmake/FindSigC++.cmake b/ports/cairomm/cmake/FindSigC++.cmake
index ed16ef93f..8d65f70d9 100644
--- a/ports/cairomm/cmake/FindSigC++.cmake
+++ b/ports/cairomm/cmake/FindSigC++.cmake
@@ -108,4 +108,4 @@ find_package_handle_standard_args(SIGC++
FAIL_MESSAGE "Could NOT find SIGC++, try to set the path to SIGC++ root folder in the system variable SIGC++"
)
-MARK_AS_ADVANCED(SIGC++_CONFIG_INCLUDE_DIR SIGC++_INCLUDE_DIR SIGC++_INCLUDE_DIRS SIGC++_LIBRARY SIGC++_LIBRARIES) \ No newline at end of file
+MARK_AS_ADVANCED(SIGC++_CONFIG_INCLUDE_DIR SIGC++_INCLUDE_DIR SIGC++_INCLUDE_DIRS SIGC++_LIBRARY SIGC++_LIBRARIES)
diff --git a/ports/capstone/CONTROL b/ports/capstone/CONTROL
new file mode 100644
index 000000000..b442eccd9
--- /dev/null
+++ b/ports/capstone/CONTROL
@@ -0,0 +1,3 @@
+Source: capstone
+Version: 3.0.5-rc3
+Description:
diff --git a/ports/capstone/portfile.cmake b/ports/capstone/portfile.cmake
new file mode 100644
index 000000000..77dea256e
--- /dev/null
+++ b/ports/capstone/portfile.cmake
@@ -0,0 +1,51 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REF 3.0.5-rc3
+ REPO "aquynh/capstone"
+ SHA512 1327fc570fc2310f71c4d7329528c05e30b9ad68ea50254b9a8c4b3b113f5165c2e0474ec99bbe1e6e46f2820379f388e4c2082c156027e117d88a8f1908acfe
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" CAPSTONE_BUILD_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" CAPSTONE_BUILD_SHARED)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCAPSTONE_BUILD_STATIC=${CAPSTONE_BUILD_STATIC}
+ -DCAPSTONE_BUILD_SHARED=${CAPSTONE_BUILD_SHARED}
+
+ #-DCAPSTONE_ARCHS="x86"
+ -DCAPSTONE_X86_SUPPORT=ON
+ -DCAPSTONE_ARM_SUPPORT=ON
+ -DCAPSTONE_ARM64_SUPPORT=ON
+ -DCAPSTONE_MIPS_SUPPORT=OFF
+ -DCAPSTONE_PPC_SUPPORT=OFF
+ -DCAPSTONE_SPARC_SUPPORT=OFF
+ -DCAPSTONE_SYSZ_SUPPORT=OFF
+ -DCAPSTONE_XCORE_SUPPORT=OFF
+
+ -DCAPSTONE_BUILD_TESTS=OFF
+ OPTIONS_RELEASE
+ -DCAPSTONE_BUILD_DIET=ON
+ -DCAPSTONE_X86_REDUCE=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(GLOB EXES ${CURRENT_PACKAGES_DIR}/bin/*.exe ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+if(EXES)
+ file(REMOVE ${EXES})
+endif()
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.TXT
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/capstone
+ RENAME copyright)
diff --git a/ports/cartographer/CONTROL b/ports/cartographer/CONTROL
new file mode 100644
index 000000000..88f0dc6b7
--- /dev/null
+++ b/ports/cartographer/CONTROL
@@ -0,0 +1,4 @@
+Source: cartographer
+Version: 0.3.0-4
+Build-Depends: ceres[eigensparse], gflags, glog, lua, cairo, boost-iostreams, gtest, protobuf
+Description: Google 2D & 3D SLAM package
diff --git a/ports/cartographer/fix-find-packages.patch b/ports/cartographer/fix-find-packages.patch
new file mode 100644
index 000000000..19694b704
--- /dev/null
+++ b/ports/cartographer/fix-find-packages.patch
@@ -0,0 +1,146 @@
+ CMakeLists.txt | 45 ++++++++++++++++++++++----------------
+ cartographer/common/math.h | 4 +++-
+ cartographer/common/thread_pool.cc | 2 +-
+ cmake/functions.cmake | 10 ++++-----
+ 4 files changed, 35 insertions(+), 26 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 55e9adc..bc92e9b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -26,18 +26,23 @@ option(BUILD_GRPC "build Cartographer gRPC support" false)
+ set(GRPC_PLUGIN_PATH "/usr/local/bin/grpc_cpp_plugin")
+
+ include("${PROJECT_SOURCE_DIR}/cmake/functions.cmake")
+-google_initialize_cartographer_project()
+-google_enable_testing()
++#google_initialize_cartographer_project()
++#google_enable_testing()
+
+ find_package(Boost REQUIRED COMPONENTS iostreams)
+ find_package(Ceres REQUIRED COMPONENTS SparseLinearAlgebraLibrary)
+ find_package(Eigen3 REQUIRED)
+-find_package(LuaGoogle REQUIRED)
++find_package(Lua REQUIRED)
+ find_package(Protobuf 3.0.0 REQUIRED)
++find_package(glog REQUIRED)
++find_package(gflags REQUIRED)
+
+-include(FindPkgConfig)
+-PKG_SEARCH_MODULE(CAIRO REQUIRED cairo>=1.12.16)
+-
++#include(FindPkgConfig)
++#PKG_SEARCH_MODULE(CAIRO REQUIRED cairo>=1.12.16)
++if(CMAKE_BUILD_TYPE STREQUAL Debug)
++ set(CAIRO_LIB_SUFFIX d)
++endif()
++find_library(CAIRO_LIBRARY cairo${CAIRO_LIB_SUFFIX})
+ # Only build the documentation if we can find Sphinx.
+ find_package(Sphinx)
+ if(SPHINX_FOUND)
+@@ -144,15 +149,15 @@ configure_file(
+ ${PROJECT_SOURCE_DIR}/cartographer/common/config.h.cmake
+ ${PROJECT_BINARY_DIR}/cartographer/common/config.h)
+
+-google_binary(cartographer_autogenerate_ground_truth
+- SRCS
+- cartographer/ground_truth/autogenerate_ground_truth_main.cc
+-)
+-
+-google_binary(cartographer_compute_relations_metrics
+- SRCS
+- cartographer/ground_truth/compute_relations_metrics_main.cc
+-)
++#google_binary(cartographer_autogenerate_ground_truth
++# SRCS
++# cartographer/ground_truth/autogenerate_ground_truth_main.cc
++#)
++#
++#google_binary(cartographer_compute_relations_metrics
++# SRCS
++# cartographer/ground_truth/compute_relations_metrics_main.cc
++#)
+
+ if(${BUILD_GRPC})
+ google_binary(cartographer_grpc_server
+@@ -167,7 +172,7 @@ foreach(ABS_FIL ${ALL_TESTS})
+ get_filename_component(FIL_WE ${REL_FIL} NAME_WE)
+ # Replace slashes as required for CMP0037.
+ string(REPLACE "/" "." TEST_TARGET_NAME "${DIR}/${FIL_WE}")
+- google_test("${TEST_TARGET_NAME}" ${ABS_FIL})
++ #google_test("${TEST_TARGET_NAME}" ${ABS_FIL})
+ if(${BUILD_GRPC})
+ target_link_libraries("${TEST_TARGET_NAME}" PUBLIC grpc++)
+ endif()
+@@ -190,8 +195,9 @@ target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC
+ target_link_libraries(${PROJECT_NAME} PUBLIC ${Boost_LIBRARIES})
+
+ # We expect find_package(Ceres) to have located these for us.
+-target_link_libraries(${PROJECT_NAME} PUBLIC glog)
+-target_link_libraries(${PROJECT_NAME} PUBLIC gflags)
++#target_link_libraries(${PROJECT_NAME} PUBLIC glog)
++#target_link_libraries(${PROJECT_NAME} PUBLIC gflags)
++target_link_libraries(${PROJECT_NAME} PUBLIC ${CAIRO_LIBRARY})
+
+ target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC
+ "${CAIRO_INCLUDE_DIRS}")
+@@ -201,7 +207,8 @@ target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC
+ ${PROTOBUF_INCLUDE_DIR})
+ # TODO(hrapp): This should not explicitly list pthread and use
+ # PROTOBUF_LIBRARIES, but that failed on first try.
+-target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY} pthread)
++#target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY} pthread)
++target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY})
+ if(${BUILD_GRPC})
+ target_link_libraries(${PROJECT_NAME} PUBLIC grpc++)
+ endif()
+diff --git a/cartographer/common/math.h b/cartographer/common/math.h
+index f0ae9e2..d32bdbe 100644
+--- a/cartographer/common/math.h
++++ b/cartographer/common/math.h
+@@ -16,7 +16,9 @@
+
+ #ifndef CARTOGRAPHER_COMMON_MATH_H_
+ #define CARTOGRAPHER_COMMON_MATH_H_
+-
++ #ifndef M_PI
++ #define M_PI 3.14159265358979323846
++ #endif
+ #include <cmath>
+ #include <vector>
+
+diff --git a/cartographer/common/thread_pool.cc b/cartographer/common/thread_pool.cc
+index fdda166..178472f 100644
+--- a/cartographer/common/thread_pool.cc
++++ b/cartographer/common/thread_pool.cc
+@@ -16,7 +16,7 @@
+
+ #include "cartographer/common/thread_pool.h"
+
+-#include <unistd.h>
++//#include <unistd.h>
+ #include <algorithm>
+ #include <chrono>
+ #include <numeric>
+diff --git a/cmake/functions.cmake b/cmake/functions.cmake
+index 3bfd343..b41a84e 100644
+--- a/cmake/functions.cmake
++++ b/cmake/functions.cmake
+@@ -118,12 +118,12 @@ macro(google_initialize_cartographer_project)
+ set(LIST_FILES_CMD "find ${PROJECT_SOURCE_DIR}/ -not -iwholename '*.git*' | sort | sed 's/^/#/'")
+ set(FILES_LIST_PATH "${PROJECT_BINARY_DIR}/AllFiles.cmake")
+ set(DETECT_CHANGES_CMD "bash" "-c" "${LIST_FILES_CMD} | diff -N -q ${FILES_LIST_PATH} - || ${LIST_FILES_CMD} > ${FILES_LIST_PATH}")
+- add_custom_target(${PROJECT_NAME}_detect_changes ALL
+- COMMAND ${DETECT_CHANGES_CMD}
+- VERBATIM
+- )
++ #add_custom_target(${PROJECT_NAME}_detect_changes ALL
++ # COMMAND ${DETECT_CHANGES_CMD}
++ # VERBATIM
++ #)
+ if(NOT EXISTS ${FILES_LIST_PATH})
+- execute_process(COMMAND ${DETECT_CHANGES_CMD})
++ # execute_process(COMMAND ${DETECT_CHANGES_CMD})
+ endif()
+ include(${FILES_LIST_PATH})
+ endmacro()
diff --git a/ports/cartographer/portfile.cmake b/ports/cartographer/portfile.cmake
new file mode 100644
index 000000000..75f28a015
--- /dev/null
+++ b/ports/cartographer/portfile.cmake
@@ -0,0 +1,40 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO googlecartographer/cartographer
+ REF a7ed7e224f98b396762c865b81b62dc3abea2e81
+ SHA512 2ab167c1c314591b4916baf70b8ad92ae542986c3578319d2454c904adae10f8027bc696579d6e2864d3606a6711563b82438e847527cad4ab0c2bd603a63eb7
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-find-packages.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DGFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION=OFF
+ -DGLOG_PREFER_EXPORTED_GLOG_CMAKE_CONFIGURATION=OFF
+ -Dgtest_disable_pthreads=ON
+ -DCMAKE_USE_PTHREADS_INIT=OFF
+ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
+ OPTIONS_DEBUG
+ -DFORCE_DEBUG_BUILD=True
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/cartographer)
+vcpkg_copy_pdbs()
+
+# Clean
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+# Handle copyright of cartographer
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/cartographer)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/cartographer/LICENSE ${CURRENT_PACKAGES_DIR}/share/cartographer/copyright)
diff --git a/ports/catch-classic/CONTROL b/ports/catch-classic/CONTROL
new file mode 100644
index 000000000..af4d6a737
--- /dev/null
+++ b/ports/catch-classic/CONTROL
@@ -0,0 +1,5 @@
+Source: catch-classic
+Version: 1.12.2
+Description: A modern, header-only test framework for unit tests
+ This is specifically the legacy 1.x branch provided for compatibility
+ with older compilers.
diff --git a/ports/catch-classic/portfile.cmake b/ports/catch-classic/portfile.cmake
new file mode 100644
index 000000000..47f8ef16b
--- /dev/null
+++ b/ports/catch-classic/portfile.cmake
@@ -0,0 +1,18 @@
+include(vcpkg_common_functions)
+
+set(CATCH_VERSION v1.12.2)
+
+vcpkg_download_distfile(HEADER
+ URLS "https://github.com/catchorg/Catch2/releases/download/${CATCH_VERSION}/catch.hpp"
+ FILENAME "catch-classic-${CATCH_VERSION}.hpp"
+ SHA512 d2cf8b2fe95aae061a7771a0e1b7135583595d1f36dfc8d5e4d10e101ab58f6fac9d260f77c5760906c24aa402d7433aa82b5d6a0ca6b3ad91092dc5cc2d9c22
+)
+
+vcpkg_download_distfile(LICENSE
+ URLS "https://raw.githubusercontent.com/catchorg/Catch2/${CATCH_VERSION}/LICENSE.txt"
+ FILENAME "catch-classic-LICENSE-${CATCH_VERSION}.txt"
+ SHA512 d6078467835dba8932314c1c1e945569a64b065474d7aced27c9a7acc391d52e9f234138ed9f1aa9cd576f25f12f557e0b733c14891d42c16ecdc4a7bd4d60b8
+)
+
+file(INSTALL ${HEADER} DESTINATION ${CURRENT_PACKAGES_DIR}/include RENAME catch.hpp)
+file(INSTALL ${LICENSE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/catch-classic RENAME copyright)
diff --git a/ports/catch/CONTROL b/ports/catch/CONTROL
index 4c9626863..f486f31b0 100644
--- a/ports/catch/CONTROL
+++ b/ports/catch/CONTROL
@@ -1,3 +1,4 @@
Source: catch
-Version: 1.9.4
-Description: C++ Automated Test Cases in Headers
+Version: alias
+Build-Depends: catch2
+Description: Deprecated alias for Catch2 unit testing framework
diff --git a/ports/catch/portfile.cmake b/ports/catch/portfile.cmake
index 670c51fbc..065116c27 100644
--- a/ports/catch/portfile.cmake
+++ b/ports/catch/portfile.cmake
@@ -1,26 +1 @@
-# 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}
-#
-
-#header-only library
-include(vcpkg_common_functions)
-
-vcpkg_download_distfile(HEADER
- URLS "https://github.com/philsquared/Catch/releases/download/v1.9.4/catch.hpp"
- FILENAME "catch.hpp"
- SHA512 efbb5086d1eff393cf7997cd51f7b42d43cf744425f1abab91f3fb84524e98f9e0fef22d6725c2f5a1fe89965035d2ea5ea6e005abcf85a747953cf0101c9407
-)
-
-vcpkg_download_distfile(LICENSE
- URLS "https://raw.githubusercontent.com/philsquared/Catch/v1.9.4/LICENSE.txt"
- FILENAME "LICENSE.txt"
- SHA512 d6078467835dba8932314c1c1e945569a64b065474d7aced27c9a7acc391d52e9f234138ed9f1aa9cd576f25f12f557e0b733c14891d42c16ecdc4a7bd4d60b8
-)
-
-file(COPY ${HEADER} DESTINATION ${CURRENT_PACKAGES_DIR}/include )
-file(COPY ${LICENSE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/catch )
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/catch/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/catch/copyright)
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
diff --git a/ports/catch2/CONTROL b/ports/catch2/CONTROL
new file mode 100644
index 000000000..a466f7be5
--- /dev/null
+++ b/ports/catch2/CONTROL
@@ -0,0 +1,4 @@
+Source: catch2
+Version: 2.2.2
+Description: A modern, header-only test framework for unit testing.
+ Issues, PRs and changelogs can be found at https://github.com/catchorg/Catch2
diff --git a/ports/catch2/portfile.cmake b/ports/catch2/portfile.cmake
new file mode 100644
index 000000000..5329d9cab
--- /dev/null
+++ b/ports/catch2/portfile.cmake
@@ -0,0 +1,30 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO catchorg/Catch2
+ REF v2.2.2
+ SHA512 ab91036c6c3ace087d0382ce99f26b2c30a4b75d52f285619ca282a618470fe388afe47495f3b2764268d600c6834c60ba464483d06f3a1c4316c099477c8e38
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_TESTING=OFF
+ -DCATCH_BUILD_EXAMPLES=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/Catch2 TARGET_PATH share/catch2)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/lib)
+
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include/catch/catch.hpp)
+ message(FATAL_ERROR "Main includes have moved. Please update the forwarder.")
+endif()
+
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/catch.hpp "#include <catch/catch.hpp>")
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/catch2 RENAME copyright)
diff --git a/ports/cccapstone/CONTROL b/ports/cccapstone/CONTROL
new file mode 100644
index 000000000..d81c1acda
--- /dev/null
+++ b/ports/cccapstone/CONTROL
@@ -0,0 +1,4 @@
+Source: cccapstone
+Version: 9b4128ee1153e78288a1b5433e2c06a0d47a4c4e
+Description: c++ bindings for capstone disasembly framework
+Build-Depends: capstone
diff --git a/ports/cccapstone/portfile.cmake b/ports/cccapstone/portfile.cmake
new file mode 100644
index 000000000..69b8bcef7
--- /dev/null
+++ b/ports/cccapstone/portfile.cmake
@@ -0,0 +1,11 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REF 9b4128ee1153e78288a1b5433e2c06a0d47a4c4e
+ REPO zer0mem/cccapstone
+ SHA512 d0023586281f921314dbba501fa2c06d822b1adba0a0c32f30b78628ee935e5822caebe3881a5d1cc4cc696b82a7e348044d887a7f652303359d2853d2ee45fb
+ HEAD_REF master
+)
+
+file(INSTALL ${SOURCE_PATH}/cppbindings/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/cccapstone/cppbindings)
+file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/cccapstone RENAME copyright)
diff --git a/ports/ccd/0001_fix_symbols_export.patch b/ports/ccd/0001_fix_symbols_export.patch
new file mode 100644
index 000000000..f9c47d79b
--- /dev/null
+++ b/ports/ccd/0001_fix_symbols_export.patch
@@ -0,0 +1,39 @@
+From 05b5718a364ac525c8766387bd74faf852f98589 Mon Sep 17 00:00:00 2001
+From: Mikhail Paulyshka <me@mixaill.tk>
+Date: Sun, 27 Aug 2017 03:39:53 +0300
+Subject: [PATCH] win32: export additional symbols, fixes FCL build on MSVC
+
+---
+ src/ccd/vec3.h | 2 +-
+ src/support.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/ccd/vec3.h b/src/ccd/vec3.h
+index b0c1b33..014531c 100644
+--- a/src/ccd/vec3.h
++++ b/src/ccd/vec3.h
+@@ -93,7 +93,7 @@ typedef struct _ccd_vec3_t ccd_vec3_t;
+ /**
+ * Holds origin (0,0,0) - this variable is meant to be read-only!
+ */
+-extern ccd_vec3_t *ccd_vec3_origin;
++extern _ccd_export ccd_vec3_t *ccd_vec3_origin;
+
+ /**
+ * Array of points uniformly distributed on unit sphere.
+diff --git a/src/support.h b/src/support.h
+index 3372f5e..2e75df7 100644
+--- a/src/support.h
++++ b/src/support.h
+@@ -37,7 +37,7 @@ _ccd_inline void ccdSupportCopy(ccd_support_t *, const ccd_support_t *s);
+ * Computes support point of obj1 and obj2 in direction dir.
+ * Support point is returned via supp.
+ */
+-void __ccdSupport(const void *obj1, const void *obj2,
++_ccd_export void __ccdSupport(const void *obj1, const void *obj2,
+ const ccd_vec3_t *dir, const ccd_t *ccd,
+ ccd_support_t *supp);
+
+--
+2.12.2.windows.2
+
diff --git a/ports/libccd/CONTROL b/ports/ccd/CONTROL
index 3a3a0252d..9246cec90 100644
--- a/ports/libccd/CONTROL
+++ b/ports/ccd/CONTROL
@@ -1,3 +1,3 @@
-Source: libccd
-Version: 2.0.0
+Source: ccd
+Version: 2.0.0-2
Description: Library for collision detection between two convex shapes
diff --git a/ports/ccd/portfile.cmake b/ports/ccd/portfile.cmake
new file mode 100644
index 000000000..0ce278220
--- /dev/null
+++ b/ports/ccd/portfile.cmake
@@ -0,0 +1,30 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO danfis/libccd
+ REF 64f02f741ac94fccd0fb660a5bffcbe6d01d9939
+ SHA512 901b09d57e119e4661b3556bbefe5a4d58cb843bff5c76ee3952fe379ff183c878a04e86e6192006c11012309c6e93d42319e9d606abdf7ad723f6d8afeea47f
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001_fix_symbols_export.patch)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/ccd")
+
+file(INSTALL ${SOURCE_PATH}/BSD-LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/ccd RENAME copyright)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc)
diff --git a/ports/ccfits/CONTROL b/ports/ccfits/CONTROL
new file mode 100644
index 000000000..5cd10f63d
--- /dev/null
+++ b/ports/ccfits/CONTROL
@@ -0,0 +1,4 @@
+Source: ccfits
+Version: 2.5-2
+Description: CCfits is an object oriented interface to the cfitsio library. It is designed to make the capabilities of cfitsio available to programmers working in C++.
+Build-Depends: cfitsio
diff --git a/ports/ccfits/dll_exports.patch b/ports/ccfits/dll_exports.patch
new file mode 100644
index 000000000..4ec4a8284
--- /dev/null
+++ b/ports/ccfits/dll_exports.patch
@@ -0,0 +1,495 @@
+Index: FITS.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- FITS.h (date 1502267716000)
++++ FITS.h (revision )
+@@ -21,6 +21,8 @@
+ #include "HDUCreator.h"
+ // FitsError
+ #include "FitsError.h"
++//DLL Exporting
++#include "ccfits_export.h"
+
+ namespace CCfits {
+ class FITSBase;
+@@ -665,9 +667,8 @@
+
+
+
+- class FITS
+- {
+-
++ class CCFITS_EXPORT FITS
++ {
+ public:
+
+
+Index: HDU.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- HDU.h (date 1502267716000)
++++ HDU.h (revision )
+@@ -568,7 +568,7 @@
+
+
+
+- class HDU
++ class CCFITS_EXPORT HDU
+ {
+
+ public:
+Index: Table.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- Table.h (date 1502267716000)
++++ Table.h (revision )
+@@ -268,7 +268,7 @@
+
+
+
+- class Table : public ExtHDU //## Inherits: <unnamed>%3804A126EB10
++ class CCFITS_EXPORT Table : public ExtHDU //## Inherits: <unnamed>%3804A126EB10
+ {
+
+ public:
+Index: Column.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- Column.h (date 1502267716000)
++++ Column.h (revision )
+@@ -838,14 +838,14 @@
+
+
+
+- class Column
++ class CCFITS_EXPORT Column
+ {
+
+ public:
+
+
+
+- class RangeError : public FitsException //## Inherits: <unnamed>%3946526D031A
++ class CCFITS_EXPORT RangeError : public FitsException //## Inherits: <unnamed>%3946526D031A
+ {
+ public:
+ RangeError (const String& msg, bool silent = true);
+@@ -857,7 +857,7 @@
+
+
+
+- class InvalidDataType : public FitsException //## Inherits: <unnamed>%3947CF30033E
++ class CCFITS_EXPORT InvalidDataType : public FitsException //## Inherits: <unnamed>%3947CF30033E
+ {
+ public:
+ InvalidDataType (const String& str = string(), bool silent = true);
+@@ -869,7 +869,7 @@
+
+
+
+- class InvalidRowParameter : public FitsException //## Inherits: <unnamed>%39B5310F01A0
++ class CCFITS_EXPORT InvalidRowParameter : public FitsException //## Inherits: <unnamed>%39B5310F01A0
+ {
+ public:
+ InvalidRowParameter (const String& diag, bool silent = true);
+@@ -881,7 +881,7 @@
+
+
+
+- class WrongColumnType : public FitsException //## Inherits: <unnamed>%39B545780082
++ class CCFITS_EXPORT WrongColumnType : public FitsException //## Inherits: <unnamed>%39B545780082
+ {
+ public:
+ WrongColumnType (const String& diag, bool silent = true);
+@@ -893,7 +893,7 @@
+
+
+
+- class UnspecifiedLengths : public FitsException //## Inherits: <unnamed>%3A018C9D007D
++ class CCFITS_EXPORT UnspecifiedLengths : public FitsException //## Inherits: <unnamed>%3A018C9D007D
+ {
+ public:
+ UnspecifiedLengths (const String& diag, bool silent = true);
+@@ -905,7 +905,7 @@
+
+
+
+- class InvalidRowNumber : public FitsException //## Inherits: <unnamed>%3B0A850F0307
++ class CCFITS_EXPORT InvalidRowNumber : public FitsException //## Inherits: <unnamed>%3B0A850F0307
+ {
+ public:
+ InvalidRowNumber (const String& diag, bool silent = true);
+@@ -917,7 +917,7 @@
+
+
+
+- class InsufficientElements : public FitsException //## Inherits: <unnamed>%3B0BE611010A
++ class CCFITS_EXPORT InsufficientElements : public FitsException //## Inherits: <unnamed>%3B0BE611010A
+ {
+ public:
+ InsufficientElements (const String& msg, bool silent = true);
+@@ -929,7 +929,7 @@
+
+
+
+- class NoNullValue : public FitsException //## Inherits: <unnamed>%3B0D589A0092
++ class CCFITS_EXPORT NoNullValue : public FitsException //## Inherits: <unnamed>%3B0D589A0092
+ {
+ public:
+ NoNullValue (const String& diag, bool silent = true);
+@@ -941,7 +941,7 @@
+
+
+
+- class InvalidNumberOfRows : public FitsException //## Inherits: <unnamed>%3B20EB8B0205
++ class CCFITS_EXPORT InvalidNumberOfRows : public FitsException //## Inherits: <unnamed>%3B20EB8B0205
+ {
+ public:
+ InvalidNumberOfRows (int number, bool silent = true);
+Index: AsciiTable.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- AsciiTable.h (date 1502267716000)
++++ AsciiTable.h (revision )
+@@ -133,7 +133,7 @@
+
+
+
+- class AsciiTable : public Table //## Inherits: <unnamed>%3804A75CE420
++ class CCFITS_EXPORT AsciiTable : public Table //## Inherits: <unnamed>%3804A75CE420
+ {
+
+ public:
+Index: CCfits.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- CCfits.h (date 1502267716000)
++++ CCfits.h (revision )
+@@ -23,7 +23,7 @@
+ #include <sys/types.h>
+ #include "longnam.h"
+ #include "float.h"
+-
++#include "ccfits_export.h"
+
+ namespace CCfits {
+ /*! \namespace CCfits
+@@ -32,8 +32,8 @@
+ static const int BITPIX = -32;
+ static const int NAXIS = 2;
+ static const int MAXDIM = 99;
+- extern const unsigned long USBASE;
+- extern const unsigned long ULBASE;
++ extern const CCFITS_EXPORT unsigned long USBASE;
++ extern const CCFITS_EXPORT unsigned long ULBASE;
+
+ extern char BSCALE[7];
+ extern char BZERO[6];
+Index: FITSBase.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- FITSBase.h (date 1502267716000)
++++ FITSBase.h (revision )
+@@ -30,7 +30,7 @@
+
+
+
+- class FITSBase
++ class CCFITS_EXPORT FITSBase
+ {
+
+ public:
+Index: Keyword.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- Keyword.h (date 1502267716000)
++++ Keyword.h (revision )
+@@ -195,7 +195,7 @@
+
+
+
+- class Keyword
++ class CCFITS_EXPORT Keyword
+ {
+
+ public:
+Index: ExtHDU.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- ExtHDU.h (date 1502267716000)
++++ ExtHDU.h (revision )
+@@ -435,7 +435,7 @@
+
+
+
+- class ExtHDU : public HDU //## Inherits: <unnamed>%38048213E7A8
++ class CCFITS_EXPORT ExtHDU : public HDU //## Inherits: <unnamed>%38048213E7A8
+ {
+
+ public:
+Index: PHDU.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- PHDU.h (date 1502267716000)
++++ PHDU.h (revision )
+@@ -264,7 +264,7 @@
+
+
+
+- class PHDU : public HDU //## Inherits: <unnamed>%394E6F9800C3
++ class CCFITS_EXPORT PHDU : public HDU //## Inherits: <unnamed>%394E6F9800C3
+ {
+
+ public:
+Index: BinTable.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- BinTable.h (date 1502267716000)
++++ BinTable.h (revision )
+@@ -127,7 +127,7 @@
+
+
+
+- class BinTable : public Table //## Inherits: <unnamed>%3804A7E75F10
++ class CCFITS_EXPORT BinTable : public Table //## Inherits: <unnamed>%3804A7E75F10
+ {
+
+ public:
+Index: Image.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- Image.h (date 1502267716000)
++++ Image.h (revision )
+@@ -32,7 +32,7 @@
+
+
+ template <typename T>
+- class Image
++ class Image
+ {
+
+ public:
+Index: ColumnCreator.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- ColumnCreator.h (date 1502267716000)
++++ ColumnCreator.h (revision )
+@@ -28,7 +28,7 @@
+
+
+
+- class ColumnCreator
++ class CCFITS_EXPORT ColumnCreator
+ {
+
+ public:
+Index: FitsError.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- FitsError.h (date 1502267716000)
++++ FitsError.h (revision )
+@@ -14,6 +14,7 @@
+ //#include <iostream>
+ //#include <stl.h>
+ #include <string>
++#include "ccfits_export.h"
+ using std::string;
+
+
+@@ -90,7 +91,7 @@
+
+
+
+- class FitsException
++ class CCFITS_EXPORT FitsException
+ {
+ public:
+ FitsException (const string& msg, bool& silent);
+@@ -109,7 +110,7 @@
+
+
+
+- class FitsError : public FitsException //## Inherits: <unnamed>%399170BD017D
++ class CCFITS_EXPORT FitsError : public FitsException //## Inherits: <unnamed>%399170BD017D
+ {
+ public:
+ FitsError (int errornum, bool silent = true);
+@@ -123,7 +124,7 @@
+
+
+
+- class FitsFatal
++ class CCFITS_EXPORT FitsFatal
+ {
+ public:
+ FitsFatal (const string& diag);
+Index: HDUCreator.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- HDUCreator.h (date 1502267716000)
++++ HDUCreator.h (revision )
+@@ -35,7 +35,7 @@
+
+
+
+- class HDUCreator
++ class CCFITS_EXPORT HDUCreator
+ {
+
+ public:
+Index: ccfits_export.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- ccfits_export.h (revision )
++++ ccfits_export.h (revision )
+@@ -0,0 +1,42 @@
++
++#ifndef CCFITS_EXPORT_H
++#define CCFITS_EXPORT_H
++
++#ifdef CCFITS_STATIC_DEFINE
++# define CCFITS_EXPORT
++# define CCFITS_NO_EXPORT
++#else
++# ifndef CCFITS_EXPORT
++# ifdef CCfits_EXPORTS
++ /* We are building this library */
++# define CCFITS_EXPORT __declspec(dllexport)
++# else
++ /* We are using this library */
++# define CCFITS_EXPORT __declspec(dllimport)
++# endif
++# endif
++
++# ifndef CCFITS_NO_EXPORT
++# define CCFITS_NO_EXPORT
++# endif
++#endif
++
++#ifndef CCFITS_DEPRECATED
++# define CCFITS_DEPRECATED __declspec(deprecated)
++#endif
++
++#ifndef CCFITS_DEPRECATED_EXPORT
++# define CCFITS_DEPRECATED_EXPORT CCFITS_EXPORT CCFITS_DEPRECATED
++#endif
++
++#ifndef CCFITS_DEPRECATED_NO_EXPORT
++# define CCFITS_DEPRECATED_NO_EXPORT CCFITS_NO_EXPORT CCFITS_DEPRECATED
++#endif
++
++#if 0 /* DEFINE_NO_DEPRECATED */
++# ifndef CCFITS_NO_DEPRECATED
++# define CCFITS_NO_DEPRECATED
++# endif
++#endif
++
++#endif
+Index: FITSUtil.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- FITSUtil.h (date 1502267716000)
++++ FITSUtil.h (revision )
+@@ -22,6 +22,7 @@
+ #include <string>
+ // FitsError
+ #include "FitsError.h"
++#include "ccfits_export.h"
+ #include <typeinfo>
+
+
+@@ -287,21 +288,21 @@
+ template <typename T>
+ void swap(std::vector<T>& left, std::vector<T>& right);
+
+- string lowerCase(const string& inputString);
++ string CCFITS_EXPORT lowerCase(const string& inputString);
+
+- string upperCase(const string& inputString);
++ string CCFITS_EXPORT upperCase(const string& inputString);
+
+ // Check if a file name includes an image compression specifier,
+ // and return its location if it exists.
+- string::size_type checkForCompressString(const string& fileName);
++ string::size_type CCFITS_EXPORT checkForCompressString(const string& fileName);
+
+- struct InvalidConversion : public FitsException
++ struct CCFITS_EXPORT InvalidConversion : public FitsException
+ {
+ InvalidConversion(const string& diag, bool silent=false);
+
+ };
+
+- struct MatchStem : public std::binary_function<string,string,bool>
++ struct CCFITS_EXPORT MatchStem : public std::binary_function<string,string,bool>
+ {
+ bool operator()(const string& left, const string& right) const;
+ };
+@@ -323,7 +324,7 @@
+
+ char** CharArray(const std::vector<string>& inArray);
+
+- string FITSType2String( int typeInt );
++ string CCFITS_EXPORT FITSType2String( int typeInt );
+
+
+ template <typename S, typename T>
+@@ -633,7 +634,7 @@
+
+
+
+- class UnrecognizedType : public FitsException //## Inherits: <unnamed>%3CE143AB00C6
++ class CCFITS_EXPORT UnrecognizedType : public FitsException //## Inherits: <unnamed>%3CE143AB00C6
+ {
+ public:
+ UnrecognizedType (string diag, bool silent = true);
+Index: KeywordCreator.h
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+--- KeywordCreator.h (date 1502267716000)
++++ KeywordCreator.h (revision )
+@@ -24,7 +24,7 @@
+
+
+
+- class KeywordCreator
++ class CCFITS_EXPORT KeywordCreator
+ {
+
+ public:
diff --git a/ports/ccfits/portfile.cmake b/ports/ccfits/portfile.cmake
new file mode 100644
index 000000000..6aeecfd62
--- /dev/null
+++ b/ports/ccfits/portfile.cmake
@@ -0,0 +1,49 @@
+include(vcpkg_common_functions)
+#removes current source to prevent static builds from using patched source code
+file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/CCfits)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://heasarc.gsfc.nasa.gov/fitsio/ccfits/CCfits-2.5.tar.gz"
+ FILENAME "CCfits-2.5.tar.gz"
+ SHA512 63ab4d153063960510cf60651d5c832824cf85f937f84adc5390c7c2fb46eb8e9f5d8cda2554d79d24c7a4f1b6cf0b7a6e20958fb69920b65d7c362c0a5f26b5
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ vcpkg_apply_patches(
+ SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/CCfits
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/dll_exports.patch"
+ )
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCFITSIO_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/cfitsio
+)
+
+vcpkg_install_cmake()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/CCfits.dll ${CURRENT_PACKAGES_DIR}/bin/CCfits.dll)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/CCfits.dll ${CURRENT_PACKAGES_DIR}/debug/bin/CCfits.dll)
+endif()
+
+# Remove duplicate include files
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Patch installed headers to look in the correct subdirectory
+file(GLOB HEADERS ${CURRENT_PACKAGES_DIR}/include/CCfits/*)
+foreach(HEADER IN LISTS HEADERS)
+ file(READ "${HEADER}" _contents)
+ string(REPLACE "\"fitsio.h\"" "\"cfitsio/fitsio.h\"" _contents "${_contents}")
+ file(WRITE "${HEADER}" "${_contents}")
+endforeach()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/ccfits RENAME copyright)
diff --git a/ports/cctz/CMakeLists.txt b/ports/cctz/CMakeLists.txt
new file mode 100644
index 000000000..af557830c
--- /dev/null
+++ b/ports/cctz/CMakeLists.txt
@@ -0,0 +1,38 @@
+cmake_minimum_required(VERSION 3.8)
+project(cctz CXX)
+
+set(CMAKE_CXX_STANDARD 14)
+
+set(CMAKE_DEBUG_POSTFIX d)
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+if(CMAKE_BUILD_TYPE STREQUAL "Release")
+ option(INSTALL_HEADERS "Install header files" ON)
+else()
+ option(INSTALL_HEADERS "Install header files" OFF)
+endif()
+
+file(GLOB SOURCES src/*.cc)
+list(FILTER SOURCES EXCLUDE REGEX "_test.cc$|benchmarks|_tool.cc$")
+
+file(GLOB HEADERS include/cctz/*.h)
+
+add_library(cctz ${SOURCES})
+target_include_directories(cctz PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
+
+if(INSTALL_HEADERS)
+ install(FILES ${HEADERS} DESTINATION "include/cctz")
+endif()
+
+install(TARGETS cctz EXPORT unofficial-cctz-targets
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+install(
+ EXPORT unofficial-cctz-targets
+ FILE unofficial-cctz-config.cmake
+ NAMESPACE unofficial::
+ DESTINATION share/unofficial-cctz
+)
diff --git a/ports/cctz/CONTROL b/ports/cctz/CONTROL
new file mode 100644
index 000000000..be0bf9602
--- /dev/null
+++ b/ports/cctz/CONTROL
@@ -0,0 +1,3 @@
+Source: cctz
+Version: 2.2
+Description: two libraries that cooperate with <chrono> to give C++ programmers all the necessary tools for computing with dates, times, and time zones in a simple and correct manner.
diff --git a/ports/cctz/portfile.cmake b/ports/cctz/portfile.cmake
new file mode 100644
index 000000000..d243e1e65
--- /dev/null
+++ b/ports/cctz/portfile.cmake
@@ -0,0 +1,27 @@
+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 google/cctz
+ REF v2.2
+ SHA512 27a9116721a78aff4f692499a48b48ddab7210216b84cff4192414c3e769fede4018118422676981a41ccd09e517a0892d6d732ed7e347ac5e4026ae64999fa4
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-cctz TARGET_PATH share/unofficial-cctz)
+
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/cctz RENAME copyright)
diff --git a/ports/celero/CONTROL b/ports/celero/CONTROL
new file mode 100644
index 000000000..6180230dd
--- /dev/null
+++ b/ports/celero/CONTROL
@@ -0,0 +1,3 @@
+Source: celero
+Version: 2.1.0-2
+Description: Celero is a modern cross-platform (Windows, Linux, MacOS) Microbenchmarking library for C++.
diff --git a/ports/celero/portfile.cmake b/ports/celero/portfile.cmake
new file mode 100644
index 000000000..0800115ec
--- /dev/null
+++ b/ports/celero/portfile.cmake
@@ -0,0 +1,32 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message(STATUS "Celero currently can only be built statically")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO DigitalInBlue/Celero
+ REF v2.2.0
+ SHA512 6fac1fa949b18caabf59f3675c6e592cfadc3efa5e674b1f8b183e728ec880a4f5616d5d41c97f8fc26ef9520284188f519b7634209d0a56fb38a6993a9e9680
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ -DCELERO_ENABLE_EXPERIMENTS=OFF
+ -DCELERO_ENABLE_TESTS=OFF
+ -DCELERO_RUN_EXAMPLE_ON_BUILD=OFF
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH share)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/celero/celero-target.cmake ${CURRENT_PACKAGES_DIR}/share/celero/celero-config.cmake)
+
+file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/celero RENAME copyright)
diff --git a/ports/cereal/CONTROL b/ports/cereal/CONTROL
index 3c598a735..fc3c7921a 100644
--- a/ports/cereal/CONTROL
+++ b/ports/cereal/CONTROL
@@ -1,3 +1,3 @@
Source: cereal
-Version: 1.2.1
+Version: 1.2.2-1
Description: a header-only C++11 serialization library (built in support for binary, XML and JSon)
diff --git a/ports/cereal/portfile.cmake b/ports/cereal/portfile.cmake
index f6555416c..47eb76c49 100644
--- a/ports/cereal/portfile.cmake
+++ b/ports/cereal/portfile.cmake
@@ -1,16 +1,29 @@
#header-only library
+
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cereal-1.2.1)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/USCiLab/cereal/archive/v1.2.1.tar.gz"
- FILENAME "cereal-1.2.1.tar.gz"
- SHA512 f0050f27433a4b544e7785aa94fc7b14a57eed6d542e25d3d0fda4d27cf55ea55e796be2138bf80809c96c392436513fe42764b3a456938395bf7f7177dd1c73
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO USCiLab/cereal
+ REF v1.2.2
+ SHA512 9567b2e19add9446b24f8afd122eea09ba6ecd1a090335cf0ab31fdc8f64c6c97daa3d9eaf0801c36a770737488e0eebf81d96d7b7a65deed30da6130f2d47eb
+ HEAD_REF develop
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DJUST_INSTALL_CEREAL=ON
)
-vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "share/cmake/cereal")
+
+# Clean
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug)
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/cereal)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/cereal/LICENSE ${CURRENT_PACKAGES_DIR}/share/cereal/copyright)
-
-# Copy the cereal header files
-file(COPY ${SOURCE_PATH}/include/cereal DESTINATION ${CURRENT_PACKAGES_DIR}/include) \ No newline at end of file
diff --git a/ports/ceres/CONTROL b/ports/ceres/CONTROL
new file mode 100644
index 000000000..208082de7
--- /dev/null
+++ b/ports/ceres/CONTROL
@@ -0,0 +1,24 @@
+Source: ceres
+Version: 1.14.0-1
+# eigen is always required by CMake, even if it isn't used.
+Build-Depends: glog, eigen3
+Description: non-linear optimization package
+
+Feature: lapack
+Build-Depends: clapack
+Description: Use Lapack in Ceres
+
+Feature: suitesparse
+Build-Depends: ceres[lapack], suitesparse[core]
+Description: SuiteSparse support for Ceres
+
+Feature: cxsparse
+Build-Depends: suitesparse[core]
+Description: CXSparse support for Ceres
+
+Feature: eigensparse
+Description: Use of Eigen as a sparse linear algebra library in Ceres
+
+Feature: tools
+Build-Depends: gflags
+Description: Ceres tools
diff --git a/ports/ceres/portfile.cmake b/ports/ceres/portfile.cmake
new file mode 100644
index 000000000..98621116b
--- /dev/null
+++ b/ports/ceres/portfile.cmake
@@ -0,0 +1,83 @@
+set(MSVC_USE_STATIC_CRT_VALUE OFF)
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ 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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ceres-solver/ceres-solver
+ REF 1.14.0
+ SHA512 6dddddf5bd5834332a69add468578ad527e4d94fe85c9751ddf5fe9ad11a34918bdd9c994c49dd6ffc398333d0ac9752ac89aaef1293e2fe0a55524e303d415d
+ HEAD_REF master
+)
+
+set(SUITESPARSE OFF)
+if("suitesparse" IN_LIST FEATURES)
+ set(SUITESPARSE ON)
+endif()
+
+set(CXSPARSE OFF)
+if("cxsparse" IN_LIST FEATURES)
+ set(CXSPARSE ON)
+endif()
+
+set(LAPACK OFF)
+if("lapack" IN_LIST FEATURES)
+ set(LAPACK ON)
+endif()
+
+set(EIGENSPARSE OFF)
+if("eigensparse" IN_LIST FEATURES)
+ set(EIGENSPARSE ON)
+endif()
+
+set(GFLAGS OFF)
+if("tools" IN_LIST FEATURES)
+ set(GFLAGS ON)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DEXPORT_BUILD_DIR=ON
+ -DBUILD_EXAMPLES=OFF
+ -DBUILD_TESTING=OFF
+ -DGFLAGS=${GFLAGS}
+ -DCXSPARSE=${CXSPARSE}
+ -DEIGENSPARSE=${EIGENSPARSE}
+ -DLAPACK=${LAPACK}
+ -DSUITESPARSE=${SUITESPARSE}
+ -DGFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION=ON
+ -DGLOG_PREFER_EXPORTED_GLOG_CMAKE_CONFIGURATION=OFF # TheiaSfm doesn't work well with this
+ -DMSVC_USE_STATIC_CRT=${MSVC_USE_STATIC_CRT_VALUE}
+)
+
+vcpkg_install_cmake()
+
+if(WIN32)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake")
+else()
+ vcpkg_fixup_cmake_targets(CONFIG_PATH "lib${LIB_SUFFIX}/cmake/Ceres")
+endif()
+
+vcpkg_copy_pdbs()
+
+# Changes target search path
+file(READ ${CURRENT_PACKAGES_DIR}/share/ceres/CeresConfig.cmake CERES_TARGETS)
+string(REPLACE "get_filename_component(CURRENT_ROOT_INSTALL_DIR\n \${CERES_CURRENT_CONFIG_DIR}/../"
+ "get_filename_component(CURRENT_ROOT_INSTALL_DIR\n \${CERES_CURRENT_CONFIG_DIR}/../../" CERES_TARGETS "${CERES_TARGETS}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/ceres/CeresConfig.cmake "${CERES_TARGETS}")
+
+# Clean
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+# Handle copyright of suitesparse and metis
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/ceres)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/ceres/LICENSE ${CURRENT_PACKAGES_DIR}/share/ceres/copyright)
diff --git a/ports/cfitsio/CONTROL b/ports/cfitsio/CONTROL
new file mode 100644
index 000000000..7c50b295d
--- /dev/null
+++ b/ports/cfitsio/CONTROL
@@ -0,0 +1,3 @@
+Source: cfitsio
+Version: 3.410-2
+Description: Library of C and Fortran subroutines for reading and writing data files in FITS (Flexible Image Transport System) data format
diff --git a/ports/cfitsio/portfile.cmake b/ports/cfitsio/portfile.cmake
new file mode 100644
index 000000000..e9caf61d1
--- /dev/null
+++ b/ports/cfitsio/portfile.cmake
@@ -0,0 +1,34 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cfitsio)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio3410.tar.gz"
+ FILENAME "cfitsio3410.tar.gz"
+ SHA512 b2ac31ab17e19eeeb4f1601f42f348402c0a4ab03725dbf74fe75eaabbee2f44f64f0c0ee7f0b2688bd93a9cc0dccf29f07e73b9148fff97fc78bebdbb5f6f0f
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+# Remove duplicate include files
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/include/unistd.h)
+
+# cfitsio uses very common names for its headers, so they must be moved to a subdirectory
+file(RENAME ${CURRENT_PACKAGES_DIR}/include ${CURRENT_PACKAGES_DIR}/cfitsio)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include)
+file(RENAME ${CURRENT_PACKAGES_DIR}/cfitsio ${CURRENT_PACKAGES_DIR}/include/cfitsio)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ # move DLLs to bin directories for dynamic builds
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cfitsio.dll ${CURRENT_PACKAGES_DIR}/bin/cfitsio.dll)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/cfitsio.dll ${CURRENT_PACKAGES_DIR}/debug/bin/cfitsio.dll)
+endif()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/cfitsio RENAME copyright)
diff --git a/ports/cgal/CONTROL b/ports/cgal/CONTROL
new file mode 100644
index 000000000..b81d27c96
--- /dev/null
+++ b/ports/cgal/CONTROL
@@ -0,0 +1,4 @@
+Source: cgal
+Version: 4.12
+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
new file mode 100644
index 000000000..3eb0a9de7
--- /dev/null
+++ b/ports/cgal/portfile.cmake
@@ -0,0 +1,34 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO CGAL/cgal
+ REF f7c3c8212b56c0d6dae63787efc99093f4383415
+ SHA512 fc40483b5f0e2071c3458cbd67ee7e503f68b7f6a1bbb525b6003d1a440e662cb85c257167ce6d55a73e0cc49b27a7d2b56dcf6b5eeddc78772567fdc48ba160
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCGAL_INSTALL_CMAKE_DIR=share/cgal
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets()
+
+vcpkg_copy_pdbs()
+
+# Clean
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(READ ${CURRENT_PACKAGES_DIR}/share/cgal/CGALConfig.cmake _contents)
+string(REPLACE "CGAL_IGNORE_PRECONFIGURED_GMP" "1" _contents "${_contents}")
+string(REPLACE "CGAL_IGNORE_PRECONFIGURED_MPFR" "1" _contents "${_contents}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/cgal/CGALConfig.cmake "${_contents}")
+
+# Handle copyright of suitesparse and metis
+file(COPY ${SOURCE_PATH}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/cgal)
diff --git a/ports/cgicc/CMakeLists.txt b/ports/cgicc/CMakeLists.txt
new file mode 100644
index 000000000..0a9ad3e13
--- /dev/null
+++ b/ports/cgicc/CMakeLists.txt
@@ -0,0 +1,115 @@
+
+cmake_minimum_required (VERSION 3.8)
+project (cgicc)
+include (CheckIncludeFiles)
+include(CheckSymbolExists)
+include (CheckCXXSourceCompiles)
+
+set (VERSION "3.2.19")
+execute_process (COMMAND hostname OUTPUT_VARIABLE HOST OUTPUT_STRIP_TRAILING_WHITESPACE)
+check_include_files (dlfcn.h HAVE_DLFCN_H)
+check_symbol_exists(gettimeofday sys/time.h HAVE_GETTIMEOFDAY)
+check_include_files (inttypes.h HAVE_INTTYPES_H)
+check_include_files (memory.h HAVE_MEMORY_H)
+
+check_cxx_source_compiles ("
+ namespace test { }
+ int main(int, char**) {
+ using namespace ::test;
+}" HAVE_NAMESPACES)
+check_include_files (stdint.h HAVE_STDINT_H)
+check_include_files (stdlib.h HAVE_STDLIB_H)
+set (CMAKE_REQUIRED_FLAGS "-DHAVE_NAMESPACES")
+check_cxx_source_compiles ("
+ #include <list>
+ #include <deque>
+ #ifdef HAVE_NAMESPACES
+ using namespace std;
+#endif
+int
+main ()
+{
+list<int> x; x.push_back(5);
+list<int>::iterator iter = x.begin(); if (iter != x.end()) ++iter; return 0;
+ ;
+ return 0;
+}" HAVE_STL)
+check_include_files (strings.h HAVE_STRINGS_H)
+check_include_files (string.h HAVE_STRING_H)
+check_include_files (sys/stat.h HAVE_SYS_STAT_H)
+check_include_files (sys/time.h HAVE_SYS_TIME_H)
+check_include_files (sys/types.h HAVE_SYS_TYPES_H)
+check_include_files (sys/utsname.h HAVE_SYS_UTSNAME_H)
+check_symbol_exists (uname sys/utsname.h HAVE_UNAME)
+check_include_files (unistd.h HAVE_UNISTD_H)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cgicc/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cgicc/CgiDefs.h.in ${CMAKE_CURRENT_BINARY_DIR}/CgiDefs.h)
+add_definitions (-DHAVE_CONFIG_H)
+set (cgicc_SOURCES
+ cgicc/CgiEnvironment.cpp
+ cgicc/CgiInput.cpp
+ cgicc/CgiUtils.cpp
+ cgicc/Cgicc.cpp
+ cgicc/FormEntry.cpp
+ cgicc/FormFile.cpp
+ cgicc/HTMLAttribute.cpp
+ cgicc/HTMLAttributeList.cpp
+ cgicc/HTMLDoctype.cpp
+ cgicc/HTMLElement.cpp
+ cgicc/HTMLElementList.cpp
+ cgicc/HTTPContentHeader.cpp
+ cgicc/HTTPCookie.cpp
+ cgicc/HTTPHTMLHeader.cpp
+ cgicc/HTTPHeader.cpp
+ cgicc/HTTPPlainHeader.cpp
+ cgicc/HTTPRedirectHeader.cpp
+ cgicc/HTTPResponseHeader.cpp
+ cgicc/HTTPStatusHeader.cpp
+ cgicc/HTTPXHTMLHeader.cpp
+ cgicc/MStreamable.cpp
+ cgicc/XHTMLDoctype.cpp
+cgicc/XMLPI.cpp)
+set (cgicc_HEADERS
+ cgicc/Cgicc.h
+ cgicc/CgiEnvironment.h
+ cgicc/CgiInput.h
+ cgicc/CgiUtils.h
+ cgicc/FormEntry.h
+ cgicc/FormFile.h
+ cgicc/HTMLAtomicElement.h
+ cgicc/HTMLAttribute.h
+ cgicc/HTMLAttributeList.h
+ cgicc/HTMLBooleanElement.h
+ cgicc/HTMLClasses.h
+ cgicc/HTMLDoctype.h
+ cgicc/HTMLElement.h
+ cgicc/HTMLElementList.h
+ cgicc/HTTPContentHeader.h
+ cgicc/HTTPCookie.h
+ cgicc/HTTPHeader.h
+ cgicc/HTTPHTMLHeader.h
+ cgicc/HTTPPlainHeader.h
+ cgicc/HTTPRedirectHeader.h
+ cgicc/HTTPResponseHeader.h
+ cgicc/HTTPStatusHeader.h
+ cgicc/HTTPXHTMLHeader.h
+ cgicc/MStreamable.h
+ cgicc/XHTMLDoctype.h
+ cgicc/XMLDeclaration.h
+ cgicc/XMLPI.h
+ ${CMAKE_CURRENT_BINARY_DIR}/CgiDefs.h
+ ${CMAKE_CURRENT_BINARY_DIR}/config.h
+)
+
+include_directories (. ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+add_library (cgicc ${cgicc_SOURCES} ${cgicc_HEADERS})
+
+install(TARGETS cgicc
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES ${cgicc_HEADERS} DESTINATION include/cgicc)
+endif()
diff --git a/ports/cgicc/CONTROL b/ports/cgicc/CONTROL
new file mode 100644
index 000000000..6caa44df1
--- /dev/null
+++ b/ports/cgicc/CONTROL
@@ -0,0 +1,3 @@
+Source: cgicc
+Version: 3.2.19
+Description: GNU Cgicc is an ANSI C++ compliant class library that greatly simplifies the creation of CGI applications for the World Wide Web
diff --git a/ports/cgicc/portfile.cmake b/ports/cgicc/portfile.cmake
new file mode 100644
index 000000000..9851e0f80
--- /dev/null
+++ b/ports/cgicc/portfile.cmake
@@ -0,0 +1,25 @@
+
+include(vcpkg_common_functions)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "Warning: Dynamic building not supported. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+ endif()
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cgicc-3.2.19)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://ftp.gnu.org/gnu/cgicc/cgicc-3.2.19.tar.gz"
+ FILENAME "cgicc-3.2.19.tar.gz"
+ SHA512 c361923cf3ac876bc3fc94dffd040d2be7cd44751d8534f4cfa3545e9f58a8ec35ebcd902a8ce6a19da0efe52db67506d8b02e5cc868188d187ce3092519abdf
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/COPYING.DOC DESTINATION ${CURRENT_PACKAGES_DIR}/share/cgicc RENAME copyright)
diff --git a/ports/chaiscript/CONTROL b/ports/chaiscript/CONTROL
new file mode 100644
index 000000000..7d6197531
--- /dev/null
+++ b/ports/chaiscript/CONTROL
@@ -0,0 +1,3 @@
+Source: chaiscript
+Version: 6.0.0
+Description: Embedded Scripting Language Designed for C++
diff --git a/ports/chaiscript/portfile.cmake b/ports/chaiscript/portfile.cmake
new file mode 100644
index 000000000..3103eb302
--- /dev/null
+++ b/ports/chaiscript/portfile.cmake
@@ -0,0 +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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ChaiScript/ChaiScript
+ REF v6.0.0
+ SHA512 612c175b9ee357512addcbe9ce0e2b9c34c40a45b5be85a3f75e2c0d391bc845996e2559c401e4899088b3e641c6c5b34af233bf2fd48d4de4531ea2815e2a96
+ HEAD_REF master
+)
+
+file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/chaiscript RENAME copyright)
diff --git a/ports/chakracore/CONTROL b/ports/chakracore/CONTROL
index f3b510ecd..2b8dc8a5a 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.8.4
+Description: Core part of the Chakra Javascript engine
diff --git a/ports/chakracore/portfile.cmake b/ports/chakracore/portfile.cmake
index 331cd8b31..5492d5039 100644
--- a/ports/chakracore/portfile.cmake
+++ b/ports/chakracore/portfile.cmake
@@ -1,17 +1,22 @@
-if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
message(STATUS "Warning: Static building not supported yet. Building dynamic.")
set(VCPKG_LIBRARY_LINKAGE dynamic)
endif()
-if (VCPKG_CRT_LINKAGE STREQUAL static)
+if(VCPKG_CRT_LINKAGE STREQUAL static)
message(FATAL_ERROR "Static linking of the CRT is not yet supported.")
endif()
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "UWP is not currently supported.")
+endif()
+
include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/ChakraCore
- REF v1.4.3
- SHA512 6083bbbb4b980f44fe0e1d3581eea17190e379134f9312f11d195694aa3e0d9723406d8048ce461bc2744306c07b44465d6d58636b114a82b2f42d7a3316c9af
+ REF v1.8.4
+ SHA512 54f0ec00656d26c3cb3c034c0d1f0c927b67ce083cca6d2ced1f936e31a0987d0e4000dfb2419ffa6a21a15fa87b03a9214e92e8694158fc1e3715a095f08e19
HEAD_REF master
)
@@ -21,41 +26,50 @@ if(COR_H_PATH MATCHES "NOTFOUND")
endif()
get_filename_component(NETFXSDK_PATH "${COR_H_PATH}/../.." ABSOLUTE)
+set(BUILDTREE_PATH ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+file(REMOVE_RECURSE ${BUILDTREE_PATH})
+file(COPY ${SOURCE_PATH}/ DESTINATION ${BUILDTREE_PATH})
+
vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/Build/Chakra.Core.sln
+ PROJECT_PATH ${BUILDTREE_PATH}/Build/Chakra.Core.sln
OPTIONS "/p:DotNetSdkRoot=${NETFXSDK_PATH}/" "/p:CustomBeforeMicrosoftCommonTargets=${CMAKE_CURRENT_LIST_DIR}/no-warning-as-error.props"
)
file(INSTALL
- ${SOURCE_PATH}/lib/jsrt/ChakraCore.h
- ${SOURCE_PATH}/lib/jsrt/ChakraCommon.h
- ${SOURCE_PATH}/lib/jsrt/ChakraCommonWindows.h
- ${SOURCE_PATH}/lib/jsrt/ChakraDebug.h
+ ${BUILDTREE_PATH}/lib/jsrt/ChakraCore.h
+ ${BUILDTREE_PATH}/lib/jsrt/ChakraCommon.h
+ ${BUILDTREE_PATH}/lib/jsrt/ChakraCommonWindows.h
+ ${BUILDTREE_PATH}/lib/jsrt/ChakraDebug.h
DESTINATION ${CURRENT_PACKAGES_DIR}/include
)
-file(INSTALL
- ${SOURCE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_debug/ChakraCore.dll
- ${SOURCE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_debug/ChakraCore.pdb
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
-)
-file(INSTALL
- ${SOURCE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_debug/Chakracore.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
-)
-file(INSTALL
- ${SOURCE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_release/ChakraCore.dll
- ${SOURCE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_release/ChakraCore.pdb
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin
-)
-file(INSTALL
- ${SOURCE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_release/Chakracore.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib
-)
-file(INSTALL
- ${SOURCE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_release/ch.exe
- ${SOURCE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_release/GCStress.exe
- ${SOURCE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_release/rl.exe
- DESTINATION ${CURRENT_PACKAGES_DIR}/tools/chakracore)
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(INSTALL
+ ${BUILDTREE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_debug/ChakraCore.dll
+ ${BUILDTREE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_debug/ChakraCore.pdb
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ )
+ file(INSTALL
+ ${BUILDTREE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_debug/Chakracore.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+ )
+endif()
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(INSTALL
+ ${BUILDTREE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_release/ChakraCore.dll
+ ${BUILDTREE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_release/ChakraCore.pdb
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+ )
+ file(INSTALL
+ ${BUILDTREE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_release/Chakracore.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+ )
+ file(INSTALL
+ ${BUILDTREE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_release/ch.exe
+ ${BUILDTREE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_release/GCStress.exe
+ ${BUILDTREE_PATH}/Build/VcBuild/bin/${TRIPLET_SYSTEM_ARCH}_release/rl.exe
+ DESTINATION ${CURRENT_PACKAGES_DIR}/tools/chakracore)
+endif()
+
vcpkg_copy_pdbs()
file(INSTALL
${SOURCE_PATH}/LICENSE.txt
diff --git a/ports/charls/CONTROL b/ports/charls/CONTROL
index 8be1a5027..562a6f688 100644
--- a/ports/charls/CONTROL
+++ b/ports/charls/CONTROL
@@ -1,3 +1,3 @@
Source: charls
-Version: 2.0.0
-Description: CharLS, a C++ JPEG-LS library implementation. \ No newline at end of file
+Version: 2.0.0-1
+Description: CharLS, a C++ JPEG-LS library implementation.
diff --git a/ports/chipmunk/CONTROL b/ports/chipmunk/CONTROL
new file mode 100644
index 000000000..64b66067b
--- /dev/null
+++ b/ports/chipmunk/CONTROL
@@ -0,0 +1,3 @@
+Source: chipmunk
+Version: 7.0.2
+Description: A fast and lightweight 2D game physics library. \ No newline at end of file
diff --git a/ports/chipmunk/portfile.cmake b/ports/chipmunk/portfile.cmake
new file mode 100644
index 000000000..5b6477767
--- /dev/null
+++ b/ports/chipmunk/portfile.cmake
@@ -0,0 +1,75 @@
+include(vcpkg_common_functions)
+
+#architecture detection
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(CHIPMUNK_ARCH Win32)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(CHIPMUNK_ARCH x64)
+else()
+ message(FATAL_ERROR "unsupported architecture")
+endif()
+
+#linking
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(CHIPMUNK_CONFIGURATION_SUFFIX " DLL")
+else()
+ if (VCPKG_CRT_LINKAGE STREQUAL dynamic)
+ set(CHIPMUNK_CONFIGURATION_SUFFIX "")
+ else()
+ set(CHIPMUNK_CONFIGURATION_SUFFIX " SCRT")
+ endif()
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO slembcke/Chipmunk2D
+ REF Chipmunk-7.0.2
+ SHA512 3a697a73f854b36c53ea99390878094e91a44a0c6a19ebb0cd6726474b9b4f219085944efba4a7ae6faec1def3b9d58a02f159bea15724a7f5235bb645b91dba
+ HEAD_REF master
+)
+
+vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/msvc/vc14/chipmunk/chipmunk.vcxproj
+ RELEASE_CONFIGURATION "Release${CHIPMUNK_CONFIGURATION_SUFFIX}"
+ DEBUG_CONFIGURATION "Debug${CHIPMUNK_CONFIGURATION_SUFFIX}"
+)
+
+message(STATUS "Installing")
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ file(INSTALL
+ "${SOURCE_PATH}/msvc/vc14/chipmunk/${CHIPMUNK_ARCH}/Debug${CHIPMUNK_CONFIGURATION_SUFFIX}/chipmunk.dll"
+ "${SOURCE_PATH}/msvc/vc14/chipmunk/${CHIPMUNK_ARCH}/Debug${CHIPMUNK_CONFIGURATION_SUFFIX}/chipmunk.pdb"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ )
+ file(INSTALL
+ "${SOURCE_PATH}/msvc/vc14/chipmunk/${CHIPMUNK_ARCH}/Release${CHIPMUNK_CONFIGURATION_SUFFIX}/chipmunk.dll"
+ "${SOURCE_PATH}/msvc/vc14/chipmunk/${CHIPMUNK_ARCH}/Release${CHIPMUNK_CONFIGURATION_SUFFIX}/chipmunk.pdb"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+ )
+else()
+ file(INSTALL
+ "${SOURCE_PATH}/msvc/vc14/chipmunk/${CHIPMUNK_ARCH}/Release${CHIPMUNK_CONFIGURATION_SUFFIX}/chipmunk.pdb"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+ )
+ file(INSTALL
+ "${SOURCE_PATH}/msvc/vc14/chipmunk/${CHIPMUNK_ARCH}/Release${CHIPMUNK_CONFIGURATION_SUFFIX}/chipmunk.pdb"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+ )
+endif()
+
+file(INSTALL
+ "${SOURCE_PATH}/msvc/vc14/chipmunk/${CHIPMUNK_ARCH}/Debug${CHIPMUNK_CONFIGURATION_SUFFIX}/chipmunk.lib"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+file(INSTALL
+ "${SOURCE_PATH}/msvc/vc14/chipmunk/${CHIPMUNK_ARCH}/Release${CHIPMUNK_CONFIGURATION_SUFFIX}/chipmunk.lib"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+)
+file(INSTALL
+ ${SOURCE_PATH}/include/chipmunk
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
+)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/chipmunk RENAME copyright)
+
+message(STATUS "Installing done")
diff --git a/ports/chmlib/CMakeLists.txt b/ports/chmlib/CMakeLists.txt
new file mode 100644
index 000000000..49ce1f129
--- /dev/null
+++ b/ports/chmlib/CMakeLists.txt
@@ -0,0 +1,23 @@
+cmake_minimum_required(VERSION 3.5)
+project(chm C)
+
+add_library(chm src/lzx.c src/chm_lib.c)
+
+if(BUILD_TOOLS)
+ link_libraries(chm)
+ add_executable(enum_chmLib src/enum_chmLib.c)
+ add_executable(enumdir_chmLib src/enumdir_chmLib.c)
+ add_executable(extract_chmLib src/extract_chmLib.c)
+
+ install(TARGETS enum_chmLib extract_chmLib enumdir_chmLib
+ RUNTIME DESTINATION tools/chmlib
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ )
+endif()
+
+install(TARGETS chm
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
diff --git a/ports/chmlib/CONTROL b/ports/chmlib/CONTROL
new file mode 100644
index 000000000..b7f0cc863
--- /dev/null
+++ b/ports/chmlib/CONTROL
@@ -0,0 +1,3 @@
+Source: chmlib
+Version: 0.40-2
+Description: CHMLIB is a library for dealing with Microsoft ITSS/CHM format files. Right now, it is a very simple library, but sufficient for dealing with all of the .chm files I've come across. Due to the fairly well-designed indexing built into this particular file format, even a small library is able to gain reasonably good performance indexing into ITSS archives.
diff --git a/ports/chmlib/portfile.cmake b/ports/chmlib/portfile.cmake
new file mode 100644
index 000000000..e6a935b9f
--- /dev/null
+++ b/ports/chmlib/portfile.cmake
@@ -0,0 +1,34 @@
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "Warning: Dynamic building not supported. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+set(CHMLIB_VERSION chmlib-0.40)
+set(CHMLIB_FILENAME ${CHMLIB_VERSION}.zip)
+set(CHMLIB_URL http://www.jedrea.com/chmlib/${CHMLIB_FILENAME})
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${CHMLIB_VERSION})
+include(vcpkg_common_functions)
+
+vcpkg_download_distfile(
+ ARCHIVE
+ URLS ${CHMLIB_URL}
+ FILENAME ${CHMLIB_FILENAME}
+ SHA512 ad3b0d49fcf99e724c0c38b9c842bae9508d0e4ad47122b0f489c113160f5344223d311abb79f25cbb0b662bb00e2925d338d60dd20a0c309bda2822cda4cd24
+)
+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_RELEASE -DBUILD_TOOLS=ON
+ OPTIONS_DEBUG -DBUILD_TOOLS=OFF
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/src/chm_lib.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/chmlib)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/chmlib/COPYING ${CURRENT_PACKAGES_DIR}/share/chmlib/copyright)
diff --git a/ports/cimg/CMakeLists.txt b/ports/cimg/CMakeLists.txt
new file mode 100644
index 000000000..75ae59cd5
--- /dev/null
+++ b/ports/cimg/CMakeLists.txt
@@ -0,0 +1,21 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 3.9)
+project(CImg)
+
+add_library(${PROJECT_NAME} INTERFACE)
+
+target_include_directories(${PROJECT_NAME} INTERFACE
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+)
+
+install(TARGETS ${PROJECT_NAME}
+ EXPORT CImgExport
+ INCLUDES DESTINATION include
+)
+
+install(EXPORT CImgExport FILE ${PROJECT_NAME}Config.cmake NAMESPACE ${PROJECT_NAME}:: DESTINATION share/cimg)
+
+install(
+ FILES ${CMAKE_CURRENT_SOURCE_DIR}/CImg.h
+ DESTINATION include
+)
diff --git a/ports/cimg/CONTROL b/ports/cimg/CONTROL
new file mode 100644
index 000000000..1aee8a425
--- /dev/null
+++ b/ports/cimg/CONTROL
@@ -0,0 +1,3 @@
+Source: cimg
+Version: 2.2.3
+Description: The CImg Library is a small, open-source, and modern C++ toolkit for image processing
diff --git a/ports/cimg/portfile.cmake b/ports/cimg/portfile.cmake
new file mode 100644
index 000000000..1023eec26
--- /dev/null
+++ b/ports/cimg/portfile.cmake
@@ -0,0 +1,23 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH
+ REPO "dtschump/CImg"
+ REF v.2.2.3
+ HEAD_REF master
+ SHA512 0c92b4162e9259e447f9d1e777cc18b9df57cde77159681cdc8e15843f3c149fbf9ac7a420d63642d2a3aefb36bdb1740ef53d587a0983c32748f317605c16e0)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+# Move cmake files, ensuring they will be 3 directories up the import prefix
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/cimg)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug)
+
+file(INSTALL ${SOURCE_PATH}/Licence_CeCILL-C_V1-en.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/cimg RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/Licence_CeCILL_V2-en.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/cimg RENAME copyright2)
diff --git a/ports/clapack/CONTROL b/ports/clapack/CONTROL
index cb470e4cd..503ddbac5 100644
--- a/ports/clapack/CONTROL
+++ b/ports/clapack/CONTROL
@@ -1,4 +1,4 @@
Source: clapack
-Version: 3.2.1
+Version: 3.2.1-1
Description: CLAPACK (f2c'ed version of LAPACK)
Build-Depends: openblas
diff --git a/ports/clapack/portfile.cmake b/ports/clapack/portfile.cmake
index 72b1aa23b..933294419 100644
--- a/ports/clapack/portfile.cmake
+++ b/ports/clapack/portfile.cmake
@@ -19,7 +19,7 @@ endif()
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/clapack-3.2.1-CMAKE)
vcpkg_download_distfile(ARCHIVE
URLS "http://www.netlib.org/clapack/clapack-3.2.1-CMAKE.tgz"
- FILENAME "clapack-3.2.1"
+ FILENAME "clapack-3.2.1.tgz"
SHA512 cf19c710291ddff3f6ead7d86bdfdeaebca21291d9df094bf0a8ef599546b007757fb2dbb19b56511bb53ef7456eac0c73973b9627bf4d02982c856124428b49
)
vcpkg_extract_source_archive(${ARCHIVE})
diff --git a/ports/clara/CONTROL b/ports/clara/CONTROL
new file mode 100644
index 000000000..815db6e52
--- /dev/null
+++ b/ports/clara/CONTROL
@@ -0,0 +1,3 @@
+Source: clara
+Version: 2018-04-02
+Description: A simple to use command line parser for C++ \ No newline at end of file
diff --git a/ports/clara/portfile.cmake b/ports/clara/portfile.cmake
new file mode 100644
index 000000000..b4f7a7b20
--- /dev/null
+++ b/ports/clara/portfile.cmake
@@ -0,0 +1,11 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO philsquared/Clara
+ REF ba5485cb56329db3ea3f5402ef596d3b512b903a
+ SHA512 8aa66e3e1a2b7c544d9d105ad9f803119791b971cce4dff63ae47b63a08fd422fc75108aeb69300fa9982568d689f506456c6f8ed7287a19b9ed84649fad9315
+ HEAD_REF master
+)
+file(INSTALL ${SOURCE_PATH}/single_include/clara.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/single_include/clara.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/share/clara RENAME copyright)
+vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/clblas/CONTROL b/ports/clblas/CONTROL
new file mode 100644
index 000000000..416376579
--- /dev/null
+++ b/ports/clblas/CONTROL
@@ -0,0 +1,4 @@
+Source: clblas
+Version: 2.12-1
+Build-Depends: opencl
+Description: clBLAS is an OpenCL 1.2 accelerated BLAS (Basic Linear Algebra Subsystem) library.
diff --git a/ports/clblas/cmake.patch b/ports/clblas/cmake.patch
new file mode 100644
index 000000000..ebe2c0e85
--- /dev/null
+++ b/ports/clblas/cmake.patch
@@ -0,0 +1,36 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 6a88c41..05b8029 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -276,6 +276,9 @@ endif()
+
+ # This will define OPENCL_FOUND
+ find_package( OpenCL ${OPENCL_VERSION} )
++set( OPENCL_FOUND ${OpenCL_FOUND})
++set( OPENCL_LIBRARIES ${OpenCL_LIBRARIES} )
++set( OPENCL_INCLUDE_DIRS ${OpenCL_INCLUDE_DIRS} )
+
+ # Find Boost on the system, and configure the type of boost build we want
+ set( Boost_USE_MULTITHREADED ON )
+diff --git a/src/clBLASConfig.cmake.in b/src/clBLASConfig.cmake.in
+index f52d1d6..464feca 100644
+--- a/src/clBLASConfig.cmake.in
++++ b/src/clBLASConfig.cmake.in
+@@ -1,3 +1,3 @@
+ include(${CMAKE_CURRENT_LIST_DIR}/clBLASTargets.cmake)
+-get_filename_component(CLBLAS_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/@reldir@/include ABSOLUTE)
++get_filename_component(CLBLAS_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/@reldir@/../include ABSOLUTE)
+ set(CLBLAS_LIBRARIES clBLAS)
+diff --git a/src/library/CMakeLists.txt b/src/library/CMakeLists.txt
+index 5164898..f2d5a88 100644
+--- a/src/library/CMakeLists.txt
++++ b/src/library/CMakeLists.txt
+@@ -894,7 +894,7 @@ install( TARGETS clBLAS
+ EXPORT Library
+ RUNTIME DESTINATION bin${SUFFIX_BIN}
+ LIBRARY DESTINATION lib${SUFFIX_LIB}
+- ARCHIVE DESTINATION lib${SUFFIX_LIB}/import
++ ARCHIVE DESTINATION lib${SUFFIX_LIB}
+ )
+
+ # For debug builds, include the debug runtimes into the package for testing on non-developer machines
diff --git a/ports/clblas/portfile.cmake b/ports/clblas/portfile.cmake
new file mode 100644
index 000000000..9088fc2e9
--- /dev/null
+++ b/ports/clblas/portfile.cmake
@@ -0,0 +1,58 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO clMathLibraries/clBLAS
+ REF v2.12
+ SHA512 5d9b0c58adde69e83d95e9c713e0cdc5f64785fe7e05553a14c57fa483c4ef39e9dc780c26880a7f15924967d5ce4ea29035c29d63eac7ee5a2ae5ddacac2b72
+ HEAD_REF master
+)
+
+# v2.12 has a very old FindOpenCL.cmake using OPENCL_ vs. OpenCL_ var names
+# conflicting with the built-in, more modern FindOpenCL.cmake
+file(
+ REMOVE ${SOURCE_PATH}/src/FindOpenCL.cmake
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/cmake.patch
+)
+
+vcpkg_find_acquire_program(PYTHON3)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/src
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_TEST=OFF
+ -DBUILD_KTEST=OFF
+ -DSUFFIX_LIB=
+ -DPYTHON_EXECUTABLE=${PYTHON3}
+)
+
+vcpkg_install_cmake()
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL
+ "${SOURCE_PATH}/LICENSE"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/share/clblas
+ RENAME copyright
+)
+
+file(REMOVE
+ ${CURRENT_PACKAGES_DIR}/debug/bin/clBLAS-tune.pdb
+ ${CURRENT_PACKAGES_DIR}/debug/bin/clBLAS-tune.exe
+ ${CURRENT_PACKAGES_DIR}/bin/clBLAS-tune.exe
+ ${CURRENT_PACKAGES_DIR}/debug/bin/concrt140d.dll
+ ${CURRENT_PACKAGES_DIR}/debug/bin/msvcp140d.dll
+ ${CURRENT_PACKAGES_DIR}/debug/bin/vcruntime140d.dll
+)
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake")
+
+vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/clfft/CONTROL b/ports/clfft/CONTROL
new file mode 100644
index 000000000..0a109ac14
--- /dev/null
+++ b/ports/clfft/CONTROL
@@ -0,0 +1,4 @@
+Source: clfft
+Version: 2.12.2
+Build-Depends: opencl
+Description: clFFT is an OpenCL 1.2 accelerated Fast Fourier Transform library.
diff --git a/ports/clfft/portfile.cmake b/ports/clfft/portfile.cmake
new file mode 100644
index 000000000..4e314b5d9
--- /dev/null
+++ b/ports/clfft/portfile.cmake
@@ -0,0 +1,37 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO clMathLibraries/clFFT
+ REF v2.12.2
+ SHA512 19e9a4e06f76ae7c7808d1188677d5553c43598886a75328b7801ab2ca68e35206839a58fe2f958a44a6f7c83284dc9461cd0e21c37d1042bf82e24aad066be8
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/tweak-install.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/src
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_LOADLIBRARIES=OFF
+ -DBUILD_EXAMPLES=OFF
+ -DSUFFIX_LIB=
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL
+ "${SOURCE_PATH}/LICENSE"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/share/clfft/copyright
+)
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake")
+
+vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/clfft/tweak-install.patch b/ports/clfft/tweak-install.patch
new file mode 100644
index 000000000..45952032f
--- /dev/null
+++ b/ports/clfft/tweak-install.patch
@@ -0,0 +1,28 @@
+diff --git a/src/clFFTConfig.cmake.in b/src/clFFTConfig.cmake.in
+index 5b58c35..ee749a2 100644
+--- a/src/clFFTConfig.cmake.in
++++ b/src/clFFTConfig.cmake.in
+@@ -1,3 +1,3 @@
+ include(${CMAKE_CURRENT_LIST_DIR}/clFFTTargets.cmake)
+-get_filename_component(CLFFT_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/@reldir@/include ABSOLUTE)
++get_filename_component(CLFFT_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/@reldir@/../include ABSOLUTE)
+ set(CLFFT_LIBRARIES clFFT)
+diff --git a/src/library/CMakeLists.txt b/src/library/CMakeLists.txt
+index 132ef86..12ba905 100644
+--- a/src/library/CMakeLists.txt
++++ b/src/library/CMakeLists.txt
+@@ -90,6 +90,7 @@ target_link_libraries( clFFT ${OPENCL_LIBRARIES} ${CMAKE_DL_LIBS} )
+ set_target_properties( clFFT PROPERTIES VERSION ${CLFFT_VERSION} )
+ set_target_properties( clFFT PROPERTIES SOVERSION ${CLFFT_SOVERSION} )
+ set_target_properties( clFFT PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/staging" )
++set_target_properties( clFFT PROPERTIES INTERFACE_INCLUDE_DIRECTORIES $<INSTALL_INTERFACE:include> )
+
+ if( CMAKE_COMPILER_IS_GNUCC )
+ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/clFFT.pc.in
+@@ -104,5 +105,5 @@ install( TARGETS clFFT
+ EXPORT Library
+ RUNTIME DESTINATION bin${SUFFIX_BIN}
+ LIBRARY DESTINATION lib${SUFFIX_LIB}
+- ARCHIVE DESTINATION lib${SUFFIX_LIB}/import
++ ARCHIVE DESTINATION lib${SUFFIX_LIB}
+ )
diff --git a/ports/clockutils/CONTROL b/ports/clockutils/CONTROL
index 8f88e71ec..59950365d 100644
--- a/ports/clockutils/CONTROL
+++ b/ports/clockutils/CONTROL
@@ -1,3 +1,3 @@
Source: clockutils
-Version: 1.1.1-3651f232c27074c4ceead169e223edf5f00247c5
+Version: 1.1.1-3651f232c27074c4ceead169e223edf5f00247c5-1
Description: A lightweight c++ library for commonly needed tasks. Optimized for simplicity and speed.
diff --git a/ports/cmark/CONTROL b/ports/cmark/CONTROL
new file mode 100644
index 000000000..4211c9bbc
--- /dev/null
+++ b/ports/cmark/CONTROL
@@ -0,0 +1,3 @@
+Source: cmark
+Version: 0.28.3-1
+Description: CommonMark parsing and rendering library
diff --git a/ports/cmark/portfile.cmake b/ports/cmark/portfile.cmake
new file mode 100644
index 000000000..b452a4488
--- /dev/null
+++ b/ports/cmark/portfile.cmake
@@ -0,0 +1,40 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ # Note: fails due to missing cmark_export.h -- fix should be to always generate the correct export header.
+ message(FATAL_ERROR "cmark does not currently support static library linkage")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO commonmark/cmark
+ REF 0.28.3
+ SHA512 409105a3228a8ae22ba6acf95cd99bc9a2c20f8603aa0e803a33172eb6ef53f80f8f0262d2258b77f9fd6e1f2e9017a6c906b88f761e053c09ef88c9ffab7d29
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" CMARK_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" CMARK_SHARED)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCMARK_TESTS=OFF
+ -DCMARK_SHARED=${CMARK_SHARED}
+ -DCMARK_STATIC=${CMARK_STATIC}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/cmark RENAME copyright)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+else()
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/cmark.exe ${CURRENT_PACKAGES_DIR}/debug/bin/cmark.exe)
+endif()
diff --git a/ports/console-bridge/CONTROL b/ports/console-bridge/CONTROL
new file mode 100644
index 000000000..533c63944
--- /dev/null
+++ b/ports/console-bridge/CONTROL
@@ -0,0 +1,3 @@
+Source: console-bridge
+Version: 0.3.2-3
+Description: a ROS-independent package for logging that seamlessly pipes into rosconsole/rosout for ROS-dependent packages.
diff --git a/ports/console-bridge/portfile.cmake b/ports/console-bridge/portfile.cmake
new file mode 100644
index 000000000..74d76923f
--- /dev/null
+++ b/ports/console-bridge/portfile.cmake
@@ -0,0 +1,43 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ros/console_bridge
+ REF 0.3.2
+ SHA512 41fa5340d7ba79c887ef73eb4fda7b438ed91febd224934ae4658697e4c9e43357207e1b3e191ecce3c97cb9a87b0556372832735a268261bc798cc7683aa207
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/static-macro.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+if(EXISTS ${CURRENT_PACKAGES_DIR}/CMake)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake" TARGET_PATH share/console_bridge)
+else()
+ vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/console_bridge/cmake" TARGET_PATH share/console_bridge)
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(READ ${SOURCE_PATH}/src/console.cpp _contents)
+string(SUBSTRING "${_contents}" 0 2000 license)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/console-bridge)
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/console-bridge/copyright "${license}")
+
+file(READ ${CURRENT_PACKAGES_DIR}/include/console_bridge/exportdecl.h _contents)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ string(REPLACE "ifdef CONSOLE_BRIDGE_STATIC" "if 1" _contents "${_contents}")
+else()
+ string(REPLACE "ifdef CONSOLE_BRIDGE_STATIC" "if 0" _contents "${_contents}")
+endif()
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/console_bridge/exportdecl.h "${_contents}")
diff --git a/ports/console-bridge/static-macro.patch b/ports/console-bridge/static-macro.patch
new file mode 100644
index 000000000..31e4053aa
--- /dev/null
+++ b/ports/console-bridge/static-macro.patch
@@ -0,0 +1,15 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 604b2ab..e98b51c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -37,6 +37,10 @@ if(NOT DEFINED BUILD_SHARED_LIBS)
+ option(BUILD_SHARED_LIBS "Build dynamically-linked binaries" ON)
+ endif()
+
++if(NOT BUILD_SHARED_LIBS)
++ add_definitions(-DCONSOLE_BRIDGE_STATIC)
++endif()
++
+ add_library(${PROJECT_NAME} src/console.cpp)
+ set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION
+ ${CONSOLE_BRIDGE_MAJOR_VERSION}.${CONSOLE_BRIDGE_MINOR_VERSION})
diff --git a/ports/coolprop/CONTROL b/ports/coolprop/CONTROL
new file mode 100644
index 000000000..72ccae87b
--- /dev/null
+++ b/ports/coolprop/CONTROL
@@ -0,0 +1,4 @@
+Source: coolprop
+Version: 6.1.0-3
+Description: Thermophysical properties for the masses
+Build-Depends: catch, eigen3, pybind11, if97, fmt, rapidjson, msgpack, refprop-headers
diff --git a/ports/coolprop/portfile.cmake b/ports/coolprop/portfile.cmake
new file mode 100644
index 000000000..c5b3a8cee
--- /dev/null
+++ b/ports/coolprop/portfile.cmake
@@ -0,0 +1,121 @@
+include(vcpkg_common_functions)
+set(PORT_VERSION 6.1.0)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO CoolProp/CoolProp
+ REF 0e934e842e9ce83eea64fda1d4ab8e59adf9d8cd
+ SHA512 a44eafc84f2b88259d7bcf6cfa81daeb81ea9d55bd356e59b3ef77b6f68ea405961c7cb54ba899e3896bb2a02d3e01119a4a51f72899126c8da6081fa2ece948
+ HEAD_REF master
+)
+
+vcpkg_find_acquire_program(PYTHON2)
+get_filename_component(PYTHON2_DIR ${PYTHON2} DIRECTORY)
+set(ENV{PATH} "$ENV{PATH};${PYTHON2_DIR}")
+
+file(REMOVE_RECURSE ${SOURCE_PATH}/externals)
+
+# Patch up the file locations
+file(COPY
+ ${CURRENT_INSTALLED_DIR}/include/catch.hpp
+ DESTINATION ${SOURCE_PATH}/externals/Catch/single_include
+)
+
+file(COPY
+ ${CURRENT_INSTALLED_DIR}/include/eigen3/Eigen
+ DESTINATION ${SOURCE_PATH}/externals/Eigen
+)
+file(COPY
+ ${CURRENT_INSTALLED_DIR}/include/eigen3/unsupported/Eigen
+ DESTINATION ${SOURCE_PATH}/externals/Eigen/unsupported
+)
+
+file(COPY
+ ${CURRENT_INSTALLED_DIR}/include/rapidjson
+ DESTINATION ${SOURCE_PATH}/externals/rapidjson/include
+)
+
+file(COPY
+ ${CURRENT_INSTALLED_DIR}/include/IF97.h
+ DESTINATION ${SOURCE_PATH}/externals/IF97
+)
+
+file(COPY
+ ${CURRENT_INSTALLED_DIR}/include/msgpack.h
+ ${CURRENT_INSTALLED_DIR}/include/msgpack.hpp
+ ${CURRENT_INSTALLED_DIR}/include/msgpack
+ DESTINATION ${SOURCE_PATH}/externals/msgpack-c/include
+)
+
+file(COPY
+ ${CURRENT_INSTALLED_DIR}/include/fmt
+ DESTINATION ${SOURCE_PATH}/externals/cppformat
+)
+
+file(COPY
+ ${CURRENT_INSTALLED_DIR}/include/REFPROP_lib.h
+ DESTINATION ${SOURCE_PATH}/externals/REFPROP-headers/
+)
+
+# Use a nasty hack to include the correct header
+file(APPEND
+ ${SOURCE_PATH}/externals/msgpack-c/include/fmt/format.h
+ "#include \"fmt/printf.h\""
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" COOLPROP_SHARED_LIBRARY)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" COOLPROP_STATIC_LIBRARY)
+
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" COOLPROP_MSVC_DYNAMIC)
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" COOLPROP_MSVC_STATIC)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCOOLPROP_SHARED_LIBRARY=${COOLPROP_SHARED_LIBRARY}
+ -DCOOLPROP_STATIC_LIBRARY=${COOLPROP_STATIC_LIBRARY}
+ -DCOOLPROP_MSVC_DYNAMIC=${COOLPROP_MSVC_DYNAMIC}
+ -DCOOLPROP_MSVC_STATIC=${COOLPROP_MSVC_STATIC}
+ OPTIONS_RELEASE
+ -DCOOLPROP_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}
+ OPTIONS_DEBUG
+ -DCOOLPROP_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(TARGET_FOLDER "shared_library")
+else()
+ set(TARGET_FOLDER "static_library")
+endif()
+
+file(GLOB_RECURSE COOLPROP_HEADERS "${CURRENT_PACKAGES_DIR}/${TARGET_FOLDER}/*.h")
+file(INSTALL ${COOLPROP_HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+file(GLOB_RECURSE COOLPROP_LIBS "${CURRENT_PACKAGES_DIR}/${TARGET_FOLDER}/*.lib")
+file(GLOB_RECURSE COOLPROP_DLLS "${CURRENT_PACKAGES_DIR}/${TARGET_FOLDER}/*.dll")
+
+file(INSTALL ${COOLPROP_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+if(COOLPROP_DLLS)
+ file(INSTALL ${COOLPROP_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+endif()
+
+file(GLOB_RECURSE COOLPROP_DEBUG_LIBS "${CURRENT_PACKAGES_DIR}/debug/${TARGET_FOLDER}/*.lib")
+file(GLOB_RECURSE COOLPROP_DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/${TARGET_FOLDER}/*.dll")
+
+file(INSTALL ${COOLPROP_DEBUG_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+if(COOLPROP_DEBUG_DLLS)
+ file(INSTALL ${COOLPROP_DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/${TARGET_FOLDER} ${CURRENT_PACKAGES_DIR}/${TARGET_FOLDER})
+
+# Handle copyright
+file(
+ INSTALL ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/coolprop
+ RENAME copyright
+)
diff --git a/ports/corrade/CONTROL b/ports/corrade/CONTROL
new file mode 100644
index 000000000..e719d90e4
--- /dev/null
+++ b/ports/corrade/CONTROL
@@ -0,0 +1,19 @@
+Source: corrade
+Version: 2018.04-1
+Description: C++11/C++14 multiplatform utility library http://magnum.graphics/corrade/
+Default-Features: interconnect, pluginmanager, testsuite, utility
+
+Feature: interconnect
+Description: Interconnect library
+Build-Depends: corrade[utility]
+
+Feature: pluginmanager
+Description: PluginManager library
+Build-Depends: corrade[utility]
+
+Feature: testsuite
+Description: TestSuite library
+Build-Depends: corrade[utility]
+
+Feature: utility
+Description: Utility library
diff --git a/ports/corrade/portfile.cmake b/ports/corrade/portfile.cmake
new file mode 100644
index 000000000..9c407a753
--- /dev/null
+++ b/ports/corrade/portfile.cmake
@@ -0,0 +1,85 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mosra/corrade
+ REF v2018.04
+ SHA512 be14f0cb76c904a37f962af16b331407ec6a1f7a31245c7221f41fcbce2749a1ad67057d451736814e357eaa59e015f16996bdba819f69a1dd0f3d5a3cad34a4
+ HEAD_REF master
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(BUILD_STATIC 1)
+else()
+ set(BUILD_STATIC 0)
+endif()
+
+# Handle features
+set(_COMPONENT_FLAGS "")
+foreach(_feature IN LISTS ALL_FEATURES)
+ # Uppercase the feature name and replace "-" with "_"
+ string(TOUPPER "${_feature}" _FEATURE)
+ string(REPLACE "-" "_" _FEATURE "${_FEATURE}")
+
+ # Turn "-DWITH_*=" ON or OFF depending on whether the feature
+ # is in the list.
+ if(_feature IN_LIST FEATURES)
+ list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=ON")
+ else()
+ list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=OFF")
+ endif()
+endforeach()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ -DBUILD_STATIC=${BUILD_STATIC}
+ ${_COMPONENT_FLAGS}
+)
+
+vcpkg_install_cmake()
+
+# Debug includes and share are the same as release
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+# Install tools
+if("utility" IN_LIST FEATURES)
+ # Drop a copy of tools
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/corrade-rc.exe
+ DESTINATION ${CURRENT_PACKAGES_DIR}/tools/corrade)
+
+ # Tools require dlls
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/corrade)
+
+ file(GLOB_RECURSE TO_REMOVE
+ ${CURRENT_PACKAGES_DIR}/bin/*.exe
+ ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+ file(REMOVE ${TO_REMOVE})
+endif()
+
+# Ensure no empty folders are left behind
+if(NOT FEATURES)
+ # No features, no binaries (only Corrade.h).
+ file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/bin
+ ${CURRENT_PACKAGES_DIR}/lib
+ ${CURRENT_PACKAGES_DIR}/debug)
+ # debug is completely empty, as include and share
+ # have already been removed.
+
+elseif(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ # No dlls
+ file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/bin
+ ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/corrade)
+file(RENAME
+ ${CURRENT_PACKAGES_DIR}/share/corrade/COPYING
+ ${CURRENT_PACKAGES_DIR}/share/corrade/copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/cpp-redis/CONTROL b/ports/cpp-redis/CONTROL
new file mode 100644
index 000000000..5f001f04d
--- /dev/null
+++ b/ports/cpp-redis/CONTROL
@@ -0,0 +1,4 @@
+Source: cpp-redis
+Version: 4.3.1
+Build-Depends: tacopie
+Description: cpp-redis is a C++11 Asynchronous Multi-Platform Lightweight Redis Client, with support for synchronous operations and pipelining.
diff --git a/ports/cpp-redis/portfile.cmake b/ports/cpp-redis/portfile.cmake
new file mode 100644
index 000000000..9187e344f
--- /dev/null
+++ b/ports/cpp-redis/portfile.cmake
@@ -0,0 +1,59 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Cylix/cpp_redis
+ REF 4.3.1
+ SHA512 abf372542c53f37f504b3211b840b100d07a8f4b2e7f5584cc7550ab16ed617838e2df79064374c7a409458d8567f4834686318ea3a40249c767e36c744c7a47
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/tacopie/CMakeLists.txt DESTINATION ${SOURCE_PATH}/tacopie)
+
+if(VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ set(MSVC_RUNTIME_LIBRARY_CONFIG "/MD")
+else()
+ set(MSVC_RUNTIME_LIBRARY_CONFIG "/MT")
+endif()
+
+# cpp-redis forcibly removes "/RTC1" in its cmake file. Because this is an ABI-sensitive flag, we need to re-add it in a form that won't be detected.
+set(VCPKG_CXX_FLAGS_DEBUG "${VCPKG_CXX_FLAGS_DEBUG} -RTC1")
+set(VCPKG_C_FLAGS_DEBUG "${VCPKG_C_FLAGS_DEBUG} -RTC1")
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DMSVC_RUNTIME_LIBRARY_CONFIG=${MSVC_RUNTIME_LIBRARY_CONFIG}
+ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(GLOB_RECURSE FILES "${CURRENT_PACKAGES_DIR}/include/*")
+foreach(file ${FILES})
+ file(READ ${file} _contents)
+ string(REPLACE "ifndef __CPP_REDIS_USE_CUSTOM_TCP_CLIENT" "if 1" _contents "${_contents}")
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ string(REPLACE
+ "extern std::unique_ptr<logger_iface> active_logger;"
+ "extern __declspec(dllimport) std::unique_ptr<logger_iface> active_logger;"
+ _contents "${_contents}")
+ endif()
+ file(WRITE ${file} "${_contents}")
+endforeach()
+
+file(GLOB FILES_TO_REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/cpp_redis.ilk" "${CURRENT_PACKAGES_DIR}/bin/cpp_redis.dll.manifest")
+if(FILES_TO_REMOVE)
+ file(REMOVE_RECURSE ${FILES_TO_REMOVE})
+endif()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/cpp-redis RENAME copyright)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+vcpkg_copy_pdbs()
diff --git a/ports/cpp-redis/tacopie/CMakeLists.txt b/ports/cpp-redis/tacopie/CMakeLists.txt
new file mode 100644
index 000000000..74959e2e1
--- /dev/null
+++ b/ports/cpp-redis/tacopie/CMakeLists.txt
@@ -0,0 +1,8 @@
+find_library(TACOPIE tacopie)
+find_path(TACOPIE_H tacopie/tacopie)
+
+message(STATUS "TACOPIE_H: ${TACOPIE_H}")
+
+add_library(tacopie INTERFACE)
+target_link_libraries(tacopie INTERFACE "${TACOPIE}")
+target_include_directories(tacopie INTERFACE "${TACOPIE_H}") \ No newline at end of file
diff --git a/ports/cppcms/CONTROL b/ports/cppcms/CONTROL
new file mode 100644
index 000000000..8f8726ddc
--- /dev/null
+++ b/ports/cppcms/CONTROL
@@ -0,0 +1,4 @@
+Source: cppcms
+Version: 1.1.0-1
+Description: CppCMS is a Free High Performance Web Development Framework (not a CMS) aimed at Rapid Web Application Development
+Build-Depends: icu, pcre, openssl, zlib
diff --git a/ports/cppcms/portfile.cmake b/ports/cppcms/portfile.cmake
new file mode 100644
index 000000000..328ba20db
--- /dev/null
+++ b/ports/cppcms/portfile.cmake
@@ -0,0 +1,38 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(STATUS "cppcms doesn't support static linkage. Building dynamic instead.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+if(VCPKG_CRT_LINKAGE STREQUAL static)
+ message(FATAL_ERROR "cppcms doesn't support static CRT linkage.")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO artyom-beilis/cppcms
+ REF v1.1.0
+ SHA512 cfc77f28ddee05b8a350fff1dbd7c09adcf008b8662d4f977b203dee50b5fadae97df499a655ebb48263a7448e0bdca514c8ac52ea805bf33e48612dabaa69f4
+)
+
+vcpkg_find_acquire_program(PYTHON2)
+get_filename_component(PYTHON2_DIR ${PYTHON2} DIRECTORY)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DCMAKE_PROGRAM_PATH=${PYTHON2_DIR} -DUSE_WINDOWS6_API=ON
+)
+
+vcpkg_install_cmake()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(GLOB EXE_DEBUG_FILES ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+file(REMOVE ${EXE_DEBUG_FILES})
+file(GLOB EXE_FILES ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+file(REMOVE ${EXE_FILES})
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LGPLv3.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/cppcms)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/cppcms/LGPLv3.txt ${CURRENT_PACKAGES_DIR}/share/cppcms/copyright)
diff --git a/ports/cpprestsdk/0001_cmake.patch b/ports/cpprestsdk/0001_cmake.patch
deleted file mode 100644
index be8f2cff7..000000000
--- a/ports/cpprestsdk/0001_cmake.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-diff --git a/Release/CMakeLists.txt b/Release/CMakeLists.txt
-index 1274102..fe245e6 100644
---- a/Release/CMakeLists.txt
-+++ b/Release/CMakeLists.txt
-@@ -89,15 +89,6 @@ elseif(UNIX) # This includes OSX
-
- option(BUILD_SHARED_LIBS "Build shared Libraries." ON)
- option(BUILD_SAMPLES "Build samples." ON)
-- option(CASA_INSTALL_HEADERS "Install header files." ON)
-- if(CASA_INSTALL_HEADERS)
-- file(GLOB CASA_HEADERS_CPPREST include/cpprest/*.hpp include/cpprest/*.h include/cpprest/*.dat)
-- install(FILES ${CASA_HEADERS_CPPREST} DESTINATION include/cpprest)
-- file(GLOB CASA_HEADERS_PPLX include/pplx/*.hpp include/pplx/*.h)
-- install(FILES ${CASA_HEADERS_PPLX} DESTINATION include/pplx)
-- file(GLOB CASA_HEADERS_DETAILS include/cpprest/details/*.hpp include/cpprest/details/*.h include/cpprest/details/*.dat)
-- install(FILES ${CASA_HEADERS_DETAILS} DESTINATION include/cpprest/details)
-- endif()
- elseif(WIN32)
- option(BUILD_SHARED_LIBS "Build shared Libraries." ON)
- option(BUILD_SAMPLES "Build samples." ON)
-@@ -113,37 +104,25 @@ elseif(WIN32)
- set(Casablanca_DEFINITIONS "" CACHE INTERNAL "Definitions for consume casablanca library")
- endif()
- add_definitions(${Casablanca_DEFINITIONS} -D_WINSOCK_DEPRECATED_NO_WARNINGS -DWIN32)
--
-- if (NOT CPPREST_EXCLUDE_WEBSOCKETS)
-- set(NUGET_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../packages")
-- set(PACKAGE_PATHS)
-- list(APPEND PACKAGE_PATHS "${NUGET_PATH}/boost.1.58.0.0/")
-- list(APPEND PACKAGE_PATHS "${NUGET_PATH}/boost_system-vc140.1.58.0-vs140rc/")
-- list(APPEND PACKAGE_PATHS "${NUGET_PATH}/boost_date_time-vc140.1.58.0-vs140rc/")
-- list(APPEND PACKAGE_PATHS "${NUGET_PATH}/boost_regex-vc140.1.58.0-vs140rc/")
-- list(APPEND PACKAGE_PATHS "${NUGET_PATH}/openssl.v140.windesktop.msvcstl.static.rt-dyn.x64.1.0.2.1/")
-- list(APPEND PACKAGE_PATHS "${NUGET_PATH}/zlib.v140.windesktop.msvcstl.static.rt-dyn.1.2.8.8/")
--
-- if (NOT WINDOWS_STORE AND NOT WINDOWS_PHONE)
-- find_library(Boost_SYSTEM_LIBRARY libboost_system-vc140-mt-gd-1_58.lib PATHS ${PACKAGE_PATHS} PATH_SUFFIXES lib/native/address-model-64/lib)
-- find_library(Boost_DATE_TIME_LIBRARY libboost_date_time-vc140-mt-gd-1_58.lib PATHS ${PACKAGE_PATHS} PATH_SUFFIXES lib/native/address-model-64/lib)
-- find_library(Boost_REGEX_LIBRARY libboost_regex-vc140-mt-gd-1_58.lib PATHS ${PACKAGE_PATHS} PATH_SUFFIXES lib/native/address-model-64/lib)
-- set(Boost_LIBRARIES ${Boost_REGEX_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_DATE_TIME_LIBRARY})
--
-- find_library(OpenSSL_libeay_LIBRARY libeay32.lib PATHS ${PACKAGE_PATHS} PATH_SUFFIXES lib/native/v140/windesktop/msvcstl/static/rt-dyn/x64/debug)
-- find_library(OpenSSL_ssleay_LIBRARY ssleay32.lib PATHS ${PACKAGE_PATHS} PATH_SUFFIXES lib/native/v140/windesktop/msvcstl/static/rt-dyn/x64/debug)
-- find_library(ZLIB_LIBRARY zlibstaticd.lib PATHS ${PACKAGE_PATHS} PATH_SUFFIXES lib/native/v140/windesktop/msvcstl/static/rt-dyn/x64/debug)
-- set(OPENSSL_LIBRARIES ${OpenSSL_ssleay_LIBRARY} ${OpenSSL_libeay_LIBRARY} ${ZLIB_LIBRARY})
--
-- set(OPENSSL_INCLUDE_DIR "${NUGET_PATH}/openssl.v140.windesktop.msvcstl.static.rt-dyn.x64.1.0.2.1/build/native/include")
-- endif()
--
-- set(Boost_INCLUDE_DIR "${NUGET_PATH}/boost.1.58.0.0/lib/native/include")
-- endif()
-+ if (NOT CPPREST_EXCLUDE_WEBSOCKETS AND NOT WINDOWS_STORE)
-+ find_package(ZLIB REQUIRED)
-+ find_package(OpenSSL REQUIRED)
-+ find_package(Boost REQUIRED COMPONENTS regex system date_time)
-+ endif()
- else()
- message(FATAL_ERROR "-- Unsupported Build Platform.")
- endif()
-
-+option(CASA_INSTALL_HEADERS "Install header files." ON)
-+if(CASA_INSTALL_HEADERS)
-+ file(GLOB CASA_HEADERS_CPPREST include/cpprest/*.hpp include/cpprest/*.h include/cpprest/*.dat)
-+ install(FILES ${CASA_HEADERS_CPPREST} DESTINATION include/cpprest)
-+ file(GLOB CASA_HEADERS_PPLX include/pplx/*.hpp include/pplx/*.h)
-+ install(FILES ${CASA_HEADERS_PPLX} DESTINATION include/pplx)
-+ file(GLOB CASA_HEADERS_DETAILS include/cpprest/details/*.hpp include/cpprest/details/*.h include/cpprest/details/*.dat)
-+ install(FILES ${CASA_HEADERS_DETAILS} DESTINATION include/cpprest/details)
-+endif()
-+
- # Compiler (not platform) specific settings
- if(ANDROID)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-strict-aliasing")
-diff --git a/Release/src/CMakeLists.txt b/Release/src/CMakeLists.txt
-index 4074905..da907e5 100644
---- a/Release/src/CMakeLists.txt
-+++ b/Release/src/CMakeLists.txt
-@@ -144,10 +144,11 @@ elseif(ANDROID)
- else()
- set_target_properties(cpprest PROPERTIES
- SOVERSION ${CPPREST_VERSION_MAJOR}.${CPPREST_VERSION_MINOR})
--
-- install(
-- TARGETS cpprest
-- LIBRARY DESTINATION lib
-- ARCHIVE DESTINATION lib
-- )
- endif()
-+
-+install(
-+ TARGETS cpprest
-+ RUNTIME DESTINATION bin
-+ LIBRARY DESTINATION lib
-+ ARCHIVE DESTINATION lib
-+ )
-\ No newline at end of file
diff --git a/ports/cpprestsdk/0002_no_websocketpp_in_uwp.patch b/ports/cpprestsdk/0002_no_websocketpp_in_uwp.patch
deleted file mode 100644
index ab54baf01..000000000
--- a/ports/cpprestsdk/0002_no_websocketpp_in_uwp.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/release/CMakeLists.txt b/release/CMakeLists.txt
-index fe245e6..94a5c57 100644
---- a/release/CMakeLists.txt
-+++ b/release/CMakeLists.txt
-@@ -177,7 +177,7 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/Binaries)
-
- # These settings can be used by the test targets
- set(Casablanca_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include)
--if (NOT CPPREST_EXCLUDE_WEBSOCKETS)
-+if (NOT CPPREST_EXCLUDE_WEBSOCKETS AND NOT WINDOWS_STORE AND NOT WINDOWS_PHONE)
- find_path(WEBSOCKETPP_CONFIG websocketpp-config.cmake
- HINTS /usr/lib/cmake/websocketpp)
- find_path(WEBSOCKETPP_CONFIG_VERSION websocketpp-configVersion.cmake
diff --git a/ports/cpprestsdk/CONTROL b/ports/cpprestsdk/CONTROL
index f284f2b53..7e6dbc0d1 100644
--- a/ports/cpprestsdk/CONTROL
+++ b/ports/cpprestsdk/CONTROL
@@ -1,5 +1,5 @@
Source: cpprestsdk
-Version: 2.9.0-2
-Build-Depends: zlib [windows], openssl [windows], boost [windows], websocketpp [windows]
+Version: 2.10.2-1
+Build-Depends: zlib, openssl (!uwp), boost-system (!uwp), boost-date-time (!uwp), boost-regex (!uwp), websocketpp (!uwp), boost-thread (!uwp&!windows), boost-filesystem (!uwp&!windows), boost-random (!uwp&!windows), boost-chrono (!uwp&!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. \ No newline at end of file
+ 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 ea7d8d201..46686bb0a 100644
--- a/ports/cpprestsdk/portfile.cmake
+++ b/ports/cpprestsdk/portfile.cmake
@@ -3,18 +3,10 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/cpprestsdk
- REF v2.9.0
- SHA512 c75de6ad33b3e8d2c6ba7c0955ed851d557f78652fb38a565de0cfbc99e7db89cb6fa405857512e5149df80356c51ae9335abd914c3c593fa6658ac50adf4e29
+ REF v2.10.2
+ SHA512 267a928f770a668874f9b7e381e8977ffa3478c9292df4ed93d4235d20f0e89b1bfe4cfc82945d3f28fe2746a4fe6089009c4839dac5db130494bb3a395dd198
HEAD_REF master
)
-if(NOT VCPKG_USE_HEAD_VERSION)
- vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch
- ${CMAKE_CURRENT_LIST_DIR}/0002_no_websocketpp_in_uwp.patch
- )
-endif()
set(OPTIONS)
if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
@@ -33,16 +25,14 @@ vcpkg_configure_cmake(
-DBUILD_SAMPLES=OFF
-DCPPREST_EXCLUDE_WEBSOCKETS=OFF
-DCPPREST_EXPORT_DIR=share/cpprestsdk
+ -DWERROR=OFF
OPTIONS_DEBUG
- -DCASA_INSTALL_HEADERS=OFF
-DCPPREST_INSTALL_HEADERS=OFF
)
vcpkg_install_cmake()
-if(VCPKG_USE_HEAD_VERSION)
- vcpkg_fixup_cmake_targets()
-endif()
+vcpkg_fixup_cmake_targets()
file(INSTALL
${SOURCE_PATH}/license.txt
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..7a936d655 100644
--- a/ports/cppunit/portfile.cmake
+++ b/ports/cppunit/portfile.cmake
@@ -1,21 +1,10 @@
-# 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-${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/cppwinrt/CONTROL b/ports/cppwinrt/CONTROL
index e49eefe99..cd911b99e 100644
--- a/ports/cppwinrt/CONTROL
+++ b/ports/cppwinrt/CONTROL
@@ -1,3 +1,3 @@
Source: cppwinrt
-Version: feb2017_refresh-14393
+Version: fall_2017_creators_update_for_vs_15.3-2
Description: C++/WinRT is a standard C++ language projection for the Windows Runtime.
diff --git a/ports/cppwinrt/portfile.cmake b/ports/cppwinrt/portfile.cmake
index b0e808c84..ec1cb0603 100644
--- a/ports/cppwinrt/portfile.cmake
+++ b/ports/cppwinrt/portfile.cmake
@@ -1,18 +1,21 @@
include(vcpkg_common_functions)
-find_program(GIT git)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cppwinrt-february_2017_refresh)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/Microsoft/cppwinrt/archive/february_2017_refresh.tar.gz"
- FILENAME "cppwinrt-february_2017_refresh.tar.gz"
- SHA512 0e2ed94d65ae4c7297ae4d82d64a43fa59fac7b35fbe42ea939f135f0f6eb867f57fac70b6a9cc9a78912de75aa4482d48007f83a3781b147d237ae637fdaa0e
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Microsoft/cppwinrt
+ REF fall_2017_creators_update_for_vs_15.3
+ SHA512 e3f987ed3f3dce019b8bf9f5451e53b42357473a003b8c14f9009e1848ee0463286bd46fdc3c739c8f7c2d232707e8018f5c087ffae784c745d51a8143f9a294
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
# Put the licence file where vcpkg expects it
-file(COPY ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/cppwinrt/license.txt)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/cppwinrt/license.txt ${CURRENT_PACKAGES_DIR}/share/cppwinrt/copyright)
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/cppwinrt)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/cppwinrt/LICENSE ${CURRENT_PACKAGES_DIR}/share/cppwinrt/copyright)
# Copy the cppwinrt header files
-file(GLOB HEADER_FILES ${SOURCE_PATH}/10.0.14393.0/winrt/*)
-file(COPY ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/winrt)
+file(GLOB HEADER_FILES ${SOURCE_PATH}/10.0.16299.0/winrt/*)
+file(
+ COPY ${HEADER_FILES}
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include/winrt
+ REGEX "\.(gitattributes|gitignore)$" EXCLUDE
+)
diff --git a/ports/cppzmq/CONTROL b/ports/cppzmq/CONTROL
index bbf80d29a..e970bac53 100644
--- a/ports/cppzmq/CONTROL
+++ b/ports/cppzmq/CONTROL
@@ -1,4 +1,4 @@
Source: cppzmq
-Version: 4.2.1
+Version: 4.2.2-1
Build-Depends: zeromq
Description: lightweight messaging kernel, C++ bindings
diff --git a/ports/cppzmq/portfile.cmake b/ports/cppzmq/portfile.cmake
index fdfc86257..282a86dfd 100644
--- a/ports/cppzmq/portfile.cmake
+++ b/ports/cppzmq/portfile.cmake
@@ -1,16 +1,24 @@
#header-only library
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cppzmq-4.2.1)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/zeromq/cppzmq/archive/v4.2.1.zip"
- FILENAME "cppzmq-4.2.1.zip"
- SHA512 ee75ce4bd28ecb5ef660d1ed6f5522654eced6ded8745dc0c61df351f4ff0ff8980d1bd848b2649fcce4aa539a457e56e55b0a59cb49f44b0a29875d0ea28dce
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO zeromq/cppzmq
+ REF v4.2.2
+ SHA512 5f61ea4a16987c1363c3029cf46b3e83ddd86d65e8d639b0332d691f8fdb5cee121b5d72a9b8c89221daf52ea5892219e0bc4ea4e761bb1e7deb1659011dd3c9
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
)
-vcpkg_extract_source_archive(${ARCHIVE})
-# cppzmq is a single header library, so we just need to copy that file in the include directory
-file(INSTALL ${SOURCE_PATH}/zmq.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include)
-file(INSTALL ${SOURCE_PATH}/zmq_addon.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake/cppzmq)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug)
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/cppzmq)
diff --git a/ports/cpr/CONTROL b/ports/cpr/CONTROL
new file mode 100644
index 000000000..6a2751073
--- /dev/null
+++ b/ports/cpr/CONTROL
@@ -0,0 +1,4 @@
+Source: cpr
+Version: 1.3.0-3
+Description: C++ Requests is a simple wrapper around libcurl inspired by the excellent Python Requests project.
+Build-Depends: curl[core]
diff --git a/ports/cpr/enable-install.patch b/ports/cpr/enable-install.patch
new file mode 100644
index 000000000..250199e5a
--- /dev/null
+++ b/ports/cpr/enable-install.patch
@@ -0,0 +1,17 @@
+diff --git a/cpr/CMakeLists.txt b/cpr/CMakeLists.txt
+index a6db5bd..b4982d1 100644
+--- a/cpr/CMakeLists.txt
++++ b/cpr/CMakeLists.txt
+@@ -45,3 +45,12 @@ add_library(${CPR_LIBRARIES}
+ message(STATUS "Using CURL_LIBRARIES: ${CURL_LIBRARIES}.")
+ target_link_libraries(${CPR_LIBRARIES}
+ ${CURL_LIBRARIES})
++
++install(TARGETS ${CPR_LIBRARIES}
++ RUNTIME DESTINATION bin
++ LIBRARY DESTINATION lib
++ ARCHIVE DESTINATION lib
++)
++if(NOT DISABLE_INSTALL_HEADERS)
++ install(DIRECTORY ${CPR_INCLUDE_DIRS}/cpr DESTINATION include)
++endif()
diff --git a/ports/cpr/portfile.cmake b/ports/cpr/portfile.cmake
new file mode 100644
index 000000000..281e0da43
--- /dev/null
+++ b/ports/cpr/portfile.cmake
@@ -0,0 +1,32 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO whoshuu/cpr
+ REF 1.3.0
+ SHA512 fd08f8a592a5e1fb8dc93158a4850b81575983c08527fb415f65bd9284f93c804c8680d16c548744583cd26b9353a7d4838269cfc59ccb6003da8941f620c273
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/enable-install.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_CPR_TESTS=OFF
+ -DUSE_SYSTEM_CURL=ON
+ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
+ OPTIONS_DEBUG
+ -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/cpr)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/cpr/LICENSE ${CURRENT_PACKAGES_DIR}/share/cpr/copyright)
diff --git a/ports/crc32c/CONTROL b/ports/crc32c/CONTROL
new file mode 100644
index 000000000..77a7e42c9
--- /dev/null
+++ b/ports/crc32c/CONTROL
@@ -0,0 +1,3 @@
+Source: crc32c
+Version: 1.0.5
+Description: CRC32C implementation with support for CPU-specific acceleration instructions.
diff --git a/ports/crc32c/portfile.cmake b/ports/crc32c/portfile.cmake
new file mode 100644
index 000000000..2747d69bd
--- /dev/null
+++ b/ports/crc32c/portfile.cmake
@@ -0,0 +1,38 @@
+include(vcpkg_common_functions)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "building static")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/crc32c
+ REF 12a65bfb328fefae5c05879132676f702a3f68e8
+ SHA512 610b7c54b0247edd2d37ec18db68c1f8a55b60b2fd3ddcede41e6321eb45d040f513cece493cbdc67e881065a643c4972126864811ff08b24aa7e82642e54f56
+ HEAD_REF master
+)
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCRC32C_BUILD_TESTS=OFF
+ -DCRC32C_BUILD_BENCHMARKS=OFF
+ -DCRC32C_USE_GLOG=OFF
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake")
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/crc32c RENAME copyright)
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/cryptopp/CONTROL b/ports/cryptopp/CONTROL
index 2a38d8910..6fea020bd 100644
--- a/ports/cryptopp/CONTROL
+++ b/ports/cryptopp/CONTROL
@@ -1,3 +1,3 @@
Source: cryptopp
-Version: 5.6.5
+Version: 6.1.0-2
Description: Crypto++ is a free C++ class library of cryptographic schemes.
diff --git a/ports/cryptopp/cmake.patch b/ports/cryptopp/cmake.patch
new file mode 100644
index 000000000..fbe725eb9
--- /dev/null
+++ b/ports/cryptopp/cmake.patch
@@ -0,0 +1,15 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5b6e1e6..a0adcf6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -329,6 +329,10 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
+ SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FI\"winapifamily.h\"" )
+ endif ()
+
++if(WINDOWS_STORE)
++ add_definitions(-DCRYPTOPP_DISABLE_NACL=1)
++endif()
++
+ # Enable PIC for all target machines except 32-bit i386 due to register pressures.
+ if (NOT CRYPTOPP_I386)
+ SET(CMAKE_POSITION_INDEPENDENT_CODE 1)
diff --git a/ports/cryptopp/patch.patch b/ports/cryptopp/patch.patch
new file mode 100644
index 000000000..5c49d2757
--- /dev/null
+++ b/ports/cryptopp/patch.patch
@@ -0,0 +1,12 @@
+diff --git a/config.h b/config.h
+index b96b7aa..3f004ac 100644
+--- a/config.h
++++ b/config.h
+@@ -795,6 +795,7 @@ NAMESPACE_END
+ #endif
+
+ #ifdef CRYPTOPP_WIN32_AVAILABLE
++#include <winapifamily.h>
+ # if !defined(WINAPI_FAMILY)
+ # define THREAD_TIMER_AVAILABLE
+ # elif defined(WINAPI_FAMILY)
diff --git a/ports/cryptopp/portfile.cmake b/ports/cryptopp/portfile.cmake
index 4847c208b..6b4b844c4 100644
--- a/ports/cryptopp/portfile.cmake
+++ b/ports/cryptopp/portfile.cmake
@@ -3,13 +3,32 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
endif()
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cryptopp-CRYPTOPP_5_6_5)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/weidai11/cryptopp/archive/CRYPTOPP_5_6_5.zip"
- FILENAME "CRYPTOPP_5_6_5.zip"
- SHA512 abca8089e2d587f59c503d2d6412b3128d061784349c735f3ee46be1cb9e3d0d0fed9a9173765fa033eb2dc744e03810de45b8cc2f8ca1672a36e4123648ea44
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH CMAKE_SOURCE_PATH
+ REPO noloader/cryptopp-cmake
+ REF aab149932675e4bb777a9d3d6b3f8b8182583fd7
+ SHA512 748c77e936888d042bf4a72cc7ee3b7b2ecf16c003cb23296c1af413c9a0cba00cc942ecace26274fc8ac8bd4d848946beb9d7bf2253c5eab3315a4419ef5f1f
+ HEAD_REF master
+)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO weidai11/cryptopp
+ REF CRYPTOPP_6_1_0
+ SHA512 4bc02fef33f1859a07434a4752c2575afd781056e9a91eed99a13cebe2c91d66cbc7173e34d362da63dad6d38f9594ff291accd27e111232996ccd536bba0f39
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_SOURCE_PATH}/cryptopp-config.cmake DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_SOURCE_PATH}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_apply_patches(
+ SOURCE_PATH "${SOURCE_PATH}"
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/patch.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/cmake.patch"
)
-vcpkg_extract_source_archive(${ARCHIVE})
# Dynamic linking should be avoided for Crypto++ to reduce the attack surface,
# so generate a static lib for both dynamic and static vcpkg targets.
@@ -19,6 +38,7 @@ vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
-DBUILD_SHARED=OFF
-DBUILD_STATIC=ON
@@ -27,18 +47,10 @@ vcpkg_configure_cmake(
)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/cryptopp)
# There is no way to suppress installation of the headers and resource files in debug build.
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-
-# Remove executables
-file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/cryptest.exe)
-file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/cryptest.exe)
-
-# Remove other files not required in package
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
# Handle copyright
file(COPY ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/cryptopp)
diff --git a/ports/ctemplate/CMakeLists.txt b/ports/ctemplate/CMakeLists.txt
new file mode 100644
index 000000000..63e6fc6b3
--- /dev/null
+++ b/ports/ctemplate/CMakeLists.txt
@@ -0,0 +1,96 @@
+cmake_minimum_required(VERSION 3.5.1)
+project(libctemplate C CXX)
+
+# find_package(PythonInterp)
+if(NOT PYTHON_EXECUTABLE)
+ message(FATAL_ERROR "PYTHON_EXECUTABLE must be set")
+endif()
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+ add_definitions(-D_VARIADIC_MAX=10)
+endif()
+
+set(SOURCE_PATH ${PROJECT_SOURCE_DIR}/src)
+set(BASE_SOURCE_PATH ${SOURCE_PATH}/base)
+set(WINDOWS_SOURCE_PATH ${SOURCE_PATH}/windows)
+set(HTMLPARSER_SOURCE_PATH ${SOURCE_PATH}/htmlparser)
+
+set(COMMON_INCLUDES ${PROJECT_BINARY_DIR}/include)
+
+set(HTMLPARSER_CONFIG ${HTMLPARSER_SOURCE_PATH}/htmlparser_fsm.config)
+set(JSPASPER_CONFIG ${HTMLPARSER_SOURCE_PATH}/jsparser_fsm.config)
+set(FSM_GENERATOR ${HTMLPARSER_SOURCE_PATH}/generate_fsm.py)
+
+set(BASE_HEADERS
+ "${BASE_SOURCE_PATH}/arena.h"
+ "${BASE_SOURCE_PATH}/manual_constructor.h"
+ "${BASE_SOURCE_PATH}/mutex.h"
+ "${BASE_SOURCE_PATH}/small_map.h"
+ "${BASE_SOURCE_PATH}/thread_annotations.h"
+ "${BASE_SOURCE_PATH}/util.h"
+ "${BASE_SOURCE_PATH}/arena-inl.h"
+)
+
+set(
+ HTMLPARSER_HEADERS
+ "${HTMLPARSER_SOURCE_PATH}/htmlparser.h"
+ "${HTMLPARSER_SOURCE_PATH}/htmlparser_cpp.h"
+ "${HTMLPARSER_SOURCE_PATH}/jsparser.h"
+ "${HTMLPARSER_SOURCE_PATH}/statemachine.h"
+)
+set(SRC_FILES
+ "${SOURCE_PATH}/base/arena.cc"
+ "${SOURCE_PATH}/htmlparser/htmlparser.cc"
+ "${SOURCE_PATH}/htmlparser/jsparser.cc"
+ "${SOURCE_PATH}/htmlparser/statemachine.cc"
+ "${SOURCE_PATH}/per_expand_data.cc"
+ "${SOURCE_PATH}/template.cc"
+ "${SOURCE_PATH}/template_annotator.cc"
+ "${SOURCE_PATH}/template_cache.cc"
+ "${SOURCE_PATH}/template_dictionary.cc"
+ "${SOURCE_PATH}/template_modifiers.cc"
+ "${SOURCE_PATH}/template_namelist.cc"
+ "${SOURCE_PATH}/template_pathops.cc"
+ "${SOURCE_PATH}/template_string.cc"
+ "${SOURCE_PATH}/windows/port.cc"
+)
+
+file(COPY "${WINDOWS_SOURCE_PATH}/" DESTINATION ${COMMON_INCLUDES})
+file(COPY "${WINDOWS_SOURCE_PATH}/config.h" DESTINATION ${COMMON_INCLUDES}/windows)
+file(COPY "${WINDOWS_SOURCE_PATH}/port.h" DESTINATION ${COMMON_INCLUDES}/windows)
+file(COPY ${HTMLPARSER_HEADERS} DESTINATION ${COMMON_INCLUDES}/htmlparser)
+file(COPY ${BASE_HEADERS} DESTINATION ${COMMON_INCLUDES}/base)
+
+execute_process(
+ COMMAND ${PYTHON_EXECUTABLE} ${FSM_GENERATOR} ${HTMLPARSER_CONFIG}
+ WORKING_DIRECTORY ${COMMON_INCLUDES}/htmlparser
+ OUTPUT_VARIABLE HTMLPARSER_CONFIG_H
+)
+execute_process(
+ COMMAND ${PYTHON_EXECUTABLE} ${FSM_GENERATOR} ${JSPASPER_CONFIG}
+ WORKING_DIRECTORY ${COMMON_INCLUDES}/htmlparser
+ OUTPUT_VARIABLE JSPASPER_CONFIG_H
+)
+
+file(WRITE "${COMMON_INCLUDES}/htmlparser/htmlparser_fsm.h" "${HTMLPARSER_CONFIG_H}")
+file(WRITE "${COMMON_INCLUDES}/htmlparser/jsparser_fsm.h" "${JSPASPER_CONFIG_H}")
+
+include_directories(${COMMON_INCLUDES})
+
+add_library(libctemplate ${SRC_FILES})
+if(NOT BUILD_SHARED_LIBS)
+ # Note: CTEMPLATE_DLL_DECL should be empty to build static file
+ target_compile_definitions(libctemplate PRIVATE -DCTEMPLATE_DLL_DECL=)
+endif()
+
+install(
+ TARGETS libctemplate
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(DIRECTORY "${COMMON_INCLUDES}/ctemplate" DESTINATION include FILES_MATCHING PATTERN "*.h")
+endif()
diff --git a/ports/ctemplate/CONTROL b/ports/ctemplate/CONTROL
new file mode 100644
index 000000000..1125efc18
--- /dev/null
+++ b/ports/ctemplate/CONTROL
@@ -0,0 +1,3 @@
+Source: ctemplate
+Version: 2017-06-23-44b7c5-3
+Description: C++ CTemplate system
diff --git a/ports/ctemplate/fix-msvc.patch b/ports/ctemplate/fix-msvc.patch
new file mode 100644
index 000000000..acfbce4bf
--- /dev/null
+++ b/ports/ctemplate/fix-msvc.patch
@@ -0,0 +1,17 @@
+diff --git a/src/per_expand_data.cc b/src/per_expand_data.cc
+index f8f3025..0a468cf 100644
+--- a/src/per_expand_data.cc
++++ b/src/per_expand_data.cc
+@@ -42,10 +42,12 @@ namespace ctemplate {
+
+ using std::string;
+
++#ifndef _MSC_VER
+ bool PerExpandData::DataEq::operator()(const char* s1, const char* s2) const {
+ return ((s1 == 0 && s2 == 0) ||
+ (s1 && s2 && *s1 == *s2 && strcmp(s1, s2) == 0));
+ }
++#endif
+
+ PerExpandData::~PerExpandData() {
+ delete map_;
diff --git a/ports/ctemplate/portfile.cmake b/ports/ctemplate/portfile.cmake
new file mode 100644
index 000000000..d22c3afa4
--- /dev/null
+++ b/ports/ctemplate/portfile.cmake
@@ -0,0 +1,25 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO OlafvdSpek/ctemplate
+ REF 4b7e6c52dc7cbb4d51c9abcebcbac91ec256a62b
+ SHA512 9317fb26f22892b0bc2ca17cbccb5b084091050aa88766b4ed673a690bc4cdb9cd882134fbcd7ed3ee156f6a6937218717765143796d7e98b532355867ed042b
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_find_acquire_program(PYTHON3)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS -DPYTHON_EXECUTABLE=${PYTHON3}
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/ctemplate RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/cuda/CONTROL b/ports/cuda/CONTROL
index 0bf29b7b6..271869e8b 100644
--- a/ports/cuda/CONTROL
+++ b/ports/cuda/CONTROL
@@ -1,3 +1,3 @@
Source: cuda
-Version: 8.0-1
+Version: 9.0
Description: A parallel computing platform and programming model \ No newline at end of file
diff --git a/ports/cuda/portfile.cmake b/ports/cuda/portfile.cmake
index ee876ce50..7cc1773db 100644
--- a/ports/cuda/portfile.cmake
+++ b/ports/cuda/portfile.cmake
@@ -20,26 +20,26 @@ if (NVCC)
RESULT_VARIABLE error_code)
endif()
-# Sample output
-# NVIDIA (R) Cuda compiler driver
-# Copyright (c) 2005-2016 NVIDIA Corporation
-# Built on Sat_Sep__3_19:05:48_CDT_2016
-# Cuda compilation tools, release 8.0, V8.0.44
-set(CUDA_REQUIRED_VERSION "V8.0.0")
+set(CUDA_REQUIRED_VERSION "V9.0.0")
if (error_code)
message(FATAL_ERROR "Could not find CUDA. Before continuing, please download and install CUDA (${CUDA_REQUIRED_VERSION} or higher) from:"
"\n https://developer.nvidia.com/cuda-downloads\n"
- "\nAlso ensure vcpkg has been rebuilt with the latest version (v0.0.79 or later)")
+ "\nAlso ensure vcpkg has been rebuilt with the latest version (v0.0.104 or later)")
endif()
+# Sample output:
+# NVIDIA (R) Cuda compiler driver
+# Copyright (c) 2005-2016 NVIDIA Corporation
+# Built on Sat_Sep__3_19:05:48_CDT_2016
+# Cuda compilation tools, release 8.0, V8.0.44
string(REGEX MATCH "V([0-9]+)\\.([0-9]+)\\.([0-9]+)" CUDA_VERSION ${NVCC_OUTPUT})
message(STATUS "Found CUDA ${CUDA_VERSION}")
set(CUDA_VERSION_MAJOR ${CMAKE_MATCH_1})
#set(CUDA_VERSION_MINOR ${CMAKE_MATCH_2})
#set(CUDA_VERSION_PATCH ${CMAKE_MATCH_3})
-if (CUDA_VERSION_MAJOR LESS 8)
+if (CUDA_VERSION_MAJOR LESS 9)
message(FATAL_ERROR "CUDA ${CUDA_VERSION} but ${CUDA_REQUIRED_VERSION} is required. Please download and install a more recent version of CUDA from:"
"\n https://developer.nvidia.com/cuda-downloads\n")
endif()
diff --git a/ports/cunit/CMakeLists.txt b/ports/cunit/CMakeLists.txt
new file mode 100644
index 000000000..b796355aa
--- /dev/null
+++ b/ports/cunit/CMakeLists.txt
@@ -0,0 +1,61 @@
+cmake_minimum_required (VERSION 3.8.0)
+project (libcunit C)
+
+set(HEADERS_DIR "${PROJECT_SOURCE_DIR}/CUnit/Headers")
+set(SOURCES_DIR "${PROJECT_SOURCE_DIR}/CUnit/Sources")
+set(EXAMPLES_DIR "${PROJECT_SOURCE_DIR}/Examples")
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+configure_file(
+ "${HEADERS_DIR}/CUnit.h.in"
+ "${PROJECT_BINARY_DIR}/CUnit.h"
+)
+
+file(READ "${PROJECT_BINARY_DIR}/CUnit.h" CUNIT_H)
+if (BUILD_SHARED_LIBS)
+ string(REPLACE "ifdef CU_DLL" "if 1" CUNIT_H "${CUNIT_H}")
+else()
+ string(REPLACE "ifdef CU_DLL" "if 0" CUNIT_H "${CUNIT_H}")
+endif()
+file(WRITE "${PROJECT_BINARY_DIR}/CUnit.h" "${CUNIT_H}")
+
+include_directories("${PROJECT_BINARY_DIR}")
+include_directories(${HEADERS_DIR})
+
+add_library(libcunit
+ "${SOURCES_DIR}/Automated/Automated.c"
+ "${SOURCES_DIR}/Basic/Basic.c"
+ "${SOURCES_DIR}/Console/Console.c"
+ "${SOURCES_DIR}/Framework/CUError.c"
+ "${SOURCES_DIR}/Framework/MyMem.c"
+ "${SOURCES_DIR}/Framework/TestDB.c"
+ "${SOURCES_DIR}/Framework/TestRun.c"
+ "${SOURCES_DIR}/Framework/Util.c"
+)
+target_compile_definitions(libcunit PRIVATE -DCU_BUILD_DLL)
+
+if(BUILD_EXAMPLES)
+ include_directories(${EXAMPLES_DIR})
+ add_executable(AutomatedTest ${EXAMPLES_DIR}/AutomatedTest/AutomatedTest.c "${EXAMPLES_DIR}/ExampleTests.c")
+ add_executable(BasicTest ${EXAMPLES_DIR}/BasicTest/BasicTest.c "${EXAMPLES_DIR}/ExampleTests.c")
+ add_executable(ConsoleTest ${EXAMPLES_DIR}/ConsoleTest/ConsoleTest.c "${EXAMPLES_DIR}/ExampleTests.c")
+
+ target_link_libraries(AutomatedTest libcunit)
+ target_link_libraries(BasicTest libcunit)
+ target_link_libraries(ConsoleTest libcunit)
+endif()
+
+install(
+ TARGETS libcunit
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(DIRECTORY "${HEADERS_DIR}/" DESTINATION include/cunit FILES_MATCHING PATTERN "*.h")
+ install(FILES "${PROJECT_BINARY_DIR}/CUnit.h" DESTINATION include/cunit)
+endif()
diff --git a/ports/cunit/CONTROL b/ports/cunit/CONTROL
new file mode 100644
index 000000000..4b43a0159
--- /dev/null
+++ b/ports/cunit/CONTROL
@@ -0,0 +1,3 @@
+Source: cunit
+Version: 2.1.3-2
+Description: CUnit is a lightweight system for writing, administering, and running unit tests in C. It provides C programmers a basic testing functionality with a flexible variety of user interfaces
diff --git a/ports/cunit/portfile.cmake b/ports/cunit/portfile.cmake
new file mode 100644
index 000000000..7e4a977af
--- /dev/null
+++ b/ports/cunit/portfile.cmake
@@ -0,0 +1,23 @@
+include(vcpkg_common_functions)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/CUnit-2.1-3)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://downloads.sourceforge.net/project/cunit/CUnit/2.1-3/CUnit-2.1-3.tar.bz2"
+ FILENAME "CUnit-2.1-3.tar.bz2"
+ SHA512 547b417109332446dfab8fda17bf4ccd2da841dc93f824dc90a20635bcf1fb80fb2176500d8a0906940f3f3d3e2f77b2d70a71090c9ab84ad9af43f3582bc487
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/cunit RENAME copyright)
+
+vcpkg_copy_pdbs()
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 5cd0678cf..111ca98e8 100644
--- a/ports/curl/0002_fix_uwp.patch
+++ b/ports/curl/0002_fix_uwp.patch
@@ -1,20 +1,20 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index ed3f38a..d6480b7 100644
+index 7b73b98..72f6171 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -1010,7 +1010,9 @@ include(CMake/OtherTests.cmake)
- add_definitions(-DHAVE_CONFIG_H)
+@@ -882,7 +882,9 @@ check_symbol_exists(setsockopt "${CURL_INCLUDES}" HAVE_SETSOCKOPT)
+ check_function_exists(mach_absolute_time HAVE_MACH_ABSOLUTE_TIME)
- # For windows, do not allow the compiler to use default target (Vista).
+ # symbol exists in win32, but function does not.
-if(WIN32)
+if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ add_definitions(-D_WIN32_WINNT=0x0A00 -DHAVE_STRUCT_POLLFD -D_WINSOCK_DEPRECATED_NO_WARNINGS)
+elseif(WIN32)
- add_definitions(-D_WIN32_WINNT=0x0501)
- endif(WIN32)
-
+ if(ENABLE_INET_PTON)
+ check_function_exists(inet_pton HAVE_INET_PTON)
+ # _WIN32_WINNT_VISTA (0x0600)
diff --git a/lib/curl_gethostname.c b/lib/curl_gethostname.c
-index 2591fd8..cef38ac 100644
+index 8337c72..41867b2 100644
--- a/lib/curl_gethostname.c
+++ b/lib/curl_gethostname.c
@@ -21,6 +21,7 @@
@@ -25,7 +25,7 @@ index 2591fd8..cef38ac 100644
#include "curl_gethostname.h"
-@@ -64,9 +65,10 @@ int Curl_gethostname(char *name, GETHOSTNAME_TYPE_ARG2 namelen) {
+@@ -64,9 +65,10 @@ int Curl_gethostname(char *name, GETHOSTNAME_TYPE_ARG2 namelen)
#ifdef DEBUGBUILD
/* Override host name when environment variable CURL_GETHOSTNAME is set */
@@ -38,10 +38,10 @@ index 2591fd8..cef38ac 100644
}
else {
diff --git a/lib/curl_ntlm_core.c b/lib/curl_ntlm_core.c
-index 812a073..02c8416 100644
+index e896276..268f0ea 100644
--- a/lib/curl_ntlm_core.c
+++ b/lib/curl_ntlm_core.c
-@@ -696,9 +696,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,40 +57,23 @@ index 812a073..02c8416 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 b231731..d50779f 100644
+index 8042edf..3442df7 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
-@@ -3250,7 +3250,7 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status,
- ssize_t nread;
- int ftpcode;
- CURLcode result = CURLE_OK;
-- char *path;
-+ char *path = NULL;
- const char *path_to_use = data->state.path;
-
- if(!ftp)
-diff --git a/lib/smb.c b/lib/smb.c
-index 7cb0c96..2f43d3c 100644
---- a/lib/smb.c
-+++ b/lib/smb.c
-@@ -32,8 +32,12 @@
-
- #ifdef HAVE_PROCESS_H
- #include <process.h>
-+#if defined(CURL_WINDOWS_APP)
-+#define getpid GetCurrentProcessId
-+#else
- #define getpid _getpid
- #endif
-+#endif
-
- #include "smb.h"
- #include "urldata.h"
-diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c
-index 56a8823..5a895ed 100644
---- a/lib/vtls/vtls.c
-+++ b/lib/vtls/vtls.c
-@@ -197,7 +197,7 @@ unsigned int Curl_rand(struct Curl_easy *data)
+@@ -4260,7 +4260,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;
+- char *path;
++ char *path = NULL;
+ CURLcode result =
+ Curl_urldecode(conn->data, data->state.path, 0, &path, &dlen, TRUE);
+ if(result) {
+diff --git a/lib/rand.c b/lib/rand.c
+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)
static bool seeded = FALSE;
#ifdef CURLDEBUG
@@ -98,12 +81,12 @@ index 56a8823..5a895ed 100644
+ char *force_entropy = curl_getenv("CURL_ENTROPY");
if(force_entropy) {
if(!seeded) {
- size_t elen = strlen(force_entropy);
-@@ -208,6 +208,7 @@ unsigned int Curl_rand(struct Curl_easy *data)
- }
+ unsigned int seed = 0;
+@@ -58,6 +58,7 @@ static CURLcode randit(struct Curl_easy *data, unsigned int *rnd)
else
randseed++;
+ *rnd = randseed;
+ free(force_entropy);
- return randseed;
+ return CURLE_OK;
}
#endif
diff --git a/ports/curl/0003_fix_libraries.patch b/ports/curl/0003_fix_libraries.patch
new file mode 100644
index 000000000..a06e7b544
--- /dev/null
+++ b/ports/curl/0003_fix_libraries.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 490cc19ef8..23fe34f614 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -330,7 +330,7 @@ if(CMAKE_USE_WINSSL)
+ set(SSL_ENABLED ON)
+ set(USE_SCHANNEL ON) # Windows native SSL/TLS support
+ set(USE_WINDOWS_SSPI ON) # CMAKE_USE_WINSSL implies CURL_WINDOWS_SSPI
+- list(APPEND CURL_LIBS "crypt32")
++ list(APPEND CURL_LIBS "crypt32" "advapi32")
+ endif()
+ if(CURL_WINDOWS_SSPI)
+ set(USE_WINDOWS_SSPI ON)
diff --git a/ports/curl/0004_nghttp2_staticlib.patch b/ports/curl/0004_nghttp2_staticlib.patch
new file mode 100644
index 000000000..c5cba9c5f
--- /dev/null
+++ b/ports/curl/0004_nghttp2_staticlib.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 490cc19..51c0a92 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -388,6 +388,9 @@ if(USE_NGHTTP2)
+ find_package(NGHTTP2 REQUIRED)
+ include_directories(${NGHTTP2_INCLUDE_DIRS})
+ list(APPEND CURL_LIBS ${NGHTTP2_LIBRARIES})
++ if(CURL_STATICLIB)
++ add_definitions(-DNGHTTP2_STATICLIB)
++ endif()
+ endif()
+
+ if(NOT CURL_DISABLE_LDAP)
diff --git a/ports/curl/CONTROL b/ports/curl/CONTROL
index 9ae7e7e52..61456a99b 100644
--- a/ports/curl/CONTROL
+++ b/ports/curl/CONTROL
@@ -1,4 +1,24 @@
Source: curl
-Version: 7.51.0-3
-Build-Depends: zlib, openssl, libssh2
+Version: 7.60.0-1
+Build-Depends: zlib
Description: A library for transferring data with URLs
+Default-Features: ssl
+# For WINSSL add set(CURL_USE_WINSSL ON) to your triplet file
+
+Feature: tool
+Description: Builds curl executable
+
+Feature: non-http
+Description: Enables protocols beyond HTTP/HTTPS/HTTP2
+
+Feature: http2
+Build-Depends: nghttp2, curl[ssl]
+Description: HTTP2 support
+
+Feature: ssl
+Build-Depends: openssl
+Description: SSL support
+
+Feature: ssh
+Build-Depends: libssh2, curl[non-http]
+Description: SSH support via libssh2
diff --git a/ports/curl/portfile.cmake b/ports/curl/portfile.cmake
index 35bfbd592..329ead341 100644
--- a/ports/curl/portfile.cmake
+++ b/ports/curl/portfile.cmake
@@ -1,61 +1,141 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/curl-curl-7_51_0)
-vcpkg_download_distfile(ARCHIVE_FILE
- URLS "https://github.com/curl/curl/archive/curl-7_51_0.tar.gz"
- FILENAME "curl-7.51.0.tar.gz"
- SHA512 88ec572efb1b2fb793dc26b627e54863718e774343283f0eb92022ce252f7798332d9d3f20f63e45c38576614a000abbf12570e91e14a118f150e0378f1a27e5
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO curl/curl
+ REF curl-7_60_0
+ SHA512 876ca211d40887f36f77661235d3875bdd3fe210f131c8bd1025bd8c9ca3144a9ac23247067675a3e30385427748c51d0d54250cc2bb4a2ae0c3a9b9428b0e66
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE_FILE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch
${CMAKE_CURRENT_LIST_DIR}/0002_fix_uwp.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0003_fix_libraries.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0004_nghttp2_staticlib.patch
)
-if (VCPKG_CRT_LINKAGE STREQUAL dynamic)
- SET(CURL_STATICLIB OFF)
-else()
- SET(CURL_STATICLIB ON)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" CURL_STATICLIB)
+
+# Support HTTP2 TSL Download https://curl.haxx.se/ca/cacert.pem rename to curl-ca-bundle.crt, copy it to libcurl.dll location.
+set(HTTP2_OPTIONS)
+if("http2" IN_LIST FEATURES)
+ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "The http2 feature cannot be enabled when building for UWP.")
+ endif()
+
+ set(HTTP2_OPTIONS -DUSE_NGHTTP2=ON)
+endif()
+
+# SSL
+set(USE_OPENSSL OFF)
+set(USE_WINSSL OFF)
+if("ssl" IN_LIST FEATURES)
+ if(CURL_USE_WINSSL)
+ set(USE_WINSSL ON)
+ else()
+ set(USE_OPENSSL ON)
+ endif()
+endif()
+
+# SSH
+set(USE_LIBSSH2 OFF)
+if("ssh" IN_LIST FEATURES)
+ set(USE_LIBSSH2 ON)
endif()
+# HTTP/HTTPS only
+# Note that `HTTP_ONLY` curl option disables everything including HTTPS, which is not an option.
+set(USE_HTTP_ONLY ON)
+if("non-http" IN_LIST FEATURES)
+ set(USE_HTTP_ONLY OFF)
+endif()
+
+# curl exe
+set(BUILD_CURL_EXE OFF)
+if("tool" IN_LIST FEATURES)
+ set(BUILD_CURL_EXE ON)
+endif()
+
+# UWP targets
+set(UWP_OPTIONS)
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
- vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS
- -DBUILD_TESTING=OFF
- -DBUILD_CURL_EXE=OFF
- -DENABLE_MANUAL=OFF
- -DUSE_WIN32_LDAP=OFF
- -DCURL_DISABLE_TELNET=ON
- -DENABLE_IPV6=OFF
- -DENABLE_UNIX_SOCKETS=OFF
- -DCMAKE_USE_OPENSSL=ON
- -DCURL_STATICLIB=${CURL_STATICLIB}
- OPTIONS_DEBUG
- -DENABLE_DEBUG=ON
- )
-else()
- vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS
- -DBUILD_TESTING=OFF
- -DBUILD_CURL_EXE=OFF
- -DENABLE_MANUAL=OFF
- -DCURL_STATICLIB=${CURL_STATICLIB}
- OPTIONS_DEBUG
- -DENABLE_DEBUG=ON
+ set(UWP_OPTIONS
+ -DUSE_WIN32_LDAP=OFF
+ -DCURL_DISABLE_TELNET=ON
+ -DENABLE_IPV6=OFF
+ -DENABLE_UNIX_SOCKETS=OFF
)
endif()
+vcpkg_find_acquire_program(PERL)
+get_filename_component(PERL_PATH ${PERL} DIRECTORY)
+set(ENV{PATH} "$ENV{PATH};${PERL_PATH}")
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ ${UWP_OPTIONS}
+ ${HTTP2_OPTIONS}
+ -DBUILD_TESTING=OFF
+ -DBUILD_CURL_EXE=${BUILD_CURL_EXE}
+ -DENABLE_MANUAL=OFF
+ -DCURL_STATICLIB=${CURL_STATICLIB}
+ -DCMAKE_USE_OPENSSL=${USE_OPENSSL}
+ -DCMAKE_USE_WINSSL=${USE_WINSSL}
+ -DCMAKE_USE_LIBSSH2=${USE_LIBSSH2}
+ -DHTTP_ONLY=${USE_HTTP_ONLY}
+ OPTIONS_RELEASE
+ -DBUILD_CURL_EXE=${BUILD_CURL_EXE}
+ OPTIONS_DEBUG
+ -DBUILD_CURL_EXE=OFF
+ -DENABLE_DEBUG=ON
+)
+
vcpkg_install_cmake()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake/curl)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/curl)
+elseif(EXISTS ${CURRENT_PACKAGES_DIR}/share/curl)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH share/curl)
+endif()
+
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/curl RENAME copyright)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/curl.exe")
+ file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/curl")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/curl.exe ${CURRENT_PACKAGES_DIR}/tools/curl/curl.exe)
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/curl)
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+ # Drop debug suffix, as FindCURL.cmake does not look for it
+ if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/libcurl-d.lib")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libcurl-d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libcurl.lib)
+ endif()
+else()
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/curl-config ${CURRENT_PACKAGES_DIR}/debug/bin/curl-config)
+ if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/libcurl_imp.lib")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libcurl_imp.lib ${CURRENT_PACKAGES_DIR}/lib/libcurl.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libcurl-d_imp.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libcurl.lib)
+ endif()
endif()
-vcpkg_copy_pdbs() \ No newline at end of file
+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}")
+else()
+ string(REPLACE "#ifdef CURL_STATICLIB" "#if 0" CURL_H "${CURL_H}")
+endif()
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/curl/curl.h "${CURL_H}")
+
+vcpkg_copy_pdbs()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/curl/usage b/ports/curl/usage
new file mode 100644
index 000000000..d43e7112e
--- /dev/null
+++ b/ports/curl/usage
@@ -0,0 +1,5 @@
+The package curl is compatible with built-in CMake targets:
+
+ find_package(CURL REQUIRED)
+ target_link_libraries(main PRIVATE ${CURL_LIBRARIES})
+ target_include_directories(main PRIVATE ${CURL_INCLUDE_DIRS})
diff --git a/ports/cxxopts/CONTROL b/ports/cxxopts/CONTROL
new file mode 100644
index 000000000..e1f571b11
--- /dev/null
+++ b/ports/cxxopts/CONTROL
@@ -0,0 +1,3 @@
+Source: cxxopts
+Version: 1.3.0
+Description: This is a lightweight C++ option parser library, supporting the standard GNU style syntax for options
diff --git a/ports/cxxopts/portfile.cmake b/ports/cxxopts/portfile.cmake
new file mode 100644
index 000000000..c45da3a05
--- /dev/null
+++ b/ports/cxxopts/portfile.cmake
@@ -0,0 +1,11 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO jarro2783/cxxopts
+ REF v1.3.0
+ SHA512 0c02716cdc1ca83f64c3757685042580e06c894ac51986a8df971ed30b8dd6d49448f2c9f61fff947fb34c48055f11cac446b54a9294bc880d78d91081c379b4
+ HEAD_REF master
+)
+file(INSTALL ${SOURCE_PATH}/include/cxxopts.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/cxxopts RENAME copyright)
+vcpkg_copy_pdbs()
diff --git a/ports/date/CMakeLists.txt b/ports/date/CMakeLists.txt
new file mode 100644
index 000000000..292c1758a
--- /dev/null
+++ b/ports/date/CMakeLists.txt
@@ -0,0 +1,44 @@
+cmake_minimum_required(VERSION 3.5.1)
+project(tz CXX)
+
+set(CMAKE_CXX_STANDARD 11)
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+option(HAS_REMOTE_API "" 0)
+
+add_definitions(-DNOMINMAX -DHAS_REMOTE_API=${HAS_REMOTE_API})
+
+add_library(date INTERFACE)
+target_include_directories(date INTERFACE $<INSTALL_INTERFACE:include>)
+
+add_library(tz src/tz.cpp)
+target_include_directories(tz PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
+
+if(HAS_REMOTE_API)
+ find_package(CURL REQUIRED)
+ target_link_libraries(tz PUBLIC $<BUILD_INTERFACE:${CURL_LIBRARIES}>)
+ target_include_directories(tz PUBLIC $<BUILD_INTERFACE:${CURL_INCLUDE_DIRS}>)
+endif()
+
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(tz PRIVATE -DDATE_BUILD_DLL)
+endif()
+
+install(
+ TARGETS tz date
+ EXPORT tz
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-date-config.cmake" "include(\${CMAKE_CURRENT_LIST_DIR}/unofficial-date-targets.cmake)\n")
+
+install(EXPORT tz FILE unofficial-date-targets.cmake NAMESPACE unofficial::date:: DESTINATION share/unofficial-date)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-date-config.cmake DESTINATION share/unofficial-date)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ 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
new file mode 100644
index 000000000..f9a86d671
--- /dev/null
+++ b/ports/date/CONTROL
@@ -0,0 +1,7 @@
+Source: date
+Version: 2.4.1
+Description: A date and time library based on the C++11/14/17 <chrono> header
+
+Feature: remote-api
+Description: support automatic download of tz data
+Build-Depends: curl
diff --git a/ports/date/fix-date.patch b/ports/date/fix-date.patch
new file mode 100644
index 000000000..bf4c05b38
--- /dev/null
+++ b/ports/date/fix-date.patch
@@ -0,0 +1,36 @@
+diff --git a/include/date/tz.h b/include/date/tz.h
+index 280a598..f9b5a35 100644
+--- a/include/date/tz.h
++++ b/include/date/tz.h
+@@ -1963,7 +1963,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt,
+ bool is_60_sec = fds.tod.seconds() == seconds{60};
+ if (is_60_sec)
+ fds.tod.seconds() -= seconds{1};
+- auto tmp = to_utc_time(sys_days(fds.ymd) - *offptr + fds.tod.to_duration());
++ auto tmp = utc_clock::from_sys(sys_days(fds.ymd) - *offptr + fds.tod.to_duration());
+ if (is_60_sec)
+ tmp += seconds{1};
+ if (is_60_sec != is_leap_second(tmp).first || !fds.tod.in_conventional_range())
+@@ -2197,7 +2197,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt,
+ return is;
+ }
+
+-#if !defined(_MSC_VER) || _MSC_VER > 1912
++#if !defined(_MSC_VER) || _MSC_VER > 1913
+
+ // clock_time_conversion
+
+@@ -2471,7 +2471,7 @@ clock_cast(const std::chrono::time_point<SrcClock, Duration>& tp)
+ return clock_cast_detail::cc_impl<DstClock>(tp, &tp);
+ }
+
+-#endif // !defined(_MSC_VER) || _MSC_VER > 1912
++#endif // !defined(_MSC_VER) || _MSC_VER > 1913
+
+ // Deprecated API
+
+@@ -2579,3 +2579,4 @@ to_gps_time(const tai_time<Duration>& t)
+ } // namespace date
+
+ #endif // TZ_H
++
diff --git a/ports/date/portfile.cmake b/ports/date/portfile.cmake
new file mode 100644
index 000000000..749c0c5f0
--- /dev/null
+++ b/ports/date/portfile.cmake
@@ -0,0 +1,51 @@
+include(vcpkg_common_functions)
+
+if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(WARNING
+ "You will need to also install http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml into your install location.\n"
+ "See https://howardhinnant.github.io/date/tz.html"
+ )
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO HowardHinnant/date
+ REF v2.4.1
+ SHA512 ce7d1c4518558d3690b3a33cd3da1066b43a5f641282c331c60be73e9b010227d4998bca5f34694215ae52f6514a2f5eccd6b0a5ee3dcf8cef2f2d1644c8beee
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-date.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+set(HAS_REMOTE_API 0)
+if("remote-api" IN_LIST FEATURES)
+ set(HAS_REMOTE_API 1)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DHAS_REMOTE_API=${HAS_REMOTE_API}
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-date TARGET_PATH share/unofficial-date)
+
+vcpkg_copy_pdbs()
+
+set(HEADER "${CURRENT_PACKAGES_DIR}/include/date/tz.h")
+file(READ "${HEADER}" _contents)
+string(REPLACE "#define TZ_H" "#define TZ_H\n#undef HAS_REMOTE_API\n#define HAS_REMOTE_API ${HAS_REMOTE_API}" _contents "${_contents}")
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ string(REPLACE "ifdef DATE_BUILD_DLL" "if 1" _contents "${_contents}")
+endif()
+file(WRITE "${HEADER}" "${_contents}")
+
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/date RENAME copyright)
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..cddc99222
--- /dev/null
+++ b/ports/devil/CONTROL
@@ -0,0 +1,29 @@
+Source: devil
+Version: 1.8.0-2
+Build-Depends:
+Description: A full featured cross-platform image library
+Default-Features: libpng, tiff, libjpeg, openexr, jasper, lcms
+
+Feature: libpng
+Build-Depends: libpng
+Description: Use Libpng for .png (and some .ico)
+
+Feature: tiff
+Build-Depends: tiff
+Description: Use Libtiff for .tif support
+
+Feature: libjpeg
+Build-Depends: libjpeg-turbo
+Description: Use Libjpeg for .jpg (and some .blp) support
+
+Feature: openexr
+Build-Depends: openexr
+Description: Use openexr
+
+Feature: jasper
+Build-Depends: jasper
+Description: Use JasPer for .jp2 (and some .icns) support
+
+Feature: lcms
+Build-Depends: lcms
+Description: Use Little CMS for color profiles
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..27e8d0eb0
--- /dev/null
+++ b/ports/devil/portfile.cmake
@@ -0,0 +1,87 @@
+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
+)
+
+set(IL_NO_PNG 1)
+if("libpng" IN_LIST FEATURES)
+ set(IL_NO_PNG 0)
+endif()
+
+set(IL_NO_TIF 1)
+if("libtiff" IN_LIST FEATURES)
+ set(IL_NO_TIF 0)
+endif()
+
+set(IL_NO_JPG 1)
+if("libjpeg" IN_LIST FEATURES)
+ set(IL_NO_JPG 0)
+endif()
+
+set(IL_NO_EXR 1)
+if("openexr" IN_LIST FEATURES)
+ set(IL_NO_EXR 0)
+endif()
+
+set(IL_NO_JP2 1)
+if("jasper" IN_LIST FEATURES)
+ set(IL_NO_JP2 0)
+endif()
+
+set(IL_NO_MNG 1)
+#if("libmng" IN_LIST FEATURES)
+# set(IL_NO_MNG 0)
+#endif()
+
+set(IL_NO_LCMS 1)
+if("lcms" IN_LIST FEATURES)
+ set(IL_NO_LCMS 0)
+endif()
+
+set(IL_USE_DXTC_NVIDIA 0)
+#if("nvtt" IN_LIST FEATURES)
+# set(IL_USE_DXTC_NVIDIA 1)
+#endif()
+
+set(IL_USE_DXTC_SQUISH 0)
+#if("libsquish" IN_LIST FEATURES)
+# set(IL_USE_DXTC_SQUISH 1)
+#endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/DevIL
+ PREFER_NINJA
+ OPTIONS
+ -DIL_NO_PNG=${IL_NO_PNG}
+ -DIL_NO_TIF=${IL_NO_TIF}
+ -DIL_NO_JPG=${IL_NO_JPG}
+ -DIL_NO_EXR=${IL_NO_EXR}
+ -DIL_NO_JP2=${IL_NO_JP2}
+ -DIL_NO_MNG=${IL_NO_MNG}
+ -DIL_NO_LCMS=${IL_NO_LCMS}
+ -DIL_USE_DXTC_NVIDIA=${IL_USE_DXTC_NVIDIA}
+ -DIL_USE_DXTC_SQUISH=${IL_USE_DXTC_SQUISH}
+)
+
+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/dimcli/CONTROL b/ports/dimcli/CONTROL
index c85457c89..c8b8c56e2 100644
--- a/ports/dimcli/CONTROL
+++ b/ports/dimcli/CONTROL
@@ -1,4 +1,3 @@
Source: dimcli
-Version: 1.0.3
+Version: 3.1.1-1
Description: C++ command line parser toolkit
-
diff --git a/ports/dimcli/portfile.cmake b/ports/dimcli/portfile.cmake
index 465e1699e..3c4eb912c 100644
--- a/ports/dimcli/portfile.cmake
+++ b/ports/dimcli/portfile.cmake
@@ -1,28 +1,19 @@
-# 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}
-#
-
-set(ver 1.0.3)
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/dimcli-${ver})
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/gknowles/dimcli/archive/v${ver}.zip"
- FILENAME "dimcli-${ver}.zip"
- SHA512 5168aff22223cb85421fabd4ce82f3ec0bcab6551704484bc5b05be02ead23bd3d4a629c558a15f214e9d999eccc9c129649d066fdacfda3c839a40b48f8ec17
-)
-vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO gknowles/dimcli
+ REF v3.1.1
+ SHA512 ed9aeedc59a9d48c59aa8dd1adb9cb110771c1eab0bbab8f8b518e12a45cdafb0ea94301d082ed3a033ca2428c19c8d990c76f666d1e9822cddf6e744f1db701
+ HEAD_REF master
+)
set(staticCrt OFF)
if(VCPKG_CRT_LINKAGE STREQUAL static)
set(staticCrt ON)
endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS -DLINK_STATIC_RUNTIME:BOOL=${staticCrt}
+ OPTIONS -DLINK_STATIC_RUNTIME:BOOL=${staticCrt} -DINSTALL_LIBS:BOOL=ON
)
vcpkg_install_cmake()
@@ -31,7 +22,6 @@ vcpkg_install_cmake()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
# Handle copyright
-file(INSTALL "${SOURCE_PATH}/LICENSE"
+file(INSTALL "${SOURCE_PATH}/LICENSE"
DESTINATION "${CURRENT_PACKAGES_DIR}/share/dimcli"
RENAME copyright)
-
diff --git a/ports/directxmesh/CONTROL b/ports/directxmesh/CONTROL
index 13401f80d..443917882 100644
--- a/ports/directxmesh/CONTROL
+++ b/ports/directxmesh/CONTROL
@@ -1,3 +1,3 @@
-Source: directxmesh
-Version: oct2016
+Source: directxmesh
+Version: may2018
Description: DirectXMesh geometry processing library \ No newline at end of file
diff --git a/ports/directxmesh/portfile.cmake b/ports/directxmesh/portfile.cmake
index 184784d48..89a83c272 100644
--- a/ports/directxmesh/portfile.cmake
+++ b/ports/directxmesh/portfile.cmake
@@ -1,23 +1,21 @@
-# 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}
-#
+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()
-include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/DirectXMesh-oct2016)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/Microsoft/DirectXMesh/archive/oct2016.tar.gz"
- FILENAME "DirectXMesh-oct2016.tar.gz"
- SHA512 8aaf9749766afd23709ce6c6f8d74b008fe9f96789e4d97cb387633dad34b4132ef28dfe028d13c779ea366428d53076a881c0d63c4f0c2c74d552293c8d6bf1
+if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ message(FATAL_ERROR "DirectXMesh only supports dynamic CRT linkage")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Microsoft/DirectXMesh
+ REF may2018
+ SHA512 33fe4a680f274b1e7a643cc1a49762d7c9528e1fefab8ec41010c8b3b094cad56731c23e4d098b0684689050a62a89186557cf448075e73b9f592bad22cb0ca0
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
IF (TRIPLET_SYSTEM_ARCH MATCHES "x86")
SET(BUILD_ARCH "Win32")
@@ -26,7 +24,7 @@ ELSE()
ENDIF()
vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/DirectXMesh_Desktop_2015.sln
+ PROJECT_PATH ${SOURCE_PATH}/DirectXMesh_Desktop_2017.sln
PLATFORM ${BUILD_ARCH}
)
@@ -36,15 +34,15 @@ file(INSTALL
DESTINATION ${CURRENT_PACKAGES_DIR}/include
)
file(INSTALL
- ${SOURCE_PATH}/DirectXMesh/Bin/Desktop_2015/${BUILD_ARCH}/Debug/DirectXMesh.lib
+ ${SOURCE_PATH}/DirectXMesh/Bin/Desktop_2017/${BUILD_ARCH}/Debug/DirectXMesh.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(INSTALL
- ${SOURCE_PATH}/DirectXMesh/Bin/Desktop_2015/${BUILD_ARCH}/Release/DirectXMesh.lib
+ ${SOURCE_PATH}/DirectXMesh/Bin/Desktop_2017/${BUILD_ARCH}/Release/DirectXMesh.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
set(TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools)
file(INSTALL
- ${SOURCE_PATH}/Meshconvert/Bin/Desktop_2015/${BUILD_ARCH}/Release/Meshconvert.exe
+ ${SOURCE_PATH}/Meshconvert/Bin/Desktop_2017/${BUILD_ARCH}/Release/Meshconvert.exe
DESTINATION ${TOOL_PATH})
# Handle copyright
diff --git a/ports/directxtex/CONTROL b/ports/directxtex/CONTROL
index b11daa8d4..42efa2233 100644
--- a/ports/directxtex/CONTROL
+++ b/ports/directxtex/CONTROL
@@ -1,3 +1,3 @@
Source: directxtex
-Version: dec2016
+Version: may2018
Description: DirectXTex texture processing library \ No newline at end of file
diff --git a/ports/directxtex/portfile.cmake b/ports/directxtex/portfile.cmake
index 70bb16658..d80a831c1 100644
--- a/ports/directxtex/portfile.cmake
+++ b/ports/directxtex/portfile.cmake
@@ -1,23 +1,21 @@
-# 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}
-#
+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()
-include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/directxtex-dec2016)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/Microsoft/DirectXTex/archive/dec2016.tar.gz"
- FILENAME "directxtex-dec2016.tar.gz"
- SHA512 87797340c40a98a7b11b6eb7da17d0b93bc01ba48deed50e99ce74e0e33387cac2ec18f2f14d0148c2a79f97ca98d6b2a228dad2f16010b6dcf03c0d24a79d20
+if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ message(FATAL_ERROR "DirectXTex only supports dynamic CRT linkage")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Microsoft/DirectXTex
+ REF may2018
+ SHA512 208186f9efe045b6219ac19748896e3630494f75bec33030248b0d7b37d6d6c2433d3fce7141157f85ce068a27a170d0af153dfc4465a9d280aef181ebe3a51f
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
IF (TRIPLET_SYSTEM_ARCH MATCHES "x86")
SET(BUILD_ARCH "Win32")
@@ -26,7 +24,7 @@ ELSE()
ENDIF()
vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/DirectXTex_Desktop_2015.sln
+ PROJECT_PATH ${SOURCE_PATH}/DirectXTex_Desktop_2017.sln
PLATFORM ${BUILD_ARCH}
)
@@ -36,22 +34,22 @@ file(INSTALL
DESTINATION ${CURRENT_PACKAGES_DIR}/include
)
file(INSTALL
- ${SOURCE_PATH}/DirectXTex/Bin/Desktop_2015/${BUILD_ARCH}/Debug/DirectXTex.lib
+ ${SOURCE_PATH}/DirectXTex/Bin/Desktop_2017/${BUILD_ARCH}/Debug/DirectXTex.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(INSTALL
- ${SOURCE_PATH}/DirectXTex/Bin/Desktop_2015/${BUILD_ARCH}/Release/DirectXTex.lib
+ ${SOURCE_PATH}/DirectXTex/Bin/Desktop_2017/${BUILD_ARCH}/Release/DirectXTex.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
set(TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools)
file(MAKE_DIRECTORY ${TOOL_PATH})
file(INSTALL
- ${SOURCE_PATH}/Texdiag/Bin/Desktop_2015/${BUILD_ARCH}/Release/texdiag.exe
+ ${SOURCE_PATH}/Texdiag/Bin/Desktop_2017/${BUILD_ARCH}/Release/texdiag.exe
DESTINATION ${TOOL_PATH})
file(INSTALL
- ${SOURCE_PATH}/Texconv/Bin/Desktop_2015/${BUILD_ARCH}/Release/Texconv.exe
+ ${SOURCE_PATH}/Texconv/Bin/Desktop_2017/${BUILD_ARCH}/Release/Texconv.exe
DESTINATION ${TOOL_PATH})
file(INSTALL
- ${SOURCE_PATH}/Texassemble/Bin/Desktop_2015/${BUILD_ARCH}/Release/Texassemble.exe
+ ${SOURCE_PATH}/Texassemble/Bin/Desktop_2017/${BUILD_ARCH}/Release/Texassemble.exe
DESTINATION ${TOOL_PATH})
# Handle copyright
diff --git a/ports/directxtk/CONTROL b/ports/directxtk/CONTROL
index 97f97ecd9..e52f8dc14 100644
--- a/ports/directxtk/CONTROL
+++ b/ports/directxtk/CONTROL
@@ -1,3 +1,3 @@
Source: directxtk
-Version: dec2016-1
+Version: may2018
Description: A collection of helper classes for writing DirectX 11.x code in C++.
diff --git a/ports/directxtk/portfile.cmake b/ports/directxtk/portfile.cmake
index fc4418d75..cd290e142 100644
--- a/ports/directxtk/portfile.cmake
+++ b/ports/directxtk/portfile.cmake
@@ -1,49 +1,54 @@
+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()
-include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/DirectXTK-dec2016)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/Microsoft/DirectXTK/archive/dec2016.tar.gz"
- FILENAME "DirectXTK-dec2016.tar.gz"
- SHA512 efb8a98d0872bf1835b274ba88615e88c4a58ab753c5ebef5a407c54d5f9a2197d1521f14651c60ea16c047918db6f54bf2ac58a6eb7330490b9bae619e8dad3
+if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ message(FATAL_ERROR "DirectXTK only supports dynamic CRT linkage")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Microsoft/DirectXTK
+ REF may2018
+ SHA512 0d492fcd72882aa91270b8fbaf9caa897bf4499931921fdded052129ecbb5476a373fa32ac0870897bc5ead9dae749f9b52e86fc617654f64b263041001cdfb5
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
IF (TRIPLET_SYSTEM_ARCH MATCHES "x86")
- SET(BUILD_ARCH "Win32")
+ SET(BUILD_ARCH "Win32")
ELSE()
- SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH})
+ SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH})
ENDIF()
vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/DirectXTK_Desktop_2015.sln
- PLATFORM ${BUILD_ARCH}
+ PROJECT_PATH ${SOURCE_PATH}/DirectXTK_Desktop_2017.sln
+ PLATFORM ${BUILD_ARCH}
)
file(INSTALL
- ${SOURCE_PATH}/Bin/Desktop_2015/${BUILD_ARCH}/Release/DirectXTK.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+ ${SOURCE_PATH}/Bin/Desktop_2017/${BUILD_ARCH}/Release/DirectXTK.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL
- ${SOURCE_PATH}/Bin/Desktop_2015/${BUILD_ARCH}/Debug/DirectXTK.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+ ${SOURCE_PATH}/Bin/Desktop_2017/${BUILD_ARCH}/Debug/DirectXTK.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
set(DXTK_TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/directxtk)
file(MAKE_DIRECTORY ${DXTK_TOOL_PATH})
file(INSTALL
- ${SOURCE_PATH}/MakeSpriteFont/bin/Release/MakeSpriteFont.exe
- DESTINATION ${DXTK_TOOL_PATH})
+ ${SOURCE_PATH}/MakeSpriteFont/bin/Release/MakeSpriteFont.exe
+ DESTINATION ${DXTK_TOOL_PATH})
file(INSTALL
- ${SOURCE_PATH}/XWBTool/Bin/Desktop_2015/${BUILD_ARCH}/Release/XWBTool.exe
- DESTINATION ${DXTK_TOOL_PATH})
+ ${SOURCE_PATH}/XWBTool/Bin/Desktop_2017/${BUILD_ARCH}/Release/XWBTool.exe
+ DESTINATION ${DXTK_TOOL_PATH})
file(INSTALL
- ${SOURCE_PATH}/Inc/
+ ${SOURCE_PATH}/Inc/
DESTINATION ${CURRENT_PACKAGES_DIR}/include/DirectXTK
)
diff --git a/ports/directxtk12/portfile.cmake b/ports/directxtk12/portfile.cmake
index e6f2fb4d8..6a545ccbd 100644
--- a/ports/directxtk12/portfile.cmake
+++ b/ports/directxtk12/portfile.cmake
@@ -3,6 +3,10 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
endif()
+if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ message(FATAL_ERROR "DirectXTk12 only supports dynamic CRT linkage")
+endif()
+
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/DirectXTK12-dec2016)
vcpkg_download_distfile(ARCHIVE
diff --git a/ports/dirent/CONTROL b/ports/dirent/CONTROL
new file mode 100644
index 000000000..96aab8334
--- /dev/null
+++ b/ports/dirent/CONTROL
@@ -0,0 +1,3 @@
+Source: dirent
+Version: 1.23.1
+Description: Dirent is a C/C++ programming interface that allows programmers to retrieve information about files and directories under Linux/UNIX. This project provides Linux compatible Dirent interface for Microsoft Windows.
diff --git a/ports/dirent/portfile.cmake b/ports/dirent/portfile.cmake
new file mode 100644
index 000000000..70ed405cc
--- /dev/null
+++ b/ports/dirent/portfile.cmake
@@ -0,0 +1,16 @@
+if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+ return()
+endif()
+
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO tronkko/dirent
+ REF 1.23.1
+ SHA512 13c59f0d225ccc09a2b92a29b41b6644dabdb0b39df7bb528d5ac60dbe71a2770eaa37d3890e0df21065bc798e9cc018e174d34c6697da7da665caafe062bbc2
+ HEAD_REF master
+)
+file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/dirent RENAME copyright)
+vcpkg_copy_pdbs()
diff --git a/ports/discord-rpc/CONTROL b/ports/discord-rpc/CONTROL
new file mode 100644
index 000000000..82e7515ed
--- /dev/null
+++ b/ports/discord-rpc/CONTROL
@@ -0,0 +1,3 @@
+Source: discord-rpc
+Version: 3.3.0
+Description: Rich Presence allows you to leverage the totally overhauled "Now Playing" section in a Discord user's profile to help people play your game together.
diff --git a/ports/discord-rpc/portfile.cmake b/ports/discord-rpc/portfile.cmake
new file mode 100644
index 000000000..5a2f04c85
--- /dev/null
+++ b/ports/discord-rpc/portfile.cmake
@@ -0,0 +1,36 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO discordapp/discord-rpc
+ REF v3.3.0
+ SHA512 8bb2674edefabf75670ceca29364d69e2002152bff9fe55757f4cda03544b4d827ff33595d98e6d8acdc73ca61cef8ab8054ad0a1ffc905cb26496068b15025f
+ HEAD_REF master
+)
+
+set(STATIC_CRT OFF)
+if(VCPKG_CRT_LINKAGE STREQUAL static)
+ set(STATIC_CRT ON)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS -DUSE_STATIC_CRT=${STATIC_CRT}
+)
+
+vcpkg_install_cmake()
+
+# Remove bin and debug include
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin
+ ${CURRENT_PACKAGES_DIR}/debug/bin)
+else()
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/send-presence.exe
+ ${CURRENT_PACKAGES_DIR}/debug/bin/send-presence.exe)
+endif()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Copy copright information
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/discord-rpc" RENAME "copyright")
+
+vcpkg_copy_pdbs()
diff --git a/ports/dlfcn-win32/CONTROL b/ports/dlfcn-win32/CONTROL
index 2d73fc36c..c8fd02dce 100644
--- a/ports/dlfcn-win32/CONTROL
+++ b/ports/dlfcn-win32/CONTROL
@@ -1,3 +1,3 @@
Source: dlfcn-win32
-Version: 1.1.1
+Version: 1.1.1-1
Description: dlfcn-win32 is an implementation of dlfcn for Windows.
diff --git a/ports/dlib/CONTROL b/ports/dlib/CONTROL
index a6e886c4a..bfd8e371f 100644
--- a/ports/dlib/CONTROL
+++ b/ports/dlib/CONTROL
@@ -1,4 +1,8 @@
Source: dlib
-Version: 19.4-3
-Build-Depends: libjpeg-turbo, libpng, sqlite3, fftw3
+Version: 19.12
+Build-Depends: libjpeg-turbo, libpng, sqlite3, fftw3, openblas, clapack
Description: Modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++
+
+Feature: cuda
+Build-Depends: cuda
+Description: CUDA support for dlib
diff --git a/ports/dlib/portfile.cmake b/ports/dlib/portfile.cmake
index 2a5ae6f44..5889f7fe5 100644
--- a/ports/dlib/portfile.cmake
+++ b/ports/dlib/portfile.cmake
@@ -1,63 +1,83 @@
-# 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}
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/dlib-19.4)
-vcpkg_download_distfile(ARCHIVE
- URLS "http://dlib.net/files/dlib-19.4.tar.bz2"
- FILENAME "dlib-19.4.tar.bz2"
- SHA512 c5ae22c507b57a13d880d79e9671730829114d0276508b0a41b373d3abae9057d960fce84fafe1be468d943910853baaa70c88f2516e20a0c41f3895bf217f7b
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("dlib only supports static linkage")
+ set(VCPKG_LIBRARY_LINKAGE "static")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO davisking/dlib
+ REF v19.12
+ SHA512 d10f050df116b038045821c3af71f9e6e12cbe2fc328f1361d6a64edc9a80899f50f024cfb07df96a326a99b0925a1f2ca8b186dc3b424e823cfea1efa331acf
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
+
file(REMOVE_RECURSE ${SOURCE_PATH}/dlib/external/libjpeg)
file(REMOVE_RECURSE ${SOURCE_PATH}/dlib/external/libpng)
file(REMOVE_RECURSE ${SOURCE_PATH}/dlib/external/zlib)
+# This fixes static builds; dlib doesn't pull in the needed transitive dependencies
+file(READ "${SOURCE_PATH}/dlib/CMakeLists.txt" DLIB_CMAKE)
+string(REPLACE "PNG_LIBRARY" "PNG_LIBRARIES" DLIB_CMAKE "${DLIB_CMAKE}")
+file(WRITE "${SOURCE_PATH}/dlib/CMakeLists.txt" "${DLIB_CMAKE}")
+
+set(WITH_CUDA OFF)
+if("cuda" IN_LIST FEATURES)
+ set(WITH_CUDA ON)
+endif()
+
vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA
- OPTIONS
- -DDLIB_LINK_WITH_SQLITE3=ON
- -DDLIB_USE_FFTW=ON
- -DDLIB_PNG_SUPPORT=ON
- -DDLIB_JPEG_SUPPORT=ON
- -DDLIB_USE_BLAS=OFF
- -DDLIB_USE_LAPACK=OFF
- -DDLIB_USE_CUDA=OFF
- -DDLIB_GIF_SUPPORT=OFF
- -DDLIB_USE_MKL_FFT=OFF
- #-DDLIB_USE_CUDA=ON
- OPTIONS_DEBUG
- -DDLIB_ENABLE_ASSERTS=ON
- #-DDLIB_ENABLE_STACK_TRACE=ON
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DDLIB_LINK_WITH_SQLITE3=ON
+ -DDLIB_USE_FFTW=ON
+ -DDLIB_PNG_SUPPORT=ON
+ -DDLIB_JPEG_SUPPORT=ON
+ -DDLIB_USE_BLAS=ON
+ -DDLIB_USE_LAPACK=ON
+ -DDLIB_USE_CUDA=${WITH_CUDA}
+ -DDLIB_GIF_SUPPORT=OFF
+ -DDLIB_USE_MKL_FFT=OFF
+ OPTIONS_DEBUG
+ -DDLIB_ENABLE_ASSERTS=ON
+ #-DDLIB_ENABLE_STACK_TRACE=ON
)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/dlib)
+
# There is no way to suppress installation of the headers and resource files in debug build.
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
# Remove other files not required in package
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake)
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)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_neon)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_cudnn)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_cuda)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_cpp11)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/dlib/external/libpng/arm)
# Dlib encodes debug/release in its config.h. Patch it to respond to the NDEBUG macro instead.
file(READ ${CURRENT_PACKAGES_DIR}/include/dlib/config.h _contents)
-string(REPLACE "/* #undef ENABLE_ASSERTS */" "#if !defined(NDEBUG)\n#define ENABLE_ASSERTS\n#endif" _contents ${_contents})
-string(REPLACE "#define DLIB_DISABLE_ASSERTS" "#if defined(NDEBUG)\n#define DLIB_DISABLE_ASSERTS\n#endif" _contents ${_contents})
+string(REPLACE "/* #undef ENABLE_ASSERTS */" "#if defined(_DEBUG)\n#define ENABLE_ASSERTS\n#endif" _contents ${_contents})
+string(REPLACE "#define DLIB_DISABLE_ASSERTS" "#if !defined(_DEBUG)\n#define DLIB_DISABLE_ASSERTS\n#endif" _contents ${_contents})
file(WRITE ${CURRENT_PACKAGES_DIR}/include/dlib/config.h ${_contents})
+file(READ ${CURRENT_PACKAGES_DIR}/share/dlib/dlib.cmake _contents)
+string(REPLACE
+ "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)"
+ "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)"
+ _contents "${_contents}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/dlib/dlib.cmake "${_contents}")
+
# Handle copyright
-file(COPY ${CURRENT_PACKAGES_DIR}/share/doc/dlib/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/dlib)
+file(COPY ${SOURCE_PATH}/dlib/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/dlib)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/dlib/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/dlib/COPYRIGHT)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc)
diff --git a/ports/doctest/CONTROL b/ports/doctest/CONTROL
index 29093fae4..3de9dedb3 100644
--- a/ports/doctest/CONTROL
+++ b/ports/doctest/CONTROL
@@ -1,3 +1,3 @@
Source: doctest
-Version: 1.2.0
+Version: 1.2.9
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..433a52f53 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.9
+ SHA512 9500570fb0ef7b06799fbe92b8f96eacf16eba630abe4f67a235901995192e31fafb812704f327f0a2582c8fe61c3bb458d2eaf3c4287f24c1ffbc04c46a2471
HEAD_REF master
)
diff --git a/ports/double-conversion/001-fix-arm.patch b/ports/double-conversion/001-fix-arm.patch
new file mode 100644
index 000000000..98ce2080c
--- /dev/null
+++ b/ports/double-conversion/001-fix-arm.patch
@@ -0,0 +1,13 @@
+diff --git a/double-conversion/utils.h b/double-conversion/utils.h"
+index 51d5e61..24cd5f1 100644
+--- a/double-conversion/utils.h
++++ "b/double-conversion/utils.h"
+@@ -68,7 +68,7 @@ inline void abort_noreturn() { abort(); }
+ // disabled.)
+ // On Linux,x86 89255e-22 != Div_double(89255.0/1e22)
+ #if defined(_M_X64) || defined(__x86_64__) || \
+- defined(__ARMEL__) || defined(__avr32__) || \
++ defined(__ARMEL__) || defined(__avr32__) || defined(_M_ARM) || \
+ defined(__hppa__) || defined(__ia64__) || \
+ defined(__mips__) || \
+ defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \
diff --git a/ports/double-conversion/CONTROL b/ports/double-conversion/CONTROL
index b997336e7..fb0afdb9a 100644
--- a/ports/double-conversion/CONTROL
+++ b/ports/double-conversion/CONTROL
@@ -1,3 +1,3 @@
Source: double-conversion
-Version: 2.0.1
+Version: 3.0.0-2
Description: Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles.
diff --git a/ports/double-conversion/portfile.cmake b/ports/double-conversion/portfile.cmake
index 05365d777..47f3fba4e 100644
--- a/ports/double-conversion/portfile.cmake
+++ b/ports/double-conversion/portfile.cmake
@@ -1,40 +1,62 @@
-# 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}
-#
-
-# 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}
-#
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/double-conversion-d4d68e4e788bec89d55a6a3e33af674087837c82)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/google/double-conversion/archive/d4d68e4e788bec89d55a6a3e33af674087837c82.zip"
- FILENAME "d4d68e4e788bec89d55a6a3e33af674087837c82.zip"
- SHA512 1406dc22b4ea71e1a2490f96cfed3230e122b97607c83ba106df4e90c7e4bfdcfc136c88741e7f1127237b38b4944d462ec5a4627a71f5ea3fe14afbcc64cd44
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/double-conversion
+ REF v3.0.0
+ SHA512 5057af6e72f2aaace56ebdd9a0ddfa34318cbdfeabec5c361b60e6c92f160c8999c046c50f8c6f8d590eb8e97aa70bb6e97ba8148f0dc95dbc42f204fcdc1abf
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/001-fix-arm.patch
)
-vcpkg_extract_source_archive(${ARCHIVE})
-vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH}
- OPTIONS -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=True)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=True
+)
+
vcpkg_install_cmake()
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
-file(RENAME ${CURRENT_PACKAGES_DIR}/CMake ${CURRENT_PACKAGES_DIR}/share/double-conversion)
-file(READ ${CURRENT_PACKAGES_DIR}/debug/CMake/double-conversionLibraryDepends-debug.cmake DEBUG_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" DEBUG_MODULE "${DEBUG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/double-conversion/double-conversionLibraryDepends-debug.cmake "${DEBUG_MODULE}")
-#file(COPY ${SOURCE_PATH}/double-conversion DESTINATION ${CURRENT_PACKAGES_DIR}/include)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/CMake)
-vcpkg_copy_pdbs()
-message(STATUS "Installing done")
+# Rename exported target files into something vcpkg_fixup_cmake_targets expects
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake/double-conversion)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/double-conversion)
+endif()
+if(NOT VCPKG_USE_HEAD_VERSION)
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/CMake)
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/CMake/double-conversionLibraryDepends-debug.cmake
+ ${CURRENT_PACKAGES_DIR}/debug/CMake/double-conversionTargets-debug.cmake)
+ endif()
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/CMake/double-conversionLibraryDepends-release.cmake
+ ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets-release.cmake)
+ endif()
+ file(RENAME ${CURRENT_PACKAGES_DIR}/CMake/double-conversionLibraryDepends.cmake
+ ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets.cmake)
+
+ file(READ ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets.cmake TARGETS_FILE)
+ string(REPLACE "double-conversionLibraryDepends" "double-conversionTargets" TARGETS_FILE "${TARGETS_FILE}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets.cmake "${TARGETS_FILE}")
+
+ # Remove hardcoded paths from config file
+ file(READ ${CURRENT_PACKAGES_DIR}/CMake/double-conversionConfig.cmake CONFIG_FILE)
+ string(REPLACE "${CURRENT_PACKAGES_DIR}/lib/cmake/double-conversion/double-conversionLibraryDepends.cmake"
+ "\${double-conversion_CMAKE_DIR}/double-conversionTargets.cmake" CONFIG_FILE "${CONFIG_FILE}")
+ string(REPLACE "${CURRENT_PACKAGES_DIR}"
+ "\${double-conversion_CMAKE_DIR}/../.." CONFIG_FILE "${CONFIG_FILE}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/CMake/double-conversionConfig.cmake "${CONFIG_FILE}")
+
+ vcpkg_fixup_cmake_targets(CONFIG_PATH CMake)
+ endif()
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+endif()
+
+vcpkg_copy_pdbs()
# Include files should not be duplicated into the /debug/include directory.
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/draco/CONTROL b/ports/draco/CONTROL
new file mode 100644
index 000000000..1f380a804
--- /dev/null
+++ b/ports/draco/CONTROL
@@ -0,0 +1,4 @@
+Source: draco
+Version: 1.2.5
+Description: A library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.
+Build-Depends:
diff --git a/ports/draco/portfile.cmake b/ports/draco/portfile.cmake
new file mode 100644
index 000000000..8080a2e0f
--- /dev/null
+++ b/ports/draco/portfile.cmake
@@ -0,0 +1,56 @@
+# 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)
+#
+
+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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/draco
+ REF 1.2.5
+ SHA512 2d3d51b16edf4fd111a6c565c9bcf99adc35372d642c3850a69cc1a9010e3f1c6953e6bfe37088f85c2fb31c27680cc7f2f66ea68399144ad87cf6d490af4789
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/draco/cmake)
+
+# Install tools and plugins
+file(GLOB TOOLS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.exe")
+if(TOOLS)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/draco)
+ file(COPY ${TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/draco)
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/draco)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/draco)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/draco)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/draco/LICENSE ${CURRENT_PACKAGES_DIR}/share/draco/copyright)
diff --git a/ports/duktape/CMakeLists.txt b/ports/duktape/CMakeLists.txt
new file mode 100644
index 000000000..f62a9c56e
--- /dev/null
+++ b/ports/duktape/CMakeLists.txt
@@ -0,0 +1,20 @@
+# CMAKE project for duktape
+option(SOURCE_PATH "Root directory.")
+
+project (duktape)
+
+file(GLOB_RECURSE DUKTAPE_SOURCES "${SOURCE_PATH}/src/*.c")
+file(GLOB_RECURSE DUKTAPE_HEADERS "${SOURCE_PATH}/src/*.h")
+
+if (BUILD_SHARED_LIBS)
+ add_definitions(-DDUK_F_DLL_BUILD)
+endif ()
+
+add_library(duktape ${DUKTAPE_SOURCES} ${DUKTAPE_HEADERS})
+
+set_target_properties("duktape" PROPERTIES PUBLIC_HEADER "${DUKTAPE_HEADERS}")
+
+install(TARGETS duktape
+ ARCHIVE DESTINATION "lib"
+ RUNTIME DESTINATION "bin"
+ PUBLIC_HEADER DESTINATION "include")
diff --git a/ports/duktape/CONTROL b/ports/duktape/CONTROL
new file mode 100644
index 000000000..b0f599dd8
--- /dev/null
+++ b/ports/duktape/CONTROL
@@ -0,0 +1,4 @@
+Source: duktape
+Version: 2.0.3-4
+Description: Embeddable Javascript engine with a focus on portability and compact footprint.
+Build-Depends:
diff --git a/ports/duktape/duk_config.h.patch b/ports/duktape/duk_config.h.patch
new file mode 100644
index 000000000..d0be961ce
--- /dev/null
+++ b/ports/duktape/duk_config.h.patch
@@ -0,0 +1,13 @@
+diff --git a/src/duk_config.h b/src/duk_config.h
+index a942563..8d3d309 100644
+--- a/src/duk_config.h
++++ b/src/duk_config.h
+@@ -64,7 +64,7 @@
+
+ /* DLL build detection */
+ /* not configured for DLL build */
+-#undef DUK_F_DLL_BUILD
++// #undef DUK_F_DLL_BUILD
+
+ /* Apple OSX, iOS */
+ #if defined(__APPLE__)
diff --git a/ports/duktape/portfile.cmake b/ports/duktape/portfile.cmake
new file mode 100644
index 000000000..e3e84c0de
--- /dev/null
+++ b/ports/duktape/portfile.cmake
@@ -0,0 +1,38 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/duktape-2.0.3)
+set(CMAKE_PATH ${CMAKE_CURRENT_LIST_DIR})
+vcpkg_download_distfile(ARCHIVE_FILE
+ URLS "https://github.com/svaarala/duktape/releases/download/v2.0.3/duktape-2.0.3.tar.xz"
+ FILENAME "duktape-2.0.3.tar.xz"
+ SHA512 ba21731242d953d82c677e1205e3596e270e6d57156a0bca8068fc3b6a35996af69bcfac979b871a7e3eab31f28a06cb99078f0b3eaac54be9c5899f57f4100e
+)
+vcpkg_extract_source_archive(${ARCHIVE_FILE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/duk_config.h.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${CMAKE_PATH}
+ OPTIONS -DSOURCE_PATH=${SOURCE_PATH}
+)
+
+vcpkg_install_cmake()
+
+set(DUK_CONFIG_H_PATH "${CURRENT_PACKAGES_DIR}/include/duk_config.h")
+file(READ ${DUK_CONFIG_H_PATH} CONTENT)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ string(REPLACE "// #undef DUK_F_DLL_BUILD" "#undef DUK_F_DLL_BUILD\n#define DUK_F_DLL_BUILD 1" CONTENT "${CONTENT}")
+else()
+ string(REPLACE "// #undef DUK_F_DLL_BUILD" "#undef DUK_F_DLL_BUILD\n#define DUK_F_DLL_BUILD 0" CONTENT "${CONTENT}")
+endif()
+file(WRITE ${DUK_CONFIG_H_PATH} "${CONTENT}")
+
+# Remove debug include
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Copy copright information
+file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/duktape" RENAME "copyright")
+
+vcpkg_copy_pdbs()
diff --git a/ports/dxut/portfile.cmake b/ports/dxut/portfile.cmake
index 97dc8b2e3..cc12d769b 100644
--- a/ports/dxut/portfile.cmake
+++ b/ports/dxut/portfile.cmake
@@ -2,6 +2,11 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
message(STATUS "Warning: Dynamic building not supported yet. Building static.")
set(VCPKG_LIBRARY_LINKAGE static)
endif()
+
+if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ message(FATAL_ERROR "DXUT only supports dynamic CRT linkage")
+endif()
+
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/DXUT-sept2016)
vcpkg_download_distfile(ARCHIVE_FILE
diff --git a/ports/eastl/CONTROL b/ports/eastl/CONTROL
new file mode 100644
index 000000000..dbf5fb0f4
--- /dev/null
+++ b/ports/eastl/CONTROL
@@ -0,0 +1,4 @@
+Source: eastl
+Version: 3.09.00
+Description: Electronic Arts Standard Template Library.
+ It is a C++ template library of containers, algorithms, and iterators useful for runtime and tool development across multiple platforms. It is a fairly extensive and robust implementation of such a library and has an emphasis on high performance above all other considerations.
diff --git a/ports/eastl/portfile.cmake b/ports/eastl/portfile.cmake
new file mode 100644
index 000000000..afe9ed4cf
--- /dev/null
+++ b/ports/eastl/portfile.cmake
@@ -0,0 +1,29 @@
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "Warning: Dynamic building not supported by EASTL. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/eastl)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO electronicarts/EASTL
+ REF 3.09.00
+ SHA512 73b1b6ce0eba65fca049571a44595ff581f0dda01dcaaf3e0deb2d22e62b9b694a321339038c5cc2e6802ba3270675b814b73b59a8cfc8d71e645c60b17bebb6
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/eastl RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/3RDPARTYLICENSES.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/eastl)
diff --git a/ports/ebml/CMakeLists.txt b/ports/ebml/CMakeLists.txt
new file mode 100644
index 000000000..7d99a13a4
--- /dev/null
+++ b/ports/ebml/CMakeLists.txt
@@ -0,0 +1,132 @@
+cmake_minimum_required(VERSION 3.1.2)
+
+project(ebml VERSION 1.3.5)
+
+option(DISABLE_PKGCONFIG "Disable PkgConfig module generation" OFF)
+option(DISABLE_CMAKE_CONFIG "Disable CMake package config module generation" OFF)
+
+include(GNUInstallDirs)
+
+set(libebml_SOURCES
+ src/Debug.cpp
+ src/EbmlBinary.cpp
+ src/EbmlContexts.cpp
+ src/EbmlCrc32.cpp
+ src/EbmlDate.cpp
+ src/EbmlDummy.cpp
+ src/EbmlElement.cpp
+ src/EbmlFloat.cpp
+ src/EbmlHead.cpp
+ src/EbmlMaster.cpp
+ src/EbmlSInteger.cpp
+ src/EbmlStream.cpp
+ src/EbmlString.cpp
+ src/EbmlSubHead.cpp
+ src/EbmlUInteger.cpp
+ src/EbmlUnicodeString.cpp
+ src/EbmlVersion.cpp
+ src/EbmlVoid.cpp
+ src/IOCallback.cpp
+ src/MemIOCallback.cpp
+ src/MemReadIOCallback.cpp
+ src/SafeReadIOCallback.cpp
+ src/StdIOCallback.cpp)
+
+set(libebml_PUBLIC_HEADERS
+ ebml/Debug.h
+ ebml/EbmlBinary.h
+ ebml/EbmlConfig.h
+ ebml/EbmlContexts.h
+ ebml/EbmlCrc32.h
+ ebml/EbmlDate.h
+ ebml/EbmlDummy.h
+ ebml/EbmlElement.h
+ ebml/EbmlEndian.h
+ ebml/EbmlFloat.h
+ ebml/EbmlHead.h
+ ebml/EbmlId.h
+ ebml/EbmlMaster.h
+ ebml/EbmlSInteger.h
+ ebml/EbmlStream.h
+ ebml/EbmlString.h
+ ebml/EbmlSubHead.h
+ ebml/EbmlTypes.h
+ ebml/EbmlUInteger.h
+ ebml/EbmlUnicodeString.h
+ ebml/EbmlVersion.h
+ ebml/EbmlVoid.h
+ ebml/IOCallback.h
+ ebml/MemIOCallback.h
+ ebml/MemReadIOCallback.h
+ ebml/SafeReadIOCallback.h
+ ebml/StdIOCallback.h)
+if(WIN32)
+ list(APPEND libebml_SOURCES
+ src/platform/win32/WinIOCallback.cpp)
+ list(APPEND libebml_PUBLIC_HEADERS
+ src/platform/win32/WinIOCallback.h)
+endif()
+
+set(libebml_C_PUBLIC_HEADERS ebml/c/libebml_t.h)
+
+add_library(ebml ${libebml_SOURCES} ${libebml_PUBLIC_HEADERS} ${libebml_C_PUBLIC_HEADERS})
+if(WIN32)
+ include(CheckIncludeFile)
+ check_include_file(winapifamily.h HAVE_WINAPIFAMILY_H)
+ if(HAVE_WINAPIFAMILY_H)
+ target_compile_definitions(ebml PUBLIC HAVE_WINAPIFAMILY_H)
+ endif()
+endif()
+set_target_properties(ebml PROPERTIES
+ VERSION 4.0.0
+ SOVERSION 4)
+target_include_directories(ebml PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+if(MSVC)
+ target_compile_definitions(ebml PRIVATE _CRT_SECURE_NO_WARNINGS)
+endif()
+if(BUILD_SHARED_LIBS)
+ set_target_properties(ebml
+ PROPERTIES
+ DEFINE_SYMBOL "EBML_DLL_EXPORT"
+ C_VISIBILITY_PRESET hidden
+ VISIBILITY_INLINES_HIDDEN 1)
+ target_compile_definitions(ebml
+ PUBLIC EBML_DLL
+ PRIVATE EBML_DLL_EXPORT)
+endif()
+
+install(TARGETS ebml
+ EXPORT EbmlTargets
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+install(FILES ${libebml_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ebml)
+install(FILES ${libebml_C_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ebml/c)
+
+if(NOT DISABLE_PKGCONFIG)
+ set(prefix ${CMAKE_INSTALL_PREFIX})
+ set(exec_prefix "\$\{prefix\}")
+ set(libdir "\$\{prefix\}/${CMAKE_INSTALL_LIBDIR}")
+ set(includedir "\$\{prefix\}/${CMAKE_INSTALL_INCLUDEDIR}")
+ set(PACKAGE_VERSION ${PROJECT_VERSION})
+ configure_file(libebml.pc.in libebml.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libebml.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+endif()
+
+if(NOT DISABLE_CMAKE_CONFIG)
+ if(WIN32)
+ set(CMAKE_INSTALL_PACKAGEDIR cmake)
+ else()
+ set(CMAKE_INSTALL_PACKAGEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
+ endif()
+ include(CMakePackageConfigHelpers)
+ write_basic_package_version_file(EbmlConfigVersion.cmake COMPATIBILITY SameMajorVersion)
+ install(EXPORT EbmlTargets DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
+ install(FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/EbmlConfig.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/EbmlConfigVersion.cmake
+ DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
+endif()
diff --git a/ports/ebml/CONTROL b/ports/ebml/CONTROL
new file mode 100644
index 000000000..e4872dd6a
--- /dev/null
+++ b/ports/ebml/CONTROL
@@ -0,0 +1,3 @@
+Source: ebml
+Version: 1.3.5-1
+Description: a C++ libary to parse EBML files
diff --git a/ports/ebml/EbmlConfig.cmake b/ports/ebml/EbmlConfig.cmake
new file mode 100644
index 000000000..5752fa632
--- /dev/null
+++ b/ports/ebml/EbmlConfig.cmake
@@ -0,0 +1 @@
+include(${CMAKE_CURRENT_LIST_DIR}/EbmlTargets.cmake)
diff --git a/ports/ebml/export-endofstreamx.patch b/ports/ebml/export-endofstreamx.patch
new file mode 100644
index 000000000..f89035230
--- /dev/null
+++ b/ports/ebml/export-endofstreamx.patch
@@ -0,0 +1,25 @@
+From d880a71996ba50c18d2e2d33ce4018b22566d9f4 Mon Sep 17 00:00:00 2001
+From: evpobr <evpobr@gmail.com>
+Date: Sat, 17 Feb 2018 12:39:27 +0500
+Subject: [PATCH] Export SafeReadIOCallback::EndOfStreamX class from DLL
+
+---
+ ebml/SafeReadIOCallback.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ebml/SafeReadIOCallback.h b/ebml/SafeReadIOCallback.h
+index ea96727..3d9de07 100644
+--- a/ebml/SafeReadIOCallback.h
++++ b/ebml/SafeReadIOCallback.h
+@@ -45,7 +45,7 @@ class EBML_DLL_API EbmlBinary;
+
+ class EBML_DLL_API SafeReadIOCallback {
+ public:
+- class EndOfStreamX {
++ class EBML_DLL_API EndOfStreamX {
+ public:
+ size_t mMissingBytes;
+ EndOfStreamX(std::size_t MissingBytes);
+--
+2.15.1.windows.2
+
diff --git a/ports/ebml/portfile.cmake b/ports/ebml/portfile.cmake
new file mode 100644
index 000000000..4b92f37bb
--- /dev/null
+++ b/ports/ebml/portfile.cmake
@@ -0,0 +1,52 @@
+# 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)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Matroska-Org/libebml
+ REF release-1.3.5
+ SHA512 ccfa58aebb8685b2dbbab7038ab7f7e0788dba2fc391abafad5a0e05c71c8f02c7e1e3521e1c59076057f9643737c2d96a4fffdeb7991214234f2db80c78254b
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/EbmlConfig.cmake DESTINATION ${SOURCE_PATH})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/export-endofstreamx.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS -DDISABLE_PKGCONFIG=1
+ # OPTIONS_RELEASE -DOPTIMIZE=1
+ # OPTIONS_DEBUG -DDEBUGGABLE=1
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.LGPL DESTINATION ${CURRENT_PACKAGES_DIR}/share/ebml RENAME copyright)
diff --git a/ports/ecm/CONTROL b/ports/ecm/CONTROL
index e696bd7b9..147603756 100644
--- a/ports/ecm/CONTROL
+++ b/ports/ecm/CONTROL
@@ -1,3 +1,3 @@
Source: ecm
-Version: 5.32.0
+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 9fa648a1c..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.32.0)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://download.kde.org/stable/frameworks/5.32/extra-cmake-modules-5.32.0.zip"
- FILENAME "extra-cmake-modules-5.32.0.zip"
- SHA512 f966820e88fdbcdea7f20ff6b76ab8a6d2f7eaf78950bc690243b7201b9f646d92c83a998c19feab3bfe2ed528ec96ad1fa36e6ae320419d226cddd28cd433e5
+
+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/eigen3/CONTROL b/ports/eigen3/CONTROL
index d6e01c6cc..fe0641a98 100644
--- a/ports/eigen3/CONTROL
+++ b/ports/eigen3/CONTROL
@@ -1,3 +1,3 @@
Source: eigen3
-Version: 3.3.3-2
+Version: 3.3.4-2
Description: C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
diff --git a/ports/eigen3/portfile.cmake b/ports/eigen3/portfile.cmake
index 229da45e7..376e6c10d 100644
--- a/ports/eigen3/portfile.cmake
+++ b/ports/eigen3/portfile.cmake
@@ -1,12 +1,12 @@
-#header-only library
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/eigen-eigen-67e894c6cd8f)
-vcpkg_download_distfile(ARCHIVE
- URLS "http://bitbucket.org/eigen/eigen/get/3.3.3.tar.bz2"
- FILENAME "eigen-3.3.3.tar.bz2"
- SHA512 bb5a8b761371e516f0a344a7c9f6e369e21c2907c8548227933ca6010fc607a66c8d6ff7c41b1aec3dea7d482ce8c2a09e38ae5c7a2c5b16bdd8007e7a81ecc3
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO eigenteam/eigen-git-mirror
+ REF 3.3.4
+ SHA512 da3f96ef65c64031bed5311d4ad95cd668f2facb3439bb1f4ecea10ce7cf881daf9d053567fe4ebb50626ab4dbb975d1f74bd632626c688898a97064f99a8f59
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
@@ -21,6 +21,14 @@ vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug)
+file(READ "${CURRENT_PACKAGES_DIR}/share/eigen3/Eigen3Targets.cmake" EIGEN_TARGETS)
+string(REPLACE "set(_IMPORT_PREFIX " "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_DIR}/../..\" ABSOLUTE) #" EIGEN_TARGETS "${EIGEN_TARGETS}")
+file(WRITE "${CURRENT_PACKAGES_DIR}/share/eigen3/Eigen3Targets.cmake" "${EIGEN_TARGETS}")
+
+file(GLOB INCLUDES ${CURRENT_PACKAGES_DIR}/include/eigen3/*)
+# Copy the eigen header files to conventional location for user-wide MSBuild integration
+file(COPY ${INCLUDES} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
# Put the licence file where vcpkg expects it
file(COPY ${SOURCE_PATH}/COPYING.README DESTINATION ${CURRENT_PACKAGES_DIR}/share/eigen3)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/eigen3/COPYING.README ${CURRENT_PACKAGES_DIR}/share/eigen3/copyright)
diff --git a/ports/embree/CONTROL b/ports/embree/CONTROL
new file mode 100644
index 000000000..3c9ac0c7c
--- /dev/null
+++ b/ports/embree/CONTROL
@@ -0,0 +1,4 @@
+Source: embree
+Version: 2.16.4-2
+Description: High Performance Ray Tracing Kernels.
+Build-Depends: tbb
diff --git a/ports/embree/portfile.cmake b/ports/embree/portfile.cmake
new file mode 100644
index 000000000..8d054d3ab
--- /dev/null
+++ b/ports/embree/portfile.cmake
@@ -0,0 +1,50 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/embree-2.16.4)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/embree/embree/archive/v2.16.4.zip"
+ FILENAME "embree-2.16.4.zip"
+ SHA512 d26d31c7866c072d562dd824af02c90a1bc0302a2765fa6101925956f9b61870e45a4f0a54edae87d07a63aa4687f4244e3e5554491729ea31b617e87d02fb11
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(REMOVE ${SOURCE_PATH}/common/cmake/FindTBB.cmake)
+
+if(VCPKG_CRT_LINKAGE STREQUAL static)
+ set(EMBREE_STATIC_RUNTIME ON)
+else()
+ set(EMBREE_STATIC_RUNTIME OFF)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ -DEMBREE_ISPC_SUPPORT=OFF
+ -DEMBREE_TUTORIALS=OFF
+ -DEMBREE_STATIC_RUNTIME=${EMBREE_STATIC_RUNTIME}
+ "-DTBB_LIBRARIES=TBB::tbb"
+ "-DTBB_INCLUDE_DIRS=${CURRENT_INSTALLED_DIR}/include"
+)
+
+# just wait, the release build of embree is insanely slow in MSVC
+# a single file will took about 2-10 min
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+# these cmake files do not seem to contain helpful configuration for find libs, just remove them
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/embree-config.cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/embree-config-version.cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/embree-config.cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/embree-config-version.cmake)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/models)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/models)
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/embree)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/doc ${CURRENT_PACKAGES_DIR}/share/embree/doc)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/embree)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/embree/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/embree/copyright)
diff --git a/ports/enet/CMakeLists.txt b/ports/enet/CMakeLists.txt
new file mode 100644
index 000000000..012e21d64
--- /dev/null
+++ b/ports/enet/CMakeLists.txt
@@ -0,0 +1,81 @@
+cmake_minimum_required(VERSION 2.6)
+
+project(enet)
+
+# The "configure" step.
+include(CheckFunctionExists)
+include(CheckStructHasMember)
+include(CheckTypeSize)
+check_function_exists("fcntl" HAS_FCNTL)
+check_function_exists("poll" HAS_POLL)
+check_function_exists("getaddrinfo" HAS_GETADDRINFO)
+check_function_exists("getnameinfo" HAS_GETNAMEINFO)
+check_function_exists("gethostbyname_r" HAS_GETHOSTBYNAME_R)
+check_function_exists("gethostbyaddr_r" HAS_GETHOSTBYADDR_R)
+check_function_exists("inet_pton" HAS_INET_PTON)
+check_function_exists("inet_ntop" HAS_INET_NTOP)
+check_struct_has_member("struct msghdr" "msg_flags" "sys/types.h;sys/socket.h" HAS_MSGHDR_FLAGS)
+set(CMAKE_EXTRA_INCLUDE_FILES "sys/types.h" "sys/socket.h")
+check_type_size("socklen_t" HAS_SOCKLEN_T BUILTIN_TYPES_ONLY)
+unset(CMAKE_EXTRA_INCLUDE_FILES)
+if(MSVC)
+ add_definitions(-W3)
+else()
+ add_definitions(-Wno-error)
+endif()
+
+if(HAS_FCNTL)
+ add_definitions(-DHAS_FCNTL=1)
+endif()
+if(HAS_POLL)
+ add_definitions(-DHAS_POLL=1)
+endif()
+if(HAS_GETNAMEINFO)
+ add_definitions(-DHAS_GETNAMEINFO=1)
+endif()
+if(HAS_GETADDRINFO)
+ add_definitions(-DHAS_GETADDRINFO=1)
+endif()
+if(HAS_GETHOSTBYNAME_R)
+ add_definitions(-DHAS_GETHOSTBYNAME_R=1)
+endif()
+if(HAS_GETHOSTBYADDR_R)
+ add_definitions(-DHAS_GETHOSTBYADDR_R=1)
+endif()
+if(HAS_INET_PTON)
+ add_definitions(-DHAS_INET_PTON=1)
+endif()
+if(HAS_INET_NTOP)
+ add_definitions(-DHAS_INET_NTOP=1)
+endif()
+if(HAS_MSGHDR_FLAGS)
+ add_definitions(-DHAS_MSGHDR_FLAGS=1)
+endif()
+if(HAS_SOCKLEN_T)
+ add_definitions(-DHAS_SOCKLEN_T=1)
+endif()
+
+include_directories(${PROJECT_SOURCE_DIR}/include)
+
+add_library(enet STATIC
+ callbacks.c
+ compress.c
+ host.c
+ list.c
+ packet.c
+ peer.c
+ protocol.c
+ unix.c
+ win32.c
+ )
+
+if (WIN32)
+ target_link_libraries(enet winmm ws2_32)
+endif()
+
+install(TARGETS enet ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+ RUNTIME DESTINATION bin)
+
+install(DIRECTORY include/
+ DESTINATION include) \ No newline at end of file
diff --git a/ports/enet/CONTROL b/ports/enet/CONTROL
new file mode 100644
index 000000000..f75b49de9
--- /dev/null
+++ b/ports/enet/CONTROL
@@ -0,0 +1,4 @@
+Source: enet
+Version: 1.3.13
+Description: Reliable UDP networking library
+
diff --git a/ports/enet/portfile.cmake b/ports/enet/portfile.cmake
new file mode 100644
index 000000000..2a7fa4585
--- /dev/null
+++ b/ports/enet/portfile.cmake
@@ -0,0 +1,38 @@
+# 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(OUT_SOURCE_PATH SOURCE_PATH
+ REPO "lsalzman/enet"
+ REF f7c46f03fd8d883ac2811948aa71c7623069d070
+ HEAD_REF master
+ SHA512 2d5593ea56473b38479921fd0849318bf3ecb233f92fa487ba395a0bb7e6a3997109287867a67c66721f761a30cceab4ba4709080a93ed977b7650b10cab1936
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
+ # OPTIONS_RELEASE -DOPTIMIZE=1
+ # OPTIONS_DEBUG -DDEBUGGABLE=1
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/enet RENAME copyright)
+
+vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/entityx/CONTROL b/ports/entityx/CONTROL
index f522fe702..cbf618e0a 100644
--- a/ports/entityx/CONTROL
+++ b/ports/entityx/CONTROL
@@ -1,3 +1,3 @@
Source: entityx
-Version: 1.2.0
+Version: 1.2.0-1
Description: EntityX - A fast, type-safe C++ Entity-Component system. <https://github.com/alecthomas/entityx>
diff --git a/ports/entityx/portfile.cmake b/ports/entityx/portfile.cmake
index d7bcdbe1b..d35fb9da3 100644
--- a/ports/entityx/portfile.cmake
+++ b/ports/entityx/portfile.cmake
@@ -11,6 +11,10 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
endif()
+if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ message(FATAL_ERROR "Entityx only supports dynamic CRT linkage")
+endif()
+
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/entityx-1.2.0)
vcpkg_download_distfile(ARCHIVE
diff --git a/ports/entt/CONTROL b/ports/entt/CONTROL
new file mode 100644
index 000000000..6887500b9
--- /dev/null
+++ b/ports/entt/CONTROL
@@ -0,0 +1,3 @@
+Source: entt
+Version: 2.5.0
+Description: Gaming meets modern C++ - a fast and reliable entity-component system and much more. <https://github.com/skypjack/entt>
diff --git a/ports/entt/portfile.cmake b/ports/entt/portfile.cmake
new file mode 100644
index 000000000..4df78448c
--- /dev/null
+++ b/ports/entt/portfile.cmake
@@ -0,0 +1,18 @@
+#header-only library
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO skypjack/entt
+ REF v2.5.0
+ SHA512 a56d17c4ac832b50349293eb40c32efb079d90c9a7010589979eac5f13b97e82c032f94b87d0d7885099ee6f1857e68e064e3248c7f4d52ccca02620fd80ea25
+)
+
+file(INSTALL
+ ${SOURCE_PATH}/src/entt
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
+)
+
+# Handle copyright/readme/package files
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/entt RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/entt)
diff --git a/ports/epsilon/0001-VS2015-provides-snprintf.patch b/ports/epsilon/0001-VS2015-provides-snprintf.patch
new file mode 100644
index 000000000..0fc664f60
--- /dev/null
+++ b/ports/epsilon/0001-VS2015-provides-snprintf.patch
@@ -0,0 +1,51 @@
+From 8b5b2ea5ba695252abaad4234c951675d5f733ec Mon Sep 17 00:00:00 2001
+From: Hiroshi Miura <miurahr@linux.com>
+Date: Wed, 7 Feb 2018 12:28:54 +0900
+Subject: [PATCH 1/2] VS2015 provides snprintf
+
+Signed-off-by: Hiroshi Miura <miurahr@linux.com>
+---
+ lib/common.h | 27 +++++++++++++++++++++++----
+ 1 file changed, 23 insertions(+), 4 deletions(-)
+
+diff --git a/lib/common.h b/lib/common.h
+index c5db1ed..73c4118 100644
+--- a/lib/common.h
++++ b/lib/common.h
+@@ -39,10 +39,29 @@ extern "C" {
+ /** \addtogroup misc Miscellanea */
+ /*@{*/
+
+-/* Use _snprintf instead of snprintf under MSVC compiler */
+-#if defined(_WIN32) && !defined(__MINGW32__)
+-#define snprintf _snprintf
+-#endif
++#ifdef _MSC_VER
++#if _MSC_VER < 1900 // VS2015/17 provides snprintf
++#include <stdio.h>
++#include <stdarg.h>
++/* Want safe, 'n += snprintf(b + n ...)' like function. If cp_max_len is 1
++* then assume cp is pointing to a null char and do nothing. Returns number
++* number of chars placed in cp excluding the trailing null char. So for
++* cp_max_len > 0 the return value is always < cp_max_len; for cp_max_len
++* <= 0 the return value is 0 (and no chars are written to cp). */
++static int snprintf(char * cp, int cp_max_len, const char * fmt, ...)
++{
++ va_list args;
++ int n;
++
++ if (cp_max_len < 2)
++ return 0;
++ va_start(args, fmt);
++ n = vsnprintf(cp, cp_max_len, fmt, args);
++ va_end(args);
++ return (n < cp_max_len) ? n : (cp_max_len - 1);
++}
++#endif // _MSC_VER < 1900
++#endif // _MSC_VER
+
+ #ifdef HAVE_CONFIG_H
+ # include <config.h>
+--
+2.16.1
+
diff --git a/ports/epsilon/0002-Add-CFLAGS-for-CRT-selection-and-warning-supression.patch b/ports/epsilon/0002-Add-CFLAGS-for-CRT-selection-and-warning-supression.patch
new file mode 100644
index 000000000..f76aed10b
--- /dev/null
+++ b/ports/epsilon/0002-Add-CFLAGS-for-CRT-selection-and-warning-supression.patch
@@ -0,0 +1,81 @@
+From 4969dd6e7b656e92bf1bc921f0cd1af00707e17f Mon Sep 17 00:00:00 2001
+From: Hiroshi Miura <miurahr@linux.com>
+Date: Wed, 7 Feb 2018 10:47:53 +0900
+Subject: [PATCH 2/2] Add CFLAGS for CRT selection and warning supression
+
+Signed-off-by: Hiroshi Miura <miurahr@linux.com>
+---
+ makefile.vc | 2 +-
+ nmake.opt | 42 +++++++++++++++++++++++++++++++++++++++---
+ 2 files changed, 40 insertions(+), 4 deletions(-)
+
+diff --git a/makefile.vc b/makefile.vc
+index 33f1f34..64fb9f3 100644
+--- a/makefile.vc
++++ b/makefile.vc
+@@ -20,7 +20,7 @@ EPSILON_EXE = epsilon.exe
+
+-CFLAGS = /nologo -IC:\OSGeo4W\include -I.\lib -I.\lib\msvc \
++CFLAGS = /nologo -I$(INSTALLED_ROOT)\include -I.\lib -I.\lib\msvc \
+ -I.\src -I..\popt\include \
+- $(OPTFLAGS)
++ $(OPTFLAGS) $(WARNFLAGS)
+
+ default: all
+
+diff --git a/nmake.opt b/nmake.opt
+index d5a51e2..d8088df 100644
+--- a/nmake.opt
++++ b/nmake.opt
+@@ -1,9 +1,45 @@
+ # Directory tree where EPSILON will be installed.
++!IFNDEF INSTDIR
+ INSTDIR=C:\OSGeo4W
++!ENDIF
++
++# Flags to choose CRT variant to link against (e.g. static: /MT, /MTd, dynamic: /MD, /MDd)
++!IFNDEF CRT_FLAGS
++!IFNDEF DEBUG
++CRT_FLAGS=/MD
++!ELSE
++CRT_FLAGS=/MDd
++!ENDIF
++!ENDIF
++
++# Flags for enforcing PDB use
++!IFNDEF PDB_FLAGS
++PDB_FLAGS=/Fdepsilon.pdb
++!ENDIF
++
++# Set flags controlling warnings level, and suppression of some warnings.
++!IFNDEF WARNFLAGS
++# 4127: conditional expression is constant
++# 4251: 'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2'
++# 4275: non – DLL-interface classkey 'identifier' used as base for DLL-interface classkey 'identifier'
++# 4786: ??????????
++# 4100: 'identifier' : unreferenced formal parameter
++# 4245: 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch
++# 4206: nonstandard extension used : translation unit is empty (only applies to C source code)
++# 4351: new behavior: elements of array 'array' will be default initialized (needed for https://trac.osgeo.org/gdal/changeset/35593)
++# 4611: interaction between '_setjmp' and C++ object destruction is non-portable
++#
++WARNFLAGS = /W3 /wd4127 /wd4251 /wd4275 /wd4786 /wd4100 /wd4245 /wd4206 /wd4351 /wd4611
++!ENDIF
++
++!IFNDEF OPTFLAGS
++!IFNDEF DEBUG
++OPTFLAGS= $(PDB_FLAGS) /nologo $(CRT_FLAGS) /D_CRT_SECURE_NO_WARNINGS /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DNDEBUG
++!ELSE
++OPTFLAGS= $(PDB_FLAGS) /nologo $(CRT_FLAGS) /EHsc /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DDEBUG
++!ENDIF
++!ENDIF
+
+-# Uncomment the first for an optimized build, or the second for debug.
+-OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS
+-#OPTFLAGS= /nologo /Zi /MD /Fdepsilon.pdb
+
+ # Set the version number for the DLL. Normally we leave this blank since
+ # we want software that is dynamically loading the DLL to have no problem
+--
+2.16.1
+
diff --git a/ports/epsilon/CONTROL b/ports/epsilon/CONTROL
new file mode 100644
index 000000000..94f9e1db8
--- /dev/null
+++ b/ports/epsilon/CONTROL
@@ -0,0 +1,3 @@
+Source: epsilon
+Version: 0.9.2
+Description: EPSILON is an Open Source wavelet image compressor, that is aimed on parallel and robust image processing. \ No newline at end of file
diff --git a/ports/epsilon/portfile.cmake b/ports/epsilon/portfile.cmake
new file mode 100644
index 000000000..70aee7e1e
--- /dev/null
+++ b/ports/epsilon/portfile.cmake
@@ -0,0 +1,99 @@
+include(vcpkg_common_functions)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://downloads.sourceforge.net/project/epsilon-project/epsilon/0.9.2/epsilon-0.9.2.tar.gz?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fepsilon-project%2Ffiles%2Fepsilon%2F0.9.2%2Fepsilon-0.9.2.tar.gz%2Fdownload%3Fuse_mirror%3Dayera"
+ FILENAME "epsilon-0.9.2.tar.gz"
+ SHA512 95f427c68a4a4eb784f7d484d87fc573133983510f6b030663f88955e2446490a07b1343ae4668251b466f67cf9a79bd834b933c57c5ed12327f32174f20ac0f)
+
+# Extract source into archictecture specific directory, because GDALs' nmake based build currently does not
+# support out of source builds.
+set(SOURCE_PATH_DEBUG ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-debug/epsilon-0.9.2)
+set(SOURCE_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-release/epsilon-0.9.2)
+
+foreach(BUILD_TYPE debug release)
+ vcpkg_extract_source_archive(${ARCHIVE} ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE})
+ vcpkg_apply_patches(
+ SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE}/epsilon-0.9.2
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001-VS2015-provides-snprintf.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0002-Add-CFLAGS-for-CRT-selection-and-warning-supression.patch
+ )
+endforeach()
+
+find_program(NMAKE nmake REQUIRED)
+if (VCPKG_CRT_LINKAGE STREQUAL static)
+ set(CL_FLAGS_REL "/MT /Ox /fp:precise")
+ set(CL_FLAGS_DBG "/MTd /Zi")
+ set(TARGET_LIB epsilon.lib)
+else()
+ set(CL_FLAGS_REL "/MD /Ox /fp:precise")
+ set(CL_FLAGS_DBG "/MDd /Zi")
+ set(TARGET_LIB epsilon_i.lib)
+endif()
+
+################
+# Release build
+################
+message(STATUS "Building ${TARGET_TRIPLET}-rel")
+file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR_REL)
+vcpkg_execute_required_process(
+ COMMAND ${NMAKE} -f makefile.vc
+ "INSTDIR=\"${INST_DIR_REL}\""
+ MSVC_VER=1900
+ CRT_FLAGS=${CL_FLAGS_REL}
+ INSTALLED_ROOT=${CURRENT_INSTALLED_DIR}
+ ${TARGET_LIB}
+ WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
+ LOGNAME nmake-build-${TARGET_TRIPLET}-release
+)
+message(STATUS "Building ${TARGET_TRIPLET}-rel done")
+
+################
+# Debug build
+################
+message(STATUS "Building ${TARGET_TRIPLET}-dbg")
+file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/debug" INST_DIR_DBG)
+vcpkg_execute_required_process(
+ COMMAND ${NMAKE} /G -f makefile.vc
+ "INSTDIR=\"${INST_DIR_DBG}\""
+ MSVC_VER=1900
+ CRT_FLAGS=${CL_FLAGS_DBG}
+ DEBUG=1
+ INSTALLED_ROOT=${CURRENT_INSTALLED_DIR}
+ ${TARGET_LIB}
+ WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
+ LOGNAME nmake-build-${TARGET_TRIPLET}-debug
+)
+message(STATUS "Building ${TARGET_TRIPLET}-dbg done")
+
+message(STATUS "Packaging ${TARGET_TRIPLET}")
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/epsilon/filters)
+if (VCPKG_CRT_LINKAGE STREQUAL dynamic)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(INSTALL ${SOURCE_PATH_RELEASE}/epsilon.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin/)
+ file(INSTALL ${SOURCE_PATH_DEBUG}/epsilon.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin/)
+ file(INSTALL ${SOURCE_PATH_RELEASE}/epsilon_i.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
+ file(INSTALL ${SOURCE_PATH_DEBUG}/epsilon_i.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
+else()
+ file(INSTALL ${SOURCE_PATH_RELEASE}/epsilon.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
+ file(INSTALL ${SOURCE_PATH_DEBUG}/epsilon.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
+endif()
+file(COPY ${SOURCE_PATH_RELEASE}/lib/epsilon.h
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include/)
+file(GLOB FILTERS ${SOURCE_PATH_RELEASE}/filters/*.filter)
+file(INSTALL ${FILTERS}
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/epsilon/filters/)
+vcpkg_copy_pdbs()
+file(INSTALL ${SOURCE_PATH_RELEASE}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/epsilon/ RENAME copyright)
+message(STATUS "Packaging ${TARGET_TRIPLET} done")
+
diff --git a/ports/evpp/CONTROL b/ports/evpp/CONTROL
new file mode 100644
index 000000000..741a94a22
--- /dev/null
+++ b/ports/evpp/CONTROL
@@ -0,0 +1,4 @@
+Source: evpp
+Version: 0.7.0
+Description: A modern C++ network library based on libevent for developing high performance network services in TCP/UDP/HTTP protocols.
+Build-Depends: glog, libevent, rapidjson
diff --git a/ports/evpp/fix-rapidjson-1-1.patch b/ports/evpp/fix-rapidjson-1-1.patch
new file mode 100644
index 000000000..1dda0b895
--- /dev/null
+++ b/ports/evpp/fix-rapidjson-1-1.patch
@@ -0,0 +1,159 @@
+diff --git a/3rdparty/libhashkit/crc32.c b/3rdparty/libhashkit/crc32.c
+index 6db0478..ff34194 100644
+--- a/3rdparty/libhashkit/crc32.c
++++ b/3rdparty/libhashkit/crc32.c
+@@ -73,7 +73,7 @@ static const uint32_t crc32tab[256] = {
+ 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,
+ };
+
+-uint32_t hashkit_crc32(const char *key, size_t key_length, void *context __attribute__((unused)))
++uint32_t hashkit_crc32(const char *key, size_t key_length, void * context)
+ {
+ uint64_t x;
+ uint32_t crc= UINT32_MAX;
+diff --git a/3rdparty/libhashkit/fnv.c b/3rdparty/libhashkit/fnv.c
+index ee3754d..d79fe39 100644
+--- a/3rdparty/libhashkit/fnv.c
++++ b/3rdparty/libhashkit/fnv.c
+@@ -14,7 +14,7 @@ static uint64_t FNV_64_PRIME= UINT64_C(0x100000001b3);
+ static uint32_t FNV_32_INIT= 2166136261UL;
+ static uint32_t FNV_32_PRIME= 16777619;
+
+-uint32_t hashkit_fnv1_64(const char *key, size_t key_length, void *context __attribute__((unused)))
++uint32_t hashkit_fnv1_64(const char *key, size_t key_length, void * context)
+ {
+ /* Thanks to pierre@demartines.com for the pointer */
+ uint64_t hash= FNV_64_INIT;
+@@ -28,7 +28,7 @@ uint32_t hashkit_fnv1_64(const char *key, size_t key_length, void *context __att
+ return (uint32_t)hash;
+ }
+
+-uint32_t hashkit_fnv1a_64(const char *key, size_t key_length, void *context __attribute__((unused)))
++uint32_t hashkit_fnv1a_64(const char *key, size_t key_length, void * context)
+ {
+ uint32_t hash= (uint32_t) FNV_64_INIT;
+
+@@ -42,7 +42,7 @@ uint32_t hashkit_fnv1a_64(const char *key, size_t key_length, void *context __at
+ return hash;
+ }
+
+-uint32_t hashkit_fnv1_32(const char *key, size_t key_length, void *context __attribute__((unused)))
++uint32_t hashkit_fnv1_32(const char *key, size_t key_length, void * context)
+ {
+ uint32_t hash= FNV_32_INIT;
+
+@@ -56,7 +56,7 @@ uint32_t hashkit_fnv1_32(const char *key, size_t key_length, void *context __att
+ return hash;
+ }
+
+-uint32_t hashkit_fnv1a_32(const char *key, size_t key_length, void *context __attribute__((unused)))
++uint32_t hashkit_fnv1a_32(const char *key, size_t key_length, void * context)
+ {
+ uint32_t hash= FNV_32_INIT;
+
+diff --git a/3rdparty/libhashkit/hsieh.c b/3rdparty/libhashkit/hsieh.c
+index ba46ed2..c3e9a38 100644
+--- a/3rdparty/libhashkit/hsieh.c
++++ b/3rdparty/libhashkit/hsieh.c
+@@ -17,7 +17,7 @@
+ +(uint32_t)(((const uint8_t *)(d))[0]) )
+ #endif
+
+-uint32_t hashkit_hsieh(const char *key, size_t key_length, void *context __attribute__((unused)))
++uint32_t hashkit_hsieh(const char *key, size_t key_length, void * context)
+ {
+ uint32_t hash = 0, tmp;
+ int rem;
+diff --git a/3rdparty/libhashkit/jenkins.c b/3rdparty/libhashkit/jenkins.c
+index b684d7a..2b59714 100644
+--- a/3rdparty/libhashkit/jenkins.c
++++ b/3rdparty/libhashkit/jenkins.c
+@@ -56,7 +56,7 @@ use a bitmask. For example, if you need only 10 bits, do
+ In which case, the hash table should have hashsize(10) elements.
+ */
+
+-uint32_t hashkit_jenkins(const char *key, size_t length, void *context __attribute__((unused)))
++uint32_t hashkit_jenkins(const char *key, size_t length, void * context)
+ {
+ uint32_t a,b,c; /* internal state */
+ union { const void *ptr; size_t i; } u; /* needed for Mac Powerbook G4 */
+diff --git a/3rdparty/libhashkit/md5.c b/3rdparty/libhashkit/md5.c
+index 7371c6d..0e3181b 100644
+--- a/3rdparty/libhashkit/md5.c
++++ b/3rdparty/libhashkit/md5.c
+@@ -352,7 +352,7 @@ unsigned int len)
+ (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);
+ }
+
+-uint32_t hashkit_md5(const char *key, size_t key_length, void *context __attribute__((unused)))
++uint32_t hashkit_md5(const char *key, size_t key_length, void * context)
+ {
+ unsigned char results[16];
+
+diff --git a/3rdparty/libhashkit/murmur.c b/3rdparty/libhashkit/murmur.c
+index a18ac40..9e55eec 100644
+--- a/3rdparty/libhashkit/murmur.c
++++ b/3rdparty/libhashkit/murmur.c
+@@ -17,7 +17,7 @@
+
+ #include "common.h"
+
+-uint32_t hashkit_murmur(const char *key, size_t length, void *context __attribute__((unused)))
++uint32_t hashkit_murmur(const char *key, size_t length, void * context)
+ {
+ /*
+ 'm' and 'r' are mixing constants generated offline. They're not
+diff --git a/3rdparty/libhashkit/one_at_a_time.c b/3rdparty/libhashkit/one_at_a_time.c
+index 579d044..539861c 100644
+--- a/3rdparty/libhashkit/one_at_a_time.c
++++ b/3rdparty/libhashkit/one_at_a_time.c
+@@ -13,7 +13,7 @@ http://en.wikipedia.org/wiki/Jenkins_hash_function
+
+ #include "common.h"
+
+-uint32_t hashkit_one_at_a_time(const char *key, size_t key_length, void *context __attribute__((unused)))
++uint32_t hashkit_one_at_a_time(const char *key, size_t key_length, void * context)
+ {
+ const char *ptr= key;
+ uint32_t value= 0;
+diff --git a/3rdparty/libhashkit/strerror.c b/3rdparty/libhashkit/strerror.c
+index 270fa21..7446782 100644
+--- a/3rdparty/libhashkit/strerror.c
++++ b/3rdparty/libhashkit/strerror.c
+@@ -8,7 +8,7 @@
+
+ #include "common.h"
+
+-const char *hashkit_strerror(hashkit_st *ptr __attribute__((unused)), hashkit_return_t rc)
++const char *hashkit_strerror(hashkit_st *ptr, hashkit_return_t rc)
+ {
+ switch (rc)
+ {
+diff --git a/apps/evnsq/option.cc b/apps/evnsq/option.cc
+index e2128f5..0248ace 100644
+--- a/apps/evnsq/option.cc
++++ b/apps/evnsq/option.cc
+@@ -21,14 +21,14 @@ std::string Option::ToJSON() const {
+ doc.AddMember("write_timeout", rapidjson::Value(int64_t(write_timeout.Milliseconds())), doc.GetAllocator());
+ doc.AddMember("msg_timeout", rapidjson::Value(int64_t(msg_timeout.Milliseconds())), doc.GetAllocator());
+
+- doc.AddMember("client_id", rapidjson::Value(client_id, doc.GetAllocator()), doc.GetAllocator());
+- doc.AddMember("hostname", rapidjson::Value(hostname, doc.GetAllocator()), doc.GetAllocator());
+- doc.AddMember("user_agent", rapidjson::Value(user_agent, doc.GetAllocator()), doc.GetAllocator());
++ doc.AddMember("client_id", rapidjson::Value(client_id.data(), client_id.size(), doc.GetAllocator()), doc.GetAllocator());
++ doc.AddMember("hostname", rapidjson::Value(hostname.data(), hostname.size(), doc.GetAllocator()), doc.GetAllocator());
++ doc.AddMember("user_agent", rapidjson::Value(user_agent.data(), user_agent.size(), doc.GetAllocator()), doc.GetAllocator());
+
+ doc.AddMember("heartbeat_interval", rapidjson::Value(int64_t(heartbeat_interval.Milliseconds())), doc.GetAllocator());
+
+ doc.AddMember("deflate", rapidjson::Value(false), doc.GetAllocator());
+- doc.AddMember("long_id", rapidjson::Value(hostname, doc.GetAllocator()), doc.GetAllocator());
++ doc.AddMember("long_id", rapidjson::Value(hostname.data(), hostname.size(), doc.GetAllocator()), doc.GetAllocator());
+ doc.AddMember("output_buffer_size", rapidjson::Value(int64_t(16384)), doc.GetAllocator());
+ doc.AddMember("output_buffer_timeout", rapidjson::Value(int64_t(250)), doc.GetAllocator());
+ doc.AddMember("feature_negotiation", rapidjson::Value(feature_negotiation), doc.GetAllocator());
+@@ -40,3 +40,4 @@ std::string Option::ToJSON() const {
+ return std::string(buffer.GetString(), buffer.GetSize());
+ }
+ }
++
diff --git a/ports/evpp/portfile.cmake b/ports/evpp/portfile.cmake
new file mode 100644
index 000000000..b20642bdd
--- /dev/null
+++ b/ports/evpp/portfile.cmake
@@ -0,0 +1,45 @@
+include(vcpkg_common_functions)
+
+set(EVPP_LOCAL_TEST OFF)
+
+set(EVPP_VERSION 0.7.0)
+if (EVPP_LOCAL_TEST)
+ set(EVPP_HASH bfefb3f7c1f620fbca2c3d94e2e7c39aa963156a084caf39bcc348a9380f97c73c9ee965126434d71c8b14836e669d554ed98632b3bb38eb65b421fd8eff49b2)
+ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/evpp)
+ vcpkg_download_distfile(ARCHIVE
+ URLS "http://127.0.0.1:8000/evpp.zip"
+ FILENAME "evpp-${EVPP_VERSION}.zip"
+ SHA512 ${EVPP_HASH}
+ )
+ vcpkg_extract_source_archive(${ARCHIVE})
+else ()
+ vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Qihoo360/evpp
+ REF v${EVPP_VERSION}
+ SHA512 ddcef8d2af6b3c46473d755c0f0994d63d56240ea85d6b44ceb6b77724c3c56bbf1156f7188e270fb5f9f36f25bfc2f96669d7249a34c921922671e3fe267e88
+ HEAD_REF master
+ )
+ file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty/rapidjson ${SOURCE_PATH}/3rdparty/concurrentqueue)
+
+ vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-rapidjson-1-1.patch
+ )
+endif ()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DEVPP_VCPKG_BUILD=ON
+)
+
+vcpkg_install_cmake()
+
+# remove duplicated include files
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/evpp)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/evpp/LICENSE ${CURRENT_PACKAGES_DIR}/share/evpp/copyright)
+
diff --git a/ports/exiv2/CONTROL b/ports/exiv2/CONTROL
new file mode 100644
index 000000000..085efe481
--- /dev/null
+++ b/ports/exiv2/CONTROL
@@ -0,0 +1,4 @@
+Source: exiv2
+Version: 2018-05-17
+Build-Depends: zlib, expat, libiconv
+Description: Image metadata library and tools http://www.exiv2.org
diff --git a/ports/exiv2/portfile.cmake b/ports/exiv2/portfile.cmake
new file mode 100644
index 000000000..c4c3173d2
--- /dev/null
+++ b/ports/exiv2/portfile.cmake
@@ -0,0 +1,37 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Exiv2/exiv2
+ REF 4b24e011dc485102a68a8809621e718fc77830a2
+ SHA512 acd192c585a074fae3308cce9355e735165142dc19c4a1ab6040fe4e686aa199f30d664eb2b450fe297c9ce0b027952bf784e8aea18c893d80b28e331bf48839
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH "${SOURCE_PATH}"
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/use-iconv.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "share/exiv2/cmake")
+
+vcpkg_copy_pdbs()
+
+# Clean
+file(GLOB EXE ${CURRENT_PACKAGES_DIR}/bin/*.exe ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share ${EXE} ${DEBUG_EXE})
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/ABOUT-NLS DESTINATION ${CURRENT_PACKAGES_DIR}/share/exiv2)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/exiv2/ABOUT-NLS ${CURRENT_PACKAGES_DIR}/share/exiv2/copyright)
diff --git a/ports/exiv2/use-iconv.patch b/ports/exiv2/use-iconv.patch
new file mode 100644
index 000000000..4305ec550
--- /dev/null
+++ b/ports/exiv2/use-iconv.patch
@@ -0,0 +1,37 @@
+diff --git a/config/FindIconv.cmake b/config/FindIconv.cmake
+index 15a0e39..53718bf 100644
+--- a/config/FindIconv.cmake
++++ b/config/FindIconv.cmake
+@@ -36,12 +36,13 @@ if(NOT ICONV_INCLUDE_DIR STREQUAL "ICONV_INCLUDE_DIR-NOTFOUND")
+ endif()
+
+ if(NOT ICONV_IN_GLIBC)
+- find_library(ICONV_LIBRARY NAMES iconv)
++ find_library(ICONV_LIBRARY NAMES iconv libiconv)
+ set(ICONV_TEST ${ICONV_LIBRARY})
+ else()
+ set(ICONV_TEST "In glibc")
+ endif()
+
++set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
+ set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY})
+ check_cxx_source_compiles(
+ "#include <iconv.h>
+@@ -59,7 +60,8 @@ else(ICONV_FOUND)
+ set(ICONV_LIBRARIES)
+ endif(ICONV_FOUND)
+
+-if(ICONV_FOUND)
++if(ICONV_FOUND)
++ set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
+ set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
+ check_cxx_source_compiles(
+ "#include <iconv.h>
+@@ -69,6 +71,7 @@ if(ICONV_FOUND)
+ }"
+ ICONV_ACCEPTS_NONCONST_INPUT)
+
++ set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
+ set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
+ check_cxx_source_compiles(
+ "#include <iconv.h>
diff --git a/ports/expat/CONTROL b/ports/expat/CONTROL
index 5987991c8..edbcf2326 100644
--- a/ports/expat/CONTROL
+++ b/ports/expat/CONTROL
@@ -1,3 +1,3 @@
Source: expat
-Version: 2.1.1-1
+Version: 2.2.5
Description: XML parser library written in C
diff --git a/ports/expat/portfile.cmake b/ports/expat/portfile.cmake
index a347ac2cb..485320a8b 100644
--- a/ports/expat/portfile.cmake
+++ b/ports/expat/portfile.cmake
@@ -1,11 +1,14 @@
+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/expat-2.1.1)
-vcpkg_download_distfile(ARCHIVE_FILE
- URLS "http://downloads.sourceforge.net/project/expat/expat/2.1.1/expat-2.1.1.tar.bz2"
- FILENAME "expat-2.1.1.tar.bz2"
- SHA512 088e2ef3434f2affd4fc79fe46f0e9826b9b4c3931ddc780cd18892f1cd1e11365169c6807f45916a56bb6abcc627dcd17a23f970be0bf464f048f5be2713628
-)
-vcpkg_extract_source_archive(${ARCHIVE_FILE})
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libexpat/libexpat
+ REF R_2_2_5
+ SHA512 61ce2a479521412e0c56c352106c4adfb61a6bedb883921aba3ebccc29311ddd192646ac2c51b41572728d4de6ab4cb60a1dbc71515d742a80a8b59d89ca74d6
+ HEAD_REF master)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
set(EXPAT_LINKAGE ON)
@@ -14,7 +17,8 @@ else()
endif()
vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
+ SOURCE_PATH ${SOURCE_PATH}/expat
+ PREFER_NINJA
OPTIONS
-DBUILD_examples=OFF
-DBUILD_tests=OFF
@@ -25,10 +29,15 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
-file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/expat RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/expat/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/expat RENAME copyright)
vcpkg_copy_pdbs()
+# CMake's FindExpat currently doesn't look for expatd.lib
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/expatd.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/expatd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/expat.lib)
+endif()
+
file(READ ${CURRENT_PACKAGES_DIR}/include/expat_external.h EXPAT_EXTERNAL_H)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
string(REPLACE "!defined(XML_STATIC)" "/* vcpkg static build !defined(XML_STATIC) */ 0" EXPAT_EXTERNAL_H "${EXPAT_EXTERNAL_H}")
diff --git a/ports/exprtk/CONTROL b/ports/exprtk/CONTROL
new file mode 100644
index 000000000..4df1a2e2b
--- /dev/null
+++ b/ports/exprtk/CONTROL
@@ -0,0 +1,3 @@
+Source: exprtk
+Version: 2018.04.30-46877b6
+Description: Simple to use, easy to integrate and extremely efficient run-time C++ mathematical expression parser and evaluation engine.
diff --git a/ports/exprtk/copyright b/ports/exprtk/copyright
new file mode 100644
index 000000000..ee372c989
--- /dev/null
+++ b/ports/exprtk/copyright
@@ -0,0 +1,8 @@
+Copyright 1999-2018 Arash Partow
+http://www.partow.net/programming/exprtk/index.html
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/ports/exprtk/portfile.cmake b/ports/exprtk/portfile.cmake
new file mode 100644
index 000000000..69d9921ec
--- /dev/null
+++ b/ports/exprtk/portfile.cmake
@@ -0,0 +1,11 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ArashPartow/exprtk
+ REF 46877b604cfcc0a0e592fc7a8a874cf2a9f90cf4
+ SHA512 1043b5b6aa64bc3f8d989d2aac3e3a125188b1526ab92e245ad526ab1fe37e10cb275f2b77d311b4d91bd4ea32e1d81dfcd8abf8373b723a8b664842690ee1ae
+)
+
+file(COPY ${SOURCE_PATH}/exprtk.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/exprtk)
diff --git a/ports/fadbad/CONTROL b/ports/fadbad/CONTROL
new file mode 100644
index 000000000..ebf987962
--- /dev/null
+++ b/ports/fadbad/CONTROL
@@ -0,0 +1,3 @@
+Source: fadbad
+Version: 2.1.0
+Description: FADBAD++ Templates for Automatic Differentiation
diff --git a/ports/fadbad/portfile.cmake b/ports/fadbad/portfile.cmake
new file mode 100644
index 000000000..af9721962
--- /dev/null
+++ b/ports/fadbad/portfile.cmake
@@ -0,0 +1,18 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/FADBAD++)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.fadbad.com/download/FADBAD++-2.1.tar.gz"
+ FILENAME "FADBAD++-2.1.tar.gz"
+ SHA512 7a82c51c03acb0806d673853f391379ea974e304c831ee15ef05a90c30661736ff572481b5b8254b2646c63968043ee90a06cba88261b87fc34d01f92403360a
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(INSTALL
+ ${SOURCE_PATH}/tadiff.h
+ ${SOURCE_PATH}/fadbad.h
+ ${SOURCE_PATH}/fadiff.h
+ ${SOURCE_PATH}/badiff.h
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
+)
+
+file(INSTALL ${SOURCE_PATH}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/fadbad RENAME copyright)
diff --git a/ports/fastcdr/CONTROL b/ports/fastcdr/CONTROL
new file mode 100644
index 000000000..dfd04bf06
--- /dev/null
+++ b/ports/fastcdr/CONTROL
@@ -0,0 +1,3 @@
+Source: fastcdr
+Version: 1.0.6-1
+Description: eProsima FastCDR is a C++ library that provides two serialization mechanisms. One is the standard CDR serialization mechanism, while the other is a faster implementation that modifies the standard.
diff --git a/ports/fastcdr/install-cmake.patch b/ports/fastcdr/install-cmake.patch
new file mode 100644
index 000000000..0eff05063
--- /dev/null
+++ b/ports/fastcdr/install-cmake.patch
@@ -0,0 +1,26 @@
+diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
+index 46d6f20..5d73ec5 100644
+--- a/src/cpp/CMakeLists.txt
++++ b/src/cpp/CMakeLists.txt
+@@ -139,7 +139,12 @@ if(MSVC OR MSVC_IDE)
+ set(DIR_EXTENSION "/${MSVC_ARCH}")
+ endif()
+
+- install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_static
++ if(BUILD_SHARED_LIBS)
++ set(PROJECT_TARGETS ${PROJECT_NAME})
++ else()
++ set(PROJECT_TARGETS ${PROJECT_NAME}_static)
++ endif()
++ install(TARGETS ${PROJECT_TARGETS}
+ EXPORT ${PROJECT_NAME}Targets
+ RUNTIME DESTINATION ${BIN_INSTALL_DIR}${DIR_EXTENSION}
+ LIBRARY DESTINATION ${LIB_INSTALL_DIR}${DIR_EXTENSION}
+@@ -147,7 +152,6 @@ if(MSVC OR MSVC_IDE)
+ COMPONENT libraries_${MSVC_ARCH}
+ )
+
+- export(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_static FILE ${PROJECT_BINARY_DIR}/cmake/config/${PROJECT_NAME}Targets.cmake)
+ install(EXPORT ${PROJECT_NAME}Targets
+ DESTINATION ${LIB_INSTALL_DIR}${DIR_EXTENSION}/${PROJECT_NAME}/cmake
+ COMPONENT cmake
diff --git a/ports/fastcdr/portfile.cmake b/ports/fastcdr/portfile.cmake
new file mode 100644
index 000000000..91362f3b2
--- /dev/null
+++ b/ports/fastcdr/portfile.cmake
@@ -0,0 +1,45 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO eProsima/Fast-CDR
+ REF v1.0.6
+ SHA512 80861ff6a0283e1398306e081fe70d7d185f980e5714ae51864cae012b8f79719efa24e7f41025b2bfb2052cb2a3098436c75a38407f8f5a331593cb91868fb2
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/install-cmake.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DLICENSE_INSTALL_DIR=share/fastcdr
+ -DCMAKE_DISABLE_FIND_PACKAGE_GTest=ON
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/fastcdr/cmake)
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/lib/fastcdr ${CURRENT_PACKAGES_DIR}/debug/lib/fastcdr)
+
+# always build static and share library default
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(READ ${CURRENT_PACKAGES_DIR}/include/fastcdr/eProsima_auto_link.h EPROSIMA_AUTO_LINK_H)
+ string(REPLACE "#define EPROSIMA_LIB_PREFIX \"lib\"" "#define EPROSIMA_LIB_PREFIX" EPROSIMA_AUTO_LINK_H "${EPROSIMA_AUTO_LINK_H}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/fastcdr/eProsima_auto_link.h "${EPROSIMA_AUTO_LINK_H}")
+else()
+ file(READ ${CURRENT_PACKAGES_DIR}/include/fastcdr/config.h FASTCDR_H)
+ string(REPLACE "#define _FASTCDR_CONFIG_H_" "#define _FASTCDR_CONFIG_H_\r\n#define FASTCDR_DYN_LINK" FASTCDR_H "${FASTCDR_H}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/fastcdr/config.h "${FASTCDR_H}")
+endif()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/license DESTINATION ${CURRENT_PACKAGES_DIR}/share/fastcdr)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/fastcdr/license ${CURRENT_PACKAGES_DIR}/share/fastcdr/copyright)
diff --git a/ports/fastlz/CONTROL b/ports/fastlz/CONTROL
index 089ba333e..51c95cec8 100644
--- a/ports/fastlz/CONTROL
+++ b/ports/fastlz/CONTROL
@@ -1,3 +1,3 @@
Source: fastlz
-Version: 1.0
+Version: 1.0-1
Description: A lightning-fast lossless compression library
diff --git a/ports/fastrtps/CONTROL b/ports/fastrtps/CONTROL
new file mode 100644
index 000000000..edbe4b7d4
--- /dev/null
+++ b/ports/fastrtps/CONTROL
@@ -0,0 +1,4 @@
+Source: fastrtps
+Version: 1.5.0
+Description: Eprosima Fast RTPS is a C++ implementation of the RTPS (Real Time Publish Subscribe) protocol, which provides publisher-subscriber communications over unreliable transports such as UDP, as defined and maintained by the Object Management Group (OMG) consortium.
+Build-Depends: openssl, asio, tinyxml2 \ No newline at end of file
diff --git a/ports/fastrtps/fix-install.patch b/ports/fastrtps/fix-install.patch
new file mode 100644
index 000000000..4777ae3ee
--- /dev/null
+++ b/ports/fastrtps/fix-install.patch
@@ -0,0 +1,14 @@
+diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
+index a1e91fd..f5578cd 100644
+--- a/src/cpp/CMakeLists.txt
++++ b/src/cpp/CMakeLists.txt
+@@ -416,7 +416,8 @@ if(MSVC OR MSVC_IDE)
+ PATTERN "*.pdb"
+ )
+
+- if(NOT (("${MSVC_ARCH}" STREQUAL "i86Win32VS2013") OR ("${MSVC_ARCH}" STREQUAL "x64Win64VS2013")))
++ if(NOT (("${MSVC_ARCH}" STREQUAL "i86Win32VS2013") OR ("${MSVC_ARCH}" STREQUAL "x64Win64VS2013")
++ OR ("${MSVC_ARCH}" STREQUAL "i86Win32VS2015") OR ("${MSVC_ARCH}" STREQUAL "x64Win64VS2015")))
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_static.dir/Debug/${PROJECT_NAME}_static.pdb
+ DESTINATION ${LIB_INSTALL_DIR}${DIR_EXTENSION}
+ COMPONENT libraries_${MSVC_ARCH}
diff --git a/ports/fastrtps/portfile.cmake b/ports/fastrtps/portfile.cmake
new file mode 100644
index 000000000..855d9f8b5
--- /dev/null
+++ b/ports/fastrtps/portfile.cmake
@@ -0,0 +1,32 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO eProsima/Fast-RTPS
+ REF b1779b608c7b5b2dcb101728f4213c58bdde74ee # waiting for next release
+ SHA512 9ec4a1e41296df1c0bc00926d925e0947602fabb68e9b28311e92739b0e1909a2993b15fc05eb31aeb9842ed50127f8d56571d09e57dd64ac6f37d0fed6cea73
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-install.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+file(COPY ${CURRENT_PACKAGES_DIR}/lib/fastrtps DESTINATION ${CURRENT_PACKAGES_DIR}/share)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/examples)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/LICENSE)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/examples)
+
+file(RENAME ${CURRENT_PACKAGES_DIR}/LICENSE ${CURRENT_PACKAGES_DIR}/share/fastrtps/copyright)
diff --git a/ports/fcl/0001_fix_package_detection.patch b/ports/fcl/0001_fix_package_detection.patch
new file mode 100644
index 000000000..9ae1b60e5
--- /dev/null
+++ b/ports/fcl/0001_fix_package_detection.patch
@@ -0,0 +1,81 @@
+From c43e3771cc2ec314191e5d4a5b485aab258c1b18 Mon Sep 17 00:00:00 2001
+From: Mikhail Paulyshka <me@mixaill.tk>
+Date: Sun, 27 Aug 2017 04:12:36 +0300
+Subject: [PATCH] use cmake-exports for package detection
+
+---
+ CMakeLists.txt | 48 +++---------------------------------------------
+ 1 file changed, 3 insertions(+), 45 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5a4a559..8978b61 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -65,32 +65,11 @@ if(FCL_COVERALLS)
+ endif()
+
+ # Find Octomap (optional)
+-find_package(PkgConfig QUIET)
+-
+ option(FCL_WITH_OCTOMAP "octomap library support" ON)
+ set(FCL_HAVE_OCTOMAP 0)
+ if(FCL_WITH_OCTOMAP)
+- if(PKG_CONFIG_FOUND)
+- pkg_check_modules(OCTOMAP QUIET octomap)
+- endif()
+- if(NOT OCTOMAP_FOUND)
+- # if pkgconfig is not installed, then fall back on more fragile detection
+- # of octomap
+- find_path(OCTOMAP_INCLUDE_DIRS octomap.h
+- PATH_SUFFIXES octomap)
+- find_library(OCTOMAP_LIBRARY_DIRS
+- ${CMAKE_SHARED_LIBRARY_PREFIX}octomap${CMAKE_SHARED_LIBRARY_SUFFIX})
+- if(OCTOMAP_INCLUDE_DIRS AND OCTOMAP_LIBRARY_DIRS)
+- set(OCTOMAP_LIBRARIES "octomap;octomath")
+- endif()
+- endif()
+- if (OCTOMAP_FOUND OR (OCTOMAP_INCLUDE_DIRS AND OCTOMAP_LIBRARY_DIRS))
+- string(REPLACE "." ";" VERSION_LIST ${OCTOMAP_VERSION})
+- list(GET VERSION_LIST 0 OCTOMAP_MAJOR_VERSION)
+- list(GET VERSION_LIST 1 OCTOMAP_MINOR_VERSION)
+- list(GET VERSION_LIST 2 OCTOMAP_PATCH_VERSION)
+- include_directories(${OCTOMAP_INCLUDE_DIRS})
+- link_directories(${OCTOMAP_LIBRARY_DIRS})
++ find_package(OCTOMAP REQUIRED)
++ if (OCTOMAP_FOUND)
+ set(FCL_HAVE_OCTOMAP 1)
+ message(STATUS "FCL uses Octomap")
+ else()
+@@ -116,28 +95,7 @@ endif()
+ include_directories(BEFORE "include")
+ include_directories("${CMAKE_CURRENT_BINARY_DIR}/include")
+
+-if(PKG_CONFIG_FOUND)
+- pkg_check_modules(CCD ccd)
+- # check to see if the pkg is installed under the libccd name
+- if(NOT CCD_FOUND)
+- pkg_check_modules(CCD libccd)
+- endif()
+-endif()
+-
+-if(NOT CCD_FOUND)
+- # if pkgconfig is not installed, then fall back on more fragile detection
+- # of ccd
+- find_path(CCD_INCLUDE_DIRS ccd/ccd.h)
+- find_library(CCD_LIBRARY
+- ${CMAKE_SHARED_LIBRARY_PREFIX}ccd${CMAKE_SHARED_LIBRARY_SUFFIX})
+- if(CCD_INCLUDE_DIRS AND CCD_LIBRARY)
+- set(CCD_LIBRARIES "${CCD_LIBRARY}")
+- else()
+- message(FATAL_ERROR "Libccd is required by FCL")
+- endif()
+-endif()
+-include_directories(${CCD_INCLUDE_DIRS})
+-link_directories(${CCD_LIBRARY_DIRS})
++find_package(CCD REQUIRED)
+
+ add_subdirectory(include/fcl)
+ add_subdirectory(src)
+--
+2.12.2.windows.2
+
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
new file mode 100644
index 000000000..0e425f59b
--- /dev/null
+++ b/ports/fcl/CONTROL
@@ -0,0 +1,4 @@
+Source: fcl
+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: ccd, octomap
diff --git a/ports/fcl/portfile.cmake b/ports/fcl/portfile.cmake
new file mode 100644
index 000000000..851a013c2
--- /dev/null
+++ b/ports/fcl/portfile.cmake
@@ -0,0 +1,48 @@
+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 flexible-collision-library/fcl
+ REF 54e9619bc2b084ee50e986ac3308160d663481c4
+ SHA512 11bfa3fdeeda6766769a34d2248ca32b6b13ecb32b412c068aa1c7aa3495d55b3f7a82a93621965904f9813c3fd0f128a84f796ae5731d2ff15b85935a0e1261
+ HEAD_REF fcl-0.5
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001_fix_package_detection.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0002-fix_dependencies.patch)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(FCL_STATIC_LIBRARY ON)
+else()
+ set(FCL_STATIC_LIBRARY OFF)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DFCL_STATIC_LIBRARY=${FCL_STATIC_LIBRARY}
+ -DFCL_BUILD_TESTS=OFF
+)
+
+vcpkg_install_cmake()
+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/fdk-aac/CMakeLists.txt b/ports/fdk-aac/CMakeLists.txt
new file mode 100644
index 000000000..869703c19
--- /dev/null
+++ b/ports/fdk-aac/CMakeLists.txt
@@ -0,0 +1,206 @@
+cmake_minimum_required(VERSION 3.8.0)
+
+project(fdk-aac)
+
+set(AACDEC_SRC
+ libAACdec/src/aacdec_drc.cpp
+ libAACdec/src/aacdec_hcr.cpp
+ libAACdec/src/aacdecoder.cpp
+ libAACdec/src/aacdec_pns.cpp
+ libAACdec/src/aac_ram.cpp
+ libAACdec/src/block.cpp
+ libAACdec/src/channelinfo.cpp
+ libAACdec/src/ldfiltbank.cpp
+ libAACdec/src/rvlcbit.cpp
+ libAACdec/src/rvlc.cpp
+ libAACdec/src/aacdec_hcr_bit.cpp
+ libAACdec/src/aacdec_hcrs.cpp
+ libAACdec/src/aacdecoder_lib.cpp
+ libAACdec/src/aacdec_tns.cpp
+ libAACdec/src/aac_rom.cpp
+ libAACdec/src/channel.cpp
+ libAACdec/src/conceal.cpp
+ libAACdec/src/pulsedata.cpp
+ libAACdec/src/rvlcconceal.cpp
+ libAACdec/src/stereo.cpp
+)
+
+set(AACENC_SRC
+ libAACenc/src/aacenc.cpp
+ libAACenc/src/aacEnc_ram.cpp
+ libAACenc/src/band_nrg.cpp
+ libAACenc/src/block_switch.cpp
+ libAACenc/src/grp_data.cpp
+ libAACenc/src/metadata_main.cpp
+ libAACenc/src/pre_echo_control.cpp
+ libAACenc/src/quantize.cpp
+ libAACenc/src/tonality.cpp
+ libAACenc/src/aacEnc_rom.cpp
+ libAACenc/src/bandwidth.cpp
+ libAACenc/src/channel_map.cpp
+ libAACenc/src/intensity.cpp
+ libAACenc/src/ms_stereo.cpp
+ libAACenc/src/psy_configuration.cpp
+ libAACenc/src/sf_estim.cpp
+ libAACenc/src/transform.cpp
+ libAACenc/src/aacenc_lib.cpp
+ libAACenc/src/aacenc_tns.cpp
+ libAACenc/src/bit_cnt.cpp
+ libAACenc/src/chaosmeasure.cpp
+ libAACenc/src/line_pe.cpp
+ libAACenc/src/noisedet.cpp
+ libAACenc/src/psy_main.cpp
+ libAACenc/src/spreading.cpp
+ libAACenc/src/aacenc_pns.cpp
+ libAACenc/src/adj_thr.cpp
+ libAACenc/src/bitenc.cpp
+ libAACenc/src/dyn_bits.cpp
+ libAACenc/src/metadata_compressor.cpp
+ libAACenc/src/pnsparam.cpp
+ libAACenc/src/qc_main.cpp
+)
+
+set(FDK_SRC
+ libFDK/src/autocorr2nd.cpp
+ libFDK/src/dct.cpp
+ libFDK/src/FDK_bitbuffer.cpp
+ libFDK/src/FDK_core.cpp
+ libFDK/src/FDK_crc.cpp
+ libFDK/src/FDK_hybrid.cpp
+ libFDK/src/FDK_tools_rom.cpp
+ libFDK/src/FDK_trigFcts.cpp
+ libFDK/src/fft.cpp
+ libFDK/src/fft_rad2.cpp
+ libFDK/src/fixpoint_math.cpp
+ libFDK/src/mdct.cpp
+ libFDK/src/qmf.cpp
+ libFDK/src/scale.cpp
+)
+
+set(MPEGTPDEC_SRC
+ libMpegTPDec/src/tpdec_adif.cpp
+ libMpegTPDec/src/tpdec_adts.cpp
+ libMpegTPDec/src/tpdec_asc.cpp
+ libMpegTPDec/src/tpdec_drm.cpp
+ libMpegTPDec/src/tpdec_latm.cpp
+ libMpegTPDec/src/tpdec_lib.cpp
+)
+
+set( MPEGTPENC_SRC
+ libMpegTPEnc/src/tpenc_adif.cpp
+ libMpegTPEnc/src/tpenc_adts.cpp
+ libMpegTPEnc/src/tpenc_asc.cpp
+ libMpegTPEnc/src/tpenc_latm.cpp
+ libMpegTPEnc/src/tpenc_lib.cpp
+)
+
+set( PCMUTILS_SRC
+ libPCMutils/src/limiter.cpp
+ libPCMutils/src/pcmutils_lib.cpp
+)
+
+set(SBRDEC_SRC
+ libSBRdec/src/env_calc.cpp
+ libSBRdec/src/env_dec.cpp
+ libSBRdec/src/env_extr.cpp
+ libSBRdec/src/huff_dec.cpp
+ libSBRdec/src/lpp_tran.cpp
+ libSBRdec/src/psbitdec.cpp
+ libSBRdec/src/psdec.cpp
+ libSBRdec/src/psdec_hybrid.cpp
+ libSBRdec/src/sbr_crc.cpp
+ libSBRdec/src/sbr_deb.cpp
+ libSBRdec/src/sbr_dec.cpp
+ libSBRdec/src/sbrdec_drc.cpp
+ libSBRdec/src/sbrdec_freq_sca.cpp
+ libSBRdec/src/sbrdecoder.cpp
+ libSBRdec/src/sbr_ram.cpp
+ libSBRdec/src/sbr_rom.cpp
+)
+
+set(SBRENC_SRC
+ libSBRenc/src/bit_sbr.cpp
+ libSBRenc/src/env_bit.cpp
+ libSBRenc/src/fram_gen.cpp
+ libSBRenc/src/mh_det.cpp
+ libSBRenc/src/ps_bitenc.cpp
+ libSBRenc/src/ps_encode.cpp
+ libSBRenc/src/resampler.cpp
+ libSBRenc/src/sbr_encoder.cpp
+ libSBRenc/src/sbr_ram.cpp
+ libSBRenc/src/ton_corr.cpp
+ libSBRenc/src/code_env.cpp
+ libSBRenc/src/env_est.cpp
+ libSBRenc/src/invf_est.cpp
+ libSBRenc/src/nf_est.cpp
+ libSBRenc/src/ps_main.cpp
+ libSBRenc/src/sbrenc_freq_sca.cpp
+ libSBRenc/src/sbr_misc.cpp
+ libSBRenc/src/sbr_rom.cpp
+ libSBRenc/src/tran_det.cpp
+)
+
+set(SYS_SRC
+ libSYS/src/cmdl_parser.cpp
+ libSYS/src/conv_string.cpp
+ libSYS/src/genericStds.cpp
+ libSYS/src/wav_file.cpp
+)
+
+set(
+ libfdk_aac_SOURCES
+ ${AACDEC_SRC} ${AACENC_SRC}
+ ${MPEGTPDEC_SRC} ${MPEGTPENC_SRC}
+ ${SBRDEC_SRC} ${SBRENC_SRC}
+ ${PCMUTILS_SRC} ${FDK_SRC} ${SYS_SRC}
+ fdk-aac.def
+)
+
+include_directories(
+ .
+ win32
+ libAACdec/include
+ libAACenc/include
+ libSBRdec/include
+ libSBRenc/include
+ libMpegTPDec/include
+ libMpegTPEnc/include
+ libSYS/include
+ libFDK/include
+ libPCMutils/include
+)
+if(BUILD_SHARED_LIBS)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif()
+
+add_library(fdk-aac ${libfdk_aac_SOURCES})
+
+add_executable(aac-enc aac-enc.c wavreader.c)
+
+target_link_libraries(aac-enc fdk-aac)
+
+install(
+ TARGETS fdk-aac
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_TOOLS)
+ install (
+ TARGETS aac-enc
+ RUNTIME DESTINATION tools/fdk-aac
+ )
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(
+ FILES
+ libAACdec/include/aacdecoder_lib.h
+ libAACenc/include/aacenc_lib.h
+ libSYS/include/FDK_audio.h
+ libSYS/include/genericStds.h
+ libSYS/include/machine_type.h
+ DESTINATION include
+ )
+endif()
diff --git a/ports/fdk-aac/CONTROL b/ports/fdk-aac/CONTROL
new file mode 100644
index 000000000..970062761
--- /dev/null
+++ b/ports/fdk-aac/CONTROL
@@ -0,0 +1,3 @@
+Source: fdk-aac
+Version: 2018-05-17
+Description: A standalone library of the Fraunhofer FDK AAC code
diff --git a/ports/fdk-aac/fdk-aac.def b/ports/fdk-aac/fdk-aac.def
new file mode 100644
index 000000000..8690b69b6
--- /dev/null
+++ b/ports/fdk-aac/fdk-aac.def
@@ -0,0 +1,19 @@
+EXPORTS
+aacDecoder_AncDataGet
+aacDecoder_AncDataInit
+aacDecoder_Close
+aacDecoder_ConfigRaw
+aacDecoder_DecodeFrame
+aacDecoder_Fill
+aacDecoder_GetFreeBytes
+aacDecoder_GetLibInfo
+aacDecoder_GetStreamInfo
+aacDecoder_Open
+aacDecoder_SetParam
+aacEncClose
+aacEncEncode
+aacEncGetLibInfo
+aacEncInfo
+aacEncOpen
+aacEncoder_GetParam
+aacEncoder_SetParam
diff --git a/ports/fdk-aac/portfile.cmake b/ports/fdk-aac/portfile.cmake
new file mode 100644
index 000000000..16c1b700f
--- /dev/null
+++ b/ports/fdk-aac/portfile.cmake
@@ -0,0 +1,22 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mstorsjo/fdk-aac
+ REF a50eecf65b5ce5d4f03768c5c2cb4b492d2badad
+ SHA512 1cb42e99d9d3112a42497f85c8ddbfb919a1c33bc8094408a828468762fe6d07c97940effa69d043c2d9923f3fa1805fd8c723154631609a6b0883eb4d3c6b27
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/fdk-aac.def DESTINATION ${SOURCE_PATH})
+
+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/fdk-aac)
+file(INSTALL ${SOURCE_PATH}/NOTICE DESTINATION ${CURRENT_PACKAGES_DIR}/share/fdk-aac RENAME copyright)
diff --git a/ports/ffmpeg/CONTROL b/ports/ffmpeg/CONTROL
index eea91d568..7688f67f9 100644
--- a/ports/ffmpeg/CONTROL
+++ b/ports/ffmpeg/CONTROL
@@ -1,4 +1,35 @@
Source: ffmpeg
-Version: 3.2.4-2
+Version: 3.3.3-5
Description: a library to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created.
- FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations. \ No newline at end of file
+ FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations.
+
+Feature: ffserver
+Description: ffserver appplication support in ffmpeg
+
+Feature: ffplay
+Description: ffplay appplication support in ffmpeg
+
+Feature: ffprobe
+Description: ffprobe appplication support in ffmpeg
+
+Feature: openssl
+Build-Depends: openssl, ffmpeg[nonfree]
+Description: openssl support in ffmpeg
+
+Feature: lzma
+Build-Depends: liblzma
+Description: lzma support in ffmpeg
+
+Feature: x264
+Build-Depends: x264, ffmpeg[gpl]
+Description: x264 support in ffmpeg
+
+Feature: opencl
+Build-Depends: opencl
+Description: opencl support in ffmpeg
+
+Feature: nonfree
+Description: allow nonfree and unredistributable libraries
+
+Feature: gpl
+Description: allow GPL licensed libraries
diff --git a/ports/ffmpeg/FindFFMPEG.cmake b/ports/ffmpeg/FindFFMPEG.cmake
new file mode 100644
index 000000000..bd373bfae
--- /dev/null
+++ b/ports/ffmpeg/FindFFMPEG.cmake
@@ -0,0 +1,11 @@
+include(FindPackageHandleStandardArgs)
+
+find_path(FFMPEG_INCLUDE_DIRS NAMES libavcodec/avcodec.h)
+unset(FFMPEG_LIBRARIES)
+foreach(FFMPEG_SUBLIBRARY avformat avdevice avcodec avutil swscale)
+ find_library(FFMPEG_lib${FFMPEG_SUBLIBRARY}_LIBRARY NAMES ${FFMPEG_SUBLIBRARY})
+ list(APPEND FFMPEG_LIBRARIES ${FFMPEG_lib${FFMPEG_SUBLIBRARY}_LIBRARY})
+endforeach()
+list(APPEND FFMPEG_LIBRARIES wsock32 ws2_32 Secur32)
+
+find_package_handle_standard_args(FFMPEG REQUIRED_VARS FFMPEG_LIBRARIES FFMPEG_INCLUDE_DIRS)
diff --git a/ports/ffmpeg/build.sh b/ports/ffmpeg/build.sh
index 3474a111e..048d9ec08 100644
--- a/ports/ffmpeg/build.sh
+++ b/ports/ffmpeg/build.sh
@@ -1,7 +1,13 @@
#!/usr/bin/bash
set -e
export PATH=/usr/bin:$PATH
-pacman -Sy --noconfirm --needed diffutils make
+# Export HTTP(S)_PROXY as http(s)_proxy:
+if [ "$HTTP_PROXY" ]; then
+ export http_proxy=$HTTP_PROXY
+fi
+if [ "$HTTPS_PROXY" ]; then
+ export https_proxy=$HTTPS_PROXY
+fi
PATH_TO_BUILD_DIR="`cygpath "$1"`"
PATH_TO_SRC_DIR="`cygpath "$2"`"
diff --git a/ports/ffmpeg/configure_opencv.patch b/ports/ffmpeg/configure_opencv.patch
new file mode 100644
index 000000000..66678661e
--- /dev/null
+++ b/ports/ffmpeg/configure_opencv.patch
@@ -0,0 +1,11 @@
+--- a/configure
++++ b/configure
+@@ -5804,7 +5804,7 @@
+ enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb
+ enabled libopencv && { check_header opencv2/core/core_c.h &&
+ { use_pkg_config opencv opencv2/core/core_c.h cvCreateImageHeader ||
+- require opencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } ||
++ require opencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core341 -lopencv_imgproc341; } ||
+ require_pkg_config opencv opencv/cxcore.h cvCreateImageHeader; }
+ enabled libopenh264 && require_pkg_config openh264 wels/codec_api.h WelsGetCodecVersion
+ enabled libopenjpeg && { { check_lib openjpeg-2.1/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
diff --git a/ports/ffmpeg/create-lib-libraries.patch b/ports/ffmpeg/create-lib-libraries.patch
new file mode 100644
index 000000000..dcc767cd2
--- /dev/null
+++ b/ports/ffmpeg/create-lib-libraries.patch
@@ -0,0 +1,26 @@
+From 5f7c72d6c93fb1f4a730e2315fff6e5eb9bb95c8 Mon Sep 17 00:00:00 2001
+From: Anonymous Maarten <anonymous.maarten@gmail.com>
+Date: Wed, 27 Sep 2017 15:50:40 +0200
+Subject: [PATCH] configure: create .lib static libraries using MSVC compiler
+ (instead of .a)
+
+---
+ configure | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/configure b/configure
+index ba38a73906..0a3f308323 100755
+--- a/configure
++++ b/configure
+@@ -5031,6 +5031,8 @@ case $target_os in
+ fi
+ enabled x86_32 && check_ldflags -LARGEADDRESSAWARE
+ shlibdir_default="$bindir_default"
++ LIBPREF=""
++ LIBSUF=".lib"
+ SLIBPREF=""
+ SLIBSUF=".dll"
+ SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
+--
+2.14.1.windows.1
+
diff --git a/ports/ffmpeg/detect-openssl.patch b/ports/ffmpeg/detect-openssl.patch
new file mode 100644
index 000000000..cb8a77e0a
--- /dev/null
+++ b/ports/ffmpeg/detect-openssl.patch
@@ -0,0 +1,25 @@
+From 18de5c60ae0a987680681d5a0602009b428504fa Mon Sep 17 00:00:00 2001
+From: Gilles Khouzam <gillesk@microsoft.com>
+Date: Mon, 19 Jun 2017 16:33:38 -0700
+Subject: [PATCH] Add better detection for Openssl on Windows.
+
+Look for libeay32 and ssleay32 as another detection mechanism
+---
+ configure | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure b/configure
+index a1818dc..1cf2a7c 100755
+--- a/configure
++++ b/configure
+@@ -5836,6 +5836,7 @@ enabled openssl && { use_pkg_config openssl openssl/ssl.h OPENSSL_init
+ check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto ||
+ check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
+ check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
++ check_lib openssl/ssl.h SSL_library_init -llibeay32 -lssleay32 ||
+ die "ERROR: openssl not found"; }
+ enabled qtkit_indev && { check_header_objcc QTKit/QTKit.h || disable qtkit_indev; }
+
+--
+2.10.1.windows.1
+
diff --git a/ports/ffmpeg/portfile.cmake b/ports/ffmpeg/portfile.cmake
index 7b45fc898..994e057b3 100644
--- a/ports/ffmpeg/portfile.cmake
+++ b/ports/ffmpeg/portfile.cmake
@@ -1,40 +1,139 @@
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- message(STATUS "Building as static libraries not currently supported. Building as DLLs instead.")
- set(VCPKG_LIBRARY_LINKAGE "dynamic")
-endif()
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ffmpeg-3.2.4)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ffmpeg-3.3.3)
vcpkg_download_distfile(ARCHIVE
- URLS "http://ffmpeg.org/releases/ffmpeg-3.2.4.tar.bz2"
- FILENAME "ffmpeg-3.2.4.tar.bz2"
- SHA512 ba5004d0f2659faa139c7dbf2f0fc6bab1d4e017d919f4ac271a5d2e8e4a3478909176e3a4d1ad33ddf2f62ab28dd9e00ce9be1399efb7cb3276dde79134cdaa
+ URLS "http://ffmpeg.org/releases/ffmpeg-3.3.3.tar.bz2"
+ FILENAME "ffmpeg-3.3.3.tar.bz2"
+ SHA512 1cc63bf73356f4e618c0d3572a216bdf5689f10deff56b4262f6d740b0bee5a4b3eac234f45fca3d4d2da77903a507b4fba725b76d2d2070f31b6dae9e7a2dab
)
+
+if (${SOURCE_PATH} MATCHES " ")
+ message(FATAL_ERROR "Error: ffmpeg will not build with spaces in the path. Please use a directory with no spaces")
+endif()
+
vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/create-lib-libraries.patch
+ ${CMAKE_CURRENT_LIST_DIR}/detect-openssl.patch
+ ${CMAKE_CURRENT_LIST_DIR}/configure_opencv.patch
+)
vcpkg_find_acquire_program(YASM)
get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY)
set(ENV{PATH} "$ENV{PATH};${YASM_EXE_PATH}")
-vcpkg_acquire_msys(MSYS_ROOT)
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ vcpkg_acquire_msys(MSYS_ROOT PACKAGES perl gcc diffutils make)
+else()
+ vcpkg_acquire_msys(MSYS_ROOT PACKAGES diffutils make)
+endif()
set(BASH ${MSYS_ROOT}/usr/bin/bash.exe)
+set(ENV{INCLUDE} "${CURRENT_INSTALLED_DIR}/include;$ENV{INCLUDE}")
+set(ENV{LIB} "${CURRENT_INSTALLED_DIR}/lib;$ENV{LIB}")
set(_csc_PROJECT_PATH ffmpeg)
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
-set(OPTIONS "--disable-ffmpeg --disable-ffprobe --disable-doc --enable-debug")
+set(OPTIONS "--enable-asm --enable-yasm --disable-doc --enable-debug --disable-ffmpeg")
set(OPTIONS "${OPTIONS} --enable-runtime-cpudetect")
+
+if("nonfree" IN_LIST FEATURES)
+ set(OPTIONS "${OPTIONS} --enable-nonfree")
+endif()
+
+if("gpl" IN_LIST FEATURES)
+ set(OPTIONS "${OPTIONS} --enable-gpl")
+endif()
+
+if("openssl" IN_LIST FEATURES)
+ set(OPTIONS "${OPTIONS} --enable-openssl")
+else()
+ set(OPTIONS "${OPTIONS} --disable-openssl")
+endif()
+
+if("ffplay" IN_LIST FEATURES)
+ set(OPTIONS "${OPTIONS} --enable-ffplay")
+else()
+ set(OPTIONS "${OPTIONS} --disable-ffplay")
+endif()
+
+if("ffserver" IN_LIST FEATURES)
+ set(OPTIONS "${OPTIONS} --enable-ffserver")
+else()
+ set(OPTIONS "${OPTIONS} --disable-ffserver")
+endif()
+
+if("ffprobe" IN_LIST FEATURES)
+ set(OPTIONS "${OPTIONS} --enable-ffprobe")
+else()
+ set(OPTIONS "${OPTIONS} --disable-ffprobe")
+endif()
+
+if("x264" IN_LIST FEATURES)
+ set(OPTIONS "${OPTIONS} --enable-libx264")
+else()
+ set(OPTIONS "${OPTIONS} --disable-libx264")
+endif()
+
+if("opencl" IN_LIST FEATURES)
+ set(OPTIONS "${OPTIONS} --enable-opencl")
+else()
+ set(OPTIONS "${OPTIONS} --disable-opencl")
+endif()
+
+if("lzma" IN_LIST FEATURES)
+ set(OPTIONS "${OPTIONS} --enable-lzma")
+else()
+ set(OPTIONS "${OPTIONS} --disable-lzma")
+endif()
+
+# bzip2's debug library is named "bz2d", which isn't found by ffmpeg
+# if("bzip2" IN_LIST FEATURES)
+# set(OPTIONS "${OPTIONS} --enable-bzip2")
+# else()
+# set(OPTIONS "${OPTIONS} --disable-bzip2")
+# endif()
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(ENV{LIBPATH} "$ENV{LIBPATH};$ENV{_WKITS10}references\\windows.foundation.foundationcontract\\2.0.0.0\\;$ENV{_WKITS10}references\\windows.foundation.universalapicontract\\3.0.0.0\\")
+ set(OPTIONS "${OPTIONS} --disable-programs --enable-cross-compile --target-os=win32 --arch=${VCPKG_TARGET_ARCHITECTURE}")
+ set(OPTIONS "${OPTIONS} --extra-cflags=-DWINAPI_FAMILY=WINAPI_FAMILY_APP --extra-cflags=-D_WIN32_WINNT=0x0A00")
+
+ if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ vcpkg_find_acquire_program(GASPREPROCESSOR)
+ foreach(GAS_PATH ${GASPREPROCESSOR})
+ get_filename_component(GAS_ITEM_PATH ${GAS_PATH} DIRECTORY)
+ set(ENV{PATH} "$ENV{PATH};${GAS_ITEM_PATH}")
+ endforeach(GAS_PATH)
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ else()
+ message(FATAL_ERROR "Unsupported architecture")
+ endif()
+endif()
+
set(OPTIONS_DEBUG "") # Note: --disable-optimizations can't be used due to http://ffmpeg.org/pipermail/libav-user/2013-March/003945.html
+set(OPTIONS_RELEASE "")
+
+set(OPTIONS "${OPTIONS} --extra-cflags=-DHAVE_UNISTD_H=0")
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
set(OPTIONS "${OPTIONS} --disable-static --enable-shared")
+ if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(OPTIONS "${OPTIONS} --extra-ldflags=-APPCONTAINER --extra-ldflags=WindowsApp.lib")
+ endif()
endif()
+message(STATUS "Building Options: ${OPTIONS}")
+
if(VCPKG_CRT_LINKAGE STREQUAL "dynamic")
- set(OPTIONS_DEBUG "${OPTIONS_DEBUG} --extra-cflags=-MDd --extra-cxxflags=-MDd --extra-ldflags=-NODEFAULTLIB:libcmt")
+ set(OPTIONS_DEBUG "${OPTIONS_DEBUG} --extra-cflags=-MDd --extra-cxxflags=-MDd")
+ set(OPTIONS_RELEASE "${OPTIONS_RELEASE} --extra-cflags=-MD --extra-cxxflags=-MD")
else()
- set(OPTIONS_DEBUG "${OPTIONS_DEBUG} --extra-cflags=-MTd --extra-cxxflags=-MTd --extra-ldflags=-NODEFAULTLIB:libcmt")
+ set(OPTIONS_DEBUG "${OPTIONS_DEBUG} --extra-cflags=-MTd --extra-cxxflags=-MTd")
+ set(OPTIONS_RELEASE "${OPTIONS_RELEASE} --extra-cflags=-MT --extra-cxxflags=-MT")
endif()
message(STATUS "Building ${_csc_PROJECT_PATH} for Release")
@@ -44,7 +143,7 @@ vcpkg_execute_required_process(
"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" # BUILD DIR
"${SOURCE_PATH}" # SOURCE DIR
"${CURRENT_PACKAGES_DIR}" # PACKAGE DIR
- "${OPTIONS}"
+ "${OPTIONS} ${OPTIONS_RELEASE}"
WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
LOGNAME build-${TARGET_TRIPLET}-rel
)
@@ -103,3 +202,6 @@ vcpkg_copy_pdbs()
# TODO: Examine build log and confirm that this license matches the build output
file(COPY ${SOURCE_PATH}/COPYING.LGPLv2.1 DESTINATION ${CURRENT_PACKAGES_DIR}/share/ffmpeg)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/ffmpeg/COPYING.LGPLv2.1 ${CURRENT_PACKAGES_DIR}/share/ffmpeg/copyright)
+
+# Used by OpenCV
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindFFMPEG.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/ffmpeg)
diff --git a/ports/fftw3/CMakeLists.txt b/ports/fftw3/CMakeLists.txt
deleted file mode 100644
index 6e0626f4b..000000000
--- a/ports/fftw3/CMakeLists.txt
+++ /dev/null
@@ -1,96 +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
-)
-
-# Create a target for the library
-add_library(fftw3
- ${fftw_api_SOURCE}
- ${fftw_dft_SOURCE}
- ${fftw_dft_scalar_SOURCE}
- ${fftw_dft_scalar_codelets_SOURCE}
- ${fftw_dft_simd_SOURCE}
- ${fftw_dft_simd_sse2_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_rdft_simd_sse2_SOURCE}
- ${fftw_reodft_SOURCE}
- ${fftw_simd_support_SOURCE}
- ${fftw_threads_SOURCE}
-)
-
-install(TARGETS fftw3
- RUNTIME DESTINATION bin
- ARCHIVE DESTINATION lib
- LIBRARY DESTINATION lib)
diff --git a/ports/fftw3/CONTROL b/ports/fftw3/CONTROL
index e7a464d65..fd9e59766 100644
--- a/ports/fftw3/CONTROL
+++ b/ports/fftw3/CONTROL
@@ -1,3 +1,3 @@
Source: fftw3
-Version: 3.3.6-p11
+Version: 3.3.7-2
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 3fbe33864..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 \ No newline at end of file
diff --git a/ports/fftw3/portfile.cmake b/ports/fftw3/portfile.cmake
index fe97533b4..2cf78f44c 100644
--- a/ports/fftw3/portfile.cmake
+++ b/ports/fftw3/portfile.cmake
@@ -1,41 +1,49 @@
-# 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}
-#
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/fftw-3.3.6-pl1)
+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.6-pl1.tar.gz"
- FILENAME "fftw-3.3.6-pl1.tar.gz"
- SHA512 e2ed33fcb068a36a841bbd898d12ceec74f4e9a0a349e7c55959878b50224a69a0f87656347dad7d7e1448ebc50d28d8f34f6da7992c43072d26942fd97c0134
+ URLS "http://www.fftw.org/fftw-3.3.7.tar.gz"
+ FILENAME "fftw-3.3.7.tar.gz"
+ SHA512 a5db54293a6d711408bed5894766437eee920be015ad27023c7a91d4581e2ff5b96e3db0201e6eaccf7b064c4d32db1a2a8fab3e6813e524b4743ddd6216ba77
)
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})
-
-vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA
-)
-
-vcpkg_install_cmake()
-vcpkg_copy_pdbs()
-
-file(COPY ${SOURCE_PATH}/api/fftw3.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
-
-if (VCPKG_CRT_LINKAGE STREQUAL dynamic)
- vcpkg_apply_patches(
- SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/fix-dynamic.patch)
-endif()
-
+foreach(PRECISION ENABLE_DEFAULT_PRECISION ENABLE_FLOAT ENABLE_LONG_DOUBLE)
+ vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -D${PRECISION}=ON
+ )
+
+ vcpkg_install_cmake()
+ vcpkg_copy_pdbs()
+
+ file(COPY ${SOURCE_PATH}/api/fftw3.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+ vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake)
+
+ if (VCPKG_CRT_LINKAGE STREQUAL dynamic)
+ vcpkg_apply_patches(
+ SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-dynamic.patch)
+ endif()
+
+ # Cleanup
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+endforeach()
+
# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/fftw3)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/fftw3/COPYING ${CURRENT_PACKAGES_DIR}/share/fftw3/copyright)
diff --git a/ports/flann/CONTROL b/ports/flann/CONTROL
new file mode 100644
index 000000000..850c76850
--- /dev/null
+++ b/ports/flann/CONTROL
@@ -0,0 +1,3 @@
+Source: flann
+Version: 1.9.1-7
+Description: Fast Library for Approximate Nearest Neighbors
diff --git a/ports/flann/Revert-fix-install-flann.patch b/ports/flann/Revert-fix-install-flann.patch
new file mode 100644
index 000000000..ace1b592a
--- /dev/null
+++ b/ports/flann/Revert-fix-install-flann.patch
@@ -0,0 +1,41 @@
+diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
+index cc58c90..49c53f0 100644
+--- a/src/cpp/CMakeLists.txt
++++ b/src/cpp/CMakeLists.txt
+@@ -87,7 +87,7 @@ if (BUILD_C_BINDINGS)
+ set_target_properties(flann PROPERTIES LINKER_LANGUAGE CXX)
+ target_link_libraries(flann -Wl,-whole-archive flann_s -Wl,-no-whole-archive)
+ else()
+- add_library(flann ${C_SOURCES})
++ add_library(flann SHARED ${C_SOURCES})
+
+ if(MINGW AND OPENMP_FOUND)
+ target_link_libraries(flann gomp)
+@@ -111,12 +111,12 @@ endif()
+ endif(WIN32)
+
+
+-#install (
+-# TARGETS flann_cpp flann_cpp_s
+-# RUNTIME DESTINATION bin
+-# LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
+-# ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
+-#)
++install (
++ TARGETS flann_cpp flann_cpp_s
++ RUNTIME DESTINATION bin
++ LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
++ ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
++)
+
+ if (BUILD_CUDA_LIB)
+ install (
+@@ -129,7 +129,7 @@ endif()
+
+ if (BUILD_C_BINDINGS)
+ install (
+- TARGETS flann
++ TARGETS flann flann_s
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
+ ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
diff --git a/ports/flann/export-all-symbols-of-flann-cpp.patch b/ports/flann/export-all-symbols-of-flann-cpp.patch
new file mode 100644
index 000000000..86f172ff3
--- /dev/null
+++ b/ports/flann/export-all-symbols-of-flann-cpp.patch
@@ -0,0 +1,12 @@
+diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
+index 49c53f0..b9cf76b 100644
+--- a/src/cpp/CMakeLists.txt
++++ b/src/cpp/CMakeLists.txt
+@@ -52,6 +52,7 @@ set_target_properties(flann_cpp PROPERTIES
+ VERSION ${FLANN_VERSION}
+ SOVERSION ${FLANN_SOVERSION}
+ DEFINE_SYMBOL FLANN_EXPORTS
++ WINDOWS_EXPORT_ALL_SYMBOLS ON
+ )
+
+ if (BUILD_CUDA_LIB)
diff --git a/ports/flann/fix-install-flann.patch b/ports/flann/fix-install-flann.patch
new file mode 100644
index 000000000..f65094e8f
--- /dev/null
+++ b/ports/flann/fix-install-flann.patch
@@ -0,0 +1,41 @@
+diff --git "a/src/cpp/CMakeLists.txt" "b/src/cpp/CMakeLists.txt"
+index 49c53f0..cc58c90 100644
+--- "a/src/cpp/CMakeLists.txt"
++++ "b/src/cpp/CMakeLists.txt"
+@@ -87,7 +87,7 @@ if (BUILD_C_BINDINGS)
+ set_target_properties(flann PROPERTIES LINKER_LANGUAGE CXX)
+ target_link_libraries(flann -Wl,-whole-archive flann_s -Wl,-no-whole-archive)
+ else()
+- add_library(flann SHARED ${C_SOURCES})
++ add_library(flann ${C_SOURCES})
+
+ if(MINGW AND OPENMP_FOUND)
+ target_link_libraries(flann gomp)
+@@ -111,12 +111,12 @@ endif()
+ endif(WIN32)
+
+
+-install (
+- TARGETS flann_cpp flann_cpp_s
+- RUNTIME DESTINATION bin
+- LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
+- ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
+-)
++#install (
++# TARGETS flann_cpp flann_cpp_s
++# RUNTIME DESTINATION bin
++# LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
++# ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
++#)
+
+ if (BUILD_CUDA_LIB)
+ install (
+@@ -129,7 +129,7 @@ endif()
+
+ if (BUILD_C_BINDINGS)
+ install (
+- TARGETS flann flann_s
++ TARGETS flann
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION ${FLANN_LIB_INSTALL_DIR}
+ ARCHIVE DESTINATION ${FLANN_LIB_INSTALL_DIR}
diff --git a/ports/flann/portfile.cmake b/ports/flann/portfile.cmake
new file mode 100644
index 000000000..6d251caa5
--- /dev/null
+++ b/ports/flann/portfile.cmake
@@ -0,0 +1,51 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mariusmuja/flann
+ REF 1.9.1
+ SHA512 0da78bb14111013318160dd3dee1f93eb6ed077b18439fd6496017b62a8a6070cc859cfb3e08dad4c614e48d9dc1da5f7c4a21726ee45896d360506da074a6f7
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-install-flann.patch
+ ${CMAKE_CURRENT_LIST_DIR}/Revert-fix-install-flann.patch
+ ${CMAKE_CURRENT_LIST_DIR}/export-all-symbols-of-flann-cpp.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_EXAMPLES=OFF
+ -DBUILD_DOC=OFF
+ -DBUILD_PYTHON_BINDINGS=OFF
+ -DBUILD_MATLAB_BINDINGS=OFF
+ -DCMAKE_DEBUG_POSTFIX=-gd
+ -DHDF5_NO_FIND_PACKAGE_CONFIG_FILE=ON
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/flann.lib ${CURRENT_PACKAGES_DIR}/debug/lib/flann-gd.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/flann_cpp.lib ${CURRENT_PACKAGES_DIR}/debug/lib/flann_cpp-gd.lib)
+
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/flann_s.lib ${CURRENT_PACKAGES_DIR}/lib/flann.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/flann_s-gd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/flann-gd.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/flann_cpp_s.lib ${CURRENT_PACKAGES_DIR}/lib/flann_cpp.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/flann_cpp_s-gd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/flann_cpp-gd.lib)
+elseif(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/flann_s.lib ${CURRENT_PACKAGES_DIR}/debug/lib/flann_s-gd.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/flann_cpp_s.lib ${CURRENT_PACKAGES_DIR}/debug/lib/flann_cpp_s-gd.lib)
+endif()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/flann)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/flann/COPYING ${CURRENT_PACKAGES_DIR}/share/flann/copyright)
diff --git a/ports/flatbuffers/CONTROL b/ports/flatbuffers/CONTROL
index 1fbe5d628..508530153 100644
--- a/ports/flatbuffers/CONTROL
+++ b/ports/flatbuffers/CONTROL
@@ -1,4 +1,4 @@
Source: flatbuffers
-Version: 1.6.0
+Version: 1.8.0-2
Description: Memory Efficient Serialization Library http://google.github.io/flatbuffers/
- FlatBuffers is an efficient cross platform serialization library for games and other memory constrained apps. It allows you to directly access serialized data without unpacking/parsing it first, while still having great forwards/backwards compatibility. \ No newline at end of file
+ FlatBuffers is an efficient cross platform serialization library for games and other memory constrained apps. It allows you to directly access serialized data without unpacking/parsing it first, while still having great forwards/backwards compatibility.
diff --git a/ports/flatbuffers/portfile.cmake b/ports/flatbuffers/portfile.cmake
index e2c05d2c0..8ac585946 100644
--- a/ports/flatbuffers/portfile.cmake
+++ b/ports/flatbuffers/portfile.cmake
@@ -1,25 +1,20 @@
-# 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)
endif()
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/flatbuffers-1.6.0)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/google/flatbuffers/archive/v1.6.0.zip"
- FILENAME "flatbuffers-1.6.0.zip"
- SHA512 c23043a54d7055f4e0a0164fdafd3f1d60292e57d62d20d30f641c9da90935d14da847f86239a19f777e68b707cfb25452da9192607a3a399ab25ce06b31c282
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/flatbuffers
+ REF v1.8.0
+ SHA512 8f6c84caa6456418fc751ea9de456dd37378b3239d1a41d2205140e7b19a5b8b2e342a22dc8d7fdd0c36878455e9d7401cc6438d3b771f7875e8fcfe7bbd52f1
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
+
+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")
@@ -37,15 +32,15 @@ vcpkg_configure_cmake(
# OPTIONS_DEBUG -DDEBUGGABLE=1
)
-vcpkg_build_cmake()
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/flatbuffers")
if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/bin)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
endif()
if(EXISTS ${CURRENT_PACKAGES_DIR}/bin/flatc.exe)
- make_directory(${CURRENT_PACKAGES_DIR}/tools)
- file(RENAME ${CURRENT_PACKAGES_DIR}/bin/flatc.exe ${CURRENT_PACKAGES_DIR}/tools/flatc.exe)
+ make_directory(${CURRENT_PACKAGES_DIR}/tools/flatbuffers)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/flatc.exe ${CURRENT_PACKAGES_DIR}/tools/flatbuffers/flatc.exe)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
endif()
if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/flatbuffers.dll)
diff --git a/ports/flint/CONTROL b/ports/flint/CONTROL
new file mode 100644
index 000000000..ce4646883
--- /dev/null
+++ b/ports/flint/CONTROL
@@ -0,0 +1,4 @@
+Source: flint
+Version: 2.5.2-1
+Description: Fast Library for Number Theory
+Build-Depends: mpir, mpfr, pthreads, gettimeofday
diff --git a/ports/flint/dll_flint.patch b/ports/flint/dll_flint.patch
new file mode 100644
index 000000000..29e1fa77a
--- /dev/null
+++ b/ports/flint/dll_flint.patch
@@ -0,0 +1,76 @@
+diff --git a/build.vc14/dll_flint/dll_flint.vcxproj b/build.vc14/dll_flint/dll_flint.vcxproj
+index 3c8edd3c..947b4e38 100644
+--- a/build.vc14/dll_flint/dll_flint.vcxproj
++++ b/build.vc14/dll_flint/dll_flint.vcxproj
+@@ -81,7 +81,7 @@
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\dll\$(IntDir);..\..\..\mpfr\dll\$(IntDir);..\..\..\pthreads\dll\$(IntDir);</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;HAVE_CONFIG_H;MSC_BUILD_DLL;PTW32_BUILD;FLINT_REENTRANT=0;HAVE_TLS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
+@@ -90,7 +90,7 @@
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <LargeAddressAware>true</LargeAddressAware>
+- <AdditionalDependencies>..\..\..\mpir\dll\$(IntDir)mpir.lib;..\..\..\mpfr\dll\$(IntDir)mpfr.lib;..\..\..\pthreads\dll\$(IntDir)pthreads.lib;%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalDependencies>@NATIVE_INSTALLED_DIR@\lib\mpir.lib;@NATIVE_INSTALLED_DIR@\lib\mpfr.lib;@NATIVE_INSTALLED_DIR@\lib\pthreadsVC2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ <PostBuildEvent>
+ <Command>postbuild $(IntDir) DLL
+@@ -105,7 +105,7 @@
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\dll\$(IntDir);..\..\..\mpfr\dll\$(IntDir);..\..\..\pthreads\dll\$(IntDir);</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;HAVE_CONFIG_H;MSC_BUILD_DLL;PTW32_BUILD;FLINT_REENTRANT=0;HAVE_TLS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
+@@ -114,7 +114,7 @@
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <LargeAddressAware>true</LargeAddressAware>
+- <AdditionalDependencies>..\..\..\mpir\dll\$(IntDir)mpir.lib;..\..\..\mpfr\dll\$(IntDir)mpfr.lib;..\..\..\pthreads\dll\$(IntDir)pthreads.lib;%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalDependencies>@NATIVE_INSTALLED_DIR@\lib\mpir.lib;@NATIVE_INSTALLED_DIR@\lib\mpfr.lib;@NATIVE_INSTALLED_DIR@\lib\pthreadsVC2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ <PostBuildEvent>
+ <Command>postbuild $(IntDir) DLL
+@@ -129,7 +129,7 @@
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\dll\$(IntDir);..\..\..\mpfr\dll\$(IntDir);..\..\..\pthreads\dll\$(IntDir);</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;HAVE_CONFIG_H;MSC_BUILD_DLL;PTW32_BUILD;FLINT_REENTRANT=0;HAVE_TLS=1;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
+@@ -138,7 +138,7 @@
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <LargeAddressAware>true</LargeAddressAware>
+- <AdditionalDependencies>..\..\..\mpir\dll\$(IntDir)mpir.lib;..\..\..\mpfr\dll\$(IntDir)mpfr.lib;..\..\..\pthreads\dll\$(IntDir)pthreads.lib;%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalDependencies>@NATIVE_INSTALLED_DIR@\lib\mpir.lib;@NATIVE_INSTALLED_DIR@\lib\mpfr.lib;@NATIVE_INSTALLED_DIR@\lib\pthreadsVC2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ <PostBuildEvent>
+ <Command>postbuild $(IntDir) DLL
+@@ -153,7 +153,7 @@
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\dll\$(IntDir);..\..\..\mpfr\dll\$(IntDir);..\..\..\pthreads\dll\$(IntDir);</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;HAVE_CONFIG_H;MSC_BUILD_DLL;PTW32_BUILD;FLINT_REENTRANT=0;HAVE_TLS=1;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
+@@ -162,7 +162,7 @@
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <LargeAddressAware>true</LargeAddressAware>
+- <AdditionalDependencies>..\..\..\mpir\dll\$(IntDir)mpir.lib;..\..\..\mpfr\dll\$(IntDir)mpfr.lib;..\..\..\pthreads\dll\$(IntDir)pthreads.lib;%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalDependencies>@NATIVE_INSTALLED_DIR@\lib\mpir.lib;@NATIVE_INSTALLED_DIR@\lib\mpfr.lib;@NATIVE_INSTALLED_DIR@\lib\pthreadsVC2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ <PostBuildEvent>
+ <Command>postbuild $(IntDir) DLL
diff --git a/ports/flint/lib_flint.patch b/ports/flint/lib_flint.patch
new file mode 100644
index 000000000..3d0a4caea
--- /dev/null
+++ b/ports/flint/lib_flint.patch
@@ -0,0 +1,40 @@
+diff --git a/build.vc14/lib_flint/lib_flint.vcxproj b/build.vc14/lib_flint/lib_flint.vcxproj
+index c6bd44c0..197d7723 100644
+--- a/build.vc14/lib_flint/lib_flint.vcxproj
++++ b/build.vc14/lib_flint/lib_flint.vcxproj
+@@ -81,7 +81,7 @@
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\lib\$(IntDir);..\..\..\mpfr\lib\$(IntDir);..\..\..\pthreads\lib\$(IntDir)</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;HAVE_CONFIG_H;PTW32_STATIC_LIB;FLINT_REENTRANT=0;HAVE_TLS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
+@@ -100,7 +100,7 @@
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\lib\$(IntDir);..\..\..\mpfr\lib\$(IntDir);..\..\..\pthreads\lib\$(IntDir)</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_LIB;HAVE_CONFIG_H;PTW32_STATIC_LIB;FLINT_REENTRANT=0;HAVE_TLS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
+@@ -119,7 +119,7 @@
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\lib\$(IntDir);..\..\..\mpfr\lib\$(IntDir);..\..\..\pthreads\lib\$(IntDir)</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;HAVE_CONFIG_H;PTW32_STATIC_LIB;FLINT_REENTRANT=0;HAVE_TLS=1;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
+@@ -138,7 +138,7 @@
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+- <AdditionalIncludeDirectories>..\;..\..\;..\..\..\mpir\lib\$(IntDir);..\..\..\mpfr\lib\$(IntDir);..\..\..\pthreads\lib\$(IntDir)</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>..\;..\..\;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_LIB;HAVE_CONFIG_H;PTW32_STATIC_LIB;FLINT_REENTRANT=0;HAVE_TLS=1;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
diff --git a/ports/flint/portfile.cmake b/ports/flint/portfile.cmake
new file mode 100644
index 000000000..9a9d5136b
--- /dev/null
+++ b/ports/flint/portfile.cmake
@@ -0,0 +1,111 @@
+include(vcpkg_common_functions)
+
+set(FLINT_VERSION 2.5.2)
+set(FLINT_HASH "8606b369af505d5fcedd05d95fcd04afac2a916fc5291501c56785891cfdb2f9bc98700b2d05afd1d9482fb96df2a8c8bf1cd0e5696df46775df9fa743eb900b")
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/flint-${FLINT_VERSION})
+
+vcpkg_download_distfile(ARCHIVE_FILE
+ URLS "http://www.flintlib.org/flint-${FLINT_VERSION}.zip"
+ FILENAME "flint-${FLINT_VERSION}.zip"
+ SHA512 ${FLINT_HASH}
+)
+vcpkg_extract_source_archive(${ARCHIVE_FILE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/lib_flint.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/dll_flint.patch"
+)
+
+set(MSVC_VERSION 14)
+
+file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+file(COPY ${SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+get_filename_component(SOURCE_DIR_NAME "${SOURCE_PATH}" NAME)
+
+# Use fresh copy of sources for building and modification
+set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${SOURCE_DIR_NAME}")
+
+file(TO_NATIVE_PATH ${CURRENT_INSTALLED_DIR} NATIVE_INSTALLED_DIR)
+configure_file(
+ "${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/dll_flint.vcxproj" "${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/dll_flint.vcxproj" @ONLY
+)
+configure_file(
+ "${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/lib_flint.vcxproj" "${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/lib_flint.vcxproj" @ONLY
+)
+
+file(RENAME "${SOURCE_PATH}/fmpz-conversions-gc.in" "${SOURCE_PATH}/fmpz-conversions.h")
+
+IF (VCPKG_TARGET_ARCHITECTURE MATCHES "x86")
+ file(RENAME "${SOURCE_PATH}/fft_tuning32.in" "${SOURCE_PATH}/fft_tuning.h")
+ELSE()
+ file(RENAME "${SOURCE_PATH}/fft_tuning64.in" "${SOURCE_PATH}/fft_tuning.h")
+ENDIF()
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/dll_flint.vcxproj
+ )
+else()
+ vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/lib_flint.vcxproj
+ )
+endif()
+
+IF (VCPKG_TARGET_ARCHITECTURE MATCHES "x86")
+ SET(BUILD_ARCH "Win32")
+ELSE()
+ SET(BUILD_ARCH ${VCPKG_TARGET_ARCHITECTURE})
+ENDIF()
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ file(GLOB FLINT_HEADERS "${SOURCE_PATH}/dll/${BUILD_ARCH}/Release/*.h")
+ file(INSTALL
+ ${FLINT_HEADERS}
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include/flint
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/${BUILD_ARCH}/Release/dll_flint.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/${BUILD_ARCH}/Debug/dll_flint.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/${BUILD_ARCH}/Release/dll_flint.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+ RENAME flint.lib
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_flint/${BUILD_ARCH}/Debug/dll_flint.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+ RENAME flint.lib
+ )
+ vcpkg_copy_pdbs()
+else()
+ file(GLOB FLINT_HEADERS "${SOURCE_PATH}/lib/${BUILD_ARCH}/Release/*.h")
+ file(INSTALL
+ ${FLINT_HEADERS}
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include/flint
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/${BUILD_ARCH}/Release/lib_flint.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+ RENAME flint.lib
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_flint/${BUILD_ARCH}/Debug/lib_flint.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+ RENAME flint.lib
+ )
+endif()
+
+file(INSTALL
+ ${SOURCE_PATH}/gpl-2.0.txt
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/flint
+ RENAME copyright
+)
+
+message(STATUS "Installing done")
diff --git a/ports/fltk/CONTROL b/ports/fltk/CONTROL
index 985c6b1c0..8261b63a5 100644
--- a/ports/fltk/CONTROL
+++ b/ports/fltk/CONTROL
@@ -1,4 +1,4 @@
Source: fltk
-Version: 1.3.4-2
+Version: 1.3.4-5
Description: FLTK (pronounced fulltick) is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its built-in GLUT emulation.
-Build-Depends: zlib, libpng, libjpeg-turbo \ No newline at end of file
+Build-Depends: zlib, libpng, libjpeg-turbo
diff --git a/ports/fltk/portfile.cmake b/ports/fltk/portfile.cmake
index 261a03c7f..c6c6fd830 100644
--- a/ports/fltk/portfile.cmake
+++ b/ports/fltk/portfile.cmake
@@ -28,8 +28,12 @@ endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS
+ PREFER_NINJA
+ OPTIONS
-DOPTION_BUILD_EXAMPLES=OFF
+ -DOPTION_USE_SYSTEM_ZLIB=ON
+ -DOPTION_USE_SYSTEM_LIBPNG=ON
+ -DOPTION_USE_SYSTEM_LIBJPEG=ON
-DOPTION_BUILD_SHARED_LIBS=${BUILD_SHARED}
)
@@ -40,26 +44,43 @@ file(REMOVE_RECURSE
${CURRENT_PACKAGES_DIR}/debug/CMAKE
${CURRENT_PACKAGES_DIR}/debug/include
)
+
+file(COPY ${CURRENT_PACKAGES_DIR}/bin/fluid.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/fltk)
file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/fluid.exe)
file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/fltk-config)
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/fluid.exe)
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/fltk-config)
+
vcpkg_copy_pdbs()
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/fltk)
-
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/bin
+ ${CURRENT_PACKAGES_DIR}/bin
+ )
else()
- file(REMOVE_RECURSE
- ${CURRENT_PACKAGES_DIR}/debug/bin
- ${CURRENT_PACKAGES_DIR}/bin
- )
-
-
+ file(GLOB SHARED_LIBS "${CURRENT_PACKAGES_DIR}/lib/*_SHARED.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/*_SHAREDd.lib")
+ file(GLOB STATIC_LIBS "${CURRENT_PACKAGES_DIR}/lib/*.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/*.lib")
+ list(FILTER STATIC_LIBS EXCLUDE REGEX "_SHAREDd?\\.lib\$")
+ file(REMOVE ${STATIC_LIBS})
+ foreach(SHARED_LIB ${SHARED_LIBS})
+ string(REGEX REPLACE "_SHARED(d?)\\.lib\$" "\\1.lib" NEWNAME ${SHARED_LIB})
+ file(RENAME ${SHARED_LIB} ${NEWNAME})
+ endforeach()
endif()
-
+foreach(FILE Fl_Export.H fl_utf8.h)
+ file(READ ${CURRENT_PACKAGES_DIR}/include/FL/${FILE} FLTK_HEADER)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ string(REPLACE "defined(FL_DLL)" "0" FLTK_HEADER "${FLTK_HEADER}")
+ else()
+ string(REPLACE "defined(FL_DLL)" "1" FLTK_HEADER "${FLTK_HEADER}")
+ endif()
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/FL/${FILE} "${FLTK_HEADER}")
+endforeach()
file(INSTALL
${SOURCE_PATH}/COPYING
diff --git a/ports/fluidsynth/CONTROL b/ports/fluidsynth/CONTROL
new file mode 100644
index 000000000..7fbb29a5b
--- /dev/null
+++ b/ports/fluidsynth/CONTROL
@@ -0,0 +1,4 @@
+Source: fluidsynth
+Version: 1.1.10
+Description: FluidSynth reads and handles MIDI events from the MIDI input device. It is the software analogue of a MIDI synthesizer. FluidSynth can also play midifiles using a Soundfont.
+Build-Depends: glib \ No newline at end of file
diff --git a/ports/fluidsynth/portfile.cmake b/ports/fluidsynth/portfile.cmake
new file mode 100644
index 000000000..ed0cf532d
--- /dev/null
+++ b/ports/fluidsynth/portfile.cmake
@@ -0,0 +1,34 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/fluidsynth-1.1.10)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO FluidSynth/fluidsynth
+ REF v1.1.10
+ SHA512 7ff7757baf6dee37f65a4fd214ffab1aa1434cfd1545deb4108fe2e9b0ed19d616880b2740a693b51ade0a4be998a671910b43cae26eb67fb97b16a513752cbc
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS -Denable-pkgconfig=0
+)
+
+vcpkg_install_cmake()
+
+# Copy fluidsynth.exe to tools dir
+file(COPY ${CURRENT_PACKAGES_DIR}/bin/fluidsynth.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/fluidsynth)
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/fluidsynth)
+
+# Remove unnecessary files
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/fluidsynth.exe)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/fluidsynth.exe)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/fluidsynth RENAME copyright)
diff --git a/ports/fmem/CONTROL b/ports/fmem/CONTROL
new file mode 100644
index 000000000..25f24652a
--- /dev/null
+++ b/ports/fmem/CONTROL
@@ -0,0 +1,3 @@
+Source: fmem
+Version: c-libs-2ccee3d2fb
+Description: A cross-platform library for opening memory-backed libc streams.
diff --git a/ports/fmem/portfile.cmake b/ports/fmem/portfile.cmake
new file mode 100644
index 000000000..b3b5faa83
--- /dev/null
+++ b/ports/fmem/portfile.cmake
@@ -0,0 +1,25 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO c-libs/fmem
+ REF 2ccee3d2fb2fc72370a9bb2131bfc9167e0d9022
+ SHA512 4a63332eb5df7f30bdad9e4233171b5c21dd2b092e525e9dcc4f602295ffff50c555c80fd74d964bc3daeffd8001a9b852f1769ef3161259dd8a3cae3ca3a4df
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_TESTING=OFF
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/fmem RENAME copyright)
diff --git a/ports/fmt/CONTROL b/ports/fmt/CONTROL
index 4e980b4d5..7cd59ab27 100644
--- a/ports/fmt/CONTROL
+++ b/ports/fmt/CONTROL
@@ -1,3 +1,3 @@
Source: fmt
-Version: 3.0.1-4
+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 959a0ebe7..36ab2ac3b 100644
--- a/ports/fmt/portfile.cmake
+++ b/ports/fmt/portfile.cmake
@@ -1,15 +1,11 @@
-#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/fmt-3.0.1)
-vcpkg_download_distfile(ARCHIVE_FILE
- URLS "https://github.com/fmtlib/fmt/archive/3.0.1.tar.gz"
- FILENAME "fmt-3.0.1.tar.gz"
- SHA512 daf5dfb2fe63eb611983fa248bd2182c6202cf1c4f0fc236f357040fce8e87ad531cdf59090306bb313ea333d546e516f467b385e05094e696d0ca091310aad6
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO fmtlib/fmt
+ REF 4.1.0
+ SHA512 8daaa4a61bfe63345a12df0a9bca0b1cd6a162d0f4e97d2d2978ae19a1a1357ec4d4cce948ce726cdbe9403e51ad995950a2a99de28f9b9085c02ce845540b22
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE_FILE})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
@@ -18,10 +14,8 @@ vcpkg_configure_cmake(
-DFMT_CMAKE_DIR=share/fmt
-DFMT_TEST=OFF
-DFMT_DOC=OFF
- -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
)
-
vcpkg_install_cmake()
file(INSTALL ${SOURCE_PATH}/LICENSE.rst DESTINATION ${CURRENT_PACKAGES_DIR}/share/fmt RENAME copyright)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
@@ -36,12 +30,8 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
file(WRITE ${CURRENT_PACKAGES_DIR}/include/fmt/format.h "${FMT_FORMAT_H}")
endif()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-#file(REMOVE ${CURRENT_PACKAGES_DIR}/include/fmt/format.cc)
-#file(REMOVE ${CURRENT_PACKAGES_DIR}/include/fmt/ostream.cc)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/share/fmt/fmt-targets-debug.cmake ${CURRENT_PACKAGES_DIR}/share/fmt/fmt-targets-debug.cmake)
-file(READ ${CURRENT_PACKAGES_DIR}/share/fmt/fmt-targets-debug.cmake FMT_DEBUG_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" FMT_DEBUG_MODULE "${FMT_DEBUG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/fmt/fmt-targets-debug.cmake "${FMT_DEBUG_MODULE}")
+
+vcpkg_fixup_cmake_targets()
file(READ ${CURRENT_PACKAGES_DIR}/share/fmt/fmt-targets-debug.cmake FMT_DEBUG_MODULE)
string(REPLACE "lib/fmt.dll" "bin/fmt.dll" FMT_DEBUG_MODULE ${FMT_DEBUG_MODULE})
diff --git a/ports/folly/CONTROL b/ports/folly/CONTROL
index f9a4a4329..658468f55 100644
--- a/ports/folly/CONTROL
+++ b/ports/folly/CONTROL
@@ -1,4 +1,29 @@
Source: folly
-Version: v2017.05.08.00-2
+Version: 2018.05.14.00
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: openssl, libevent, double-conversion, glog, gflags, boost-chrono, boost-context, boost-conversion, boost-crc, boost-date-time, boost-filesystem, boost-multi-index, boost-program-options, boost-regex, boost-system, boost-thread
+Default-Features: zlib
+
+Feature: zlib
+Build-Depends: zlib
+Description: Support zlib for compression
+
+Feature: bzip2
+Build-Depends: bzip2
+Description: Support bzip2 for compression
+
+Feature: lzma
+Build-Depends: liblzma
+Description: Support LZMA for compression
+
+Feature: zstd
+Build-Depends: zstd
+Description: Support zstd for compression
+
+Feature: snappy
+Build-Depends: snappy
+Description: Support Snappy for compression
+
+Feature: lz4
+Build-Depends: lz4
+Description: Support lz4 for compression
diff --git a/ports/folly/FindLZ4.cmake b/ports/folly/FindLZ4.cmake
new file mode 100644
index 000000000..f80962c66
--- /dev/null
+++ b/ports/folly/FindLZ4.cmake
@@ -0,0 +1,13 @@
+find_path(LZ4_INCLUDE_DIR lz4.h)
+
+find_library(LZ4_LIBRARY_DEBUG NAMES lz4d)
+find_library(LZ4_LIBRARY_RELEASE NAMES lz4)
+
+include(SelectLibraryConfigurations)
+select_library_configurations(LZ4)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(
+ LZ4 DEFAULT_MSG
+ LZ4_LIBRARY LZ4_INCLUDE_DIR
+)
diff --git a/ports/folly/FindSnappy.cmake b/ports/folly/FindSnappy.cmake
new file mode 100644
index 000000000..253d0d84c
--- /dev/null
+++ b/ports/folly/FindSnappy.cmake
@@ -0,0 +1,13 @@
+find_path(SNAPPY_INCLUDE_DIR snappy.h)
+
+find_library(SNAPPY_LIBRARY_DEBUG NAMES snappyd)
+find_library(SNAPPY_LIBRARY_RELEASE NAMES snappy)
+
+include(SelectLibraryConfigurations)
+select_library_configurations(SNAPPY)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(
+ SNAPPY DEFAULT_MSG
+ SNAPPY_LIBRARY SNAPPY_INCLUDE_DIR
+)
diff --git a/ports/folly/find-gflags.patch b/ports/folly/find-gflags.patch
new file mode 100644
index 000000000..986dd6d57
--- /dev/null
+++ b/ports/folly/find-gflags.patch
@@ -0,0 +1,13 @@
+diff --git a/CMake/folly-deps.cmake b/CMake/folly-deps.cmake
+index 396fa6c..9d80d99 100644
+--- a/CMake/folly-deps.cmake
++++ b/CMake/folly-deps.cmake
+@@ -22,7 +22,7 @@ list(APPEND FOLLY_LINK_LIBRARIES ${DOUBLE_CONVERSION_LIBRARY})
+ list(APPEND FOLLY_INCLUDE_DIRECTORIES ${DOUBLE_CONVERSION_INCLUDE_DIR})
+
+ set(FOLLY_HAVE_LIBGFLAGS OFF)
+-find_package(GFlags CONFIG QUIET)
++find_package(gflags CONFIG REQUIRED)
+ if (gflags_FOUND)
+ message(STATUS "Found gflags from package config")
+ set(FOLLY_HAVE_LIBGFLAGS ON)
diff --git a/ports/folly/fix-cmakelists.patch b/ports/folly/fix-cmakelists.patch
deleted file mode 100644
index 9f5700dbb..000000000
--- a/ports/folly/fix-cmakelists.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-diff --git a/CMake/folly-deps.cmake b/CMake/folly-deps.cmake
-index 211c6fbf..988225a2 100755
---- a/CMake/folly-deps.cmake
-+++ b/CMake/folly-deps.cmake
-@@ -11,8 +11,8 @@ find_package(Boost 1.55.0 MODULE
- REQUIRED
- )
- find_package(DoubleConversion MODULE REQUIRED)
--find_package(GFlags MODULE REQUIRED)
--find_package(GLog MODULE REQUIRED)
-+find_package(gflags CONFIG REQUIRED)
-+find_package(glog CONFIG REQUIRED)
- find_package(LibEvent MODULE REQUIRED)
- find_package(OpenSSL MODULE REQUIRED)
- find_package(PThread MODULE)
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 38886d65..4c796eac 100755
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,15 +1,8 @@
- cmake_minimum_required(VERSION 3.4.0 FATAL_ERROR)
-
--# Unfortunately, CMake doesn't easily provide us a way to merge static
--# libraries, which is what we want to do to generate the main folly library, so
--# we do a bit of a workaround here to inject a property into the generated
--# project files that will only get enabled for the folly target. Ugly, but
--# the alternatives are far, far worse.
- if ("${CMAKE_GENERATOR}" MATCHES "Visual Studio 15( 2017)? Win64")
-- set(CMAKE_GENERATOR_TOOLSET "v141</PlatformToolset></PropertyGroup><ItemDefinitionGroup Condition=\"'$(ProjectName)'=='folly'\"><ProjectReference><LinkLibraryDependencies>true</LinkLibraryDependencies></ProjectReference></ItemDefinitionGroup><PropertyGroup><PlatformToolset>v141")
- set(MSVC_IS_2017 ON)
- elseif ("${CMAKE_GENERATOR}" STREQUAL "Visual Studio 14 2015 Win64")
-- set(CMAKE_GENERATOR_TOOLSET "v140</PlatformToolset></PropertyGroup><ItemDefinitionGroup Condition=\"'$(ProjectName)'=='folly'\"><ProjectReference><LinkLibraryDependencies>true</LinkLibraryDependencies></ProjectReference></ItemDefinitionGroup><PropertyGroup><PlatformToolset>v140")
- set(MSVC_IS_2017 OFF)
- else()
- message(FATAL_ERROR "This build script only supports building Folly on 64-bit Windows with Visual Studio 2015 or Visual Studio 2017.")
-@@ -122,7 +115,8 @@ add_library(folly_base STATIC
- )
- auto_source_group(folly ${FOLLY_DIR} ${files} ${hfiles})
- apply_folly_compile_options_to_target(folly_base)
--target_include_directories(folly_base PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
-+target_include_directories(folly_base PUBLIC
-+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
- # Add the generated files to the correct source group.
- source_group("folly" FILES ${CMAKE_CURRENT_BINARY_DIR}/folly/folly-config.h)
- source_group("folly\\build" FILES
-@@ -133,10 +127,9 @@ source_group("folly\\build" FILES
- )
-
- target_include_directories(folly_base
-- PUBLIC
-+ PRIVATE
- ${DOUBLE_CONVERSION_INCLUDE_DIR}
- ${LIBGFLAGS_INCLUDE_DIR}
-- ${LIBGLOG_INCLUDE_DIR}
- ${LIBEVENT_INCLUDE_DIR}
- )
- target_link_libraries(folly_base
-@@ -151,13 +144,13 @@ target_link_libraries(folly_base
- ${DOUBLE_CONVERSION_LIBRARY}
- ${LIBEVENT_LIB}
- ${LIBGFLAGS_LIBRARY}
-- ${LIBGLOG_LIBRARY}
-+ glog::glog
- OpenSSL::SSL
- OpenSSL::Crypto
- Ws2_32.lib
- )
- if (FOLLY_HAVE_PTHREAD)
-- target_include_directories(folly_base PUBLIC ${LIBPTHREAD_INCLUDE_DIRS})
-+ target_include_directories(folly_base PRIVATE ${LIBPTHREAD_INCLUDE_DIRS})
- target_link_libraries(folly_base PUBLIC ${LIBPTHREAD_LIBRARIES})
- endif()
-
-@@ -199,13 +192,10 @@ add_library(folly ${CMAKE_CURRENT_BINARY_DIR}/folly_dep.cpp)
- apply_folly_compile_options_to_target(folly)
- source_group("" FILES ${CMAKE_CURRENT_BINARY_DIR}/folly_dep.cpp)
-
--# Rather than list the dependencies in two places, we apply them directly on
--# the folly_base target and then copy them over to the folly target.
--get_target_property(FOLLY_LINK_LIBRARIES folly_base INTERFACE_LINK_LIBRARIES)
--target_link_libraries(folly PUBLIC ${FOLLY_LINK_LIBRARIES})
-+target_link_libraries(folly PUBLIC folly_base)
- target_include_directories(folly PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
-
--install(TARGETS folly
-+install(TARGETS folly folly_base
- EXPORT folly
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION lib
diff --git a/ports/folly/fix-generators.patch b/ports/folly/fix-generators.patch
deleted file mode 100644
index e774b8c6b..000000000
--- a/ports/folly/fix-generators.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4c796ea..684f48f 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,13 +1,5 @@
- cmake_minimum_required(VERSION 3.4.0 FATAL_ERROR)
-
--if ("${CMAKE_GENERATOR}" MATCHES "Visual Studio 15( 2017)? Win64")
-- set(MSVC_IS_2017 ON)
--elseif ("${CMAKE_GENERATOR}" STREQUAL "Visual Studio 14 2015 Win64")
-- set(MSVC_IS_2017 OFF)
--else()
-- message(FATAL_ERROR "This build script only supports building Folly on 64-bit Windows with Visual Studio 2015 or Visual Studio 2017.")
--endif()
--
- # includes
- set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
- include_directories(${CMAKE_CURRENT_SOURCE_DIR})
-@@ -24,10 +16,14 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
-
- project(${PACKAGE_NAME} CXX)
-
--# Check architecture OS
--if (NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
-- message(FATAL_ERROR "Folly requires a 64bit OS")
-+if (NOT MSVC_VERSION LESS 1910)
-+ set(MSVC_IS_2017 ON)
-+elseif (NOT MSVC_VERSION LESS 1900)
-+ set(MSVC_IS_2017 OFF)
-+else()
-+ message(FATAL_ERROR "This build script only supports building Folly on 64-bit Windows with Visual Studio 2015 or Visual Studio 2017.")
- endif()
-+
- if(NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
- message(FATAL_ERROR "You should only be using CMake to build Folly if you are on Windows!")
- endif()
diff --git a/ports/folly/portfile.cmake b/ports/folly/portfile.cmake
index 6d5ce8d25..9dce4f14e 100644
--- a/ports/folly/portfile.cmake
+++ b/ports/folly/portfile.cmake
@@ -17,16 +17,19 @@ set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO facebook/folly
- REF v2017.05.08.00
- SHA512 1f689ec288e2a5de28223bddd68fdbb37c26c46ed9d9b831cacc46580788b9bf8eed151a043a4905172e509c70ed3d845689bf2c0cd45ce05fbe76907e2049aa
+ REF v2018.05.14.00
+ SHA512 ea03bdd239a637729aa863034f2ff679fcb5b982d0ebb015d45b84317afa0faec31595a2069b6553e1cc265272783926e370888f046b8d0bbd7833af2b985cb1
HEAD_REF master
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/find-gflags.patch
)
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch"
- PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-generators.patch"
+file(COPY
+ ${CMAKE_CURRENT_LIST_DIR}/FindLZ4.cmake
+ ${CMAKE_CURRENT_LIST_DIR}/FindSnappy.cmake
+ DESTINATION ${SOURCE_PATH}/CMake/
)
+file(REMOVE ${SOURCE_PATH}/CMake/FindGFlags.cmake)
if(VCPKG_CRT_LINKAGE STREQUAL static)
set(MSVC_USE_STATIC_RUNTIME ON)
@@ -34,22 +37,42 @@ else()
set(MSVC_USE_STATIC_RUNTIME OFF)
endif()
+set(FEATURE_OPTIONS)
+
+macro(feature FEATURENAME PACKAGENAME)
+ if("${FEATURENAME}" IN_LIST FEATURES)
+ list(APPEND FEATURE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_${PACKAGENAME}=OFF)
+ else()
+ list(APPEND FEATURE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_${PACKAGENAME}=ON)
+ endif()
+endmacro()
+
+feature(zlib ZLIB)
+feature(bzip2 BZip2)
+feature(lzma LibLZMA)
+feature(lz4 LZ4)
+feature(zstd Zstd)
+feature(snappy Snappy)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DMSVC_USE_STATIC_RUNTIME=${MSVC_USE_STATIC_RUNTIME}
+ -DCMAKE_DISABLE_FIND_PACKAGE_LibDwarf=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_Libiberty=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_LibAIO=ON
+ -DLIBAIO_FOUND=OFF
+ -DLIBURCU_FOUND=OFF
+ -DCMAKE_DISABLE_FIND_PACKAGE_LibURCU=ON
+ ${FEATURE_OPTIONS}
)
-# Folly runs built executables during the build, so they need access to the installed DLLs.
-# TODO: Confirm it's ok that we aren't adding the debug/bin folder.
-set(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin")
-
-vcpkg_install_cmake(MSVC_64_TOOLSET)
+vcpkg_install_cmake(ADD_BIN_TO_PATH)
vcpkg_copy_pdbs()
-vcpkg_fixup_cmake_targets()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/folly)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/fontconfig/CMakeLists.txt b/ports/fontconfig/CMakeLists.txt
index ff1af1955..e32af9cbd 100644
--- a/ports/fontconfig/CMakeLists.txt
+++ b/ports/fontconfig/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.0)
-project(fontconfig)
+project(fontconfig C)
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS)
add_definitions(-FI"${FC_INCLUDE_DIR}/config.h")
@@ -45,6 +45,8 @@ add_library(fontconfig
src/fcxml.c
src/ftglue.c)
+set_target_properties(fontconfig PROPERTIES DEFINE_SYMBOL "FcPublic=__declspec(dllexport)")
+
target_include_directories(fontconfig PRIVATE .
${FC_INCLUDE_DIR}
${FREETYPE_INCLUDE_DIR}
diff --git a/ports/fontconfig/CONTROL b/ports/fontconfig/CONTROL
index ecb371f15..f81a2ddd6 100644
--- a/ports/fontconfig/CONTROL
+++ b/ports/fontconfig/CONTROL
@@ -1,4 +1,4 @@
Source: fontconfig
-Version: 2.12.1
+Version: 2.12.4-1
Description: Library for configuring and customizing font access.
-Build-Depends: freetype, expat, libiconv
+Build-Depends: freetype, expat, libiconv, dirent
diff --git a/ports/fontconfig/include/config.h b/ports/fontconfig/include/config.h
index 8f21dda01..0fbdead6e 100644
--- a/ports/fontconfig/include/config.h
+++ b/ports/fontconfig/include/config.h
@@ -1,9 +1,21 @@
+/* config.h. Generated from config.h.in by configure. */
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
#define FC_CACHEDIR "./"
/* The normal alignment of `double', in bytes. */
#define ALIGNOF_DOUBLE 8
+/* The normal alignment of `void *', in bytes. */
+#if defined(_WIN64)
+#define ALIGNOF_VOID_P 8
+#else
+#define ALIGNOF_VOID_P 4
+#endif
+
/* Use libxml2 instead of Expat */
/* #undef ENABLE_LIBXML2 */
@@ -14,7 +26,10 @@
/* #undef FC_ARCHITECTURE */
/* System font directory */
-#define FC_DEFAULT_FONTS "c:/windows/fonts"
+#define FC_DEFAULT_FONTS "WINDOWSFONTDIR"
+
+/* The type of len parameter of the gperf hash/lookup function */
+#define FC_GPERF_SIZE_T size_t
/* Define to nothing if C supports flexible array members, and to 1 if it does
not. That way, with a declaration like `struct s { int n; double
@@ -137,13 +152,6 @@
/* Define to 1 if you have the `readlink' function. */
/* #undef HAVE_READLINK */
-/* Define to 1 if you have the 'scandir' function. */
-/* #undef HAVE_SCANDIR */
-
-/* Define to 1 if you have the 'scandir' function with int (* compar)(const
- void *, const void *) */
-/* #undef HAVE_SCANDIR_VOID_P */
-
/* Define to 1 if you have the <sched.h> header file. */
/* #undef HAVE_SCHED_H */
@@ -160,7 +168,7 @@
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
-/* #undef HAVE_STRINGS_H */
+#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
@@ -168,9 +176,6 @@
/* Define to 1 if `d_type' is a member of `struct dirent'. */
/* #undef HAVE_STRUCT_DIRENT_D_TYPE */
-/* Define to 1 if `st_mtim' is a member of `struct stat'. */
-/* #undef HAVE_STRUCT_STAT_ST_MTIM */
-
/* Define to 1 if `f_flags' is a member of `struct statfs'. */
/* #undef HAVE_STRUCT_STATFS_F_FLAGS */
@@ -183,6 +188,9 @@
/* Define to 1 if `f_fstypename' is a member of `struct statvfs'. */
/* #undef HAVE_STRUCT_STATVFS_F_FSTYPENAME */
+/* Define to 1 if `st_mtim' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_MTIM */
+
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_DIR_H */
@@ -190,8 +198,7 @@
/* Define to 1 if you have the <sys/mount.h> header file. */
/* #undef HAVE_SYS_MOUNT_H */
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
- */
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'. */
/* #undef HAVE_SYS_NDIR_H */
/* Define to 1 if you have the <sys/param.h> header file. */
@@ -200,6 +207,9 @@
/* Define to 1 if you have the <sys/statfs.h> header file. */
/* #undef HAVE_SYS_STATFS_H */
+/* Define to 1 if you have the <sys/statvfs.h> header file. */
+/* #undef HAVE_SYS_STATVFS_H */
+
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
@@ -210,10 +220,10 @@
/* #undef HAVE_SYS_VFS_H */
/* Define to 1 if `usLowerOpticalPointSize' is a member of `TT_OS2'. */
-/* #undef HAVE_TT_OS2_USLOWEROPTICALPOINTSIZE */
+#define HAVE_TT_OS2_USLOWEROPTICALPOINTSIZE 1
/* Define to 1 if `usUpperOpticalPointSize' is a member of `TT_OS2'. */
-/* #undef HAVE_TT_OS2_USUPPEROPTICALPOINTSIZE */
+#define HAVE_TT_OS2_USUPPEROPTICALPOINTSIZE 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
@@ -233,24 +243,49 @@
/* Define to 1 if you have the `_mktemp_s' function. */
#define HAVE__MKTEMP_S 1
-/* Define to necessary symbol if this constant
- uses a non-standard name on
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
+/* Name of package */
+#define PACKAGE "fontconfig"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "fontconfig"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "fontconfig 2.12.3"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "fontconfig"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "2.12.3"
+
+/* Define to necessary symbol if this constant uses a non-standard name on
your system. */
/* #undef PTHREAD_CREATE_JOINABLE */
/* The size of `char', as computed by sizeof. */
-#define SIZEOF_CHAR 1
+/* #undef SIZEOF_CHAR */
/* The size of `int', as computed by sizeof. */
-#define SIZEOF_INT 4
+/* #undef SIZEOF_INT */
/* The size of `long', as computed by sizeof. */
-#define SIZEOF_LONG 4
+/* #undef SIZEOF_LONG */
/* The size of `short', as computed by sizeof. */
-#define SIZEOF_SHORT 2
+/* #undef SIZEOF_SHORT */
/* The size of `void*', as computed by sizeof. */
+/* #undef SIZEOF_VOIDP */
+
/* The size of `void *', as computed by sizeof. */
#if defined(_WIN64)
#define SIZEOF_VOIDP 8
@@ -264,4 +299,76 @@
#define STDC_HEADERS 1
/* Use iconv. */
-#define USE_ICONV 1 \ No newline at end of file
+#define USE_ICONV 1
+
+/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable threading extensions on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+
+
+/* Version number of package */
+#define VERSION "2.12.3"
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* # undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Enable large inode numbers on Mac OS X 10.5. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#define _FILE_OFFSET_BITS 64
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* Define to 1 if on MINIX. */
+/* #undef _MINIX */
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+ this defined. */
+/* #undef _POSIX_1_SOURCE */
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+/* #undef _POSIX_SOURCE */
+
+/* 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
+/* #undef inline */
+#endif
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef pid_t */
+
+#include "config-fixups.h"
diff --git a/ports/fontconfig/include/fcobjshash.h b/ports/fontconfig/include/fcobjshash.h
index 1fe860a2f..15829e873 100644
--- a/ports/fontconfig/include/fcobjshash.h
+++ b/ports/fontconfig/include/fcobjshash.h
@@ -1,5 +1,5 @@
/* ANSI-C code produced by gperf version 3.0.4 */
-/* Command-line: gperf -m 100 src/fcobjshash.gperf */
+/* Command-line: gperf -m 100 fcobjshash.gperf */
/* Computed positions: -k'2-3' */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -29,9 +29,9 @@
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
#endif
-#line 1 "src/fcobjshash.gperf"
+#line 1 "fcobjshash.gperf"
-#line 13 "src/fcobjshash.gperf"
+#line 13 "fcobjshash.gperf"
struct FcObjectTypeInfo {
int name;
int id;
@@ -47,7 +47,7 @@ inline
#endif
#endif
static unsigned int
-FcObjectTypeHash (register const char *str, register unsigned int len)
+FcObjectTypeHash (register const char *str, register FC_GPERF_SIZE_T len)
{
static const unsigned char asso_values[] =
{
@@ -191,7 +191,7 @@ __attribute__ ((__gnu_inline__))
#endif
#endif
const struct FcObjectTypeInfo *
-FcObjectTypeLookup (register const char *str, register unsigned int len)
+FcObjectTypeLookup (register const char *str, register FC_GPERF_SIZE_T len)
{
enum
{
@@ -205,106 +205,106 @@ FcObjectTypeLookup (register const char *str, register unsigned int len)
static const struct FcObjectTypeInfo wordlist[] =
{
{-1}, {-1}, {-1}, {-1},
-#line 38 "src/fcobjshash.gperf"
+#line 38 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str4,FC_FILE_OBJECT},
-#line 64 "src/fcobjshash.gperf"
+#line 64 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str5,FC_COLOR_OBJECT},
{-1},
-#line 31 "src/fcobjshash.gperf"
+#line 31 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str7,FC_FOUNDRY_OBJECT},
-#line 22 "src/fcobjshash.gperf"
+#line 22 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str8,FC_FULLNAME_OBJECT},
-#line 29 "src/fcobjshash.gperf"
+#line 29 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str9,FC_PIXEL_SIZE_OBJECT},
-#line 61 "src/fcobjshash.gperf"
+#line 61 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str10,FC_PRGNAME_OBJECT},
{-1},
-#line 23 "src/fcobjshash.gperf"
+#line 23 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str12,FC_FULLNAMELANG_OBJECT},
-#line 37 "src/fcobjshash.gperf"
+#line 37 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str13,FC_GLOBAL_ADVANCE_OBJECT},
-#line 63 "src/fcobjshash.gperf"
+#line 63 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str14,FC_POSTSCRIPT_NAME_OBJECT},
{-1},
-#line 34 "src/fcobjshash.gperf"
+#line 34 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str16,FC_HINTING_OBJECT},
-#line 46 "src/fcobjshash.gperf"
+#line 46 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str17,FC_MINSPACE_OBJECT},
-#line 33 "src/fcobjshash.gperf"
+#line 33 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str18,FC_HINT_STYLE_OBJECT},
-#line 54 "src/fcobjshash.gperf"
+#line 54 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str19,FC_FONTFORMAT_OBJECT},
-#line 52 "src/fcobjshash.gperf"
+#line 52 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str20,FC_FONTVERSION_OBJECT},
-#line 60 "src/fcobjshash.gperf"
+#line 60 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str21,FC_FONT_FEATURES_OBJECT},
-#line 41 "src/fcobjshash.gperf"
+#line 41 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str22,FC_OUTLINE_OBJECT},
-#line 36 "src/fcobjshash.gperf"
+#line 36 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str23,FC_AUTOHINT_OBJECT},
-#line 43 "src/fcobjshash.gperf"
+#line 43 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str24,FC_DPI_OBJECT},
-#line 62 "src/fcobjshash.gperf"
+#line 62 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str25,FC_HASH_OBJECT},
-#line 24 "src/fcobjshash.gperf"
+#line 24 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str26,FC_SLANT_OBJECT},
-#line 28 "src/fcobjshash.gperf"
+#line 28 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str27,FC_ASPECT_OBJECT},
-#line 27 "src/fcobjshash.gperf"
+#line 27 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str28,FC_SIZE_OBJECT},
-#line 45 "src/fcobjshash.gperf"
+#line 45 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str29,FC_SCALE_OBJECT},
-#line 65 "src/fcobjshash.gperf"
+#line 65 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str30,FC_SYMBOL_OBJECT},
-#line 40 "src/fcobjshash.gperf"
+#line 40 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str31,FC_RASTERIZER_OBJECT},
-#line 42 "src/fcobjshash.gperf"
+#line 42 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str32,FC_SCALABLE_OBJECT},
-#line 32 "src/fcobjshash.gperf"
+#line 32 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str33,FC_ANTIALIAS_OBJECT},
-#line 51 "src/fcobjshash.gperf"
+#line 51 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str34,FC_LANG_OBJECT},
-#line 20 "src/fcobjshash.gperf"
+#line 20 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str35,FC_STYLE_OBJECT},
-#line 18 "src/fcobjshash.gperf"
+#line 18 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str36,FC_FAMILY_OBJECT},
-#line 44 "src/fcobjshash.gperf"
+#line 44 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str37,FC_RGBA_OBJECT},
-#line 59 "src/fcobjshash.gperf"
+#line 59 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str38,FC_NAMELANG_OBJECT},
-#line 21 "src/fcobjshash.gperf"
+#line 21 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str39,FC_STYLELANG_OBJECT},
-#line 19 "src/fcobjshash.gperf"
+#line 19 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str40,FC_FAMILYLANG_OBJECT},
-#line 26 "src/fcobjshash.gperf"
+#line 26 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str41,FC_WIDTH_OBJECT},
-#line 49 "src/fcobjshash.gperf"
+#line 49 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str42,FC_MATRIX_OBJECT},
-#line 50 "src/fcobjshash.gperf"
+#line 50 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str43,FC_CHARSET_OBJECT},
{-1},
-#line 47 "src/fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_CHAR_WIDTH_OBJECT},
-#line 48 "src/fcobjshash.gperf"
+#line 47 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_CHARWIDTH_OBJECT},
+#line 48 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str46,FC_CHAR_HEIGHT_OBJECT},
-#line 55 "src/fcobjshash.gperf"
+#line 55 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str47,FC_EMBOLDEN_OBJECT},
-#line 58 "src/fcobjshash.gperf"
+#line 58 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str48,FC_LCD_FILTER_OBJECT},
-#line 30 "src/fcobjshash.gperf"
+#line 30 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str49,FC_SPACING_OBJECT},
-#line 39 "src/fcobjshash.gperf"
+#line 39 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str50,FC_INDEX_OBJECT},
-#line 25 "src/fcobjshash.gperf"
+#line 25 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str51,FC_WEIGHT_OBJECT},
-#line 53 "src/fcobjshash.gperf"
+#line 53 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str52,FC_CAPABILITY_OBJECT},
-#line 56 "src/fcobjshash.gperf"
+#line 56 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str53,FC_EMBEDDED_BITMAP_OBJECT},
{-1}, {-1}, {-1}, {-1},
-#line 57 "src/fcobjshash.gperf"
+#line 57 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str58,FC_DECORATIVE_OBJECT},
-#line 35 "src/fcobjshash.gperf"
+#line 35 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str59,FC_VERTICAL_LAYOUT_OBJECT}
};
diff --git a/ports/fontconfig/include/fcstdint.h b/ports/fontconfig/include/fcstdint.h
index 1a8be6ef0..e317b2aa4 100644
--- a/ports/fontconfig/include/fcstdint.h
+++ b/ports/fontconfig/include/fcstdint.h
@@ -1,7 +1,8 @@
#ifndef _FONTCONFIG_SRC_FCSTDINT_H
#define _FONTCONFIG_SRC_FCSTDINT_H 1
#ifndef _GENERATED_STDINT_H
-#define _GENERATED_STDINT_H "fontconfig 2.12.1"
+#define _GENERATED_STDINT_H "fontconfig 2.12.3"
+/* generated using gnu compiler gcc.exe (Rev3, Built by MSYS2 project) 6.3.0 */
#define _STDINT_HAVE_STDINT_H 1
#include <stdint.h>
#endif
diff --git a/ports/fontconfig/portfile.cmake b/ports/fontconfig/portfile.cmake
index 8755ad733..f3bc3e2ef 100644
--- a/ports/fontconfig/portfile.cmake
+++ b/ports/fontconfig/portfile.cmake
@@ -1,30 +1,19 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/fontconfig-2.12.1)
+set(FONTCONFIG_VERSION 2.12.4)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/fontconfig-${FONTCONFIG_VERSION})
vcpkg_download_distfile(ARCHIVE
- URLS "https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.12.1.tar.gz"
- FILENAME "fontconfig-2.12.1.tar.gz"
- SHA512 0959a80522e09551e49ec7b2383b7dfb319d4e1c058ad0b55bb35d3f675acbb7ff08c9c30a8798b731070687f84dd3d2ff7e28aafac6ecfa9d3f85c5847c0955)
-
-# Download single-header implementation of dirent API for Windows and it's license
-vcpkg_download_distfile(DIRENT_H
- URLS "https://raw.githubusercontent.com/tronkko/dirent/8b1db5092479a73d47eafd3de739b27e876e6bf3/include/dirent.h"
- FILENAME "fontconfig-dirent.h"
- SHA512 dc9e63fd9cf4ccffdc052f92933633ef9d09dfcfe3b1d15f1f32c99349babd36a62d02283e3d8ba7766d92817be015eb211f11efc4fa52cc90d532a34d1ae785)
-vcpkg_download_distfile(DIRENT_LICENSE
- URLS "https://raw.githubusercontent.com/tronkko/dirent/8b1db5092479a73d47eafd3de739b27e876e6bf3/LICENSE"
- FILENAME "fontconfig-dirent-license"
- SHA512 58c294f80b679252dbee9687ff6bda660fe1ed6f94506e1b9edc19358de98b274b25b3697bdcd34becb28a4f186c6d321a16ab616164e2fb378b37357fc71e4f)
+ URLS "https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG_VERSION}.tar.gz"
+ FILENAME "fontconfig-${FONTCONFIG_VERSION}.tar.gz"
+ SHA512 2be3ee0e8e0e3b62571135a3cae06e456c289dd1ad40ef2a7c780406418ee5efce863a833eca5a8ef55bc737a0ea04ef562bba6fd27e174ae43e42131b52810d)
vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
-file(COPY ${DIRENT_H} DESTINATION ${SOURCE_PATH})
-file(RENAME ${SOURCE_PATH}/fontconfig-dirent.h ${SOURCE_PATH}/dirent.h)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
- -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
-DFC_INCLUDE_DIR=${CMAKE_CURRENT_LIST_DIR}/include
OPTIONS_DEBUG
-DFC_SKIP_TOOLS=ON
@@ -33,7 +22,13 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
vcpkg_copy_pdbs()
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ foreach(HEADER fcfreetype.h fontconfig.h)
+ file(READ ${CURRENT_PACKAGES_DIR}/include/fontconfig/${HEADER} FC_HEADER)
+ string(REPLACE "#define FcPublic" "#define FcPublic __declspec(dllimport)" FC_HEADER "${FC_HEADER}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/fontconfig/${HEADER} "${FC_HEADER}")
+ endforeach()
+endif()
+
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/fontconfig)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/fontconfig/COPYING ${CURRENT_PACKAGES_DIR}/share/fontconfig/copyright)
-file(COPY ${DIRENT_LICENSE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/fontconfig)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/fontconfig/fontconfig-dirent-license ${CURRENT_PACKAGES_DIR}/share/fontconfig/dirent-for-vs-copyright)
diff --git a/ports/forest/CONTROL b/ports/forest/CONTROL
new file mode 100644
index 000000000..ba9d0f53b
--- /dev/null
+++ b/ports/forest/CONTROL
@@ -0,0 +1,3 @@
+Source: forest
+Version: 7.0.7
+Description: Template library of tree data structures
diff --git a/ports/forest/portfile.cmake b/ports/forest/portfile.cmake
new file mode 100644
index 000000000..c9975bbb0
--- /dev/null
+++ b/ports/forest/portfile.cmake
@@ -0,0 +1,15 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO xorz57/forest
+ REF 7.0.7
+ SHA512 23488008d92736b4d1460cca95216918085071bf107356989158752faac14248a81a35e0acfd7e119895006304c0e3dda86174e551e87f588c62c1f264168d63
+ HEAD_REF master
+)
+
+# Handle headers
+file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.h")
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/forest RENAME copyright)
diff --git a/ports/freeglut/CONTROL b/ports/freeglut/CONTROL
index 00680a773..8baaba1dc 100644
--- a/ports/freeglut/CONTROL
+++ b/ports/freeglut/CONTROL
@@ -1,3 +1,3 @@
Source: freeglut
-Version: 3.0.0
-Description: Open source implementation of GLUT with source and binary backwards compatibility. \ No newline at end of file
+Version: 3.0.0-4
+Description: Open source implementation of GLUT with source and binary backwards compatibility.
diff --git a/ports/freeglut/portfile.cmake b/ports/freeglut/portfile.cmake
index 929d8b9e4..913fc90ff 100644
--- a/ports/freeglut/portfile.cmake
+++ b/ports/freeglut/portfile.cmake
@@ -7,6 +7,16 @@ vcpkg_download_distfile(ARCHIVE
)
vcpkg_extract_source_archive(${ARCHIVE})
+if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message("Freeglut currently requires the following libraries from the system package manager:\n opengl\n glu\n libx11\n\nThese can be installed on Ubuntu systems via apt-get install libxi-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev")
+endif()
+
+# disable debug suffix, because FindGLUT.cmake from CMake 3.8 doesn't support it
+file(READ ${SOURCE_PATH}/CMakeLists.txt FREEGLUT_CMAKELISTS)
+string(REPLACE "SET( CMAKE_DEBUG_POSTFIX \"d\" )"
+ "\#SET( CMAKE_DEBUG_POSTFIX \"d\" )" FREEGLUT_CMAKELISTS "${FREEGLUT_CMAKELISTS}")
+file(WRITE ${SOURCE_PATH}/CMakeLists.txt "${FREEGLUT_CMAKELISTS}")
+
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
set(FREEGLUT_STATIC OFF)
set(FREEGLUT_DYNAMIC ON)
@@ -26,10 +36,28 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
+# Patch header
+file(READ ${CURRENT_PACKAGES_DIR}/include/GL/freeglut_std.h FREEGLUT_STDH)
+string(REPLACE "pragma comment (lib, \"freeglut_staticd.lib\")"
+ "pragma comment (lib, \"freeglut.lib\")" FREEGLUT_STDH "${FREEGLUT_STDH}")
+string(REPLACE "pragma comment (lib, \"freeglutd.lib\")"
+ "pragma comment (lib, \"freeglut.lib\")" FREEGLUT_STDH "${FREEGLUT_STDH}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/GL/freeglut_std.h "${FREEGLUT_STDH}")
+
+# Rename static lib (otherwise it's incompatible with FindGLUT.cmake)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/freeglut_static.lib ${CURRENT_PACKAGES_DIR}/lib/freeglut.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/freeglut_static.lib ${CURRENT_PACKAGES_DIR}/debug/lib/freeglut.lib)
+ endif()
+endif()
+
+# Clean
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/freeglut)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/freeglut/COPYING ${CURRENT_PACKAGES_DIR}/share/freeglut/copyright)
-vcpkg_copy_pdbs() \ No newline at end of file
+vcpkg_copy_pdbs()
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/freeglut/usage b/ports/freeglut/usage
new file mode 100644
index 000000000..40e214fde
--- /dev/null
+++ b/ports/freeglut/usage
@@ -0,0 +1,4 @@
+The package freeglut is compatible with built-in CMake targets:
+
+ find_package(GLUT REQUIRED)
+ target_link_libraries(main PRIVATE GLUT::GLUT)
diff --git a/ports/freeimage/CMakeLists.txt b/ports/freeimage/CMakeLists.txt
index 1cafdd880..9f4f1677b 100644
--- a/ports/freeimage/CMakeLists.txt
+++ b/ports/freeimage/CMakeLists.txt
@@ -16,6 +16,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
find_package(WEBP REQUIRED)
find_package(JXR REQUIRED)
find_package(LibRaw REQUIRED)
+find_package(OpenEXR REQUIRED)
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(INSTALL_HEADERS "Install the development headers" ON)
@@ -24,35 +25,6 @@ set(REAL_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Source)
# Add a debug postfix
set(CMAKE_DEBUG_POSTFIX "d")
-
-# For now the internal copy of OpenEXR is used (as a private always static library)
-file(GLOB OPENEXR_PRIVATE_HEADERS ${REAL_SOURCE_DIR}/OpenEXR/Half/*.h
- ${REAL_SOURCE_DIR}/OpenEXR/Iex/*.h
- ${REAL_SOURCE_DIR}/OpenEXR/IexMath/*.h
- ${REAL_SOURCE_DIR}/OpenEXR/IlmImf/*.h
- ${REAL_SOURCE_DIR}/OpenEXR/IlmThread/*.h
- ${REAL_SOURCE_DIR}/OpenEXR/Imath/*.h
- ${REAL_SOURCE_DIR}/OpenEXR/*.h)
-
-file(GLOB OPENEXR_SRCS ${REAL_SOURCE_DIR}/OpenEXR/Half/*.cpp
- ${REAL_SOURCE_DIR}/OpenEXR/Iex/*.cpp
- ${REAL_SOURCE_DIR}/OpenEXR/IexMath/*.cpp
- ${REAL_SOURCE_DIR}/OpenEXR/IlmImf/*.cpp
- ${REAL_SOURCE_DIR}/OpenEXR/IlmThread/*.cpp
- ${REAL_SOURCE_DIR}/OpenEXR/Imath/*.cpp)
-
-add_library(FreeImage_Private_OpenEXR STATIC ${OPENEXR_PRIVATE_HEADERS} ${OPENEXR_SRCS})
-
-set(FreeImage_Private_OpenEXR_INCLUDE_DIRS ${REAL_SOURCE_DIR}/OpenEXR
- ${REAL_SOURCE_DIR}/OpenEXR/Half
- ${REAL_SOURCE_DIR}/OpenEXR/Iex
- ${REAL_SOURCE_DIR}/OpenEXR/IexMath
- ${REAL_SOURCE_DIR}/OpenEXR/IlmImf
- ${REAL_SOURCE_DIR}/OpenEXR/IlmThread
- ${REAL_SOURCE_DIR}/OpenEXR/Imath)
-
-target_include_directories(FreeImage_Private_OpenEXR PRIVATE ${FreeImage_Private_OpenEXR_INCLUDE_DIRS}
- ${ZLIB_INCLUDE_DIRS})
# List the public header files
set(PUBLIC_HEADERS ${REAL_SOURCE_DIR}/FreeImage.h)
@@ -100,7 +72,7 @@ set(SRCS ${DEPRECATION_SRCS}
# define (to nothing instead of _declspec(dllimport) ) the DLL_API macro.
# For this purpouse we include (depending on the BUILD_SHARED_LIBS )
# the appropriate FreeImageConfig.h .
-if(${BUILD_SHARED_LIBS})
+if(BUILD_SHARED_LIBS)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/FreeImageConfig-dynamic.h ${CMAKE_CURRENT_BINARY_DIR}/FreeImageConfig.h)
else()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/FreeImageConfig-static.h ${CMAKE_CURRENT_BINARY_DIR}/FreeImageConfig.h)
@@ -109,7 +81,7 @@ list(APPEND PUBLIC_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/FreeImageConfig.h)
add_library(FreeImage ${SRCS} ${PRIVATE_HEADERS} ${PUBLIC_HEADERS})
-if(${BUILD_SHARED_LIBS})
+if(BUILD_SHARED_LIBS)
target_compile_definitions(FreeImage PRIVATE -DFREEIMAGE_EXPORTS)
else()
target_compile_definitions(FreeImage PRIVATE -DFREEIMAGE_LIB)
@@ -124,7 +96,7 @@ target_include_directories(FreeImage PRIVATE ${REAL_SOURCE_DIR}
${WEBP_INCLUDE_DIRS}
${JXR_INCLUDE_DIRS}
${LibRaw_INCLUDE_DIRS}
- ${FreeImage_Private_OpenEXR_INCLUDE_DIRS}
+ ${OpenEXR_INCLUDE_DIRS}
${CMAKE_CURRENT_BINARY_DIR})
@@ -136,7 +108,7 @@ target_link_libraries(FreeImage ${ZLIB_LIBRARIES}
${WEBP_LIBRARIES}
${JXR_LIBRARIES}
${LibRaw_LIBRARIES}
- FreeImage_Private_OpenEXR)
+ ${OpenEXR_LIBRARIES})
target_compile_definitions(FreeImage PRIVATE ${PNG_DEFINITIONS})
@@ -147,7 +119,7 @@ add_library(FreeImagePlus
${CMAKE_CURRENT_SOURCE_DIR}/Wrapper/FreeImagePlus/FreeImagePlus.h
${CMAKE_CURRENT_SOURCE_DIR}/Wrapper/FreeImagePlus/FreeImagePlus.rc)
-if(${BUILD_SHARED_LIBS})
+if(BUILD_SHARED_LIBS)
target_compile_definitions(FreeImagePlus PRIVATE -DFIP_EXPORTS)
else()
target_compile_definitions(FreeImagePlus PRIVATE -DFREEIMAGE_LIB)
diff --git a/ports/freeimage/CONTROL b/ports/freeimage/CONTROL
index 9eb197b10..6e8de82fc 100644
--- a/ports/freeimage/CONTROL
+++ b/ports/freeimage/CONTROL
@@ -1,4 +1,4 @@
Source: freeimage
-Version: 3.17.0-1
-Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openjpeg, libwebp, libraw, jxrlib
+Version: 3.17.0-4
+Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openjpeg, libwebp, libraw, jxrlib, openexr
Description: Support library for graphics image formats
diff --git a/ports/freeimage/FreeImageConfig-dynamic.h b/ports/freeimage/FreeImageConfig-dynamic.h
index d87b65b4c..41dcf57d9 100644
--- a/ports/freeimage/FreeImageConfig-dynamic.h
+++ b/ports/freeimage/FreeImageConfig-dynamic.h
@@ -1,5 +1,6 @@
#ifndef FREEIMAGE_CONFIG_H
#define FREEIMAGE_CONFIG_H
+#undef FREEIMAGE_LIB
#endif
diff --git a/ports/freeimage/cmake/FindOpenEXR.cmake b/ports/freeimage/cmake/FindOpenEXR.cmake
new file mode 100644
index 000000000..beca25145
--- /dev/null
+++ b/ports/freeimage/cmake/FindOpenEXR.cmake
@@ -0,0 +1,28 @@
+find_path(OpenEXR_INCLUDE_DIRS OpenEXR/OpenEXRConfig.h)
+
+file(STRINGS "${OpenEXR_INCLUDE_DIRS}/OpenEXR/OpenEXRConfig.h" OPENEXR_CONFIG_H)
+
+string(REGEX REPLACE "^.*define OPENEXR_VERSION_MAJOR ([0-9]+).*$" "\\1" OpenEXR_VERSION_MAJOR "${OPENEXR_CONFIG_H}")
+string(REGEX REPLACE "^.*define OPENEXR_VERSION_MINOR ([0-9]+).*$" "\\1" OpenEXR_VERSION_MINOR "${OPENEXR_CONFIG_H}")
+set(OpenEXR_LIB_SUFFIX "${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}")
+
+find_library(OpenEXR_LIBRARY IlmImf-${OpenEXR_LIB_SUFFIX})
+find_library(OpenEXR_UTIL_LIBRARY IlmImfUtil-${OpenEXR_LIB_SUFFIX})
+
+find_library(OpenEXR_HALF_LIBRARY Half)
+find_library(OpenEXR_IEX_LIBRARY Iex-${OpenEXR_LIB_SUFFIX})
+find_library(OpenEXR_THREAD_LIBRARY IlmThread-${OpenEXR_LIB_SUFFIX})
+find_library(OpenEXR_IEXMATH_LIBRARY IexMath-${OpenEXR_LIB_SUFFIX})
+find_library(OpenEXR_MATH_LIBRARY Imath-${OpenEXR_LIB_SUFFIX})
+
+set(OpenEXR_LIBRARIES
+ ${OpenEXR_LIBRARY}
+ ${OpenEXR_MATH_LIBRARY}
+ ${OpenEXR_IEXMATH_LIBRARY}
+ ${OpenEXR_UTIL_LIBRARY}
+ ${OpenEXR_HALF_LIBRARY}
+ ${OpenEXR_IEX_LIBRARY}
+ ${OpenEXR_THREAD_LIBRARY})
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenEXR REQUIRED_VARS OpenEXR_LIBRARIES OpenEXR_INCLUDE_DIRS)
diff --git a/ports/freeimage/cmake/FindWEBP.cmake b/ports/freeimage/cmake/FindWEBP.cmake
index 9b8516e15..b4fefeadc 100644
--- a/ports/freeimage/cmake/FindWEBP.cmake
+++ b/ports/freeimage/cmake/FindWEBP.cmake
@@ -10,17 +10,17 @@ find_path(WEBP_INCLUDE_DIRS
)
mark_as_advanced(WEBP_INCLUDE_DIRS)
-find_library(
- WEBP_LIBRARIES
- NAMES webp
-)
-
find_library(WEBP_LIBRARY_RELEASE NAMES webp PATH_SUFFIXES lib)
find_library(WEBP_LIBRARY_DEBUG NAMES webpd PATH_SUFFIXES lib)
+
+find_library(WEBPMUX_LIBRARY_RELEASE NAMES webpmux PATH_SUFFIXES lib)
+find_library(WEBPMUX_LIBRARY_DEBUG NAMES webpmuxd PATH_SUFFIXES lib)
+
include(SelectLibraryConfigurations)
select_library_configurations(WEBP)
+select_library_configurations(WEBPMUX)
-set(WEBP_LIBRARIES ${WEBP_LIBRARY})
+set(WEBP_LIBRARIES ${WEBPMUX_LIBRARY} ${WEBP_LIBRARY})
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(WEBP DEFAULT_MSG WEBP_INCLUDE_DIRS WEBP_LIBRARIES)
diff --git a/ports/freeimage/portfile.cmake b/ports/freeimage/portfile.cmake
index e48782bf0..db8d2537a 100644
--- a/ports/freeimage/portfile.cmake
+++ b/ports/freeimage/portfile.cmake
@@ -18,7 +18,6 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/cmake DESTINATION ${SOURCE_PATH})
# This is not strictly necessary, but to make sure
# that no "internal" libraries are used by removing them
-# Note that the only "internal" dependency used is OpenEXR
file(REMOVE_RECURSE ${SOURCE_PATH}/Source/LibJPEG)
file(REMOVE_RECURSE ${SOURCE_PATH}/Source/LibPNG)
file(REMOVE_RECURSE ${SOURCE_PATH}/Source/LibTIFF4)
@@ -27,6 +26,7 @@ file(REMOVE_RECURSE ${SOURCE_PATH}/Source/LibOpenJPEG)
file(REMOVE_RECURSE ${SOURCE_PATH}/Source/LibJXR)
file(REMOVE_RECURSE ${SOURCE_PATH}/Source/LibWebP)
file(REMOVE_RECURSE ${SOURCE_PATH}/Source/LibRawLite)
+file(REMOVE_RECURSE ${SOURCE_PATH}/Source/OpenEXR)
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
@@ -38,6 +38,7 @@ vcpkg_apply_patches(
"${CMAKE_CURRENT_LIST_DIR}/use-external-png-zlib.patch"
"${CMAKE_CURRENT_LIST_DIR}/use-external-rawlib.patch"
"${CMAKE_CURRENT_LIST_DIR}/use-external-webp.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/use-external-openexr.patch"
"${CMAKE_CURRENT_LIST_DIR}/use-freeimage-config-include.patch"
)
diff --git a/ports/freeimage/use-external-openexr.patch b/ports/freeimage/use-external-openexr.patch
new file mode 100644
index 000000000..08915da72
--- /dev/null
+++ b/ports/freeimage/use-external-openexr.patch
@@ -0,0 +1,44 @@
+diff --git a/Source/FreeImage/PluginEXR.cpp b/Source/FreeImage/PluginEXR.cpp
+index b286430..82b3b72 100644
+--- a/Source/FreeImage/PluginEXR.cpp
++++ b/Source/FreeImage/PluginEXR.cpp
+@@ -28,16 +28,16 @@
+ #pragma warning (disable : 4800) // ImfVersion.h - 'const int' : forcing value to bool 'true' or 'false' (performance warning)
+ #endif
+
+-#include "../OpenEXR/IlmImf/ImfIO.h"
+-#include "../OpenEXR/Iex/Iex.h"
+-#include "../OpenEXR/IlmImf/ImfOutputFile.h"
+-#include "../OpenEXR/IlmImf/ImfInputFile.h"
+-#include "../OpenEXR/IlmImf/ImfRgbaFile.h"
+-#include "../OpenEXR/IlmImf/ImfChannelList.h"
+-#include "../OpenEXR/IlmImf/ImfRgba.h"
+-#include "../OpenEXR/IlmImf/ImfArray.h"
+-#include "../OpenEXR/IlmImf/ImfPreviewImage.h"
+-#include "../OpenEXR/Half/half.h"
++#include <OpenEXR/ImfIO.h>
++#include <OpenEXR/Iex.h>
++#include <OpenEXR/ImfOutputFile.h>
++#include <OpenEXR/ImfInputFile.h>
++#include <OpenEXR/ImfRgbaFile.h>
++#include <OpenEXR/ImfChannelList.h>
++#include <OpenEXR/ImfRgba.h>
++#include <OpenEXR/ImfArray.h>
++#include <OpenEXR/ImfPreviewImage.h>
++#include <OpenEXR/half.h>
+
+
+ // ==========================================================
+diff --git a/Source/FreeImage/PluginTIFF.cpp b/Source/FreeImage/PluginTIFF.cpp
+index 562fdd7..ce12649 100644
+--- a/Source/FreeImage/PluginTIFF.cpp
++++ b/Source/FreeImage/PluginTIFF.cpp
+@@ -39,7 +39,7 @@
+ #include "Utilities.h"
+ #include <tiffio.h>
+ #include "../Metadata/FreeImageTag.h"
+-#include "../OpenEXR/Half/half.h"
++#include <OpenEXR/half.h>
+
+ #include "FreeImageIO.h"
+ #include "PSDParser.h"
diff --git a/ports/freerdp/CONTROL b/ports/freerdp/CONTROL
index cdbca23e7..6a2d5d480 100644
--- a/ports/freerdp/CONTROL
+++ b/ports/freerdp/CONTROL
@@ -1,4 +1,4 @@
Source: freerdp
-Version: 2.0.0-beta1+android11~vcpkg1
+Version: 2.0.0-rc1~vcpkg1
Description: A free implementation of the Remote Desktop Protocol (RDP)
-Build-Depends: openssl \ No newline at end of file
+Build-Depends: openssl
diff --git a/ports/freerdp/portfile.cmake b/ports/freerdp/portfile.cmake
index 144616e5d..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-beta1+android11)
-set(FREERDP_REVISION 86fcb35f4273bf11410f962572e65644c6fe9ae3)
-set(FREERDP_HASH 6ad9f6dfab827f7bb50c31c6694d7254d890fff5178581b6ffd4f4e970a31e866b4a3d3e637d25d13dbb8f7d7e0cc219a056ce4f5642951576d9531cb0859ebe)
+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})
@@ -49,26 +49,31 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
endif()
if(NOT TARGET_TRIPLET MATCHES "uwp")
- make_directory("${CURRENT_PACKAGES_DIR}/tools")
- file(RENAME "${CURRENT_PACKAGES_DIR}/bin/winpr-hash.exe" "${CURRENT_PACKAGES_DIR}/tools/winpr-hash.exe")
- file(RENAME "${CURRENT_PACKAGES_DIR}/bin/winpr-makecert.exe" "${CURRENT_PACKAGES_DIR}/tools/winpr-makecert.exe")
- file(RENAME "${CURRENT_PACKAGES_DIR}/bin/wfreerdp.exe" "${CURRENT_PACKAGES_DIR}/tools/wfreerdp.exe")
-
- make_directory("${CURRENT_PACKAGES_DIR}/debug/tools")
- file(RENAME "${CURRENT_PACKAGES_DIR}/debug/bin/winpr-hash.exe" "${CURRENT_PACKAGES_DIR}/debug/tools/winpr-hash.exe")
- file(RENAME "${CURRENT_PACKAGES_DIR}/debug/bin/winpr-makecert.exe" "${CURRENT_PACKAGES_DIR}/debug/tools/winpr-makecert.exe")
- file(RENAME "${CURRENT_PACKAGES_DIR}/debug/bin/wfreerdp.exe" "${CURRENT_PACKAGES_DIR}/debug/tools/wfreerdp.exe")
+ file(GLOB_RECURSE TOOLS_RELEASE ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+ file(GLOB_RECURSE TOOLS_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+
+ file(COPY ${TOOLS_RELEASE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+
+ file(REMOVE ${TOOLS_RELEASE} ${TOOLS_DEBUG})
endif()
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/freerdp)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/freerdp/LICENSE ${CURRENT_PACKAGES_DIR}/share/freerdp/copyright)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
endif()
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/freerdp/cmake) \ No newline at end of file
+file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/freerdp/cmake)
diff --git a/ports/freetype-gl/0001-Use-external-Glew-and-Freetype.patch b/ports/freetype-gl/0001-Use-external-Glew-and-Freetype.patch
new file mode 100644
index 000000000..6c33f9e0e
--- /dev/null
+++ b/ports/freetype-gl/0001-Use-external-Glew-and-Freetype.patch
@@ -0,0 +1,24 @@
+From 653dae652bac66e4e96a94ba8ebfabb2227738b7 Mon Sep 17 00:00:00 2001
+From: Daniel Olivier <dan_olivier@hotmail.com>
+Date: Thu, 19 Oct 2017 21:26:09 -0400
+Subject: [PATCH] Use external Glew and Freetype
+
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4eb55e9..2546de6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -74,13 +74,6 @@ if(NOT HAVE_M_PI)
+ endif()
+ endif()
+
+-if(NOT MINGW AND (WIN32 OR WIN64))
+- set(GLEW_ROOT_DIR
+- ${CMAKE_CURRENT_SOURCE_DIR}/windows/glew)
+- set(ENV{FREETYPE_DIR}
+- ${CMAKE_CURRENT_SOURCE_DIR}/windows/freetype)
+-endif()
+-
+ find_package(OpenGL REQUIRED)
+ find_package(Freetype REQUIRED)
+ \ No newline at end of file
diff --git a/ports/freetype-gl/CONTROL b/ports/freetype-gl/CONTROL
new file mode 100644
index 000000000..ba4db5391
--- /dev/null
+++ b/ports/freetype-gl/CONTROL
@@ -0,0 +1,4 @@
+Source: freetype-gl
+Version: 2018-02-25
+Description: OpenGL text using one vertex buffer, one texture and FreeType
+Build-Depends: glew, freetype
diff --git a/ports/freetype-gl/portfile.cmake b/ports/freetype-gl/portfile.cmake
new file mode 100644
index 000000000..c627ad43c
--- /dev/null
+++ b/ports/freetype-gl/portfile.cmake
@@ -0,0 +1,65 @@
+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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO rougier/freetype-gl
+ REF bcd2b5fb5d19f1ea5d384d0edbdda2f6d0590fa0
+ SHA512 10bd8e874598e796c3123c8bc277ecb6f5d95c924c6d6bab1bec4700864c83e2f71bf9ac45c15eadba9e150660cbe9debe3509428b10264eb6a8ba64a80f3651
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-Use-external-Glew-and-Freetype.patch"
+)
+
+# make sure that no "internal" libraries are used by removing them
+file(REMOVE_RECURSE ${SOURCE_PATH}/windows/freetype)
+file(REMOVE_RECURSE ${SOURCE_PATH}/windows/AntTweakBar)
+file(REMOVE_RECURSE ${SOURCE_PATH}/windows/glew)
+file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindGLEW.cmake)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -Dfreetype-gl_BUILD_APIDOC=OFF
+ -Dfreetype-gl_BUILD_DEMOS=OFF
+ -Dfreetype-gl_BUILD_TESTS=OFF
+ -Dfreetype-gl_BUILD_MAKEFONT=OFF
+)
+
+# We may soon install using a modified cmake process with install target
+
+# Although FreeType-GL uses CMake as its build system, the implementation
+# (*.cmake,CMakeLists.txt) doesn't provide for any type of installation.
+# Presumably, it has been used as-is, in-tree, without ever needing to install
+# itself within a larger system.
+vcpkg_build_cmake(LOGFILE_ROOT install)
+
+file(GLOB HEADER_FILES "${SOURCE_PATH}/*.h")
+file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/freetype-gl)
+
+# LIB
+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_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(INSTALL ${LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+file(INSTALL ${DEBUG_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/freetype-gl RENAME copyright)
diff --git a/ports/freetype/0002-Add-CONFIG_INSTALL_PATH-option.patch b/ports/freetype/0002-Add-CONFIG_INSTALL_PATH-option.patch
index 33b0b920f..eeecbc1f7 100644
--- a/ports/freetype/0002-Add-CONFIG_INSTALL_PATH-option.patch
+++ b/ports/freetype/0002-Add-CONFIG_INSTALL_PATH-option.patch
@@ -1,29 +1,17 @@
-From 59ebd2985f081229edc3c487367a1e5d5ac8db9a Mon Sep 17 00:00:00 2001
-From: Robert Schumacher <roschuma@microsoft.com>
-Date: Mon, 10 Oct 2016 23:00:38 -0700
-Subject: [PATCH] Add CONFIG_INSTALL_PATH option
-
----
- CMakeLists.txt | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 774737d..5de689c 100644
+index 6bb2558..a894ada 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -401,8 +401,11 @@ install(TARGETS freetype
- ARCHIVE DESTINATION lib
- FRAMEWORK DESTINATION Library/Frameworks
- )
+@@ -419,8 +419,11 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
+ ARCHIVE DESTINATION lib
+ FRAMEWORK DESTINATION Library/Frameworks
+ )
+
-+set(CONFIG_INSTALL_PATH "lib/cmake/freetype" CACHE STRING "location to install cmake config files")
++ set(CONFIG_INSTALL_PATH "lib/cmake/freetype" CACHE STRING "location to install cmake config files")
+
- install(EXPORT freetype-targets
-- DESTINATION lib/cmake/freetype
-+ DESTINATION ${CONFIG_INSTALL_PATH}
- FILE freetype-config.cmake
- )
-
---
-2.9.2.windows.1
-
+ install(EXPORT freetype-targets
+- DESTINATION lib/cmake/freetype
++ DESTINATION ${CONFIG_INSTALL_PATH}
+ FILE freetype-config.cmake
+ )
+ endif ()
diff --git a/ports/freetype/CONTROL b/ports/freetype/CONTROL
index 3afd18c9d..567cf9020 100644
--- a/ports/freetype/CONTROL
+++ b/ports/freetype/CONTROL
@@ -1,4 +1,4 @@
Source: freetype
-Version: 2.6.3-5
+Version: 2.8.1-3
Build-Depends: zlib, bzip2, libpng
-Description: A library to render fonts. \ No newline at end of file
+Description: A library to render fonts.
diff --git a/ports/freetype/portfile.cmake b/ports/freetype/portfile.cmake
index b5c20a610..15e8aceab 100644
--- a/ports/freetype/portfile.cmake
+++ b/ports/freetype/portfile.cmake
@@ -1,9 +1,10 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/freetype-2.6.3)
+set(FT_VERSION 2.8.1)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/freetype-${FT_VERSION})
vcpkg_download_distfile(ARCHIVE
- URLS "http://download.savannah.gnu.org/releases/freetype/freetype-2.6.3.tar.bz2"
- FILENAME "freetype-2.6.3.tar.bz2"
- SHA512 e1f9018835fc88beeb4479537b59f866c52393ae18d24a1e0710a464cf948ab02b35c2c6043bc20c1db3a04871ee4eb0bb1d210550c0ea2780c8b1aea98fbf0d
+ URLS "http://download.savannah.gnu.org/releases/freetype/freetype-${FT_VERSION}.tar.bz2"
+ FILENAME "freetype-${FT_VERSION}.tar.bz2"
+ SHA512 ca59e47f0fceeeb9b8032be2671072604d0c79094675df24187829c05e99757d0a48a0f8062d4d688e056f783aa8f6090d732ad116562e94784fccf1339eb823
)
vcpkg_extract_source_archive(${ARCHIVE})
@@ -16,6 +17,7 @@ vcpkg_apply_patches(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
-DCONFIG_INSTALL_PATH=share/freetype
-DWITH_ZLIB=ON
@@ -31,17 +33,25 @@ file(RENAME ${CURRENT_PACKAGES_DIR}/include/freetype2/ft2build.h ${CURRENT_PACKA
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/freetype2)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(READ ${CURRENT_PACKAGES_DIR}/debug/share/freetype/freetype-config-debug.cmake DEBUG_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" DEBUG_MODULE "${DEBUG_MODULE}")
-string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" DEBUG_MODULE "${DEBUG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-config-debug.cmake "${DEBUG_MODULE}")
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(READ ${CURRENT_PACKAGES_DIR}/debug/share/freetype/freetype-config-debug.cmake DEBUG_MODULE)
+ string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" DEBUG_MODULE "${DEBUG_MODULE}")
+ string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" DEBUG_MODULE "${DEBUG_MODULE}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-config-debug.cmake "${DEBUG_MODULE}")
+endif()
-file(READ ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-config-release.cmake RELEASE_MODULE)
-string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" RELEASE_MODULE "${RELEASE_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-config-release.cmake "${RELEASE_MODULE}")
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(READ ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-config-release.cmake RELEASE_MODULE)
+ string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" RELEASE_MODULE "${RELEASE_MODULE}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-config-release.cmake "${RELEASE_MODULE}")
+endif()
# Fix the include dir [freetype2 -> freetype]
-file(READ ${CURRENT_PACKAGES_DIR}/debug/share/freetype/freetype-config.cmake CONFIG_MODULE)
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(READ ${CURRENT_PACKAGES_DIR}/debug/share/freetype/freetype-config.cmake CONFIG_MODULE)
+else() #if(VCPKG_BUILD_TYPE STREQUAL "release")
+ file(READ ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-config.cmake CONFIG_MODULE)
+endif()
string(REPLACE "\${_IMPORT_PREFIX}/include/freetype2" "\${_IMPORT_PREFIX}/include/freetype" CONFIG_MODULE "${CONFIG_MODULE}")
file(WRITE ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-config.cmake "${CONFIG_MODULE}")
@@ -51,8 +61,12 @@ file(COPY
${SOURCE_PATH}/docs/LICENSE.TXT
${SOURCE_PATH}/docs/FTL.TXT
${SOURCE_PATH}/docs/GPLv2.TXT
+ ${CMAKE_CURRENT_LIST_DIR}/usage
DESTINATION ${CURRENT_PACKAGES_DIR}/share/freetype
)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/freetype/LICENSE.TXT ${CURRENT_PACKAGES_DIR}/share/freetype/copyright)
vcpkg_copy_pdbs()
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/freetype)
+endif()
diff --git a/ports/freetype/usage b/ports/freetype/usage
new file mode 100644
index 000000000..458a9dd88
--- /dev/null
+++ b/ports/freetype/usage
@@ -0,0 +1,4 @@
+The package freetype is compatible with built-in CMake targets:
+
+ find_package(Freetype REQUIRED)
+ target_link_libraries(main PRIVATE Freetype::Freetype)
diff --git a/ports/freetype/vcpkg-cmake-wrapper.cmake b/ports/freetype/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..c08499f2d
--- /dev/null
+++ b/ports/freetype/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,10 @@
+_find_package(${ARGS})
+find_package(ZLIB)
+find_package(PNG)
+find_package(BZip2)
+if(TARGET Freetype::Freetype)
+ set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES BZip2::BZip2 PNG::PNG ZLIB::ZLIB)
+endif()
+if(FREETYPE_LIBRARIES)
+ list(APPEND FREETYPE_LIBRARIES ${BZIP2_LIBRARIES} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES})
+endif()
diff --git a/ports/freexl/CONTROL b/ports/freexl/CONTROL
new file mode 100644
index 000000000..128ef56a0
--- /dev/null
+++ b/ports/freexl/CONTROL
@@ -0,0 +1,5 @@
+Source: freexl
+Version: 1.0.4-1
+Description: FreeXL is an open source library to extract valid data from within an Excel (.xls) spreadsheet
+Build-Depends: libiconv
+
diff --git a/ports/freexl/fix-makefiles.patch b/ports/freexl/fix-makefiles.patch
new file mode 100644
index 000000000..5cf2c470f
--- /dev/null
+++ b/ports/freexl/fix-makefiles.patch
@@ -0,0 +1,43 @@
+diff --git a/makefile.vc b/makefile.vc
+index 0aacbc7..d95d859 100644
+--- a/makefile.vc
++++ b/makefile.vc
+@@ -7,7 +7,7 @@
+ LIBOBJ = freexl.obj
+ FREEXL_DLL = freexl$(VERSION).dll
+
+-CFLAGS = /nologo -IC:\OSGeo4W\include -I. -Iheaders $(OPTFLAGS)
++CFLAGS = /nologo -I$(INSTALLED_ROOT)\include -I. -Iheaders $(OPTFLAGS)
+
+ default: all
+
+@@ -23,9 +23,9 @@ freexl.lib: $(LIBOBJ)
+ $(FREEXL_DLL): freexl_i.lib
+
+ freexl_i.lib: $(LIBOBJ)
+- link /debug /dll /out:$(FREEXL_DLL) \
++ link $(LINK_FLAGS) /dll /out:$(FREEXL_DLL) \
+ /implib:freexl_i.lib $(LIBOBJ) \
+- C:\OSGeo4w\lib\iconv.lib
++ $(LIBS_ALL)
+ if exist $(FREEXL_DLL).manifest mt -manifest \
+ $(FREEXL_DLL).manifest -outputresource:$(FREEXL_DLL);2
+
+diff --git a/nmake.opt b/nmake.opt
+index 35f9242..efb6f77 100644
+--- a/nmake.opt
++++ b/nmake.opt
+@@ -1,10 +1,10 @@
+ # Directory tree where FreeXL will be installed.
+-INSTDIR=C:\OSGeo4W
++INSTDIR=$(INST_DIR)
+
+ # Uncomment the first for an optimized build, or the second for debug.
+-OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \
++OPTFLAGS= /nologo /fp:precise /W3 $(CL_FLAGS) /D_CRT_SECURE_NO_WARNINGS \
+ /DDLL_EXPORT
+-#OPTFLAGS= /nologo /Zi /MD /Fdfreexl.pdb /DDLL_EXPORT
++#OPTFLAGS= /nologo $(CL_FLAGS) /Fdfreexl.pdb /DDLL_EXPORT
+
+ # Set the version number for the DLL. Normally we leave this blank since
+ # we want software that is dynamically loading the DLL to have no problem
diff --git a/ports/freexl/fix-sources.patch b/ports/freexl/fix-sources.patch
new file mode 100644
index 000000000..89a36f3b3
--- /dev/null
+++ b/ports/freexl/fix-sources.patch
@@ -0,0 +1,35 @@
+diff --git a/config-msvc.h b/config-msvc.h
+index a39d4e7..37f1c0b 100644
+--- a/config-msvc.h
++++ b/config-msvc.h
+@@ -66,7 +66,7 @@
+ #define HAVE_SYS_TYPES_H 1
+
+ /* Define to 1 if you have the <unistd.h> header file. */
+-#define HAVE_UNISTD_H 1
++#undef HAVE_UNISTD_H
+
+ /* Define to 1 if `lstat' dereferences a symlink specified with a trailing
+ slash. */
+diff --git a/src/freexl.c b/src/freexl.c
+index a0b255a..92163a9 100644
+--- a/src/freexl.c
++++ b/src/freexl.c
+@@ -92,7 +92,7 @@ freexl_version (void)
+ #if defined(_WIN32) && !defined(__MINGW32__)
+ /* MSVC compiler doesn't support lround() at all */
+ static double
+-round (double num)
++round_old (double num)
+ {
+ double integer = ceil (num);
+ if (num > 0)
+@@ -101,7 +101,7 @@ round (double num)
+ }
+
+ static long
+-lround (double num)
++lround_old (double num)
+ {
+ long integer = (long) round (num);
+ return integer;
diff --git a/ports/freexl/portfile.cmake b/ports/freexl/portfile.cmake
new file mode 100644
index 000000000..ff8879fba
--- /dev/null
+++ b/ports/freexl/portfile.cmake
@@ -0,0 +1,90 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/freexl-1.0.4)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.gaia-gis.it/gaia-sins/freexl-sources/freexl-1.0.4.tar.gz"
+ FILENAME "freexl-1.0.4.tar.gz"
+ SHA512 d72561f7b82e0281cb211fbf249e5e45411a7cdd009cfb58da3696f0a0341ea7df210883bfde794be28738486aeb4ffc67ec2c98fd2acde5280e246e204ce788
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-sources.patch
+)
+find_program(NMAKE nmake)
+
+set(LIBS_ALL_DBG
+ "\"${CURRENT_INSTALLED_DIR}/debug/lib/libiconv.lib\" \
+ \"${CURRENT_INSTALLED_DIR}/debug/lib/libcharset.lib\""
+ )
+set(LIBS_ALL_REL
+ "\"${CURRENT_INSTALLED_DIR}/lib/libiconv.lib\" \
+ \"${CURRENT_INSTALLED_DIR}/lib/libcharset.lib\""
+ )
+
+
+if(VCPKG_CRT_LINKAGE STREQUAL dynamic)
+ set(CL_FLAGS_DBG "/MDd /Zi")
+ set(CL_FLAGS_REL "/MD /Ox")
+else()
+ set(CL_FLAGS_DBG "/MTd /Zi")
+ set(CL_FLAGS_REL "/MT /Ox")
+endif()
+
+
+################
+# Debug build
+################
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg")
+
+ file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/debug" INST_DIR_DBG)
+ vcpkg_execute_required_process(
+ COMMAND ${NMAKE} -f makefile.vc clean install
+ INST_DIR="${INST_DIR_DBG}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=/debug" "CL_FLAGS=${CL_FLAGS_DBG}" "LIBS_ALL=${LIBS_ALL_DBG}"
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME nmake-build-${TARGET_TRIPLET}-debug
+ )
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg done")
+ vcpkg_copy_pdbs()
+endif()
+
+################
+# Release build
+################
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Building ${TARGET_TRIPLET}-rel")
+
+ file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR_REL)
+ vcpkg_execute_required_process(
+ COMMAND ${NMAKE} -f makefile.vc clean install
+ INST_DIR="${INST_DIR_REL}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=" "CL_FLAGS=${CL_FLAGS_REL}" "LIBS_ALL=${LIBS_ALL_REL}"
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME nmake-build-${TARGET_TRIPLET}-release
+ )
+ message(STATUS "Building ${TARGET_TRIPLET}-rel done")
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/freexl RENAME copyright)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/freexl_i.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/freexl_i.lib)
+else()
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/freexl.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/freexl.lib)
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/freexl_i.lib ${CURRENT_PACKAGES_DIR}/lib/freexl.lib)
+ endif()
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/freexl_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/freexl.lib)
+ endif()
+endif()
+
+
+message(STATUS "Packaging ${TARGET_TRIPLET} done")
diff --git a/ports/fuzzylite/CONTROL b/ports/fuzzylite/CONTROL
new file mode 100644
index 000000000..422a8af2e
--- /dev/null
+++ b/ports/fuzzylite/CONTROL
@@ -0,0 +1,3 @@
+Source: fuzzylite
+Version: 6.0-1
+Description: A fuzzy logic control library in C++
diff --git a/ports/fuzzylite/portfile.cmake b/ports/fuzzylite/portfile.cmake
new file mode 100644
index 000000000..976ca66de
--- /dev/null
+++ b/ports/fuzzylite/portfile.cmake
@@ -0,0 +1,46 @@
+include(vcpkg_common_functions)
+
+if(EXISTS "${CURRENT_BUILDTREES_DIR}/src/.git")
+ file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO fuzzylite/fuzzylite
+ REF v6.0
+ SHA512 6f5d40d0359458e109ac2aebfbf571f61867a8b49920f4a5e1b5d86bdf578dba038b942c9e05eab0d4620f73e8cded770abe7b5e597a3b4c39dbcf6a1259f4af
+ HEAD_REF master
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(FL_BUILD_SHARED ON)
+ set(FL_BUILD_STATIC OFF)
+else()
+ set(FL_BUILD_SHARED OFF)
+ set(FL_BUILD_STATIC ON)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/fuzzylite
+ PREFER_NINJA
+ OPTIONS
+ -DFL_BUILD_SHARED=${FL_BUILD_SHARED}
+ -DFL_BUILD_STATIC=${FL_BUILD_STATIC}
+ -DFL_BUILD_BINARY=OFF
+ -DFL_BUILD_TESTS=OFF
+)
+
+vcpkg_build_cmake()
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/fuzzylite-static.lib ${CURRENT_PACKAGES_DIR}/lib/fuzzylite.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/fuzzylite-static-debug.lib ${CURRENT_PACKAGES_DIR}/debug/lib/fuzzylite-debug.lib)
+endif()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/fuzzylite RENAME copyright)
diff --git a/ports/g2o/CONTROL b/ports/g2o/CONTROL
new file mode 100644
index 000000000..cdad4d19a
--- /dev/null
+++ b/ports/g2o/CONTROL
@@ -0,0 +1,4 @@
+Source: g2o
+Version: 20170730_git-3
+Build-Depends: suitesparse, eigen3, clapack, ceres
+Description: g2o: A General Framework for Graph Optimization http://openslam.org/g2o.html
diff --git a/ports/g2o/portfile.cmake b/ports/g2o/portfile.cmake
new file mode 100644
index 000000000..ba8186789
--- /dev/null
+++ b/ports/g2o/portfile.cmake
@@ -0,0 +1,45 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO RainerKuemmerle/g2o
+ REF 20170730_git
+ SHA512 a85e3f79e6a8bd0f81a9a1a7a01227779100d9f4ebd0ae9c03537bbdcc246018f292b53045f027bbe28ecf63b98de2f22f5528c992c93c9790eb6a3a40995903
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_LGPL_SHARED_LIBS)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_LGPL_SHARED_LIBS=${BUILD_LGPL_SHARED_LIBS}
+ -DG2O_BUILD_EXAMPLES=OFF
+ -DG2O_BUILD_APPS=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(GLOB_RECURSE HEADERS "${CURRENT_PACKAGES_DIR}/include/*")
+ foreach(HEADER ${HEADERS})
+ file(READ ${HEADER} HEADER_CONTENTS)
+ string(REPLACE "#ifdef G2O_SHARED_LIBS" "#if 1" HEADER_CONTENTS "${HEADER_CONTENTS}")
+ file(WRITE ${HEADER} "${HEADER_CONTENTS}")
+ endforeach()
+endif()
+
+file(GLOB EXE ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+file(GLOB DEBUG_EXE ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+if(EXE OR DEBUG_EXE)
+ file(REMOVE ${EXE} ${DEBUG_EXE})
+endif()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+# Put the license file where vcpkg expects it
+file(COPY ${SOURCE_PATH}/doc/license-bsd.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/g2o/)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/g2o/license-bsd.txt ${CURRENT_PACKAGES_DIR}/share/g2o/copyright)
diff --git a/ports/gainput/CONTROL b/ports/gainput/CONTROL
new file mode 100644
index 000000000..29ac472c5
--- /dev/null
+++ b/ports/gainput/CONTROL
@@ -0,0 +1,3 @@
+Source: gainput
+Version: 1.0.0-1
+Description: Gainput is a multiplatform C++ input library, supporting mouse, keyboard and controllers
diff --git a/ports/gainput/portfile.cmake b/ports/gainput/portfile.cmake
new file mode 100644
index 000000000..c1f1f6158
--- /dev/null
+++ b/ports/gainput/portfile.cmake
@@ -0,0 +1,47 @@
+# 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/gainput-1.0.0)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://github.com/jkuhlmann/gainput/archive/v1.0.0.zip"
+ FILENAME "gainput-1.0.0.zip"
+ SHA512 dab221290560298693f54bebced1da5ec3dfae2d2adbfd6ceb17b5b28dc2a637a49e479d49fe98680915b29beb5dd2d5c74258598233a053230696186593c88e
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DGAINPUT_TESTS=OFF
+ -DGAINPUT_SAMPLES=OFF
+ # Disable this option if project cannot be built with Ninja
+ # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
+ # OPTIONS_RELEASE -DOPTIMIZE=1
+ # OPTIONS_DEBUG -DDEBUGGABLE=1
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/gainput RENAME copyright)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/gainputstatic.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gainputstatic.lib ${CURRENT_PACKAGES_DIR}/lib/gainput.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gainputstaticd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/gainputd.lib)
+ endif()
+endif()
diff --git a/ports/gamma/CMakeLists.txt b/ports/gamma/CMakeLists.txt
new file mode 100644
index 000000000..6bb48f193
--- /dev/null
+++ b/ports/gamma/CMakeLists.txt
@@ -0,0 +1,44 @@
+cmake_minimum_required (VERSION 3.0)
+
+project (gamma)
+
+# dependent on libsndfile and portaudio
+find_path(LIBSNDFILE_H sndfile.h)
+find_library(LIBSNDFILE_LIB NAMES libsndfile-1 libsndfile)
+find_path(PORTAUDIO_H portaudio.h)
+find_library(PORTAUDIO_LIB NAMES portaudio)
+
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+set(SOURCEFILES
+ src/arr.cpp
+ src/AudioIO.cpp
+ src/Conversion.cpp
+ src/Domain.cpp
+ src/DFT.cpp
+ src/FFT_fftpack.cpp
+ src/fftpack++1.cpp
+ src/fftpack++2.cpp
+ src/SoundFile.cpp
+ src/Print.cpp
+ src/Recorder.cpp
+ src/scl.cpp
+ src/Scheduler.cpp
+ src/Timer.cpp
+ src/SoundFile.cpp)
+
+include_directories(. Gamma ${CMAKE_INSTALL_FULL_INCLUDEDIR} ${PORTAUDIO_H} ${LIBSNDFILE_H})
+
+add_library (gamma ${SOURCEFILES})
+target_link_libraries(gamma PUBLIC ${LIBSNDFILE_LIB} ${PORTAUDIO_LIB})
+
+install(
+ TARGETS gamma
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(DIRECTORY Gamma DESTINATION include FILES_MATCHING PATTERN "*.h")
+endif()
diff --git a/ports/gamma/CONTROL b/ports/gamma/CONTROL
new file mode 100644
index 000000000..b70639ea6
--- /dev/null
+++ b/ports/gamma/CONTROL
@@ -0,0 +1,4 @@
+Source: gamma
+Version: gamma-2018-01-27
+Build-Depends: libsndfile, portaudio
+Description: Gamma is a cross-platform, C++ library for doing generic synthesis and filtering of signals. It is oriented towards real-time sound and graphics applications, but is equally useful for non-real-time tasks. Gamma is designed to be "light-footed" in terms of memory and processing making it highly suitable for plug-in development or embedding in other C++ projects.
diff --git a/ports/gamma/portfile.cmake b/ports/gamma/portfile.cmake
new file mode 100644
index 000000000..139e6a48a
--- /dev/null
+++ b/ports/gamma/portfile.cmake
@@ -0,0 +1,27 @@
+# Instead of official release, base on commit hash for now.
+set(GAMMA_RELEASE_TAG "cc442ad0c5da369966cd937a96925c7b9a04e9e5")
+
+include(vcpkg_common_functions)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/Gamma-${GAMMA_RELEASE_TAG})
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/LancePutnam/Gamma/archive/cc442ad0c5da369966cd937a96925c7b9a04e9e5.zip"
+ FILENAME "gamma-${GAMMA_RELEASE_TAG}.zip"
+ SHA512 de44f4d07db0b2cf09e77508d993273d09788dfa919d549393bb77534922b65e9d8a1b8193b4b02c72e6bc4dd060b41b18ff3520a36d4c28f6e2fb4b1e859ee7
+)
+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 -DDISABLE_INSTALL_HEADERS=1
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/gamma RENAME copyright)
diff --git a/ports/gdal/0001-Add-support-for-MSVC1900-backported-from-GDAL2.patch b/ports/gdal/0001-Add-support-for-MSVC1900-backported-from-GDAL2.patch
deleted file mode 100644
index e29cc5b8e..000000000
--- a/ports/gdal/0001-Add-support-for-MSVC1900-backported-from-GDAL2.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 823171a129401d226ac4821fb997ce585045170c Mon Sep 17 00:00:00 2001
-From: Manuel Massing <m.massing@warped-space.de>
-Date: Wed, 23 Nov 2016 23:50:12 +0100
-Subject: [PATCH] Add support for MSVC1900 (backported from GDAL2)
-
----
- nmake.opt | 6 ++++++
- port/cpl_config.h.vc | 8 +++++---
- 2 files changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/nmake.opt b/nmake.opt
-index 8900135..4d1c4fa 100644
---- a/nmake.opt
-+++ b/nmake.opt
-@@ -31,6 +31,7 @@
- # Check version of Visual C++ compiler:
- # nmake -f makefile.vc MSVC_VER=xxxx
- # where xxxx is one of following:
-+# 1900 = 14.0(2015)
- # 1800 = 12.0(2013)
- # 1700 = 11.0(2012)
- # 1600 = 10.0(2010)
-@@ -627,8 +628,13 @@ GDALLIB = $(GDAL_ROOT)/gdal.lib
- !ENDIF
-
- !IFDEF ODBC_SUPPORTED
-+!IF $(MSVC_VER) >= 1900
-+# legacy_stdio_definitions.lib : https://connect.microsoft.com/VisualStudio/feedback/details/1134693/vs-2015-ctp-5-c-vsnwprintf-s-and-other-functions-are-not-exported-in-appcrt140-dll-breaking-linkage-of-static-libraries
-+ODBCLIB = legacy_stdio_definitions.lib odbc32.lib odbccp32.lib user32.lib
-+!ELSE
- ODBCLIB = odbc32.lib odbccp32.lib user32.lib
- !ENDIF
-+!ENDIF
-
- !IF DEFINED(MRSID_DIR) || DEFINED(MRSID_RASTER_DIR) || DEFINED(MRSID_LIDAR_DIR)
- !IF "$(MRSID_PLUGIN)" != "YES"
-diff --git a/port/cpl_config.h.vc b/port/cpl_config.h.vc
-index bfff8f6..fe7b82a 100644
---- a/port/cpl_config.h.vc
-+++ b/port/cpl_config.h.vc
-@@ -1,5 +1,5 @@
-
--/* We define this here in general so that a VC++ build will publically
-+/* We define this here in general so that a VC++ build will publicly
- declare STDCALL interfaces even if an application is built against it
- using MinGW */
-
-@@ -17,7 +17,9 @@
- #if defined(_MSC_VER) && (_MSC_VER < 1500)
- # define vsnprintf _vsnprintf
- #endif
--#define snprintf _snprintf
-+#if defined(_MSC_VER) && (_MSC_VER < 1900)
-+# define snprintf _snprintf
-+#endif
-
- #define HAVE_GETCWD 1
- /* gmt_notunix.h from GMT project also redefines getcwd. See #3138 */
-@@ -86,7 +88,7 @@
- /* Set the native cpu bit order */
- #define HOST_FILLORDER FILLORDER_LSB2MSB
-
--/* Define as 0 or 1 according to the floating point format suported by the
-+/* Define as 0 or 1 according to the floating point format supported by the
- machine */
- #define HAVE_IEEEFP 1
-
---
-2.10.1.windows.1
-
diff --git a/ports/gdal/0001-Fix-debug-crt-flags.patch b/ports/gdal/0001-Fix-debug-crt-flags.patch
new file mode 100644
index 000000000..753d53131
--- /dev/null
+++ b/ports/gdal/0001-Fix-debug-crt-flags.patch
@@ -0,0 +1,27 @@
+diff -Nuar a/nmake.opt b/nmake.opt
+--- a/nmake.opt 2018-05-04 09:05:46.000000000 +0200
++++ b/nmake.opt 2018-05-11 22:58:39.387603800 +0200
+@@ -120,11 +120,21 @@
+ CXX_PDB_FLAGS=
+ !ENDIF
+
++# Flags to choose CRT variant to link against (e.g. static: /MT, /MTd, dynamic: /MD, /MDd)
++# Ensure MRSID_CONFIG in mrsid/nmake.opt is set appropriately as well
++!IFNDEF CXX_CRT_FLAGS
++!IFNDEF DEBUG
++CXX_CRT_FLAGS=/MD
++!ELSE
++CXX_CRT_FLAGS=/MDd
++!ENDIF
++!ENDIF
++
+ !IFNDEF OPTFLAGS
+ !IFNDEF DEBUG
+-OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MP /MD /EHsc /Ox /FC /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DNDEBUG
++OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MP $(CXX_CRT_FLAGS) /EHsc /Ox /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DNDEBUG
+ !ELSE
+-OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MP /MDd /EHsc /FC /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DDEBUG
++OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MP $(CXX_CRT_FLAGS) /EHsc /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DDEBUG
+ !ENDIF
+ !ENDIF # OPTFLAGS
+
diff --git a/ports/gdal/0002-Add-variable-CXX_CRT_FLAGS-to-allow-for-selection-of.patch b/ports/gdal/0002-Add-variable-CXX_CRT_FLAGS-to-allow-for-selection-of.patch
deleted file mode 100644
index 0ffcac5fb..000000000
--- a/ports/gdal/0002-Add-variable-CXX_CRT_FLAGS-to-allow-for-selection-of.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From b25c3dc49ca1bcf9a789cf64c9fa8694e35127f0 Mon Sep 17 00:00:00 2001
-From: Manuel Massing <m.massing@warped-space.de>
-Date: Sun, 27 Nov 2016 09:57:04 +0100
-Subject: [PATCH 2/2] Add variable CXX_CRT_FLAGS to allow for selection of C
- runtime linkage in nmake build.
-
----
- nmake.opt | 18 ++++++++++++++----
- 1 file changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/nmake.opt b/nmake.opt
-index 4d1c4fa..47c2df8 100644
---- a/nmake.opt
-+++ b/nmake.opt
-@@ -125,18 +125,28 @@ CXX_PDB_FLAGS=/Zi /Fd$(GDAL_ROOT)\gdal$(VERSION).pdb
- CXX_PDB_FLAGS=
- !ENDIF
-
-+# Flags to choose CRT variant to link against (e.g. static: /MT, /MTd, dynamic: /MD, /MDd)
-+# Ensure MRSID_CONFIG in mrsid/nmake.opt is set appropriately as well
-+!IFNDEF CXX_CRT_FLAGS
-+!IFNDEF DEBUG
-+CXX_CRT_FLAGS=/MD
-+!ELSE
-+CXX_CRT_FLAGS=/MDd
-+!ENDIF
-+!ENDIF
-+
- !IFNDEF OPTFLAGS
- !IF $(MSVC_VER) >= 1400
- !IFNDEF DEBUG
--OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MD /EHsc /Ox /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DNDEBUG
-+OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo $(CXX_CRT_FLAGS) /EHsc /Ox /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DNDEBUG
- !ELSE
--OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo /MD /EHsc /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DDEBUG
-+OPTFLAGS= $(CXX_ANALYZE_FLAGS) $(CXX_PDB_FLAGS) /nologo $(CXX_CRT_FLAGS) /EHsc /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DDEBUG
- !ENDIF
- !ELSE
- !IFNDEF DEBUG
--OPTFLAGS= $(CXX_PDB_FLAGS) /nologo /MD /EHsc /GR /Ox /DNDEBUG
-+OPTFLAGS= $(CXX_PDB_FLAGS) /nologo $(CXX_CRT_FLAGS) /EHsc /GR /Ox /DNDEBUG
- !ELSE
--OPTFLAGS= $(CXX_PDB_FLAGS) /nologo /MD /EHsc /GR /DDEBUG
-+OPTFLAGS= $(CXX_PDB_FLAGS) /nologo $(CXX_CRT_FLAGS) /EHsc /GR /DDEBUG
- !ENDIF
- !ENDIF #MSVC_VER
- !ENDIF # OPTFLAGS
---
-2.10.1.windows.1
-
diff --git a/ports/gdal/0003-Ensures-inclusion-of-PDB-in-release-dll-if-so-reques.patch b/ports/gdal/0003-Ensures-inclusion-of-PDB-in-release-dll-if-so-reques.patch
deleted file mode 100644
index 1065a2982..000000000
--- a/ports/gdal/0003-Ensures-inclusion-of-PDB-in-release-dll-if-so-reques.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 9da0cb6eed442ebf3eea232cd85e26c155c963ef Mon Sep 17 00:00:00 2001
-From: Manuel Massing <m.massing@warped-space.de>
-Date: Tue, 29 Nov 2016 12:43:58 +0100
-Subject: [PATCH 3/4] - Ensures inclusion of PDB in release dll if so requested
-
----
- gdal/nmake.opt | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/nmake.opt b/nmake.opt
-index 47c2df8..4844d22 100644
---- a/nmake.opt
-+++ b/nmake.opt
-@@ -174,6 +174,9 @@ SOFTWARNFLAGS= /wd4244 /wd4702 /wd4701 /wd4013 /wd4706 /wd4057 /wd4210 /wd4305
- # Linker debug options
- !IFDEF DEBUG
- LDEBUG= /debug
-+!ELSEIFDEF WITH_PDB
-+# Ensures that PDB is included in release DLL if so requested
-+LDEBUG= /debug /opt:ref /opt:icf
- !ENDIF
-
- # Uncomment the following if you are building for 64-bit windows
---
-2.10.1.windows.1
-
diff --git a/ports/gdal/CONTROL b/ports/gdal/CONTROL
index 26ed0da1e..be75e6693 100644
--- a/ports/gdal/CONTROL
+++ b/ports/gdal/CONTROL
@@ -1,4 +1,4 @@
Source: gdal
-Version: 1.11.3-3
+Version: 2.3.0-1
Description: The Geographic Data Abstraction Library for reading and writing geospatial raster and vector data.
Build-Depends: proj, libpng, geos, sqlite3, curl, expat, libpq, libmysql, openjpeg, libwebp, libxml2, liblzma
diff --git a/ports/gdal/no-my-bool.patch b/ports/gdal/no-my-bool.patch
new file mode 100644
index 000000000..2589ff044
--- /dev/null
+++ b/ports/gdal/no-my-bool.patch
@@ -0,0 +1,12 @@
+diff -Nuar a/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp b/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp
+--- a/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp 2018-05-04 09:09:26.000000000 +0200
++++ b/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp 2018-05-11 23:07:44.284558300 +0200
+@@ -235,7 +235,7 @@
+ // Enable automatic reconnection
+ // Must be called after mysql_real_connect() on MySQL < 5.0.19
+ // and at any point on more recent versions.
+- my_bool reconnect = 1;
++ bool reconnect = 1;
+ mysql_options(hConn, MYSQL_OPT_RECONNECT, &reconnect);
+ }
+
diff --git a/ports/gdal/portfile.cmake b/ports/gdal/portfile.cmake
index 5296b6586..70eea8583 100644
--- a/ports/gdal/portfile.cmake
+++ b/ports/gdal/portfile.cmake
@@ -1,28 +1,42 @@
+# vcpkg portfile.cmake for GDAL
+#
+# NOTE: update the version and checksum for new GDAL release
+set(GDAL_VERSION_STR "2.3.0")
+set(GDAL_VERSION_PKG "230")
+set(GDAL_VERSION_LIB "203")
+set(GDAL_PACKAGE_SUM "f3f790b7ecb28916d6d0628b15ddc6b396a25a8f1f374589ea5e95b5a50addc99e05e363113f907b6c96faa69870b5dc9fdf3d771f9c8937b4aa8819bd78b190")
+
if (TRIPLET_SYSTEM_ARCH MATCHES "arm")
- message(FATAL_ERROR " ARM is currently not supported.")
+ message(FATAL_ERROR "ARM is currently not supported.")
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "GDAL's nmake buildsystem does not support building static libraries")
+elseif(VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "GDAL's nmake buildsystem does not support static crt linkage")
endif()
include(vcpkg_common_functions)
vcpkg_download_distfile(ARCHIVE
- URLS "http://download.osgeo.org/gdal/1.11.3/gdal1113.zip"
- FILENAME "gdal1113.zip"
- SHA512 42feb98a54019d3b6ac54f598f299a57e117db500c662d39faa9d5f5090f03c1b8d7680242e1abd8035738edc4fc3197ae118a0ce50733691a76a5cf377bcd46
-)
+ URLS "http://download.osgeo.org/gdal/${GDAL_VERSION_STR}/gdal${GDAL_VERSION_PKG}.zip"
+ FILENAME "gdal${GDAL_VERSION_PKG}.zip"
+ SHA512 ${GDAL_PACKAGE_SUM}
+ )
-# Extract source into archictecture specific directory, because GDALs' nmake based build currently does not
+# Extract source into architecture specific directory, because GDALs' nmake based build currently does not
# support out of source builds.
-set(SOURCE_PATH_DEBUG ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-debug/gdal-1.11.3)
-set(SOURCE_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-release/gdal-1.11.3)
+set(SOURCE_PATH_DEBUG ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-debug/gdal-${GDAL_VERSION_STR})
+set(SOURCE_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-release/gdal-${GDAL_VERSION_STR})
foreach(BUILD_TYPE debug release)
+ file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE})
vcpkg_extract_source_archive(${ARCHIVE} ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE})
vcpkg_apply_patches(
- SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE}/gdal-1.11.3
+ SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE}/gdal-${GDAL_VERSION_STR}
PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/0001-Add-support-for-MSVC1900-backported-from-GDAL2.patch
- ${CMAKE_CURRENT_LIST_DIR}/0002-Add-variable-CXX_CRT_FLAGS-to-allow-for-selection-of.patch
- ${CMAKE_CURRENT_LIST_DIR}/0003-Ensures-inclusion-of-PDB-in-release-dll-if-so-reques.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-debug-crt-flags.patch
+ ${CMAKE_CURRENT_LIST_DIR}/no-my-bool.patch
)
endforeach()
@@ -45,7 +59,7 @@ file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.lib" PNG_LIBRA
# Setup geos libraries + include path
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" GEOS_INCLUDE_DIR)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/geos_c.lib" GEOS_LIBRARY_REL)
-file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/geos_c.lib" GEOS_LIBRARY_DBG)
+file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/geos_cd.lib" GEOS_LIBRARY_DBG)
# Setup expat libraries + include path
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" EXPAT_INCLUDE_DIR)
@@ -54,8 +68,8 @@ file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/expat.lib" EXPAT_LIBRARY
# Setup curl libraries + include path
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" CURL_INCLUDE_DIR)
-file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libcurl_imp.lib" CURL_LIBRARY_REL)
-file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl_imp.lib" CURL_LIBRARY_DBG)
+file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libcurl.lib" CURL_LIBRARY_REL)
+file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl.lib" CURL_LIBRARY_DBG)
# Setup sqlite3 libraries + include path
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" SQLITE_INCLUDE_DIR)
@@ -210,7 +224,7 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
else()
file(GLOB EXE_FILES ${CURRENT_PACKAGES_DIR}/bin/*.exe)
file(REMOVE ${EXE_FILES} ${CURRENT_PACKAGES_DIR}/lib/gdal.lib)
- file(COPY ${SOURCE_PATH_DEBUG}/gdal111.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(COPY ${SOURCE_PATH_DEBUG}/gdal${GDAL_VERSION_LIB}.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
file(COPY ${SOURCE_PATH_DEBUG}/gdal_i.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gdal_i.lib ${CURRENT_PACKAGES_DIR}/lib/gdal.lib)
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gdal_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/gdald.lib)
diff --git a/ports/gdcm2/CONTROL b/ports/gdcm2/CONTROL
index 32b92aca0..45900dbab 100644
--- a/ports/gdcm2/CONTROL
+++ b/ports/gdcm2/CONTROL
@@ -1,4 +1,4 @@
Source: gdcm2
-Version: 2.6.8
+Version: 2.8.6
Description: Grassroots DICOM library
Build-Depends: zlib, expat
diff --git a/ports/gdcm2/gdcmSystem.patch b/ports/gdcm2/gdcmSystem.patch
deleted file mode 100644
index 63722c4f1..000000000
--- a/ports/gdcm2/gdcmSystem.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Source/Common/gdcmSystem.cxx
-+++ b/Source/Common/gdcmSystem.cxx
-@@ -977,7 +977,7 @@
- }
- }
- // We need to tell the user...
-- gdcmWarningMacro( "Could not find Charset from alias: " + alias );
-+ gdcmWarningMacro( std::string("Could not find Charset from alias: ") + alias );
- return NULL;
- }
- #endif //_WIN32
diff --git a/ports/gdcm2/portfile.cmake b/ports/gdcm2/portfile.cmake
index 0293ea714..65fa7a6e1 100644
--- a/ports/gdcm2/portfile.cmake
+++ b/ports/gdcm2/portfile.cmake
@@ -14,15 +14,14 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO malaterre/GDCM
- REF v2.6.8
- SHA512 f3b571f7e00b42b444acd6d696ba1979b6ef83e84744ecddb05ad09d8d2443027145c50cb67c6bc25d6b8e009833b643e575ab988106cb981f529cf455a9b0bc
- HEAD_REF master
+ REF v2.8.6
+ SHA512 c04c131afae6a326978d82ea7c6f42eaa5d8e0f9d9dc3b6ad531a2d6ef7261e603cef32f364609ae99ff33f144373fe7bdd62056e535b6d487b0a4b13919062e
)
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/gdcmSystem.patch
+ ${CMAKE_CURRENT_LIST_DIR}/socketxx.patch
)
diff --git a/ports/gdcm2/socketxx.patch b/ports/gdcm2/socketxx.patch
new file mode 100644
index 000000000..0142910b1
--- /dev/null
+++ b/ports/gdcm2/socketxx.patch
@@ -0,0 +1,11 @@
+--- a/Utilities/socketxx/socket++/CMakeLists.txt
++++ b/Utilities/socketxx/socket++/CMakeLists.txt
+@@ -76,7 +76,7 @@
+ endif()
+ set_target_properties(${SOCKETXX_LIBRARY_NAME} PROPERTIES ${SOCKETXX_LIBRARY_PROPERTIES})
+ if(BUILD_SHARED_LIBS)
+- set_target_properties(${SOCKETXX_LIBRARY_NAME} PROPERTIES INTERFACE_LINK_LIBRARIES "" LINK_INTERFACE_LIBRARIES "")
++ set_target_properties(${SOCKETXX_LIBRARY_NAME} PROPERTIES INTERFACE_LINK_LIBRARIES "")
+ endif()
+
+ # Install library
diff --git a/ports/gdk-pixbuf/CMakeLists.txt b/ports/gdk-pixbuf/CMakeLists.txt
index 06a6b7032..0d56b7fad 100644
--- a/ports/gdk-pixbuf/CMakeLists.txt
+++ b/ports/gdk-pixbuf/CMakeLists.txt
@@ -34,6 +34,7 @@ add_library(gdk-pixbuf
gdk-pixbuf/gdk-pixbuf-util.c
gdk-pixbuf/gdk-pixdata.c
gdk-pixbuf/gdk-pixbuf-enum-types.c
+ gdk-pixbuf/gdk-pixbuf-marshal.c
gdk-pixbuf/io-ani.c
gdk-pixbuf/io-ani-animation.c
gdk-pixbuf/io-icns.c
diff --git a/ports/gdk-pixbuf/CONTROL b/ports/gdk-pixbuf/CONTROL
index 23edca2e0..2a0fbfaf3 100644
--- a/ports/gdk-pixbuf/CONTROL
+++ b/ports/gdk-pixbuf/CONTROL
@@ -1,4 +1,4 @@
Source: gdk-pixbuf
-Version: 2.36.6
+Version: 2.36.9-1
Description: Image loading library.
Build-Depends: gettext, zlib, libpng, glib
diff --git a/ports/gdk-pixbuf/portfile.cmake b/ports/gdk-pixbuf/portfile.cmake
index 36b64a553..72469abff 100644
--- a/ports/gdk-pixbuf/portfile.cmake
+++ b/ports/gdk-pixbuf/portfile.cmake
@@ -4,13 +4,13 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
endif()
set(GDK_PIXBUF_VERSION 2.36)
-set(GDK_PIXBUF_PATCH 6)
+set(GDK_PIXBUF_PATCH 9)
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gdk-pixbuf-${GDK_PIXBUF_VERSION}.${GDK_PIXBUF_PATCH})
vcpkg_download_distfile(ARCHIVE
URLS "http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/${GDK_PIXBUF_VERSION}/gdk-pixbuf-${GDK_PIXBUF_VERSION}.${GDK_PIXBUF_PATCH}.tar.xz"
FILENAME "gdk-pixbuf-${GDK_PIXBUF_VERSION}.${GDK_PIXBUF_PATCH}.tar.xz"
- SHA512 b963f01161b58463c83499079545aa946fd824ec5e7167e0898698ac46e0cc3fb3dcb0cac5afabd6b7d957391b9c9bba55f340294076433155fc91052d5403ec)
+ SHA512 ab8f2cda4490012936b094a1321e64b85e1fa1f8d070fae135a514f87f695201b845f4192e4a02954e2767d44314c0a95d727118853528182952d15890130261)
vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
diff --git a/ports/geogram/CONTROL b/ports/geogram/CONTROL
new file mode 100644
index 000000000..81df11d9c
--- /dev/null
+++ b/ports/geogram/CONTROL
@@ -0,0 +1,4 @@
+Source: geogram
+Version: 1.6.0-1
+Description: Geogram is a programming library of geometric algorithms.
+Build-Depends: glfw3, openblas, clapack
diff --git a/ports/geogram/Config.cmake.in b/ports/geogram/Config.cmake.in
new file mode 100644
index 000000000..72808723e
--- /dev/null
+++ b/ports/geogram/Config.cmake.in
@@ -0,0 +1,4 @@
+@PACKAGE_INIT@
+
+include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake")
+check_required_components("@PROJECT_NAME@") \ No newline at end of file
diff --git a/ports/geogram/fix-cmake-config-and-install.patch b/ports/geogram/fix-cmake-config-and-install.patch
new file mode 100644
index 000000000..d4dce24e1
--- /dev/null
+++ b/ports/geogram/fix-cmake-config-and-install.patch
@@ -0,0 +1,209 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 17dc02e..e489d75 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -42,7 +42,7 @@ set(VORPALINE_VERSION_MINOR 6)
+ set(VORPALINE_VERSION_PATCH 0)
+ set(VORPALINE_VERSION ${VORPALINE_VERSION_MAJOR}.${VORPALINE_VERSION_MINOR}.${VORPALINE_VERSION_PATCH})
+
+-set(VORPALINE_INCLUDE_SUBPATH geogram${VORPALINE_VERSION_MAJOR})
++set(VORPALINE_INCLUDE_SUBPATH ./)
+
+ # Determine the current Build-OS (Build-platform without the compiler info)
+ string(REGEX REPLACE "-[^-]+$" "" VORPALINE_OS ${VORPALINE_PLATFORM})
+@@ -106,6 +106,11 @@ if(GEOGRAM_WITH_VORPALINE)
+ add_subdirectory(src/lib/vorpalib)
+ endif()
+
++# find this library in the outside scope
++if(GEOGRAM_WITH_GRAPHICS)
++ find_package(GLFW3 REQUIRED)
++endif(GEOGRAM_WITH_GRAPHICS)
++
+ add_subdirectory(src/lib/third_party)
+
+ if(GEOGRAM_WITH_GRAPHICS)
+@@ -138,8 +143,44 @@ file(REMOVE ${CMAKE_BINARY_DIR}/doc/LICENSE.txt)
+
+
+ # FindGeogram.cmake
++# This installation is not suitable for vcpkg
++# install(FILES cmake/FindGeogram.cmake DESTINATION lib/cmake/modules COMPONENT devkit)
++
++set(config_install_dir "share/geogram")
++set(include_install_dir "include")
++set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
++
++# Configuration
++set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
++set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
++set(targets_export_name "${PROJECT_NAME}Targets")
++set(namespace "${PROJECT_NAME}::")
++
++# Include module with fuction 'write_basic_package_version_file'
++include(CMakePackageConfigHelpers)
++
++write_basic_package_version_file(
++ "${version_config}" COMPATIBILITY SameMajorVersion VERSION ${VORPALINE_VERSION}
++)
++
++configure_package_config_file(
++ "cmake/Config.cmake.in"
++ "${project_config}"
++ INSTALL_DESTINATION "${config_install_dir}"
++)
+
+-install(FILES cmake/FindGeogram.cmake DESTINATION lib/cmake/modules COMPONENT devkit)
++# Config
++install(
++ FILES "${project_config}" "${version_config}"
++ DESTINATION "${config_install_dir}"
++)
++
++# Config
++install(
++ EXPORT "${targets_export_name}"
++ NAMESPACE "${namespace}"
++ DESTINATION "${config_install_dir}"
++)
+
+ # Configure CPack
+
+diff --git a/src/lib/geogram/CMakeLists.txt b/src/lib/geogram/CMakeLists.txt
+index d90bc48..927f857 100644
+--- a/src/lib/geogram/CMakeLists.txt
++++ b/src/lib/geogram/CMakeLists.txt
+@@ -47,7 +47,14 @@ if(WIN32)
+ endif()
+
+ # Install the library
+-install_devkit_targets(geogram)
++install(
++ TARGETS geogram
++ EXPORT "${PROJECT_NAME}Targets"
++ LIBRARY DESTINATION "lib"
++ ARCHIVE DESTINATION "lib"
++ RUNTIME DESTINATION "bin"
++ INCLUDES DESTINATION "include"
++)
+
+ # Install include files for the standard devkit
+ install(
+diff --git a/src/lib/geogram_gfx/CMakeLists.txt b/src/lib/geogram_gfx/CMakeLists.txt
+index f319b93..e24039d 100644
+--- a/src/lib/geogram_gfx/CMakeLists.txt
++++ b/src/lib/geogram_gfx/CMakeLists.txt
+@@ -33,14 +33,21 @@ if(VORPALINE_BUILD_DYNAMIC)
+ endif()
+
+ # Install the library
+-install_devkit_targets(geogram_gfx)
++install(
++ TARGETS geogram_gfx
++ EXPORT "${PROJECT_NAME}Targets"
++ LIBRARY DESTINATION "lib"
++ ARCHIVE DESTINATION "lib"
++ RUNTIME DESTINATION "bin"
++ INCLUDES DESTINATION "include"
++)
+
+ # Install include files for the standard devkit
+ install(
+ DIRECTORY .
+ DESTINATION include/${VORPALINE_INCLUDE_SUBPATH}/geogram_gfx
+ COMPONENT devkit
+- FILES_MATCHING PATTERN *.h
++ FILES_MATCHING PATTERN *.h PATTERN *.xpm # xpm is the colrbar file
+ )
+
+ # Install include files for the full devkit
+@@ -48,7 +55,7 @@ install(
+ DIRECTORY .
+ DESTINATION include/${VORPALINE_INCLUDE_SUBPATH}/geogram_gfx
+ COMPONENT devkit-full
+- FILES_MATCHING PATTERN *.h
++ FILES_MATCHING PATTERN *.h PATTERN *.xpm # xpm is the colrbar file
+ )
+
+ install(
+diff --git a/src/lib/third_party/numerics/CMakeLists.txt b/src/lib/third_party/numerics/CMakeLists.txt
+index 5789cd2..e4262e3 100644
+--- a/src/lib/third_party/numerics/CMakeLists.txt
++++ b/src/lib/third_party/numerics/CMakeLists.txt
+@@ -10,16 +10,19 @@ endif()
+
+ include_directories(${GEOGRAM_SOURCE_DIR}/src/lib/third_party/numerics/INCLUDE)
+
++set(LAPACK_lapack_WORKS TRUE)
++find_package(BLAS REQUIRED)
++find_package(LAPACK REQUIRED)
+ aux_source_directories(SOURCES "Source Files" .)
+ aux_source_directories(SOURCES "Source Files\\LIBF2C" LIBF2C)
+-aux_source_directories(SOURCES "Source Files\\CBLAS" CBLAS)
+-aux_source_directories(SOURCES "Source Files\\CLAPACK" CLAPACK)
++# aux_source_directories(SOURCES "Source Files\\CBLAS" CBLAS)
++# aux_source_directories(SOURCES "Source Files\\CLAPACK" CLAPACK)
+ aux_source_directories(SOURCES "Source Files\\SUPERLU" SUPERLU)
+ aux_source_directories(SOURCES "Source Files\\ARPACK" ARPACK)
+ aux_source_directories(SOURCES "Source Files\\ARPACK_UTIL" ARPACK_UTIL)
+
+ add_library(geogram_num_3rdparty ${SOURCES})
+-
++target_link_libraries(geogram_num_3rdparty ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
+ if(UNIX)
+ target_link_libraries(geogram_num_3rdparty m)
+ endif()
+diff --git a/src/lib/third_party/numerics/LIBF2C/getarg_.c b/src/lib/third_party/numerics/LIBF2C/getarg_.c
+index 2b69a1e..a504538 100644
+--- a/src/lib/third_party/numerics/LIBF2C/getarg_.c
++++ b/src/lib/third_party/numerics/LIBF2C/getarg_.c
+@@ -17,20 +17,20 @@ VOID getarg_(n, s, ls) ftnint *n; char *s; ftnlen ls;
+ void getarg_(ftnint *n, char *s, ftnlen ls)
+ #endif
+ {
+- extern int xargc;
+- extern char **xargv;
+- Const char *t;
+- int i;
++ // extern int xargc;
++ // extern char **xargv;
++ // Const char *t;
++ // int i;
+
+- if(*n>=0 && *n<xargc)
+- t = xargv[*n];
+- else
+- t = "";
+- for(i = 0; i<ls && *t!='\0' ; ++i)
+- *s++ = *t++;
+- for( ; i<ls ; ++i)
+- *s++ = ' ';
+- }
++ // if(*n>=0 && *n<xargc)
++ // t = xargv[*n];
++ // else
++ // t = "";
++ // for(i = 0; i<ls && *t!='\0' ; ++i)
++ // *s++ = *t++;
++ // for( ; i<ls ; ++i)
++ // *s++ = ' ';
++}
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/src/lib/third_party/numerics/LIBF2C/iargc_.c b/src/lib/third_party/numerics/LIBF2C/iargc_.c
+index 2f29da0..50b00de 100644
+--- a/src/lib/third_party/numerics/LIBF2C/iargc_.c
++++ b/src/lib/third_party/numerics/LIBF2C/iargc_.c
+@@ -9,8 +9,9 @@ ftnint iargc_()
+ ftnint iargc_(void)
+ #endif
+ {
+-extern int xargc;
+-return ( xargc - 1 );
++// extern int xargc;
++// return ( xargc - 1 );
++return -1;
+ }
+ #ifdef __cplusplus
+ }
diff --git a/ports/geogram/portfile.cmake b/ports/geogram/portfile.cmake
new file mode 100644
index 000000000..17a03e6a5
--- /dev/null
+++ b/ports/geogram/portfile.cmake
@@ -0,0 +1,67 @@
+# 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/geogram_1.6.0)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://gforge.inria.fr/frs/download.php/file/37375/geogram_1.6.0.zip"
+ FILENAME "geogram-1.6.0.zip"
+ SHA512 8ae0f976338b4e47e2ef3c8cebc48e3957133131be89318df187295b813d3b45557a7dae848b42366635c3f957a63161da2302bb73e6a2af8dd745cfcc122988
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+file(COPY ${CURRENT_PORT_DIR}/Config.cmake.in DESTINATION ${SOURCE_PATH}/cmake)
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-cmake-config-and-install.patch
+)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ # PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ -DVORPALINE_BUILD_DYNAMIC=FALSE
+ -DGEOGRAM_WITH_GRAPHICS=ON
+ -DGEOGRAM_LIB_ONLY=ON
+ -DGEOGRAM_USE_SYSTEM_GLFW3=ON
+ -DVORPALINE_PLATFORM=Win-vs-generic
+ -DGEOGRAM_WITH_VORPALINE=OFF
+ # OPTIONS_RELEASE -DOPTIMIZE=1
+ # OPTIONS_DEBUG -DDEBUGGABLE=1
+ )
+else()
+ vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ # PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ -DVORPALINE_BUILD_DYNAMIC=TRUE
+ -DGEOGRAM_LIB_ONLY=ON
+ -DGEOGRAM_USE_SYSTEM_GLFW3=ON
+ -DVORPALINE_PLATFORM=Win-vs-dynamic-generic
+ -DGEOGRAM_WITH_VORPALINE=OFF
+ # OPTIONS_RELEASE -DOPTIMIZE=1
+ # OPTIONS_DEBUG -DDEBUGGABLE=1
+ )
+endif()
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+vcpkg_fixup_cmake_targets(CONFIG_PATH "share/geogram")
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/doc)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/doc)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/doc/devkit/license.dox DESTINATION ${CURRENT_PACKAGES_DIR}/share/geogram)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/geogram/license.dox ${CURRENT_PACKAGES_DIR}/share/geogram/copyright)
diff --git a/ports/geographiclib/CONTROL b/ports/geographiclib/CONTROL
index 836049a66..993239b96 100644
--- a/ports/geographiclib/CONTROL
+++ b/ports/geographiclib/CONTROL
@@ -1,3 +1,3 @@
Source: geographiclib
-Version: 1.47-patch1-3
+Version: 1.47-patch1-4
Description: a small set of C++ classes for performing conversions between geographic, UTM, UPS, MGRS, geocentric, and local cartesian coordinates, for gravity (e.g., EGM2008), geoid height, and geomagnetic field (e.g., WMM2010) calculations, and for solving geodesic problems.
diff --git a/ports/geos/CONTROL b/ports/geos/CONTROL
index c0ec7b134..1a32a8103 100644
--- a/ports/geos/CONTROL
+++ b/ports/geos/CONTROL
@@ -1,3 +1,3 @@
Source: geos
-Version: 3.5.0
+Version: 3.6.2-3
Description: Geometry Engine Open Source
diff --git a/ports/geos/geos_c-static-support.patch b/ports/geos/geos_c-static-support.patch
new file mode 100644
index 000000000..148e63057
--- /dev/null
+++ b/ports/geos/geos_c-static-support.patch
@@ -0,0 +1,110 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 927a0fe..8e6c3ea 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -66,11 +66,7 @@ if(NOT MSVC)
+ "Set to ON|OFF (default) to build GEOS with assert() macro enabled" OFF)
+ endif()
+
+-option(GEOS_BUILD_STATIC
+- "Set to OFF|ON (default) to build GEOS static libraries" ON)
+-
+-option(GEOS_BUILD_SHARED
+- "Set to OFF|ON (default) to build GEOS shared libraries" ON)
++option(BUILD_SHARED_LIBS "Build GEOS as a shared library" ON)
+
+ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
+ option(GEOS_ENABLE_FLOATSTORE
+diff --git a/capi/CMakeLists.txt b/capi/CMakeLists.txt
+index 859722b..b6e44b6 100644
+--- a/capi/CMakeLists.txt
++++ b/capi/CMakeLists.txt
+@@ -23,15 +23,23 @@ file(GLOB geos_capi_HEADERS ${CMAKE_BINARY_DIR}/capi/*.h) # fix source_group iss
+
+ if(NOT GEOS_ENABLE_MACOSX_FRAMEWORK)
+ # if building OS X framework, CAPI built into C++ library
+- add_library(geos_c SHARED ${geos_c_SOURCES})
++ add_library(geos_c ${geos_c_SOURCES})
+
+ target_link_libraries(geos_c geos)
+
+ if (WIN32)
+- set_target_properties(geos_c
+- PROPERTIES
+- VERSION ${CAPI_VERSION}
+- CLEAN_DIRECT_OUTPUT 1)
++ if(BUILD_SHARED_LIBS)
++ set_target_properties(geos_c
++ PROPERTIES
++ VERSION ${CAPI_VERSION}
++ CLEAN_DIRECT_OUTPUT 1)
++ else()
++ set_target_properties(geos_c
++ PROPERTIES
++ OUTPUT_NAME "geos_c"
++ PREFIX "lib"
++ CLEAN_DIRECT_OUTPUT 1)
++ endif()
+ else()
+ set_target_properties(geos_c
+ PROPERTIES
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 4a1e688..a33b5f6 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -23,7 +23,7 @@ if(GEOS_ENABLE_MACOSX_FRAMEWORK)
+ ${CMAKE_CURRENT_SOURCE_DIR}/../capi/geos_c.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/../capi/geos_ts_c.cpp)
+
+- add_library(GEOS SHARED ${geos_SOURCES} ${geos_c_SOURCES})
++ add_library(GEOS ${geos_SOURCES} ${geos_c_SOURCES})
+
+ math(EXPR CVERSION "${VERSION_MAJOR} + 1")
+ # VERSION = current version, SOVERSION = compatibility version
+@@ -61,37 +61,27 @@ if(GEOS_ENABLE_MACOSX_FRAMEWORK)
+
+ else()
+
+- if(GEOS_BUILD_SHARED)
+- add_library(geos SHARED ${geos_SOURCES} ${geos_ALL_HEADERS})
++ add_library(geos ${geos_SOURCES} ${geos_ALL_HEADERS})
+
++ if(BUILD_SHARED_LIBS)
+ set_target_properties(geos
+ PROPERTIES
+ DEFINE_SYMBOL GEOS_DLL_EXPORT
+ VERSION ${VERSION}
+ CLEAN_DIRECT_OUTPUT 1)
+-
+- install(TARGETS geos
+- RUNTIME DESTINATION bin
+- LIBRARY DESTINATION lib
+- ARCHIVE DESTINATION lib)
+- endif()
+-
+- if(GEOS_BUILD_STATIC)
+- add_library(geos-static STATIC ${geos_SOURCES} ${geos_ALL_HEADERS})
+-
+- set_target_properties(geos-static
++ else()
++ set_target_properties(geos
+ PROPERTIES
+ OUTPUT_NAME "geos"
+ PREFIX "lib"
+ CLEAN_DIRECT_OUTPUT 1)
+-
+- install(TARGETS geos-static
+- RUNTIME DESTINATION bin
+- LIBRARY DESTINATION lib
+- ARCHIVE DESTINATION lib)
+-
+ endif()
+
++ install(TARGETS geos
++ RUNTIME DESTINATION bin
++ LIBRARY DESTINATION lib
++ ARCHIVE DESTINATION lib)
++
+ endif() # (GEOS_ENABLE_MACOSX_FRAMEWORK)
+
+ # if(APPLE)
diff --git a/ports/geos/portfile.cmake b/ports/geos/portfile.cmake
index 7cd50db58..e5a404254 100644
--- a/ports/geos/portfile.cmake
+++ b/ports/geos/portfile.cmake
@@ -7,40 +7,47 @@
#
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/3.5)
-#downloading 3.5 from their SVN repo and not the release tarball
-#because the 3.5 release did not build on windows, and fixes were backported
-#without generating a new release tarball (I don't think very many GIS people use win)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/geos-3.6.2)
+
vcpkg_download_distfile(ARCHIVE
- URLS "https://trac.osgeo.org/geos/browser/branches/3.5?rev=4261&format=zip"
- FILENAME "geos-3.5.0.zip"
- SHA512 3b91e8992f60b99a3f01069d955b71bce425ae5e5c599252fa26a337494e1a5a8ea796be124766d054710d6c03806f56dc1c63539b4660e2bb894d7ef779d4b9
+ URLS "http://download.osgeo.org/geos/geos-3.6.2.tar.bz2"
+ FILENAME "geos-3.6.2.tar.bz2"
+ SHA512 515d8700b8a28282678e481faee355e3a43d7b70160472a63335b8d7225d9ba10437be782378f18f31a15288118126d411a2d862f01ce35d27c96f6bc0a73016
)
vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_apply_patches(
+
+SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/geos_c-static-support.patch
+)
+
+# NOTE: GEOS provides CMake as optional build configuration, it might not be actively
+# maintained, so CMake build issues may happen between releases.
+
+# Pull modules referred in the main CMakeLists.txt but missing from the released package.
+# TODO: GEOS 3.6.3 or later will include the missing script in release package.
+file(DOWNLOAD http://svn.osgeo.org/geos/branches/3.6/cmake/modules/GenerateSourceGroups.cmake
+ ${SOURCE_PATH}/cmake/modules/GenerateSourceGroups.cmake)
-#we need to do this because GEOS deploy process is totally broken for cmake
-#file(DOWNLOAD http://svn.osgeo.org/geos/tags/3.5.0/cmake/modules/GenerateSourceGroups.cmake
-# ${SOURCE_PATH}/cmake/modules/GenerateSourceGroups.cmake)
-file(WRITE ${SOURCE_PATH}/geos_svn_revision.h "#define GEOS_SVN_REVISION 4261")
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS -DGEOS_ENABLE_TESTS=False
- -DBUILD_TESTING=False
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ -DCMAKE_DEBUG_POSTFIX=d
+ -DGEOS_ENABLE_TESTS=False
)
-
-vcpkg_build_cmake()
vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/geos)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/geos/COPYING ${CURRENT_PACKAGES_DIR}/share/geos/copyright)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/libgeos.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libgeos.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/libgeos.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libgeosd.lib)
else()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/geos.lib ${CURRENT_PACKAGES_DIR}/debug/lib/geos.lib)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/geos_c.lib ${CURRENT_PACKAGES_DIR}/debug/lib/geos_c.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/geos.lib ${CURRENT_PACKAGES_DIR}/debug/lib/geosd.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/geos_c.lib ${CURRENT_PACKAGES_DIR}/debug/lib/geos_cd.lib)
endif()
-vcpkg_copy_pdbs() \ No newline at end of file
+vcpkg_copy_pdbs()
diff --git a/ports/gettext/0001-Fix-macro-definitions.patch b/ports/gettext/0001-Fix-macro-definitions.patch
index 506c43dba..07529da97 100644
--- a/ports/gettext/0001-Fix-macro-definitions.patch
+++ b/ports/gettext/0001-Fix-macro-definitions.patch
@@ -1,37 +1,27 @@
-From df8121a8822245df0b191b7d3b1654611fdac1b2 Mon Sep 17 00:00:00 2001
-From: vlj <vljn.ovi@gmail.com>
-Date: Tue, 1 Nov 2016 23:09:06 +0100
-Subject: [PATCH] Fix macro definitions.
-
----
- gettext-0.19/gettext-runtime/intl/printf-parse.c | 4 +++-
- gettext-0.19/gettext-runtime/intl/xsize.h | 6 ++++++
- 2 files changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/gettext-0.19/gettext-runtime/intl/printf-parse.c b/gettext-0.19/gettext-runtime/intl/printf-parse.c
-index 0e2d2c7..8cedfc6 100644
---- a/gettext-0.19/gettext-runtime/intl/printf-parse.c
-+++ b/gettext-0.19/gettext-runtime/intl/printf-parse.c
+diff --git a/gettext-runtime/intl/printf-parse.c b/gettext-runtime/intl/printf-parse.c
+index 0e2d2c7..e1dc39b 100644
+--- a/gettext-runtime/intl/printf-parse.c
++++ b/gettext-runtime/intl/printf-parse.c
@@ -48,7 +48,9 @@
#include <stddef.h>
/* Get intmax_t. */
-#if defined IN_LIBINTL || defined IN_LIBASPRINTF
-+#if _MSC_VER
++#if defined _MSC_VER
+# define intmax_t long int
+#elif defined IN_LIBINTL || defined IN_LIBASPRINTF
# if HAVE_STDINT_H_WITH_UINTMAX
# include <stdint.h>
# endif
-diff --git a/gettext-0.19/gettext-runtime/intl/xsize.h b/gettext-0.19/gettext-runtime/intl/xsize.h
-index c256665..d09e79f 100644
---- a/gettext-0.19/gettext-runtime/intl/xsize.h
-+++ b/gettext-0.19/gettext-runtime/intl/xsize.h
+diff --git a/gettext-runtime/intl/xsize.h b/gettext-runtime/intl/xsize.h
+index c256665..7400ea1 100644
+--- a/gettext-runtime/intl/xsize.h
++++ b/gettext-runtime/intl/xsize.h
@@ -27,6 +27,12 @@
# include <stdint.h>
#endif
-+#ifdef _WIN32
++#if defined _WIN32
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
+# define _GL_INLINE static inline
@@ -40,6 +30,3 @@ index c256665..d09e79f 100644
#ifndef _GL_INLINE_HEADER_BEGIN
#error "Please include config.h first."
#endif
---
-2.10.1.windows.1
-
diff --git a/ports/gettext/0002-Fix-uwp-build.patch b/ports/gettext/0002-Fix-uwp-build.patch
new file mode 100644
index 000000000..154131544
--- /dev/null
+++ b/ports/gettext/0002-Fix-uwp-build.patch
@@ -0,0 +1,77 @@
+diff --git "a/gettext-runtime/intl/langprefs.c" "b/gettext-runtime/intl/langprefs.c"
+index aeb1c4e9..2ac531be 100644
+--- "a/gettext-runtime/intl/langprefs.c"
++++ "b/gettext-runtime/intl/langprefs.c"
+@@ -33,7 +33,13 @@ extern void _nl_locale_name_canonicalize (char *name);
+ #endif
+
+ #if defined _WIN32 || defined __WIN32__
+-# define WIN32_NATIVE
++# if !defined(WINAPI_FAMILY)
++# define WIN32_NATIVE
++# else
++# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
++# define WIN32_NATIVE
++# endif
++# endif
+ #endif
+
+ #ifdef WIN32_NATIVE
+diff --git "a/gettext-runtime/intl/localcharset.c" "b/gettext-runtime/intl/localcharset.c"
+index 670b8e6c..035a96bd 100644
+--- "a/gettext-runtime/intl/localcharset.c"
++++ "b/gettext-runtime/intl/localcharset.c"
+@@ -36,6 +36,16 @@
+ # define WINDOWS_NATIVE
+ #endif
+
++#if defined _WIN32 || defined __WIN32__
++# if !defined(WINAPI_FAMILY)
++# define HAVE_ACP
++# else
++# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
++# define HAVE_ACP
++# endif
++# endif
++#endif
++
+ #if defined __EMX__
+ /* Assume EMX program runs on OS/2, even if compiled under DOS. */
+ # ifndef OS2
+@@ -361,7 +371,7 @@ STATIC
+ const char *
+ locale_charset (void)
+ {
+- const char *codeset;
++ const char *codeset = NULL;
+ const char *aliases;
+
+ #if !(defined WINDOWS_NATIVE || defined OS2)
+@@ -457,7 +467,7 @@ locale_charset (void)
+
+ # endif
+
+-#elif defined WINDOWS_NATIVE
++#elif defined WINDOWS_NATIVE && defined HAVE_ACP
+
+ static char buf[2 + 10 + 1];
+
+diff --git "a/gettext-runtime/intl/localename.c" "b/gettext-runtime/intl/localename.c"
+index 108dd6f1..ace3aa88 100644
+--- "a/gettext-runtime/intl/localename.c"
++++ "b/gettext-runtime/intl/localename.c"
+@@ -54,7 +54,13 @@
+ #endif
+
+ #if defined _WIN32 || defined __WIN32__
+-# define WINDOWS_NATIVE
++# if !defined(WINAPI_FAMILY)
++# define WINDOWS_NATIVE
++# else
++# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
++# define WINDOWS_NATIVE
++# endif
++# endif
+ #endif
+
+ #if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */
diff --git a/ports/gettext/CMakeLists.txt b/ports/gettext/CMakeLists.txt
index 410ff9c0a..7df8c33dc 100644
--- a/ports/gettext/CMakeLists.txt
+++ b/ports/gettext/CMakeLists.txt
@@ -1 +1,95 @@
-add_subdirectory(gettext-runtime) \ No newline at end of file
+cmake_minimum_required(VERSION 3.5)
+project(libintl C)
+
+find_package(unofficial-iconv REQUIRED)
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR}/config .)
+
+set(CMAKE_STATIC_LIBRARY_PREFIX)
+set(CMAKE_SHARED_LIBRARY_PREFIX)
+
+if(WIN32)
+ set(HAVE_POSIX_PRINTF 0)
+ set(HAVE_SNPRINTF 0)
+ set(HAVE_ASPRINTF 0)
+ set(HAVE_WPRINTF 0)
+ set(HAVE_NEWLOCALE 0)
+
+ configure_file(intl/libgnuintl.win32.h config/libgnuintl.h COPYONLY)
+ configure_file(config.win32.h config/config.h COPYONLY)
+else()
+ set(HAVE_POSIX_PRINTF 1)
+ set(HAVE_SNPRINTF 1)
+ set(HAVE_ASPRINTF 1)
+ set(HAVE_WPRINTF 1)
+ set(HAVE_NEWLOCALE 1)
+ add_definitions(-DHAVE_NEWLOCALE=1)
+
+ configure_file(intl/libgnuintl.in.h config/libgnuintl.h @ONLY)
+ configure_file(config.win32.h config/config.h COPYONLY)
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/config/libgnuintl.h" DESTINATION include RENAME libintl.h)
+endif()
+
+file(READ "${CMAKE_CURRENT_BINARY_DIR}/config/config.h" _contents)
+if(NOT WIN32)
+ string(REPLACE "/* #undef HAVE_STPCPY */" "#define HAVE_STPCPY 1" _contents "${_contents}")
+endif()
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config/config.h" "${_contents}")
+
+FILE(GLOB SOURCES
+ "intl/bindtextdom.c"
+ "intl/dcgettext.c"
+ "intl/dcigettext.c"
+ "intl/dcngettext.c"
+ "intl/dgettext.c"
+ "intl/dngettext.c"
+ "intl/explodename.c"
+ "intl/finddomain.c"
+ "intl/gettext.c"
+ "intl/hash-string.c"
+ "intl/intl-compat.c"
+ "intl/l10nflist.c"
+ "intl/langprefs.c"
+ "intl/loadmsgcat.c"
+ "intl/localealias.c"
+ "intl/localename.c"
+ "intl/lock.c"
+ "intl/log.c"
+ "intl/ngettext.c"
+ "intl/osdep.c"
+ "intl/plural-exp.c"
+ "intl/plural.c"
+ "intl/printf.c"
+ "intl/relocatable.c"
+ "intl/textdomain.c"
+ "intl/version.c"
+)
+if(NOT WIN32)
+ list(APPEND SOURCES "intl/setlocale.c")
+endif()
+
+set(LOCALDIR "c:/gettext")
+
+add_definitions(-DLOCALEDIR=\"${LOCALDIR}\")
+add_definitions(-DLOCALE_ALIAS_PATH=\"${LOCALDIR}\")
+add_definitions(-DLIBDIR=\"${LOCALDIR}\")
+add_definitions(-DINSTALLDIR=\"${LOCALDIR}\")
+if(BUILD_SHARED_LIBS)
+ add_definitions(-DBUILDING_DLL)
+endif()
+add_definitions("-DBUILDING_LIBINTL -DIN_LIBINTL -DENABLE_RELOCATABLE=1 -DIN_LIBRARY")
+
+add_definitions("-DNO_XMALLOC -Dset_relocation_prefix=libintl_set_relocation_prefix -Drelocate=libintl_relocate -DDEPENDS_ON_LIBICONV=1 -DHAVE_CONFIG_H -D_CRT_SECURE_NO_WARNINGS")
+
+add_library(libintl ${SOURCES})
+target_link_libraries(libintl PRIVATE unofficial::iconv::libcharset unofficial::iconv::libiconv)
+
+install(TARGETS libintl
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION bin
+ ARCHIVE DESTINATION lib
+)
+
diff --git a/ports/gettext/CMakeLists_libintl.txt b/ports/gettext/CMakeLists_libintl.txt
deleted file mode 100644
index f01cf632c..000000000
--- a/ports/gettext/CMakeLists_libintl.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-cmake_policy(SET CMP0005 OLD)
-
-project(libintl)
-
-include_directories(".")
-
-FILE(GLOB SOURCES
-"intl/bindtextdom.c"
-"intl/dcgettext.c"
-"intl/dcigettext.c"
-"intl/dcngettext.c"
-"intl/dgettext.c"
-"intl/dngettext.c"
-"intl/explodename.c"
-"intl/finddomain.c"
-"intl/gettext.c"
-"intl/hash-string.c"
-"intl/intl-compat.c"
-"intl/l10nflist.c"
-"intl/langprefs.c"
-"intl/loadmsgcat.c"
-"intl/localcharset.c"
-"intl/localealias.c"
-"intl/localename.c"
-"intl/lock.c"
-"intl/log.c"
-"intl/ngettext.c"
-"intl/osdep.c"
-"intl/plural-exp.c"
-"intl/plural.c"
-"intl/printf.c"
-"intl/relocatable.c"
-"intl/textdomain.c"
-"intl/version.c"
-)
-
-set(LOCALDIR "c:\\gettext")
-
-add_definitions(-DLOCALEDIR=\\\"${LOCALDIR}\\\")
-add_definitions(-DLOCALE_ALIAS_PATH=\\\"${LOCALDIR}\\\")
-add_definitions(-DLIBDIR=\\\"${LOCALDIR}\\\")
-add_definitions(-DINSTALLDIR=\\\"${LOCALDIR}\\\")
-add_definitions("-DBUILDING_LIBINTL -DBUILDING_DLL -DIN_LIBINTL -DENABLE_RELOCATABLE=1 -DIN_LIBRARY")
-
-add_definitions("-DNO_XMALLOC -Dset_relocation_prefix=libintl_set_relocation_prefix -Drelocate=libintl_relocate -DDEPENDS_ON_LIBICONV=1 -DHAVE_CONFIG_H -D_CRT_SECURE_NO_WARNINGS")
-
-add_library(libintl ${SOURCES})
-
-install(TARGETS libintl
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION bin
- ARCHIVE DESTINATION lib
-)
-
diff --git a/ports/gettext/CONTROL b/ports/gettext/CONTROL
index 3ab837168..9044cd724 100644
--- a/ports/gettext/CONTROL
+++ b/ports/gettext/CONTROL
@@ -1,3 +1,4 @@
Source: gettext
-Version: 0.19
+Version: 0.19-4
Description: The GNU gettext utilities are a set of tools that provides a framework to help other GNU packages produce multi-lingual messages
+Build-Depends: libiconv
diff --git a/ports/gettext/config.h b/ports/gettext/config.win32.h
index cde9f23b4..0d3c1d34e 100644
--- a/ports/gettext/config.h
+++ b/ports/gettext/config.win32.h
@@ -1,6 +1,15 @@
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.ac by autoheader. */
+#ifndef WIN32
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
+# define _GL_INLINE static inline
+#endif
+
+/* Disable function deprecated warnings */
+#define _CRT_NONSTDC_NO_WARNINGS
+
/* Define to the number of bits in type 'ptrdiff_t'. */
#define BITSIZEOF_PTRDIFF_T sizeof(ptrdiff_t)
@@ -35,7 +44,7 @@
#define ENABLE_NLS 1
/* Define to 1 if the package shall run at any location in the filesystem. */
-/* #undef ENABLE_RELOCATABLE */
+#define ENABLE_RELOCATABLE 1
/* Define to 1 when using the gnulib module fwriteerror. */
#define GNULIB_FWRITEERROR 1
@@ -468,7 +477,9 @@
/* Define as the maximum value of type 'size_t', if the system doesn't define
it. */
+#if defined(_WIN32)
#define SIZE_MAX (((1UL << 31) - 1) * 2 + 1)
+#endif
/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
'size_t'. */
@@ -604,7 +615,7 @@
/* Define as a signed type of the same size as size_t. */
#ifdef _WIN64
#define ssize_t __int64
-#else
+#elif _WIN32
#define ssize_t __int32
#endif
@@ -615,7 +626,7 @@
<inttypes.h> don't define. */
#ifdef _WIN64
#define uintmax_t unsigned __int64
-#else
+#elif _WIN32
#define uintmax_t unsigned __int32
#endif
diff --git a/ports/gettext/libgnuintl.h b/ports/gettext/libgnuintl.win32.h
index eac6c8c25..440da4d59 100644
--- a/ports/gettext/libgnuintl.h
+++ b/ports/gettext/libgnuintl.win32.h
@@ -19,7 +19,7 @@ USA. */
#ifndef _LIBINTL_H
#define _LIBINTL_H 1
-#ifdef BUILDING_LIBINTL
+#if defined(_WIN32) && defined(libintl_EXPORTS)
#define LIBINTL_DLL_EXPORTED __declspec(dllexport)
#else
#define LIBINTL_DLL_EXPORTED
diff --git a/ports/gettext/portfile.cmake b/ports/gettext/portfile.cmake
index f14f7a707..cb5ea37c1 100644
--- a/ports/gettext/portfile.cmake
+++ b/ports/gettext/portfile.cmake
@@ -1,10 +1,7 @@
-# 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 AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+ return()
+endif()
#Based on https://github.com/winlibs/gettext
@@ -17,28 +14,31 @@ 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}/CMakeLists_libintl.txt DESTINATION ${SOURCE_PATH}/gettext-runtime)
-file(RENAME ${SOURCE_PATH}/gettext-runtime/CMakeLists_libintl.txt ${SOURCE_PATH}/gettext-runtime/CMakeLists.txt)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/libgnuintl.h DESTINATION ${SOURCE_PATH}/gettext-runtime/intl)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h DESTINATION ${SOURCE_PATH}/gettext-runtime)
+file(COPY
+ ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt
+ ${CMAKE_CURRENT_LIST_DIR}/config.win32.h
+ DESTINATION ${SOURCE_PATH}/gettext-runtime
+)
+file(REMOVE ${SOURCE_PATH}/gettext-runtime/intl/libgnuintl.h ${SOURCE_PATH}/gettext-runtime/config.h)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/libgnuintl.win32.h DESTINATION ${SOURCE_PATH}/gettext-runtime/intl)
vcpkg_apply_patches(
- SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/
+ SOURCE_PATH ${SOURCE_PATH}
PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-Fix-macro-definitions.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/0002-Fix-uwp-build.patch"
)
vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
+ SOURCE_PATH ${SOURCE_PATH}/gettext-runtime
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
)
vcpkg_install_cmake()
-file(COPY ${SOURCE_PATH}/gettext-runtime/intl/libgnuintl.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
-file(RENAME ${CURRENT_PACKAGES_DIR}/include/libgnuintl.h ${CURRENT_PACKAGES_DIR}/include/libintl.h)
-
# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/gettext)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/gettext/COPYING ${CURRENT_PACKAGES_DIR}/share/gettext/copyright)
-vcpkg_copy_pdbs() \ No newline at end of file
+vcpkg_copy_pdbs()
diff --git a/ports/gettimeofday/CMakeLists.txt b/ports/gettimeofday/CMakeLists.txt
new file mode 100644
index 000000000..4ec5b43a0
--- /dev/null
+++ b/ports/gettimeofday/CMakeLists.txt
@@ -0,0 +1,14 @@
+cmake_minimum_required(VERSION 3.8)
+project(gettimeofday C)
+
+add_library(gettimeofday gettimeofday.c gettimeofday.def)
+
+install(TARGETS gettimeofday
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
+
+if(CMAKE_BUILD_TYPE STREQUAL "Release")
+ install(FILES gettimeofday.h DESTINATION include)
+endif()
diff --git a/ports/gettimeofday/CONTROL b/ports/gettimeofday/CONTROL
new file mode 100644
index 000000000..3ae7e0682
--- /dev/null
+++ b/ports/gettimeofday/CONTROL
@@ -0,0 +1,3 @@
+Source: gettimeofday
+Version: 2017-10-14-2
+Description: An implementation of gettimeofday for WIN32
diff --git a/ports/gettimeofday/LICENSE b/ports/gettimeofday/LICENSE
new file mode 100644
index 000000000..57c986d30
--- /dev/null
+++ b/ports/gettimeofday/LICENSE
@@ -0,0 +1,33 @@
+/*
+ * Copied from PostgreSQL source:
+ * http://doxygen.postgresql.org/gettimeofday_8c_source.html
+ *
+ */
+
+/*
+ * gettimeofday.c
+ * Win32 gettimeofday() replacement
+ *
+ * src/port/gettimeofday.c
+ *
+ * Copyright (c) 2003 SRA, Inc.
+ * Copyright (c) 2003 SKC, Inc.
+ *
+ * Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose, without fee, and without a
+ * written agreement is hereby granted, provided that the above
+ * copyright notice and this paragraph and the following two
+ * paragraphs appear in all copies.
+ *
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT,
+ * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
+ * LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
+ * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS
+ * IS" BASIS, AND THE AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE,
+ * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ */
diff --git a/ports/gettimeofday/gettimeofday.c b/ports/gettimeofday/gettimeofday.c
new file mode 100644
index 000000000..62abf344a
--- /dev/null
+++ b/ports/gettimeofday/gettimeofday.c
@@ -0,0 +1,67 @@
+/*
+ * Copied from PostgreSQL source:
+ * http://doxygen.postgresql.org/gettimeofday_8c_source.html
+ *
+ */
+
+/*
+ * gettimeofday.c
+ * Win32 gettimeofday() replacement
+ *
+ * src/port/gettimeofday.c
+ *
+ * Copyright (c) 2003 SRA, Inc.
+ * Copyright (c) 2003 SKC, Inc.
+ *
+ * Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose, without fee, and without a
+ * written agreement is hereby granted, provided that the above
+ * copyright notice and this paragraph and the following two
+ * paragraphs appear in all copies.
+ *
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT,
+ * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
+ * LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
+ * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS
+ * IS" BASIS, AND THE AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE,
+ * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ */
+
+#ifdef _MSC_VER
+
+#include <winsock2.h>
+
+
+/* FILETIME of Jan 1 1970 00:00:00. */
+static const unsigned __int64 epoch = 116444736000000000Ui64;
+
+/*
+ * timezone information is stored outside the kernel so tzp isn't used anymore.
+ *
+ * Note: this function is not for Win32 high precision timing purpose. See
+ * elapsed_time().
+ */
+int
+gettimeofday(struct timeval * tp, struct timezone * tzp)
+{
+ FILETIME file_time;
+ SYSTEMTIME system_time;
+ ULARGE_INTEGER ularge;
+
+ GetSystemTime(&system_time);
+ SystemTimeToFileTime(&system_time, &file_time);
+ ularge.LowPart = file_time.dwLowDateTime;
+ ularge.HighPart = file_time.dwHighDateTime;
+
+ tp->tv_sec = (long) ((ularge.QuadPart - epoch) / 10000000L);
+ tp->tv_usec = (long) (system_time.wMilliseconds * 1000);
+
+ return 0;
+}
+
+#endif /* _MSC_VER */
diff --git a/ports/gettimeofday/gettimeofday.def b/ports/gettimeofday/gettimeofday.def
new file mode 100644
index 000000000..7a46b866b
--- /dev/null
+++ b/ports/gettimeofday/gettimeofday.def
@@ -0,0 +1,2 @@
+EXPORTS
+ gettimeofday
diff --git a/ports/gettimeofday/gettimeofday.h b/ports/gettimeofday/gettimeofday.h
new file mode 100644
index 000000000..227317524
--- /dev/null
+++ b/ports/gettimeofday/gettimeofday.h
@@ -0,0 +1,13 @@
+#ifndef _MY_GETTIMEOFDAY_H_
+#define _MY_GETTIMEOFDAY_H_
+
+#ifdef _MSC_VER
+
+#include <winsock2.h>
+#include <time.h>
+
+int gettimeofday(struct timeval * tp, struct timezone * tzp);
+
+#endif /* _MSC_VER */
+
+#endif /* _MY_GETTIMEOFDAY_H_ */
diff --git a/ports/gettimeofday/portfile.cmake b/ports/gettimeofday/portfile.cmake
new file mode 100644
index 000000000..51c88c989
--- /dev/null
+++ b/ports/gettimeofday/portfile.cmake
@@ -0,0 +1,11 @@
+include(vcpkg_common_functions)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${CMAKE_CURRENT_LIST_DIR}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/gettimeofday RENAME copyright)
diff --git a/ports/gflags/0001-patch-dir.patch b/ports/gflags/0001-patch-dir.patch
new file mode 100644
index 000000000..d3aaa00fb
--- /dev/null
+++ b/ports/gflags/0001-patch-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3709073..8e919cb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -503,7 +503,7 @@ endif ()
+ # ----------------------------------------------------------------------------
+ # installation rules
+ set (EXPORT_NAME ${PACKAGE_NAME}-targets)
+-file (RELATIVE_PATH INSTALL_PREFIX_REL2CONFIG_DIR "${CMAKE_INSTALL_PREFIX}/${CONFIG_INSTALL_DIR}" "${CMAKE_INSTALL_PREFIX}")
++set (INSTALL_PREFIX_REL2CONFIG_DIR "../..")
+ configure_file (cmake/config.cmake.in "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}-config-install.cmake" @ONLY)
+ configure_file (cmake/version.cmake.in "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}-config-version.cmake" @ONLY)
+
diff --git a/ports/gflags/CONTROL b/ports/gflags/CONTROL
index 8833c2f56..0a8d83aee 100644
--- a/ports/gflags/CONTROL
+++ b/ports/gflags/CONTROL
@@ -1,3 +1,3 @@
Source: gflags
-Version: 2.2.0-3
+Version: 2.2.1-3
Description: A C++ library that implements commandline flags processing
diff --git a/ports/gflags/fix-install.patch b/ports/gflags/fix-install.patch
deleted file mode 100644
index a2e6061f8..000000000
--- a/ports/gflags/fix-install.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3fd9d70..0debb89 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -397,11 +397,11 @@ endif ()
- # ----------------------------------------------------------------------------
- # installation directories
- if (OS_WINDOWS)
-- set (RUNTIME_INSTALL_DIR Bin)
-- set (LIBRARY_INSTALL_DIR Lib)
-- set (INCLUDE_INSTALL_DIR Include)
-- set (CONFIG_INSTALL_DIR CMake)
-- set (PKGCONFIG_INSTALL_DIR)
-+ set (RUNTIME_INSTALL_DIR "bin")
-+ set (LIBRARY_INSTALL_DIR "lib")
-+ set (INCLUDE_INSTALL_DIR "include")
-+ set (CONFIG_INSTALL_DIR "share/${PACKAGE_NAME}")
-+ set (PKGCONFIG_INSTALL_DIR "")
- else ()
- set (RUNTIME_INSTALL_DIR bin)
- # The LIB_INSTALL_DIR and LIB_SUFFIX variables are used by the Fedora
-@@ -501,14 +501,22 @@ configure_file (cmake/version.cmake.in "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}-co
- if (BUILD_SHARED_LIBS AND INSTALL_SHARED_LIBS)
- foreach (opts IN ITEMS "" _nothreads)
- if (BUILD_gflags${opts}_LIB)
-- install (TARGETS gflags${opts}_shared DESTINATION ${LIBRARY_INSTALL_DIR} EXPORT ${EXPORT_NAME})
-+ install (TARGETS gflags${opts}_shared
-+ EXPORT ${EXPORT_NAME}
-+ RUNTIME DESTINATION ${RUNTIME_INSTALL_DIR}
-+ LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR}
-+ ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR})
- endif ()
- endforeach ()
- endif ()
- if (BUILD_STATIC_LIBS AND INSTALL_STATIC_LIBS)
- foreach (opts IN ITEMS "" _nothreads)
- if (BUILD_gflags${opts}_LIB)
-- install (TARGETS gflags${opts}_static DESTINATION ${LIBRARY_INSTALL_DIR} EXPORT ${EXPORT_NAME})
-+ install (TARGETS gflags${opts}_static
-+ EXPORT ${EXPORT_NAME}
-+ RUNTIME DESTINATION ${RUNTIME_INSTALL_DIR}
-+ LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR}
-+ ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR})
- endif ()
- endforeach ()
- endif ()
diff --git a/ports/gflags/fix-static-linking.patch b/ports/gflags/fix-static-linking.patch
deleted file mode 100644
index 0cefed2e3..000000000
--- a/ports/gflags/fix-static-linking.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/gflags.h.in b/src/gflags.h.in
-index 43b3f7a..82e640f 100644
---- a/src/gflags.h.in
-+++ b/src/gflags.h.in
-@@ -86,7 +86,7 @@
-
- // We always want to export variables defined in user code
- #ifndef GFLAGS_DLL_DEFINE_FLAG
--# ifdef _MSC_VER
-+# if GFLAGS_IS_A_DLL && defined(_MSC_VER)
- # define GFLAGS_DLL_DEFINE_FLAG __declspec(dllexport)
- # else
- # define GFLAGS_DLL_DEFINE_FLAG
diff --git a/ports/gflags/portfile.cmake b/ports/gflags/portfile.cmake
index 463b6d9b2..31ffeafa5 100644
--- a/ports/gflags/portfile.cmake
+++ b/ports/gflags/portfile.cmake
@@ -1,18 +1,21 @@
+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
REPO gflags/gflags
- REF v2.2.0
- SHA512 e2106ca70ff539024f888bca12487b3bf7f4f51928acf5ae3e1022f6bbd5e3b7882196ec50b609fd52f739e1f7b13eec7d4b3535d8216ec019a3577de6b4228d
+ REF v2.2.1
+ SHA512 e919cbdcff1f993ddbfa9c06d8e595566a4717c27ff62f388a64c0e6b4683a93211c24ce78485eae84c2c76053341574064e6c56af185fc2782e2816b26e1fc9
HEAD_REF master
)
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
- PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-install.patch"
- PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-static-linking.patch"
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001-patch-dir.patch # gflags was estimating a wrong relative path between the gflags-config.cmake file and the include path; "../.." goes from share/gflags/ to the triplet root
)
vcpkg_configure_cmake(
@@ -22,10 +25,15 @@ vcpkg_configure_cmake(
-DGFLAGS_REGISTER_BUILD_DIR:BOOL=OFF
-DGFLAGS_REGISTER_INSTALL_PREFIX:BOOL=OFF
-DBUILD_gflags_nothreads_LIB:BOOL=OFF
+ -DCMAKE_DEBUG_POSTFIX=d
)
vcpkg_install_cmake()
-vcpkg_fixup_cmake_targets()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/gflags)
+
+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/gherkin-c/CONTROL b/ports/gherkin-c/CONTROL
new file mode 100644
index 000000000..171dedae0
--- /dev/null
+++ b/ports/gherkin-c/CONTROL
@@ -0,0 +1,3 @@
+Source: gherkin-c
+Version: c-libs-e63e83104b
+Description: Gherkin parser/compiler in C
diff --git a/ports/gherkin-c/portfile.cmake b/ports/gherkin-c/portfile.cmake
new file mode 100644
index 000000000..f229ba836
--- /dev/null
+++ b/ports/gherkin-c/portfile.cmake
@@ -0,0 +1,23 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO c-libs/gherkin-c
+ REF e63e83104b835e217140e9dc77d9ce2bb50f234e
+ SHA512 a99b3f695257b45df8ff7b8ec46bff28991cf2b9bc51a25247550471c724bd14ee64340db684f096131f47d7f4ff278d23dda546e7dfe29134bbc1dbccaf0d1e
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DBUILD_GHERKIN_TESTS=OFF
+)
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/gherkin-c RENAME copyright)
diff --git a/ports/giflib/CONTROL b/ports/giflib/CONTROL
index abac8f1cf..a79a8b0d4 100644
--- a/ports/giflib/CONTROL
+++ b/ports/giflib/CONTROL
@@ -1,3 +1,3 @@
Source: giflib
-Version: 5.1.4
+Version: 5.1.4-1
Description: A library for reading and writing gif images.
diff --git a/ports/gl2ps/CONTROL b/ports/gl2ps/CONTROL
new file mode 100644
index 000000000..052835a34
--- /dev/null
+++ b/ports/gl2ps/CONTROL
@@ -0,0 +1,4 @@
+Source: gl2ps
+Version: 1.4.0-1
+Description: OpenGL to PostScript Printing Library
+Build-Depends: freeglut, zlib, libpng
diff --git a/ports/gl2ps/portfile.cmake b/ports/gl2ps/portfile.cmake
new file mode 100644
index 000000000..7f08f8de4
--- /dev/null
+++ b/ports/gl2ps/portfile.cmake
@@ -0,0 +1,24 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gl2ps-gl2ps_1_4_0-e7b16f8f80382e45b681651e6381de09250243a6)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://gitlab.onelab.info/gl2ps/gl2ps/repository/archive.tar.gz?ref=gl2ps_1_4_0"
+ FILENAME "gl2ps_1_4_0.tar.gz"
+ SHA512 6ec18debdf94e8de22ca7084fe6fef72fb858fc6295a35fa3c98c3c45211f9f72e23a14224a85877f64031077da4978b8d5d81f24dfe18de8c2ec32a680eba60
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/separate-static-dynamic-build.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/COPYING.GL2PS DESTINATION ${CURRENT_PACKAGES_DIR}/share/gl2ps RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/COPYING.LGPL DESTINATION ${CURRENT_PACKAGES_DIR}/share/gl2ps RENAME copyright.LGPL)
diff --git a/ports/gl2ps/separate-static-dynamic-build.patch b/ports/gl2ps/separate-static-dynamic-build.patch
new file mode 100644
index 000000000..fe2267e6a
--- /dev/null
+++ b/ports/gl2ps/separate-static-dynamic-build.patch
@@ -0,0 +1,214 @@
+diff --git "a/CMakeLists.txt" "b/CMakeLists.txt"
+index 40da57e..39acf6b 100644
+--- "a/CMakeLists.txt"
++++ "b/CMakeLists.txt"
+@@ -1,34 +1,34 @@
+ # GL2PS, an OpenGL to PostScript Printing Library
+ # Copyright (C) 1999-2017 C. Geuzaine
+-#
++#
+ # This program is free software; you can redistribute it and/or
+ # modify it under the terms of either:
+-#
++#
+ # a) the GNU Library General Public License as published by the Free
+ # Software Foundation, either version 2 of the License, or (at your
+ # option) any later version; or
+-#
++#
+ # b) the GL2PS License as published by Christophe Geuzaine, either
+ # version 2 of the License, or (at your option) any later version.
+-#
++#
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either
+ # the GNU Library General Public License or the GL2PS License for
+ # more details.
+-#
++#
+ # You should have received a copy of the GNU Library General Public
+ # License along with this library in the file named "COPYING.LGPL";
+ # if not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+ # Cambridge, MA 02139, USA.
+-#
++#
+ # You should have received a copy of the GL2PS License with this
+ # library in the file named "COPYING.GL2PS"; if not, I will be glad
+ # to provide one.
+-#
++#
+ # For the latest info about gl2ps and a full list of contributors,
+ # see http://www.geuz.org/gl2ps/.
+-#
++#
+ # Please report all bugs and problems to <gl2ps@geuz.org>.
+
+ cmake_minimum_required(VERSION 2.4 FATAL_ERROR)
+@@ -55,8 +55,8 @@ set(GL2PS_EXTRA_VERSION "" CACHE STRING "GL2PS extra version string")
+ set(GL2PS_VERSION "${GL2PS_MAJOR_VERSION}.${GL2PS_MINOR_VERSION}")
+ set(GL2PS_VERSION "${GL2PS_VERSION}.${GL2PS_PATCH_VERSION}${GL2PS_EXTRA_VERSION}")
+
+-execute_process(COMMAND date "+%Y%m%d" OUTPUT_VARIABLE DATE
+- OUTPUT_STRIP_TRAILING_WHITESPACE)
++execute_process(COMMAND date "+%Y%m%d" OUTPUT_VARIABLE DATE
++OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT DATE)
+ set(DATE "unknown")
+ endif(NOT DATE)
+@@ -113,84 +113,93 @@ endif(MATH_LIBRARY)
+
+ include_directories(${EXTERNAL_INCLUDES})
+
+-if(OPENGL_FOUND)
+- add_library(lib STATIC gl2ps.c gl2ps.h)
+- set_target_properties(lib PROPERTIES OUTPUT_NAME gl2ps)
+-
+- add_library(shared SHARED gl2ps.c gl2ps.h)
+- target_link_libraries(shared ${EXTERNAL_LIBRARIES})
+- set_target_properties(shared PROPERTIES OUTPUT_NAME gl2ps)
+- set_target_properties(shared PROPERTIES
+- VERSION ${GL2PS_MAJOR_VERSION}.${GL2PS_MINOR_VERSION}.${GL2PS_PATCH_VERSION}
+- SOVERSION ${GL2PS_MAJOR_VERSION})
+- if(MSVC)
+- set_target_properties(shared PROPERTIES COMPILE_FLAGS "-DGL2PSDLL -DGL2PSDLL_EXPORTS")
+- endif(MSVC)
+-
+- install(TARGETS lib shared DESTINATION lib${LIB_SUFFIX})
+-endif(OPENGL_FOUND)
++
++add_library(gl2ps gl2ps.c gl2ps.h)
++target_link_libraries(gl2ps ${EXTERNAL_LIBRARIES})
++set_target_properties(gl2ps PROPERTIES
++ VERSION ${GL2PS_MAJOR_VERSION}.${GL2PS_MINOR_VERSION}.${GL2PS_PATCH_VERSION}
++SOVERSION ${GL2PS_MAJOR_VERSION})
++
++if(BUILD_SHARED_LIBS)
++ target_compile_definitions(gl2ps PRIVATE -DGL2PSDLL -DGL2PSDLL_EXPORTS)
++endif()
++
++install(
++ TARGETS gl2ps
++ RUNTIME DESTINATION bin
++ LIBRARY DESTINATION lib
++ ARCHIVE DESTINATION lib
++)
++
+
+ if(WIN32)
+- set(GL2PS_DOC .)
++ set(GL2PS_DOC share/gl2ps/docs)
+ else(WIN32)
+ set(GL2PS_DOC share/doc/gl2ps)
+ endif(WIN32)
+
++if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES gl2ps.h DESTINATION include)
+ install(FILES ${CMAKE_SOURCE_DIR}/README.txt DESTINATION ${GL2PS_DOC})
+ install(FILES ${CMAKE_SOURCE_DIR}/COPYING.LGPL DESTINATION ${GL2PS_DOC})
+ install(FILES ${CMAKE_SOURCE_DIR}/COPYING.GL2PS DESTINATION ${GL2PS_DOC})
+ install(FILES ${CMAKE_SOURCE_DIR}/gl2psTest.c DESTINATION ${GL2PS_DOC})
+ install(FILES ${CMAKE_SOURCE_DIR}/gl2psTestSimple.c DESTINATION ${GL2PS_DOC})
++endif()
++
++if(BUILD_TESTS)
++
++ if(GLUT_FOUND)
++ add_executable(gl2psTest gl2psTest.c)
++ target_link_libraries(gl2psTest gl2ps ${EXTERNAL_LIBRARIES})
++ add_executable(gl2psTestSimple gl2psTestSimple.c)
++ target_link_libraries(gl2psTestSimple gl2ps ${EXTERNAL_LIBRARIES})
++ endif(GLUT_FOUND)
++
++ find_package(LATEX)
++ if(PDFLATEX_COMPILER)
++ add_custom_command(OUTPUT gl2ps.pdf DEPENDS gl2ps.tex
++ COMMAND ${PDFLATEX_COMPILER} ARGS ${CMAKE_SOURCE_DIR}/gl2ps.tex
++ COMMAND ${PDFLATEX_COMPILER} ARGS ${CMAKE_SOURCE_DIR}/gl2ps.tex
++ COMMAND ${PDFLATEX_COMPILER} ARGS ${CMAKE_SOURCE_DIR}/gl2ps.tex
++ COMMAND ${CMAKE_COMMAND} -E copy gl2ps.pdf ${CMAKE_SOURCE_DIR})
++ add_custom_target(pdf ALL DEPENDS gl2ps.pdf)
++ install(FILES gl2ps.pdf DESTINATION ${GL2PS_DOC})
++ find_program(TTH tth)
++ if(TTH)
++ add_custom_command(OUTPUT gl2ps.html DEPENDS gl2ps.tex gl2ps.pdf
++ COMMAND ${CMAKE_COMMAND} -E copy_if_different
++ ${CMAKE_SOURCE_DIR}/gl2ps.tex ${CMAKE_BINARY_DIR}/gl2ps.tex
++ COMMAND ${TTH} ARGS -w1 gl2ps.tex)
++ add_custom_target(html DEPENDS gl2ps.html)
++ endif(TTH)
++ endif(PDFLATEX_COMPILER)
++
++endif()
+
+-if(GLUT_FOUND)
+- add_executable(gl2psTest WIN32 gl2psTest.c)
+- target_link_libraries(gl2psTest lib ${EXTERNAL_LIBRARIES})
+- add_executable(gl2psTestSimple WIN32 gl2psTestSimple.c)
+- target_link_libraries(gl2psTestSimple lib ${EXTERNAL_LIBRARIES})
+-endif(GLUT_FOUND)
+-
+-find_package(LATEX)
+-if(PDFLATEX_COMPILER)
+- add_custom_command(OUTPUT gl2ps.pdf DEPENDS gl2ps.tex
+- COMMAND ${PDFLATEX_COMPILER} ARGS ${CMAKE_SOURCE_DIR}/gl2ps.tex
+- COMMAND ${PDFLATEX_COMPILER} ARGS ${CMAKE_SOURCE_DIR}/gl2ps.tex
+- COMMAND ${PDFLATEX_COMPILER} ARGS ${CMAKE_SOURCE_DIR}/gl2ps.tex
+- COMMAND ${CMAKE_COMMAND} -E copy gl2ps.pdf ${CMAKE_SOURCE_DIR})
+- add_custom_target(pdf ALL DEPENDS gl2ps.pdf)
+- install(FILES gl2ps.pdf DESTINATION ${GL2PS_DOC})
+- find_program(TTH tth)
+- if(TTH)
+- add_custom_command(OUTPUT gl2ps.html DEPENDS gl2ps.tex gl2ps.pdf
+- COMMAND ${CMAKE_COMMAND} -E copy_if_different
+- ${CMAKE_SOURCE_DIR}/gl2ps.tex ${CMAKE_BINARY_DIR}/gl2ps.tex
+- COMMAND ${TTH} ARGS -w1 gl2ps.tex)
+- add_custom_target(html DEPENDS gl2ps.html)
+- endif(TTH)
+-endif(PDFLATEX_COMPILER)
+
+ set(CPACK_PACKAGE_VENDOR "Christophe Geuzaine")
+ set(CPACK_PACKAGE_VERSION_MAJOR ${GL2PS_MAJOR_VERSION})
+ set(CPACK_PACKAGE_VERSION_MINOR ${GL2PS_MINOR_VERSION})
+ set(CPACK_PACKAGE_VERSION_PATCH ${GL2PS_PATCH_VERSION})
+ set(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_SOURCE_DIR}/README.txt)
+-set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
+- "An OpenGL to PostScript (and PDF, and SVG...) printing library")
+-set(CPACK_PACKAGE_FILE_NAME gl2ps-${GL2PS_VERSION}-${GL2PS_OS})
+-set(CPACK_PACKAGE_INSTALL_DIRECTORY "gl2ps")
+-set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/COPYING.LGPL)
+-set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README.txt)
+-set(CPACK_RESOURCE_FILE_WELCOME ${CMAKE_SOURCE_DIR}/README.txt)
+-set(CPACK_PACKAGE_EXECUTABLE "gl2ps;gl2ps")
+-set(CPACK_STRIP_FILES TRUE)
+-set(CPACK_SOURCE_PACKAGE_FILE_NAME gl2ps-${GL2PS_VERSION}-source)
+-set(CPACK_SOURCE_GENERATOR TGZ)
+-set(CPACK_SOURCE_IGNORE_FILES "TODO.txt" "${CMAKE_BINARY_DIR}" "/CVS/"
+- "/.svn" "~$" "DS_Store$" "/tmp/" "/bin/" "/lib/")
+-if(WIN32)
+- set(CPACK_GENERATOR ZIP)
+-else(WIN32)
+- set(CPACK_GENERATOR TGZ)
+-endif(WIN32)
+-
+-include(CPack)
++set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
++ "An OpenGL to PostScript (and PDF, and SVG...) printing library")
++ set(CPACK_PACKAGE_FILE_NAME gl2ps-${GL2PS_VERSION}-${GL2PS_OS})
++ set(CPACK_PACKAGE_INSTALL_DIRECTORY "gl2ps")
++ set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/COPYING.LGPL)
++ set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README.txt)
++ set(CPACK_RESOURCE_FILE_WELCOME ${CMAKE_SOURCE_DIR}/README.txt)
++ set(CPACK_PACKAGE_EXECUTABLE "gl2ps;gl2ps")
++ set(CPACK_STRIP_FILES TRUE)
++ set(CPACK_SOURCE_PACKAGE_FILE_NAME gl2ps-${GL2PS_VERSION}-source)
++ set(CPACK_SOURCE_GENERATOR TGZ)
++ set(CPACK_SOURCE_IGNORE_FILES "TODO.txt" "${CMAKE_BINARY_DIR}" "/CVS/"
++ "/.svn" "~$" "DS_Store$" "/tmp/" "/bin/" "/lib/")
++ if(WIN32)
++ set(CPACK_GENERATOR ZIP)
++ else(WIN32)
++ set(CPACK_GENERATOR TGZ)
++ endif(WIN32)
++
++ # include(CPack)
diff --git a/ports/gl3w/0001-enable-shared-build.patch b/ports/gl3w/0001-enable-shared-build.patch
new file mode 100644
index 000000000..f43437e9d
--- /dev/null
+++ b/ports/gl3w/0001-enable-shared-build.patch
@@ -0,0 +1,60 @@
+From 5f482a64c642f830f1d25f8abae7cae6dd2c6c2b Mon Sep 17 00:00:00 2001
+From: Stanislav Ershov <digital.stream.of.mind@gmail.com>
+Date: Mon, 8 Jan 2018 03:16:07 +0300
+Subject: [PATCH] enable shared build
+
+---
+ gl3w_gen.py | 18 ++++++++++++------
+ 1 file changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/gl3w_gen.py b/gl3w_gen.py
+index 611331a..3515cf9 100755
+--- a/gl3w_gen.py
++++ b/gl3w_gen.py
+@@ -130,6 +130,10 @@ with open(os.path.join(args.root, 'include/GL/gl3w.h'), 'wb') as f:
+
+ #include <GL/glcorearb.h>
+
++#ifndef GL3W_API
++ #define GL3W_API
++#endif
++
+ #ifndef __gl_h_
+ #define __gl_h_
+ #endif
+@@ -147,10 +151,10 @@ typedef void (*GL3WglProc)(void);
+ typedef GL3WglProc (*GL3WGetProcAddressProc)(const char *proc);
+
+ /* gl3w api */
+-int gl3wInit(void);
+-int gl3wInit2(GL3WGetProcAddressProc proc);
+-int gl3wIsSupported(int major, int minor);
+-GL3WglProc gl3wGetProcAddress(const char *proc);
++GL3W_API int gl3wInit(void);
++GL3W_API int gl3wInit2(GL3WGetProcAddressProc proc);
++GL3W_API int gl3wIsSupported(int major, int minor);
++GL3W_API GL3WglProc gl3wGetProcAddress(const char *proc);
+
+ /* gl3w internal state */
+ ''')
+@@ -162,7 +168,7 @@ GL3WglProc gl3wGetProcAddress(const char *proc);
+ write(f, r''' } gl;
+ };
+
+-extern union GL3WProcs gl3wProcs;
++GL3W_API extern union GL3WProcs gl3wProcs;
+
+ /* OpenGL functions */
+ ''')
+@@ -329,7 +333,7 @@ static const char *proc_names[] = {
+ write(f, '\t"{0}",\n'.format(proc))
+ write(f, r'''};
+
+-union GL3WProcs gl3wProcs;
++GL3W_API union GL3WProcs gl3wProcs;
+
+ static void load_procs(GL3WGetProcAddressProc proc)
+ {
+--
+2.15.0.windows.1
+
diff --git a/ports/gl3w/CMakeLists.txt b/ports/gl3w/CMakeLists.txt
new file mode 100644
index 000000000..30a94eddb
--- /dev/null
+++ b/ports/gl3w/CMakeLists.txt
@@ -0,0 +1,41 @@
+cmake_minimum_required(VERSION 3.9)
+project(gl3w C)
+
+set(HEADER_FILES
+ "include/GL/gl3w.h"
+ "include/GL/glcorearb.h"
+)
+
+find_package(OpenGL REQUIRED)
+
+add_library(gl3w src/gl3w.c)
+
+target_include_directories(gl3w PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ $<INSTALL_INTERFACE:include>
+)
+
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(gl3w PRIVATE "-DGL3W_API=__declspec(dllexport)")
+endif()
+
+target_include_directories(gl3w PRIVATE ${OPENGL_INCLUDE_DIR})
+target_link_libraries(gl3w PRIVATE ${OPENGL_LIBRARIES})
+
+install(TARGETS gl3w
+ EXPORT gl3wExport
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+install(
+ EXPORT gl3wExport
+ FILE gl3wConfig.cmake
+ NAMESPACE unofficial::gl3w::
+ DESTINATION share/gl3w
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(DIRECTORY include/GL DESTINATION include)
+endif()
diff --git a/ports/gl3w/CONTROL b/ports/gl3w/CONTROL
new file mode 100644
index 000000000..10a2c2b76
--- /dev/null
+++ b/ports/gl3w/CONTROL
@@ -0,0 +1,3 @@
+Source: gl3w
+Version: 8f7f459d
+Description: Simple OpenGL core profile loading
diff --git a/ports/gl3w/portfile.cmake b/ports/gl3w/portfile.cmake
new file mode 100644
index 000000000..bb3f245c9
--- /dev/null
+++ b/ports/gl3w/portfile.cmake
@@ -0,0 +1,53 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO skaslev/gl3w
+ REF 8f7f459df8725c9614136b49a96023de276219f2
+ SHA512 7674008716accb25347c81f755f2db7a885ecb5c51b481e0e8f337bc8ee0949a5a58f5816b27a66535ed4da0b9438ba6a6a84712560c7b1a0f1b2908b4eb81e5
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_download_distfile(
+ GLCOREARB_H
+ URLS "http://www.opengl.org/registry/api/GL/glcorearb.h"
+ FILENAME "glcorearb-2018-02-27.h"
+ SHA512 02c3672606e6360f2e1e8335fe581bc2d2b3d518b0f24b0c327006a70de07261dace4b53b13e93029a8eb2af43bcba904c4392f2c35ac512c7f278534ef8eb5d
+)
+
+file(INSTALL ${GLCOREARB_H} DESTINATION ${SOURCE_PATH}/include/GL RENAME glcorearb.h)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-enable-shared-build.patch
+)
+
+vcpkg_find_acquire_program(PYTHON3)
+
+vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${SOURCE_PATH}/gl3w_gen.py
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME gl3w-gen
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/gl3w)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(HEADER ${CURRENT_PACKAGES_DIR}/include/GL/gl3w.h)
+ file(READ ${HEADER} _contents)
+ string(REPLACE "#define GL3W_API" "#define GL3W_API __declspec(dllimport)" _contents "${_contents}")
+ file(WRITE ${HEADER} "${_contents}")
+endif()
+
+file(INSTALL ${SOURCE_PATH}/UNLICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/gl3w RENAME copyright)
diff --git a/ports/glbinding/CONTROL b/ports/glbinding/CONTROL
index 5e7ec029c..1fd781901 100644
--- a/ports/glbinding/CONTROL
+++ b/ports/glbinding/CONTROL
@@ -1,3 +1,3 @@
Source: glbinding
-Version: 2.1.1-1
+Version: 2.1.1-3
Description: glbinding is an MIT licensed, cross-platform C++ binding for the OpenGL API
diff --git a/ports/glbinding/portfile.cmake b/ports/glbinding/portfile.cmake
index 6f6dfcc68..cf3f64e5d 100644
--- a/ports/glbinding/portfile.cmake
+++ b/ports/glbinding/portfile.cmake
@@ -7,14 +7,20 @@
#
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/glbinding-2.1.1)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/cginternals/glbinding/archive/v2.1.1.zip"
- FILENAME "glbinding-2.1.1.zip"
- SHA512 66b21853a4f4760b7b22cafd5211958769c513e83be999018fe79cf56a9271e0e28566caaa2286393f54ac2154d564a68d12159598d03c965adf6756f3753f11
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO cginternals/glbinding
+ REF v2.1.1
+ SHA512 6c7251555801272a90c87a9386324eb6993102601a036fc7d9f9b4ebed64c74d011909566e5fc5a34ef8242e24915848296023daa1420c91aaf08cf9635be397
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
-vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH})
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DOPTION_BUILD_TESTS=OFF
+ -DOPTION_BUILD_GPU_TESTS=OFF
+)
+
#vcpkg_build_cmake()
vcpkg_install_cmake()
diff --git a/ports/glew/CONTROL b/ports/glew/CONTROL
index 21051a475..ecf948c5d 100644
--- a/ports/glew/CONTROL
+++ b/ports/glew/CONTROL
@@ -1,3 +1,3 @@
Source: glew
-Version: 2.0.0-1
-Description: The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. \ No newline at end of file
+Version: 2.1.0-1
+Description: The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library.
diff --git a/ports/glew/portfile.cmake b/ports/glew/portfile.cmake
index c975ca099..45f711f77 100644
--- a/ports/glew/portfile.cmake
+++ b/ports/glew/portfile.cmake
@@ -1,91 +1,64 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/glew-2.0.0)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/glew/glew-2.1.0)
+
+# Don't change to vcpkg_from_github! The github-auto-generated archives are missing some files.
+# More info: https://github.com/nigels-com/glew/issues/31
vcpkg_download_distfile(ARCHIVE_FILE
- URLS "https://sourceforge.net/projects/glew/files/glew/2.0.0/glew-2.0.0.tgz"
- FILENAME "glew-2.0.0.tgz"
- SHA512 e9bcd5f19a4495ce6511dfd76e64b4e4d958603c513ee9063eb9fe24fc6e0413f168620661230f1baef558f2f907cef7fe7ab2bdf957a6f7bda5fe96e9319c6a
+ URLS "https://github.com/nigels-com/glew/releases/download/glew-2.1.0/glew-2.1.0.tgz"
+ FILENAME "glew-2.1.0.tgz"
+ SHA512 9a9b4d81482ccaac4b476c34ed537585ae754a82ebb51c3efa16d953c25cc3931be46ed2e49e79c730cd8afc6a1b78c97d52cd714044a339c3bc29734cd4d2ab
+)
+vcpkg_extract_source_archive(${ARCHIVE_FILE} ${CURRENT_BUILDTREES_DIR}/src/glew)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/build/cmake
)
-vcpkg_extract_source_archive(${ARCHIVE_FILE})
-IF (TRIPLET_SYSTEM_ARCH MATCHES "x86")
- SET(BUILD_ARCH "Win32")
-ELSEIF(TRIPLET_SYSTEM_ARCH MATCHES "arm")
- MESSAGE(FATAL_ERROR " ARM is currently not supported.")
-ELSE()
- SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH})
-ENDIF()
+vcpkg_install_cmake()
-# TODO: Maybe switch to glews' cmake build system in the future
-FOREACH(LINKAGE shared static)
- if(NOT EXISTS ${SOURCE_PATH}/build/vc12/glew_${LINKAGE}14.vcxproj)
- message(STATUS "Upgrading " ${LINKAGE} " project")
- file(READ ${SOURCE_PATH}/build/vc12/glew_${LINKAGE}.vcxproj PROJ)
- string(REPLACE
- "<PlatformToolset>v120</PlatformToolset>"
- "<PlatformToolset>v140</PlatformToolset>"
- PROJ ${PROJ})
- string(REPLACE
- "opengl32.lib%"
- "opengl32.lib\;%"
- PROJ ${PROJ})
-
- if (LINKAGE STREQUAL "static")
- string(REPLACE
- "MultiThreadedDebugDLL"
- "MultiThreadedDebug"
- PROJ ${PROJ}
- )
- endif()
- file(WRITE ${SOURCE_PATH}/build/vc12/glew_${LINKAGE}14.vcxproj ${PROJ})
- endif()
-ENDFOREACH(LINKAGE)
-message(STATUS "Upgrading projects done")
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/glew")
-if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/build/vc12/glew_static14.vcxproj
- )
-else()
- vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/build/vc12/glew_shared14.vcxproj
- )
+set(_targets_cmake_files)
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ list(APPEND _targets_cmake_files "${CURRENT_PACKAGES_DIR}/share/glew/glew-targets-debug.cmake")
+endif()
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ list(APPEND _targets_cmake_files "${CURRENT_PACKAGES_DIR}/share/glew/glew-targets-release.cmake")
endif()
+foreach(FILE ${_targets_cmake_files})
+ file(READ ${FILE} _contents)
+ string(REPLACE "libglew32" "glew32" _contents "${_contents}")
+ file(WRITE ${FILE} "${_contents}")
+endforeach()
-message(STATUS "Installing")
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/libglew32.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libglew32.lib ${CURRENT_PACKAGES_DIR}/lib/glew32.lib)
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/libglew32d.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libglew32d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/glew32d.lib)
+endif()
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- file(INSTALL
- ${SOURCE_PATH}/bin/Debug/${BUILD_ARCH}/glew32d.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
- )
- file(INSTALL
- ${SOURCE_PATH}/bin/Release/${BUILD_ARCH}/glew32.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin
- )
- file(INSTALL
- ${SOURCE_PATH}/lib/Debug/${BUILD_ARCH}/glew32d.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib RENAME glew32.lib
- )
- file(INSTALL
- ${SOURCE_PATH}/lib/Release/${BUILD_ARCH}/glew32.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib
- )
-else()
- file(INSTALL
- ${SOURCE_PATH}/lib/Debug/${BUILD_ARCH}/glew32sd.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib RENAME glew32.lib
- )
- file(INSTALL
- ${SOURCE_PATH}/lib/Release/${BUILD_ARCH}/glew32s.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib RENAME glew32.lib
- )
+file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/glewinfo.exe)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/visualinfo.exe)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/glewinfo.exe)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/visualinfo.exe)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ foreach(FILE ${CURRENT_PACKAGES_DIR}/include/GL/glew.h ${CURRENT_PACKAGES_DIR}/include/GL/wglew.h ${CURRENT_PACKAGES_DIR}/include/GL/glxew.h)
+ file(READ ${FILE} _contents)
+ string(REPLACE "#ifdef GLEW_STATIC" "#if 1" _contents "${_contents}")
+ file(WRITE ${FILE} "${_contents}")
+ endforeach()
endif()
-file(INSTALL
- ${SOURCE_PATH}/include/GL
- DESTINATION ${CURRENT_PACKAGES_DIR}/include
-)
-file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/glew RENAME copyright)
vcpkg_copy_pdbs()
-message(STATUS "Installing done")
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/glew RENAME copyright)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/glew/usage b/ports/glew/usage
new file mode 100644
index 000000000..c0678a825
--- /dev/null
+++ b/ports/glew/usage
@@ -0,0 +1,4 @@
+The package glew is compatible with built-in CMake targets:
+
+ find_package(GLEW REQUIRED)
+ target_link_libraries(main PRIVATE GLEW::GLEW)
diff --git a/ports/glfw3/CONTROL b/ports/glfw3/CONTROL
index d6493c968..9cb0cbdc6 100644
--- a/ports/glfw3/CONTROL
+++ b/ports/glfw3/CONTROL
@@ -1,3 +1,3 @@
Source: glfw3
-Version: 3.2.1-1
-Description: GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc. \ No newline at end of file
+Version: 3.2.1-2
+Description: GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc.
diff --git a/ports/gli/CONTROL b/ports/gli/CONTROL
index 8d89bc2d1..b8edac798 100644
--- a/ports/gli/CONTROL
+++ b/ports/gli/CONTROL
@@ -1,3 +1,4 @@
Source: gli
-Version: 0.8.2
+Version: 0.8.2-1
+Build-Depends: glm
Description: OpenGL Image (GLI) https://gli.g-truc.net
diff --git a/ports/gli/portfile.cmake b/ports/gli/portfile.cmake
index c0854909f..305233619 100644
--- a/ports/gli/portfile.cmake
+++ b/ports/gli/portfile.cmake
@@ -1,20 +1,19 @@
#header-only library
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gli-0.8.2.0)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/g-truc/gli/archive/0.8.2.0.tar.gz"
- FILENAME "0.8.2.0.tar.gz"
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO g-truc/gli
+ REF 0.8.2.0
SHA512 c254a4e1497d0add985e4a882c552db99c512cc0e9cc72145d51a6e7deada817d624d9818099a47136a8a3ef1223a26a34e355e3c713166f0bb062e506059834
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
-
-# Remove glm/CMakeLists.txt
-file(REMOVE ${SOURCE_PATH}/glm/CMakeLists.txt)
# Put the license file where vcpkg expects it
-file(COPY ${SOURCE_PATH}/external/glm/copying.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/gli/)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/gli/copying.txt ${CURRENT_PACKAGES_DIR}/share/gli/copyright)
+# manual.md contains the "licenses" section for the project
+file(COPY ${SOURCE_PATH}/manual.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/gli/)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/gli/manual.md ${CURRENT_PACKAGES_DIR}/share/gli/copyright)
# Copy the glm header files
-file(GLOB HEADER_FILES ${SOURCE_PATH}/gli/*)
+file(GLOB HEADER_FILES "${SOURCE_PATH}/gli/*.hpp" "${SOURCE_PATH}/gli/core")
file(COPY ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/gli)
diff --git a/ports/glib/CMakeLists.txt b/ports/glib/CMakeLists.txt
index 40763e8cd..3743b0a34 100644
--- a/ports/glib/CMakeLists.txt
+++ b/ports/glib/CMakeLists.txt
@@ -1,6 +1,9 @@
cmake_minimum_required(VERSION 3.0)
project(glib C)
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_C_STANDARD 11)
+
set(GLIB_DLL_SUFFIX 2)
set(GLIB_LIB_SUFFIX 2.0)
@@ -9,7 +12,7 @@ if(CMAKE_BUILD_TYPE STREQUAL Debug)
endif()
if(BUILD_SHARED_LIBS)
- set(GLIB_EXPORT_MACRO DLL_EXPORT)
+ add_definitions(-DDLL_EXPORT)
endif()
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
@@ -23,25 +26,70 @@ find_path(PCRE_INCLUDE_DIR pcre.h)
if(CMAKE_BUILD_TYPE STREQUAL Debug)
set(PCRE_SUFFIX d)
endif()
-find_library(PCRE_LIBRARY pcre${PCRE_SUFFIX})
+find_library(PCRE_LIBRARY NAMES pcre${PCRE_SUFFIX} pcre)
# libiconv
-find_path(ICONV_INCLUDE_DIR iconv.h)
-find_library(ICONV_LIBRARY NAMES iconv libiconv)
+find_package(unofficial-iconv REQUIRED)
# libffi
find_path(FFI_INCLUDE_DIR ffi.h)
find_library(FFI_LIBRARY NAMES ffi libffi)
-# libintl(gettext)
-find_path(LIBINTL_INCLUDE_DIR libintl.h)
-find_library(LIBINTL_LIBRARY NAMES intl libintl)
+get_filename_component(LIB_DIR "${FFI_LIBRARY}" DIRECTORY)
+if(APPLE)
+ find_library(COREFOUNDATION_LIBRARY CoreFoundation)
+ find_library(FOUNDATION_LIBRARY Foundation)
+ find_library(CORESERVICES_LIBRARY CoreServices)
+ link_libraries(${CORESERVICES_LIBRARY} ${COREFOUNDATION_LIBRARY} ${FOUNDATION_LIBRARY})
+endif()
+
+if(WIN32 OR APPLE)
+ # libintl(gettext)
+ find_path(LIBINTL_INCLUDE_DIR libintl.h)
+ find_library(LIBINTL_LIBRARY NAMES intl libintl)
+else()
+ set(LIBINTL_INCLUDE_DIR)
+ set(LIBINTL_LIBRARY)
+endif()
+
+if(WIN32)
+ set(LIBRESOLV_LIBRARY)
+else()
+ find_library(LIBRESOLV_LIBRARY NAMES resolv libresolv)
+endif()
#prepare config files
-configure_file(config.h.win32 ${CMAKE_SOURCE_DIR}/config.h COPYONLY)
-configure_file(glib/glibconfig.h.win32 ${CMAKE_SOURCE_DIR}/glib/glibconfig.h COPYONLY)
-configure_file(gmodule/gmoduleconf.h.win32 ${CMAKE_SOURCE_DIR}/gmodule/gmoduleconf.h COPYONLY)
-configure_file(gio/gnetworking.h.win32 ${CMAKE_SOURCE_DIR}/gio/gnetworking.h COPYONLY)
-add_definitions(-DHAVE_CONFIG_H)
+if(WIN32)
+ configure_file(config.h.win32 ${CMAKE_BINARY_DIR}/config/config.h COPYONLY)
+ configure_file(glib/glibconfig.h.win32 ${CMAKE_BINARY_DIR}/config/glib/glibconfig.h COPYONLY)
+ configure_file(gmodule/gmoduleconf.h.win32 ${CMAKE_BINARY_DIR}/config/gmodule/gmoduleconf.h COPYONLY)
+ configure_file(gio/gnetworking.h.win32 ${CMAKE_BINARY_DIR}/config/gio/gnetworking.h COPYONLY)
+ add_definitions(-DHAVE_CONFIG_H)
+else()
+ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/config)
+ set(ENV{LIBFFI_LIBS} "${FFI_LIBRARY}")
+ set(ENV{PCRE_LIBS} "${PCRE_LIBRARY}")
+ set(ENV{LIBFFI_CFLAGS} "-I${FFI_INCLUDE_DIR}")
+ set(ENV{PCRE_CFLAGS} "-I${PCRE_INCLUDE_DIR}")
+ set(ENV{MSGFMT} "/bin/echo")
+ set(ENV{GMSGFMT} "/bin/echo")
+ if(NOT EXISTS "${CMAKE_BINARY_DIR}/config/config.h")
+ execute_process(
+ COMMAND "${CMAKE_SOURCE_DIR}/configure"
+ --disable-libelf
+ --disable-libmount
+ "CPPFLAGS=-I${PCRE_INCLUDE_DIR}"
+ "CFLAGS=-I${PCRE_INCLUDE_DIR}"
+ "LDFLAGS=-L${LIB_DIR}"
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/config
+ RESULT_VARIABLE res
+ )
+ if(NOT res EQUAL 0)
+ message(FATAL_ERROR "Configure failed.")
+ endif()
+ endif()
+ add_definitions("-DGIO_MODULE_DIR=\"gio/modules\"")
+endif()
-include_directories(. ./glib)
+include_directories(${CMAKE_BINARY_DIR}/config ${CMAKE_BINARY_DIR}/config/glib ${CMAKE_BINARY_DIR}/config/gio ${CMAKE_BINARY_DIR}/config/gmodule)
+include_directories(. glib)
# This macro purposely doesn't find nodes with sources that have additional properties set
# Most of such files in glib are PCRE sources which we don't use anyway
@@ -62,60 +110,155 @@ endmacro()
# main module
extract_vcproj_sources(win32/vs14/glib.vcxproj GLIB_SOURCES)
list(APPEND GLIB_SOURCES glib/libcharset/localcharset.c) # modified internal version with prefixed symbols
+if(NOT WIN32)
+ list(FILTER GLIB_SOURCES EXCLUDE REGEX "win32.c\$|win32-helper.c\$")
+ list(APPEND GLIB_SOURCES "glib/gthread-posix.c" "glib/giounix.c" "glib/gspawn.c" "glib/glib-unix.c")
+endif()
add_library(glib ${GLIB_SOURCES})
-target_compile_definitions(glib PRIVATE USE_SYSTEM_PCRE ${GLIB_EXPORT_MACRO} GLIB_COMPILATION G_LOG_DOMAIN="GLib" LIBDIR)
-target_link_libraries(glib ws2_32 winmm ${PCRE_LIBRARY} ${ICONV_LIBRARY} ${LIBINTL_LIBRARY})
+target_compile_definitions(glib PRIVATE GLIB_COMPILATION G_LOG_DOMAIN="GLib" LIBDIR="")
+target_link_libraries(glib PRIVATE ${PCRE_LIBRARY} unofficial::iconv::libiconv unofficial::iconv::libcharset ${LIBINTL_LIBRARY})
+if(WIN32)
+ target_compile_definitions(glib PRIVATE USE_SYSTEM_PCRE)
+ target_link_libraries(glib PRIVATE ws2_32 winmm)
+else()
+ set(THREADS_PREFER_PTHREAD_FLAG ON)
+ find_package(Threads REQUIRED)
+ target_link_libraries(glib PRIVATE Threads::Threads ${CMAKE_DL_LIBS})
+endif()
target_include_directories(glib PRIVATE ${PCRE_INCLUDE_DIR} ${ICONV_INCLUDE_DIR})
-target_include_directories(glib PUBLIC ${LIBINTL_INCLUDE_DIR})
+target_include_directories(glib PUBLIC ${LIBINTL_INCLUDE_DIR})
list(APPEND GLIB_TARGETS glib)
+if(NOT GLIB_SKIP_HEADERS)
+ install(FILES glib/glib.h glib/glib-object.h ${CMAKE_BINARY_DIR}/config/glib/glibconfig.h DESTINATION include)
+
+ file(GLOB GLIB_HEADERS glib/*.h)
+ list(FILTER GLIB_HEADERS EXCLUDE REGEX "/glib.h\$|/glib-object.h\$|private.h\$")
+ install(FILES ${GLIB_HEADERS} DESTINATION include/glib)
+
+ file(GLOB GLIB_DEP_HEADERS glib/deprecated/*.h)
+ install(FILES ${GLIB_DEP_HEADERS} DESTINATION include/glib/deprecated)
+endif()
# gthread
add_library(gthread gthread/gthread-impl.c)
target_compile_definitions(gthread PRIVATE G_LOG_DOMAIN="GThread")
-target_link_libraries(gthread glib ${LIBINTL_LIBRARY})
+target_link_libraries(gthread PRIVATE glib ${LIBINTL_LIBRARY})
target_include_directories(gthread PRIVATE ${LIBINTL_INCLUDE_DIR})
list(APPEND GLIB_TARGETS gthread)
# gobject
extract_vcproj_sources(win32/vs14/gobject.vcxproj GOBJECT_SOURCES)
add_library(gobject ${GOBJECT_SOURCES})
-target_compile_definitions(gobject PRIVATE GOBJECT_COMPILATION ${GLIB_EXPORT_MACRO} G_LOG_DOMAIN="GLib-GObject")
-target_link_libraries(gobject gthread glib ${FFI_LIBRARY})
+target_compile_definitions(gobject PRIVATE GOBJECT_COMPILATION G_LOG_DOMAIN="GLib-GObject")
+target_link_libraries(gobject PRIVATE gthread glib ${FFI_LIBRARY})
target_include_directories(gobject PRIVATE ${FFI_INCLUDE_DIR})
list(APPEND GLIB_TARGETS gobject)
+if(NOT GLIB_SKIP_HEADERS)
+ file(GLOB GOBJECT_HEADERS gobject/*.h gobject/gobjectnotifyqueue.c)
+ list(FILTER GOBJECT_HEADERS EXCLUDE REGEX "private.h\$")
+ install(FILES ${GOBJECT_HEADERS} DESTINATION include/gobject)
+endif()
# gmodule
add_library(gmodule gmodule/gmodule.c)
target_compile_definitions(gmodule PRIVATE G_LOG_DOMAIN="GModule")
-target_link_libraries(gmodule glib ${LIBINTL_LIBRARY})
+target_link_libraries(gmodule PRIVATE glib ${LIBINTL_LIBRARY})
+target_include_directories(gmodule PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/gmodule>)
target_include_directories(gmodule PRIVATE ${LIBINTL_INCLUDE_DIR})
list(APPEND GLIB_TARGETS gmodule)
+if(NOT GLIB_SKIP_HEADERS)
+ install(FILES gmodule/gmodule.h DESTINATION include)
+endif()
+
+# gio subdirs
+if(NOT WIN32)
+ file(GLOB XDGMIME_SOURCES gio/xdgmime/*.c)
+ add_library(xdgmime ${XDGMIME_SOURCES})
+ target_compile_definitions(xdgmime PRIVATE -DXDG_PREFIX=_gio_xdg)
+ list(APPEND GLIB_TARGETS xdgmime)
+endif()
+
+if(NOT WIN32 AND NOT APPLE)
+ file(GLOB INOTIFY_SOURCES gio/inotify/*.c)
+ add_library(inotify ${INOTIFY_SOURCES})
+ target_link_libraries(inotify PRIVATE gmodule)
+ target_compile_definitions(inotify PRIVATE -DG_LOG_DOMAIN=\"GLib-GIO\" -DGIO_COMPILATION -DG_DISABLE_DEPRECATED)
+ list(APPEND GLIB_TARGETS inotify)
+endif()
+
+if(APPLE)
+ file(GLOB KQUEUE_SOURCES gio/kqueue/*.c)
+ add_library(kqueue ${KQUEUE_SOURCES})
+ target_link_libraries(kqueue PRIVATE gmodule)
+ target_compile_definitions(kqueue PRIVATE -DG_LOG_DOMAIN=\"GLib-GIO\" -DGIO_COMPILATION -DG_DISABLE_DEPRECATED)
+ list(APPEND GLIB_TARGETS kqueue)
+endif()
# gio
extract_vcproj_sources(win32/vs14/gio.vcxproj GIO_SOURCES)
+if(NOT WIN32)
+ file(GLOB GIO_UNIX_SOURCES "gio/gunix*.c" "gio/g*notificationbackend.c" "gio/g*portal*.c")
+ list(APPEND GIO_SOURCES ${GIO_UNIX_SOURCES})
+ list(APPEND GIO_SOURCES
+ "gio/gcontenttype.c"
+ "gio/gfiledescriptorbased.c"
+ "gio/gnetworkmonitornm.c"
+ "gio/xdp-dbus.c"
+ )
+ list(FILTER GIO_SOURCES EXCLUDE REGEX "/gwin32[^/]+\$|win32/[^/]+\$|win32.c\$|gregistrysettingsbackend.c\$")
+ if(APPLE)
+ set_property(SOURCE
+ gio/gcocoanotificationbackend.c
+ gio/gosxappinfo.c
+ gio/gnextstepsettingsbackend.c
+ PROPERTY COMPILE_FLAGS "-x objective-c")
+ list(APPEND GIO_SOURCES
+ "gio/gnextstepsettingsbackend.c"
+ "gio/gosxappinfo.c"
+ )
+ else()
+ list(APPEND GIO_SOURCES
+ "gio/gnetworkmonitornetlink.c"
+ "gio/gdesktopappinfo.c"
+ )
+ list(FILTER GIO_SOURCES EXCLUDE REGEX "gcocoanotificationbackend.c\$")
+ endif()
+endif()
+if(NOT GLIB_SKIP_HEADERS)
+ file(GLOB GIO_HEADERS gio/*.h)
+ list(FILTER GIO_HEADERS EXCLUDE REGEX "private.h\$")
+ install(FILES ${GIO_HEADERS} ${CMAKE_BINARY_DIR}/config/gio/gnetworking.h DESTINATION include/gio)
+endif()
add_library(gio ${GIO_SOURCES})
-target_compile_definitions(gio PRIVATE GIO_COMPILATION ${GLIB_EXPORT_MACRO} G_LOG_DOMAIN="GLib-GIO")
-target_link_libraries(gio glib gmodule gobject ws2_32 shlwapi dnsapi iphlpapi ${ZLIB_LIBRARIES})
-target_include_directories(gio PRIVATE ./gio ./gmodule ${ZLIB_INCLUDE_DIRS})
+target_compile_definitions(gio PRIVATE GIO_COMPILATION G_LOG_DOMAIN="GLib-GIO")
+target_link_libraries(gio PRIVATE glib gmodule gobject ZLIB::ZLIB ${LIBRESOLV_LIBRARY} ${LIBINTL_LIBRARY})
+target_include_directories(gio PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/gio>)
+if(WIN32)
+ target_link_libraries(gio PRIVATE ws2_32 shlwapi dnsapi iphlpapi)
+elseif(APPLE)
+ target_link_libraries(gio PRIVATE xdgmime kqueue)
+else()
+ target_link_libraries(gio PRIVATE xdgmime inotify)
+endif()
list(APPEND GLIB_TARGETS gio)
foreach(GTARGET ${GLIB_TARGETS})
- set_target_properties(${GTARGET} PROPERTIES
+ set_target_properties(${GTARGET} PROPERTIES
OUTPUT_NAME ${GTARGET}-${GLIB_DLL_SUFFIX}
ARCHIVE_OUTPUT_NAME ${GTARGET}-${GLIB_LIB_SUFFIX})
endforeach()
macro(add_glib_tool TOOL_NAME)
add_executable(${TOOL_NAME} ${ARGN})
- target_link_libraries(${TOOL_NAME} glib)
+ target_link_libraries(${TOOL_NAME} glib ${LIBINTL_LIBRARY})
target_compile_definitions(${TOOL_NAME} PRIVATE GLIB_COMPILATION)
list(APPEND GLIB_TOOLS ${TOOL_NAME})
endmacro()
macro(add_gio_tool TOOL_NAME)
add_executable(${TOOL_NAME} ${ARGN})
- target_link_libraries(${TOOL_NAME} glib gio gobject gmodule)
- target_include_directories(${TOOL_NAME} PRIVATE ./gmodule ./gio)
+ target_link_libraries(${TOOL_NAME} PRIVATE glib gio gobject gmodule ${LIBINTL_LIBRARY})
+ target_include_directories(${TOOL_NAME} PRIVATE gmodule gio)
target_compile_definitions(${TOOL_NAME} PRIVATE GIO_COMPILATION)
list(APPEND GLIB_TOOLS ${TOOL_NAME})
endmacro()
@@ -123,22 +266,22 @@ endmacro()
if(NOT GLIB_SKIP_TOOLS)
configure_file(gobject/glib-mkenums.in ${CMAKE_SOURCE_DIR}/gobject/glib-mkenums @ONLY) # uses GLIB_VERSION
install(FILES gobject/glib-mkenums DESTINATION tools/glib)
-
+
configure_file(gio/gdbus-2.0/codegen/gdbus-codegen.in ${CMAKE_SOURCE_DIR}/gio/gdbus-2.0/codegen/gdbus-codegen COPYONLY)
install(FILES gio/gdbus-2.0/codegen/gdbus-codegen DESTINATION tools/glib)
file(GLOB CODEGEN_SOURCES gio/gdbus-2.0/codegen/*.py)
install(FILES ${CODEGEN_SOURCES} DESTINATION tools/glib/codegen)
-
- add_gio_tool(gdbus gio/gdbus-tool.c)
+
+ add_gio_tool(gdbus gio/gdbus-tool.c)
add_gio_tool(gio-querymodules gio/gio-querymodules.c)
file(GLOB GIO_TOOL_SOURCES gio/gio-tool*.c)
add_gio_tool(gio-tool ${GIO_TOOL_SOURCES})
set_target_properties(gio-tool PROPERTIES OUTPUT_NAME gio)
add_gio_tool(glib-compile-resources gio/glib-compile-resources.c gio/gvdb/gvdb-builder.c)
- add_gio_tool(glib-compile-schemas gio/glib-compile-schemas.c gio/gvdb/gvdb-builder.c)
+ add_gio_tool(glib-compile-schemas gio/glib-compile-schemas.c gio/gvdb/gvdb-builder.c)
add_gio_tool(gresource gio/gresource-tool.c)
add_gio_tool(gsettings gio/gsettings-tool.c)
-
+
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(WIN win32)
else()
@@ -146,20 +289,20 @@ if(NOT GLIB_SKIP_TOOLS)
endif()
add_glib_tool(glib-genmarshal gobject/glib-genmarshal.c)
- add_glib_tool(gspawn-${WIN}-helper WIN32 glib/gspawn-win32-helper.c)
- add_glib_tool(gspawn-${WIN}-helper-console glib/gspawn-win32-helper-console.c)
-
+ if(WIN32)
+ add_glib_tool(gspawn-${WIN}-helper WIN32 glib/gspawn-win32-helper.c)
+ add_glib_tool(gspawn-${WIN}-helper-console glib/gspawn-win32-helper-console.c)
+ endif()
+
install(TARGETS ${GLIB_TOOLS} RUNTIME DESTINATION tools/glib)
endif()
install(TARGETS ${GLIB_TARGETS} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
-if(NOT GLIB_SKIP_HEADERS)
- include(install_headers)
-endif()
message(STATUS "Link-time dependencies:")
message(STATUS " " ${ZLIB_LIBRARIES})
message(STATUS " " ${PCRE_LIBRARY})
message(STATUS " " ${ICONV_LIBRARY})
+message(STATUS " " ${CHARSET_LIBRARY})
message(STATUS " " ${FFI_LIBRARY})
message(STATUS " " ${LIBINTL_LIBRARY})
diff --git a/ports/glib/CONTROL b/ports/glib/CONTROL
index 9ae5ce296..f37b794cb 100644
--- a/ports/glib/CONTROL
+++ b/ports/glib/CONTROL
@@ -1,4 +1,4 @@
Source: glib
-Version: 2.52.2
+Version: 2.52.3-9
Description: Portable, general-purpose utility library.
Build-Depends: zlib, pcre, libffi, gettext, libiconv
diff --git a/ports/glib/cmake/install_headers.cmake b/ports/glib/cmake/install_headers.cmake
index 0cfc207a4..7840f34ab 100644
--- a/ports/glib/cmake/install_headers.cmake
+++ b/ports/glib/cmake/install_headers.cmake
@@ -1,7 +1,6 @@
# generated from glib-install.props
install(FILES glib/glib.h DESTINATION include)
-install(FILES glib/glibconfig.h DESTINATION include)
-install(FILES glib/glib.h DESTINATION include)
+install(FILES ${CMAKE_BINARY_DIR}/config/glib/glibconfig.h DESTINATION include)
install(FILES glib/glib-object.h DESTINATION include)
install(FILES glib/deprecated/gallocator.h DESTINATION include/glib/deprecated)
install(FILES glib/deprecated/gcache.h DESTINATION include/glib/deprecated)
@@ -251,6 +250,6 @@ install(FILES gio/gdbusobjectmanagerclient.h DESTINATION include/gio)
install(FILES gio/gdbusobjectmanagerserver.h DESTINATION include/gio)
install(FILES gio/gtestdbus.h DESTINATION include/gio)
install(FILES gio/gioenumtypes.h DESTINATION include/gio)
-install(FILES gio/gnetworking.h DESTINATION include/gio)
+install(FILES ${CMAKE_BINARY_DIR}/config/gio/gnetworking.h DESTINATION include/gio)
install(FILES gio/gwin32inputstream.h DESTINATION include/gio)
install(FILES gio/gwin32outputstream.h DESTINATION include/gio)
diff --git a/ports/glib/portfile.cmake b/ports/glib/portfile.cmake
index e23f5dcb9..a500cbd24 100644
--- a/ports/glib/portfile.cmake
+++ b/ports/glib/portfile.cmake
@@ -1,21 +1,26 @@
# Glib uses winapi functions not available in WindowsStore
-if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
message(FATAL_ERROR "Error: UWP builds are currently not supported.")
endif()
-# Glib relies on DllMain
-if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- message(STATUS "Warning: Static building not supported. Building dynamic.")
- set(VCPKG_LIBRARY_LINKAGE dynamic)
+# Glib relies on DllMain on Windows
+if(NOT VCPKG_CMAKE_SYSTEM_NAME)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message("Glib relies on DllMain and therefore cannot be built statically")
+ set(VCPKG_LIBRARY_LINKAGE "dynamic")
+ endif()
+ if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "Glib only supports dynamic library and crt linkage")
+ endif()
endif()
include(vcpkg_common_functions)
-set(GLIB_VERSION 2.52.2)
+set(GLIB_VERSION 2.52.3)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/glib-${GLIB_VERSION})
vcpkg_download_distfile(ARCHIVE
URLS "https://ftp.gnome.org/pub/gnome/sources/glib/2.52/glib-${GLIB_VERSION}.tar.xz"
FILENAME "glib-${GLIB_VERSION}.tar.xz"
- SHA512 3ea49b75b6f80d9974ebd3c40518d5aaffffd9d9d008c1ae3302690fa34899b91ae59c87f8235077129bbd8b01ef19211efb89bc7fdb08d0254b07735b1ba92d)
+ SHA512 a068f2519cfb82de8d4b7f004e7c1f15e841cad4046430a83b02b359d011e0c4077cdff447a1687ed7c68f1a11b4cf66b9ed9fc23ab5f0c7c6be84eb0ddc3017)
vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
@@ -26,6 +31,7 @@ vcpkg_apply_patches(
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/cmake DESTINATION ${SOURCE_PATH})
file(REMOVE_RECURSE ${SOURCE_PATH}/glib/pcre)
+file(WRITE ${SOURCE_PATH}/glib/pcre/Makefile.in)
file(REMOVE ${SOURCE_PATH}/glib/win_iconv.c)
vcpkg_configure_cmake(
@@ -35,7 +41,8 @@ vcpkg_configure_cmake(
-DGLIB_VERSION=${GLIB_VERSION}
OPTIONS_DEBUG
-DGLIB_SKIP_HEADERS=ON
- -DGLIB_SKIP_TOOLS=ON)
+ -DGLIB_SKIP_TOOLS=ON
+ )
vcpkg_install_cmake()
vcpkg_copy_pdbs()
diff --git a/ports/glibmm/CMakeLists.txt b/ports/glibmm/CMakeLists.txt
new file mode 100644
index 000000000..9f0165786
--- /dev/null
+++ b/ports/glibmm/CMakeLists.txt
@@ -0,0 +1,121 @@
+cmake_minimum_required(VERSION 3.9)
+project(glibmm)
+
+set(CMAKE_CXX_STANDARD 17)
+
+find_path(GLIB_INCLUDE_DIR NAMES glib.h)
+find_library(GLIB_LIBRARY NAMES glib-2.0)
+find_library(GIO_LIBRARY NAMES gio-2.0)
+find_library(GOBJECT_LIBRARY NAMES gobject-2.0)
+find_library(GMODULE_LIBRARY NAMES gmodule-2.0)
+find_library(GTHREAD_LIBRARY NAMES gthread-2.0)
+find_program(GLIB_COMPILE_SCHEMAS NAMES glib-compile-schemas)
+find_library(PCRE_LIBRARY NAMES pcre)
+find_library(SIGC_LIBRARY NAMES sigc-2.0)
+find_library(FFI_LIBRARY NAMES ffi libffi)
+
+include_directories(${GLIB_INCLUDE_DIR})
+link_libraries(
+ ${GIO_LIBRARY}
+ ${GOBJECT_LIBRARY}
+ ${GMODULE_LIBRARY}
+ ${GTHREAD_LIBRARY}
+ ${GLIB_LIBRARY}
+ ${PCRE_LIBRARY}
+ ${SIGC_LIBRARY}
+ ${FFI_LIBRARY}
+)
+
+if(APPLE)
+ find_library(LIBINTL_LIBRARY NAMES intl)
+endif()
+
+find_package(unofficial-iconv REQUIRED)
+link_libraries(${LIBINTL_LIBRARY} unofficial::iconv::libiconv)
+
+if(APPLE)
+ find_library(COREFOUNDATION_LIBRARY CoreFoundation)
+ find_library(CORESERVICES_LIBRARY CoreServices)
+ find_library(FOUNDATION_LIBRARY Foundation)
+ link_libraries(${COREFOUNDATION_LIBRARY} ${CORESERVICES_LIBRARY} ${FOUNDATION_LIBRARY})
+endif()
+
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+
+if(BUILD_SHARED_LIBS)
+ add_definitions(-DGLIBMM_DLL -DGIOMM_DLL)
+else()
+ add_definitions(-DGLIBMM_STATIC_LIB -DGIOMM_STATIC_LIB)
+endif()
+
+if(WIN32)
+ add_compile_options(/FI${WARNINGS_HEADER} -DSIZEOF_WCHAR_T=2)
+else()
+ set(THREADS_PREFER_PTHREAD_FLAG ON)
+ find_package(Threads REQUIRED)
+ link_libraries(Threads::Threads ${CMAKE_DL_LIBS})
+endif()
+
+if(WIN32)
+ configure_file(MSVC_Net2013/giomm/giommconfig.h ${CMAKE_BINARY_DIR}/config/gio/giommconfig.h COPYONLY)
+ configure_file(MSVC_Net2013/glibmm/glibmmconfig.h ${CMAKE_BINARY_DIR}/config/glib/glibmmconfig.h COPYONLY)
+else()
+ set(ENV{GLIB_COMPILE_SCHEMAS} "${GLIB_COMPILE_SCHEMAS}")
+ set(ENV{GLIBMM_CFLAGS} -I${GLIB_INCLUDE_DIR})
+ set(ENV{GLIBMM_LIBS} "${GLIB_LIBRARY}")
+ set(ENV{GIOMM_CFLAGS} -I${GLIB_INCLUDE_DIR})
+ set(ENV{GIOMM_LIBS} "${GIO_LIBRARY}")
+ set(ENV{PKG_CONFIG} "echo")
+
+ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/config)
+ execute_process(
+ COMMAND "${CMAKE_SOURCE_DIR}/configure"
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/config
+ RESULT_VARIABLE res
+ )
+ if(NOT res EQUAL 0)
+ message(FATAL_ERROR "Configure failed.")
+ endif()
+endif()
+
+file(GLOB GLIBMM_SOURCES glib/glibmm/*.cc)
+add_library(glibmm ${GLIBMM_SOURCES})
+target_compile_definitions(glibmm PRIVATE -DGLIBMM_BUILD)
+target_include_directories(glibmm PUBLIC glib ${CMAKE_BINARY_DIR}/config/glib)
+
+file(GLOB GIOMM_SOURCES gio/giomm/*.cc)
+if(WIN32)
+ list(FILTER GIOMM_SOURCES EXCLUDE REGEX "desktopappinfo.cc\$|/unix[^/]+.cc\$")
+endif()
+add_library(giomm ${GIOMM_SOURCES})
+target_compile_definitions(giomm PRIVATE -DGIOMM_BUILD)
+target_link_libraries(giomm PUBLIC glibmm)
+target_include_directories(giomm PUBLIC gio ${CMAKE_BINARY_DIR}/config/gio)
+
+install(
+ TARGETS glibmm giomm
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(
+ FILES
+ ${CMAKE_BINARY_DIR}/config/gio/giommconfig.h
+ gio/giomm.h
+ ${CMAKE_BINARY_DIR}/config/glib/glibmmconfig.h
+ glib/glibmm.h
+ DESTINATION include
+ )
+ install(
+ DIRECTORY gio/giomm glib/glibmm
+ DESTINATION include
+ FILES_MATCHING PATTERN *.h
+ )
+endif()
+
+if(NOT DISABLE_EXAMPLES)
+ add_executable(options examples/options/main.cc)
+ target_link_libraries(options PRIVATE giomm)
+endif()
diff --git a/ports/glibmm/CONTROL b/ports/glibmm/CONTROL
new file mode 100644
index 000000000..a7ccbe937
--- /dev/null
+++ b/ports/glibmm/CONTROL
@@ -0,0 +1,4 @@
+Source: glibmm
+Version: 2.52.1-7
+Description: This is glibmm, a C++ API for parts of glib that are useful for C++. See http://www.gtkmm.org.
+Build-Depends: zlib, pcre, libffi, gettext, libiconv, glib, libsigcpp
diff --git a/ports/glibmm/glibmm-api-variant.patch b/ports/glibmm/glibmm-api-variant.patch
new file mode 100644
index 000000000..bb00ac3f5
--- /dev/null
+++ b/ports/glibmm/glibmm-api-variant.patch
@@ -0,0 +1,84 @@
+diff --git a/glib/glibmm/varianttype.h b/glib/glibmm/varianttype.h
+index a232e70..64eb4a1 100644
+--- a/glib/glibmm/varianttype.h
++++ b/glib/glibmm/varianttype.h
+@@ -500,54 +500,79 @@ public:
+
+ };
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_BOOL;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_BYTE;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_INT16;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_UINT16;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_INT32;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_UINT32;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_INT64;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_UINT64;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_DOUBLE;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_STRING;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_OBJECT_PATH;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_SIGNATURE;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_VARIANT;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_HANDLE;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_UNIT;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_ANY;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_BASIC;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_MAYBE;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_ARRAY;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_TUPLE;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_DICT_ENTRY;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_DICTIONARY;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_STRING_ARRAY;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_BYTESTRING;
+
++GLIBMM_API
+ extern const VariantType VARIANT_TYPE_BYTESTRING_ARRAY;
+
+
diff --git a/ports/glibmm/msvc_recommended_pragmas.h b/ports/glibmm/msvc_recommended_pragmas.h
new file mode 100644
index 000000000..c0eb1d5ed
--- /dev/null
+++ b/ports/glibmm/msvc_recommended_pragmas.h
@@ -0,0 +1,34 @@
+#ifndef _MSC_VER
+#pragma error "This header is for Microsoft VC only."
+#endif /* _MSC_VER */
+
+/* Make MSVC more pedantic, this is a recommended pragma list
+ * from _Win32_Programming_ by Rector and Newcomer.
+ */
+#pragma warning(error:4002) /* too many actual parameters for macro */
+#pragma warning(error:4003) /* not enough actual parameters for macro */
+#pragma warning(1:4010) /* single-line comment contains line-continuation character */
+#pragma warning(error:4013) /* 'function' undefined; assuming extern returning int */
+#pragma warning(1:4016) /* no function return type; using int as default */
+#pragma warning(error:4020) /* too many actual parameters */
+#pragma warning(error:4021) /* too few actual parameters */
+#pragma warning(error:4027) /* function declared without formal parameter list */
+#pragma warning(error:4029) /* declared formal parameter list different from definition */
+#pragma warning(error:4033) /* 'function' must return a value */
+#pragma warning(error:4035) /* 'function' : no return value */
+#pragma warning(error:4045) /* array bounds overflow */
+#pragma warning(error:4047) /* different levels of indirection */
+#pragma warning(error:4049) /* terminating line number emission */
+#pragma warning(error:4053) /* An expression of type void was used as an operand */
+#pragma warning(error:4071) /* no function prototype given */
+#pragma warning(disable:4101) /* unreferenced local variable */
+#pragma warning(error:4150)
+
+#pragma warning(disable:4244) /* No possible loss of data warnings */
+#pragma warning(disable:4305) /* No truncation from int to char warnings */
+
+#pragma warning(error:4819) /* The file contains a character that cannot be represented in the current code page */
+
+/* work around Microsoft's premature attempt to deprecate the C-Library */
+#define _CRT_SECURE_NO_WARNINGS
+#define _CRT_NONSTDC_NO_WARNINGS
diff --git a/ports/glibmm/portfile.cmake b/ports/glibmm/portfile.cmake
new file mode 100644
index 000000000..792bf3dde
--- /dev/null
+++ b/ports/glibmm/portfile.cmake
@@ -0,0 +1,37 @@
+# Glib uses winapi functions not available in WindowsStore, so glibmm also
+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/glibmm-2.52.1)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.52/glibmm-2.52.1.tar.xz"
+ FILENAME "glibmm-2.52.1.tar.xz"
+ SHA512 702158762cb28972b315ab98dc00a62e532bda08b6e76dc2a2556e8cb381c2021290891887a4af2fbff5a62bab4d50581be73037dc8e0dc47d5febd6cbeb7bda
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/glibmm-api-variant.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DWARNINGS_HEADER=${CMAKE_CURRENT_LIST_DIR}/msvc_recommended_pragmas.h
+ OPTIONS_DEBUG
+ -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+# Handle copyright and readme
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/glibmm RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/glibmm RENAME readme.txt)
diff --git a/ports/glm/CONTROL b/ports/glm/CONTROL
index 3e1f91148..7dbcec7d4 100644
--- a/ports/glm/CONTROL
+++ b/ports/glm/CONTROL
@@ -1,3 +1,3 @@
Source: glm
-Version: 0.9.8.1
+Version: 0.9.9.0
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 4780a1b39..b975cc370 100644
--- a/ports/glm/portfile.cmake
+++ b/ports/glm/portfile.cmake
@@ -1,20 +1,31 @@
-#header-only library
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/glm)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/g-truc/glm/releases/download/0.9.8.1/glm-0.9.8.1.zip"
- FILENAME "glm-0.9.8.1.zip"
- SHA512 93223ea7a08d969331a6b93d598c0b59dfc09e86770661c444f81939bd175053d3f6b1211a4aa4e59d732df39b97fe491eb35d4ac2efb286a1cf68ed29bfa80a
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO g-truc/glm
+ REF 0.9.9.0
+ SHA512 b7a6996cb98bc334130c33a339275b50ea28d8dfce300f3d14ac52edf0b5c38bf216d318f411e898edef428876c0b2d1f6a6e951f160f31425fe0852ad150421
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
-# Remove glm/CMakeLists.txt
-file(REMOVE ${SOURCE_PATH}/glm/CMakeLists.txt)
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/ignore-warning-C4201.patch"
+)
-# Put the license file where vcpkg expects it
-file(COPY ${SOURCE_PATH}/copying.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/glm/)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/glm/copying.txt ${CURRENT_PACKAGES_DIR}/share/glm/copyright)
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+)
+
+vcpkg_install_cmake()
-# Copy the glm header files
-file(GLOB HEADER_FILES ${SOURCE_PATH}/glm/*)
-file(COPY ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/glm)
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/glm")
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+# Put the license file where vcpkg expects it
+file(COPY ${SOURCE_PATH}/manual.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/glm/)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/glm/manual.md ${CURRENT_PACKAGES_DIR}/share/glm/copyright)
diff --git a/ports/globjects/CONTROL b/ports/globjects/CONTROL
index 7917bacac..df9c862dc 100644
--- a/ports/globjects/CONTROL
+++ b/ports/globjects/CONTROL
@@ -1,5 +1,5 @@
Source: globjects
Maintainer: mattias@mattiascibien.net
-Version: 1.0.0
+Version: 1.0.0-1
Build-Depends: glbinding, glm
Description: C++ library strictly wrapping OpenGL objects. <https://github.com/cginternals/globjects>
diff --git a/ports/globjects/portfile.cmake b/ports/globjects/portfile.cmake
index 5ab880ad6..08fae6ec3 100644
--- a/ports/globjects/portfile.cmake
+++ b/ports/globjects/portfile.cmake
@@ -15,7 +15,12 @@ vcpkg_download_distfile(ARCHIVE
)
vcpkg_extract_source_archive(${ARCHIVE})
-vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH})
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DOPTION_BUILD_TESTS=OFF
+ -DOPTION_BUILD_GPU_TESTS=OFF
+)
#vcpkg_build_cmake()
vcpkg_install_cmake()
diff --git a/ports/glog/CONTROL b/ports/glog/CONTROL
index 5cf97bd11..fad754f7c 100644
--- a/ports/glog/CONTROL
+++ b/ports/glog/CONTROL
@@ -1,4 +1,4 @@
Source: glog
-Version: 0.3.4-0472b91-1
+Version: 0.3.5-1
Description: C++ implementation of the Google logging module
Build-Depends: gflags
diff --git a/ports/glog/fix-cmake-install-files.patch b/ports/glog/fix-cmake-install-files.patch
deleted file mode 100644
index 34f6f07f3..000000000
--- a/ports/glog/fix-cmake-install-files.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 1429590..5ed110d 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -390,7 +390,8 @@ if (HAVE_NO_UNNAMED_TYPE_TEMPLATE_ARGS)
- endif (HAVE_NO_UNNAMED_TYPE_TEMPLATE_ARGS)
-
- if (gflags_FOUND)
-- target_include_directories (glog PUBLIC ${gflags_INCLUDE_DIR})
-+ # when set to PUBLIC, will cause some wrong interface_include_directory for vcpkg
-+ target_include_directories (glog PRIVATE ${gflags_INCLUDE_DIR})
- target_link_libraries (glog PUBLIC ${gflags_LIBRARIES})
-
- if (NOT BUILD_SHARED_LIBS)
-@@ -557,7 +558,7 @@ endif (gflags_FOUND)
-
- configure_package_config_file (glog-config.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
-- INSTALL_DESTINATION lib/cmake/glog
-+ INSTALL_DESTINATION share/glog
- NO_CHECK_REQUIRED_COMPONENTS_MACRO)
-
- write_basic_package_version_file (glog-config-version.cmake VERSION
-@@ -569,6 +570,6 @@ export (PACKAGE glog)
- install (FILES
- ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
- ${CMAKE_CURRENT_BINARY_DIR}/glog-config-version.cmake
-- DESTINATION lib/cmake/glog)
-+ DESTINATION share/glog)
-
--install (EXPORT glog-targets NAMESPACE glog:: DESTINATION lib/cmake/glog)
-+install (EXPORT glog-targets NAMESPACE glog:: DESTINATION share/glog)
diff --git a/ports/glog/portfile.cmake b/ports/glog/portfile.cmake
index d981c7e27..1fa6b0164 100644
--- a/ports/glog/portfile.cmake
+++ b/ports/glog/portfile.cmake
@@ -7,46 +7,28 @@
#
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/glog-0472b91c5defdf90cff7292e3bf7bd86770a9a0a)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/google/glog/archive/0472b91c5defdf90cff7292e3bf7bd86770a9a0a.zip"
- FILENAME "glog-0472b91c5defdf90cff7292e3bf7bd86770a9a0a.zip"
- SHA512 24506ad1cc05e8361379b925ecfc8f32cc47692a47598401cca340eb2a528fe28b8b0d3636983056c7910469d105095bd3bacacff6278bffa18d85603c3dbfa8
-)
-vcpkg_extract_source_archive(${ARCHIVE})
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-cmake-install-files.patch"
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/glog
+ REF v0.3.5
+ SHA512 a54a3b8b4b7660d7558ba5168c659bc3c8323c30908a4f6a4bbc6f9cd899350f3243aabc720daebfdeb799b276b51ba1eaa1a0f83149c4e1a038d552ada1ed72
+ HEAD_REF master
)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
- # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
- # OPTIONS_RELEASE -DOPTIMIZE=1
- # OPTIONS_DEBUG -DDEBUGGABLE=1
)
vcpkg_install_cmake()
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/glog)
-file(GLOB GLOG_CMAKE_FILES ${CURRENT_PACKAGES_DIR}/debug/share/glog/*.cmake)
-file(COPY ${GLOG_CMAKE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/share/glog)
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/glog")
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-# changes target search path
-file(READ ${CURRENT_PACKAGES_DIR}/debug/share/glog/glog-targets-debug.cmake GLOG_DEBUG_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" GLOG_DEBUG_MODULE "${GLOG_DEBUG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/glog/glog-targets-debug.cmake "${GLOG_DEBUG_MODULE}")
-
-# remove not used cmake files
-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 )
+vcpkg_copy_pdbs()
# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/glog)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/glog/COPYING ${CURRENT_PACKAGES_DIR}/share/glog/copyright)
-
diff --git a/ports/glslang/CONTROL b/ports/glslang/CONTROL
index 3b81f5287..22d5a054e 100644
--- a/ports/glslang/CONTROL
+++ b/ports/glslang/CONTROL
@@ -1,3 +1,3 @@
Source: glslang
-Version: 1c573fbcfba6b3d631008b1babc838501ca925d3-1
-Description: Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator
+Version: 2018-03-02
+Description: Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator
diff --git a/ports/glslang/portfile.cmake b/ports/glslang/portfile.cmake
index 9fd6ae468..2182d9bcd 100644
--- a/ports/glslang/portfile.cmake
+++ b/ports/glslang/portfile.cmake
@@ -1,68 +1,27 @@
-# 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}
-#
-
include(vcpkg_common_functions)
-find_program(GIT git)
-
-set(GIT_URL "https://github.com/KhronosGroup/glslang.git")
-set(GIT_REF "1c573fbcfba6b3d631008b1babc838501ca925d3")
-
-if(NOT EXISTS "${DOWNLOADS}/glslang.git")
- message(STATUS "Cloning")
- vcpkg_execute_required_process(
- COMMAND ${GIT} clone --bare ${GIT_URL} ${DOWNLOADS}/glslang.git
- WORKING_DIRECTORY ${DOWNLOADS}
- LOGNAME clone
- )
-endif()
-
-if(NOT EXISTS "${CURRENT_BUILDTREES_DIR}/src/.git")
- message(STATUS "Adding worktree and patching")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR})
- vcpkg_execute_required_process(
- COMMAND ${GIT} worktree add -f --detach ${CURRENT_BUILDTREES_DIR}/src ${GIT_REF}
- WORKING_DIRECTORY ${DOWNLOADS}/glslang.git
- LOGNAME worktree
- )
- message(STATUS "Patching")
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "Dynamic not supported. Building static")
+ set(VCPKG_LIBRARY_LINKAGE "static")
endif()
-set(VCPKG_LIBRARY_LINKAGE "static")
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO KhronosGroup/glslang
+ REF b5b5f918c6b72d7cf2ee73641cc6c6ddb211ca70
+ SHA512 ec0f7a23fa60457a481c7b3acf4c127c3bf898d23655d346aeafb304f74e798d632c83d676873f2c764d241de6dc4392cff8d6ce0ee509a4b74ee2233b01c008
+ HEAD_REF master
+)
vcpkg_configure_cmake(
- SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src"
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
)
vcpkg_install_cmake()
-file(COPY "${CURRENT_BUILDTREES_DIR}/src/glslang/Public" DESTINATION ${CURRENT_PACKAGES_DIR}/include/glslang)
-file(COPY "${CURRENT_BUILDTREES_DIR}/src/glslang/Include" DESTINATION ${CURRENT_PACKAGES_DIR}/include/glslang)
-file(COPY "${CURRENT_BUILDTREES_DIR}/src/glslang/MachineIndependent/Versions.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include/glslang/MachineIndependent)
-file(COPY "${CURRENT_BUILDTREES_DIR}/src/SPIRV/Logger.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include/SPIRV)
-file(COPY "${CURRENT_BUILDTREES_DIR}/src/SPIRV/spirv.hpp" DESTINATION ${CURRENT_PACKAGES_DIR}/include/SPIRV)
-file(COPY "${CURRENT_BUILDTREES_DIR}/src/SPIRV/GlslangToSpv.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include/SPIRV)
-file(COPY "${CURRENT_PACKAGES_DIR}/bin/glslangValidator.exe" DESTINATION ${CURRENT_PACKAGES_DIR}/tools)
-file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/glslangValidator.exe")
-file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/glslangValidator.exe")
-file(COPY "${CURRENT_PACKAGES_DIR}/bin/spirv-remap.exe" DESTINATION ${CURRENT_PACKAGES_DIR}/tools)
-file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/spirv-remap.exe")
-file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/spirv-remap.exe")
-
-file(GLOB BIN_DIR "${CURRENT_PACKAGES_DIR}/bin/*")
-list(LENGTH BIN_DIR BIN_DIR_SIZE)
-if(${BIN_DIR_SIZE} EQUAL 0)
- file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin")
-endif()
-file(GLOB DEBUG_BIN_DIR "${CURRENT_PACKAGES_DIR}/debug/bin/*")
-list(LENGTH DEBUG_BIN_DIR DEBUG_BIN_DIR_SIZE)
-if(${DEBUG_BIN_DIR_SIZE} EQUAL 0)
- file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin")
-endif()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(RENAME "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/tools")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin")
# Handle copyright
file(COPY ${CMAKE_CURRENT_LIST_DIR}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/glslang)
diff --git a/ports/gmime/CMakeLists.txt b/ports/gmime/CMakeLists.txt
new file mode 100644
index 000000000..20c788f7e
--- /dev/null
+++ b/ports/gmime/CMakeLists.txt
@@ -0,0 +1,125 @@
+cmake_minimum_required(VERSION 3.8)
+
+project(gmime C)
+
+set(GLIB_LIB_SUFFIX 2.0)
+set(GMIME_DLL_SUFFIX 3)
+set(GMIME_LIB_SUFFIX 3.0)
+
+# Find glib
+find_path(GLIB_INCLUDE_DIR glib.h)
+find_library(GLIB_GLIB_LIBRARY glib-${GLIB_LIB_SUFFIX})
+find_library(GLIB_GIO_LIBRARY gio-${GLIB_LIB_SUFFIX})
+find_library(GLIB_GOBJECT_LIBRARY gobject-${GLIB_LIB_SUFFIX})
+set(GLIB_LIBRARIES ${GLIB_GLIB_LIBRARY} ${GLIB_GIO_LIBRARY} ${GLIB_GOBJECT_LIBRARY})
+
+# Find other deps
+find_path(ICONV_INCLUDE_DIR iconv.h)
+find_library(ICONV_LIBRARY NAMES iconv libiconv)
+
+find_library(IDN_LIBRARY NAMES libidn2 libidn)
+
+find_package(zlib REQUIRED)
+
+if(MSVC)
+ add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
+ add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
+endif()
+
+add_definitions(-DHAVE_CONFIG_H)
+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
+ gmime/gmime-content-type.c
+ gmime/gmime-crypto-context.c
+ gmime/gmime-data-wrapper.c
+ gmime/gmime-disposition.c
+ gmime/gmime-encodings.c
+ gmime/gmime-events.c
+ gmime/gmime-filter.c
+ gmime/gmime-filter-basic.c
+ gmime/gmime-filter-best.c
+ gmime/gmime-filter-charset.c
+ gmime/gmime-filter-checksum.c
+ gmime/gmime-filter-dos2unix.c
+ gmime/gmime-filter-enriched.c
+ gmime/gmime-filter-from.c
+ gmime/gmime-filter-gzip.c
+ gmime/gmime-filter-html.c
+ gmime/gmime-filter-smtp-data.c
+ gmime/gmime-filter-strip.c
+ gmime/gmime-filter-unix2dos.c
+ gmime/gmime-filter-windows.c
+ gmime/gmime-filter-yenc.c
+ gmime/gmime-format-options.c
+ gmime/gmime-gpg-context.c
+ gmime/gmime-gpgme-utils.c
+ gmime/gmime-header.c
+ gmime/gmime-iconv.c
+ gmime/gmime-iconv-utils.c
+ gmime/gmime-message.c
+ gmime/gmime-message-part.c
+ gmime/gmime-message-partial.c
+ gmime/gmime-multipart.c
+ gmime/gmime-multipart-encrypted.c
+ gmime/gmime-multipart-signed.c
+ gmime/gmime-object.c
+ gmime/gmime-param.c
+ gmime/gmime-parse-utils.c
+ gmime/gmime-parser.c
+ gmime/gmime-parser-options.c
+ gmime/gmime-part.c
+ gmime/gmime-part-iter.c
+ gmime/gmime-pkcs7-context.c
+ gmime/gmime-references.c
+ gmime/gmime-signature.c
+ gmime/gmime-stream.c
+ gmime/gmime-stream-buffer.c
+ gmime/gmime-stream-cat.c
+ gmime/gmime-stream-file.c
+ gmime/gmime-stream-filter.c
+ gmime/gmime-stream-fs.c
+ gmime/gmime-stream-gio.c
+ gmime/gmime-stream-mem.c
+ gmime/gmime-stream-mmap.c
+ gmime/gmime-stream-null.c
+ gmime/gmime-stream-pipe.c
+ gmime/gmime-text-part.c
+ gmime/gmime-utils.c
+ gmime/internet-address.c
+ util/packed.c
+ util/url-scanner.c
+ util/gtrie.c
+)
+
+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)
+endif()
+
+add_library(${PROJECT_NAME} ${LIB_SRC} ${MSVC_SRC})
+
+set_target_properties(${PROJECT_NAME} PROPERTIES
+ OUTPUT_NAME ${PROJECT_NAME}-${GMIME_DLL_SUFFIX}
+ ARCHIVE_OUTPUT_NAME ${PROJECT_NAME}-${GMIME_LIB_SUFFIX}
+)
+
+target_include_directories(${PROJECT_NAME} PRIVATE . ./util ${GLIB_INCLUDE_DIR} ${ICONV_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
+target_link_libraries(${PROJECT_NAME} PRIVATE ${GLIB_LIBRARIES} ${ICONV_LIBRARY} ${ZLIB_LIBRARIES} ${IDN_LIBRARY})
+target_link_libraries(${PROJECT_NAME} PRIVATE Ws2_32.lib)
+
+install(TARGETS ${PROJECT_NAME}
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
+install(FILES ${LIB_HEADERS} DESTINATION include/gmime)
diff --git a/ports/gmime/CONTROL b/ports/gmime/CONTROL
new file mode 100644
index 000000000..febce0ebe
--- /dev/null
+++ b/ports/gmime/CONTROL
@@ -0,0 +1,4 @@
+Source: gmime
+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
new file mode 100644
index 000000000..a53c1537a
--- /dev/null
+++ b/ports/gmime/config.h
@@ -0,0 +1,184 @@
+/* config.h. Generated from config.h.in by configure. */
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if GMime should enable GpgME PGP and S/MIME support. */
+/* #undef ENABLE_CRYPTO */
+
+/* Define if GMime should enable warning output. */
+/* #undef ENABLE_WARNINGS */
+
+/* Define to the GMime version */
+#define GMIME_VERSION "@LIB_VERSION@"
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+/* #undef HAVE_DLFCN_H */
+
+/* Define to 1 if you have the `fsync' function. */
+/* #undef HAVE_FSYNC */
+
+/* Define to 1 if you have the `getaddrinfo' function. */
+#define HAVE_GETADDRINFO 1
+
+/* Define to 1 if you have the `getdomainname' function. */
+/* #undef HAVE_GETDOMAINNAME */
+
+/* Define to 1 if you have the `gethostname' function. */
+#define HAVE_GETHOSTNAME 1
+
+/* Define to 1 if you have the <getopt.h> header with the GNU `getopt_long'
+ function. */
+#define HAVE_GETOPT_H 1
+
+/* Define to 1 if you have the `getpagesize' function. */
+/* #undef HAVE_GETPAGESIZE */
+
+/* Define to 1 to use auto-detected iconv-friendly charset names. */
+/* #undef HAVE_ICONV_DETECT_H */
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have a working `mmap' system call. */
+/* #undef HAVE_MMAP */
+
+/* Define to 1 if you have the `msync' function. */
+/* #undef HAVE_MSYNC */
+
+/* Define to 1 if you have the `munmap' function. */
+/* #undef HAVE_MUNMAP */
+
+/* Define to 1 if you have the <netdb.h> header file. */
+/* #undef HAVE_NETDB_H */
+
+/* Define to 1 if you have the `poll' function. */
+/* #undef HAVE_POLL */
+
+/* Define to 1 if you have the <poll.h> header file. */
+/* #undef HAVE_POLL_H */
+
+/* Define to 1 if you have the `select' function. */
+/* #undef HAVE_SELECT */
+
+/* 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 <sys/mman.h> header file. */
+/* #undef HAVE_SYS_MMAN_H */
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+/* #undef HAVE_SYS_PARAM_H */
+
+/* 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/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <time.h> header file. */
+#define HAVE_TIME_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define if struct utsname has a domainname member */
+/* #undef HAVE_UTSNAME_DOMAINNAME */
+
+/* Define to 1 if you have the <winsock2.h> header file. */
+#define HAVE_WINSOCK2_H 1
+
+/* Define to 1 if GNU Libidn should be used. */
+#define LIBIDN 1
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
+/* Define with a value if your <sys/param.h> does not define MAXHOSTNAMELEN */
+/* #undef MAXHOSTNAMELEN */
+
+/* Define to 0 if your system does not have the O_LARGEFILE flag */
+/* #undef O_LARGEFILE */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "https://github.com/jstedfast/gmime/issues"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "gmime"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "gmime @LIB_VERSION@"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "gmime"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "@LIB_VERSION@"
+
+/* The size of `off_t', as computed by sizeof. */
+/* #undef SIZEOF_OFF_T */
+
+/* The size of `size_t', as computed by sizeof. */
+/* #undef SIZEOF_SIZE_T */
+
+/* The size of `ssize_t', as computed by sizeof. */
+/* #undef SIZEOF_SSIZE_T */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Using GNU libiconv */
+/* #undef USE_LIBICONV_GNU */
+
+/* Using a native implementation of iconv in a separate library */
+#define USE_LIBICONV_NATIVE 1
+
+/* Enable large inode numbers on Mac OS X 10.5. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* 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 `int' if <sys/types.h> does not define. */
+/* #undef mode_t */
+
+/* Define to `unsigned long int' if <poll.h> does not define. */
+/* #undef nfds_t */
+
+/* Define to `long int' if <sys/types.h> does not define. */
+/* #undef off_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define to `int' if <sys/types.h> does not define. */
+#define ssize_t intptr_t
+
+#ifdef _MSC_VER
+#pragma warning(disable: 4018)
+#pragma warning(disable: 4101)
+#endif
diff --git a/ports/gmime/gmime.def b/ports/gmime/gmime.def
new file mode 100644
index 000000000..b072e0d65
--- /dev/null
+++ b/ports/gmime/gmime.def
@@ -0,0 +1,614 @@
+EXPORTS
+
+g_mime_application_pkcs7_mime_decrypt
+g_mime_application_pkcs7_mime_encrypt
+g_mime_application_pkcs7_mime_get_smime_type
+g_mime_application_pkcs7_mime_get_type
+g_mime_application_pkcs7_mime_new
+g_mime_application_pkcs7_mime_sign
+g_mime_application_pkcs7_mime_verify
+g_mime_certificate_get_created
+g_mime_certificate_get_digest_algo
+g_mime_certificate_get_email
+g_mime_certificate_get_expires
+g_mime_certificate_get_fingerprint
+g_mime_certificate_get_issuer_name
+g_mime_certificate_get_issuer_serial
+g_mime_certificate_get_key_id
+g_mime_certificate_get_name
+g_mime_certificate_get_pubkey_algo
+g_mime_certificate_get_trust
+g_mime_certificate_get_type
+g_mime_certificate_list_add
+g_mime_certificate_list_clear
+g_mime_certificate_list_contains
+g_mime_certificate_list_get_certificate
+g_mime_certificate_list_get_type
+g_mime_certificate_list_index_of
+g_mime_certificate_list_insert
+g_mime_certificate_list_length
+g_mime_certificate_list_new
+g_mime_certificate_list_remove
+g_mime_certificate_list_remove_at
+g_mime_certificate_list_set_certificate
+g_mime_certificate_new
+g_mime_certificate_set_created
+g_mime_certificate_set_digest_algo
+g_mime_certificate_set_email
+g_mime_certificate_set_expires
+g_mime_certificate_set_fingerprint
+g_mime_certificate_set_issuer_name
+g_mime_certificate_set_issuer_serial
+g_mime_certificate_set_key_id
+g_mime_certificate_set_name
+g_mime_certificate_set_pubkey_algo
+g_mime_certificate_set_trust
+g_mime_charset_best
+g_mime_charset_best_name
+g_mime_charset_can_encode
+g_mime_charset_canon_name
+g_mime_charset_iconv_name
+g_mime_charset_init
+g_mime_charset_iso_to_windows
+g_mime_charset_language
+g_mime_charset_locale_name
+g_mime_charset_map_init
+g_mime_charset_map_shutdown
+g_mime_charset_name
+g_mime_charset_step
+g_mime_check_version
+g_mime_content_disposition_encode
+g_mime_content_disposition_get_disposition
+g_mime_content_disposition_get_parameter
+g_mime_content_disposition_get_parameters
+g_mime_content_disposition_get_type
+g_mime_content_disposition_is_attachment
+g_mime_content_disposition_new
+g_mime_content_disposition_parse
+g_mime_content_disposition_set_disposition
+g_mime_content_disposition_set_parameter
+g_mime_content_encoding_from_string
+g_mime_content_encoding_to_string
+g_mime_content_type_encode
+g_mime_content_type_get_media_subtype
+g_mime_content_type_get_media_type
+g_mime_content_type_get_mime_type
+g_mime_content_type_get_parameter
+g_mime_content_type_get_parameters
+g_mime_content_type_get_type
+g_mime_content_type_is_type
+g_mime_content_type_new
+g_mime_content_type_parse
+g_mime_content_type_set_media_subtype
+g_mime_content_type_set_media_type
+g_mime_content_type_set_parameter
+g_mime_crypto_context_decrypt
+g_mime_crypto_context_digest_id
+g_mime_crypto_context_digest_name
+g_mime_crypto_context_encrypt
+g_mime_crypto_context_export_keys
+g_mime_crypto_context_get_encryption_protocol
+g_mime_crypto_context_get_key_exchange_protocol
+g_mime_crypto_context_get_request_password
+g_mime_crypto_context_get_signature_protocol
+g_mime_crypto_context_get_type
+g_mime_crypto_context_import_keys
+g_mime_crypto_context_new
+g_mime_crypto_context_register
+g_mime_crypto_context_set_request_password
+g_mime_crypto_context_shutdown
+g_mime_crypto_context_sign
+g_mime_crypto_context_verify
+g_mime_data_wrapper_get_encoding
+g_mime_data_wrapper_get_stream
+g_mime_data_wrapper_get_type
+g_mime_data_wrapper_new
+g_mime_data_wrapper_new_with_stream
+g_mime_data_wrapper_set_encoding
+g_mime_data_wrapper_set_stream
+g_mime_data_wrapper_write_to_stream
+g_mime_decrypt_result_get_cipher
+g_mime_decrypt_result_get_mdc
+g_mime_decrypt_result_get_recipients
+g_mime_decrypt_result_get_session_key
+g_mime_decrypt_result_get_signatures
+g_mime_decrypt_result_get_type
+g_mime_decrypt_result_new
+g_mime_decrypt_result_set_cipher
+g_mime_decrypt_result_set_mdc
+g_mime_decrypt_result_set_recipients
+g_mime_decrypt_result_set_session_key
+g_mime_decrypt_result_set_signatures
+g_mime_encoding_base64_decode_step
+g_mime_encoding_base64_encode_close
+g_mime_encoding_base64_encode_step
+g_mime_encoding_flush
+g_mime_encoding_init_decode
+g_mime_encoding_init_encode
+g_mime_encoding_outlen
+g_mime_encoding_quoted_decode_step
+g_mime_encoding_quoted_encode_close
+g_mime_encoding_quoted_encode_step
+g_mime_encoding_reset
+g_mime_encoding_step
+g_mime_encoding_uudecode_step
+g_mime_encoding_uuencode_close
+g_mime_encoding_uuencode_step
+g_mime_filter_backup
+g_mime_filter_basic_get_type
+g_mime_filter_basic_new
+g_mime_filter_best_charset
+g_mime_filter_best_encoding
+g_mime_filter_best_get_type
+g_mime_filter_best_new
+g_mime_filter_charset_get_type
+g_mime_filter_charset_new
+g_mime_filter_checksum_get_digest
+g_mime_filter_checksum_get_type
+g_mime_filter_checksum_new
+g_mime_filter_complete
+g_mime_filter_copy
+g_mime_filter_dos2unix_get_type
+g_mime_filter_dos2unix_new
+g_mime_filter_enriched_get_type
+g_mime_filter_enriched_new
+g_mime_filter_filter
+g_mime_filter_from_get_type
+g_mime_filter_from_new
+g_mime_filter_get_type
+g_mime_filter_gzip_get_type
+g_mime_filter_gzip_new
+g_mime_filter_html_get_type
+g_mime_filter_html_new
+g_mime_filter_reset
+g_mime_filter_set_size
+g_mime_filter_smtp_data_get_type
+g_mime_filter_smtp_data_new
+g_mime_filter_strip_get_type
+g_mime_filter_strip_new
+g_mime_filter_unix2dos_get_type
+g_mime_filter_unix2dos_new
+g_mime_filter_windows_get_type
+g_mime_filter_windows_is_windows_charset
+g_mime_filter_windows_new
+g_mime_filter_windows_real_charset
+g_mime_filter_yenc_get_crc
+g_mime_filter_yenc_get_pcrc
+g_mime_filter_yenc_get_type
+g_mime_filter_yenc_new
+g_mime_filter_yenc_set_crc
+g_mime_filter_yenc_set_state
+g_mime_format_options_add_hidden_header
+g_mime_format_options_clear_hidden_headers
+g_mime_format_options_clone
+g_mime_format_options_create_newline_filter
+g_mime_format_options_free
+g_mime_format_options_get_default
+g_mime_format_options_get_newline
+g_mime_format_options_get_newline_format
+g_mime_format_options_get_param_encoding_method
+g_mime_format_options_get_type
+g_mime_format_options_is_hidden_header
+g_mime_format_options_new
+g_mime_format_options_remove_hidden_header
+g_mime_format_options_set_newline_format
+g_mime_format_options_set_param_encoding_method
+g_mime_gpg_context_get_type
+g_mime_gpg_context_new
+g_mime_header_format_addrlist
+g_mime_header_format_content_disposition
+g_mime_header_format_content_type
+g_mime_header_format_default
+g_mime_header_format_message_id
+g_mime_header_format_received
+g_mime_header_format_references
+g_mime_header_get_name
+g_mime_header_get_offset
+g_mime_header_get_raw_name
+g_mime_header_get_raw_value
+g_mime_header_get_type
+g_mime_header_get_value
+g_mime_header_list_append
+g_mime_header_list_clear
+g_mime_header_list_contains
+g_mime_header_list_get_count
+g_mime_header_list_get_header
+g_mime_header_list_get_header_at
+g_mime_header_list_get_type
+g_mime_header_list_new
+g_mime_header_list_prepend
+g_mime_header_list_remove
+g_mime_header_list_remove_at
+g_mime_header_list_set
+g_mime_header_list_to_string
+g_mime_header_list_write_to_stream
+g_mime_header_set_raw_value
+g_mime_header_set_value
+g_mime_header_write_to_stream
+g_mime_iconv_close
+g_mime_iconv_locale_to_utf8
+g_mime_iconv_locale_to_utf8_length
+g_mime_iconv_open
+g_mime_iconv_strdup
+g_mime_iconv_strndup
+g_mime_iconv_utf8_to_locale
+g_mime_iconv_utf8_to_locale_length
+g_mime_init
+g_mime_locale_charset
+g_mime_locale_language
+g_mime_message_add_mailbox
+g_mime_message_foreach
+g_mime_message_get_addresses
+g_mime_message_get_all_recipients
+g_mime_message_get_bcc
+g_mime_message_get_body
+g_mime_message_get_cc
+g_mime_message_get_date
+g_mime_message_get_from
+g_mime_message_get_message_id
+g_mime_message_get_mime_part
+g_mime_message_get_reply_to
+g_mime_message_get_sender
+g_mime_message_get_subject
+g_mime_message_get_to
+g_mime_message_get_type
+g_mime_message_new
+g_mime_message_part_get_message
+g_mime_message_part_get_type
+g_mime_message_part_new
+g_mime_message_part_new_with_message
+g_mime_message_part_set_message
+g_mime_message_partial_get_id
+g_mime_message_partial_get_number
+g_mime_message_partial_get_total
+g_mime_message_partial_get_type
+g_mime_message_partial_new
+g_mime_message_partial_reconstruct_message
+g_mime_message_partial_split_message
+g_mime_message_set_date
+g_mime_message_set_message_id
+g_mime_message_set_mime_part
+g_mime_message_set_subject
+g_mime_multipart_add
+g_mime_multipart_clear
+g_mime_multipart_contains
+g_mime_multipart_encrypted_decrypt
+g_mime_multipart_encrypted_encrypt
+g_mime_multipart_encrypted_get_type
+g_mime_multipart_encrypted_new
+g_mime_multipart_foreach
+g_mime_multipart_get_boundary
+g_mime_multipart_get_count
+g_mime_multipart_get_epilogue
+g_mime_multipart_get_part
+g_mime_multipart_get_prologue
+g_mime_multipart_get_subpart_from_content_id
+g_mime_multipart_get_type
+g_mime_multipart_index_of
+g_mime_multipart_insert
+g_mime_multipart_new
+g_mime_multipart_new_with_subtype
+g_mime_multipart_remove
+g_mime_multipart_remove_at
+g_mime_multipart_replace
+g_mime_multipart_set_boundary
+g_mime_multipart_set_epilogue
+g_mime_multipart_set_prologue
+g_mime_multipart_signed_get_type
+g_mime_multipart_signed_new
+g_mime_multipart_signed_sign
+g_mime_multipart_signed_verify
+g_mime_object_append_header
+g_mime_object_encode
+g_mime_object_get_content_disposition
+g_mime_object_get_content_disposition_parameter
+g_mime_object_get_content_id
+g_mime_object_get_content_type
+g_mime_object_get_content_type_parameter
+g_mime_object_get_disposition
+g_mime_object_get_header
+g_mime_object_get_header_list
+g_mime_object_get_headers
+g_mime_object_get_type
+g_mime_object_new
+g_mime_object_new_type
+g_mime_object_prepend_header
+g_mime_object_register_type
+g_mime_object_remove_header
+g_mime_object_set_content_disposition
+g_mime_object_set_content_disposition_parameter
+g_mime_object_set_content_id
+g_mime_object_set_content_type
+g_mime_object_set_content_type_parameter
+g_mime_object_set_disposition
+g_mime_object_set_header
+g_mime_object_to_string
+g_mime_object_write_to_stream
+g_mime_param_get_charset
+g_mime_param_get_encoding_method
+g_mime_param_get_lang
+g_mime_param_get_name
+g_mime_param_get_type
+g_mime_param_get_value
+g_mime_param_list_clear
+g_mime_param_list_encode
+g_mime_param_list_get_parameter
+g_mime_param_list_get_parameter_at
+g_mime_param_list_get_type
+g_mime_param_list_length
+g_mime_param_list_new
+g_mime_param_list_parse
+g_mime_param_list_remove
+g_mime_param_list_remove_at
+g_mime_param_list_set_parameter
+g_mime_param_set_charset
+g_mime_param_set_encoding_method
+g_mime_param_set_lang
+g_mime_param_set_value
+g_mime_parser_construct_message
+g_mime_parser_construct_part
+g_mime_parser_eos
+g_mime_parser_get_format
+g_mime_parser_get_headers_begin
+g_mime_parser_get_headers_end
+g_mime_parser_get_mbox_marker
+g_mime_parser_get_mbox_marker_offset
+g_mime_parser_get_persist_stream
+g_mime_parser_get_respect_content_length
+g_mime_parser_get_type
+g_mime_parser_init_with_stream
+g_mime_parser_new
+g_mime_parser_new_with_stream
+g_mime_parser_options_clone
+g_mime_parser_options_free
+g_mime_parser_options_get_address_compliance_mode
+g_mime_parser_options_get_allow_addresses_without_domain
+g_mime_parser_options_get_default
+g_mime_parser_options_get_fallback_charsets
+g_mime_parser_options_get_parameter_compliance_mode
+g_mime_parser_options_get_rfc2047_compliance_mode
+g_mime_parser_options_get_type
+g_mime_parser_options_new
+g_mime_parser_options_set_address_compliance_mode
+g_mime_parser_options_set_allow_addresses_without_domain
+g_mime_parser_options_set_fallback_charsets
+g_mime_parser_options_set_parameter_compliance_mode
+g_mime_parser_options_set_rfc2047_compliance_mode
+g_mime_parser_set_format
+g_mime_parser_set_header_regex
+g_mime_parser_set_persist_stream
+g_mime_parser_set_respect_content_length
+g_mime_parser_tell
+g_mime_part_get_best_content_encoding
+g_mime_part_get_content
+g_mime_part_get_content_description
+g_mime_part_get_content_encoding
+g_mime_part_get_content_id
+g_mime_part_get_content_location
+g_mime_part_get_content_md5
+g_mime_part_get_filename
+g_mime_part_get_openpgp_data
+g_mime_part_get_type
+g_mime_part_is_attachment
+g_mime_part_iter_clone
+g_mime_part_iter_free
+g_mime_part_iter_get_current
+g_mime_part_iter_get_parent
+g_mime_part_iter_get_path
+g_mime_part_iter_get_toplevel
+g_mime_part_iter_get_type
+g_mime_part_iter_is_valid
+g_mime_part_iter_jump_to
+g_mime_part_iter_new
+g_mime_part_iter_next
+g_mime_part_iter_prev
+g_mime_part_iter_remove
+g_mime_part_iter_replace
+g_mime_part_iter_reset
+g_mime_part_new
+g_mime_part_new_with_type
+g_mime_part_openpgp_decrypt
+g_mime_part_openpgp_encrypt
+g_mime_part_openpgp_sign
+g_mime_part_openpgp_verify
+g_mime_part_set_content
+g_mime_part_set_content_description
+g_mime_part_set_content_encoding
+g_mime_part_set_content_id
+g_mime_part_set_content_location
+g_mime_part_set_content_md5
+g_mime_part_set_filename
+g_mime_part_set_openpgp_data
+g_mime_part_verify_content_md5
+g_mime_pkcs7_context_get_type
+g_mime_pkcs7_context_new
+g_mime_references_append
+g_mime_references_clear
+g_mime_references_copy
+g_mime_references_free
+g_mime_references_get_message_id
+g_mime_references_get_type
+g_mime_references_length
+g_mime_references_new
+g_mime_references_parse
+g_mime_references_set_message_id
+g_mime_shutdown
+g_mime_signature_get_certificate
+g_mime_signature_get_created
+g_mime_signature_get_expires
+g_mime_signature_get_status
+g_mime_signature_get_type
+g_mime_signature_list_add
+g_mime_signature_list_clear
+g_mime_signature_list_contains
+g_mime_signature_list_get_signature
+g_mime_signature_list_get_type
+g_mime_signature_list_index_of
+g_mime_signature_list_insert
+g_mime_signature_list_length
+g_mime_signature_list_new
+g_mime_signature_list_remove
+g_mime_signature_list_remove_at
+g_mime_signature_list_set_signature
+g_mime_signature_new
+g_mime_signature_set_certificate
+g_mime_signature_set_created
+g_mime_signature_set_expires
+g_mime_signature_set_status
+g_mime_stream_buffer_get_type
+g_mime_stream_buffer_gets
+g_mime_stream_buffer_new
+g_mime_stream_buffer_readln
+g_mime_stream_cat_add_source
+g_mime_stream_cat_get_type
+g_mime_stream_cat_new
+g_mime_stream_close
+g_mime_stream_construct
+g_mime_stream_eos
+g_mime_stream_file_get_owner
+g_mime_stream_file_get_type
+g_mime_stream_file_new
+g_mime_stream_file_new_with_bounds
+g_mime_stream_file_open
+g_mime_stream_file_set_owner
+g_mime_stream_filter_add
+g_mime_stream_filter_get_owner
+g_mime_stream_filter_get_type
+g_mime_stream_filter_new
+g_mime_stream_filter_remove
+g_mime_stream_filter_set_owner
+g_mime_stream_flush
+g_mime_stream_fs_get_owner
+g_mime_stream_fs_get_type
+g_mime_stream_fs_new
+g_mime_stream_fs_new_with_bounds
+g_mime_stream_fs_open
+g_mime_stream_fs_set_owner
+g_mime_stream_get_type
+g_mime_stream_gio_get_owner
+g_mime_stream_gio_get_type
+g_mime_stream_gio_new
+g_mime_stream_gio_new_with_bounds
+g_mime_stream_gio_set_owner
+g_mime_stream_length
+g_mime_stream_mem_get_byte_array
+g_mime_stream_mem_get_owner
+g_mime_stream_mem_get_type
+g_mime_stream_mem_new
+g_mime_stream_mem_new_with_buffer
+g_mime_stream_mem_new_with_byte_array
+g_mime_stream_mem_set_byte_array
+g_mime_stream_mem_set_owner
+g_mime_stream_mmap_get_type
+g_mime_stream_mmap_new
+g_mime_stream_mmap_new_with_bounds
+g_mime_stream_null_count_newlines
+g_mime_stream_null_get_count_newlines
+g_mime_stream_null_get_type
+g_mime_stream_null_new
+g_mime_stream_pipe_get_owner
+g_mime_stream_pipe_get_type
+g_mime_stream_pipe_new
+g_mime_stream_pipe_set_owner
+g_mime_stream_printf
+g_mime_stream_read
+g_mime_stream_reset
+g_mime_stream_seek
+g_mime_stream_set_bounds
+g_mime_stream_substream
+g_mime_stream_tell
+g_mime_stream_write
+g_mime_stream_write_string
+g_mime_stream_write_to_stream
+g_mime_stream_writev
+g_mime_text_part_get_charset
+g_mime_text_part_get_text
+g_mime_text_part_get_type
+g_mime_text_part_new
+g_mime_text_part_new_with_subtype
+g_mime_text_part_set_charset
+g_mime_text_part_set_text
+g_mime_utils_best_encoding
+g_mime_utils_decode_8bit
+g_mime_utils_decode_message_id
+g_mime_utils_generate_message_id
+g_mime_utils_header_decode_date
+g_mime_utils_header_decode_phrase
+g_mime_utils_header_decode_text
+g_mime_utils_header_encode_phrase
+g_mime_utils_header_encode_text
+g_mime_utils_header_format_date
+g_mime_utils_header_printf
+g_mime_utils_quote_string
+g_mime_utils_structured_header_fold
+g_mime_utils_text_is_8bit
+g_mime_utils_unquote_string
+g_mime_utils_unstructured_header_fold
+g_mime_ydecode_step
+g_mime_yencode_close
+g_mime_yencode_step
+gmime_binary_age
+gmime_error_quark
+gmime_gpgme_error_quark
+gmime_interface_age
+gmime_major_version
+gmime_micro_version
+gmime_minor_version
+internet_address_get_charset
+internet_address_get_name
+internet_address_get_type
+internet_address_group_add_member
+internet_address_group_get_members
+internet_address_group_get_type
+internet_address_group_new
+internet_address_group_set_members
+internet_address_list_add
+internet_address_list_append
+internet_address_list_clear
+internet_address_list_contains
+internet_address_list_encode
+internet_address_list_get_address
+internet_address_list_get_type
+internet_address_list_index_of
+internet_address_list_insert
+internet_address_list_length
+internet_address_list_new
+internet_address_list_parse
+internet_address_list_prepend
+internet_address_list_remove
+internet_address_list_remove_at
+internet_address_list_set_address
+internet_address_list_to_string
+internet_address_mailbox_get_addr
+internet_address_mailbox_get_idn_addr
+internet_address_mailbox_get_type
+internet_address_mailbox_new
+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/idna.h b/ports/gmime/idna.h
new file mode 100644
index 000000000..3313cdbc7
--- /dev/null
+++ b/ports/gmime/idna.h
@@ -0,0 +1,3 @@
+// Redirects header from libidn to libidn2
+// Created to avoid sources patching
+#include <idn2.h>
diff --git a/ports/gmime/portfile.cmake b/ports/gmime/portfile.cmake
new file mode 100644
index 000000000..ddfeeb74c
--- /dev/null
+++ b/ports/gmime/portfile.cmake
@@ -0,0 +1,38 @@
+include(vcpkg_common_functions)
+
+set(LIB_NAME gmime)
+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})
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://download.gnome.org/sources/gmime/3.0/${LIB_FILENAME}"
+ FILENAME "${LIB_FILENAME}"
+ SHA512 658b9008ffdf8055ffa9dfe8a5a6036a487309b0419572a9376397f68a8fc17d36ba6a05d2dfcb2ad23e634dc9e2aedd2479df1bfa0b7f8944d4c294650cb6c8
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+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})
+
+configure_file(${CMAKE_CURRENT_LIST_DIR}/idna.h ${SOURCE_PATH} COPYONLY)
+configure_file(${CMAKE_CURRENT_LIST_DIR}/gmime.def ${SOURCE_PATH} COPYONLY)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# License and man
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${LIB_NAME} RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/google-cloud-cpp/CONTROL b/ports/google-cloud-cpp/CONTROL
new file mode 100644
index 000000000..e44b2e5e6
--- /dev/null
+++ b/ports/google-cloud-cpp/CONTROL
@@ -0,0 +1,4 @@
+Source: google-cloud-cpp
+Version: 0.1.0
+Build-Depends: grpc, gtest
+Description: C++ Client Libraries for Google Cloud Platform APIs.
diff --git a/ports/google-cloud-cpp/portfile.cmake b/ports/google-cloud-cpp/portfile.cmake
new file mode 100644
index 000000000..701d94ae5
--- /dev/null
+++ b/ports/google-cloud-cpp/portfile.cmake
@@ -0,0 +1,44 @@
+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)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO GoogleCloudPlatform/google-cloud-cpp
+ REF v0.1.0
+ SHA512 3947cc24ca1ed97309f055f17945afe2d6b22ae8f54f86d3395f8c491b7409d4b7bb12206889d04d07f51236e9fd5afd65b904c8c80521a3313588d8069545c2
+ HEAD_REF master
+)
+
+set(GOOGLEAPIS_VERSION 92f10d7033c6fa36e1a5a369ab5aa8bafd564009)
+vcpkg_download_distfile(GOOGLEAPIS
+ URLS "https://github.com/google/googleapis/archive/92f10d7033c6fa36e1a5a369ab5aa8bafd564009.zip"
+ FILENAME "googleapis-${GOOGLEAPIS_VERSION}.zip"
+ SHA512 4280ece965a231f6a0bb3ea38a961d15babd9eac517f9b0d57e12f186481bbab6a27e4f0ee03ba3c587c9aa93d3c2e6c95f67f50365c65bb10594f0229279287
+)
+
+file(REMOVE_RECURSE ${SOURCE_PATH}/third_party)
+vcpkg_extract_source_archive(${GOOGLEAPIS} ${SOURCE_PATH}/third_party)
+file(RENAME ${SOURCE_PATH}/third_party/googleapis-${GOOGLEAPIS_VERSION} ${SOURCE_PATH}/third_party/googleapis)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DGOOGLE_CLOUD_CPP_GRPC_PROVIDER=vcpkg
+ -DGOOGLE_CLOUD_CPP_GMOCK_PROVIDER=vcpkg
+)
+
+vcpkg_install_cmake(ADD_BIN_TO_PATH)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/bigtable/client/testing)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake TARGET_PATH share/bigtable_client)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/google-cloud-cpp RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/graphicsmagick/CMakeLists.txt b/ports/graphicsmagick/CMakeLists.txt
index 5c5b1d166..27f9fb109 100644
--- a/ports/graphicsmagick/CMakeLists.txt
+++ b/ports/graphicsmagick/CMakeLists.txt
@@ -8,7 +8,7 @@ find_package(PNG REQUIRED)
find_package(TIFF REQUIRED)
find_package(Freetype REQUIRED)
-add_definitions(-D_MAGICKLIB_ -DMAGICK_IMPLEMENTATION)
+add_definitions(-D_MAGICKLIB_ -D_WANDLIB_ -DMAGICK_IMPLEMENTATION -D_VISUALC_)
if (BUILD_SHARED_LIBS)
add_definitions(-D_DLL -DDLL)
@@ -77,9 +77,9 @@ add_library(graphicsmagick coders/art.c coders/avs.c
coders/tiff.c coders/tile.c coders/tim.c coders/topol.c
coders/ttf.c coders/txt.c coders/uil.c coders/url.c
coders/uyvy.c coders/vicar.c coders/vid.c coders/viff.c
- coders/wbmp.c coders/webp.c coders/wmf.c coders/wpg.c
+ coders/wbmp.c coders/wmf.c coders/wpg.c
coders/x.c coders/xbm.c coders/xc.c coders/xcf.c
- coders/xpm.c coders/xwd.c coders/yuv.c
+ coders/xpm.c coders/xtrn.c coders/xwd.c coders/yuv.c
filters/analyze.c
magick/analyze.c magick/animate.c magick/annotate.c magick/attribute.c
magick/average.c magick/bit_stream.c magick/blob.c magick/cdl.c
diff --git a/ports/graphicsmagick/CONTROL b/ports/graphicsmagick/CONTROL
index 95ff82ec4..275bae92f 100644
--- a/ports/graphicsmagick/CONTROL
+++ b/ports/graphicsmagick/CONTROL
@@ -1,4 +1,4 @@
Source: graphicsmagick
-Version: 1.3.25
+Version: 1.3.28
Build-Depends: zlib, bzip2, freetype, libjpeg-turbo, libpng, tiff
Description: Image processing library
diff --git a/ports/graphicsmagick/magick_types.h b/ports/graphicsmagick/magick_types.h
new file mode 100644
index 000000000..a27979210
--- /dev/null
+++ b/ports/graphicsmagick/magick_types.h
@@ -0,0 +1,133 @@
+/*
+ Copyright (C) 2003 - 2012 GraphicsMagick Group
+
+ This program is covered by multiple licenses, which are described in
+ Copyright.txt. You should have received a copy of Copyright.txt with this
+ package; otherwise see http://www.graphicsmagick.org/www/Copyright.html.
+
+ GraphicsMagick types typedefs.
+
+ GraphicsMagick is expected to compile with any C '89 ANSI C compiler
+ supporting at least 16-bit 'short', 32-bit 'int', and 32-bit 'long'.
+ It is also expected to take advantage of 64-bit LP64 and Windows
+ WIN64 LLP64. We use C '99 style types but declare our own types so
+ as to not depend on C '99 header files, and take care to depend only
+ on C '89 library functions, POSIX, or well-known extensions. Any C
+ '99 syntax used is removed if the compiler does not support it.
+*/
+
+#ifndef _MAGICK_TYPES_H
+#define _MAGICK_TYPES_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+/*
+ Assign ANSI C stdint.h-like typedefs based on the sizes of native types
+ magick_int8_t -- -128 to 127
+ magick_uint8_t -- 0 to 255
+ magick_int16_t -- -32,768 to 32,767
+ magick_uint16_t -- 0 to 65,535
+ magick_int32_t -- -2,147,483,648 to 2,147,483,647
+ magick_uint32_t -- 0 to 4,294,967,295
+ magick_int64_t -- -9,223,372,036,854,775,807 to 9,223,372,036,854,775,807
+ magick_uint64_t -- 0 to 18,446,744,073,709,551,615
+
+ magick_uintmax_t -- largest native unsigned integer type ("%ju")
+ 0 to UINTMAX_MAX
+ UINTMAX_C(value) declares constant value
+ magick_uintptr_t -- unsigned type for storing a pointer value ("%tu")
+ 0 to UINTPTR_MAX
+
+ ANSI C '99 stddef.h-like types
+ size_t -- unsigned type representing sizes of objects ("%zu")
+ 0 to SIZE_MAX
+ magick_ptrdiff_t -- signed type for subtracting two pointers ("%td")
+ PTRDIFF_MIN to PTRDIFF_MAX
+
+ EEE Std 1003.1, 2004 types
+ ssize_t -- signed type for a count of bytes or an error indication ("%zd")
+ ? to SSIZE_MAX
+*/
+
+#if (defined(WIN32) || defined(WIN64)) && \
+ !defined(__MINGW32__) && !defined(__MINGW64__)
+
+ /* The following typedefs are used for WIN32 & WIN64 (without
+ configure) */
+ typedef signed char magick_int8_t;
+ typedef unsigned char magick_uint8_t;
+
+ typedef signed short magick_int16_t;
+ typedef unsigned short magick_uint16_t;
+
+ typedef signed int magick_int32_t;
+# define MAGICK_INT32_F ""
+ typedef unsigned int magick_uint32_t;
+# define MAGICK_UINT32_F ""
+
+ typedef signed __int64 magick_int64_t;
+# define MAGICK_INT64_F "I64"
+ typedef unsigned __int64 magick_uint64_t;
+# define MAGICK_UINT64_F "I64"
+
+ typedef magick_uint64_t magick_uintmax_t;
+
+# if defined(WIN32)
+ typedef unsigned long magick_uintptr_t;
+# define MAGICK_SIZE_T_F "l"
+# define MAGICK_SIZE_T unsigned long
+# define MAGICK_SSIZE_T_F "l"
+# define MAGICK_SSIZE_T long
+# elif defined(WIN64)
+ /* WIN64 uses the LLP64 model */
+ typedef unsigned long long magick_uintptr_t;
+# define MAGICK_SIZE_T_F "I64"
+# define MAGICK_SIZE_T unsigned __int64
+# define MAGICK_SSIZE_T_F "I64"
+# define MAGICK_SSIZE_T signed __int64
+# endif
+
+#else
+
+ /* The following typedefs are subtituted when using Unixish configure */
+ typedef @INT8_T@ magick_int8_t;
+ typedef @UINT8_T@ magick_uint8_t;
+
+ typedef @INT16_T@ magick_int16_t;
+ typedef @UINT16_T@ magick_uint16_t;
+
+ typedef @INT32_T@ magick_int32_t;
+# define MAGICK_INT32_F @INT32_F@
+ typedef @UINT32_T@ magick_uint32_t;
+# define MAGICK_UINT32_F @UINT32_F@
+
+ typedef @INT64_T@ magick_int64_t;
+# define MAGICK_INT64_F @INT64_F@
+ typedef @UINT64_T@ magick_uint64_t;
+# define MAGICK_UINT64_F @UINT64_F@
+
+ typedef @UINTMAX_T@ magick_uintmax_t;
+# define MAGICK_UINTMAX_F @UINTMAX_F@
+
+ typedef @UINTPTR_T@ magick_uintptr_t;
+# define MAGICK_UINTPTR_F @UINTPTR_F@
+
+# define MAGICK_SIZE_T_F @MAGICK_SIZE_T_F@
+# define MAGICK_SIZE_T @MAGICK_SIZE_T@
+
+# define MAGICK_SSIZE_T_F @MAGICK_SSIZE_T_F@
+# define MAGICK_SSIZE_T @MAGICK_SSIZE_T@
+
+#endif
+
+ /* 64-bit file and blob offset type */
+ typedef magick_int64_t magick_off_t;
+#define MAGICK_OFF_F MAGICK_INT64_F
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif /* defined(__cplusplus) || defined(c_plusplus) */
+
+#endif /* _MAGICK_TYPES_H */
diff --git a/ports/graphicsmagick/portfile.cmake b/ports/graphicsmagick/portfile.cmake
index 6a27b689e..12630d346 100644
--- a/ports/graphicsmagick/portfile.cmake
+++ b/ports/graphicsmagick/portfile.cmake
@@ -1,16 +1,17 @@
include(vcpkg_common_functions)
-set(GM_VERSION 1.3.25)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/graphicsmagick-${GM_VERSION})
+set(GM_VERSION 1.3.28)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/graphicsmagick-${GM_VERSION}-windows-source)
vcpkg_download_distfile(ARCHIVE
- URLS "https://downloads.sourceforge.net/project/graphicsmagick/graphicsmagick/1.3.25/GraphicsMagick-${GM_VERSION}.tar.bz2"
- FILENAME "GraphicsMagick-${GM_VERSION}.tar.bz2"
- SHA512 718802f675988ae36122e8a5f88c74754fa610ec2b4d4630772db7d8898c2e48117ea85fd6741c0b6f256f6f4d68abb642cdeddfb3d330ae1ab2951920cdc1a3
-)
+ URLS "https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/${GM_VERSION}/GraphicsMagick-${GM_VERSION}-windows-source.7z"
+ FILENAME "GraphicsMagick-${GM_VERSION}-windows-source.7z"
+ SHA512 0271c187634580204dcc3173553bae9e3cd799203d621ad9e2ba64be778760ac307f25af54859b10e60f8e2589287ad98062548f1c3c94f229e68e7c83878419
+ )
vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/magick_types.h DESTINATION ${SOURCE_PATH}/magick)
# GM always requires a dynamic BZIP2. This patch makes this dependent if _DLL is defined
vcpkg_apply_patches(
diff --git a/ports/graphite2/CONTROL b/ports/graphite2/CONTROL
new file mode 100644
index 000000000..eb12bb450
--- /dev/null
+++ b/ports/graphite2/CONTROL
@@ -0,0 +1,4 @@
+Source: graphite2
+Version: 1.3.10
+Description: Graphite is a "smart font" system developed specifically to handle the complexities of lesser-known languages of the world.
+ Graphite2 is a rework of the original Graphite engine that is faster, smaller, and uses an API that is better suited to the layout architecture of most text-processing applications. \ No newline at end of file
diff --git a/ports/graphite2/disable-tests-docs.patch b/ports/graphite2/disable-tests-docs.patch
new file mode 100644
index 000000000..ff92caa16
--- /dev/null
+++ b/ports/graphite2/disable-tests-docs.patch
@@ -0,0 +1,19 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3466c5f..6d5c6bd 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -63,9 +63,13 @@ endif (GRAPHITE2_VM_TYPE STREQUAL "direct" AND NOT (CMAKE_COMPILER_IS_GNUCXX OR
+ message(STATUS "Using vm machine type: ${GRAPHITE2_VM_TYPE}")
+
+ add_subdirectory(src)
++if(NOT DISABLE_TESTS)
+ add_subdirectory(tests)
++endif()
++if(NOT DISABLE_DOCS)
+ add_subdirectory(doc)
+-if (NOT (GRAPHITE2_NSEGCACHE OR GRAPHITE2_NFILEFACE))
++endif()
++if (NOT (GRAPHITE2_NSEGCACHE OR GRAPHITE2_NFILEFACE) AND NOT DISABLE_TESTS)
+ add_subdirectory(gr2fonttest)
+ endif (NOT (GRAPHITE2_NSEGCACHE OR GRAPHITE2_NFILEFACE))
+
diff --git a/ports/graphite2/fix-static-build.patch b/ports/graphite2/fix-static-build.patch
new file mode 100644
index 000000000..7a51f43cf
--- /dev/null
+++ b/ports/graphite2/fix-static-build.patch
@@ -0,0 +1,21 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3466c5f..d88b3bc 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -63,11 +63,11 @@ endif (GRAPHITE2_VM_TYPE STREQUAL "direct" AND NOT (CMAKE_COMPILER_IS_GNUCXX OR
+ message(STATUS "Using vm machine type: ${GRAPHITE2_VM_TYPE}")
+
+ add_subdirectory(src)
+-add_subdirectory(tests)
+-add_subdirectory(doc)
+-if (NOT (GRAPHITE2_NSEGCACHE OR GRAPHITE2_NFILEFACE))
+- add_subdirectory(gr2fonttest)
+-endif (NOT (GRAPHITE2_NSEGCACHE OR GRAPHITE2_NFILEFACE))
++# add_subdirectory(tests)
++# add_subdirectory(doc)
++# if (NOT (GRAPHITE2_NSEGCACHE OR GRAPHITE2_NFILEFACE))
++# add_subdirectory(gr2fonttest)
++# endif (NOT (GRAPHITE2_NSEGCACHE OR GRAPHITE2_NFILEFACE))
+
+ set(version 3.0.1)
+ set(libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
diff --git a/ports/graphite2/portfile.cmake b/ports/graphite2/portfile.cmake
new file mode 100644
index 000000000..eb017e9d8
--- /dev/null
+++ b/ports/graphite2/portfile.cmake
@@ -0,0 +1,34 @@
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO silnrsi/graphite
+ REF 99658129785a218556929db0595a002a668b40b0
+ SHA512 50cf6f727a2ea13ccbf55b4dad282358c40973aa0a0d97db6d721208b70fe848791aab183062c7bed8ce5b0dc3fecd6b604f6defdd5ae89b46ce267069ee0ed1
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/disable-tests-docs.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DDISABLE_TESTS=ON
+ -DDISABLE_DOCS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/graphite2)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/graphite2)
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/graphite2 RENAME copyright)
diff --git a/ports/grpc/CONTROL b/ports/grpc/CONTROL
index 47290a0d3..71c9f9d29 100644
--- a/ports/grpc/CONTROL
+++ b/ports/grpc/CONTROL
@@ -1,4 +1,4 @@
Source: grpc
-Version: 1.3.1-1
-Build-Depends: zlib, openssl, protobuf, c-ares
-Description: An RPC library and framework \ No newline at end of file
+Version: 1.10.1-2
+Build-Depends: zlib, openssl, protobuf, c-ares (!uwp)
+Description: An RPC library and framework
diff --git a/ports/grpc/disable-csharp-ext-2.patch b/ports/grpc/disable-csharp-ext-2.patch
new file mode 100644
index 000000000..1bc863105
--- /dev/null
+++ b/ports/grpc/disable-csharp-ext-2.patch
@@ -0,0 +1,20 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0dc0bd3..7f702cc 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -4699,6 +4699,7 @@ endif (gRPC_BUILD_TESTS)
+
+ option(gRPC_INSTALL_CSHARP_EXT "" ON)
+
++if(gRPC_INSTALL_CSHARP_EXT)
+ add_library(grpc_csharp_ext SHARED
+ src/csharp/ext/grpc_csharp_ext.c
+ )
+@@ -4741,6 +4742,7 @@ if (gRPC_INSTALL AND gRPC_INSTALL_CSHARP_EXT)
+ ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
+ )
+ endif()
++endif()
+
+ if (gRPC_BUILD_TESTS)
+
diff --git a/ports/grpc/disable-csharp-ext.patch b/ports/grpc/disable-csharp-ext.patch
index 6cb9090ab..3b887c8b4 100644
--- a/ports/grpc/disable-csharp-ext.patch
+++ b/ports/grpc/disable-csharp-ext.patch
@@ -1,31 +1,29 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c85a20a..99b2897 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -3694,6 +3694,7 @@ target_link_libraries(qps
+--- a/CMakeLists.txt Tue Aug 29 22:24:15 2017
++++ b/CMakeLists.txt Mon Sep 04 00:43:56 2017
+@@ -4574,6 +4574,8 @@
endif (gRPC_BUILD_TESTS)
+option(gRPC_INSTALL_CSHARP_EXT "" ON)
++
add_library(grpc_csharp_ext SHARED
src/csharp/ext/grpc_csharp_ext.c
)
-@@ -3702,7 +3703,7 @@ if(WIN32 AND MSVC)
+@@ -4582,7 +4584,7 @@
set_target_properties(grpc_csharp_ext PROPERTIES COMPILE_PDB_NAME "grpc_csharp_ext"
COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
)
- if (gRPC_INSTALL)
+ if (gRPC_INSTALL AND gRPC_INSTALL_CSHARP_EXT)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc_csharp_ext.pdb
- DESTINATION ${CMAKE_INSTALL_LIBDIR} OPTIONAL
+ DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
)
-@@ -3728,8 +3729,7 @@ target_link_libraries(grpc_csharp_ext
- )
+@@ -4613,7 +4615,7 @@
+
--
-if (gRPC_INSTALL)
+if (gRPC_INSTALL AND gRPC_INSTALL_CSHARP_EXT)
install(TARGETS grpc_csharp_ext EXPORT gRPCTargets
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
diff --git a/ports/grpc/fix-uwp.patch b/ports/grpc/fix-uwp.patch
new file mode 100644
index 000000000..2ab2ae652
--- /dev/null
+++ b/ports/grpc/fix-uwp.patch
@@ -0,0 +1,554 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0dc0bd3..2407e4a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -84,6 +84,9 @@ if(UNIX)
+ endif()
+ if(WIN32)
+ set(_gRPC_PLATFORM_WINDOWS ON)
++ if(${CMAKE_SYSTEM_NAME} MATCHES "WindowsStore")
++ set(_gRPC_PLATFORM_UWP ON)
++ endif()
+ endif()
+
+ set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
+@@ -144,6 +147,10 @@ file(MAKE_DIRECTORY ${_gRPC_PROTO_GENS_DIR})
+ # ``.proto`` files
+ #
+ function(protobuf_generate_grpc_cpp)
++ if(_gRPC_PLATFORM_UWP)
++ return()
++ endif()
++
+ if(NOT ARGN)
+ message(SEND_ERROR "Error: PROTOBUF_GENERATE_GRPC_CPP() called without any proto files")
+ return()
+@@ -178,27 +185,29 @@ function(protobuf_generate_grpc_cpp)
+ endforeach()
+ endfunction()
+
+-add_custom_target(plugins
+- DEPENDS
+- grpc_cpp_plugin
+- grpc_csharp_plugin
+- grpc_node_plugin
+- grpc_objective_c_plugin
+- grpc_php_plugin
+- grpc_python_plugin
+- grpc_ruby_plugin
+-)
++if(NOT _gRPC_PLATFORM_UWP)
++ add_custom_target(plugins
++ DEPENDS
++ grpc_cpp_plugin
++ grpc_csharp_plugin
++ grpc_node_plugin
++ grpc_objective_c_plugin
++ grpc_php_plugin
++ grpc_python_plugin
++ grpc_ruby_plugin
++ )
+
+-add_custom_target(tools_c
+- DEPENDS
+- check_epollexclusive
+- grpc_create_jwt
+- grpc_print_google_default_creds_token
+- grpc_verify_jwt
+- gen_hpack_tables
+- gen_legal_metadata_characters
+- gen_percent_encoding_tables
+-)
++ add_custom_target(tools_c
++ DEPENDS
++ check_epollexclusive
++ grpc_create_jwt
++ grpc_print_google_default_creds_token
++ grpc_verify_jwt
++ gen_hpack_tables
++ gen_legal_metadata_characters
++ gen_percent_encoding_tables
++ )
++endif()
+
+ add_custom_target(tools_cxx
+ DEPENDS
+@@ -3223,7 +3232,7 @@ if (gRPC_INSTALL)
+ )
+ endif()
+
+-
++if(NOT _gRPC_PLATFORM_UWP)
+ add_library(grpc++_error_details
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/status/status.pb.cc
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/status/status.grpc.pb.cc
+@@ -3285,6 +3294,7 @@ if (gRPC_INSTALL)
+ ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
+ )
+ endif()
++endif()
+
+ if (gRPC_BUILD_TESTS)
+
+@@ -3347,67 +3357,69 @@ endforeach()
+
+ endif (gRPC_BUILD_TESTS)
+
+-add_library(grpc++_reflection
+- src/cpp/ext/proto_server_reflection.cc
+- src/cpp/ext/proto_server_reflection_plugin.cc
+- ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.cc
+- ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
+- ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h
+- ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h
+-)
+-
+-if(WIN32 AND MSVC)
+- set_target_properties(grpc++_reflection PROPERTIES COMPILE_PDB_NAME "grpc++_reflection"
+- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
++if(NOT _gRPC_PLATFORM_UWP)
++ add_library(grpc++_reflection
++ src/cpp/ext/proto_server_reflection.cc
++ src/cpp/ext/proto_server_reflection_plugin.cc
++ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.cc
++ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
++ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.pb.h
++ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h
+ )
+- if (gRPC_INSTALL)
+- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++_reflection.pdb
+- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
++
++ if(WIN32 AND MSVC)
++ set_target_properties(grpc++_reflection PROPERTIES COMPILE_PDB_NAME "grpc++_reflection"
++ COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
+ )
++ if (gRPC_INSTALL)
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++_reflection.pdb
++ DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
++ )
++ endif()
+ endif()
+-endif()
+
+-protobuf_generate_grpc_cpp(
+- src/proto/grpc/reflection/v1alpha/reflection.proto
+-)
++ protobuf_generate_grpc_cpp(
++ src/proto/grpc/reflection/v1alpha/reflection.proto
++ )
+
+-target_include_directories(grpc++_reflection
+- PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+- PRIVATE ${_gRPC_SSL_INCLUDE_DIR}
+- PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR}
+- PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR}
+- PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR}
+- PRIVATE ${_gRPC_CARES_INCLUDE_DIR}
+- PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR}
+- PRIVATE ${_gRPC_PROTO_GENS_DIR}
+-)
++ target_include_directories(grpc++_reflection
++ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
++ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
++ PRIVATE ${_gRPC_SSL_INCLUDE_DIR}
++ PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR}
++ PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR}
++ PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR}
++ PRIVATE ${_gRPC_CARES_INCLUDE_DIR}
++ PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR}
++ PRIVATE ${_gRPC_PROTO_GENS_DIR}
++ )
+
+-target_link_libraries(grpc++_reflection
+- ${_gRPC_PROTOBUF_LIBRARIES}
+- ${_gRPC_ALLTARGETS_LIBRARIES}
+- grpc++
+- grpc
+-)
++ target_link_libraries(grpc++_reflection
++ ${_gRPC_PROTOBUF_LIBRARIES}
++ ${_gRPC_ALLTARGETS_LIBRARIES}
++ grpc++
++ grpc
++ )
+
+-foreach(_hdr
+- include/grpc++/ext/proto_server_reflection_plugin.h
+- include/grpcpp/ext/proto_server_reflection_plugin.h
+-)
+- string(REPLACE "include/" "" _path ${_hdr})
+- get_filename_component(_path ${_path} PATH)
+- install(FILES ${_hdr}
+- DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
++ foreach(_hdr
++ include/grpc++/ext/proto_server_reflection_plugin.h
++ include/grpcpp/ext/proto_server_reflection_plugin.h
+ )
+-endforeach()
++ string(REPLACE "include/" "" _path ${_hdr})
++ get_filename_component(_path ${_path} PATH)
++ install(FILES ${_hdr}
++ DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
++ )
++ endforeach()
+
+
+-if (gRPC_INSTALL)
+- install(TARGETS grpc++_reflection EXPORT gRPCTargets
+- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
+- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
+- ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
+- )
++ if (gRPC_INSTALL)
++ install(TARGETS grpc++_reflection EXPORT gRPCTargets
++ RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
++ LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
++ )
++ endif()
+ endif()
+
+ if (gRPC_BUILD_TESTS)
+@@ -4197,26 +4209,28 @@ endforeach()
+
+ endif (gRPC_BUILD_TESTS)
+
+-add_library(grpc_plugin_support
+- src/compiler/cpp_generator.cc
+- src/compiler/csharp_generator.cc
+- src/compiler/node_generator.cc
+- src/compiler/objective_c_generator.cc
+- src/compiler/php_generator.cc
+- src/compiler/python_generator.cc
+- src/compiler/ruby_generator.cc
+-)
+-
+-if(WIN32 AND MSVC)
+- set_target_properties(grpc_plugin_support PROPERTIES COMPILE_PDB_NAME "grpc_plugin_support"
+- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
++if(NOT _gRPC_PLATFORM_UWP)
++ add_library(grpc_plugin_support
++ src/compiler/cpp_generator.cc
++ src/compiler/csharp_generator.cc
++ src/compiler/node_generator.cc
++ src/compiler/objective_c_generator.cc
++ src/compiler/php_generator.cc
++ src/compiler/python_generator.cc
++ src/compiler/ruby_generator.cc
+ )
+- if (gRPC_INSTALL)
+- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc_plugin_support.pdb
+- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
++
++ if(WIN32 AND MSVC)
++ set_target_properties(grpc_plugin_support PROPERTIES COMPILE_PDB_NAME "grpc_plugin_support"
++ COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
+ )
++ if (gRPC_INSTALL)
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc_plugin_support.pdb
++ DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
++ )
++ endif()
+ endif()
+-endif()
++
+
+
+ target_include_directories(grpc_plugin_support
+@@ -4236,6 +4250,8 @@ target_link_libraries(grpc_plugin_support
+ ${_gRPC_PROTOBUF_LIBRARIES}
+ ${_gRPC_ALLTARGETS_LIBRARIES}
+ )
++endif()
++
+
+ foreach(_hdr
+ include/grpc++/impl/codegen/config_protobuf.h
+@@ -4248,13 +4264,14 @@ foreach(_hdr
+ )
+ endforeach()
+
+-
+-if (gRPC_INSTALL)
+- install(TARGETS grpc_plugin_support EXPORT gRPCTargets
+- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
+- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
+- ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
+- )
++if(NOT _gRPC_PLATFORM_UWP)
++ if (gRPC_INSTALL)
++ install(TARGETS grpc_plugin_support EXPORT gRPCTargets
++ RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
++ LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
++ )
++ endif()
+ endif()
+
+ if (gRPC_BUILD_TESTS)
+@@ -10250,11 +10267,11 @@ target_link_libraries(grpc_cli
+
+ endif (gRPC_BUILD_TESTS)
+
+-add_executable(grpc_cpp_plugin
+- src/compiler/cpp_plugin.cc
++if(NOT _gRPC_PLATFORM_UWP)
++ add_executable(grpc_cpp_plugin
++ src/compiler/cpp_plugin.cc
+ )
+
+-
+ target_include_directories(grpc_cpp_plugin
+ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
+@@ -10351,142 +10368,141 @@ if (gRPC_INSTALL)
+ )
+ endif()
+
++ add_executable(grpc_objective_c_plugin
++ src/compiler/objective_c_plugin.cc
++ )
+
+-add_executable(grpc_objective_c_plugin
+- src/compiler/objective_c_plugin.cc
+-)
+-
+-
+-target_include_directories(grpc_objective_c_plugin
+- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
+- PRIVATE ${_gRPC_SSL_INCLUDE_DIR}
+- PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR}
+- PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR}
+- PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR}
+- PRIVATE ${_gRPC_CARES_INCLUDE_DIR}
+- PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR}
+- PRIVATE ${_gRPC_PROTO_GENS_DIR}
+-)
+-
+-target_link_libraries(grpc_objective_c_plugin
+- ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
+- ${_gRPC_PROTOBUF_LIBRARIES}
+- ${_gRPC_ALLTARGETS_LIBRARIES}
+- grpc_plugin_support
+-)
+
++ target_include_directories(grpc_objective_c_plugin
++ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
++ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
++ PRIVATE ${_gRPC_SSL_INCLUDE_DIR}
++ PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR}
++ PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR}
++ PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR}
++ PRIVATE ${_gRPC_CARES_INCLUDE_DIR}
++ PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR}
++ PRIVATE ${_gRPC_PROTO_GENS_DIR}
++ )
+
+-if (gRPC_INSTALL)
+- install(TARGETS grpc_objective_c_plugin EXPORT gRPCTargets
+- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
+- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
+- ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
++ target_link_libraries(grpc_objective_c_plugin
++ ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
++ ${_gRPC_PROTOBUF_LIBRARIES}
++ ${_gRPC_ALLTARGETS_LIBRARIES}
++ grpc_plugin_support
+ )
+-endif()
+
+
+-add_executable(grpc_php_plugin
+- src/compiler/php_plugin.cc
+-)
++ if (gRPC_INSTALL)
++ install(TARGETS grpc_objective_c_plugin EXPORT gRPCTargets
++ RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
++ LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
++ )
++ endif()
+
+
+-target_include_directories(grpc_php_plugin
+- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
+- PRIVATE ${_gRPC_SSL_INCLUDE_DIR}
+- PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR}
+- PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR}
+- PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR}
+- PRIVATE ${_gRPC_CARES_INCLUDE_DIR}
+- PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR}
+- PRIVATE ${_gRPC_PROTO_GENS_DIR}
+-)
++ add_executable(grpc_php_plugin
++ src/compiler/php_plugin.cc
++ )
+
+-target_link_libraries(grpc_php_plugin
+- ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
+- ${_gRPC_PROTOBUF_LIBRARIES}
+- ${_gRPC_ALLTARGETS_LIBRARIES}
+- grpc_plugin_support
+-)
+
++ target_include_directories(grpc_php_plugin
++ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
++ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
++ PRIVATE ${_gRPC_SSL_INCLUDE_DIR}
++ PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR}
++ PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR}
++ PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR}
++ PRIVATE ${_gRPC_CARES_INCLUDE_DIR}
++ PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR}
++ PRIVATE ${_gRPC_PROTO_GENS_DIR}
++ )
+
+-if (gRPC_INSTALL)
+- install(TARGETS grpc_php_plugin EXPORT gRPCTargets
+- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
+- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
+- ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
++ target_link_libraries(grpc_php_plugin
++ ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
++ ${_gRPC_PROTOBUF_LIBRARIES}
++ ${_gRPC_ALLTARGETS_LIBRARIES}
++ grpc_plugin_support
+ )
+-endif()
+
+
+-add_executable(grpc_python_plugin
+- src/compiler/python_plugin.cc
+-)
++ if (gRPC_INSTALL)
++ install(TARGETS grpc_php_plugin EXPORT gRPCTargets
++ RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
++ LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
++ )
++ endif()
+
+
+-target_include_directories(grpc_python_plugin
+- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
+- PRIVATE ${_gRPC_SSL_INCLUDE_DIR}
+- PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR}
+- PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR}
+- PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR}
+- PRIVATE ${_gRPC_CARES_INCLUDE_DIR}
+- PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR}
+- PRIVATE ${_gRPC_PROTO_GENS_DIR}
+-)
++ add_executable(grpc_python_plugin
++ src/compiler/python_plugin.cc
++ )
+
+-target_link_libraries(grpc_python_plugin
+- ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
+- ${_gRPC_PROTOBUF_LIBRARIES}
+- ${_gRPC_ALLTARGETS_LIBRARIES}
+- grpc_plugin_support
+-)
+
++ target_include_directories(grpc_python_plugin
++ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
++ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
++ PRIVATE ${_gRPC_SSL_INCLUDE_DIR}
++ PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR}
++ PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR}
++ PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR}
++ PRIVATE ${_gRPC_CARES_INCLUDE_DIR}
++ PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR}
++ PRIVATE ${_gRPC_PROTO_GENS_DIR}
++ )
+
+-if (gRPC_INSTALL)
+- install(TARGETS grpc_python_plugin EXPORT gRPCTargets
+- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
+- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
+- ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
++ target_link_libraries(grpc_python_plugin
++ ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
++ ${_gRPC_PROTOBUF_LIBRARIES}
++ ${_gRPC_ALLTARGETS_LIBRARIES}
++ grpc_plugin_support
+ )
+-endif()
+
+
+-add_executable(grpc_ruby_plugin
+- src/compiler/ruby_plugin.cc
+-)
++ if (gRPC_INSTALL)
++ install(TARGETS grpc_python_plugin EXPORT gRPCTargets
++ RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
++ LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
++ )
++ endif()
+
+
+-target_include_directories(grpc_ruby_plugin
+- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
+- PRIVATE ${_gRPC_SSL_INCLUDE_DIR}
+- PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR}
+- PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR}
+- PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR}
+- PRIVATE ${_gRPC_CARES_INCLUDE_DIR}
+- PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR}
+- PRIVATE ${_gRPC_PROTO_GENS_DIR}
+-)
++ add_executable(grpc_ruby_plugin
++ src/compiler/ruby_plugin.cc
++ )
+
+-target_link_libraries(grpc_ruby_plugin
+- ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
+- ${_gRPC_PROTOBUF_LIBRARIES}
+- ${_gRPC_ALLTARGETS_LIBRARIES}
+- grpc_plugin_support
+-)
+
++ target_include_directories(grpc_ruby_plugin
++ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
++ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
++ PRIVATE ${_gRPC_SSL_INCLUDE_DIR}
++ PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR}
++ PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR}
++ PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR}
++ PRIVATE ${_gRPC_CARES_INCLUDE_DIR}
++ PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR}
++ PRIVATE ${_gRPC_PROTO_GENS_DIR}
++ )
+
+-if (gRPC_INSTALL)
+- install(TARGETS grpc_ruby_plugin EXPORT gRPCTargets
+- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
+- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
+- ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
++ target_link_libraries(grpc_ruby_plugin
++ ${_gRPC_PROTOBUF_PROTOC_LIBRARIES}
++ ${_gRPC_PROTOBUF_LIBRARIES}
++ ${_gRPC_ALLTARGETS_LIBRARIES}
++ grpc_plugin_support
+ )
+-endif()
+
++
++ if (gRPC_INSTALL)
++ install(TARGETS grpc_ruby_plugin EXPORT gRPCTargets
++ RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
++ LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
++ )
++ endif()
++endif()
+ if (gRPC_BUILD_TESTS)
+
+ add_executable(grpc_tool_test
diff --git a/ports/grpc/portfile.cmake b/ports/grpc/portfile.cmake
index 10e79cd55..259fd222e 100644
--- a/ports/grpc/portfile.cmake
+++ b/ports/grpc/portfile.cmake
@@ -12,17 +12,13 @@ endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO grpc/grpc
- REF v1.3.1
- SHA512 1c9f35e84995158b75bb8694bb9d8c5ddafccf347c4827213290b221f9fc3ab9071c9f79a10a563e9cdfabae3f4b83d6148907f106066f54093242f818038438
+ REF v1.10.1
+ SHA512 2221d902c60eada6dd1547a63d26bd3b30cb6710247b5e48523bacde498a3691cc177f1dbe9db8a007b8ae341a5b0c8ec999539e26a9bcff480a8d0b02140997
HEAD_REF master
-)
-
-# Issue: https://github.com/grpc/grpc/issues/10759
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/revert-c019e05.patch
${CMAKE_CURRENT_LIST_DIR}/disable-csharp-ext.patch
+ ${CMAKE_CURRENT_LIST_DIR}/disable-csharp-ext-2.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-uwp.patch
)
if(VCPKG_CRT_LINKAGE STREQUAL static)
@@ -31,6 +27,14 @@ else()
set(gRPC_MSVC_STATIC_RUNTIME OFF)
endif()
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(cares_CARES_PROVIDER OFF)
+else()
+ set(cares_CARES_PROVIDER "package")
+endif()
+
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
@@ -41,18 +45,21 @@ vcpkg_configure_cmake(
-DgRPC_ZLIB_PROVIDER=package
-DgRPC_SSL_PROVIDER=package
-DgRPC_PROTOBUF_PROVIDER=package
- -DgRPC_CARES_PROVIDER=package
+ -DgRPC_CARES_PROVIDER=${cares_CARES_PROVIDER}
-DgRPC_GFLAGS_PROVIDER=none
-DgRPC_BENCHMARK_PROVIDER=none
-DgRPC_INSTALL_CSHARP_EXT=OFF
- -DCMAKE_INSTALL_CMAKEDIR=share/grpc
+ -DgRPC_INSTALL_BINDIR:STRING=bin
+ -DgRPC_INSTALL_LIBDIR:STRING=lib
+ -DgRPC_INSTALL_INCLUDEDIR:STRING=include
+ -DgRPC_INSTALL_CMAKEDIR:STRING=share/grpc
)
# gRPC runs built executables during the build, so they need access to the installed DLLs.
set(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/debug/bin")
vcpkg_install_cmake()
-vcpkg_fixup_cmake_targets()
+vcpkg_fixup_cmake_targets(CONFIG_PATH "share/grpc")
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/grpc RENAME copyright)
@@ -61,10 +68,15 @@ file(GLOB TOOLS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.exe")
if(TOOLS)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/grpc)
file(COPY ${TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/grpc)
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/grpc)
endif()
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+else()
+ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) # Leave the executable files in bin/ and debug/bin
+endif()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
vcpkg_copy_pdbs()
diff --git a/ports/grpc/revert-c019e05.patch b/ports/grpc/revert-c019e05.patch
deleted file mode 100644
index 77c501f77..000000000
--- a/ports/grpc/revert-c019e05.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e09f729..c85a20a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -11847,7 +11847,12 @@ endif (gRPC_BUILD_TESTS)
-
-
-
--
-+if (gRPC_INSTALL)
-+ install(EXPORT gRPCTargets
-+ DESTINATION ${CMAKE_INSTALL_CMAKEDIR}
-+ NAMESPACE gRPC::
-+ )
-+endif()
-
- foreach(_config gRPCConfig gRPCConfigVersion)
- configure_file(tools/cmake/${_config}.cmake.in
diff --git a/ports/gsl-lite/CONTROL b/ports/gsl-lite/CONTROL
new file mode 100644
index 000000000..dcb7c182c
--- /dev/null
+++ b/ports/gsl-lite/CONTROL
@@ -0,0 +1,3 @@
+Source: gsl-lite
+Version: 0.28.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
new file mode 100644
index 000000000..9bcae7d06
--- /dev/null
+++ b/ports/gsl-lite/portfile.cmake
@@ -0,0 +1,18 @@
+include(vcpkg_common_functions)
+
+set(GSL_LITE_VERSION v0.28.0)
+
+vcpkg_download_distfile(HEADER
+ URLS "https://github.com/martinmoene/gsl-lite/releases/download/${GSL_LITE_VERSION}/gsl-lite.hpp"
+ FILENAME "gsl-lite-${GSL_LITE_VERSION}.hpp"
+ SHA512 2c9705c9d17b5acbd7eb2f4a93a6fd07f9ce31e81a41d2ca6a961ed484d771742d7960305bbb20b82d810013c7473c9afa58c71468a15466e00c879449d38ba5
+)
+
+vcpkg_download_distfile(LICENSE
+ URLS "https://github.com/martinmoene/gsl-lite/raw/${GSL_LITE_VERSION}/LICENSE"
+ FILENAME "gsl-lite-LICENSE-${GSL_LITE_VERSION}.txt"
+ SHA512 1feff12bda27a5ec52440a7624de54d841faf3e254fff04ab169b7f312e685f4bfe71236de8b8ef759111ae95bdb69e05f2e8318773b0aff4ba24ea9568749bb
+)
+
+file(INSTALL ${HEADER} DESTINATION ${CURRENT_PACKAGES_DIR}/include RENAME gsl-lite.hpp)
+file(INSTALL ${LICENSE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/gsl-lite RENAME copyright)
diff --git a/ports/gsl/CMakeLists.txt b/ports/gsl/CMakeLists.txt
index 704542035..0027fe291 100644
--- a/ports/gsl/CMakeLists.txt
+++ b/ports/gsl/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.8)
-project(libgsl C)
+project(gsl C)
option(INSTALL_HEADERS "Install public header files" ON)
@@ -27,10 +27,15 @@ function(extract_sources SUBFOLDER ALLSOURCES)
endfunction(extract_sources)
set(SOURCES)
+set(CBLAS_SOURCES)
extract_from_makefile("SUBDIRS = ([^\n]*)" FOLDERS "./Makefile.am")
extract_sources("." SOURCES)
foreach(DIR IN LISTS FOLDERS)
- extract_sources("${DIR}" SOURCES)
+ if("${DIR}" STREQUAL "cblas")
+ extract_sources("${DIR}" CBLAS_SOURCES)
+ else()
+ extract_sources("${DIR}" SOURCES)
+ endif()
endforeach()
file(READ gsl_types.h GSLTYPES_H)
@@ -43,24 +48,35 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/gsl_types.h "${GSLTYPES_H}")
file(GLOB_RECURSE PUBLIC_HEADERS gsl*.h)
list(APPEND PUBLIC_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/gsl_types.h)
-add_library(libgsl ${SOURCES})
-set_target_properties(libgsl PROPERTIES DEFINE_SYMBOL DLL_EXPORT WINDOWS_EXPORT_ALL_SYMBOLS ON)
+# The debug libraries have a "d" postfix so that CMake's FindGSL.cmake
+# module can distinguish between Release and Debug libraries
+set(CMAKE_DEBUG_POSTFIX "d")
+
+add_library(gslcblas ${CBLAS_SOURCES})
+set_target_properties(gslcblas PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+add_library(gsl ${SOURCES})
+set_target_properties(gsl PROPERTIES DEFINE_SYMBOL DLL_EXPORT WINDOWS_EXPORT_ALL_SYMBOLS ON)
+target_link_libraries(gsl PUBLIC gslcblas)
+
if(INSTALL_HEADERS)
- set_target_properties(libgsl PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADERS}")
+ set_target_properties(gsl PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADERS}")
endif()
-target_include_directories(libgsl PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories(gslcblas PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories(gsl PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
# For the build, we need to copy all headers to the gsl directory
-file(COPY ${PUBLIC_HEADERS} DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/gsl")
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/gsl)
+file(COPY ${PUBLIC_HEADERS} DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/gsl")
set(TARGET_INSTALL_OPTIONS)
if(INSTALL_HEADERS)
set(TARGET_INSTALL_OPTIONS PUBLIC_HEADER DESTINATION include/gsl)
endif()
-install(TARGETS libgsl
+install(TARGETS gsl gslcblas
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
${TARGET_INSTALL_OPTIONS}
-) \ No newline at end of file
+)
diff --git a/ports/gsl/CONTROL b/ports/gsl/CONTROL
index 8970dca69..f02ecc2ee 100644
--- a/ports/gsl/CONTROL
+++ b/ports/gsl/CONTROL
@@ -1,3 +1,3 @@
Source: gsl
-Version: 2.3
+Version: 2.4-3
Description: The GNU Scientific Library is a numerical library for C and C++ programmers
diff --git a/ports/gsl/portfile.cmake b/ports/gsl/portfile.cmake
index 76ab1582b..12c0526bc 100644
--- a/ports/gsl/portfile.cmake
+++ b/ports/gsl/portfile.cmake
@@ -1,21 +1,11 @@
-# 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/gsl-2.3)
+set(GSL_VERSION 2.4)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gsl-${GSL_VERSION})
+
vcpkg_download_distfile(ARCHIVE
- URLS "ftp://ftp.gnu.org/gnu/gsl/gsl-2.3.tar.gz"
- FILENAME "gsl-2.3.tar.gz"
- SHA512 ada622079f4ac667d95f74b38aa368726fc1b18fd34555bcefe90920d3da93a9289ebff966be43325af806107001bc8973daf9f8418e6c97b866be2296b566ff
+ URLS "ftp://ftp.gnu.org/gnu/gsl/gsl-${GSL_VERSION}.tar.gz"
+ FILENAME "gsl-${GSL_VERSION}.tar.gz"
+ SHA512 12442b023dd959e8b22a9c486646b5cedec7fdba0daf2604cda365cf96d10d99aefdec2b42e59c536cc071da1525373454e5ed6f4b15293b305ca9b1dc6db130
)
vcpkg_extract_source_archive(${ARCHIVE})
@@ -37,7 +27,7 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
# Handle copyright
-file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/gsl)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/gsl)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/gsl/COPYING ${CURRENT_PACKAGES_DIR}/share/gsl/copyright)
vcpkg_copy_pdbs()
diff --git a/ports/gsl/usage b/ports/gsl/usage
new file mode 100644
index 000000000..f1ae92436
--- /dev/null
+++ b/ports/gsl/usage
@@ -0,0 +1,4 @@
+The package gsl is compatible with built-in CMake targets:
+
+ find_package(GSL REQUIRED)
+ target_link_libraries(main PRIVATE GSL::gsl GSL::gslcblas)
diff --git a/ports/gtest/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch b/ports/gtest/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch
index 274942482..b5082a1b2 100644
--- a/ports/gtest/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch
+++ b/ports/gtest/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch
@@ -1,16 +1,3 @@
-From 1695708beda0306f3b4dffd66f4be142425894a0 Mon Sep 17 00:00:00 2001
-From: Arkady Shapkin <arkady.shapkin@gmail.com>
-Date: Wed, 2 Mar 2016 02:53:10 +0300
-Subject: [PATCH] Enable C++11 features for VS2015 (fix appveyor fail)
-
----
- .gitignore | 13 ++++++++
- googlemock/test/gmock-matchers_test.cc | 5 +++
- googletest/include/gtest/internal/gtest-port.h | 10 ++++--
- googletest/test/gtest-printers_test.cc | 43 ++++++++++++++++++++++---
- googletest/test/gtest_catch_exceptions_test_.cc | 2 +-
- 5 files changed, 64 insertions(+), 9 deletions(-)
-
diff --git a/.gitignore b/.gitignore
index ce310bc..08a67cd 100644
--- a/.gitignore
@@ -48,7 +35,7 @@ index 9f62c3d..eaba362 100644
namespace internal {
diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h
-index 0094ed5..c07c455 100644
+index 0094ed5..09779fa 100644
--- a/googletest/include/gtest/internal/gtest-port.h
+++ b/googletest/include/gtest/internal/gtest-port.h
@@ -323,7 +323,7 @@
@@ -87,6 +74,25 @@ index 0094ed5..c07c455 100644
# define GTEST_HAS_HASH_MAP_ 1 // Indicates that hash_map is available.
# define GTEST_HAS_HASH_SET_ 1 // Indicates that hash_set is available.
# endif // _MSC_VER
+@@ -629,6 +633,9 @@ struct _RTL_CRITICAL_SECTION;
+ # if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR)
+ // STLport, provided with the Android NDK, has neither <tr1/tuple> or <tuple>.
+ # define GTEST_HAS_TR1_TUPLE 0
++# elif defined(_MSC_VER) && (_MSC_VER >= 1910)
++// Prevent `warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED.`
++# define GTEST_HAS_TR1_TUPLE 0
+ # else
+ // The user didn't tell us not to do it, so we assume it's OK.
+ # define GTEST_HAS_TR1_TUPLE 1
+@@ -813,7 +820,7 @@ using ::std::tuple_size;
+ // value-parameterized tests are enabled. The implementation doesn't
+ // work on Sun Studio since it doesn't understand templated conversion
+ // operators.
+-#if GTEST_HAS_PARAM_TEST && GTEST_HAS_TR1_TUPLE && !defined(__SUNPRO_CC)
++#if GTEST_HAS_PARAM_TEST && (GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_) && !defined(__SUNPRO_CC)
+ # define GTEST_HAS_COMBINE 1
+ #endif
+
diff --git a/googletest/test/gtest-printers_test.cc b/googletest/test/gtest-printers_test.cc
index 3e97cc2..6320563 100644
--- a/googletest/test/gtest-printers_test.cc
@@ -172,6 +178,3 @@ index d0fc82c..c6d953c 100644
class CxxExceptionInDestructorTest : public Test {
public:
static void TearDownTestCase() {
---
-2.10.0.windows.1
-
diff --git a/ports/gtest/0002-Fix-z7-override.patch b/ports/gtest/0002-Fix-z7-override.patch
new file mode 100644
index 000000000..c8de56d09
--- /dev/null
+++ b/ports/gtest/0002-Fix-z7-override.patch
@@ -0,0 +1,13 @@
+diff --git a/googletest/cmake/internal_utils.cmake b/googletest/cmake/internal_utils.cmake
+index 777b91e..75a13c9 100644
+--- a/googletest/cmake/internal_utils.cmake
++++ b/googletest/cmake/internal_utils.cmake
+@@ -55,7 +55,7 @@ macro(config_compiler_and_linker)
+ if (MSVC)
+ # Newlines inside flags variables break CMake's NMake generator.
+ # TODO(vladl@google.com): Add -RTCs and -RTCu to debug builds.
+- set(cxx_base_flags "-GS -W4 -WX -wd4251 -wd4275 -nologo -J -Zi")
++ set(cxx_base_flags "-GS -W4 -WX -wd4251 -wd4275 -nologo -J")
+ if (MSVC_VERSION LESS 1400) # 1400 is Visual Studio 2005
+ # Suppress spurious warnings MSVC 7.1 sometimes issues.
+ # Forcing value to bool.
diff --git a/ports/gtest/CONTROL b/ports/gtest/CONTROL
index 07336b978..2fa32ae3c 100644
--- a/ports/gtest/CONTROL
+++ b/ports/gtest/CONTROL
@@ -1,3 +1,3 @@
Source: gtest
-Version: 1.8
-Description: GoogleTest and GoogleMock testing frameworks. \ No newline at end of file
+Version: 1.8.0-8
+Description: GoogleTest and GoogleMock testing frameworks.
diff --git a/ports/gtest/portfile.cmake b/ports/gtest/portfile.cmake
index ea5186e47..72fe5813e 100644
--- a/ports/gtest/portfile.cmake
+++ b/ports/gtest/portfile.cmake
@@ -15,39 +15,75 @@ vcpkg_from_github(
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0002-Fix-z7-override.patch
)
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" GTEST_FORCE_SHARED_CRT)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_GMOCK=ON
+ -DBUILD_GTEST=ON
+ -DCMAKE_DEBUG_POSTFIX=d
+ -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/gtestd.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)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtestd.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gtestd.dll)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest_maind.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gtest_maind.dll)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmockd.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gmockd.dll)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock_maind.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gmock_maind.dll)
+endif()
+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/gtestd.lib)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtestd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gtestd.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest_maind.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gtest_maind.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmockd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gmockd.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock_maind.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gmock_maind.lib)
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)
vcpkg_copy_pdbs()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/gtest/usage b/ports/gtest/usage
new file mode 100644
index 000000000..fa226ceed
--- /dev/null
+++ b/ports/gtest/usage
@@ -0,0 +1,6 @@
+The package gtest is compatible with built-in CMake targets:
+
+ enable_testing()
+ find_package(GTest REQUIRED)
+ target_link_libraries(main PRIVATE GTest::GTest GTest::Main)
+ add_test(AllTestsInMain main)
diff --git a/ports/gtk/CONTROL b/ports/gtk/CONTROL
index f1a30f2c7..e5931156d 100644
--- a/ports/gtk/CONTROL
+++ b/ports/gtk/CONTROL
@@ -1,4 +1,4 @@
Source: gtk
-Version: 3.22.14
+Version: 3.22.19-1
Description: Portable library for creating graphical user interfaces.
Build-Depends: glib, atk, gdk-pixbuf, pango, cairo, libepoxy, gettext
diff --git a/ports/gtk/portfile.cmake b/ports/gtk/portfile.cmake
index b16013de6..b915ce5f3 100644
--- a/ports/gtk/portfile.cmake
+++ b/ports/gtk/portfile.cmake
@@ -1,11 +1,11 @@
include(vcpkg_common_functions)
-set(GTK_VERSION 3.22.14)
+set(GTK_VERSION 3.22.19)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gtk+-${GTK_VERSION})
vcpkg_download_distfile(ARCHIVE
URLS "https://ftp.gnome.org/pub/gnome/sources/gtk+/3.22/gtk+-${GTK_VERSION}.tar.xz"
FILENAME "gtk+-${GTK_VERSION}.tar.xz"
- SHA512 f7b2cfc63f8c849c45dc4f80c8115dcf20d0da63718eedbe133f8ac86c17488a91fecb8a0e47bb6b48f81b06ce6897540d900ab8bfbe673426dacf4f7ef74e8b)
+ SHA512 c83198794433ee6eb29f8740d59bd7056cd36808b4bff1a99563ab1a1742e6635dab4f2a8be33317f74d3b336f0d1adc28dd91410da056b50a08c215f184dce2)
vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
diff --git a/ports/gtkmm/CONTROL b/ports/gtkmm/CONTROL
new file mode 100644
index 000000000..a0812ef67
--- /dev/null
+++ b/ports/gtkmm/CONTROL
@@ -0,0 +1,4 @@
+Source: gtkmm
+Version: 3.22.2
+Description: gtkmm is the official C++ interface for the popular GUI library GTK+.
+Build-Depends: glib, atk, gtk, gdk-pixbuf, pango, cairo, libepoxy, gettext, glibmm, atkmm, cairomm, pangomm
diff --git a/ports/gtkmm/COPYING b/ports/gtkmm/COPYING
new file mode 100644
index 000000000..4362b4915
--- /dev/null
+++ b/ports/gtkmm/COPYING
@@ -0,0 +1,502 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/ports/gtkmm/README b/ports/gtkmm/README
new file mode 100644
index 000000000..ea1d8e0a6
--- /dev/null
+++ b/ports/gtkmm/README
@@ -0,0 +1,3 @@
+This is gtkmm, the C++ API for GTK+.
+See http://www.gtkmm.org/
+
diff --git a/ports/gtkmm/fix_charset.patch b/ports/gtkmm/fix_charset.patch
new file mode 100644
index 000000000..027d74f99
--- /dev/null
+++ b/ports/gtkmm/fix_charset.patch
@@ -0,0 +1,2053 @@
+diff --git a/MSVC_Net2013/gdkmm.vcxproj b/MSVC_Net2013/gdkmm.vcxproj
+index d9d08ac..8c6b528 100644
+--- a/MSVC_Net2013/gdkmm.vcxproj
++++ b/MSVC_Net2013/gdkmm.vcxproj
+@@ -1,266 +1,267 @@
+-???<?xml version="1.0" encoding="utf-8"?>
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+- <ItemGroup Label="ProjectConfigurations">
+- <ProjectConfiguration Include="Debug|Win32">
+- <Configuration>Debug</Configuration>
+- <Platform>Win32</Platform>
+- </ProjectConfiguration>
+- <ProjectConfiguration Include="Debug|x64">
+- <Configuration>Debug</Configuration>
+- <Platform>x64</Platform>
+- </ProjectConfiguration>
+- <ProjectConfiguration Include="Release|Win32">
+- <Configuration>Release</Configuration>
+- <Platform>Win32</Platform>
+- </ProjectConfiguration>
+- <ProjectConfiguration Include="Release|x64">
+- <Configuration>Release</Configuration>
+- <Platform>x64</Platform>
+- </ProjectConfiguration>
+- </ItemGroup>
+- <PropertyGroup Label="Globals">
+- <ProjectName>gdkmm</ProjectName>
+- <ProjectGuid>{976C8F9C-1A1D-4E23-B79E-EC9091BBEA0E}</ProjectGuid>
+- <Keyword>Win32Proj</Keyword>
+- </PropertyGroup>
+- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+- <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
+- <PlatformToolset>v120</PlatformToolset>
+- </PropertyGroup>
+- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+- <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
+- <PlatformToolset>v120</PlatformToolset>
+- </PropertyGroup>
+- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+- <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
+- <PlatformToolset>v120</PlatformToolset>
+- </PropertyGroup>
+- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+- <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
+- <PlatformToolset>v120</PlatformToolset>
+- </PropertyGroup>
+- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+- <ImportGroup Label="ExtensionSettings">
+- </ImportGroup>
+- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+- <Import Project=".\gtkmm-build-defines.props" />
+- </ImportGroup>
+- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+- <Import Project=".\gtkmm-build-defines.props" />
+- </ImportGroup>
+- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+- <Import Project=".\gtkmm-build-defines.props" />
+- </ImportGroup>
+- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+- <Import Project=".\gtkmm-build-defines.props" />
+- </ImportGroup>
+- <PropertyGroup Label="UserMacros" />
+- <PropertyGroup>
+- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild>
+- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild>
+- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreLinkEventUseInBuild>
+- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</PreLinkEventUseInBuild>
+- <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)$(DebugDllSuffix)</TargetName>
+- <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)$(DebugDllSuffix)</TargetName>
+- <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)$(ReleaseDllSuffix)</TargetName>
+- <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)$(ReleaseDllSuffix)</TargetName>
+- </PropertyGroup>
+- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+- <ClCompile>
+- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+- <Optimization>Disabled</Optimization>
+- <PreprocessorDefinitions>_DEBUG;$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+- <MinimalRebuild>true</MinimalRebuild>
+- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+- <RuntimeTypeInfo>true</RuntimeTypeInfo>
+- <PrecompiledHeader>
+- </PrecompiledHeader>
+- <WarningLevel>Level3</WarningLevel>
+- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+- </ClCompile>
+- <PreLinkEvent>
+- <Message>Generate gdkmm def file</Message>
+- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+- </PreLinkEvent>
+- <Link>
++???<?xml version="1.0" encoding="utf-8"?>
++<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++ <ItemGroup Label="ProjectConfigurations">
++ <ProjectConfiguration Include="Debug|Win32">
++ <Configuration>Debug</Configuration>
++ <Platform>Win32</Platform>
++ </ProjectConfiguration>
++ <ProjectConfiguration Include="Debug|x64">
++ <Configuration>Debug</Configuration>
++ <Platform>x64</Platform>
++ </ProjectConfiguration>
++ <ProjectConfiguration Include="Release|Win32">
++ <Configuration>Release</Configuration>
++ <Platform>Win32</Platform>
++ </ProjectConfiguration>
++ <ProjectConfiguration Include="Release|x64">
++ <Configuration>Release</Configuration>
++ <Platform>x64</Platform>
++ </ProjectConfiguration>
++ </ItemGroup>
++ <PropertyGroup Label="Globals">
++ <ProjectName>gdkmm</ProjectName>
++ <ProjectGuid>{976C8F9C-1A1D-4E23-B79E-EC9091BBEA0E}</ProjectGuid>
++ <Keyword>Win32Proj</Keyword>
++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++ </PropertyGroup>
++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
++ <ConfigurationType>DynamicLibrary</ConfigurationType>
++ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v120</PlatformToolset>
++ </PropertyGroup>
++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
++ <ConfigurationType>DynamicLibrary</ConfigurationType>
++ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v120</PlatformToolset>
++ </PropertyGroup>
++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
++ <ConfigurationType>DynamicLibrary</ConfigurationType>
++ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v120</PlatformToolset>
++ </PropertyGroup>
++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
++ <ConfigurationType>DynamicLibrary</ConfigurationType>
++ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v120</PlatformToolset>
++ </PropertyGroup>
++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
++ <ImportGroup Label="ExtensionSettings">
++ </ImportGroup>
++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++ <Import Project=".\gtkmm-build-defines.props" />
++ </ImportGroup>
++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++ <Import Project=".\gtkmm-build-defines.props" />
++ </ImportGroup>
++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++ <Import Project=".\gtkmm-build-defines.props" />
++ </ImportGroup>
++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++ <Import Project=".\gtkmm-build-defines.props" />
++ </ImportGroup>
++ <PropertyGroup Label="UserMacros" />
++ <PropertyGroup>
++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild>
++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild>
++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreLinkEventUseInBuild>
++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</PreLinkEventUseInBuild>
++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)$(DebugDllSuffix)</TargetName>
++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)$(DebugDllSuffix)</TargetName>
++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)$(ReleaseDllSuffix)</TargetName>
++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)$(ReleaseDllSuffix)</TargetName>
++ </PropertyGroup>
++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
++ <ClCompile>
++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
++ <Optimization>Disabled</Optimization>
++ <PreprocessorDefinitions>_DEBUG;$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <MinimalRebuild>true</MinimalRebuild>
++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
++ <RuntimeTypeInfo>true</RuntimeTypeInfo>
++ <PrecompiledHeader>
++ </PrecompiledHeader>
++ <WarningLevel>Level3</WarningLevel>
++ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
++ </ClCompile>
++ <PreLinkEvent>
++ <Message>Generate gdkmm def file</Message>
++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
++ </PreLinkEvent>
++ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+- <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile>
+- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+- <GenerateDebugInformation>true</GenerateDebugInformation>
+- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+- <DataExecutionPrevention>
+- </DataExecutionPrevention>
+- </Link>
+- </ItemDefinitionGroup>
+- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+- <ClCompile>
+- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+- <PreprocessorDefinitions>$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+- <RuntimeTypeInfo>true</RuntimeTypeInfo>
+- <PrecompiledHeader>
+- </PrecompiledHeader>
+- <WarningLevel>Level3</WarningLevel>
+- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+- </ClCompile>
+- <PreLinkEvent>
+- <Message>Generate gdkmm def file</Message>
+- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+- </PreLinkEvent>
+- <Link>
++ <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile>
++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
++ <GenerateDebugInformation>true</GenerateDebugInformation>
++ <RandomizedBaseAddress>false</RandomizedBaseAddress>
++ <DataExecutionPrevention>
++ </DataExecutionPrevention>
++ </Link>
++ </ItemDefinitionGroup>
++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
++ <ClCompile>
++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
++ <PreprocessorDefinitions>$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
++ <RuntimeTypeInfo>true</RuntimeTypeInfo>
++ <PrecompiledHeader>
++ </PrecompiledHeader>
++ <WarningLevel>Level3</WarningLevel>
++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++ </ClCompile>
++ <PreLinkEvent>
++ <Message>Generate gdkmm def file</Message>
++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
++ </PreLinkEvent>
++ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+- <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile>
+- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+- <GenerateDebugInformation>true</GenerateDebugInformation>
+- <OptimizeReferences>true</OptimizeReferences>
+- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+- <DataExecutionPrevention>
+- </DataExecutionPrevention>
+- </Link>
+- </ItemDefinitionGroup>
+- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+- <Midl>
+- <TargetEnvironment>X64</TargetEnvironment>
+- </Midl>
+- <ClCompile>
+- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+- <Optimization>Disabled</Optimization>
+- <PreprocessorDefinitions>_DEBUG;$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+- <MinimalRebuild>true</MinimalRebuild>
+- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+- <RuntimeTypeInfo>true</RuntimeTypeInfo>
+- <PrecompiledHeader>
+- </PrecompiledHeader>
+- <WarningLevel>Level3</WarningLevel>
+- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+- </ClCompile>
+- <PreLinkEvent>
+- <Message>Generate gdkmm def file</Message>
+- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+- </PreLinkEvent>
+- <Link>
++ <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile>
++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
++ <GenerateDebugInformation>true</GenerateDebugInformation>
++ <OptimizeReferences>true</OptimizeReferences>
++ <RandomizedBaseAddress>false</RandomizedBaseAddress>
++ <DataExecutionPrevention>
++ </DataExecutionPrevention>
++ </Link>
++ </ItemDefinitionGroup>
++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
++ <Midl>
++ <TargetEnvironment>X64</TargetEnvironment>
++ </Midl>
++ <ClCompile>
++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
++ <Optimization>Disabled</Optimization>
++ <PreprocessorDefinitions>_DEBUG;$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <MinimalRebuild>true</MinimalRebuild>
++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
++ <RuntimeTypeInfo>true</RuntimeTypeInfo>
++ <PrecompiledHeader>
++ </PrecompiledHeader>
++ <WarningLevel>Level3</WarningLevel>
++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++ </ClCompile>
++ <PreLinkEvent>
++ <Message>Generate gdkmm def file</Message>
++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
++ </PreLinkEvent>
++ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+- <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile>
+- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+- <GenerateDebugInformation>true</GenerateDebugInformation>
+- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+- <DataExecutionPrevention>
+- </DataExecutionPrevention>
+- <TargetMachine>MachineX64</TargetMachine>
+- </Link>
+- </ItemDefinitionGroup>
+- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+- <Midl>
+- <TargetEnvironment>X64</TargetEnvironment>
+- </Midl>
+- <ClCompile>
+- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+- <PreprocessorDefinitions>$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+- <RuntimeTypeInfo>true</RuntimeTypeInfo>
+- <PrecompiledHeader>
+- </PrecompiledHeader>
+- <WarningLevel>Level3</WarningLevel>
+- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+- </ClCompile>
+- <PreLinkEvent>
+- <Message>Generate gdkmm def file</Message>
+- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+- </PreLinkEvent>
+- <Link>
++ <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile>
++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
++ <GenerateDebugInformation>true</GenerateDebugInformation>
++ <RandomizedBaseAddress>false</RandomizedBaseAddress>
++ <DataExecutionPrevention>
++ </DataExecutionPrevention>
++ <TargetMachine>MachineX64</TargetMachine>
++ </Link>
++ </ItemDefinitionGroup>
++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
++ <Midl>
++ <TargetEnvironment>X64</TargetEnvironment>
++ </Midl>
++ <ClCompile>
++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
++ <PreprocessorDefinitions>$(GdkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
++ <RuntimeTypeInfo>true</RuntimeTypeInfo>
++ <PrecompiledHeader>
++ </PrecompiledHeader>
++ <WarningLevel>Level3</WarningLevel>
++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++ </ClCompile>
++ <PreLinkEvent>
++ <Message>Generate gdkmm def file</Message>
++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
++ </PreLinkEvent>
++ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+- <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile>
+- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+- <GenerateDebugInformation>true</GenerateDebugInformation>
+- <OptimizeReferences>true</OptimizeReferences>
+- <DataExecutionPrevention>
+- </DataExecutionPrevention>
+- <TargetMachine>MachineX64</TargetMachine>
+- </Link>
+- </ItemDefinitionGroup>
+- <ItemGroup>
+- <ClCompile Include="..\gdk\gdkmm\applaunchcontext.cc" />
+- <ClCompile Include="..\gdk\gdkmm\color.cc" />
+- <ClCompile Include="..\gdk\gdkmm\cursor.cc" />
+- <ClCompile Include="..\gdk\gdkmm\device.cc" />
+- <ClCompile Include="..\gdk\gdkmm\devicemanager.cc" />
+- <ClCompile Include="..\gdk\gdkmm\display.cc" />
+- <ClCompile Include="..\gdk\gdkmm\displaymanager.cc" />
+- <ClCompile Include="..\gdk\gdkmm\dragcontext.cc" />
+- <ClCompile Include="..\gdk\gdkmm\drawingcontext.cc" />
+- <ClCompile Include="..\gdk\gdkmm\event.cc" />
+- <ClCompile Include="..\gdk\gdkmm\general.cc" />
+- <ClCompile Include="..\gdk\gdkmm\glcontext.cc" />
+- <ClCompile Include="..\gdk\gdkmm\monitor.cc" />
+- <ClCompile Include="..\gdk\gdkmm\pixbuf.cc" />
+- <ClCompile Include="..\gdk\gdkmm\pixbufanimation.cc" />
+- <ClCompile Include="..\gdk\gdkmm\pixbufanimationiter.cc" />
+- <ClCompile Include="..\gdk\gdkmm\pixbufformat.cc" />
+- <ClCompile Include="..\gdk\gdkmm\pixbufloader.cc" />
+- <ClCompile Include="..\gdk\gdkmm\rectangle.cc" />
+- <ClCompile Include="..\gdk\gdkmm\rgba.cc" />
+- <ClCompile Include="..\gdk\gdkmm\seat.cc" />
+- <ClCompile Include="..\gdk\gdkmm\screen.cc" />
+- <ClCompile Include="..\gdk\gdkmm\timecoord.cc" />
+- <ClCompile Include="..\gdk\gdkmm\types.cc" />
+- <ClCompile Include="..\gdk\gdkmm\visual.cc" />
+- <ClCompile Include="..\gdk\gdkmm\window.cc" />
+- <ClCompile Include="..\gdk\gdkmm\wrap_init.cc" />
+- </ItemGroup>
+- <ItemGroup>
+- <ClInclude Include="..\gdk\gdkmm\applaunchcontext.h" />
+- <ClInclude Include="..\gdk\gdkmm\color.h" />
+- <ClInclude Include="..\gdk\gdkmm\colormap.h" />
+- <ClInclude Include="..\gdk\gdkmm\cursor.h" />
+- <ClInclude Include="..\gdk\gdkmm\device.h" />
+- <ClInclude Include="..\gdk\gdkmm\devicemanager.h" />
+- <ClInclude Include="..\gdk\gdkmm\display.h" />
+- <ClInclude Include="..\gdk\gdkmm\displaymanager.h" />
+- <ClInclude Include="..\gdk\gdkmm\dragcontext.h" />
+- <ClInclude Include="..\gdk\gdkmm\drawingcontext.h" />
+- <ClInclude Include="..\gdk\gdkmm\event.h" />
+- <ClInclude Include="..\gdk\gdkmm\general.h" />
+- <ClInclude Include="..\gdk\gdkmm\glcontext.h" />
+- <ClInclude Include="..\gdk\gdkmm\list.h" />
+- <ClInclude Include="..\gdk\gdkmm\monitor.h" />
+- <ClInclude Include="..\gdk\gdkmm\pixbuf.h" />
+- <ClInclude Include="..\gdk\gdkmm\pixbufanimation.h" />
+- <ClInclude Include="..\gdk\gdkmm\pixbufanimationiter.h" />
+- <ClInclude Include="..\gdk\gdkmm\pixbufformat.h" />
+- <ClInclude Include="..\gdk\gdkmm\pixbufloader.h" />
+- <ClInclude Include="..\gdk\gdkmm\rectangle.h" />
+- <ClInclude Include="..\gdk\gdkmm\region.h" />
+- <ClInclude Include="..\gdk\gdkmm\rgba.h" />
+- <ClInclude Include="..\gdk\gdkmm\seat.h" />
+- <ClInclude Include="..\gdk\gdkmm\screen.h" />
+- <ClInclude Include="..\gdk\gdkmm\timecoord.h" />
+- <ClInclude Include="..\gdk\gdkmm\types.h" />
+- <ClInclude Include="..\gdk\gdkmm\visual.h" />
+- <ClInclude Include="..\gdk\gdkmm\window.h" />
+- <ClInclude Include="..\gdk\gdkmm\wrap_init.h" />
+- </ItemGroup>
+- <ItemGroup>
+- <ResourceCompile Include=".\gdkmm\gdkmm.rc" />
+- </ItemGroup>
+- <ItemGroup>
+- <ProjectReference Include="gendef.vcxproj">
+- <Project>{07324745-c9be-4d65-b08a-9c88188c0c28}</Project>
+- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+- </ProjectReference>
+- </ItemGroup>
+- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+- <ImportGroup Label="ExtensionTargets">
+- </ImportGroup>
+-</Project>
+\ No newline at end of file
++ <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile>
++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
++ <RandomizedBaseAddress>false</RandomizedBaseAddress>
++ <GenerateDebugInformation>true</GenerateDebugInformation>
++ <OptimizeReferences>true</OptimizeReferences>
++ <DataExecutionPrevention>
++ </DataExecutionPrevention>
++ <TargetMachine>MachineX64</TargetMachine>
++ </Link>
++ </ItemDefinitionGroup>
++ <ItemGroup>
++ <ClCompile Include="..\gdk\gdkmm\applaunchcontext.cc" />
++ <ClCompile Include="..\gdk\gdkmm\color.cc" />
++ <ClCompile Include="..\gdk\gdkmm\cursor.cc" />
++ <ClCompile Include="..\gdk\gdkmm\device.cc" />
++ <ClCompile Include="..\gdk\gdkmm\devicemanager.cc" />
++ <ClCompile Include="..\gdk\gdkmm\display.cc" />
++ <ClCompile Include="..\gdk\gdkmm\displaymanager.cc" />
++ <ClCompile Include="..\gdk\gdkmm\dragcontext.cc" />
++ <ClCompile Include="..\gdk\gdkmm\drawingcontext.cc" />
++ <ClCompile Include="..\gdk\gdkmm\event.cc" />
++ <ClCompile Include="..\gdk\gdkmm\general.cc" />
++ <ClCompile Include="..\gdk\gdkmm\glcontext.cc" />
++ <ClCompile Include="..\gdk\gdkmm\monitor.cc" />
++ <ClCompile Include="..\gdk\gdkmm\pixbuf.cc" />
++ <ClCompile Include="..\gdk\gdkmm\pixbufanimation.cc" />
++ <ClCompile Include="..\gdk\gdkmm\pixbufanimationiter.cc" />
++ <ClCompile Include="..\gdk\gdkmm\pixbufformat.cc" />
++ <ClCompile Include="..\gdk\gdkmm\pixbufloader.cc" />
++ <ClCompile Include="..\gdk\gdkmm\rectangle.cc" />
++ <ClCompile Include="..\gdk\gdkmm\rgba.cc" />
++ <ClCompile Include="..\gdk\gdkmm\seat.cc" />
++ <ClCompile Include="..\gdk\gdkmm\screen.cc" />
++ <ClCompile Include="..\gdk\gdkmm\timecoord.cc" />
++ <ClCompile Include="..\gdk\gdkmm\types.cc" />
++ <ClCompile Include="..\gdk\gdkmm\visual.cc" />
++ <ClCompile Include="..\gdk\gdkmm\window.cc" />
++ <ClCompile Include="..\gdk\gdkmm\wrap_init.cc" />
++ </ItemGroup>
++ <ItemGroup>
++ <ClInclude Include="..\gdk\gdkmm\applaunchcontext.h" />
++ <ClInclude Include="..\gdk\gdkmm\color.h" />
++ <ClInclude Include="..\gdk\gdkmm\colormap.h" />
++ <ClInclude Include="..\gdk\gdkmm\cursor.h" />
++ <ClInclude Include="..\gdk\gdkmm\device.h" />
++ <ClInclude Include="..\gdk\gdkmm\devicemanager.h" />
++ <ClInclude Include="..\gdk\gdkmm\display.h" />
++ <ClInclude Include="..\gdk\gdkmm\displaymanager.h" />
++ <ClInclude Include="..\gdk\gdkmm\dragcontext.h" />
++ <ClInclude Include="..\gdk\gdkmm\drawingcontext.h" />
++ <ClInclude Include="..\gdk\gdkmm\event.h" />
++ <ClInclude Include="..\gdk\gdkmm\general.h" />
++ <ClInclude Include="..\gdk\gdkmm\glcontext.h" />
++ <ClInclude Include="..\gdk\gdkmm\list.h" />
++ <ClInclude Include="..\gdk\gdkmm\monitor.h" />
++ <ClInclude Include="..\gdk\gdkmm\pixbuf.h" />
++ <ClInclude Include="..\gdk\gdkmm\pixbufanimation.h" />
++ <ClInclude Include="..\gdk\gdkmm\pixbufanimationiter.h" />
++ <ClInclude Include="..\gdk\gdkmm\pixbufformat.h" />
++ <ClInclude Include="..\gdk\gdkmm\pixbufloader.h" />
++ <ClInclude Include="..\gdk\gdkmm\rectangle.h" />
++ <ClInclude Include="..\gdk\gdkmm\region.h" />
++ <ClInclude Include="..\gdk\gdkmm\rgba.h" />
++ <ClInclude Include="..\gdk\gdkmm\seat.h" />
++ <ClInclude Include="..\gdk\gdkmm\screen.h" />
++ <ClInclude Include="..\gdk\gdkmm\timecoord.h" />
++ <ClInclude Include="..\gdk\gdkmm\types.h" />
++ <ClInclude Include="..\gdk\gdkmm\visual.h" />
++ <ClInclude Include="..\gdk\gdkmm\window.h" />
++ <ClInclude Include="..\gdk\gdkmm\wrap_init.h" />
++ </ItemGroup>
++ <ItemGroup>
++ <ResourceCompile Include=".\gdkmm\gdkmm.rc" />
++ </ItemGroup>
++ <ItemGroup>
++ <ProjectReference Include="gendef.vcxproj">
++ <Project>{07324745-c9be-4d65-b08a-9c88188c0c28}</Project>
++ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
++ </ProjectReference>
++ </ItemGroup>
++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
++ <ImportGroup Label="ExtensionTargets">
++ </ImportGroup>
++</Project>
+\ No newline at end of file
+diff --git a/MSVC_Net2013/gendef.vcxproj b/MSVC_Net2013/gendef.vcxproj
+index 33dfe5e..01b9271 100644
+--- a/MSVC_Net2013/gendef.vcxproj
++++ b/MSVC_Net2013/gendef.vcxproj
+@@ -21,26 +21,27 @@
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{07324745-C9BE-4D65-B08A-9C88188C0C28}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+diff --git a/MSVC_Net2013/gtkmm.vcxproj b/MSVC_Net2013/gtkmm.vcxproj
+index 2c732f8..ad9d312 100644
+--- a/MSVC_Net2013/gtkmm.vcxproj
++++ b/MSVC_Net2013/gtkmm.vcxproj
+@@ -1,700 +1,701 @@
+-???<?xml version="1.0" encoding="utf-8"?>
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+- <ItemGroup Label="ProjectConfigurations">
+- <ProjectConfiguration Include="Debug|Win32">
+- <Configuration>Debug</Configuration>
+- <Platform>Win32</Platform>
+- </ProjectConfiguration>
+- <ProjectConfiguration Include="Debug|x64">
+- <Configuration>Debug</Configuration>
+- <Platform>x64</Platform>
+- </ProjectConfiguration>
+- <ProjectConfiguration Include="Release|Win32">
+- <Configuration>Release</Configuration>
+- <Platform>Win32</Platform>
+- </ProjectConfiguration>
+- <ProjectConfiguration Include="Release|x64">
+- <Configuration>Release</Configuration>
+- <Platform>x64</Platform>
+- </ProjectConfiguration>
+- </ItemGroup>
+- <PropertyGroup Label="Globals">
+- <ProjectName>gtkmm</ProjectName>
+- <ProjectGuid>{907B8D15-7E12-4136-A7E6-B6ED5E055D39}</ProjectGuid>
+- <RootNamespace>gtkmm</RootNamespace>
+- <Keyword>Win32Proj</Keyword>
+- </PropertyGroup>
+- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+- <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
+- <PlatformToolset>v120</PlatformToolset>
+- </PropertyGroup>
+- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+- <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
+- <PlatformToolset>v120</PlatformToolset>
+- </PropertyGroup>
+- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+- <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
+- <PlatformToolset>v120</PlatformToolset>
+- </PropertyGroup>
+- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+- <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
+- <PlatformToolset>v120</PlatformToolset>
+- </PropertyGroup>
+- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+- <ImportGroup Label="ExtensionSettings">
+- </ImportGroup>
+- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+- <Import Project=".\gtkmm-build-defines.props" />
+- </ImportGroup>
+- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+- <Import Project=".\gtkmm-build-defines.props" />
+- </ImportGroup>
+- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+- <Import Project=".\gtkmm-build-defines.props" />
+- </ImportGroup>
+- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+- <Import Project=".\gtkmm-build-defines.props" />
+- </ImportGroup>
+- <PropertyGroup Label="UserMacros" />
+- <PropertyGroup>
+- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild>
+- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild>
+- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreLinkEventUseInBuild>
+- <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</PreLinkEventUseInBuild>
+- <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)$(DebugDllSuffix)</TargetName>
+- <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)$(DebugDllSuffix)</TargetName>
+- <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)$(ReleaseDllSuffix)</TargetName>
+- <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)$(ReleaseDllSuffix)</TargetName>
+- </PropertyGroup>
+- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+- <ClCompile>
+- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+- <Optimization>Disabled</Optimization>
+- <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++???<?xml version="1.0" encoding="utf-8"?>
++<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++ <ItemGroup Label="ProjectConfigurations">
++ <ProjectConfiguration Include="Debug|Win32">
++ <Configuration>Debug</Configuration>
++ <Platform>Win32</Platform>
++ </ProjectConfiguration>
++ <ProjectConfiguration Include="Debug|x64">
++ <Configuration>Debug</Configuration>
++ <Platform>x64</Platform>
++ </ProjectConfiguration>
++ <ProjectConfiguration Include="Release|Win32">
++ <Configuration>Release</Configuration>
++ <Platform>Win32</Platform>
++ </ProjectConfiguration>
++ <ProjectConfiguration Include="Release|x64">
++ <Configuration>Release</Configuration>
++ <Platform>x64</Platform>
++ </ProjectConfiguration>
++ </ItemGroup>
++ <PropertyGroup Label="Globals">
++ <ProjectName>gtkmm</ProjectName>
++ <ProjectGuid>{907B8D15-7E12-4136-A7E6-B6ED5E055D39}</ProjectGuid>
++ <RootNamespace>gtkmm</RootNamespace>
++ <Keyword>Win32Proj</Keyword>
++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++ </PropertyGroup>
++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
++ <ConfigurationType>DynamicLibrary</ConfigurationType>
++ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v120</PlatformToolset>
++ </PropertyGroup>
++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
++ <ConfigurationType>DynamicLibrary</ConfigurationType>
++ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v120</PlatformToolset>
++ </PropertyGroup>
++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
++ <ConfigurationType>DynamicLibrary</ConfigurationType>
++ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v120</PlatformToolset>
++ </PropertyGroup>
++ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
++ <ConfigurationType>DynamicLibrary</ConfigurationType>
++ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v120</PlatformToolset>
++ </PropertyGroup>
++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
++ <ImportGroup Label="ExtensionSettings">
++ </ImportGroup>
++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++ <Import Project=".\gtkmm-build-defines.props" />
++ </ImportGroup>
++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++ <Import Project=".\gtkmm-build-defines.props" />
++ </ImportGroup>
++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++ <Import Project=".\gtkmm-build-defines.props" />
++ </ImportGroup>
++ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
++ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++ <Import Project=".\gtkmm-build-defines.props" />
++ </ImportGroup>
++ <PropertyGroup Label="UserMacros" />
++ <PropertyGroup>
++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild>
++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild>
++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreLinkEventUseInBuild>
++ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</PreLinkEventUseInBuild>
++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)$(DebugDllSuffix)</TargetName>
++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)$(DebugDllSuffix)</TargetName>
++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)$(ReleaseDllSuffix)</TargetName>
++ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)$(ReleaseDllSuffix)</TargetName>
++ </PropertyGroup>
++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
++ <ClCompile>
++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
++ <Optimization>Disabled</Optimization>
++ <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_NO_CRT_STDIO_INLINE;$(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+- <MinimalRebuild>true</MinimalRebuild>
+- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+- <RuntimeTypeInfo>true</RuntimeTypeInfo>
+- <PrecompiledHeader>
+- </PrecompiledHeader>
+- <WarningLevel>Level3</WarningLevel>
+- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+- </ClCompile>
+- <PreLinkEvent>
+- <Message>Generate gtkmm def file</Message>
+- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+- </PreLinkEvent>
+- <Link>
++ <MinimalRebuild>true</MinimalRebuild>
++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
++ <RuntimeTypeInfo>true</RuntimeTypeInfo>
++ <PrecompiledHeader>
++ </PrecompiledHeader>
++ <WarningLevel>Level3</WarningLevel>
++ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
++ </ClCompile>
++ <PreLinkEvent>
++ <Message>Generate gtkmm def file</Message>
++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
++ </PreLinkEvent>
++ <Link>
+ <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies>
+- <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile>
+- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+- <GenerateDebugInformation>true</GenerateDebugInformation>
+- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+- <DataExecutionPrevention>
+- </DataExecutionPrevention>
+- </Link>
+- </ItemDefinitionGroup>
+- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+- <ClCompile>
+- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+- <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++ <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile>
++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
++ <GenerateDebugInformation>true</GenerateDebugInformation>
++ <RandomizedBaseAddress>false</RandomizedBaseAddress>
++ <DataExecutionPrevention>
++ </DataExecutionPrevention>
++ </Link>
++ </ItemDefinitionGroup>
++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
++ <ClCompile>
++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
++ <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>$(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+- <RuntimeTypeInfo>true</RuntimeTypeInfo>
+- <PrecompiledHeader>
+- </PrecompiledHeader>
+- <WarningLevel>Level3</WarningLevel>
+- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+- </ClCompile>
+- <PreLinkEvent>
+- <Message>Generate gtkmm def file</Message>
+- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+- </PreLinkEvent>
+- <Link>
++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
++ <RuntimeTypeInfo>true</RuntimeTypeInfo>
++ <PrecompiledHeader>
++ </PrecompiledHeader>
++ <WarningLevel>Level3</WarningLevel>
++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++ </ClCompile>
++ <PreLinkEvent>
++ <Message>Generate gtkmm def file</Message>
++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
++ </PreLinkEvent>
++ <Link>
+ <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies>
+- <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile>
+- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+- <GenerateDebugInformation>true</GenerateDebugInformation>
+- <OptimizeReferences>true</OptimizeReferences>
+- <DataExecutionPrevention>
+- </DataExecutionPrevention>
+- </Link>
+- </ItemDefinitionGroup>
+- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+- <Midl>
+- <TargetEnvironment>X64</TargetEnvironment>
+- </Midl>
+- <ClCompile>
+- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+- <Optimization>Disabled</Optimization>
+- <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++ <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile>
++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
++ <RandomizedBaseAddress>false</RandomizedBaseAddress>
++ <GenerateDebugInformation>true</GenerateDebugInformation>
++ <OptimizeReferences>true</OptimizeReferences>
++ <DataExecutionPrevention>
++ </DataExecutionPrevention>
++ </Link>
++ </ItemDefinitionGroup>
++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
++ <Midl>
++ <TargetEnvironment>X64</TargetEnvironment>
++ </Midl>
++ <ClCompile>
++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
++ <Optimization>Disabled</Optimization>
++ <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_NO_CRT_STDIO_INLINE;$(GtkMMBuildDefs);)</PreprocessorDefinitions>
+- <MinimalRebuild>true</MinimalRebuild>
+- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+- <RuntimeTypeInfo>true</RuntimeTypeInfo>
+- <PrecompiledHeader>
+- </PrecompiledHeader>
+- <WarningLevel>Level3</WarningLevel>
+- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+- </ClCompile>
+- <PreLinkEvent>
+- <Message>Generate gtkmm def file</Message>
+- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+- </PreLinkEvent>
+- <Link>
++ <MinimalRebuild>true</MinimalRebuild>
++ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
++ <RuntimeTypeInfo>true</RuntimeTypeInfo>
++ <PrecompiledHeader>
++ </PrecompiledHeader>
++ <WarningLevel>Level3</WarningLevel>
++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++ </ClCompile>
++ <PreLinkEvent>
++ <Message>Generate gtkmm def file</Message>
++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
++ </PreLinkEvent>
++ <Link>
+ <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies>
+- <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile>
+- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+- <GenerateDebugInformation>true</GenerateDebugInformation>
+- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+- <DataExecutionPrevention>
+- </DataExecutionPrevention>
+- <TargetMachine>MachineX64</TargetMachine>
+- </Link>
+- </ItemDefinitionGroup>
+- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+- <Midl>
+- <TargetEnvironment>X64</TargetEnvironment>
+- </Midl>
+- <ClCompile>
+- <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+- <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++ <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile>
++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
++ <GenerateDebugInformation>true</GenerateDebugInformation>
++ <RandomizedBaseAddress>false</RandomizedBaseAddress>
++ <DataExecutionPrevention>
++ </DataExecutionPrevention>
++ <TargetMachine>MachineX64</TargetMachine>
++ </Link>
++ </ItemDefinitionGroup>
++ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
++ <Midl>
++ <TargetEnvironment>X64</TargetEnvironment>
++ </Midl>
++ <ClCompile>
++ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
++ <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>$(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+- <RuntimeTypeInfo>true</RuntimeTypeInfo>
+- <PrecompiledHeader>
+- </PrecompiledHeader>
+- <WarningLevel>Level3</WarningLevel>
+- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+- </ClCompile>
+- <PreLinkEvent>
+- <Message>Generate gtkmm def file</Message>
+- <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+- </PreLinkEvent>
+- <Link>
++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
++ <RuntimeTypeInfo>true</RuntimeTypeInfo>
++ <PrecompiledHeader>
++ </PrecompiledHeader>
++ <WarningLevel>Level3</WarningLevel>
++ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++ </ClCompile>
++ <PreLinkEvent>
++ <Message>Generate gtkmm def file</Message>
++ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
++ </PreLinkEvent>
++ <Link>
+ <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies>
+- <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile>
+- <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+- <GenerateDebugInformation>true</GenerateDebugInformation>
+- <OptimizeReferences>true</OptimizeReferences>
+- <RandomizedBaseAddress>false</RandomizedBaseAddress>
+- <DataExecutionPrevention>
+- </DataExecutionPrevention>
+- <TargetMachine>MachineX64</TargetMachine>
+- </Link>
+- </ItemDefinitionGroup>
+- <ItemGroup>
+- <ClCompile Include="..\gtk\gtkmm\aboutdialog.cc" />
+- <ClCompile Include="..\gtk\gtkmm\accelgroup.cc" />
+- <ClCompile Include="..\gtk\gtkmm\accelkey.cc" />
+- <ClCompile Include="..\gtk\gtkmm\accellabel.cc" />
+- <ClCompile Include="..\gtk\gtkmm\accelmap.cc" />
+- <ClCompile Include="..\gtk\gtkmm\action.cc" />
+- <ClCompile Include="..\gtk\gtkmm\actionable.cc" />
+- <ClCompile Include="..\gtk\gtkmm\actionbar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\actiongroup.cc" />
+- <ClCompile Include="..\gtk\gtkmm\activatable.cc" />
+- <ClCompile Include="..\gtk\gtkmm\adjustment.cc" />
+- <ClCompile Include="..\gtk\gtkmm\alignment.cc" />
+- <ClCompile Include="..\gtk\gtkmm\appchooser.cc" />
+- <ClCompile Include="..\gtk\gtkmm\appchooserbutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\appchooserdialog.cc" />
+- <ClCompile Include="..\gtk\gtkmm\appchooserwidget.cc" />
+- <ClCompile Include="..\gtk\gtkmm\application.cc" />
+- <ClCompile Include="..\gtk\gtkmm\applicationwindow.cc" />
+- <ClCompile Include="..\gtk\gtkmm\arrow.cc" />
+- <ClCompile Include="..\gtk\gtkmm\aspectframe.cc" />
+- <ClCompile Include="..\gtk\gtkmm\assistant.cc" />
+- <ClCompile Include="..\gtk\gtkmm\bin.cc" />
+- <ClCompile Include="..\gtk\gtkmm\border.cc" />
+- <ClCompile Include="..\gtk\gtkmm\box.cc" />
+- <ClCompile Include="..\gtk\gtkmm\buildable.cc" />
+- <ClCompile Include="..\gtk\gtkmm\builder.cc" />
+- <ClCompile Include="..\gtk\gtkmm\button.cc" />
+- <ClCompile Include="..\gtk\gtkmm\buttonbox.cc" />
+- <ClCompile Include="..\gtk\gtkmm\calendar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellarea.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellareabox.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellareacontext.cc" />
+- <ClCompile Include="..\gtk\gtkmm\celleditable.cc" />
+- <ClCompile Include="..\gtk\gtkmm\celllayout.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellrenderer.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellrenderer_generation.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellrendereraccel.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellrenderercombo.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellrendererpixbuf.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellrendererprogress.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellrendererspin.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellrendererspinner.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellrenderertext.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellrenderertoggle.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cellview.cc" />
+- <ClCompile Include="..\gtk\gtkmm\checkbutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\checkmenuitem.cc" />
+- <ClCompile Include="..\gtk\gtkmm\childpropertyproxy.cc" />
+- <ClCompile Include="..\gtk\gtkmm\childpropertyproxy_base.cc" />
+- <ClCompile Include="..\gtk\gtkmm\clipboard.cc" />
+- <ClCompile Include="..\gtk\gtkmm\colorbutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\colorchooser.cc" />
+- <ClCompile Include="..\gtk\gtkmm\colorchooserdialog.cc" />
+- <ClCompile Include="..\gtk\gtkmm\colorselection.cc" />
+- <ClCompile Include="..\gtk\gtkmm\combobox.cc" />
+- <ClCompile Include="..\gtk\gtkmm\comboboxtext.cc" />
+- <ClCompile Include="..\gtk\gtkmm\container.cc" />
+- <ClCompile Include="..\gtk\gtkmm\cssprovider.cc" />
+- <ClCompile Include="..\gtk\gtkmm\csssection.cc" />
+- <ClCompile Include="..\gtk\gtkmm\dialog.cc" />
+- <ClCompile Include="..\gtk\gtkmm\drawingarea.cc" />
+- <ClCompile Include="..\gtk\gtkmm\editable.cc" />
+- <ClCompile Include="..\gtk\gtkmm\entry.cc" />
+- <ClCompile Include="..\gtk\gtkmm\entrybuffer.cc" />
+- <ClCompile Include="..\gtk\gtkmm\entrycompletion.cc" />
+- <ClCompile Include="..\gtk\gtkmm\enums.cc" />
+- <ClCompile Include="..\gtk\gtkmm\eventbox.cc" />
+- <ClCompile Include="..\gtk\gtkmm\eventcontroller.cc" />
+- <ClCompile Include="..\gtk\gtkmm\expander.cc" />
+- <ClCompile Include="..\gtk\gtkmm\filechooser.cc" />
+- <ClCompile Include="..\gtk\gtkmm\filechooserbutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\filechooserdialog.cc" />
+- <ClCompile Include="..\gtk\gtkmm\filechooserwidget.cc" />
+- <ClCompile Include="..\gtk\gtkmm\filefilter.cc" />
+- <ClCompile Include="..\gtk\gtkmm\fixed.cc" />
+- <ClCompile Include="..\gtk\gtkmm\flowbox.cc" />
+- <ClCompile Include="..\gtk\gtkmm\flowboxchild.cc" />
+- <ClCompile Include="..\gtk\gtkmm\fontbutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\fontchooser.cc" />
+- <ClCompile Include="..\gtk\gtkmm\fontchooserdialog.cc" />
+- <ClCompile Include="..\gtk\gtkmm\fontchooserwidget.cc" />
+- <ClCompile Include="..\gtk\gtkmm\fontselection.cc" />
+- <ClCompile Include="..\gtk\gtkmm\frame.cc" />
+- <ClCompile Include="..\gtk\gtkmm\gesture.cc" />
+- <ClCompile Include="..\gtk\gtkmm\gesturedrag.cc" />
+- <ClCompile Include="..\gtk\gtkmm\gesturelongpress.cc" />
+- <ClCompile Include="..\gtk\gtkmm\gesturemultipress.cc" />
+- <ClCompile Include="..\gtk\gtkmm\gesturepan.cc" />
+- <ClCompile Include="..\gtk\gtkmm\gesturerotate.cc" />
+- <ClCompile Include="..\gtk\gtkmm\gesturesingle.cc" />
+- <ClCompile Include="..\gtk\gtkmm\gestureswipe.cc" />
+- <ClCompile Include="..\gtk\gtkmm\gesturezoom.cc" />
+- <ClCompile Include="..\gtk\gtkmm\glarea.cc" />
+- <ClCompile Include="..\gtk\gtkmm\grid.cc" />
+- <ClCompile Include="..\gtk\gtkmm\handlebox.cc" />
+- <ClCompile Include="..\gtk\gtkmm\headerbar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\hvbox.cc" />
+- <ClCompile Include="..\gtk\gtkmm\hvbuttonbox.cc" />
+- <ClCompile Include="..\gtk\gtkmm\hvpaned.cc" />
+- <ClCompile Include="..\gtk\gtkmm\hvscale.cc" />
+- <ClCompile Include="..\gtk\gtkmm\hvscrollbar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\hvseparator.cc" />
+- <ClCompile Include="..\gtk\gtkmm\iconfactory.cc" />
+- <ClCompile Include="..\gtk\gtkmm\iconinfo.cc" />
+- <ClCompile Include="..\gtk\gtkmm\iconset.cc" />
+- <ClCompile Include="..\gtk\gtkmm\iconsource.cc" />
+- <ClCompile Include="..\gtk\gtkmm\icontheme.cc" />
+- <ClCompile Include="..\gtk\gtkmm\iconview.cc" />
+- <ClCompile Include="..\gtk\gtkmm\image.cc" />
+- <ClCompile Include="..\gtk\gtkmm\imagemenuitem.cc" />
+- <ClCompile Include="..\gtk\gtkmm\infobar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\invisible.cc" />
+- <ClCompile Include="..\gtk\gtkmm\label.cc" />
+- <ClCompile Include="..\gtk\gtkmm\layout.cc" />
+- <ClCompile Include="..\gtk\gtkmm\levelbar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\linkbutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\listbox.cc" />
+- <ClCompile Include="..\gtk\gtkmm\listboxrow.cc" />
+- <ClCompile Include="..\gtk\gtkmm\liststore.cc" />
+- <ClCompile Include="..\gtk\gtkmm\listviewtext.cc" />
+- <ClCompile Include="..\gtk\gtkmm\lockbutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\main.cc" />
+- <ClCompile Include="..\gtk\gtkmm\menu.cc" />
+- <ClCompile Include="..\gtk\gtkmm\menubar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\menubutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\menuitem.cc" />
+- <ClCompile Include="..\gtk\gtkmm\menushell.cc" />
+- <ClCompile Include="..\gtk\gtkmm\menutoolbutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\messagedialog.cc" />
+- <ClCompile Include="..\gtk\gtkmm\misc.cc" />
+- <ClCompile Include="..\gtk\gtkmm\modelbutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\notebook.cc" />
+- <ClCompile Include="..\gtk\gtkmm\numerableicon.cc" />
+- <ClCompile Include="..\gtk\gtkmm\object.cc" />
+- <ClCompile Include="..\gtk\gtkmm\offscreenwindow.cc" />
+- <ClCompile Include="..\gtk\gtkmm\orientable.cc" />
+- <ClCompile Include="..\gtk\gtkmm\overlay.cc" />
+- <ClCompile Include="..\gtk\gtkmm\pagesetup.cc" />
+- <ClCompile Include="..\gtk\gtkmm\paned.cc" />
+- <ClCompile Include="..\gtk\gtkmm\papersize.cc" />
+- <ClCompile Include="..\gtk\gtkmm\placessidebar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\popover.cc" />
+- <ClCompile Include="..\gtk\gtkmm\popovermenu.cc" />
+- <ClCompile Include="..\gtk\gtkmm\printcontext.cc" />
+- <ClCompile Include="..\gtk\gtkmm\printoperation.cc" />
+- <ClCompile Include="..\gtk\gtkmm\printoperationpreview.cc" />
+- <ClCompile Include="..\gtk\gtkmm\printsettings.cc" />
+- <ClCompile Include="..\gtk\gtkmm\progressbar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\radioaction.cc" />
+- <ClCompile Include="..\gtk\gtkmm\radiobutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\radiobuttongroup.cc" />
+- <ClCompile Include="..\gtk\gtkmm\radiomenuitem.cc" />
+- <ClCompile Include="..\gtk\gtkmm\radiotoolbutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\range.cc" />
+- <ClCompile Include="..\gtk\gtkmm\recentaction.cc" />
+- <ClCompile Include="..\gtk\gtkmm\recentchooser.cc" />
+- <ClCompile Include="..\gtk\gtkmm\recentchooserdialog.cc" />
+- <ClCompile Include="..\gtk\gtkmm\recentchoosermenu.cc" />
+- <ClCompile Include="..\gtk\gtkmm\recentchooserwidget.cc" />
+- <ClCompile Include="..\gtk\gtkmm\recentfilter.cc" />
+- <ClCompile Include="..\gtk\gtkmm\recentinfo.cc" />
+- <ClCompile Include="..\gtk\gtkmm\recentmanager.cc" />
+- <ClCompile Include="..\gtk\gtkmm\requisition.cc" />
+- <ClCompile Include="..\gtk\gtkmm\revealer.cc" />
+- <ClCompile Include="..\gtk\gtkmm\scale.cc" />
+- <ClCompile Include="..\gtk\gtkmm\scalebutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\scrollable.cc" />
+- <ClCompile Include="..\gtk\gtkmm\scrollbar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\scrolledwindow.cc" />
+- <ClCompile Include="..\gtk\gtkmm\searchbar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\searchentry.cc" />
+- <ClCompile Include="..\gtk\gtkmm\selectiondata.cc" />
+- <ClCompile Include="..\gtk\gtkmm\selectiondata_private.cc" />
+- <ClCompile Include="..\gtk\gtkmm\separator.cc" />
+- <ClCompile Include="..\gtk\gtkmm\separatormenuitem.cc" />
+- <ClCompile Include="..\gtk\gtkmm\separatortoolitem.cc" />
+- <ClCompile Include="..\gtk\gtkmm\settings.cc" />
+- <ClCompile Include="..\gtk\gtkmm\shortcutlabel.cc" />
+- <ClCompile Include="..\gtk\gtkmm\shortcutsgroup.cc" />
+- <ClCompile Include="..\gtk\gtkmm\shortcutssection.cc" />
+- <ClCompile Include="..\gtk\gtkmm\shortcutsshortcut.cc" />
+- <ClCompile Include="..\gtk\gtkmm\shortcutswindow.cc" />
+- <ClCompile Include="..\gtk\gtkmm\sizegroup.cc" />
+- <ClCompile Include="..\gtk\gtkmm\spinbutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\spinner.cc" />
+- <ClCompile Include="..\gtk\gtkmm\stack.cc" />
+- <ClCompile Include="..\gtk\gtkmm\stacksidebar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\stackswitcher.cc" />
+- <ClCompile Include="..\gtk\gtkmm\statusbar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\statusicon.cc" />
+- <ClCompile Include="..\gtk\gtkmm\stock.cc" />
+- <ClCompile Include="..\gtk\gtkmm\stockid.cc" />
+- <ClCompile Include="..\gtk\gtkmm\stockitem.cc" />
+- <ClCompile Include="..\gtk\gtkmm\stylecontext.cc" />
+- <ClCompile Include="..\gtk\gtkmm\styleprovider.cc" />
+- <ClCompile Include="..\gtk\gtkmm\switch.cc" />
+- <ClCompile Include="..\gtk\gtkmm\table.cc" />
+- <ClCompile Include="..\gtk\gtkmm\targetentry.cc" />
+- <ClCompile Include="..\gtk\gtkmm\targetlist.cc" />
+- <ClCompile Include="..\gtk\gtkmm\tearoffmenuitem.cc" />
+- <ClCompile Include="..\gtk\gtkmm\textattributes.cc" />
+- <ClCompile Include="..\gtk\gtkmm\textbuffer.cc" />
+- <ClCompile Include="..\gtk\gtkmm\textchildanchor.cc" />
+- <ClCompile Include="..\gtk\gtkmm\textiter.cc" />
+- <ClCompile Include="..\gtk\gtkmm\textmark.cc" />
+- <ClCompile Include="..\gtk\gtkmm\texttag.cc" />
+- <ClCompile Include="..\gtk\gtkmm\texttagtable.cc" />
+- <ClCompile Include="..\gtk\gtkmm\textview.cc" />
+- <ClCompile Include="..\gtk\gtkmm\toggleaction.cc" />
+- <ClCompile Include="..\gtk\gtkmm\togglebutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\toggletoolbutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\toolbar.cc" />
+- <ClCompile Include="..\gtk\gtkmm\toolbutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\toolitem.cc" />
+- <ClCompile Include="..\gtk\gtkmm\toolitemgroup.cc" />
+- <ClCompile Include="..\gtk\gtkmm\toolpalette.cc" />
+- <ClCompile Include="..\gtk\gtkmm\toolshell.cc" />
+- <ClCompile Include="..\gtk\gtkmm\tooltip.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treedragdest.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treedragsource.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treeiter.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treemodel.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treemodelcolumn.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treemodelfilter.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treemodelsort.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treepath.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treerowreference.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treeselection.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treesortable.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treestore.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treeview.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treeview_private.cc" />
+- <ClCompile Include="..\gtk\gtkmm\treeviewcolumn.cc" />
+- <ClCompile Include="..\gtk\gtkmm\uimanager.cc" />
+- <ClCompile Include="..\gtk\gtkmm\viewport.cc" />
+- <ClCompile Include="..\gtk\gtkmm\volumebutton.cc" />
+- <ClCompile Include="..\gtk\gtkmm\widget.cc" />
+- <ClCompile Include="..\gtk\gtkmm\widgetpath.cc" />
+- <ClCompile Include="..\gtk\gtkmm\window.cc" />
+- <ClCompile Include="..\gtk\gtkmm\windowgroup.cc" />
+- <ClCompile Include="..\gtk\gtkmm\wrap_init.cc" />
+- </ItemGroup>
+- <ItemGroup>
+- <ClInclude Include="..\gtk\gtkmm\aboutdialog.h" />
+- <ClInclude Include="..\gtk\gtkmm\accelgroup.h" />
+- <ClInclude Include="..\gtk\gtkmm\accelkey.h" />
+- <ClInclude Include="..\gtk\gtkmm\accellabel.h" />
+- <ClInclude Include="..\gtk\gtkmm\accelmap.h" />
+- <ClInclude Include="..\gtk\gtkmm\action.h" />
+- <ClInclude Include="..\gtk\gtkmm\actionable.h" />
+- <ClInclude Include="..\gtk\gtkmm\actionbar.h" />
+- <ClInclude Include="..\gtk\gtkmm\actiongroup.h" />
+- <ClInclude Include="..\gtk\gtkmm\activatable.h" />
+- <ClInclude Include="..\gtk\gtkmm\adjustment.h" />
+- <ClInclude Include="..\gtk\gtkmm\alignment.h" />
+- <ClInclude Include="..\gtk\gtkmm\appchooser.h" />
+- <ClInclude Include="..\gtk\gtkmm\appchooserbutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\appchooserdialog.h" />
+- <ClInclude Include="..\gtk\gtkmm\appchooserwidget.h" />
+- <ClInclude Include="..\gtk\gtkmm\application.h" />
+- <ClInclude Include="..\gtk\gtkmm\applicationwindow.h" />
+- <ClInclude Include="..\gtk\gtkmm\arrow.h" />
+- <ClInclude Include="..\gtk\gtkmm\aspectframe.h" />
+- <ClInclude Include="..\gtk\gtkmm\assistant.h" />
+- <ClInclude Include="..\gtk\gtkmm\base.h" />
+- <ClInclude Include="..\gtk\gtkmm\bin.h" />
+- <ClInclude Include="..\gtk\gtkmm\border.h" />
+- <ClInclude Include="..\gtk\gtkmm\box.h" />
+- <ClInclude Include="..\gtk\gtkmm\builder.h" />
+- <ClInclude Include="..\gtk\gtkmm\button.h" />
+- <ClInclude Include="..\gtk\gtkmm\buttonbox.h" />
+- <ClInclude Include="..\gtk\gtkmm\calendar.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellarea.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellareabox.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellareacontext.h" />
+- <ClInclude Include="..\gtk\gtkmm\celleditable.h" />
+- <ClInclude Include="..\gtk\gtkmm\celllayout.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellrenderer.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellrenderer_generation.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellrendereraccel.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellrenderercombo.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellrendererpixbuf.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellrendererprogress.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellrendererspin.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellrendererspinner.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellrenderertext.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellrenderertoggle.h" />
+- <ClInclude Include="..\gtk\gtkmm\cellview.h" />
+- <ClInclude Include="..\gtk\gtkmm\checkbutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\checkmenuitem.h" />
+- <ClInclude Include="..\gtk\gtkmm\childpropertyproxy.h" />
+- <ClInclude Include="..\gtk\gtkmm\childpropertyproxy_base.h" />
+- <ClInclude Include="..\gtk\gtkmm\clipboard.h" />
+- <ClInclude Include="..\gtk\gtkmm\colorbutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\colorchooser.h" />
+- <ClInclude Include="..\gtk\gtkmm\colorchooserdialog.h" />
+- <ClInclude Include="..\gtk\gtkmm\colorselection.h" />
+- <ClInclude Include="..\gtk\gtkmm\combobox.h" />
+- <ClInclude Include="..\gtk\gtkmm\comboboxtext.h" />
+- <ClInclude Include="..\gtk\gtkmm\container.h" />
+- <ClInclude Include="..\gtk\gtkmm\cssprovider.h" />
+- <ClInclude Include="..\gtk\gtkmm\csssection.h" />
+- <ClInclude Include="..\gtk\gtkmm\dialog.h" />
+- <ClInclude Include="..\gtk\gtkmm\drawingarea.h" />
+- <ClInclude Include="..\gtk\gtkmm\editable.h" />
+- <ClInclude Include="..\gtk\gtkmm\entry.h" />
+- <ClInclude Include="..\gtk\gtkmm\entrybuffer.h" />
+- <ClInclude Include="..\gtk\gtkmm\entrycompletion.h" />
+- <ClInclude Include="..\gtk\gtkmm\enums.h" />
+- <ClInclude Include="..\gtk\gtkmm\eventbox.h" />
+- <ClInclude Include="..\gtk\gtkmm\eventcontroller.h" />
+- <ClInclude Include="..\gtk\gtkmm\expander.h" />
+- <ClInclude Include="..\gtk\gtkmm\filechooser.h" />
+- <ClInclude Include="..\gtk\gtkmm\filechooserbutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\filechooserdialog.h" />
+- <ClInclude Include="..\gtk\gtkmm\filechooserwidget.h" />
+- <ClInclude Include="..\gtk\gtkmm\filefilter.h" />
+- <ClInclude Include="..\gtk\gtkmm\fixed.h" />
+- <ClInclude Include="..\gtk\gtkmm\flowbox.h" />
+- <ClInclude Include="..\gtk\gtkmm\flowboxchild.h" />
+- <ClInclude Include="..\gtk\gtkmm\fontbutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\fontchooser.h" />
+- <ClInclude Include="..\gtk\gtkmm\fontchooserdialog.h" />
+- <ClInclude Include="..\gtk\gtkmm\fontchooserwidget.h" />
+- <ClInclude Include="..\gtk\gtkmm\fontselection.h" />
+- <ClInclude Include="..\gtk\gtkmm\frame.h" />
+- <ClInclude Include="..\gtk\gtkmm\gesture.h" />
+- <ClInclude Include="..\gtk\gtkmm\gesturedrag.h" />
+- <ClInclude Include="..\gtk\gtkmm\gesturelongpress.h" />
+- <ClInclude Include="..\gtk\gtkmm\gesturemultipress.h" />
+- <ClInclude Include="..\gtk\gtkmm\gesturepan.h" />
+- <ClInclude Include="..\gtk\gtkmm\gesturerotate.h" />
+- <ClInclude Include="..\gtk\gtkmm\gesturesingle.h" />
+- <ClInclude Include="..\gtk\gtkmm\gestureswipe.h" />
+- <ClInclude Include="..\gtk\gtkmm\gesturezoom.h" />
+- <ClInclude Include="..\gtk\gtkmm\glarea.h" />
+- <ClInclude Include="..\gtk\gtkmm\grid.h" />
+- <ClInclude Include="..\gtk\gtkmm\handlebox.h" />
+- <ClInclude Include="..\gtk\gtkmm\headerbar.h" />
+- <ClInclude Include="..\gtk\gtkmm\hvbox.h" />
+- <ClInclude Include="..\gtk\gtkmm\hvbuttonbox.h" />
+- <ClInclude Include="..\gtk\gtkmm\hvpaned.h" />
+- <ClInclude Include="..\gtk\gtkmm\hvscale.h" />
+- <ClInclude Include="..\gtk\gtkmm\hvscrollbar.h" />
+- <ClInclude Include="..\gtk\gtkmm\hvseparator.h" />
+- <ClInclude Include="..\gtk\gtkmm\iconfactory.h" />
+- <ClInclude Include="..\gtk\gtkmm\iconinfo.h" />
+- <ClInclude Include="..\gtk\gtkmm\iconset.h" />
+- <ClInclude Include="..\gtk\gtkmm\iconsource.h" />
+- <ClInclude Include="..\gtk\gtkmm\icontheme.h" />
+- <ClInclude Include="..\gtk\gtkmm\iconview.h" />
+- <ClInclude Include="..\gtk\gtkmm\image.h" />
+- <ClInclude Include="..\gtk\gtkmm\imagemenuitem.h" />
+- <ClInclude Include="..\gtk\gtkmm\infobar.h" />
+- <ClInclude Include="..\gtk\gtkmm\invisible.h" />
+- <ClInclude Include="..\gtk\gtkmm\label.h" />
+- <ClInclude Include="..\gtk\gtkmm\layout.h" />
+- <ClInclude Include="..\gtk\gtkmm\levelbar.h" />
+- <ClInclude Include="..\gtk\gtkmm\linkbutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\listbox.h" />
+- <ClInclude Include="..\gtk\gtkmm\listboxrow.h" />
+- <ClInclude Include="..\gtk\gtkmm\liststore.h" />
+- <ClInclude Include="..\gtk\gtkmm\listviewtext.h" />
+- <ClInclude Include="..\gtk\gtkmm\lockbutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\main.h" />
+- <ClInclude Include="..\gtk\gtkmm\menu.h" />
+- <ClInclude Include="..\gtk\gtkmm\menubar.h" />
+- <ClInclude Include="..\gtk\gtkmm\menubutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\menuitem.h" />
+- <ClInclude Include="..\gtk\gtkmm\menushell.h" />
+- <ClInclude Include="..\gtk\gtkmm\menutoolbutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\messagedialog.h" />
+- <ClInclude Include="..\gtk\gtkmm\misc.h" />
+- <ClInclude Include="..\gtk\gtkmm\modelbutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\notebook.h" />
+- <ClInclude Include="..\gtk\gtkmm\numerableicon.h" />
+- <ClInclude Include="..\gtk\gtkmm\object.h" />
+- <ClInclude Include="..\gtk\gtkmm\offscreenwindow.h" />
+- <ClInclude Include="..\gtk\gtkmm\orientable.h" />
+- <ClInclude Include="..\gtk\gtkmm\overlay.h" />
+- <ClInclude Include="..\gtk\gtkmm\pagesetup.h" />
+- <ClInclude Include="..\gtk\gtkmm\paned.h" />
+- <ClInclude Include="..\gtk\gtkmm\papersize.h" />
+- <ClInclude Include="..\gtk\gtkmm\placessidebar.h" />
+- <ClInclude Include="..\gtk\gtkmm\popover.h" />
+- <ClInclude Include="..\gtk\gtkmm\popovermenu.h" />
+- <ClInclude Include="..\gtk\gtkmm\printcontext.h" />
+- <ClInclude Include="..\gtk\gtkmm\printoperation.h" />
+- <ClInclude Include="..\gtk\gtkmm\printoperationpreview.h" />
+- <ClInclude Include="..\gtk\gtkmm\printsettings.h" />
+- <ClInclude Include="..\gtk\gtkmm\progressbar.h" />
+- <ClInclude Include="..\gtk\gtkmm\radioaction.h" />
+- <ClInclude Include="..\gtk\gtkmm\radiobutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\radiobuttongroup.h" />
+- <ClInclude Include="..\gtk\gtkmm\radiomenuitem.h" />
+- <ClInclude Include="..\gtk\gtkmm\radiotoolbutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\range.h" />
+- <ClInclude Include="..\gtk\gtkmm\recentaction.h" />
+- <ClInclude Include="..\gtk\gtkmm\recentchooser.h" />
+- <ClInclude Include="..\gtk\gtkmm\recentchooserdialog.h" />
+- <ClInclude Include="..\gtk\gtkmm\recentchoosermenu.h" />
+- <ClInclude Include="..\gtk\gtkmm\recentchooserwidget.h" />
+- <ClInclude Include="..\gtk\gtkmm\recentfilter.h" />
+- <ClInclude Include="..\gtk\gtkmm\recentinfo.h" />
+- <ClInclude Include="..\gtk\gtkmm\recentmanager.h" />
+- <ClInclude Include="..\gtk\gtkmm\requisition.h" />
+- <ClInclude Include="..\gtk\gtkmm\revealer.h" />
+- <ClInclude Include="..\gtk\gtkmm\scale.h" />
+- <ClInclude Include="..\gtk\gtkmm\scalebutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\scrollable.h" />
+- <ClInclude Include="..\gtk\gtkmm\scrollbar.h" />
+- <ClInclude Include="..\gtk\gtkmm\scrolledwindow.h" />
+- <ClInclude Include="..\gtk\gtkmm\searchbar.h" />
+- <ClInclude Include="..\gtk\gtkmm\searchentry.h" />
+- <ClInclude Include="..\gtk\gtkmm\selectiondata.h" />
+- <ClInclude Include="..\gtk\gtkmm\selectiondata_private.h" />
+- <ClInclude Include="..\gtk\gtkmm\separator.h" />
+- <ClInclude Include="..\gtk\gtkmm\separatormenuitem.h" />
+- <ClInclude Include="..\gtk\gtkmm\separatortoolitem.h" />
+- <ClInclude Include="..\gtk\gtkmm\settings.h" />
+- <ClInclude Include="..\gtk\gtkmm\shortcutlabel.h" />
+- <ClInclude Include="..\gtk\gtkmm\shortcutsgroup.h" />
+- <ClInclude Include="..\gtk\gtkmm\shortcutssection.h" />
+- <ClInclude Include="..\gtk\gtkmm\shortcutsshortcut.h" />
+- <ClInclude Include="..\gtk\gtkmm\shortcutswindow.h" />
+- <ClInclude Include="..\gtk\gtkmm\sizegroup.h" />
+- <ClInclude Include="..\gtk\gtkmm\spinbutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\spinner.h" />
+- <ClInclude Include="..\gtk\gtkmm\stack.h" />
+- <ClInclude Include="..\gtk\gtkmm\stacksidebar.h" />
+- <ClInclude Include="..\gtk\gtkmm\stackswitcher.h" />
+- <ClInclude Include="..\gtk\gtkmm\statusbar.h" />
+- <ClInclude Include="..\gtk\gtkmm\statusicon.h" />
+- <ClInclude Include="..\gtk\gtkmm\stock.h" />
+- <ClInclude Include="..\gtk\gtkmm\stockid.h" />
+- <ClInclude Include="..\gtk\gtkmm\stockitem.h" />
+- <ClInclude Include="..\gtk\gtkmm\stylecontext.h" />
+- <ClInclude Include="..\gtk\gtkmm\styleprovider.h" />
+- <ClInclude Include="..\gtk\gtkmm\switch.h" />
+- <ClInclude Include="..\gtk\gtkmm\table.h" />
+- <ClInclude Include="..\gtk\gtkmm\targetentry.h" />
+- <ClInclude Include="..\gtk\gtkmm\targetlist.h" />
+- <ClInclude Include="..\gtk\gtkmm\tearoffmenuitem.h" />
+- <ClInclude Include="..\gtk\gtkmm\textattributes.h" />
+- <ClInclude Include="..\gtk\gtkmm\textbuffer.h" />
+- <ClInclude Include="..\gtk\gtkmm\textchildanchor.h" />
+- <ClInclude Include="..\gtk\gtkmm\textiter.h" />
+- <ClInclude Include="..\gtk\gtkmm\textmark.h" />
+- <ClInclude Include="..\gtk\gtkmm\texttag.h" />
+- <ClInclude Include="..\gtk\gtkmm\texttagtable.h" />
+- <ClInclude Include="..\gtk\gtkmm\textview.h" />
+- <ClInclude Include="..\gtk\gtkmm\toggleaction.h" />
+- <ClInclude Include="..\gtk\gtkmm\togglebutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\toggletoolbutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\toolbar.h" />
+- <ClInclude Include="..\gtk\gtkmm\toolbutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\toolitem.h" />
+- <ClInclude Include="..\gtk\gtkmm\toolitemgroup.h" />
+- <ClInclude Include="..\gtk\gtkmm\toolpalette.h" />
+- <ClInclude Include="..\gtk\gtkmm\toolshell.h" />
+- <ClInclude Include="..\gtk\gtkmm\tooltip.h" />
+- <ClInclude Include="..\gtk\gtkmm\treedragdest.h" />
+- <ClInclude Include="..\gtk\gtkmm\treedragsource.h" />
+- <ClInclude Include="..\gtk\gtkmm\treeiter.h" />
+- <ClInclude Include="..\gtk\gtkmm\treemodel.h" />
+- <ClInclude Include="..\gtk\gtkmm\treemodelcolumn.h" />
+- <ClInclude Include="..\gtk\gtkmm\treemodelfilter.h" />
+- <ClInclude Include="..\gtk\gtkmm\treemodelsort.h" />
+- <ClInclude Include="..\gtk\gtkmm\treepath.h" />
+- <ClInclude Include="..\gtk\gtkmm\treerowreference.h" />
+- <ClInclude Include="..\gtk\gtkmm\treeselection.h" />
+- <ClInclude Include="..\gtk\gtkmm\treesortable.h" />
+- <ClInclude Include="..\gtk\gtkmm\treestore.h" />
+- <ClInclude Include="..\gtk\gtkmm\treeview.h" />
+- <ClInclude Include="..\gtk\gtkmm\treeview_private.h" />
+- <ClInclude Include="..\gtk\gtkmm\treeviewcolumn.h" />
+- <ClInclude Include="..\gtk\gtkmm\uimanager.h" />
+- <ClInclude Include="..\gtk\gtkmm\viewport.h" />
+- <ClInclude Include="..\gtk\gtkmm\volumebutton.h" />
+- <ClInclude Include="..\gtk\gtkmm\widget.h" />
+- <ClInclude Include="..\gtk\gtkmm\widgetpath.h" />
+- <ClInclude Include="..\gtk\gtkmm\window.h" />
+- <ClInclude Include="..\gtk\gtkmm\windowgroup.h" />
+- <ClInclude Include="..\gtk\gtkmm\wrap_init.h" />
+- </ItemGroup>
+- <ItemGroup>
+- <ResourceCompile Include=".\gtkmm\gtkmm.rc" />
+- </ItemGroup>
+- <ItemGroup>
+- <ProjectReference Include="gdkmm.vcxproj">
+- <Project>{976c8f9c-1a1d-4e23-b79e-ec9091bbea0e}</Project>
+- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+- </ProjectReference>
+- <ProjectReference Include="gendef.vcxproj">
+- <Project>{07324745-c9be-4d65-b08a-9c88188c0c28}</Project>
+- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+- </ProjectReference>
+- </ItemGroup>
+- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+- <ImportGroup Label="ExtensionTargets">
+- </ImportGroup>
+-</Project>
+\ No newline at end of file
++ <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile>
++ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
++ <GenerateDebugInformation>true</GenerateDebugInformation>
++ <OptimizeReferences>true</OptimizeReferences>
++ <RandomizedBaseAddress>false</RandomizedBaseAddress>
++ <DataExecutionPrevention>
++ </DataExecutionPrevention>
++ <TargetMachine>MachineX64</TargetMachine>
++ </Link>
++ </ItemDefinitionGroup>
++ <ItemGroup>
++ <ClCompile Include="..\gtk\gtkmm\aboutdialog.cc" />
++ <ClCompile Include="..\gtk\gtkmm\accelgroup.cc" />
++ <ClCompile Include="..\gtk\gtkmm\accelkey.cc" />
++ <ClCompile Include="..\gtk\gtkmm\accellabel.cc" />
++ <ClCompile Include="..\gtk\gtkmm\accelmap.cc" />
++ <ClCompile Include="..\gtk\gtkmm\action.cc" />
++ <ClCompile Include="..\gtk\gtkmm\actionable.cc" />
++ <ClCompile Include="..\gtk\gtkmm\actionbar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\actiongroup.cc" />
++ <ClCompile Include="..\gtk\gtkmm\activatable.cc" />
++ <ClCompile Include="..\gtk\gtkmm\adjustment.cc" />
++ <ClCompile Include="..\gtk\gtkmm\alignment.cc" />
++ <ClCompile Include="..\gtk\gtkmm\appchooser.cc" />
++ <ClCompile Include="..\gtk\gtkmm\appchooserbutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\appchooserdialog.cc" />
++ <ClCompile Include="..\gtk\gtkmm\appchooserwidget.cc" />
++ <ClCompile Include="..\gtk\gtkmm\application.cc" />
++ <ClCompile Include="..\gtk\gtkmm\applicationwindow.cc" />
++ <ClCompile Include="..\gtk\gtkmm\arrow.cc" />
++ <ClCompile Include="..\gtk\gtkmm\aspectframe.cc" />
++ <ClCompile Include="..\gtk\gtkmm\assistant.cc" />
++ <ClCompile Include="..\gtk\gtkmm\bin.cc" />
++ <ClCompile Include="..\gtk\gtkmm\border.cc" />
++ <ClCompile Include="..\gtk\gtkmm\box.cc" />
++ <ClCompile Include="..\gtk\gtkmm\buildable.cc" />
++ <ClCompile Include="..\gtk\gtkmm\builder.cc" />
++ <ClCompile Include="..\gtk\gtkmm\button.cc" />
++ <ClCompile Include="..\gtk\gtkmm\buttonbox.cc" />
++ <ClCompile Include="..\gtk\gtkmm\calendar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellarea.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellareabox.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellareacontext.cc" />
++ <ClCompile Include="..\gtk\gtkmm\celleditable.cc" />
++ <ClCompile Include="..\gtk\gtkmm\celllayout.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellrenderer.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellrenderer_generation.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellrendereraccel.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellrenderercombo.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellrendererpixbuf.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellrendererprogress.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellrendererspin.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellrendererspinner.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellrenderertext.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellrenderertoggle.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cellview.cc" />
++ <ClCompile Include="..\gtk\gtkmm\checkbutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\checkmenuitem.cc" />
++ <ClCompile Include="..\gtk\gtkmm\childpropertyproxy.cc" />
++ <ClCompile Include="..\gtk\gtkmm\childpropertyproxy_base.cc" />
++ <ClCompile Include="..\gtk\gtkmm\clipboard.cc" />
++ <ClCompile Include="..\gtk\gtkmm\colorbutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\colorchooser.cc" />
++ <ClCompile Include="..\gtk\gtkmm\colorchooserdialog.cc" />
++ <ClCompile Include="..\gtk\gtkmm\colorselection.cc" />
++ <ClCompile Include="..\gtk\gtkmm\combobox.cc" />
++ <ClCompile Include="..\gtk\gtkmm\comboboxtext.cc" />
++ <ClCompile Include="..\gtk\gtkmm\container.cc" />
++ <ClCompile Include="..\gtk\gtkmm\cssprovider.cc" />
++ <ClCompile Include="..\gtk\gtkmm\csssection.cc" />
++ <ClCompile Include="..\gtk\gtkmm\dialog.cc" />
++ <ClCompile Include="..\gtk\gtkmm\drawingarea.cc" />
++ <ClCompile Include="..\gtk\gtkmm\editable.cc" />
++ <ClCompile Include="..\gtk\gtkmm\entry.cc" />
++ <ClCompile Include="..\gtk\gtkmm\entrybuffer.cc" />
++ <ClCompile Include="..\gtk\gtkmm\entrycompletion.cc" />
++ <ClCompile Include="..\gtk\gtkmm\enums.cc" />
++ <ClCompile Include="..\gtk\gtkmm\eventbox.cc" />
++ <ClCompile Include="..\gtk\gtkmm\eventcontroller.cc" />
++ <ClCompile Include="..\gtk\gtkmm\expander.cc" />
++ <ClCompile Include="..\gtk\gtkmm\filechooser.cc" />
++ <ClCompile Include="..\gtk\gtkmm\filechooserbutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\filechooserdialog.cc" />
++ <ClCompile Include="..\gtk\gtkmm\filechooserwidget.cc" />
++ <ClCompile Include="..\gtk\gtkmm\filefilter.cc" />
++ <ClCompile Include="..\gtk\gtkmm\fixed.cc" />
++ <ClCompile Include="..\gtk\gtkmm\flowbox.cc" />
++ <ClCompile Include="..\gtk\gtkmm\flowboxchild.cc" />
++ <ClCompile Include="..\gtk\gtkmm\fontbutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\fontchooser.cc" />
++ <ClCompile Include="..\gtk\gtkmm\fontchooserdialog.cc" />
++ <ClCompile Include="..\gtk\gtkmm\fontchooserwidget.cc" />
++ <ClCompile Include="..\gtk\gtkmm\fontselection.cc" />
++ <ClCompile Include="..\gtk\gtkmm\frame.cc" />
++ <ClCompile Include="..\gtk\gtkmm\gesture.cc" />
++ <ClCompile Include="..\gtk\gtkmm\gesturedrag.cc" />
++ <ClCompile Include="..\gtk\gtkmm\gesturelongpress.cc" />
++ <ClCompile Include="..\gtk\gtkmm\gesturemultipress.cc" />
++ <ClCompile Include="..\gtk\gtkmm\gesturepan.cc" />
++ <ClCompile Include="..\gtk\gtkmm\gesturerotate.cc" />
++ <ClCompile Include="..\gtk\gtkmm\gesturesingle.cc" />
++ <ClCompile Include="..\gtk\gtkmm\gestureswipe.cc" />
++ <ClCompile Include="..\gtk\gtkmm\gesturezoom.cc" />
++ <ClCompile Include="..\gtk\gtkmm\glarea.cc" />
++ <ClCompile Include="..\gtk\gtkmm\grid.cc" />
++ <ClCompile Include="..\gtk\gtkmm\handlebox.cc" />
++ <ClCompile Include="..\gtk\gtkmm\headerbar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\hvbox.cc" />
++ <ClCompile Include="..\gtk\gtkmm\hvbuttonbox.cc" />
++ <ClCompile Include="..\gtk\gtkmm\hvpaned.cc" />
++ <ClCompile Include="..\gtk\gtkmm\hvscale.cc" />
++ <ClCompile Include="..\gtk\gtkmm\hvscrollbar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\hvseparator.cc" />
++ <ClCompile Include="..\gtk\gtkmm\iconfactory.cc" />
++ <ClCompile Include="..\gtk\gtkmm\iconinfo.cc" />
++ <ClCompile Include="..\gtk\gtkmm\iconset.cc" />
++ <ClCompile Include="..\gtk\gtkmm\iconsource.cc" />
++ <ClCompile Include="..\gtk\gtkmm\icontheme.cc" />
++ <ClCompile Include="..\gtk\gtkmm\iconview.cc" />
++ <ClCompile Include="..\gtk\gtkmm\image.cc" />
++ <ClCompile Include="..\gtk\gtkmm\imagemenuitem.cc" />
++ <ClCompile Include="..\gtk\gtkmm\infobar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\invisible.cc" />
++ <ClCompile Include="..\gtk\gtkmm\label.cc" />
++ <ClCompile Include="..\gtk\gtkmm\layout.cc" />
++ <ClCompile Include="..\gtk\gtkmm\levelbar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\linkbutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\listbox.cc" />
++ <ClCompile Include="..\gtk\gtkmm\listboxrow.cc" />
++ <ClCompile Include="..\gtk\gtkmm\liststore.cc" />
++ <ClCompile Include="..\gtk\gtkmm\listviewtext.cc" />
++ <ClCompile Include="..\gtk\gtkmm\lockbutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\main.cc" />
++ <ClCompile Include="..\gtk\gtkmm\menu.cc" />
++ <ClCompile Include="..\gtk\gtkmm\menubar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\menubutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\menuitem.cc" />
++ <ClCompile Include="..\gtk\gtkmm\menushell.cc" />
++ <ClCompile Include="..\gtk\gtkmm\menutoolbutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\messagedialog.cc" />
++ <ClCompile Include="..\gtk\gtkmm\misc.cc" />
++ <ClCompile Include="..\gtk\gtkmm\modelbutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\notebook.cc" />
++ <ClCompile Include="..\gtk\gtkmm\numerableicon.cc" />
++ <ClCompile Include="..\gtk\gtkmm\object.cc" />
++ <ClCompile Include="..\gtk\gtkmm\offscreenwindow.cc" />
++ <ClCompile Include="..\gtk\gtkmm\orientable.cc" />
++ <ClCompile Include="..\gtk\gtkmm\overlay.cc" />
++ <ClCompile Include="..\gtk\gtkmm\pagesetup.cc" />
++ <ClCompile Include="..\gtk\gtkmm\paned.cc" />
++ <ClCompile Include="..\gtk\gtkmm\papersize.cc" />
++ <ClCompile Include="..\gtk\gtkmm\placessidebar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\popover.cc" />
++ <ClCompile Include="..\gtk\gtkmm\popovermenu.cc" />
++ <ClCompile Include="..\gtk\gtkmm\printcontext.cc" />
++ <ClCompile Include="..\gtk\gtkmm\printoperation.cc" />
++ <ClCompile Include="..\gtk\gtkmm\printoperationpreview.cc" />
++ <ClCompile Include="..\gtk\gtkmm\printsettings.cc" />
++ <ClCompile Include="..\gtk\gtkmm\progressbar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\radioaction.cc" />
++ <ClCompile Include="..\gtk\gtkmm\radiobutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\radiobuttongroup.cc" />
++ <ClCompile Include="..\gtk\gtkmm\radiomenuitem.cc" />
++ <ClCompile Include="..\gtk\gtkmm\radiotoolbutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\range.cc" />
++ <ClCompile Include="..\gtk\gtkmm\recentaction.cc" />
++ <ClCompile Include="..\gtk\gtkmm\recentchooser.cc" />
++ <ClCompile Include="..\gtk\gtkmm\recentchooserdialog.cc" />
++ <ClCompile Include="..\gtk\gtkmm\recentchoosermenu.cc" />
++ <ClCompile Include="..\gtk\gtkmm\recentchooserwidget.cc" />
++ <ClCompile Include="..\gtk\gtkmm\recentfilter.cc" />
++ <ClCompile Include="..\gtk\gtkmm\recentinfo.cc" />
++ <ClCompile Include="..\gtk\gtkmm\recentmanager.cc" />
++ <ClCompile Include="..\gtk\gtkmm\requisition.cc" />
++ <ClCompile Include="..\gtk\gtkmm\revealer.cc" />
++ <ClCompile Include="..\gtk\gtkmm\scale.cc" />
++ <ClCompile Include="..\gtk\gtkmm\scalebutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\scrollable.cc" />
++ <ClCompile Include="..\gtk\gtkmm\scrollbar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\scrolledwindow.cc" />
++ <ClCompile Include="..\gtk\gtkmm\searchbar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\searchentry.cc" />
++ <ClCompile Include="..\gtk\gtkmm\selectiondata.cc" />
++ <ClCompile Include="..\gtk\gtkmm\selectiondata_private.cc" />
++ <ClCompile Include="..\gtk\gtkmm\separator.cc" />
++ <ClCompile Include="..\gtk\gtkmm\separatormenuitem.cc" />
++ <ClCompile Include="..\gtk\gtkmm\separatortoolitem.cc" />
++ <ClCompile Include="..\gtk\gtkmm\settings.cc" />
++ <ClCompile Include="..\gtk\gtkmm\shortcutlabel.cc" />
++ <ClCompile Include="..\gtk\gtkmm\shortcutsgroup.cc" />
++ <ClCompile Include="..\gtk\gtkmm\shortcutssection.cc" />
++ <ClCompile Include="..\gtk\gtkmm\shortcutsshortcut.cc" />
++ <ClCompile Include="..\gtk\gtkmm\shortcutswindow.cc" />
++ <ClCompile Include="..\gtk\gtkmm\sizegroup.cc" />
++ <ClCompile Include="..\gtk\gtkmm\spinbutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\spinner.cc" />
++ <ClCompile Include="..\gtk\gtkmm\stack.cc" />
++ <ClCompile Include="..\gtk\gtkmm\stacksidebar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\stackswitcher.cc" />
++ <ClCompile Include="..\gtk\gtkmm\statusbar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\statusicon.cc" />
++ <ClCompile Include="..\gtk\gtkmm\stock.cc" />
++ <ClCompile Include="..\gtk\gtkmm\stockid.cc" />
++ <ClCompile Include="..\gtk\gtkmm\stockitem.cc" />
++ <ClCompile Include="..\gtk\gtkmm\stylecontext.cc" />
++ <ClCompile Include="..\gtk\gtkmm\styleprovider.cc" />
++ <ClCompile Include="..\gtk\gtkmm\switch.cc" />
++ <ClCompile Include="..\gtk\gtkmm\table.cc" />
++ <ClCompile Include="..\gtk\gtkmm\targetentry.cc" />
++ <ClCompile Include="..\gtk\gtkmm\targetlist.cc" />
++ <ClCompile Include="..\gtk\gtkmm\tearoffmenuitem.cc" />
++ <ClCompile Include="..\gtk\gtkmm\textattributes.cc" />
++ <ClCompile Include="..\gtk\gtkmm\textbuffer.cc" />
++ <ClCompile Include="..\gtk\gtkmm\textchildanchor.cc" />
++ <ClCompile Include="..\gtk\gtkmm\textiter.cc" />
++ <ClCompile Include="..\gtk\gtkmm\textmark.cc" />
++ <ClCompile Include="..\gtk\gtkmm\texttag.cc" />
++ <ClCompile Include="..\gtk\gtkmm\texttagtable.cc" />
++ <ClCompile Include="..\gtk\gtkmm\textview.cc" />
++ <ClCompile Include="..\gtk\gtkmm\toggleaction.cc" />
++ <ClCompile Include="..\gtk\gtkmm\togglebutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\toggletoolbutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\toolbar.cc" />
++ <ClCompile Include="..\gtk\gtkmm\toolbutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\toolitem.cc" />
++ <ClCompile Include="..\gtk\gtkmm\toolitemgroup.cc" />
++ <ClCompile Include="..\gtk\gtkmm\toolpalette.cc" />
++ <ClCompile Include="..\gtk\gtkmm\toolshell.cc" />
++ <ClCompile Include="..\gtk\gtkmm\tooltip.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treedragdest.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treedragsource.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treeiter.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treemodel.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treemodelcolumn.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treemodelfilter.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treemodelsort.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treepath.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treerowreference.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treeselection.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treesortable.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treestore.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treeview.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treeview_private.cc" />
++ <ClCompile Include="..\gtk\gtkmm\treeviewcolumn.cc" />
++ <ClCompile Include="..\gtk\gtkmm\uimanager.cc" />
++ <ClCompile Include="..\gtk\gtkmm\viewport.cc" />
++ <ClCompile Include="..\gtk\gtkmm\volumebutton.cc" />
++ <ClCompile Include="..\gtk\gtkmm\widget.cc" />
++ <ClCompile Include="..\gtk\gtkmm\widgetpath.cc" />
++ <ClCompile Include="..\gtk\gtkmm\window.cc" />
++ <ClCompile Include="..\gtk\gtkmm\windowgroup.cc" />
++ <ClCompile Include="..\gtk\gtkmm\wrap_init.cc" />
++ </ItemGroup>
++ <ItemGroup>
++ <ClInclude Include="..\gtk\gtkmm\aboutdialog.h" />
++ <ClInclude Include="..\gtk\gtkmm\accelgroup.h" />
++ <ClInclude Include="..\gtk\gtkmm\accelkey.h" />
++ <ClInclude Include="..\gtk\gtkmm\accellabel.h" />
++ <ClInclude Include="..\gtk\gtkmm\accelmap.h" />
++ <ClInclude Include="..\gtk\gtkmm\action.h" />
++ <ClInclude Include="..\gtk\gtkmm\actionable.h" />
++ <ClInclude Include="..\gtk\gtkmm\actionbar.h" />
++ <ClInclude Include="..\gtk\gtkmm\actiongroup.h" />
++ <ClInclude Include="..\gtk\gtkmm\activatable.h" />
++ <ClInclude Include="..\gtk\gtkmm\adjustment.h" />
++ <ClInclude Include="..\gtk\gtkmm\alignment.h" />
++ <ClInclude Include="..\gtk\gtkmm\appchooser.h" />
++ <ClInclude Include="..\gtk\gtkmm\appchooserbutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\appchooserdialog.h" />
++ <ClInclude Include="..\gtk\gtkmm\appchooserwidget.h" />
++ <ClInclude Include="..\gtk\gtkmm\application.h" />
++ <ClInclude Include="..\gtk\gtkmm\applicationwindow.h" />
++ <ClInclude Include="..\gtk\gtkmm\arrow.h" />
++ <ClInclude Include="..\gtk\gtkmm\aspectframe.h" />
++ <ClInclude Include="..\gtk\gtkmm\assistant.h" />
++ <ClInclude Include="..\gtk\gtkmm\base.h" />
++ <ClInclude Include="..\gtk\gtkmm\bin.h" />
++ <ClInclude Include="..\gtk\gtkmm\border.h" />
++ <ClInclude Include="..\gtk\gtkmm\box.h" />
++ <ClInclude Include="..\gtk\gtkmm\builder.h" />
++ <ClInclude Include="..\gtk\gtkmm\button.h" />
++ <ClInclude Include="..\gtk\gtkmm\buttonbox.h" />
++ <ClInclude Include="..\gtk\gtkmm\calendar.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellarea.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellareabox.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellareacontext.h" />
++ <ClInclude Include="..\gtk\gtkmm\celleditable.h" />
++ <ClInclude Include="..\gtk\gtkmm\celllayout.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellrenderer.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellrenderer_generation.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellrendereraccel.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellrenderercombo.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellrendererpixbuf.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellrendererprogress.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellrendererspin.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellrendererspinner.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellrenderertext.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellrenderertoggle.h" />
++ <ClInclude Include="..\gtk\gtkmm\cellview.h" />
++ <ClInclude Include="..\gtk\gtkmm\checkbutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\checkmenuitem.h" />
++ <ClInclude Include="..\gtk\gtkmm\childpropertyproxy.h" />
++ <ClInclude Include="..\gtk\gtkmm\childpropertyproxy_base.h" />
++ <ClInclude Include="..\gtk\gtkmm\clipboard.h" />
++ <ClInclude Include="..\gtk\gtkmm\colorbutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\colorchooser.h" />
++ <ClInclude Include="..\gtk\gtkmm\colorchooserdialog.h" />
++ <ClInclude Include="..\gtk\gtkmm\colorselection.h" />
++ <ClInclude Include="..\gtk\gtkmm\combobox.h" />
++ <ClInclude Include="..\gtk\gtkmm\comboboxtext.h" />
++ <ClInclude Include="..\gtk\gtkmm\container.h" />
++ <ClInclude Include="..\gtk\gtkmm\cssprovider.h" />
++ <ClInclude Include="..\gtk\gtkmm\csssection.h" />
++ <ClInclude Include="..\gtk\gtkmm\dialog.h" />
++ <ClInclude Include="..\gtk\gtkmm\drawingarea.h" />
++ <ClInclude Include="..\gtk\gtkmm\editable.h" />
++ <ClInclude Include="..\gtk\gtkmm\entry.h" />
++ <ClInclude Include="..\gtk\gtkmm\entrybuffer.h" />
++ <ClInclude Include="..\gtk\gtkmm\entrycompletion.h" />
++ <ClInclude Include="..\gtk\gtkmm\enums.h" />
++ <ClInclude Include="..\gtk\gtkmm\eventbox.h" />
++ <ClInclude Include="..\gtk\gtkmm\eventcontroller.h" />
++ <ClInclude Include="..\gtk\gtkmm\expander.h" />
++ <ClInclude Include="..\gtk\gtkmm\filechooser.h" />
++ <ClInclude Include="..\gtk\gtkmm\filechooserbutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\filechooserdialog.h" />
++ <ClInclude Include="..\gtk\gtkmm\filechooserwidget.h" />
++ <ClInclude Include="..\gtk\gtkmm\filefilter.h" />
++ <ClInclude Include="..\gtk\gtkmm\fixed.h" />
++ <ClInclude Include="..\gtk\gtkmm\flowbox.h" />
++ <ClInclude Include="..\gtk\gtkmm\flowboxchild.h" />
++ <ClInclude Include="..\gtk\gtkmm\fontbutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\fontchooser.h" />
++ <ClInclude Include="..\gtk\gtkmm\fontchooserdialog.h" />
++ <ClInclude Include="..\gtk\gtkmm\fontchooserwidget.h" />
++ <ClInclude Include="..\gtk\gtkmm\fontselection.h" />
++ <ClInclude Include="..\gtk\gtkmm\frame.h" />
++ <ClInclude Include="..\gtk\gtkmm\gesture.h" />
++ <ClInclude Include="..\gtk\gtkmm\gesturedrag.h" />
++ <ClInclude Include="..\gtk\gtkmm\gesturelongpress.h" />
++ <ClInclude Include="..\gtk\gtkmm\gesturemultipress.h" />
++ <ClInclude Include="..\gtk\gtkmm\gesturepan.h" />
++ <ClInclude Include="..\gtk\gtkmm\gesturerotate.h" />
++ <ClInclude Include="..\gtk\gtkmm\gesturesingle.h" />
++ <ClInclude Include="..\gtk\gtkmm\gestureswipe.h" />
++ <ClInclude Include="..\gtk\gtkmm\gesturezoom.h" />
++ <ClInclude Include="..\gtk\gtkmm\glarea.h" />
++ <ClInclude Include="..\gtk\gtkmm\grid.h" />
++ <ClInclude Include="..\gtk\gtkmm\handlebox.h" />
++ <ClInclude Include="..\gtk\gtkmm\headerbar.h" />
++ <ClInclude Include="..\gtk\gtkmm\hvbox.h" />
++ <ClInclude Include="..\gtk\gtkmm\hvbuttonbox.h" />
++ <ClInclude Include="..\gtk\gtkmm\hvpaned.h" />
++ <ClInclude Include="..\gtk\gtkmm\hvscale.h" />
++ <ClInclude Include="..\gtk\gtkmm\hvscrollbar.h" />
++ <ClInclude Include="..\gtk\gtkmm\hvseparator.h" />
++ <ClInclude Include="..\gtk\gtkmm\iconfactory.h" />
++ <ClInclude Include="..\gtk\gtkmm\iconinfo.h" />
++ <ClInclude Include="..\gtk\gtkmm\iconset.h" />
++ <ClInclude Include="..\gtk\gtkmm\iconsource.h" />
++ <ClInclude Include="..\gtk\gtkmm\icontheme.h" />
++ <ClInclude Include="..\gtk\gtkmm\iconview.h" />
++ <ClInclude Include="..\gtk\gtkmm\image.h" />
++ <ClInclude Include="..\gtk\gtkmm\imagemenuitem.h" />
++ <ClInclude Include="..\gtk\gtkmm\infobar.h" />
++ <ClInclude Include="..\gtk\gtkmm\invisible.h" />
++ <ClInclude Include="..\gtk\gtkmm\label.h" />
++ <ClInclude Include="..\gtk\gtkmm\layout.h" />
++ <ClInclude Include="..\gtk\gtkmm\levelbar.h" />
++ <ClInclude Include="..\gtk\gtkmm\linkbutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\listbox.h" />
++ <ClInclude Include="..\gtk\gtkmm\listboxrow.h" />
++ <ClInclude Include="..\gtk\gtkmm\liststore.h" />
++ <ClInclude Include="..\gtk\gtkmm\listviewtext.h" />
++ <ClInclude Include="..\gtk\gtkmm\lockbutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\main.h" />
++ <ClInclude Include="..\gtk\gtkmm\menu.h" />
++ <ClInclude Include="..\gtk\gtkmm\menubar.h" />
++ <ClInclude Include="..\gtk\gtkmm\menubutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\menuitem.h" />
++ <ClInclude Include="..\gtk\gtkmm\menushell.h" />
++ <ClInclude Include="..\gtk\gtkmm\menutoolbutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\messagedialog.h" />
++ <ClInclude Include="..\gtk\gtkmm\misc.h" />
++ <ClInclude Include="..\gtk\gtkmm\modelbutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\notebook.h" />
++ <ClInclude Include="..\gtk\gtkmm\numerableicon.h" />
++ <ClInclude Include="..\gtk\gtkmm\object.h" />
++ <ClInclude Include="..\gtk\gtkmm\offscreenwindow.h" />
++ <ClInclude Include="..\gtk\gtkmm\orientable.h" />
++ <ClInclude Include="..\gtk\gtkmm\overlay.h" />
++ <ClInclude Include="..\gtk\gtkmm\pagesetup.h" />
++ <ClInclude Include="..\gtk\gtkmm\paned.h" />
++ <ClInclude Include="..\gtk\gtkmm\papersize.h" />
++ <ClInclude Include="..\gtk\gtkmm\placessidebar.h" />
++ <ClInclude Include="..\gtk\gtkmm\popover.h" />
++ <ClInclude Include="..\gtk\gtkmm\popovermenu.h" />
++ <ClInclude Include="..\gtk\gtkmm\printcontext.h" />
++ <ClInclude Include="..\gtk\gtkmm\printoperation.h" />
++ <ClInclude Include="..\gtk\gtkmm\printoperationpreview.h" />
++ <ClInclude Include="..\gtk\gtkmm\printsettings.h" />
++ <ClInclude Include="..\gtk\gtkmm\progressbar.h" />
++ <ClInclude Include="..\gtk\gtkmm\radioaction.h" />
++ <ClInclude Include="..\gtk\gtkmm\radiobutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\radiobuttongroup.h" />
++ <ClInclude Include="..\gtk\gtkmm\radiomenuitem.h" />
++ <ClInclude Include="..\gtk\gtkmm\radiotoolbutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\range.h" />
++ <ClInclude Include="..\gtk\gtkmm\recentaction.h" />
++ <ClInclude Include="..\gtk\gtkmm\recentchooser.h" />
++ <ClInclude Include="..\gtk\gtkmm\recentchooserdialog.h" />
++ <ClInclude Include="..\gtk\gtkmm\recentchoosermenu.h" />
++ <ClInclude Include="..\gtk\gtkmm\recentchooserwidget.h" />
++ <ClInclude Include="..\gtk\gtkmm\recentfilter.h" />
++ <ClInclude Include="..\gtk\gtkmm\recentinfo.h" />
++ <ClInclude Include="..\gtk\gtkmm\recentmanager.h" />
++ <ClInclude Include="..\gtk\gtkmm\requisition.h" />
++ <ClInclude Include="..\gtk\gtkmm\revealer.h" />
++ <ClInclude Include="..\gtk\gtkmm\scale.h" />
++ <ClInclude Include="..\gtk\gtkmm\scalebutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\scrollable.h" />
++ <ClInclude Include="..\gtk\gtkmm\scrollbar.h" />
++ <ClInclude Include="..\gtk\gtkmm\scrolledwindow.h" />
++ <ClInclude Include="..\gtk\gtkmm\searchbar.h" />
++ <ClInclude Include="..\gtk\gtkmm\searchentry.h" />
++ <ClInclude Include="..\gtk\gtkmm\selectiondata.h" />
++ <ClInclude Include="..\gtk\gtkmm\selectiondata_private.h" />
++ <ClInclude Include="..\gtk\gtkmm\separator.h" />
++ <ClInclude Include="..\gtk\gtkmm\separatormenuitem.h" />
++ <ClInclude Include="..\gtk\gtkmm\separatortoolitem.h" />
++ <ClInclude Include="..\gtk\gtkmm\settings.h" />
++ <ClInclude Include="..\gtk\gtkmm\shortcutlabel.h" />
++ <ClInclude Include="..\gtk\gtkmm\shortcutsgroup.h" />
++ <ClInclude Include="..\gtk\gtkmm\shortcutssection.h" />
++ <ClInclude Include="..\gtk\gtkmm\shortcutsshortcut.h" />
++ <ClInclude Include="..\gtk\gtkmm\shortcutswindow.h" />
++ <ClInclude Include="..\gtk\gtkmm\sizegroup.h" />
++ <ClInclude Include="..\gtk\gtkmm\spinbutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\spinner.h" />
++ <ClInclude Include="..\gtk\gtkmm\stack.h" />
++ <ClInclude Include="..\gtk\gtkmm\stacksidebar.h" />
++ <ClInclude Include="..\gtk\gtkmm\stackswitcher.h" />
++ <ClInclude Include="..\gtk\gtkmm\statusbar.h" />
++ <ClInclude Include="..\gtk\gtkmm\statusicon.h" />
++ <ClInclude Include="..\gtk\gtkmm\stock.h" />
++ <ClInclude Include="..\gtk\gtkmm\stockid.h" />
++ <ClInclude Include="..\gtk\gtkmm\stockitem.h" />
++ <ClInclude Include="..\gtk\gtkmm\stylecontext.h" />
++ <ClInclude Include="..\gtk\gtkmm\styleprovider.h" />
++ <ClInclude Include="..\gtk\gtkmm\switch.h" />
++ <ClInclude Include="..\gtk\gtkmm\table.h" />
++ <ClInclude Include="..\gtk\gtkmm\targetentry.h" />
++ <ClInclude Include="..\gtk\gtkmm\targetlist.h" />
++ <ClInclude Include="..\gtk\gtkmm\tearoffmenuitem.h" />
++ <ClInclude Include="..\gtk\gtkmm\textattributes.h" />
++ <ClInclude Include="..\gtk\gtkmm\textbuffer.h" />
++ <ClInclude Include="..\gtk\gtkmm\textchildanchor.h" />
++ <ClInclude Include="..\gtk\gtkmm\textiter.h" />
++ <ClInclude Include="..\gtk\gtkmm\textmark.h" />
++ <ClInclude Include="..\gtk\gtkmm\texttag.h" />
++ <ClInclude Include="..\gtk\gtkmm\texttagtable.h" />
++ <ClInclude Include="..\gtk\gtkmm\textview.h" />
++ <ClInclude Include="..\gtk\gtkmm\toggleaction.h" />
++ <ClInclude Include="..\gtk\gtkmm\togglebutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\toggletoolbutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\toolbar.h" />
++ <ClInclude Include="..\gtk\gtkmm\toolbutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\toolitem.h" />
++ <ClInclude Include="..\gtk\gtkmm\toolitemgroup.h" />
++ <ClInclude Include="..\gtk\gtkmm\toolpalette.h" />
++ <ClInclude Include="..\gtk\gtkmm\toolshell.h" />
++ <ClInclude Include="..\gtk\gtkmm\tooltip.h" />
++ <ClInclude Include="..\gtk\gtkmm\treedragdest.h" />
++ <ClInclude Include="..\gtk\gtkmm\treedragsource.h" />
++ <ClInclude Include="..\gtk\gtkmm\treeiter.h" />
++ <ClInclude Include="..\gtk\gtkmm\treemodel.h" />
++ <ClInclude Include="..\gtk\gtkmm\treemodelcolumn.h" />
++ <ClInclude Include="..\gtk\gtkmm\treemodelfilter.h" />
++ <ClInclude Include="..\gtk\gtkmm\treemodelsort.h" />
++ <ClInclude Include="..\gtk\gtkmm\treepath.h" />
++ <ClInclude Include="..\gtk\gtkmm\treerowreference.h" />
++ <ClInclude Include="..\gtk\gtkmm\treeselection.h" />
++ <ClInclude Include="..\gtk\gtkmm\treesortable.h" />
++ <ClInclude Include="..\gtk\gtkmm\treestore.h" />
++ <ClInclude Include="..\gtk\gtkmm\treeview.h" />
++ <ClInclude Include="..\gtk\gtkmm\treeview_private.h" />
++ <ClInclude Include="..\gtk\gtkmm\treeviewcolumn.h" />
++ <ClInclude Include="..\gtk\gtkmm\uimanager.h" />
++ <ClInclude Include="..\gtk\gtkmm\viewport.h" />
++ <ClInclude Include="..\gtk\gtkmm\volumebutton.h" />
++ <ClInclude Include="..\gtk\gtkmm\widget.h" />
++ <ClInclude Include="..\gtk\gtkmm\widgetpath.h" />
++ <ClInclude Include="..\gtk\gtkmm\window.h" />
++ <ClInclude Include="..\gtk\gtkmm\windowgroup.h" />
++ <ClInclude Include="..\gtk\gtkmm\wrap_init.h" />
++ </ItemGroup>
++ <ItemGroup>
++ <ResourceCompile Include=".\gtkmm\gtkmm.rc" />
++ </ItemGroup>
++ <ItemGroup>
++ <ProjectReference Include="gdkmm.vcxproj">
++ <Project>{976c8f9c-1a1d-4e23-b79e-ec9091bbea0e}</Project>
++ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
++ </ProjectReference>
++ <ProjectReference Include="gendef.vcxproj">
++ <Project>{07324745-c9be-4d65-b08a-9c88188c0c28}</Project>
++ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
++ </ProjectReference>
++ </ItemGroup>
++ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
++ <ImportGroup Label="ExtensionTargets">
++ </ImportGroup>
++</Project>
+\ No newline at end of file
+diff --git a/MSVC_Net2013/gtkmm3-demo.vcxproj b/MSVC_Net2013/gtkmm3-demo.vcxproj
+index 9c33d45..84a988a 100644
+--- a/MSVC_Net2013/gtkmm3-demo.vcxproj
++++ b/MSVC_Net2013/gtkmm3-demo.vcxproj
+@@ -23,26 +23,27 @@
+ <ProjectGuid>{5A8BBE25-E8D8-487B-AD2D-690438F09FA1}</ProjectGuid>
+ <RootNamespace>gtkmm3-demo</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+@@ -251,4 +252,4 @@
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+-</Project>
++</Project>
+\ No newline at end of file
+diff --git a/MSVC_Net2013/install.vcxproj b/MSVC_Net2013/install.vcxproj
+index 1df2f4b..a484bd6 100644
+--- a/MSVC_Net2013/install.vcxproj
++++ b/MSVC_Net2013/install.vcxproj
+@@ -22,28 +22,29 @@
+ <ProjectGuid>{2093D218-190E-4194-9421-3BA7CBF33B10}</ProjectGuid>
+ <RootNamespace>install</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
diff --git a/ports/gtkmm/fix_properties.patch b/ports/gtkmm/fix_properties.patch
new file mode 100644
index 000000000..3db0a30e5
--- /dev/null
+++ b/ports/gtkmm/fix_properties.patch
@@ -0,0 +1,2423 @@
+diff --git a/MSVC_Net2013/gdkmm.vcxproj b/MSVC_Net2013/gdkmm.vcxproj
+index dd495a0..94c6396 100644
+--- a/MSVC_Net2013/gdkmm.vcxproj
++++ b/MSVC_Net2013/gdkmm.vcxproj
+@@ -93,7 +93,7 @@
+ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+ </PreLinkEvent>
+ <Link>
+- <AdditionalDependencies>$(CPPDepLibsDebug);%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile>
+ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -118,7 +118,7 @@
+ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+ </PreLinkEvent>
+ <Link>
+- <AdditionalDependencies>$(CPPDepLibsRelease);%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile>
+ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -150,7 +150,7 @@
+ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+ </PreLinkEvent>
+ <Link>
+- <AdditionalDependencies>$(CPPDepLibsDebug);%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile>
+ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -179,7 +179,7 @@
+ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+ </PreLinkEvent>
+ <Link>
+- <AdditionalDependencies>$(CPPDepLibsRelease);%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile>
+ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+@@ -263,4 +263,4 @@
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+-</Project>
++</Project>
+\ No newline at end of file
+diff --git a/MSVC_Net2013/gdkmm.vcxproj.filters b/MSVC_Net2013/gdkmm.vcxproj.filters
+index 826f785..da390e5 100644
+--- a/MSVC_Net2013/gdkmm.vcxproj.filters
++++ b/MSVC_Net2013/gdkmm.vcxproj.filters
+@@ -15,71 +15,183 @@
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+- <ClCompile Include="..\gdk\gdkmm\applaunchcontext.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\color.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\colormap.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\cursor.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\device.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\devicemanager.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\display.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\displaymanager.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\dragcontext.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\drawingcontext.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\event.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\general.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\glcontext.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\monitor.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\pixbuf.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\pixbufanimation.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\pixbufanimationiter.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\pixbufformat.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\pixbufloader.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\rectangle.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\rgba.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\seat.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\screen.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\timecoord.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\types.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\visual.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\window.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gdk\gdkmm\wrap_init.cc"><Filter>Source Files</Filter></ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\applaunchcontext.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\color.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\cursor.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\device.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\devicemanager.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\display.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\displaymanager.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\dragcontext.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\drawingcontext.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\event.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\general.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\glcontext.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\monitor.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\pixbuf.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\pixbufanimation.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\pixbufanimationiter.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\pixbufformat.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\pixbufloader.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\rectangle.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\rgba.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\seat.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\screen.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\timecoord.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\types.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\visual.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\window.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gdk\gdkmm\wrap_init.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+- <ClInclude Include="..\gdk\gdkmm\applaunchcontext.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\color.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\colormap.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\cursor.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\device.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\devicemanager.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\display.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\displaymanager.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\dragcontext.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\drawingcontext.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\event.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\gc.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\general.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\glcontext.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\list.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\monitor.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\pixbuf.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\pixbufanimation.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\pixbufanimationiter.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\pixbufformat.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\pixbufloader.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\rectangle.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\region.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\rgba.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\seat.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\screen.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\timecoord.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\types.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\visual.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\window.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gdk\gdkmm\wrap_init.h"><Filter>Header Files</Filter></ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\applaunchcontext.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\color.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\colormap.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\cursor.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\device.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\devicemanager.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\display.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\displaymanager.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\dragcontext.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\drawingcontext.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\event.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\general.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\glcontext.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\list.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\monitor.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\pixbuf.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\pixbufanimation.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\pixbufanimationiter.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\pixbufformat.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\pixbufloader.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\rectangle.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\region.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\rgba.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\seat.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\screen.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\timecoord.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\types.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\visual.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\window.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gdk\gdkmm\wrap_init.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include=".\gdkmm\gdkmm.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+-</Project>
++</Project>
+\ No newline at end of file
+diff --git a/MSVC_Net2013/gtkmm-build-defines.props b/MSVC_Net2013/gtkmm-build-defines.props
+index 880cbf7..2cb24a3 100644
+--- a/MSVC_Net2013/gtkmm-build-defines.props
++++ b/MSVC_Net2013/gtkmm-build-defines.props
+@@ -4,10 +4,8 @@
+ <Import Project="gtkmm-version-paths.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros">
+- <GdkMMBuildDefs>GDKMM_BUILD</GdkMMBuildDefs>
+- <GtkMMBuildDefs>GTKMM_BUILD</GtkMMBuildDefs>
+- <CPPDepLibsRelease>pangomm-vc$(VSVer)0-1_4.lib;giomm-vc$(VSVer)0-2_4.lib;glibmm-vc$(VSVer)0-2_4.lib;cairomm-vc$(VSVer)0-1_0.lib;sigc-vc$(VSVer)0-2_0.lib</CPPDepLibsRelease>
+- <CPPDepLibsDebug>pangomm-vc$(VSVer)0-d-1_4.lib;giomm-vc$(VSVer)0-d-2_4.lib;glibmm-vc$(VSVer)0-d-2_4.lib;cairomm-vc$(VSVer)0-d-1_0.lib;sigc-vc$(VSVer)0-d-2_0.lib</CPPDepLibsDebug>
++ <GdkMMBuildDefs>GDKMM_BUILD;_WINDLL</GdkMMBuildDefs>
++ <GtkMMBuildDefs>GTKMM_BUILD;_WINDLL</GtkMMBuildDefs>
+ </PropertyGroup>
+ <PropertyGroup>
+ <_PropertySheetDisplayName>glibmmbuilddefinesprops</_PropertySheetDisplayName>
+@@ -16,15 +14,15 @@
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+ <ClCompile>
+- <AdditionalIncludeDirectories>.\gdkmm;..;..\gdk;$(GlibEtcInstallRoot)\include\pangomm-1.4;$(GlibEtcInstallRoot)\lib\pangomm-1.4\include;$(GlibEtcInstallRoot)\include\giomm-2.4;$(GlibEtcInstallRoot)\lib\giomm-2.4\include;$(GlibEtcInstallRoot)\include\glibmm-2.4;$(GlibEtcInstallRoot)\lib\glibmm-2.4\include;$(GlibEtcInstallRoot)\include\cairomm-1.0;$(GlibEtcInstallRoot)\lib\cairomm-1.0\include;$(GlibEtcInstallRoot)\include\sigc++-2.0;$(GlibEtcInstallRoot)\lib\sigc++-2.0\include;$(GlibEtcInstallRoot)\include\gtk-3.0;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>.\gdkmm;..;..\gdk;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
+ <DisableSpecificWarnings>4250;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <AdditionalOptions>/d2Zi+ %(AdditionalOptions)</AdditionalOptions>
+ </ClCompile>
+ <Link>
+- <AdditionalDependencies>gtk-3.0.lib;gdk-3.0.lib;gdk_pixbuf-2.0.lib;gobject-2.0.lib;gio-2.0.lib;glib-2.0.lib;epoxy.lib;%(AdditionalDependencies)</AdditionalDependencies>
+- <AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+@@ -34,11 +32,5 @@
+ <BuildMacro Include="GtkMMBuildDefs">
+ <Value>$(GtkMMBuildDefs)</Value>
+ </BuildMacro>
+- <BuildMacro Include="CPPDepLibsRelease">
+- <Value>$(CPPDepLibsRelease)</Value>
+- </BuildMacro>
+- <BuildMacro Include="CPPDepLibsDebug">
+- <Value>$(CPPDepLibsDebug)</Value>
+- </BuildMacro>
+ </ItemGroup>
+-</Project>
++</Project>
+\ No newline at end of file
+diff --git a/MSVC_Net2013/gtkmm-version-paths.props b/MSVC_Net2013/gtkmm-version-paths.props
+index f0c2834..968562a 100644
+--- a/MSVC_Net2013/gtkmm-version-paths.props
++++ b/MSVC_Net2013/gtkmm-version-paths.props
+@@ -2,13 +2,9 @@
+ <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup Label="UserMacros">
+ <VSVer>12</VSVer>
+- <GlibEtcInstallRoot>$(SolutionDir)\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
+- <CopyDir>$(GlibEtcInstallRoot)</CopyDir>
+ <DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName)\</DefDir>
+ <ApiMajorVersion>3</ApiMajorVersion>
+ <ApiMinorVersion>0</ApiMinorVersion>
+- <ReleaseDllSuffix>-vc$(VSVer)0-$(ApiMajorVersion)_$(ApiMinorVersion)</ReleaseDllSuffix>
+- <DebugDllSuffix>-vc$(VSVer)0-d-$(ApiMajorVersion)_$(ApiMinorVersion)</DebugDllSuffix>
+ </PropertyGroup>
+ <PropertyGroup>
+ <_PropertySheetDisplayName>glibmmversionpathsprops</_PropertySheetDisplayName>
+@@ -17,12 +13,6 @@
+ <BuildMacro Include="VSVer">
+ <Value>$(VSVer)</Value>
+ </BuildMacro>
+- <BuildMacro Include="GlibEtcInstallRoot">
+- <Value>$(GlibEtcInstallRoot)</Value>
+- </BuildMacro>
+- <BuildMacro Include="CopyDir">
+- <Value>$(CopyDir)</Value>
+- </BuildMacro>
+ <BuildMacro Include="DefDir">
+ <Value>$(DefDir)</Value>
+ </BuildMacro>
+@@ -32,11 +22,5 @@
+ <BuildMacro Include="ApiMinorVersion">
+ <Value>$(ApiMinorVersion)</Value>
+ </BuildMacro>
+- <BuildMacro Include="ReleaseDllSuffix">
+- <Value>$(ReleaseDllSuffix)</Value>
+- </BuildMacro>
+- <BuildMacro Include="DebugDllSuffix">
+- <Value>$(DebugDllSuffix)</Value>
+- </BuildMacro>
+ </ItemGroup>
+ </Project>
+\ No newline at end of file
+diff --git a/MSVC_Net2013/gtkmm.vcxproj b/MSVC_Net2013/gtkmm.vcxproj
+index 8093886..ec56ed1 100644
+--- a/MSVC_Net2013/gtkmm.vcxproj
++++ b/MSVC_Net2013/gtkmm.vcxproj
+@@ -80,7 +80,7 @@
+ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_DEBUG;$(GtkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_DEBUG;_NO_CRT_STDIO_INLINE;$(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+@@ -95,7 +95,7 @@
+ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+ </PreLinkEvent>
+ <Link>
+- <AdditionalDependencies>atkmm-vc$(VSVer)0-d-1_6.lib;$(CPPDepLibsDebug);%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile>
+ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -108,7 +108,7 @@
+ <ClCompile>
+ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+ <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>$(GtkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>$(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>
+ <PrecompiledHeader>
+@@ -121,7 +121,7 @@
+ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+ </PreLinkEvent>
+ <Link>
+- <AdditionalDependencies>atkmm-vc$(VSVer)0-1_6.lib;$(CPPDepLibsRelease);%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile>
+ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+@@ -139,7 +139,7 @@
+ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_DEBUG;$(GtkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_DEBUG;_NO_CRT_STDIO_INLINE;$(GtkMMBuildDefs);)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+@@ -154,7 +154,7 @@
+ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+ </PreLinkEvent>
+ <Link>
+- <AdditionalDependencies>atkmm-vc$(VSVer)0-d-1_6.lib;$(CPPDepLibsDebug);%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName)$(DebugDllSuffix).dll</OutputFile>
+ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -171,7 +171,7 @@
+ <ClCompile>
+ <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
+ <AdditionalIncludeDirectories>.\gtkmm;..\gtk;$(GlibEtcInstallRoot)\include\atkmm-1.6;$(GlibEtcInstallRoot)\lib\atkmm-1.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>$(GtkMMBuildDefs);%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>$(GtkMMBuildDefs);_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <RuntimeTypeInfo>true</RuntimeTypeInfo>
+ <PrecompiledHeader>
+@@ -184,7 +184,7 @@
+ <Command>$(OutDir)\gendef.exe $(DefDir)\$(ProjectName).def $(TargetFileName) $(IntDir)*.obj</Command>
+ </PreLinkEvent>
+ <Link>
+- <AdditionalDependencies>atkmm-vc$(VSVer)0-1_6.lib;$(CPPDepLibsRelease);%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalDependencies>legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName)$(ReleaseDllSuffix).dll</OutputFile>
+ <ModuleDefinitionFile>$(IntDir)\$(ProjectName).def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -697,4 +697,4 @@
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+-</Project>
++</Project>
+\ No newline at end of file
+diff --git a/MSVC_Net2013/gtkmm.vcxproj.filters b/MSVC_Net2013/gtkmm.vcxproj.filters
+index 5237502..5e8bd36 100644
+--- a/MSVC_Net2013/gtkmm.vcxproj.filters
++++ b/MSVC_Net2013/gtkmm.vcxproj.filters
+@@ -14,496 +14,1459 @@
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+- <ClCompile Include="..\gtk\gtkmm\aboutdialog.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\accelgroup.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\accelkey.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\accellabel.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\accelmap.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\action.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\actionable.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\actionbar.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\actiongroup.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\activatable.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\adjustment.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\alignment.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\appchooser.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\appchooserbutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\appchooserdialog.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\appchooserwidget.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\application.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\applicationwindow.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\arrow.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\aspectframe.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\assistant.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\bin.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\border.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\box.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\buildable.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\builder.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\button.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\buttonbox.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\calendar.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellarea.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellareabox.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellareacontext.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\celleditable.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\celllayout.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellrenderer.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellrenderer_generation.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellrendereraccel.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellrenderercombo.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellrendererpixbuf.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellrendererprogress.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellrendererspin.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellrendererspinner.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellrenderertext.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellrenderertoggle.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cellview.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\checkbutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\checkmenuitem.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\childpropertyproxy.cc"><Filter>Header Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\childpropertyproxy_base.cc"><Filter>Header Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\clipboard.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\colorbutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\colorchooser.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\colorchooserdialog.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\colorselection.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\combobox.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\comboboxtext.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\container.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\cssprovider.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\csssection.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\dialog.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\drawingarea.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\editable.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\entry.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\entrybuffer.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\entrycompletion.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\enums.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\eventbox.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\eventcontroller.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\expander.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\filechooser.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\filechooserbutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\filechooserdialog.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\filechooserwidget.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\filefilter.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\fixed.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\flowbox.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\flowboxchild.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\fontbutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\fontchooser.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\fontchooserdialog.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\fontchooserwidget.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\fontselection.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\frame.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\gesture.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\gesturedrag.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\gesturelongpress.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\gesturemultipress.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\gesturepan.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\gesturerotate.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\gesturesingle.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\gestureswipe.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\gesturezoom.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\glarea.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\grid.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\handlebox.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\headerbar.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\hvbox.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\hvbuttonbox.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\hvpaned.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\hvscale.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\hvscrollbar.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\hvseparator.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\iconfactory.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\iconinfo.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\iconset.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\iconsource.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\icontheme.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\iconview.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\image.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\imagemenuitem.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\infobar.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\inputdialog.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\invisible.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\item.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\label.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\layout.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\linkbutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\listbox.cc"><Filter>Header Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\listboxrow.cc"><Filter>Header Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\liststore.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\listviewtext.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\lockbutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\main.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\menu.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\menu_elems.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\menubar.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\menubutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\menuitem.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\menushell.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\menutoolbutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\messagedialog.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\misc.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\modelbutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\notebook.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\numerableicon.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\object.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\offscreenwindow.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\orientable.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\overlay.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\pagesetup.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\paned.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\papersize.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\placessidebar.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\popover.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\popovermenu.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\printcontext.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\printoperation.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\printoperationpreview.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\printsettings.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\progressbar.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\radioaction.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\radiobutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\radiobuttongroup.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\radiomenuitem.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\radiotoolbutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\range.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\recentaction.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\recentchooser.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\recentchooserdialog.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\recentchoosermenu.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\recentchooserwidget.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\recentfilter.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\recentinfo.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\recentmanager.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\requisition.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\revealer.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\scale.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\scalebutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\scrollable.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\scrollbar.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\scrolledwindow.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\searchbar.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\searchentry.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\selectiondata.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\selectiondata_private.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\separator.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\separatormenuitem.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\separatortoolitem.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\settings.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\shortcutlabel.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\shortcutsgroup.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\shortcutssection.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\shortcutsshortcut.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\shortcutswindow.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\sizegroup.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\spinbutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\spinner.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\stack.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\stacksidebar.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\stackswitcher.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\statusbar.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\statusicon.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\stock.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\stockid.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\stockitem.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\stylecontext.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\styleprovider.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\switch.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\table.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\targetentry.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\targetlist.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\tearoffmenuitem.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\textattributes.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\textbuffer.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\textchildanchor.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\textiter.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\textmark.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\texttag.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\texttagtable.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\textview.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\toggleaction.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\togglebutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\toggletoolbutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\toolbar.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\toolbutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\toolitem.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\toolitemgroup.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\toolpalette.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\toolshell.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\tooltip.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treedragdest.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treedragsource.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treeiter.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treemodel.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treemodelcolumn.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treemodelfilter.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treemodelsort.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treepath.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treerowreference.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treeselection.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treesortable.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treestore.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treeview.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treeview_private.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\treeviewcolumn.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\uimanager.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\viewport.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\volumebutton.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\widget.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\widgetpath.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\window.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\windowgroup.cc"><Filter>Source Files</Filter></ClCompile>
+- <ClCompile Include="..\gtk\gtkmm\wrap_init.cc"><Filter>Source Files</Filter></ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\aboutdialog.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\accelgroup.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\accelkey.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\accellabel.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\accelmap.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\action.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\actionable.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\actionbar.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\actiongroup.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\activatable.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\adjustment.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\alignment.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\appchooser.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\appchooserbutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\appchooserdialog.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\appchooserwidget.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\application.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\applicationwindow.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\arrow.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\aspectframe.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\assistant.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\bin.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\border.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\box.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\buildable.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\builder.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\button.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\buttonbox.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\calendar.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellarea.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellareabox.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellareacontext.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\celleditable.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\celllayout.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellrenderer.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellrenderer_generation.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellrendereraccel.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellrenderercombo.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellrendererpixbuf.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellrendererprogress.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellrendererspin.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellrendererspinner.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellrenderertext.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellrenderertoggle.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cellview.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\checkbutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\checkmenuitem.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\childpropertyproxy.cc">
++ <Filter>Header Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\childpropertyproxy_base.cc">
++ <Filter>Header Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\clipboard.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\colorbutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\colorchooser.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\colorchooserdialog.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\colorselection.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\combobox.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\comboboxtext.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\container.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\cssprovider.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\csssection.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\dialog.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\drawingarea.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\editable.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\entry.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\entrybuffer.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\entrycompletion.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\enums.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\eventbox.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\eventcontroller.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\expander.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\filechooser.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\filechooserbutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\filechooserdialog.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\filechooserwidget.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\filefilter.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\fixed.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\flowbox.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\flowboxchild.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\fontbutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\fontchooser.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\fontchooserdialog.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\fontchooserwidget.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\fontselection.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\frame.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\gesture.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\gesturedrag.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\gesturelongpress.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\gesturemultipress.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\gesturepan.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\gesturerotate.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\gesturesingle.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\gestureswipe.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\gesturezoom.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\glarea.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\grid.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\handlebox.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\headerbar.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\hvbox.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\hvbuttonbox.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\hvpaned.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\hvscale.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\hvscrollbar.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\hvseparator.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\iconfactory.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\iconinfo.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\iconset.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\iconsource.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\icontheme.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\iconview.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\image.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\imagemenuitem.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\infobar.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\invisible.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\label.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\layout.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\linkbutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\listbox.cc">
++ <Filter>Header Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\listboxrow.cc">
++ <Filter>Header Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\liststore.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\listviewtext.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\lockbutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\main.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\menu.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\menubar.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\menubutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\menuitem.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\menushell.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\menutoolbutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\messagedialog.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\misc.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\modelbutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\notebook.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\numerableicon.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\object.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\offscreenwindow.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\orientable.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\overlay.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\pagesetup.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\paned.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\papersize.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\placessidebar.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\popover.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\popovermenu.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\printcontext.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\printoperation.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\printoperationpreview.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\printsettings.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\progressbar.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\radioaction.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\radiobutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\radiobuttongroup.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\radiomenuitem.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\radiotoolbutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\range.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\recentaction.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\recentchooser.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\recentchooserdialog.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\recentchoosermenu.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\recentchooserwidget.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\recentfilter.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\recentinfo.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\recentmanager.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\requisition.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\revealer.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\scale.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\scalebutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\scrollable.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\scrollbar.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\scrolledwindow.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\searchbar.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\searchentry.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\selectiondata.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\selectiondata_private.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\separator.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\separatormenuitem.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\separatortoolitem.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\settings.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\shortcutlabel.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\shortcutsgroup.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\shortcutssection.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\shortcutsshortcut.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\shortcutswindow.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\sizegroup.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\spinbutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\spinner.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\stack.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\stacksidebar.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\stackswitcher.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\statusbar.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\statusicon.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\stock.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\stockid.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\stockitem.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\stylecontext.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\styleprovider.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\switch.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\table.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\targetentry.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\targetlist.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\tearoffmenuitem.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\textattributes.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\textbuffer.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\textchildanchor.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\textiter.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\textmark.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\texttag.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\texttagtable.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\textview.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\toggleaction.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\togglebutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\toggletoolbutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\toolbar.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\toolbutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\toolitem.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\toolitemgroup.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\toolpalette.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\toolshell.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\tooltip.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treedragdest.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treedragsource.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treeiter.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treemodel.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treemodelcolumn.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treemodelfilter.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treemodelsort.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treepath.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treerowreference.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treeselection.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treesortable.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treestore.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treeview.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treeview_private.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\treeviewcolumn.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\uimanager.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\viewport.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\volumebutton.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\widget.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\widgetpath.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\window.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\windowgroup.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\wrap_init.cc">
++ <Filter>Source Files</Filter>
++ </ClCompile>
++ <ClCompile Include="..\gtk\gtkmm\levelbar.cc" />
+ </ItemGroup>
+ <ItemGroup>
+- <ClInclude Include="..\gtk\gtkmm\aboutdialog.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\accelgroup.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\accelkey.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\accellabel.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\accelmap.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\action.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\actionable.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\actionbar.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\actiongroup.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\activatable.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\adjustment.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\alignment.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\appchooser.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\appchooserbutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\appchooserdialog.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\appchooserwidget.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\application.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\applicationwindow.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\arrow.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\aspectframe.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\assistant.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\base.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\bin.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\border.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\border.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\box.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\buildable.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\builder.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\button.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\buttonbox.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\calendar.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\celleditable.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\celllayout.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\cellrenderer.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\cellrenderer_generation.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\cellrendereraccel.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\cellrenderercombo.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\cellrendererpixbuf.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\cellrendererprogress.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\cellrendererspin.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\cellrendererspinner.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\cellrenderertext.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\cellrenderertoggle.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\cellview.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\checkbutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\checkmenuitem.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\childpropertyproxy.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\childpropertyproxy_base.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\clipboard.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\colorbutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\colorchooser.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\colorchooserdialog.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\colorselection.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\combobox.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\comboboxtext.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\container.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\cssprovider.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\csssection.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\dialog.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\drawingarea.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\editable.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\entry.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\entrybuffer.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\entrycompletion.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\enums.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\eventbox.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\eventcontroller.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\expander.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\filechooser.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\filechooserbutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\filechooserdialog.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\filechooserwidget.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\filefilter.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\fileselection.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\fixed.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\flowbox.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\flowboxchild.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\fontbutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\fontchooser.h"><Filter>Source Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\fontchooserdialog.h"><Filter>Source Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\fontchooserwidget.h"><Filter>Source Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\fontselection.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\frame.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\gesture.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\gesturedrag.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\gesturelongpress.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\gesturemultipress.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\gesturepan.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\gesturerotate.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\gesturesingle.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\gestureswipe.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\gesturezoom.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\glarea.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\grid.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\handlebox.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\headerbar.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\hvbox.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\hvbuttonbox.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\hvpaned.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\hvscale.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\hvscrollbar.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\hvseparator.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\iconfactory.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\iconinfo.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\iconset.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\iconsource.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\icontheme.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\iconview.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\image.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\imagemenuitem.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\infobar.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\invisible.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\label.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\layout.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\levelbar.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\linkbutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\listbox.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\listboxrow.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\liststore.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\listviewtext.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\lockbutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\main.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\menu.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\menubar.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\menubutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\menuitem.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\menushell.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\menutoolbutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\messagedialog.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\misc.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\modelbutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\notebook.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\numerableicons.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\object.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\offscreenwindow.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\orientable.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\overlay.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\pagesetup.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\paned.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\papersize.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\placessidebar.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\popover.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\popovermenu.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\printcontext.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\printoperation.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\printoperationpreview.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\printsettings.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\progressbar.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\radioaction.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\radiobutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\radiobuttongroup.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\radiomenuitem.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\radiotoolbutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\range.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\recentaction.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\recentchooser.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\recentchooserdialog.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\recentchoosermenu.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\recentchooserwidget.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\recentfilter.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\recentinfo.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\recentmanager.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\requisition.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\revealer.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\scale.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\scalebutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\scrollable.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\scrollbar.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\scrolledwindow.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\searchbar.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\searchentry.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\selectiondata.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\selectiondata_private.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\separator.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\separatormenuitem.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\separatortoolitem.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\settings.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\shortcutlabel.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\shortcutsgroup.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\shortcutssection.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\shortcutsshortcut.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\shortcutswindow.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\sizegroup.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\spinbutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\spinner.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\stack.h"><Filter>Source Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\stacksidebar.h"><Filter>Source Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\stackswitcher.h"><Filter>Source Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\statusbar.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\statusicon.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\stock.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\stockid.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\stockitem.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\stylecontext.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\styleprovider.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\switch.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\table.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\targetentry.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\targetlist.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\tearoffmenuitem.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\textattributes.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\textbuffer.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\textchildanchor.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\textiter.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\textmark.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\texttag.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\texttagtable.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\textview.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\toggleaction.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\togglebutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\toggletoolbutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\toolbar.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\toolbutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\toolitem.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\toolitemgroup.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\toolpalette.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\toolshell.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\tooltip.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treedragdest.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treedragsource.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treeiter.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treemodel.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treemodelcolumn.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treemodelfilter.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treemodelsort.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treepath.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treerowreference.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treeselection.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treesortable.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treestore.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treeview.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treeview_private.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\treeviewcolumn.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\uimanager.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\viewport.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\volumebutton.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\widget.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\widgetpath.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\window.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\windowgroup.h"><Filter>Header Files</Filter></ClInclude>
+- <ClInclude Include="..\gtk\gtkmm\wrap_init.h"><Filter>Header Files</Filter></ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\aboutdialog.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\accelgroup.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\accelkey.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\accellabel.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\accelmap.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\action.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\actionable.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\actionbar.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\actiongroup.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\activatable.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\adjustment.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\alignment.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\appchooser.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\appchooserbutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\appchooserdialog.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\appchooserwidget.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\application.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\applicationwindow.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\arrow.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\aspectframe.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\assistant.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\base.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\bin.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\border.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\border.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\box.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\builder.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\button.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\buttonbox.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\calendar.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\celleditable.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\celllayout.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellrenderer.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellrenderer_generation.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellrendereraccel.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellrenderercombo.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellrendererpixbuf.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellrendererprogress.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellrendererspin.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellrendererspinner.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellrenderertext.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellrenderertoggle.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellview.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\checkbutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\checkmenuitem.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\childpropertyproxy.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\childpropertyproxy_base.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\clipboard.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\colorbutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\colorchooser.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\colorchooserdialog.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\colorselection.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\combobox.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\comboboxtext.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\container.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cssprovider.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\csssection.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\dialog.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\drawingarea.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\editable.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\entry.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\entrybuffer.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\entrycompletion.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\enums.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\eventbox.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\eventcontroller.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\expander.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\filechooser.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\filechooserbutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\filechooserdialog.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\filechooserwidget.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\filefilter.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\fixed.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\flowbox.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\flowboxchild.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\fontbutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\fontchooser.h">
++ <Filter>Source Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\fontchooserdialog.h">
++ <Filter>Source Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\fontchooserwidget.h">
++ <Filter>Source Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\fontselection.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\frame.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\gesture.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\gesturedrag.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\gesturelongpress.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\gesturemultipress.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\gesturepan.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\gesturerotate.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\gesturesingle.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\gestureswipe.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\gesturezoom.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\glarea.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\grid.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\handlebox.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\headerbar.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\hvbox.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\hvbuttonbox.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\hvpaned.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\hvscale.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\hvscrollbar.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\hvseparator.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\iconfactory.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\iconinfo.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\iconset.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\iconsource.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\icontheme.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\iconview.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\image.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\imagemenuitem.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\infobar.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\invisible.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\label.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\layout.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\levelbar.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\linkbutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\listbox.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\listboxrow.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\liststore.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\listviewtext.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\lockbutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\main.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\menu.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\menubar.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\menubutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\menuitem.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\menushell.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\menutoolbutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\messagedialog.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\misc.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\modelbutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\notebook.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\object.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\offscreenwindow.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\orientable.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\overlay.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\pagesetup.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\paned.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\papersize.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\placessidebar.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\popover.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\popovermenu.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\printcontext.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\printoperation.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\printoperationpreview.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\printsettings.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\progressbar.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\radioaction.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\radiobutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\radiobuttongroup.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\radiomenuitem.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\radiotoolbutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\range.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\recentaction.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\recentchooser.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\recentchooserdialog.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\recentchoosermenu.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\recentchooserwidget.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\recentfilter.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\recentinfo.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\recentmanager.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\requisition.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\revealer.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\scale.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\scalebutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\scrollable.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\scrollbar.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\scrolledwindow.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\searchbar.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\searchentry.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\selectiondata.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\selectiondata_private.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\separator.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\separatormenuitem.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\separatortoolitem.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\settings.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\shortcutlabel.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\shortcutsgroup.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\shortcutssection.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\shortcutsshortcut.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\shortcutswindow.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\sizegroup.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\spinbutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\spinner.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\stack.h">
++ <Filter>Source Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\stacksidebar.h">
++ <Filter>Source Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\stackswitcher.h">
++ <Filter>Source Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\statusbar.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\statusicon.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\stock.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\stockid.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\stockitem.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\stylecontext.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\styleprovider.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\switch.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\table.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\targetentry.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\targetlist.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\tearoffmenuitem.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\textattributes.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\textbuffer.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\textchildanchor.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\textiter.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\textmark.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\texttag.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\texttagtable.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\textview.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\toggleaction.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\togglebutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\toggletoolbutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\toolbar.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\toolbutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\toolitem.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\toolitemgroup.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\toolpalette.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\toolshell.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\tooltip.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treedragdest.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treedragsource.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treeiter.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treemodel.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treemodelcolumn.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treemodelfilter.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treemodelsort.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treepath.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treerowreference.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treeselection.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treesortable.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treestore.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treeview.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treeview_private.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\treeviewcolumn.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\uimanager.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\viewport.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\volumebutton.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\widget.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\widgetpath.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\window.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\windowgroup.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\wrap_init.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellarea.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellareabox.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\cellareacontext.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
++ <ClInclude Include="..\gtk\gtkmm\numerableicon.h">
++ <Filter>Header Files</Filter>
++ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include=".\gtkmm\gtkmm.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+-</Project>
++</Project>
+\ No newline at end of file
diff --git a/ports/gtkmm/msvc_recommended_pragmas.h b/ports/gtkmm/msvc_recommended_pragmas.h
new file mode 100644
index 000000000..c0eb1d5ed
--- /dev/null
+++ b/ports/gtkmm/msvc_recommended_pragmas.h
@@ -0,0 +1,34 @@
+#ifndef _MSC_VER
+#pragma error "This header is for Microsoft VC only."
+#endif /* _MSC_VER */
+
+/* Make MSVC more pedantic, this is a recommended pragma list
+ * from _Win32_Programming_ by Rector and Newcomer.
+ */
+#pragma warning(error:4002) /* too many actual parameters for macro */
+#pragma warning(error:4003) /* not enough actual parameters for macro */
+#pragma warning(1:4010) /* single-line comment contains line-continuation character */
+#pragma warning(error:4013) /* 'function' undefined; assuming extern returning int */
+#pragma warning(1:4016) /* no function return type; using int as default */
+#pragma warning(error:4020) /* too many actual parameters */
+#pragma warning(error:4021) /* too few actual parameters */
+#pragma warning(error:4027) /* function declared without formal parameter list */
+#pragma warning(error:4029) /* declared formal parameter list different from definition */
+#pragma warning(error:4033) /* 'function' must return a value */
+#pragma warning(error:4035) /* 'function' : no return value */
+#pragma warning(error:4045) /* array bounds overflow */
+#pragma warning(error:4047) /* different levels of indirection */
+#pragma warning(error:4049) /* terminating line number emission */
+#pragma warning(error:4053) /* An expression of type void was used as an operand */
+#pragma warning(error:4071) /* no function prototype given */
+#pragma warning(disable:4101) /* unreferenced local variable */
+#pragma warning(error:4150)
+
+#pragma warning(disable:4244) /* No possible loss of data warnings */
+#pragma warning(disable:4305) /* No truncation from int to char warnings */
+
+#pragma warning(error:4819) /* The file contains a character that cannot be represented in the current code page */
+
+/* work around Microsoft's premature attempt to deprecate the C-Library */
+#define _CRT_SECURE_NO_WARNINGS
+#define _CRT_NONSTDC_NO_WARNINGS
diff --git a/ports/gtkmm/portfile.cmake b/ports/gtkmm/portfile.cmake
new file mode 100644
index 000000000..707e64a9b
--- /dev/null
+++ b/ports/gtkmm/portfile.cmake
@@ -0,0 +1,104 @@
+# Glibmm uses winapi functions not available in WindowsStore, so gtkmm
+# also
+if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+message(FATAL_ERROR "Error: UWP builds are currently not supported.")
+endif()
+
+# Glibmm relies on DllMain, so gtkmm also
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+message(STATUS "Warning: Static building not supported. Building dynamic.")
+set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gtkmm-3.22.2)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://ftp.gnome.org/pub/GNOME/sources/gtkmm/3.22/gtkmm-3.22.2.tar.xz"
+ FILENAME "gtkmm-3.22.2.tar.xz"
+ SHA512 6e96b543e459481145ee0f56f31a7ad2466bd8ccdd2abf3205998aecede73d235149ca6e5ba6e8d20a4fd5345e310870d81ac2a716d4f78d1460ed685badbdc2
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix_properties.patch ${CMAKE_CURRENT_LIST_DIR}/fix_charset.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/msvc_recommended_pragmas.h DESTINATION ${SOURCE_PATH}/MSVC_Net2013)
+
+set(VS_PLATFORM ${VCPKG_TARGET_ARCHITECTURE})
+if(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86)
+ set(VS_PLATFORM "Win32")
+endif(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86)
+vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/MSVC_Net2013/gtkmm.sln
+ TARGET gtkmm
+ PLATFORM ${VS_PLATFORM}
+ USE_VCPKG_INTEGRATION
+)
+
+# Handle headers
+file(COPY ${SOURCE_PATH}/MSVC_Net2013/gdkmm/gdkmmconfig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(COPY ${SOURCE_PATH}/gdk/gdkmm.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(
+ COPY
+ ${SOURCE_PATH}/gdk/gdkmm
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
+ FILES_MATCHING PATTERN *.h
+)
+file(COPY ${SOURCE_PATH}/MSVC_Net2013/gtkmm/gtkmmconfig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(COPY ${SOURCE_PATH}/gtk/gtkmm.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(
+ COPY
+ ${SOURCE_PATH}/gtk/gtkmm
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
+ FILES_MATCHING PATTERN *.h
+)
+
+# Handle libraries
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/gdkmm.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+)
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/gdkmm.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+)
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/gtkmm.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+)
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/gtkmm.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+)
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/gdkmm.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+)
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/gdkmm.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/gtkmm.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+)
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/gtkmm.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+vcpkg_copy_pdbs()
+
+# Handle copyright and readme
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/gtkmm RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/gtkmm RENAME readme.txt)
diff --git a/ports/gts/CONTROL b/ports/gts/CONTROL
new file mode 100644
index 000000000..faa409619
--- /dev/null
+++ b/ports/gts/CONTROL
@@ -0,0 +1,4 @@
+Source: gts
+Version: 0.7.6
+Description: A Library intended to provide a set of useful functions to deal with 3D surfaces meshed with interconnected triangles
+Build-Depends: glib
diff --git a/ports/gts/portfile.cmake b/ports/gts/portfile.cmake
new file mode 100644
index 000000000..14a5e2bfa
--- /dev/null
+++ b/ports/gts/portfile.cmake
@@ -0,0 +1,31 @@
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message("gts does not support building statically -- building dynamically instead")
+ set(VCPKG_LIBRARY_LINKAGE "dynamic")
+endif()
+
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ message("gts can only be built dynamically, and therefore cannot static link the CRT")
+endif()
+
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO finetjul/gts
+ REF c4da61ae075f355d9ecc9f2d4767acf777f54c2b
+ SHA512 e53d11213c26cbda08ae62e6388aee0a14d2884de72268ad25d10a23e77baa53a2b1151c5cc7643b059ded82b8edf0da79144c3108949fdc515168cac13ffca9
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/gts RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/guetzli/CMakeLists.txt b/ports/guetzli/CMakeLists.txt
new file mode 100644
index 000000000..5d594aabd
--- /dev/null
+++ b/ports/guetzli/CMakeLists.txt
@@ -0,0 +1,46 @@
+cmake_minimum_required(VERSION 3.8.0)
+project(guetzli)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS -DNOMINMAX)
+endif()
+
+if(BUILD_SHARED_LIBS)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif()
+
+find_path(butteraugli_include butteraugli/butteraugli.h)
+find_library(butteraugli_library NAMES butteraugli_lib)
+find_package(PNG REQUIRED)
+
+include_directories("." ${PNG_INCLUDE_DIRS} ${butteraugli_include})
+
+file(GLOB guetzli_srcs "guetzli/*.cc")
+file(GLOB guetzli_includes "guetzli/*.h")
+list(REMOVE_ITEM guetzli_srcs "guetzli/guetzli.cc")
+
+add_library(guetzli_lib ${guetzli_srcs})
+
+add_executable(guetzli guetzli/guetzli.cc)
+
+target_link_libraries(guetzli_lib ${butteraugli_library} ${PNG_LIBRARIES})
+target_link_libraries(guetzli guetzli_lib ${butteraugli_library} ${PNG_LIBRARIES})
+
+
+install(
+ TARGETS guetzli_lib
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_TOOLS)
+ install (
+ TARGETS guetzli
+ RUNTIME DESTINATION tools/guetzli
+ )
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES ${guetzli_includes} DESTINATION include/guetzli)
+endif()
diff --git a/ports/guetzli/CONTROL b/ports/guetzli/CONTROL
new file mode 100644
index 000000000..2ce631a2a
--- /dev/null
+++ b/ports/guetzli/CONTROL
@@ -0,0 +1,4 @@
+Source: guetzli
+Version: 2017-09-02-cb5e4a86f69628-1
+Description: Perceptual JPEG encoder
+Build-Depends: libpng, butteraugli
diff --git a/ports/guetzli/portfile.cmake b/ports/guetzli/portfile.cmake
new file mode 100644
index 000000000..4fb0402ba
--- /dev/null
+++ b/ports/guetzli/portfile.cmake
@@ -0,0 +1,24 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/guetzli
+ REF cb5e4a86f69628f685f2b78d7429e248ab83d8d7
+ SHA512 695a87dc27573b8df74a7e7924e9b96a7bd375b1aae02e7b0fad800428d973cf17947d46ec7afefade2a86ebe3d39f3c3178aad1137b9dd013f5f85ee6569a75
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+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/guetzli)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/guetzli RENAME copyright)
diff --git a/ports/gumbo/CMakeLists.txt b/ports/gumbo/CMakeLists.txt
new file mode 100644
index 000000000..fe239cb8a
--- /dev/null
+++ b/ports/gumbo/CMakeLists.txt
@@ -0,0 +1,32 @@
+cmake_minimum_required(VERSION 3.8.0)
+
+project(gumbo)
+
+set(gumbo_srcs
+ src/attribute.c
+ src/char_ref.c
+ src/error.c
+ src/parser.c
+ src/string_buffer.c
+ src/string_piece.c
+ src/tag.c
+ src/tokenizer.c
+ src/utf8.c
+ src/util.c
+ src/vector.c
+)
+
+
+include_directories(visualc/include src)
+
+add_library(gumbo ${gumbo_srcs})
+
+install(
+ TARGETS gumbo
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES src/gumbo.h src/tag_enum.h DESTINATION include)
+endif()
diff --git a/ports/gumbo/CONTROL b/ports/gumbo/CONTROL
new file mode 100644
index 000000000..ceee95b5d
--- /dev/null
+++ b/ports/gumbo/CONTROL
@@ -0,0 +1,3 @@
+Source: gumbo
+Version: 0.10.1-1
+Description: An HTML5 parsing library in pure C99
diff --git a/ports/gumbo/portfile.cmake b/ports/gumbo/portfile.cmake
new file mode 100644
index 000000000..a4b0ded72
--- /dev/null
+++ b/ports/gumbo/portfile.cmake
@@ -0,0 +1,24 @@
+include(vcpkg_common_functions)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "Dynamic not supported building static")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/gumbo-parser
+ REF v0.10.1
+ SHA512 bb1fb55cd07076ab6a9f38dc14db50397dbdca9a04ace4895dfba8b8cbc09038a96e26070c09c75fa929ada2e815affe233c1e2ecd8afe2aba6201647cf277d1
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/gumbo RENAME copyright)
diff --git a/ports/halide/CONTROL b/ports/halide/CONTROL
new file mode 100644
index 000000000..5539ebd32
--- /dev/null
+++ b/ports/halide/CONTROL
@@ -0,0 +1,3 @@
+Source: halide
+Version: release_2018_02_15
+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..169723518
--- /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 4de27307f3355c318f21497a5b8641d215dbfbe2beb55472b9108e96aa9190300a5a8559f0c5e2788b56103f8284807e293ca362dee22adba62ae0f3b021766f)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(TARGET_ARCHITECTURE 64)
+ set(FILE_HASH a751c263335cbef725554b9a9b7b71811c0872d97109af5339124cb1db291a6f7e0bfb712f19982829477bf4fa2ad3c70ca5353b73697d1984504257b0894798)
+else()
+ message(FATAL_ERROR "Error: halide does not support the ${VCPKG_TARGET_ARCHITECTURE} architecture.")
+endif()
+
+set(COMMIT_HASH 46d8e9e0cdae456489f1eddfd6d829956fc3c843)
+set(RELEASE_DATE 2018_02_15)
+
+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/harfbuzz/0001-fix-uwp-build.patch b/ports/harfbuzz/0001-fix-uwp-build.patch
new file mode 100644
index 000000000..24b5bf894
--- /dev/null
+++ b/ports/harfbuzz/0001-fix-uwp-build.patch
@@ -0,0 +1,15 @@
+diff --git a/src/hb-ft.cc b/src/hb-ft.cc
+index f578e9d..f224c07 100644
+--- a/src/hb-ft.cc
++++ b/src/hb-ft.cc
+@@ -31,6 +31,10 @@
+
+ #include "hb-ft.h"
+
++#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
++#define generic GenericFromFreeTypeLibrary
++#endif
++
+ #include "hb-font-private.hh"
+
+ #include FT_ADVANCES_H
diff --git a/ports/harfbuzz/CONTROL b/ports/harfbuzz/CONTROL
index 6ebe28f37..e6cf6a8e5 100644
--- a/ports/harfbuzz/CONTROL
+++ b/ports/harfbuzz/CONTROL
@@ -1,4 +1,4 @@
Source: harfbuzz
-Version: 1.4.6
+Version: 1.7.6-1
Description: HarfBuzz OpenType text shaping engine
-Build-Depends: freetype, glib
+Build-Depends: freetype, ragel, glib (windows)
diff --git a/ports/harfbuzz/find-package-freetype-2.patch b/ports/harfbuzz/find-package-freetype-2.patch
new file mode 100644
index 000000000..85dbbdeec
--- /dev/null
+++ b/ports/harfbuzz/find-package-freetype-2.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index defd5d6..03f9d4e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -267,7 +267,7 @@ set (subset_project_headers
+
+ ## Find and include needed header folders and libraries
+ if (HB_HAVE_FREETYPE)
+- include (FindFreetype)
++ find_package(Freetype REQUIRED)
+ if (NOT FREETYPE_FOUND)
+ message(FATAL_ERROR "HB_HAVE_FREETYPE was set, but we failed to find it. Maybe add a CMAKE_PREFIX_PATH= to your Freetype2 install prefix")
+ endif ()
diff --git a/ports/harfbuzz/portfile.cmake b/ports/harfbuzz/portfile.cmake
index 8c77d1efe..906e42d95 100644
--- a/ports/harfbuzz/portfile.cmake
+++ b/ports/harfbuzz/portfile.cmake
@@ -1,19 +1,35 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/harfbuzz-1.4.6)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/behdad/harfbuzz/releases/download/1.4.6/harfbuzz-1.4.6.tar.bz2"
- FILENAME "harfbuzz-1.4.6.tar.bz2"
- SHA512 aade3902adadf3a8339ba1d05279e639da7cb53981adc64e2a2d32a5d49335a6a9782a62cdf80beca569ec8a639792bf0368c0b6ecad08f35bc85878678aa096
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO behdad/harfbuzz
+ REF 1.7.6
+ SHA512 90b51475d532377fe1686264a40f4a5555fc024f6984c1e3c114d8f4662e0c7f4a13e6a95e35fd5b3c54d1bb1b3cb97840b23f5ec2c6a799da61db1614b0fce3
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/0001-fix-uwp-build.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/find-package-freetype-2.patch"
+)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_CMAKE_SYSTEM_NAME)
+ SET(HAVE_GLIB "OFF")
+ SET(BUILTIN_UCDN "ON")
+else()
+ SET(HAVE_GLIB "ON")
+ SET(BUILTIN_UCDN "OFF")
+endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DHB_HAVE_FREETYPE=ON
- -DHB_HAVE_GLIB=ON
- -DHB_BUILTIN_UCDN=OFF
+ -DHB_HAVE_GLIB=${HAVE_GLIB}
+ -DHB_BUILTIN_UCDN=${BUILTIN_UCDN}
OPTIONS_DEBUG
-DSKIP_INSTALL_HEADERS=ON
)
diff --git a/ports/hdf5/CONTROL b/ports/hdf5/CONTROL
index 70d1f9979..1d86a5edf 100644
--- a/ports/hdf5/CONTROL
+++ b/ports/hdf5/CONTROL
@@ -1,4 +1,11 @@
Source: hdf5
-Version: 1.10.0-patch1-1
+Version: 1.10.1-1
Description: HDF5 is a data model, library, and file format for storing and managing data
-Build-Depends: zlib, szip, msmpi \ No newline at end of file
+Build-Depends: zlib, szip
+
+Feature: parallel
+Description: parallel support for HDF5
+Build-Depends: msmpi
+
+Feature: cpp
+Description: Builds cpp lib
diff --git a/ports/hdf5/disable-static-libs.patch b/ports/hdf5/disable-static-libs.patch
index 4b7b440ec..4d33c5e45 100644
--- a/ports/hdf5/disable-static-libs.patch
+++ b/ports/hdf5/disable-static-libs.patch
@@ -1,12 +1,10 @@
-diff --git a/hl/src/CMakeLists.txt b/hl/src/CMakeLists.txt
-index 872e42d..146d0a9 100644
---- a/hl/src/CMakeLists.txt
-+++ b/hl/src/CMakeLists.txt
-@@ -29,16 +29,20 @@ set (HL_HEADERS
+--- a/hl/src/CMakeLists.txt Thu Apr 13 18:26:10 2017
++++ b/hl/src/CMakeLists.txt Wed Jan 03 13:13:06 2018
+@@ -29,16 +29,20 @@
${HDF5_HL_SRC_SOURCE_DIR}/hdf5_hl.h
)
--add_library (${HDF5_HL_LIB_TARGET} STATIC ${HL_SRCS} ${HL_HEADERS})
+-add_library (${HDF5_HL_LIB_TARGET} STATIC ${HL_SOURCES} ${HL_HEADERS})
-TARGET_C_PROPERTIES (${HDF5_HL_LIB_TARGET} STATIC " " " ")
-target_link_libraries (${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET})
-H5_SET_LIB_OPTIONS (${HDF5_HL_LIB_TARGET} ${HDF5_HL_LIB_NAME} STATIC)
@@ -19,7 +17,7 @@ index 872e42d..146d0a9 100644
+set (install_targets)
+
+if (NOT DISABLE_STATIC_LIBS)
-+ add_library (${HDF5_HL_LIB_TARGET} STATIC ${HL_SRCS} ${HL_HEADERS})
++ add_library (${HDF5_HL_LIB_TARGET} STATIC ${HL_SOURCES} ${HL_HEADERS})
+ TARGET_C_PROPERTIES (${HDF5_HL_LIB_TARGET} STATIC " " " ")
+ target_link_libraries (${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET})
+ H5_SET_LIB_OPTIONS (${HDF5_HL_LIB_TARGET} ${HDF5_HL_LIB_NAME} STATIC)
@@ -28,16 +26,25 @@ index 872e42d..146d0a9 100644
+ INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+ )
+ set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_LIB_TARGET}")
-+ set (install_targets ${install_targets} ${HDF5_HL_LIB_TARGET})
-+endif (NOT DISABLE_STATIC_LIBS)
++ set (install_targets ${HDF5_HL_LIB_TARGET})
++endif ()
if (BUILD_SHARED_LIBS)
- add_library (${HDF5_HL_LIBSH_TARGET} SHARED ${HL_SRCS} ${HL_HEADERS})
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index d93612b..a63cc3a 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -851,30 +851,33 @@ add_custom_command (
+ add_library (${HDF5_HL_LIBSH_TARGET} SHARED ${HL_SOURCES} ${HL_HEADERS})
+@@ -73,8 +77,9 @@
+ if (HDF5_EXPORTED_TARGETS)
+ if (BUILD_SHARED_LIBS)
+ INSTALL_TARGET_PDB (${HDF5_HL_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} hllibraries)
++ else ()
++ INSTALL_TARGET_PDB (${HDF5_HL_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hllibraries)
+ endif ()
+- INSTALL_TARGET_PDB (${HDF5_HL_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hllibraries)
+
+ install (
+ TARGETS
+--- a/src/CMakeLists.txt Thu Apr 13 18:26:11 2017
++++ b/src/CMakeLists.txt Wed Jan 03 13:03:05 2018
+@@ -876,30 +876,33 @@
#-----------------------------------------------------------------------------
set (gen_SRCS ${HDF5_BINARY_DIR}/H5Tinit.c ${HDF5_BINARY_DIR}/H5lib_settings.c)
@@ -45,46 +52,62 @@ index d93612b..a63cc3a 100644
-TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} STATIC " " " ")
-target_link_libraries (${HDF5_LIB_TARGET} ${LINK_LIBS})
-if (NOT WIN32)
-+set (install_targets)
-+if (NOT DISABLE_STATIC_LIBS)
-+ add_library (${HDF5_LIB_TARGET} STATIC ${common_SRCS} ${gen_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS} ${H5_GENERATED_HEADERS})
-+ TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} STATIC " " " ")
-+ target_link_libraries (${HDF5_LIB_TARGET} ${LINK_LIBS})
-+ if (NOT WIN32)
- target_link_libraries (${HDF5_LIB_TARGET} dl)
--endif (NOT WIN32)
+- target_link_libraries (${HDF5_LIB_TARGET} dl)
+-endif ()
-if (H5_HAVE_PARALLEL AND MPI_C_FOUND)
-+ endif (NOT WIN32)
-+ if (H5_HAVE_PARALLEL AND MPI_C_FOUND)
- target_link_libraries (${HDF5_LIB_TARGET} ${MPI_C_LIBRARIES})
--endif (H5_HAVE_PARALLEL AND MPI_C_FOUND)
+- target_link_libraries (${HDF5_LIB_TARGET} ${MPI_C_LIBRARIES})
+-endif ()
-set_global_variable (HDF5_LIBRARIES_TO_EXPORT ${HDF5_LIB_TARGET})
-H5_SET_LIB_OPTIONS (${HDF5_LIB_TARGET} ${HDF5_LIB_NAME} STATIC)
-set_target_properties (${HDF5_LIB_TARGET} PROPERTIES
- FOLDER libraries
- INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
-)
-+ endif (H5_HAVE_PARALLEL AND MPI_C_FOUND)
+-
+-option (HDF5_ENABLE_DEBUG_APIS "Turn on extra debug output in all packages" OFF)
+-if (HDF5_ENABLE_DEBUG_APIS)
++set (install_targets)
++if (NOT DISABLE_STATIC_LIBS)
++ add_library (${HDF5_LIB_TARGET} STATIC ${common_SRCS} ${gen_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS} ${H5_GENERATED_HEADERS})
++ TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} STATIC " " " ")
++ target_link_libraries (${HDF5_LIB_TARGET} ${LINK_LIBS})
++ if (NOT WIN32)
++ target_link_libraries (${HDF5_LIB_TARGET} dl)
++ endif ()
++ if (H5_HAVE_PARALLEL AND MPI_C_FOUND)
++ target_link_libraries (${HDF5_LIB_TARGET} ${MPI_C_LIBRARIES})
++ endif ()
+ set_global_variable (HDF5_LIBRARIES_TO_EXPORT ${HDF5_LIB_TARGET})
+ H5_SET_LIB_OPTIONS (${HDF5_LIB_TARGET} ${HDF5_LIB_NAME} STATIC)
-+ set_target_properties (${HDF5_LIB_TARGET} PROPERTIES
+ set_target_properties (${HDF5_LIB_TARGET} PROPERTIES
+- COMPILE_DEFINITIONS
+- "H5Z_DEBUG;H5T_DEBUG;H5ST_DEBUG;H5S_DEBUG;H5O_DEBUG;H5I_DEBUG;H5HL_DEBUG;H5F_DEBUG;H5D_DEBUG;H5B2_DEBUG;H5AC_DEBUG"
+ FOLDER libraries
+ INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
-+ )
-
--option (HDF5_ENABLE_DEBUG_APIS "Turn on extra debug output in all packages" OFF)
--if (HDF5_ENABLE_DEBUG_APIS)
+ )
++
+ option (HDF5_ENABLE_DEBUG_APIS "Turn on extra debug output in all packages" OFF)
+ if (HDF5_ENABLE_DEBUG_APIS)
- set_target_properties (${HDF5_LIB_TARGET} PROPERTIES
- COMPILE_DEFINITIONS
- "H5Z_DEBUG;H5T_DEBUG;H5ST_DEBUG;H5S_DEBUG;H5O_DEBUG;H5I_DEBUG;H5HL_DEBUG;H5F_DEBUG;H5D_DEBUG;H5B2_DEBUG;H5AC_DEBUG"
- )
--endif (HDF5_ENABLE_DEBUG_APIS)
++ set_target_properties (${HDF5_LIB_TARGET} PROPERTIES
++ COMPILE_DEFINITIONS
++ "H5Z_DEBUG;H5T_DEBUG;H5ST_DEBUG;H5S_DEBUG;H5O_DEBUG;H5I_DEBUG;H5HL_DEBUG;H5F_DEBUG;H5D_DEBUG;H5B2_DEBUG;H5AC_DEBUG"
++ )
++ endif ()
++ set (install_targets ${HDF5_LIB_TARGET})
+ endif ()
-set (install_targets ${HDF5_LIB_TARGET})
-+ endif (HDF5_ENABLE_DEBUG_APIS)
-+ set (install_targets ${install_targets} ${HDF5_LIB_TARGET})
-+endif (NOT DISABLE_STATIC_LIBS)
if (BUILD_SHARED_LIBS)
file (MAKE_DIRECTORY "${HDF5_BINARY_DIR}/shared")
+@@ -975,8 +978,10 @@
+ if (HDF5_EXPORTED_TARGETS)
+ if (BUILD_SHARED_LIBS)
+ INSTALL_TARGET_PDB (${HDF5_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} libraries)
++ else ()
++ INSTALL_TARGET_PDB (${HDF5_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} libraries)
+ endif ()
+- INSTALL_TARGET_PDB (${HDF5_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} libraries)
++
+
+ install (
+ TARGETS
diff --git a/ports/hdf5/link-libraries-private.patch b/ports/hdf5/link-libraries-private.patch
index 15db78a2d..df423b8bb 100644
--- a/ports/hdf5/link-libraries-private.patch
+++ b/ports/hdf5/link-libraries-private.patch
@@ -1,8 +1,6 @@
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index a63cc3a..aea963d 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -900,12 +900,12 @@ if (BUILD_SHARED_LIBS)
+--- a/src/CMakeLists.txt Wed Jan 03 13:16:33 2018
++++ b/src/CMakeLists.txt Wed Jan 03 13:16:56 2018
+@@ -925,12 +925,12 @@
set (shared_gen_SRCS ${HDF5_BINARY_DIR}/shared/H5Tinit.c ${HDF5_BINARY_DIR}/shared/H5lib_settings.c)
add_library (${HDF5_LIBSH_TARGET} SHARED ${common_SRCS} ${shared_gen_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS} ${H5_GENERATED_HEADERS})
TARGET_C_PROPERTIES (${HDF5_LIBSH_TARGET} SHARED " " " ")
@@ -11,19 +9,19 @@ index a63cc3a..aea963d 100644
if (NOT WIN32)
- target_link_libraries (${HDF5_LIBSH_TARGET} dl)
+ target_link_libraries (${HDF5_LIBSH_TARGET} PRIVATE dl)
- endif (NOT WIN32)
+ endif ()
if (H5_HAVE_PARALLEL AND MPI_C_FOUND)
- target_link_libraries (${HDF5_LIBSH_TARGET} ${MPI_C_LIBRARIES})
+ target_link_libraries (${HDF5_LIBSH_TARGET} PRIVATE ${MPI_C_LIBRARIES})
- endif (H5_HAVE_PARALLEL AND MPI_C_FOUND)
+ endif ()
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_LIBSH_TARGET}")
H5_SET_LIB_OPTIONS (${HDF5_LIBSH_TARGET} ${HDF5_LIB_NAME} SHARED ${HDF5_PACKAGE_SOVERSION})
-@@ -920,7 +920,7 @@ if (BUILD_SHARED_LIBS)
+@@ -945,7 +945,7 @@
APPEND PROPERTY COMPILE_DEFINITIONS
"H5_HAVE_THREADSAFE"
)
- target_link_libraries (${HDF5_LIBSH_TARGET} Threads::Threads)
+ target_link_libraries (${HDF5_LIBSH_TARGET} PRIVATE Threads::Threads)
- endif (HDF5_ENABLE_THREADSAFE)
+ endif ()
if (HDF5_ENABLE_DEBUG_APIS)
diff --git a/ports/hdf5/portfile.cmake b/ports/hdf5/portfile.cmake
index 9801ec44a..1da61178b 100644
--- a/ports/hdf5/portfile.cmake
+++ b/ports/hdf5/portfile.cmake
@@ -1,24 +1,13 @@
-# 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)
-# set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/hdf5-1.8.18)
-# vcpkg_download_distfile(ARCHIVE
-# URLS "https://support.hdfgroup.org/ftp/HDF5/current18/src/hdf5-1.8.18.tar.bz2"
-# FILENAME "hdf5-1.8.18.tar.bz2"
-# SHA512 01f6d14bdd3be2ced9c63cc9e1820cd7ea11db649ff9f3a3055c18c4b0fffe777fd23baad536e3bce31c4d76fe17db64a3972762e1bb4d232927c1ca140e72b2
-# )
-# vcpkg_extract_source_archive(${ARCHIVE})
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/CMake-hdf5-1.10.0-patch1/hdf5-1.10.0-patch1)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/CMake-hdf5-1.10.1/hdf5-1.10.1)
vcpkg_download_distfile(ARCHIVE
- URLS "http://hdf4.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.0-patch1/src/CMake-hdf5-1.10.0-patch1.zip"
- FILENAME "CMake-hdf5-1.10.0-patch1.zip"
- SHA512 ec2edb43438661323be5998ecf64c4dd537ddc7451e31f89390260d16883e60a1ccc1bf745bcb809af22f2bf7157d50331a33910b8ebf5c59cd50693dfb2ef8f
+ URLS "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.1/src/CMake-hdf5-1.10.1.zip"
+ FILENAME "CMake-hdf5-1.10.1.zip"
+ SHA512 0045a6301c6e3479be70f025d8690297ff33b9e6e99ec217a33e9b916d9410fb3f7110b7361fbeaec163c35b8e6bd948ac8d5fdace80930c98c6a0b27c6fd5c4
)
vcpkg_extract_source_archive(${ARCHIVE})
@@ -30,9 +19,18 @@ vcpkg_apply_patches(
${CMAKE_CURRENT_LIST_DIR}/link-libraries-private.patch
)
-set(DISABLE_STATIC_LIBS OFF)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
- set(DISABLE_STATIC_LIBS ON)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" DISABLE_STATIC_LIBS)
+
+if ("parallel" IN_LIST FEATURES)
+ set(ENABLE_PARALLEL ON)
+else()
+ set(ENABLE_PARALLEL OFF)
+endif()
+
+if ("cpp" IN_LIST FEATURES)
+ set(ENABLE_CPP ON)
+else()
+ set(ENABLE_CPP OFF)
endif()
vcpkg_configure_cmake(
@@ -43,8 +41,8 @@ vcpkg_configure_cmake(
-DDISABLE_STATIC_LIBS=${DISABLE_STATIC_LIBS}
-DHDF5_BUILD_EXAMPLES=OFF
-DHDF5_BUILD_TOOLS=OFF
- -DHDF5_BUILD_CPP_LIB=OFF
- -DHDF5_ENABLE_PARALLEL=ON
+ -DHDF5_BUILD_CPP_LIB=${ENABLE_CPP}
+ -DHDF5_ENABLE_PARALLEL=${ENABLE_PARALLEL}
-DHDF5_ENABLE_Z_LIB_SUPPORT=ON
-DHDF5_ENABLE_SZIP_SUPPORT=ON
-DHDF5_ENABLE_SZIP_ENCODING=ON
@@ -57,9 +55,7 @@ vcpkg_copy_pdbs()
file(RENAME ${CURRENT_PACKAGES_DIR}/share/hdf5/data/COPYING ${CURRENT_PACKAGES_DIR}/share/hdf5/copyright)
-file(READ ${CURRENT_PACKAGES_DIR}/debug/share/hdf5/hdf5-targets-debug.cmake HDF5_TARGETS_DEBUG_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" HDF5_TARGETS_DEBUG_MODULE "${HDF5_TARGETS_DEBUG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/hdf5/hdf5-targets-debug.cmake "${HDF5_TARGETS_DEBUG_MODULE}")
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/hdf5)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/highfive/CONTROL b/ports/highfive/CONTROL
new file mode 100644
index 000000000..22c7d616b
--- /dev/null
+++ b/ports/highfive/CONTROL
@@ -0,0 +1,4 @@
+Source: highfive
+Version: 1.5
+Description: HighFive is a modern C++/C++11 friendly interface for libhdf5
+Build-Depends: hdf5
diff --git a/ports/highfive/portfile.cmake b/ports/highfive/portfile.cmake
new file mode 100644
index 000000000..72f644e0e
--- /dev/null
+++ b/ports/highfive/portfile.cmake
@@ -0,0 +1,28 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO BlueBrain/HighFive
+ REF v1.5
+ SHA512 4133ec2768f54cb3e56c32f3193d6c61ea96013dc73901c39d31ecaf10b04ea2861b0f6f5c9795985050ef72a75e2d360a4b906c9cdeb8ee49309961e15d39bf
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DHIGHFIVE_UNIT_TESTS=OFF
+ -DHIGHFIVE_EXAMPLES=OFF
+ -DUSE_BOOST=OFF
+ -DHIGH_FIVE_DOCUMENTATION=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/HighFive/CMake)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/highfive RENAME copyright)
diff --git a/ports/hpx/CONTROL b/ports/hpx/CONTROL
new file mode 100644
index 000000000..ff6801a42
--- /dev/null
+++ b/ports/hpx/CONTROL
@@ -0,0 +1,5 @@
+Source: hpx
+Version: 1.1.0-1
+Build-Depends: hwloc, boost-accumulators, boost-algorithm, boost-asio, boost-assign, boost-atomic, boost-bimap, boost-chrono, boost-config, boost-context, boost-date-time, boost-dynamic-bitset, boost-exception, boost-filesystem, boost-format, boost-iostreams, boost-lockfree, boost-parameter, boost-program-options, boost-range, boost-regex, boost-signals2, boost-smart-ptr, boost-spirit, boost-system, boost-thread, boost-throw-exception, boost-variant, boost-winapi
+Description: The C++ Standards Library for Concurrency and Parallelism
+ HPX is a C++ Standards Library for Concurrency and Parallelism. It implements all of the corresponding facilities as defined by the C++ Standard. Additionally, in HPX we implement functionalities proposed as part of the ongoing C++ standardization process. We also extend the C++ Standard APIs to the distributed case.
diff --git a/ports/hpx/portfile.cmake b/ports/hpx/portfile.cmake
new file mode 100644
index 000000000..c200a6278
--- /dev/null
+++ b/ports/hpx/portfile.cmake
@@ -0,0 +1,94 @@
+include(vcpkg_common_functions)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(STATUS "Warning: Static building of HPX not supported yet. Building dynamic.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO STEllAR-GROUP/hpx
+ REF 1.1.0
+ SHA512 435250143ddbd2608995fe3dc5c229a096312d7ac930925ae56d0abd2d5689886126f6e81bc7e37b84ca9bc99f951ef1f39580168a359c48788ac8d008bc7078
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ "-DBOOST_ROOT=${CURRENT_INSTALLED_DIR}/share/boost"
+ "-DHWLOC_ROOT=${CURRENT_INSTALLED_DIR}/share/hwloc"
+ -DHPX_WITH_VCPKG=ON
+ -DHPX_WITH_HWLOC=ON
+ -DHPX_WITH_TESTS=OFF
+ -DHPX_WITH_EXAMPLES=OFF
+ -DHPX_WITH_TOOLS=OFF
+ -DHPX_WITH_RUNTIME=OFF
+)
+
+vcpkg_install_cmake()
+
+# post build cleanup
+file(GLOB SHARE_DIR ${CURRENT_PACKAGES_DIR}/share/hpx-*)
+file(RENAME ${SHARE_DIR} ${CURRENT_PACKAGES_DIR}/share/hpx)
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/HPX)
+
+file(GLOB_RECURSE CMAKE_FILES "${CURRENT_PACKAGES_DIR}/share/hpx/*.cmake")
+foreach(CMAKE_FILE IN LISTS CMAKE_FILES)
+ file(READ ${CMAKE_FILE} _contents)
+ string(REGEX REPLACE
+ "lib/([A-Za-z0-9_.-]+\\.dll)"
+ "bin/\\1"
+ _contents "${_contents}")
+ string(REGEX REPLACE
+ "lib/hpx/([A-Za-z0-9_.-]+\\.dll)"
+ "bin/\\1"
+ _contents "${_contents}")
+ file(WRITE ${CMAKE_FILE} "${_contents}")
+endforeach()
+
+file(READ "${CURRENT_PACKAGES_DIR}/share/hpx/HPXMacros.cmake" _contents)
+string(REPLACE "set(CMAKE_MODULE_PATH \${CMAKE_MODULE_PATH} \"\${CMAKE_CURRENT_LIST_DIR}/../../lib/cmake/HPX\")" "list(APPEND CMAKE_MODULE_PATH \"\${CMAKE_CURRENT_LIST_DIR}\")" _contents "${_contents}")
+file(WRITE "${CURRENT_PACKAGES_DIR}/share/hpx/HPXMacros.cmake" "${_contents}")
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE_1_0.txt
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/hpx RENAME copyright)
+
+file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/lib/*.dll)
+if(DLLS)
+ file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${DLLS})
+endif()
+
+file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/lib/hpx/*.dll)
+if(DLLS)
+ file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${DLLS})
+endif()
+
+file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll)
+if(DLLS)
+ file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DLLS})
+endif()
+
+file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/hpx/*.dll)
+if(DLLS)
+ file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DLLS})
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/bazel)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/bazel)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig)
+
+vcpkg_copy_pdbs()
diff --git a/ports/http-parser/CMakeLists.txt b/ports/http-parser/CMakeLists.txt
index d959fff79..284c8e903 100644
--- a/ports/http-parser/CMakeLists.txt
+++ b/ports/http-parser/CMakeLists.txt
@@ -1,8 +1,8 @@
-cmake_minimum_required (VERSION 3.4)
-project (http-parser)
+cmake_minimum_required(VERSION 3.4)
+project(http-parser C)
-if (BUILD_SHARED_LIBS)
- SET(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+if(BUILD_SHARED_LIBS)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif()
if(CMAKE_BUILD_TYPE MATCHES "Release")
@@ -11,11 +11,21 @@ endif()
add_library(http_parser http_parser.c http_parser.h)
-install(TARGETS http_parser
- RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin"
- ARCHIVE DESTINATION "${CMAKE_INSTALL_PREFIX}/lib"
+target_include_directories(http_parser PUBLIC $<INSTALL_INTERFACE:include>)
+
+install(
+ TARGETS http_parser
+ EXPORT NODEJS_HTTP_PARSER_ALL_TARGETS
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin
+)
+
+install(
+ EXPORT NODEJS_HTTP_PARSER_ALL_TARGETS
+ NAMESPACE unofficial::http_parser::
+ FILE unofficial-http-parser-config.cmake
+ DESTINATION share/unofficial-http-parser
)
-if (NOT SKIP_INSTALL_HEADERS)
- install(FILES http_parser.h DESTINATION "${CMAKE_INSTALL_PREFIX}/include")
-endif() \ No newline at end of file
+install(FILES http_parser.h DESTINATION include)
diff --git a/ports/http-parser/CONTROL b/ports/http-parser/CONTROL
index 605f3354c..26b9f8d34 100644
--- a/ports/http-parser/CONTROL
+++ b/ports/http-parser/CONTROL
@@ -1,3 +1,3 @@
Source: http-parser
-Version: 2.7.1-1
-Description: HTTP Parser. \ No newline at end of file
+Version: 2.7.1-3
+Description: HTTP Parser.
diff --git a/ports/http-parser/portfile.cmake b/ports/http-parser/portfile.cmake
index 728293eed..49f829a53 100644
--- a/ports/http-parser/portfile.cmake
+++ b/ports/http-parser/portfile.cmake
@@ -1,29 +1,25 @@
-# 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}
-#
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/http-parser-2.7.1)
-vcpkg_download_distfile(ARCHIVE_FILE
- URLS "https://github.com/nodejs/http-parser/archive/v2.7.1.zip"
- FILENAME "http-parser-2.7.1.zip"
- SHA512 9fb8b855ba7edb47628c91ac062d7ffce9c4bb8d6b8237d861d7926af989fb3e354c113821bdab1b8ac910f5f1064ca1339947aa20d56f6806b919b0cd6b6eae
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO nodejs/http-parser
+ REF v2.7.1
+ SHA512 c0fe86455db1a563a5c668f118dfa9a27b9a637ee1c0e2f2f18a5b816352436ed90435ea978e3f3d85b037d3c630234e47d609dc3b7086b898286c4e54d9f031
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE_FILE})
+
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS_DEBUG
- -DSKIP_INSTALL_HEADERS=ON
+ PREFER_NINJA
)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+vcpkg_fixup_cmake_targets(CONFIG_PATH "share/unofficial-http-parser" TARGET_PATH "share/unofficial-http-parser")
+
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE-MIT DESTINATION ${CURRENT_PACKAGES_DIR}/share/http-parser)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/http-parser/LICENSE-MIT ${CURRENT_PACKAGES_DIR}/share/http-parser/copyright) \ No newline at end of file
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/http-parser/LICENSE-MIT ${CURRENT_PACKAGES_DIR}/share/http-parser/copyright)
diff --git a/ports/hunspell/0001_fix_unistd.patch b/ports/hunspell/0001_fix_unistd.patch
new file mode 100644
index 000000000..79a48d824
--- /dev/null
+++ b/ports/hunspell/0001_fix_unistd.patch
@@ -0,0 +1,78 @@
+From 9f33c841afe51be517eaea318d46985c596c94ff Mon Sep 17 00:00:00 2001
+From: Mikhail Paulyshka <me@mixaill.tk>
+Date: Tue, 25 Jul 2017 01:58:39 +0300
+Subject: [PATCH] tools/hzip: fix build with MSVC
+
+---
+ src/tools/hzip.cxx | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/tools/hzip.cxx b/src/tools/hzip.cxx
+index ef1864f..d284c64 100644
+--- a/src/tools/hzip.cxx
++++ b/src/tools/hzip.cxx
+@@ -41,7 +41,9 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#ifdef HAVE_UNISTD_H
+ #include <unistd.h>
++#endif /* HAVE_UNISTD_H */
+ #include <string>
+ #include <sys/stat.h>
+
+--
+2.12.2.windows.2
+
+From 840f920bcd370668b9e788b3c8272eca1f20ce3a Mon Sep 17 00:00:00 2001
+From: Mikhail Paulyshka <me@mixaill.tk>
+Date: Tue, 25 Jul 2017 01:55:13 +0300
+Subject: [PATCH] tools/unmunch: fix build with MSVC
+
+---
+ src/tools/unmunch.cxx | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/tools/unmunch.cxx b/src/tools/unmunch.cxx
+index 44b4cb1..2144370 100644
+--- a/src/tools/unmunch.cxx
++++ b/src/tools/unmunch.cxx
+@@ -42,7 +42,9 @@
+ #include <ctype.h>
+ #include <string.h>
+ #include <string>
++#ifdef HAVE_UNISTD_H
+ #include <unistd.h>
++#endif /* HAVE_UNISTD_H */
+ #include <stdlib.h>
+ #include <stdint.h>
+ #include <stdio.h>
+--
+2.12.2.windows.2
+
+From 1c231aa84624082a0fa52d59be8c449bfe1fadd1 Mon Sep 17 00:00:00 2001
+From: Mikhail Paulyshka <me@mixaill.tk>
+Date: Tue, 25 Jul 2017 01:50:21 +0300
+Subject: [PATCH] tools/munch: fix build with MSVC
+
+Include <unistd.h> only if exists
+---
+ src/tools/munch.cxx | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/tools/munch.cxx b/src/tools/munch.cxx
+index 17fc6fd..8503abe 100644
+--- a/src/tools/munch.cxx
++++ b/src/tools/munch.cxx
+@@ -40,7 +40,9 @@
+ #include <ctype.h>
+ #include <string.h>
+ #include <string>
++#ifdef HAVE_UNISTD_H
+ #include <unistd.h>
++#endif /* HAVE_UNISTD_H */
+ #include <stdlib.h>
+ #include <stdint.h>
+ #include <stdio.h>
+--
+2.12.2.windows.2
diff --git a/ports/hunspell/CMakeLists.txt b/ports/hunspell/CMakeLists.txt
new file mode 100644
index 000000000..c04e0e37c
--- /dev/null
+++ b/ports/hunspell/CMakeLists.txt
@@ -0,0 +1,151 @@
+cmake_minimum_required(VERSION 3.0)
+project(hunspell)
+
+#get hunspell version
+file(STRINGS "configure.ac" CONFIGURE_AC_INIT REGEX "AC_INIT\\(\\[hunspell\\],\\[.*\\].*" )
+string(REGEX REPLACE "AC_INIT\\(\\[.*\\],\\[([0-9]+\\.[0-9]+\\.[0-9]+)\\].*" "\\1" VERSION ${CONFIGURE_AC_INIT})
+message(STATUS "Hunspell version: ${VERSION}")
+
+option(BUILD_SHARED_LIBS "Build shared libs" OFF)
+option(ENABLE_NLS "Define if translation of program messages to the user's native language is requested" OFF)
+option(HUNSPELL_WARNING_ON "Define if you need warning messages" OFF)
+
+if(NOT BUILD_SHARED_LIBS)
+ add_definitions(-DHUNSPELL_STATIC)
+endif()
+
+if(MSVC)
+ add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+include_directories("src/hunspell")
+include_directories("src/parsers")
+
+#libhunspell
+set(LIBHUNSPELL_SRCS
+ src/hunspell/affentry.cxx
+ src/hunspell/affixmgr.cxx
+ src/hunspell/csutil.cxx
+ src/hunspell/hashmgr.cxx
+ src/hunspell/hunspell.cxx
+ src/hunspell/suggestmgr.cxx
+ src/hunspell/phonet.cxx
+ src/hunspell/filemgr.cxx
+ src/hunspell/hunzip.cxx
+ src/hunspell/replist.cxx
+ src/hunspell/affentry.hxx
+ src/hunspell/htypes.hxx
+ src/hunspell/affixmgr.hxx
+ src/hunspell/csutil.hxx
+ src/hunspell/atypes.hxx
+ src/hunspell/suggestmgr.hxx
+ src/hunspell/baseaffix.hxx
+ src/hunspell/hashmgr.hxx
+ src/hunspell/langnum.hxx
+ src/hunspell/phonet.hxx
+ src/hunspell/filemgr.hxx
+ src/hunspell/hunzip.hxx
+ src/hunspell/replist.hxx
+)
+
+set(LIBHUNSPELL_HDRS
+ src/hunspell/hunspell.hxx
+ src/hunspell/hunspell.h
+ src/hunspell/hunvisapi.h
+ src/hunspell/w_char.hxx
+ src/hunspell/atypes.hxx
+ src/hunspell/csutil.hxx
+ src/hunspell/htypes.hxx
+)
+
+#hunspell/libhunspell
+add_library(libhunspell ${LIBHUNSPELL_HDRS} ${LIBHUNSPELL_SRCS})
+target_compile_definitions(libhunspell PRIVATE -DBUILDING_LIBHUNSPELL)
+
+#parsers/libparsers
+set(LIBPARSERS_SRCS
+ src/parsers/firstparser.cxx
+ src/parsers/xmlparser.cxx
+ src/parsers/latexparser.cxx
+ src/parsers/manparser.cxx
+ src/parsers/textparser.cxx
+ src/parsers/htmlparser.cxx
+ src/parsers/odfparser.cxx
+)
+add_library(libparsers OBJECT ${LIBPARSERS_SRCS})
+
+#parsers/testparser
+set(TESTPARSER_SRCS
+ src/parsers/firstparser.cxx
+ src/parsers/firstparser.hxx
+ src/parsers/xmlparser.cxx
+ src/parsers/xmlparser.hxx
+ src/parsers/latexparser.cxx
+ src/parsers/latexparser.hxx
+ src/parsers/manparser.cxx
+ src/parsers/manparser.hxx
+ src/parsers/testparser.cxx
+ src/parsers/textparser.cxx
+ src/parsers/textparser.hxx
+ src/parsers/htmlparser.cxx
+ src/parsers/htmlparser.hxx
+ src/parsers/odfparser.hxx
+ src/parsers/odfparser.cxx
+)
+
+add_executable(testparser ${TESTPARSER_SRCS})
+target_link_libraries(testparser libhunspell)
+
+#tools/analyze
+add_executable(analyze "src/tools/analyze.cxx")
+target_link_libraries(analyze libhunspell)
+
+#tools/chmorph
+add_executable(chmorph "src/tools/chmorph.cxx" $<TARGET_OBJECTS:libparsers>)
+target_link_libraries(chmorph libhunspell)
+
+#tools/hunspell
+include(CheckIncludeFile)
+check_include_file("curses.h" HAVE_CURSES_H)
+check_include_file("langinfo.h" HAVE_LANGINFO_CODESET)
+check_include_file("libintl.h" HAVE_LIBINTL_H)
+check_include_file("locale.h" HAVE_LOCALE_H)
+check_include_file("ncursesw/curses.h" HAVE_NCURSESW_H)
+check_include_file("unistd.h" HAVE_UNISTD_H)
+configure_file("config.h.in" "config.h")
+
+add_executable(hunspell "src/tools/hunspell.cxx" $<TARGET_OBJECTS:libparsers>)
+target_include_directories(hunspell PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
+target_link_libraries(hunspell libhunspell)
+
+#tools/munch
+add_executable(munch "src/tools/munch.cxx")
+
+#tools/unmunch
+add_executable(unmunch "src/tools/unmunch.cxx")
+
+#tools/hzip
+#add_executable(hzip "src/tools/hzip.cxx")
+#target_link_libraries(hzip libhunspell)
+
+#tools/hunzip
+add_executable(hunzip "src/tools/hunzip.cxx")
+target_link_libraries(hunzip libhunspell)
+
+install(
+TARGETS
+ libhunspell
+ hunspell
+ testparser
+ analyze
+ chmorph
+ munch
+ unmunch
+# hzip
+ hunzip
+ARCHIVE DESTINATION lib
+LIBRARY DESTINATION lib
+RUNTIME DESTINATION bin
+)
+
+install(FILES ${LIBHUNSPELL_HDRS} DESTINATION "include/hunspell/")
diff --git a/ports/hunspell/CONTROL b/ports/hunspell/CONTROL
new file mode 100644
index 000000000..da62f205b
--- /dev/null
+++ b/ports/hunspell/CONTROL
@@ -0,0 +1,3 @@
+Source: hunspell
+Version: 1.6.1-2
+Description: The most popular spellchecking library.
diff --git a/ports/hunspell/config.h.in b/ports/hunspell/config.h.in
new file mode 100644
index 000000000..c659d1c52
--- /dev/null
+++ b/ports/hunspell/config.h.in
@@ -0,0 +1,35 @@
+
+/* Define to 1 if translation of program messages to the user's native language is requested. */
+#cmakedefine ENABLE_NLS 1
+
+/* "Define if you have the <curses.h> header" */
+#cmakedefine HAVE_CURSES_H 1
+
+/* Define if you have the iconv() function. */
+#cmakedefine HAVE_ICONV 1
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#cmakedefine HAVE_LANGINFO_CODESET 1
+
+/* Define to 1 if you have the <libintl.h> header file. */
+#cmakedefine HAVE_LIBINTL_H 1
+
+/* Define to 1 if you have the <locale.h> header file. */
+#cmakedefine HAVE_LOCALE_H 1
+
+/* "Define if you have the <ncursesw/curses.h> header" */
+#cmakedefine HAVE_NCURSESW_H 1
+
+/* "Define if you have fancy command input editing with Readline" */
+#cmakedefine HAVE_READLINE 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#cmakedefine HAVE_UNISTD_H 1
+
+/* Define if you need warning messages */
+#cmakedefine HUNSPELL_WARNING_ON 1
+
+/* Define as const if the declaration of iconv() needs const. */
+#cmakedefine ICONV_CONST const
+
+#cmakedefine VERSION "@VERSION@" \ No newline at end of file
diff --git a/ports/hunspell/portfile.cmake b/ports/hunspell/portfile.cmake
new file mode 100644
index 000000000..7d632563c
--- /dev/null
+++ b/ports/hunspell/portfile.cmake
@@ -0,0 +1,52 @@
+include(vcpkg_common_functions)
+set(HUNSPELL_VERSION 1.6.1)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/hunspell-${HUNSPELL_VERSION})
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/hunspell/hunspell/archive/v${HUNSPELL_VERSION}.zip"
+ FILENAME "hunspell-${HUNSPELL_VERSION}.zip"
+ SHA512 164eb1ae9ff9f4d8efe8998fa3ad847bf5a0c1a87113acc52dcdb3aaddb4e9179274585623bd7152f9a82b803bd42ce24fe856ac8d49121214bef59ac1c7753c
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001_fix_unistd.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h.in DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_build_cmake()
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(GLOB_RECURSE TOOLS_RELEASE ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+file(GLOB_RECURSE TOOLS_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+
+file(COPY ${TOOLS_RELEASE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+
+file(REMOVE ${TOOLS_RELEASE} ${TOOLS_DEBUG})
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/hunspell)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/hunspell/COPYING ${CURRENT_PACKAGES_DIR}/share/hunspell/copyright)
+
+file(COPY ${SOURCE_PATH}/COPYING.LESSER DESTINATION ${CURRENT_PACKAGES_DIR}/share/hunspell)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/hunspell/COPYING.LESSER ${CURRENT_PACKAGES_DIR}/share/hunspell/copyright-lgpl)
+
+file(COPY ${SOURCE_PATH}/COPYING.MPL DESTINATION ${CURRENT_PACKAGES_DIR}/share/hunspell)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/hunspell/COPYING.MPL ${CURRENT_PACKAGES_DIR}/share/hunspell/copyright-mpl)
+
diff --git a/ports/hwloc/CMakeLists.txt b/ports/hwloc/CMakeLists.txt
new file mode 100644
index 000000000..7f75c558c
--- /dev/null
+++ b/ports/hwloc/CMakeLists.txt
@@ -0,0 +1,51 @@
+cmake_minimum_required(VERSION 3.0)
+project(hwloc C)
+
+configure_file(contrib/windows/hwloc_config.h include/hwloc/autogen/config.h COPYONLY)
+configure_file(contrib/windows/static-components.h include/static-components.h COPYONLY)
+configure_file(contrib/windows/private_config.h include/private/autogen/config.h COPYONLY)
+
+file(READ ${CMAKE_CURRENT_BINARY_DIR}/include/private/autogen/config.h PRIVATE_CONFIG_H)
+string(REPLACE "#define HAVE_DECL_SNPRINTF 0" "#define HAVE_DECL_SNPRINTF 1" PRIVATE_CONFIG_H "${PRIVATE_CONFIG_H}")
+string(REPLACE "#define HAVE_DECL_STRTOULL 0" "#define HAVE_DECL_STRTOULL 1" PRIVATE_CONFIG_H "${PRIVATE_CONFIG_H}")
+if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ string(REPLACE "/* #undef HWLOC_X86_32_ARCH */" "#define HWLOC_X86_32_ARCH 1" PRIVATE_CONFIG_H "${PRIVATE_CONFIG_H}")
+ string(REPLACE "#define HWLOC_X86_64_ARCH 1" "/* #undef HWLOC_X86_64_ARCH */" PRIVATE_CONFIG_H "${PRIVATE_CONFIG_H}")
+ string(REPLACE "#define SIZEOF_VOID_P 8" "#define SIZEOF_VOID_P 4" PRIVATE_CONFIG_H "${PRIVATE_CONFIG_H}")
+endif()
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/include/private/autogen/config.h "${PRIVATE_CONFIG_H}")
+
+add_library(libhwloc
+ src/base64.c
+ src/bind.c
+ src/bitmap.c
+ src/components.c
+ src/distances.c
+ src/diff.c
+ src/misc.c
+ src/pci-common.c
+ src/topology-custom.c
+ src/topology-noos.c
+ src/topology-synthetic.c
+ src/topology-windows.c
+ src/topology-x86.c
+ src/topology-xml-nolibxml.c
+ src/topology-xml.c
+ src/topology.c
+ src/traversal.c
+ src/dolib.c)
+
+set_target_properties(libhwloc PROPERTIES DEFINE_SYMBOL _USRDLL)
+target_include_directories(libhwloc PRIVATE ./include ./src ${CMAKE_CURRENT_BINARY_DIR}/include)
+target_compile_definitions(libhwloc PRIVATE _CRT_SECURE_NO_WARNINGS)
+
+install(TARGETS libhwloc
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib)
+
+if(NOT HWLOC_SKIP_INCLUDES)
+ install(FILES include/hwloc.h DESTINATION include)
+ install(DIRECTORY include/hwloc DESTINATION include FILES_MATCHING PATTERN "*.h")
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/include/hwloc/autogen/config.h DESTINATION include/hwloc/autogen)
+endif()
diff --git a/ports/hwloc/CONTROL b/ports/hwloc/CONTROL
new file mode 100644
index 000000000..ef2564050
--- /dev/null
+++ b/ports/hwloc/CONTROL
@@ -0,0 +1,4 @@
+Source: hwloc
+Version: 1.11.7-2
+Description: Portable Hardware Locality (hwloc)
+ The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various system attributes such as cache and memory information as well as the locality of I/O devices such as network interfaces, InfiniBand HCAs or GPUs.
diff --git a/ports/hwloc/portfile.cmake b/ports/hwloc/portfile.cmake
new file mode 100644
index 000000000..a2031bdcb
--- /dev/null
+++ b/ports/hwloc/portfile.cmake
@@ -0,0 +1,33 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "UWP builds not supported")
+endif()
+
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO open-mpi/hwloc
+ REF hwloc-1.11.7
+ SHA512 bc3a74c60bfbed1e860c2fe2b5b49956eca5cfd9c00a262f6cd3026a42ae8b5411fa296e471a95cba657d943b8853675442e796e648034398af3015e5f59476e)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DHWLOC_SKIP_INCLUDES=ON)
+
+vcpkg_install_cmake()
+
+file(READ ${CURRENT_PACKAGES_DIR}/include/hwloc/autogen/config.h PUBLIC_CONFIG_H)
+string(REPLACE "defined( DECLSPEC_EXPORTS )" "0" PUBLIC_CONFIG_H "${PUBLIC_CONFIG_H}")
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ string(REPLACE "defined( _USRDLL )" "0" PUBLIC_CONFIG_H "${PUBLIC_CONFIG_H}")
+else()
+ string(REPLACE "defined( _USRDLL )" "1" PUBLIC_CONFIG_H "${PUBLIC_CONFIG_H}")
+endif()
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/hwloc/autogen/config.h "${PUBLIC_CONFIG_H}")
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/hwloc)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/hwloc/COPYING ${CURRENT_PACKAGES_DIR}/share/hwloc/copyright)
diff --git a/ports/hypre/CONTROL b/ports/hypre/CONTROL
index 6eaef6f1a..c41f30930 100644
--- a/ports/hypre/CONTROL
+++ b/ports/hypre/CONTROL
@@ -1,4 +1,4 @@
Source: hypre
-Version: 2.11.1
+Version: 2.11.2-1
Description: SCALABLE LINEAR SOLVERS AND MULTIGRID METHODS
-Build-Depends: msmpi \ No newline at end of file
+Build-Depends: msmpi
diff --git a/ports/hypre/fix-root-cmakelists.patch b/ports/hypre/fix-root-cmakelists.patch
index aa349b3f0..e69d6607e 100644
--- a/ports/hypre/fix-root-cmakelists.patch
+++ b/ports/hypre/fix-root-cmakelists.patch
@@ -1,5 +1,5 @@
---- a/CMakeLists.txt Thu Jun 09 15:56:18 2016
-+++ b/CMakeLists.txt Wed Jan 04 18:27:54 2017
+--- a/CMakeLists.txt Mon Mar 13 21:37:24 2017
++++ b/CMakeLists.txt Sun Aug 06 19:34:00 2017
@@ -1,6 +1,8 @@
cmake_minimum_required (VERSION 2.8.8)
project (hypre)
@@ -7,9 +7,9 @@
+include(GenerateExportHeader)
+
# The version number.
- set (HYPRE_VERSION 2.11.1)
- set (HYPRE_DATE 2016/06/09)
-@@ -616,6 +618,8 @@
+ set (HYPRE_VERSION 2.11.2)
+ set (HYPRE_DATE 2017/03/13)
+@@ -618,6 +620,8 @@
struct_ls/sparse_msg_solve.c
)
@@ -18,7 +18,7 @@
# Headers and sources: sstruct_mv
list (APPEND HYPRE_HEADERS
sstruct_mv/HYPRE_sstruct_mv.h
-@@ -756,11 +760,11 @@
+@@ -758,11 +762,11 @@
find_package (MPI)
if ((MPI_C_FOUND) AND (NOT CMAKE_C_COMPILER STREQUAL MPI_C_COMPILER))
include_directories (${MPI_C_INCLUDE_PATH})
@@ -32,14 +32,16 @@
endif ()
endif (NOT HYPRE_SEQUENTIAL)
-@@ -802,8 +806,19 @@
- endif ()
+@@ -807,7 +811,23 @@
add_library (HYPRE ${HYPRE_SOURCES} ${FEI_LIBS})
--
+
-install (TARGETS HYPRE DESTINATION lib)
-+target_link_libraries(HYPRE ${MPI_C_LIBRARIES})
-+if(WIN32 AND BUILD_SHARED_LIBS)
++if (NOT HYPRE_SEQUENTIAL)
++ target_link_libraries(HYPRE ${MPI_C_LIBRARIES})
++endif()
++
++if (WIN32 AND BUILD_SHARED_LIBS)
+ set_target_properties(HYPRE PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif()
+
@@ -51,6 +53,7 @@
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
++
install (FILES ${HYPRE_HEADERS} DESTINATION include)
# add_subdirectory (test EXCLUDE_FROM_ALL)
diff --git a/ports/hypre/portfile.cmake b/ports/hypre/portfile.cmake
index e09c9678b..a0b38216e 100644
--- a/ports/hypre/portfile.cmake
+++ b/ports/hypre/portfile.cmake
@@ -1,9 +1,9 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/hypre-2.11.1/src)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/hypre-2.11.2/src)
vcpkg_download_distfile(ARCHIVE
- URLS "http://computation.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods/download/hypre-2.11.1.tar.gz"
- FILENAME "hypre-2.11.1.tar.gz"
- SHA512 4266c1b5225bcc97781246475100382f4929d7c918c854570a36b90602e8f111a4893cd1c93b95c68305c851898b970dd92ac173efe9211be5bb914d3c3c5d83
+ URLS "http://computation.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods/download/hypre-2.11.2.tar.gz"
+ FILENAME "hypre-2.11.2.tar.gz"
+ SHA512 a06321028121e5420fa944ce4fae5f9b96e6021ec2802e68ec3c349f19a20543ed7eff774a4735666c5807ce124eb571b3f86757c67e91faa1c683c3f657469f
)
vcpkg_extract_source_archive(${ARCHIVE})
diff --git a/ports/icu/CONTROL b/ports/icu/CONTROL
index 3553238f9..9d8320762 100644
--- a/ports/icu/CONTROL
+++ b/ports/icu/CONTROL
@@ -1,3 +1,3 @@
Source: icu
-Version: 59.1-1
+Version: 61.1-1
Description: Mature and widely used Unicode and localization library.
diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake
index 11637b061..afacc076c 100644
--- a/ports/icu/portfile.cmake
+++ b/ports/icu/portfile.cmake
@@ -1,21 +1,37 @@
+# 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)
+#
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/icu-59.1/icu)
-set(ICU_VERSION 59)
-vcpkg_download_distfile(ARCHIVE
- URLS "http://download.icu-project.org/files/icu4c/59.1/icu4c-59_1-src.zip"
- FILENAME "icu4c-59_1-src.zip"
- SHA512 1d3b39678e7cc4e9794e724982886a4918642231048eb76b9f683aad5a19e0b7c52b3b9c7107cb1a3879464682c4a3a97b58ab012d082bd9e5a80c67adf8ce8b)
-vcpkg_extract_source_archive(${ARCHIVE} ${CURRENT_BUILDTREES_DIR}/src/icu-59.1)
+set(VERSION 61.1)
+set(VERSION2 61_1)
+set(ICU_VERSION_MAJOR 61)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/icu-${VERSION}/icu)
+vcpkg_download_distfile(
+ ARCHIVE
+ URLS "http://download.icu-project.org/files/icu4c/${VERSION}/icu4c-${VERSION2}-src.zip"
+ FILENAME "icu4c-${VERSION2}-src.zip"
+ SHA512 60fed25976b8c2fe2df0b0ab745ded24da237711ec8c1e1dbdfe6eaf2014fb6b3a4bcaa488174cf770737a1c159a2d3f48a86a139cbb277163f064e607b8928f
+ )
+vcpkg_extract_source_archive(${ARCHIVE} ${CURRENT_BUILDTREES_DIR}/src/icu-${VERSION})
vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
PATCHES ${CMAKE_CURRENT_LIST_DIR}/disable-escapestr-tool.patch)
# Acquire tools
-vcpkg_acquire_msys(MSYS_ROOT)
+vcpkg_acquire_msys(MSYS_ROOT PACKAGES make automake1.15)
# Insert msys into the path between the compiler toolset and windows system32. This prevents masking of "link.exe" but DOES mask "find.exe".
string(REPLACE ";$ENV{SystemRoot}\\system32;" ";${MSYS_ROOT}/usr/bin;$ENV{SystemRoot}\\system32;" NEWPATH "$ENV{PATH}")
@@ -23,11 +39,6 @@ string(REPLACE ";$ENV{SystemRoot}\\System32;" ";${MSYS_ROOT}/usr/bin;$ENV{System
set(ENV{PATH} "${NEWPATH}")
set(BASH ${MSYS_ROOT}/usr/bin/bash.exe)
-vcpkg_execute_required_process(
- COMMAND ${BASH} --noprofile --norc -c "pacman -Sy --noconfirm --needed make automake1.15"
- WORKING_DIRECTORY "${MSYS_ROOT}"
- LOGNAME "pacman-${TARGET_TRIPLET}")
-
set(AUTOMAKE_DIR ${MSYS_ROOT}/usr/share/automake-1.15)
file(COPY ${AUTOMAKE_DIR}/config.guess ${AUTOMAKE_DIR}/config.sub DESTINATION ${SOURCE_PATH}/source)
@@ -114,8 +125,8 @@ file(REMOVE ${TEST_LIBS})
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
# copy icu dlls from lib to bin
- file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/lib/icu*${ICU_VERSION}.dll)
- file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/icu*d${ICU_VERSION}.dll)
+ file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/lib/icu*${ICU_VERSION_MAJOR}.dll)
+ file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/icu*d${ICU_VERSION_MAJOR}.dll)
file(COPY ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(COPY ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
else()
@@ -144,5 +155,6 @@ endif()
# This is expected because ICU database contains no executable code
vcpkg_copy_pdbs()
+# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/icu)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/icu/LICENSE ${CURRENT_PACKAGES_DIR}/share/icu/copyright)
diff --git a/ports/if97/CONTROL b/ports/if97/CONTROL
new file mode 100644
index 000000000..7e5bb74fb
--- /dev/null
+++ b/ports/if97/CONTROL
@@ -0,0 +1,3 @@
+Source: if97
+Version: 2.1.0
+Description: This repository implements the IF97 formulation for the properties of pure water substance.
diff --git a/ports/if97/portfile.cmake b/ports/if97/portfile.cmake
new file mode 100644
index 000000000..4f8d28e82
--- /dev/null
+++ b/ports/if97/portfile.cmake
@@ -0,0 +1,19 @@
+include(vcpkg_common_functions)
+set(PORT_VERSION 2.1.0)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO CoolProp/IF97
+ REF v${PORT_VERSION}
+ SHA512 f8cde0538af395d8d82998bd71f28d89cd5c6fcfdf16410b0630a0f8b59ec86ff8a748b05681e65cbece051db5be6b960b6ea4fc8bce83b4309f46896083164a
+ HEAD_REF master
+)
+
+file(INSTALL ${SOURCE_PATH}/IF97.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+# Handle copyright
+file(
+ INSTALL ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/if97
+ RENAME copyright
+)
diff --git a/ports/ilmbase/CONTROL b/ports/ilmbase/CONTROL
new file mode 100644
index 000000000..9e405df31
--- /dev/null
+++ b/ports/ilmbase/CONTROL
@@ -0,0 +1,3 @@
+Source: ilmbase
+Version: 2.2.1-1
+Description: Base libraries from ILM for OpenEXR
diff --git a/ports/ilmbase/fix-parallel-build.patch b/ports/ilmbase/fix-parallel-build.patch
new file mode 100644
index 000000000..85c773f31
--- /dev/null
+++ b/ports/ilmbase/fix-parallel-build.patch
@@ -0,0 +1,54 @@
+diff --git a/Half/CMakeLists.txt b/Half/CMakeLists.txt
+index 6f9714d..0c43904 100644
+--- a/Half/CMakeLists.txt
++++ b/Half/CMakeLists.txt
+@@ -2,10 +2,10 @@
+
+ ADD_EXECUTABLE ( eLut eLut.cpp )
+
+-ADD_CUSTOM_COMMAND (
+- TARGET eLut POST_BUILD
++ADD_CUSTOM_TARGET ( make_eLut
+ COMMAND eLut > ${CMAKE_CURRENT_BINARY_DIR}/eLut.h
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
++ DEPENDS eLut
+ )
+ SET_SOURCE_FILES_PROPERTIES(
+ ${CMAKE_CURRENT_BINARY_DIR}/eLut.h
+@@ -13,25 +13,16 @@ SET_SOURCE_FILES_PROPERTIES(
+ )
+
+ ADD_EXECUTABLE ( toFloat toFloat.cpp )
+-ADD_CUSTOM_COMMAND (
+- TARGET toFloat POST_BUILD
++ADD_CUSTOM_TARGET ( make_toFloat
+ COMMAND toFloat > ${CMAKE_CURRENT_BINARY_DIR}/toFloat.h
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
++ DEPENDS toFloat
+ )
+ SET_SOURCE_FILES_PROPERTIES(
+ ${CMAKE_CURRENT_BINARY_DIR}/toFloat.h
+ PROPERTIES HEADER_FILE_ONLY TRUE
+ )
+
+-SET_SOURCE_FILES_PROPERTIES(
+- half.cpp
+- PROPERTIES
+- OBJECT_DEPENDS
+- ${CMAKE_CURRENT_BINARY_DIR}/eLut.h
+- OBJECT_DEPENDS
+- ${CMAKE_CURRENT_BINARY_DIR}/toFloat.h
+- )
+-
+ IF(BUILD_SHARED_LIBS)
+ ADD_DEFINITIONS(-DHALF_EXPORTS)
+ ENDIF()
+@@ -41,7 +32,7 @@ ADD_LIBRARY ( Half ${LIB_TYPE}
+ )
+
+
+-ADD_DEPENDENCIES ( Half toFloat eLut )
++ADD_DEPENDENCIES ( Half make_toFloat make_eLut )
+
+ INSTALL ( TARGETS
+ Half
diff --git a/ports/ilmbase/portfile.cmake b/ports/ilmbase/portfile.cmake
new file mode 100644
index 000000000..1752beb2c
--- /dev/null
+++ b/ports/ilmbase/portfile.cmake
@@ -0,0 +1,49 @@
+if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "UWP build not supported")
+endif()
+
+set(ILM_VERSION 2.2.1)
+set(ILM_HASH a08ddd9069b34a93612445a445a2ddf80c0e22349bcf221a3cc6e9f5575180b08a8b597009dacabf072360e7162e15964988bc79e8ec82cf3da6507148a75320)
+
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ilmbase-${ILM_VERSION})
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://download.savannah.nongnu.org/releases/openexr/ilmbase-${ILM_VERSION}.tar.gz"
+ FILENAME "ilmbase-${ILM_VERSION}.tar.gz"
+ SHA512 ${ILM_HASH})
+
+vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-parallel-build.patch)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA)
+vcpkg_install_cmake()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ foreach(SUBDIR "" "/debug")
+ file(GLOB DLLS ${CURRENT_PACKAGES_DIR}${SUBDIR}/lib/*.dll)
+ file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}${SUBDIR}/bin)
+ file(REMOVE ${DLLS})
+ endforeach()
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+vcpkg_copy_pdbs()
+
+foreach(HEADER halfExport.h IexExport.h IexMathFloatExc.h IlmThreadExport.h ImathExport.h)
+ file(READ ${CURRENT_PACKAGES_DIR}/include/OpenEXR/${HEADER} HEADER_FILE)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ string(REPLACE "defined(OPENEXR_DLL)" "1" HEADER_FILE "${HEADER_FILE}")
+ else()
+ string(REPLACE "defined(OPENEXR_DLL)" "0" HEADER_FILE "${HEADER_FILE}")
+ endif()
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/OpenEXR/${HEADER} "${HEADER_FILE}")
+endforeach()
+
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/ilmbase)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/ilmbase/LICENSE ${CURRENT_PACKAGES_DIR}/share/ilmbase/copyright)
diff --git a/ports/imgui/CMakeLists.txt b/ports/imgui/CMakeLists.txt
new file mode 100644
index 000000000..5bcf278f7
--- /dev/null
+++ b/ports/imgui/CMakeLists.txt
@@ -0,0 +1,44 @@
+cmake_minimum_required(VERSION 3.8)
+project(imgui CXX)
+
+set(CMAKE_DEBUG_POSTFIX d)
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+set(IMGUI_INCLUDES_PUBLIC
+ imgui.h
+ imconfig.h
+)
+
+set(IMGUI_INCLUDES_PRIVATE
+ imgui_internal.h
+)
+
+set(IMGUI_SOURCES
+ imgui.cpp
+ imgui_demo.cpp
+ imgui_draw.cpp
+)
+
+add_library(${PROJECT_NAME}
+ ${IMGUI_INCLUDES_PUBLIC}
+ ${IMGUI_INCLUDES_PRIVATE}
+ ${IMGUI_SOURCES}
+)
+
+target_include_directories(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:include>)
+
+install(TARGETS ${PROJECT_NAME}
+ EXPORT IMGUIExport
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+install(EXPORT IMGUIExport FILE ${PROJECT_NAME}Config.cmake NAMESPACE ${PROJECT_NAME}:: DESTINATION share/${PROJECT_NAME})
+
+if(NOT IMGUI_SKIP_HEADERS)
+ install(
+ FILES ${IMGUI_INCLUDES_PUBLIC}
+ DESTINATION include
+ )
+endif()
diff --git a/ports/imgui/CONTROL b/ports/imgui/CONTROL
new file mode 100644
index 000000000..640dece87
--- /dev/null
+++ b/ports/imgui/CONTROL
@@ -0,0 +1,3 @@
+Source: imgui
+Version: 1.60
+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
new file mode 100644
index 000000000..7b18fc9ed
--- /dev/null
+++ b/ports/imgui/portfile.cmake
@@ -0,0 +1,25 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ocornut/imgui
+ REF v1.60
+ SHA512 405b79ced59b4e4e45eebdbf278435f325a553e04338702dbdd3f30c7a39cb52a4dad91443bd99d19f61e60cd78d544fc1436ae2d10fef7c3a8a46cbb62685d9
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DIMGUI_SKIP_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/imgui)
+
+file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/imgui)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/imgui/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/imgui/copyright)
diff --git a/ports/inja/CONTROL b/ports/inja/CONTROL
new file mode 100644
index 000000000..a905ab796
--- /dev/null
+++ b/ports/inja/CONTROL
@@ -0,0 +1,4 @@
+Source: inja
+Version: 1.0.0
+Build-Depends: nlohmann-json
+Description: Inja - A Template Engine for Modern C++
diff --git a/ports/inja/portfile.cmake b/ports/inja/portfile.cmake
new file mode 100644
index 000000000..dc9dc1a6b
--- /dev/null
+++ b/ports/inja/portfile.cmake
@@ -0,0 +1,11 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO pantor/inja
+ REF v1.0.0
+ SHA512 39598df84766a0d2a28dc92e083e27b7072600372e0313727cd5dd1fe6ad1efc055dc98055247f5cb1fc4096ffb37b59995107f3456a4495bd01381ac6c74a2b
+ HEAD_REF master
+)
+file(INSTALL ${SOURCE_PATH}/src/inja.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/src/inja.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/share/inja RENAME copyright)
+vcpkg_copy_pdbs()
diff --git a/ports/intel-mkl/CONTROL b/ports/intel-mkl/CONTROL
new file mode 100644
index 000000000..f0b7f12a8
--- /dev/null
+++ b/ports/intel-mkl/CONTROL
@@ -0,0 +1,3 @@
+Source: intel-mkl
+Version: 2018.0.1
+Description: Intel® Math Kernel Library (Intel® MKL) accelerates math processing routines, increases application performance, and reduces development time on Intel® processors. \ No newline at end of file
diff --git a/ports/intel-mkl/portfile.cmake b/ports/intel-mkl/portfile.cmake
new file mode 100644
index 000000000..be54f0ec4
--- /dev/null
+++ b/ports/intel-mkl/portfile.cmake
@@ -0,0 +1,32 @@
+# Due to the complexity involved, this package doesn't install MKL. It instead verifies that MKL is installed.
+# Other packages can depend on this package to declare a dependency on MKL.
+# If this package is installed, we assume that MKL is properly installed.
+
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+
+set(MKL_REQUIRED_VERSION "20180000")
+
+set(ProgramFilesx86 "ProgramFiles(x86)")
+set(INTEL_ROOT $ENV{${ProgramFilesx86}}/IntelSWTools/compilers_and_libraries/windows)
+
+find_path(MKL_ROOT include/mkl.h PATHS $ENV{MKLROOT} ${INTEL_ROOT}/mkl DOC "Folder contains MKL")
+
+if (MKL_ROOT STREQUAL "MKL_ROOT-NOTFOUND")
+ message(FATAL_ERROR "Could not find MKL. Before continuing, please download and install MKL (${MKL_REQUIRED_VERSION} or higher) from:"
+ "\n https://registrationcenter.intel.com/en/products/download/3178/\n"
+ "\nAlso ensure vcpkg has been rebuilt with the latest version (v0.0.104 or later)")
+endif()
+
+# file(STRINGS ${MKL_ROOT}/include/mkl_version.h MKL_VERSION_DEFINITION REGEX "__INTEL_MKL((_MINOR)|(_UPDATE))?__")
+# string(REGEX MATCHALL "([0-9]+)" MKL_VERSION ${MKL_VERSION_DEFINITION})
+# list(GET MKL_VERSION 0 MKL_VERSION_MAJOR)
+# list(GET MKL_VERSION 1 MKL_VERSION_MINOR)
+# list(GET MKL_VERSION 2 MKL_VERSION_UPDATE)
+
+file(STRINGS ${MKL_ROOT}/include/mkl_version.h MKL_VERSION_DEFINITION REGEX "INTEL_MKL_VERSION")
+string(REGEX MATCH "([0-9]+)" MKL_VERSION ${MKL_VERSION_DEFINITION})
+
+if (MKL_VERSION LESS MKL_REQUIRED_VERSION)
+ message(FATAL_ERROR "MKL ${MKL_VERSION} is found but ${MKL_REQUIRED_VERSION} is required. Please download and install a more recent version of MKL from:"
+ "\n https://registrationcenter.intel.com/en/products/download/3178/\n")
+endif()
diff --git a/ports/ismrmrd/CONTROL b/ports/ismrmrd/CONTROL
new file mode 100644
index 000000000..3fe989da9
--- /dev/null
+++ b/ports/ismrmrd/CONTROL
@@ -0,0 +1,4 @@
+Source: ismrmrd
+Version: 1.3.2-2
+Description: ISMRM Raw Data Format
+Build-Depends: pugixml
diff --git a/ports/ismrmrd/portfile.cmake b/ports/ismrmrd/portfile.cmake
new file mode 100644
index 000000000..1fda781b2
--- /dev/null
+++ b/ports/ismrmrd/portfile.cmake
@@ -0,0 +1,47 @@
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "ismrmrd only supports dynamic library and crt linkage")
+endif()
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ismrmrd/ismrmrd
+ REF v1.3.2
+ SHA512 eb806f71c4b183105b3270d658a68195e009c0f7ca37f54f76d650a4d5c83c44d26b5f12a4c47c608aae9990cd04f1204b0c57e6438ca34a271fd54880133106
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DUSE_SYSTEM_PUGIXML=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/ismrmrd/cmake)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/ismrmrd.dll)
+ file(COPY ${CURRENT_PACKAGES_DIR}/lib/ismrmrd.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/ismrmrd.dll)
+endif()
+
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/ismrmrd.dll)
+ file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/ismrmrd.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/ismrmrd.dll)
+endif()
+
+file(COPY ${CURRENT_PACKAGES_DIR}/bin/ismrmrd_info.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/ismrmrd)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/ismrmrd_info.exe)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/ismrmrd_info.exe)
+
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/ismrmrd)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/ismrmrd/LICENSE ${CURRENT_PACKAGES_DIR}/share/ismrmrd/copyright)
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/ismrmrd)
diff --git a/ports/itk/CONTROL b/ports/itk/CONTROL
new file mode 100644
index 000000000..f4b29af94
--- /dev/null
+++ b/ports/itk/CONTROL
@@ -0,0 +1,4 @@
+Source: itk
+Version: 4.13.0
+Description: Insight Segmentation and Registration Toolkit (ITK) is used for image processing and analysis.
+Build-Depends: double-conversion, libjpeg-turbo, zlib, libpng, tiff, expat
diff --git a/ports/itk/portfile.cmake b/ports/itk/portfile.cmake
new file mode 100644
index 000000000..d37d5b150
--- /dev/null
+++ b/ports/itk/portfile.cmake
@@ -0,0 +1,62 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO InsightSoftwareConsortium/ITK
+ REF d92873e33e8a54e933e445b92151191f02feab42
+ SHA512 0e3ebd27571543e1c497377dd9576a9bb0711129be12131109fe9b3c8413655ad14ce4d9ac6e281bac83c57e6032b614bc9ff53ed357d831544ca52f41513b62
+ HEAD_REF master
+)
+
+# directory path length needs to be shorter than 50 characters
+file(RENAME ${SOURCE_PATH} ${CURRENT_BUILDTREES_DIR}/ITK)
+set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/ITK")
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_TESTING=OFF
+ -DBUILD_EXAMPLES=OFF
+ -DDO_NOT_INSTALL_ITK_TEST_DRIVER=ON
+ -DITK_INSTALL_DATA_DIR=share/itk/data
+ -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_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
+
+ # 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_MorphologicalContourInterpolation=ON # example how to turn on a remote module
+ -DModule_RLEImage=ON # example how to turn on a remote module
+ ${ADDITIONAL_OPTIONS}
+)
+
+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)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/itk)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/itk/LICENSE ${CURRENT_PACKAGES_DIR}/share/itk/copyright)
diff --git a/ports/jack2/CMakeLists.txt b/ports/jack2/CMakeLists.txt
new file mode 100644
index 000000000..2fb25edb8
--- /dev/null
+++ b/ports/jack2/CMakeLists.txt
@@ -0,0 +1,14 @@
+cmake_minimum_required(VERSION 3.8)
+project(jack2 C)
+
+include_directories(common)
+
+add_library(jack2 STATIC common/JackWeakAPI.c)
+
+install(TARGETS jack2
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+install(DIRECTORY common/jack DESTINATION include)
diff --git a/ports/jack2/CONTROL b/ports/jack2/CONTROL
new file mode 100644
index 000000000..b99701797
--- /dev/null
+++ b/ports/jack2/CONTROL
@@ -0,0 +1,4 @@
+Source: jack2
+Version: 1.9.12
+Description: Cross-platform API that enables device sharing and inter-application audio routing
+
diff --git a/ports/jack2/portfile.cmake b/ports/jack2/portfile.cmake
new file mode 100644
index 000000000..a82f1be62
--- /dev/null
+++ b/ports/jack2/portfile.cmake
@@ -0,0 +1,29 @@
+include(vcpkg_common_functions)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "Warning: Dynamic building not supported. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO jackaudio/jack2
+ REF v1.9.12
+ SHA512 f0271dfc8f8e2f2489ca52f431ad4fa420665816d6c67a01a76da1d4b5ae91f6dad8c4e3309ec5e0c159c9d312ed56021ab323d74bce828ace26f1b8d477ddfa
+ HEAD_REF master
+)
+
+# Install headers and a statically built JackWeakAPI.c
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+)
+
+vcpkg_install_cmake()
+
+# Remove duplicate headers
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/jack2 RENAME copyright)
diff --git a/ports/jansson/CONTROL b/ports/jansson/CONTROL
new file mode 100644
index 000000000..6050b464d
--- /dev/null
+++ b/ports/jansson/CONTROL
@@ -0,0 +1,3 @@
+Source: jansson
+Version: 2.11-2
+Description: Jansson is a C library for encoding, decoding and manipulating JSON data
diff --git a/ports/jansson/portfile.cmake b/ports/jansson/portfile.cmake
new file mode 100644
index 000000000..e243422fb
--- /dev/null
+++ b/ports/jansson/portfile.cmake
@@ -0,0 +1,51 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO akheron/jansson
+ REF v2.11
+ SHA512 5dd94951e1aedd3f3a9ab6a43170d2395ec70c5a00e6da58538816b2dcd98835fc4ca43ab1e9b78864c01e48075505573f4f8d1da5c9d2c094622518d19525e8
+ HEAD_REF master
+)
+
+if(VCPKG_CRT_LINKAGE STREQUAL static)
+ set(JANSSON_STATIC_CRT ON)
+else()
+ set(JANSSON_STATIC_CRT OFF)
+endif()
+
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(JANSSON_BUILD_SHARED_LIBS ON)
+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}
+ -DJANSSON_INSTALL_CMAKE_DIR:STRING=share/jansson
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/jansson)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/jansson RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/jasper/CONTROL b/ports/jasper/CONTROL
new file mode 100644
index 000000000..ede42e377
--- /dev/null
+++ b/ports/jasper/CONTROL
@@ -0,0 +1,4 @@
+Source: jasper
+Version: 2.0.14-1
+Description: Open source implementation of the JPEG-2000 Part-1 standard
+Build-Depends: libjpeg-turbo
diff --git a/ports/jasper/jasper-fix-uwp.patch b/ports/jasper/jasper-fix-uwp.patch
new file mode 100644
index 000000000..2b67d6c93
--- /dev/null
+++ b/ports/jasper/jasper-fix-uwp.patch
@@ -0,0 +1,32 @@
+From bad33461a302ed8db02e0d9875e7b59b9e8f6032 Mon Sep 17 00:00:00 2001
+From: Mikhail Paulyshka <me@mixaill.tk>
+Date: Tue, 7 Nov 2017 20:10:31 +0300
+Subject: [PATCH] Fixed build for Windows 10 UWP
+
+---
+ src/libjasper/CMakeLists.txt | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/src/libjasper/CMakeLists.txt b/src/libjasper/CMakeLists.txt
+index 234ae67..9d0a522 100644
+--- a/src/libjasper/CMakeLists.txt
++++ b/src/libjasper/CMakeLists.txt
+@@ -145,6 +145,15 @@ target_include_directories(libjasper BEFORE PRIVATE
+ set_target_properties(libjasper PROPERTIES OUTPUT_NAME jasper)
+ set_target_properties(libjasper PROPERTIES LINKER_LANGUAGE C)
+
++if(MSVC)
++ target_compile_definitions(libjasper PRIVATE
++ "-D_CRT_SECURE_NO_WARNINGS")
++ target_compile_definitions(libjasper PRIVATE
++ "-D_CRT_SECURE_NO_DEPRECATE")
++ target_compile_definitions(libjasper PRIVATE
++ "-D_CRT_NONSTDC_NO_DEPRECATE")
++endif()
++
+ if (UNIX)
+ set_target_properties(libjasper PROPERTIES
+ VERSION ${JAS_SO_NAME} SOVERSION ${JAS_SO_VERSION})
+--
+2.14.1.windows.1
+
diff --git a/ports/jasper/opengl-not-required.patch b/ports/jasper/opengl-not-required.patch
new file mode 100644
index 000000000..5c40a6b67
--- /dev/null
+++ b/ports/jasper/opengl-not-required.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c432ba2..c67598f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -267,7 +267,9 @@ message("JAS_HAVE_LIBJPEG: ${JAS_HAVE_LIBJPEG}")
+ # Check for the OpenGL and GLUT libraries.
+ ################################################################################
+
++if(JAS_ENABLE_OPENGL)
+ find_package(OpenGL ${JAS_REQUIRED})
++endif()
+ message("JAS_ENABLE_OPENGL: ${JAS_ENABLE_OPENGL}")
+ message("OpenGL library found: ${OPENGL_FOUND}")
+ if (JAS_ENABLE_OPENGL AND OPENGL_FOUND)
diff --git a/ports/jasper/portfile.cmake b/ports/jasper/portfile.cmake
new file mode 100644
index 000000000..6e753ed74
--- /dev/null
+++ b/ports/jasper/portfile.cmake
@@ -0,0 +1,45 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mdadams/jasper
+ REF version-2.0.14
+ SHA512 6b270cb1eb55f777f30016f3258e5e2297627e7d086334814c308464f5a4552c23241b0fdbc81ea715a6f4746294657f96c1cb6ceb320629ce57db7e81d84940
+ HEAD_REF master)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/jasper-fix-uwp.patch
+ ${CMAKE_CURRENT_LIST_DIR}/opengl-not-required.patch
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(JAS_ENABLE_SHARED ON)
+else()
+ set(JAS_ENABLE_SHARED OFF)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DJAS_ENABLE_AUTOMATIC_DEPENDENCIES=OFF
+ -DJAS_ENABLE_LIBJPEG=ON
+ -DJAS_ENABLE_OPENGL=OFF # not needed for the library
+ -DJAS_ENABLE_DOC=OFF
+ -DJAS_ENABLE_PROGRAMS=OFF
+ -DJAS_ENABLE_SHARED=${JAS_ENABLE_SHARED}
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share)
+
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/jasper)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/jasper/LICENSE ${CURRENT_PACKAGES_DIR}/share/jasper/copyright)
diff --git a/ports/jbig2dec/CMakeLists.txt b/ports/jbig2dec/CMakeLists.txt
new file mode 100644
index 000000000..a2a8376de
--- /dev/null
+++ b/ports/jbig2dec/CMakeLists.txt
@@ -0,0 +1,25 @@
+cmake_minimum_required(VERSION 3.9)
+project(jbig2dec C)
+
+set(CMAKE_DEBUG_POSTFIX d)
+
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+file(GLOB SOURCES jbig2*.c)
+list(REMOVE_ITEM SOURCES
+ "${CMAKE_CURRENT_SOURCE_DIR}/jbig2dec.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/jbig2_image_png.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/jbig2_image_pbm.c"
+)
+
+add_library(jbig2dec ${SOURCES})
+
+install(TARGETS jbig2dec
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES jbig2.h DESTINATION include)
+endif()
diff --git a/ports/jbig2dec/CONTROL b/ports/jbig2dec/CONTROL
new file mode 100644
index 000000000..0ff000f44
--- /dev/null
+++ b/ports/jbig2dec/CONTROL
@@ -0,0 +1,4 @@
+Source: jbig2dec
+Version: 0.13
+Description: a decoder library and example utility implementing the JBIG2 bi-level image compression spec. Also known as ITU T.88 and ISO IEC 14492, and included by reference in Adobe's PDF version 1.4 and later.
+
diff --git a/ports/jbig2dec/portfile.cmake b/ports/jbig2dec/portfile.cmake
new file mode 100644
index 000000000..90e56bd9b
--- /dev/null
+++ b/ports/jbig2dec/portfile.cmake
@@ -0,0 +1,23 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ArtifexSoftware/jbig2dec
+ REF 0.13
+ SHA512 11d1209810d6c80a095ec59d6af44010d4664f4ba744c0c14bdad9564359cf31dd0095b072fa63de381f2de57116e523883aa8843cc8d9baa2c3a8b9b1fc3527
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DDISABLE_INSTALL_HEADERS=1
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/jbig2dec RENAME copyright)
diff --git a/ports/jbigkit/CONTROL b/ports/jbigkit/CONTROL
index 01a9921e1..f0a7cc426 100644
--- a/ports/jbigkit/CONTROL
+++ b/ports/jbigkit/CONTROL
@@ -1,3 +1,3 @@
Source: jbigkit
-Version: 2.1
+Version: 2.1-1
Description: A software implementation of the JBIG1 data compression standard (ITU-T T.82)
diff --git a/ports/jemalloc/CONTROL b/ports/jemalloc/CONTROL
new file mode 100644
index 000000000..5bdca6c43
--- /dev/null
+++ b/ports/jemalloc/CONTROL
@@ -0,0 +1,4 @@
+Source: jemalloc
+Version: 4.3.1-2
+Description: jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support
+Build-Depends:
diff --git a/ports/jemalloc/fix-cmakelists.patch b/ports/jemalloc/fix-cmakelists.patch
new file mode 100644
index 000000000..3ba70544c
--- /dev/null
+++ b/ports/jemalloc/fix-cmakelists.patch
@@ -0,0 +1,67 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 06e83ef..229e17a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -57,6 +57,7 @@ option(enable-lazy-lock "Enable lazy locking (only lock when multi-threaded" OFF
+ option(force_lazy_lock "Forcing lazy-lock to avoid allocator/threading bootstrap issues" OFF)
+ # install_prefix - installation directory prefix
+ # with-xslroot=<path> XSL stylesheet root path
++option(build-tests "Build tests" OFF)
+
+ set (PACKAGE_NAME "jemalloc")
+ project (${PACKAGE_NAME} C)
+@@ -711,12 +712,8 @@ endif()
+
+ # The original library, delivery product
+ set(LIBJEMALLOCLIB jemalloc${install_suffix})
+-add_library(${LIBJEMALLOCLIB} STATIC ${C_SRCS})
+-
+-# Now add shared library. Needed for integration tests
+-# and a benchmark
+-set(LIBJEMALLOCSO jemallocso${install_suffix})
+-add_library(${LIBJEMALLOCSO} SHARED ${C_SRCS})
++set(LIBJEMALLOCSO ${LIBJEMALLOCLIB})
++add_library(${LIBJEMALLOCLIB} ${C_SRCS})
+
+ if(WIN32)
+ # May want to replace /d2Zi+ to /Zo
+@@ -745,8 +745,6 @@ if(WIN32)
+ # either impport or export which is both wrong for a static library
+ set_target_properties(${LIBJEMALLOCLIB}
+ PROPERTIES
+- COMPILE_DEFINITIONS
+- "JEMALLOC_EXPORT="
+ CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_DEBUG
+ ${PROJECT_BINARY_DIR}/Debug
+ CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_RELEASE
+@@ -754,6 +752,9 @@ if(WIN32)
+ COMPILE_PDB_NAME
+ ${LIBJEMALLOCLIB}
+ )
++ if(NOT BUILD_SHARED_LIBS)
++ target_compile_definitions(${LIBJEMALLOCLIB} "JEMALLOC_EXPORT=")
++ endif()
+
+ endif()
+
+@@ -825,6 +822,14 @@ if(C_UTIL_INTEGRATION_DEFS)
+ "${C_UTIL_INTEGRATION_DEFS}")
+ endif()
+
++install(FILES include/jemalloc/jemalloc${install_suffix}.h
++ DESTINATION include/jemalloc)
++
++install(TARGETS ${LIBJEMALLOCSO}
++ RUNTIME DESTINATION bin
++ LIBRARY DESTINATION lib
++ ARCHIVE DESTINATION lib)
++if (build-tests)
+ ##################################################################
+ # Common source for Unit, Integration and stress test libraries
+ set(C_TESTLIB_SRCS
+@@ -1028,4 +1033,4 @@ foreach(sourcefile ${TESTS_INTEGRATION})
+ add_test(NAME ${exename} COMMAND ${exename})
+ add_dependencies(check ${exename})
+ endforeach(sourcefile ${TESTS_UNIT})
+-
++endif()
diff --git a/ports/jemalloc/fix-utilities.patch b/ports/jemalloc/fix-utilities.patch
new file mode 100644
index 000000000..32c39e0b3
--- /dev/null
+++ b/ports/jemalloc/fix-utilities.patch
@@ -0,0 +1,30 @@
+diff --git a/Utilities.cmake b/Utilities.cmake
+index 562e948..d2d3530 100644
+--- a/Utilities.cmake
++++ b/Utilities.cmake
+@@ -633,9 +633,11 @@ file(TO_NATIVE_PATH "${file_path}" ntv_file_path)
+ # This converts #undefs into #cmakedefines so configure_file can handle it
+ set(PS_CMD
+ "Get-Content \"${ntv_file_path}\" |
+-ForEach {
++ForEach {
+ if($_ -match '^#undef[ \t]*[^ \t]*')
+- { $_ -replace '^#undef[ \t]*([^ \t]*)','#cmakedefine $1 @$1@' } else {$_}}"
++ { $_ -replace '^#undef[ \t]*([^ \t]*)','#cmakedefine $1 @$1@' } else {$_}
++} |
++Set-Content \"${ntv_file_path}.cmake\""
+ )
+
+ if(EXISTS ${file_path})
+@@ -646,9 +648,8 @@ if(EXISTS ${file_path})
+ # Convert autoconf .in into a cmake .in
+ execute_process(COMMAND powershell -Command "${PS_CMD}"
+ RESULT_VARIABLE error_level
+- ERROR_VARIABLE error_output
+- OUTPUT_FILE ${file_path}.cmake)
+-
++ ERROR_VARIABLE error_output)
++
+ if(NOT ${error_level} EQUAL 0)
+ message(FATAL_ERROR "Powershell completed with ${error_level} : ${error_output}")
+ endif()
diff --git a/ports/jemalloc/portfile.cmake b/ports/jemalloc/portfile.cmake
new file mode 100644
index 000000000..527891666
--- /dev/null
+++ b/ports/jemalloc/portfile.cmake
@@ -0,0 +1,37 @@
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(STATUS "Warning: Static building not supported yet. Building dynamic.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO jemalloc/jemalloc-cmake
+ REF jemalloc-cmake.4.3.1
+ SHA512 e94b62ec3a53acc0ab5acb247d7646bc172108e80f592bb41c2dd50d181cbbeb33d623adf28415ffc0a0e2de3818af2dfe4c04af75ac891ef5042bc5bb186886
+ HEAD_REF master
+)
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/fix-utilities.patch"
+)
+
+vcpkg_configure_cmake(
+ DISABLE_PARALLEL_CONFIGURE
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DGIT_FOUND=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/jemalloc)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/jemalloc/COPYING ${CURRENT_PACKAGES_DIR}/share/jemalloc/copyright)
diff --git a/ports/json-dto/CONTROL b/ports/json-dto/CONTROL
new file mode 100644
index 000000000..2f8c57b00
--- /dev/null
+++ b/ports/json-dto/CONTROL
@@ -0,0 +1,4 @@
+Source: json-dto
+Version: 0.2.5
+Description: A small header-only library for converting data between json representation and c++ structs.
+Build-Depends: rapidjson
diff --git a/ports/json-dto/portfile.cmake b/ports/json-dto/portfile.cmake
new file mode 100644
index 000000000..037ce7f96
--- /dev/null
+++ b/ports/json-dto/portfile.cmake
@@ -0,0 +1,33 @@
+include(vcpkg_common_functions)
+
+set(JSON_DTO_VERSION 0.2.5)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/json_dto-${JSON_DTO_VERSION}-vcpkg)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://bitbucket.org/sobjectizerteam/json_dto-0.2/downloads/json_dto-${JSON_DTO_VERSION}-vcpkg.zip"
+ FILENAME "json_dto-${JSON_DTO_VERSION}-vcpkg.zip"
+ SHA512 cc21f2abc2799cb9f1c95ae3ae3512869e33d7d0b79c3e05e71d6f0a4376dcf948d89a4d71fe4266efa9d84c19c8a4b8ca2bc8d3d8c217df9ba4e6b87e50c33e
+)
+
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/dev
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ -DJSON_DTO_INSTALL=ON
+ -DJSON_DTO_TEST=OFF
+ -DJSON_DTO_SAMPLE=OFF
+ -DJSON_DTO_INSTALL_SAMPLES=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/json-dto")
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib ${CURRENT_PACKAGES_DIR}/debug)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/json-dto)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/json-dto/LICENSE ${CURRENT_PACKAGES_DIR}/share/json-dto/copyright)
diff --git a/ports/jsoncpp/CONTROL b/ports/jsoncpp/CONTROL
index d4ac63bd3..8fdfe14da 100644
--- a/ports/jsoncpp/CONTROL
+++ b/ports/jsoncpp/CONTROL
@@ -1,3 +1,3 @@
Source: jsoncpp
-Version: 1.7.7
+Version: 1.8.4
Description: jsoncpp is an implementation of a JSON reader and writer in C++. JSON (JavaScript Object Notation) is a lightweight data-interchange format that it is easy to parse and redeable for human.
diff --git a/ports/jsoncpp/portfile.cmake b/ports/jsoncpp/portfile.cmake
index f4b89adca..c29c869ed 100644
--- a/ports/jsoncpp/portfile.cmake
+++ b/ports/jsoncpp/portfile.cmake
@@ -1,11 +1,11 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/jsoncpp-1.7.7)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/open-source-parsers/jsoncpp/archive/1.7.7.zip"
- FILENAME "jsoncpp-1.7.7.zip"
- SHA512 3801faab0b1982bc41dac3049e0f7d24ea3dc759b77afc1ca7365b95a36460f87a74a0f5c6efd4c4a315ea2ca904b38f454b0a70133cda339c4a01ae8049cecb
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO open-source-parsers/jsoncpp
+ REF 1.8.4
+ SHA512 f70361a3263dd8b9441374a9a409462be1426c0d6587c865171a80448ab73b3f69de2b4d70d2f0c541764e1e6cccc727dd53178347901f625ec6fb54fb94f4f1
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
set(JSONCPP_STATIC OFF)
@@ -17,29 +17,21 @@ endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS -DJSONCPP_WITH_CMAKE_PACKAGE:BOOL=ON
-DBUILD_STATIC_LIBS:BOOL=${JSONCPP_STATIC}
-DBUILD_SHARED_LIBS:BOOL=${JSONCPP_DYNAMIC}
+ -DJSONCPP_WITH_PKGCONFIG_SUPPORT:BOOL=OFF
+ -DJSONCPP_WITH_TESTS:BOOL=OFF
)
vcpkg_install_cmake()
# Fix CMake files
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake/jsoncpp ${CURRENT_PACKAGES_DIR}/share/jsoncpp)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake)
-file(READ ${CURRENT_PACKAGES_DIR}/share/jsoncpp/jsoncppConfig.cmake _contents)
-string(REPLACE "get_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)\n\n" "\n" _contents "${_contents}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/jsoncpp/jsoncppConfig.cmake ${_contents})
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/jsoncpp)
-file(READ ${CURRENT_PACKAGES_DIR}/debug/lib/cmake/jsoncpp/jsoncppConfig-debug.cmake _contents)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" _contents "${_contents}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/jsoncpp/jsoncppConfig-debug.cmake "${_contents}")
-
-# Remove useless files in debug
+# Remove includes in debug
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)
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/jsoncpp)
diff --git a/ports/jsonnet/CMakeLists.txt b/ports/jsonnet/CMakeLists.txt
new file mode 100644
index 000000000..4f749e5b8
--- /dev/null
+++ b/ports/jsonnet/CMakeLists.txt
@@ -0,0 +1,53 @@
+cmake_minimum_required(VERSION 3.5.1)
+project(jsonnet)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+if(BUILD_SHARED_LIBS)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif()
+
+set( jsonnet_sources
+ core/desugarer.cpp
+ core/formatter.cpp
+ core/lexer.cpp
+ core/libjsonnet.cpp
+ core/parser.cpp
+ core/pass.cpp
+ core/static_analysis.cpp
+ core/string_utils.cpp
+ core/vm.cpp
+)
+
+include_directories(third_party/md5 include cpp core stdlib)
+
+add_library(md5 STATIC third_party/md5/md5.cpp)
+
+add_library(libjsonnet ${jsonnet_sources})
+target_link_libraries(libjsonnet md5)
+
+add_library(libjsonnet++ cpp/libjsonnet++.cpp)
+target_link_libraries(libjsonnet++ libjsonnet)
+
+add_executable(jsonnet cmd/jsonnet.cpp)
+target_link_libraries(jsonnet libjsonnet)
+
+
+install(
+ TARGETS libjsonnet libjsonnet++
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+if(NOT DISABLE_INSTALL_TOOLS)
+ install (
+ TARGETS jsonnet
+ RUNTIME DESTINATION tools/jsonnet
+ )
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES include/libjsonnet++.h include/libjsonnet.h DESTINATION include)
+endif()
diff --git a/ports/jsonnet/CONTROL b/ports/jsonnet/CONTROL
new file mode 100644
index 000000000..ff23cda3e
--- /dev/null
+++ b/ports/jsonnet/CONTROL
@@ -0,0 +1,3 @@
+Source: jsonnet
+Version: 2018-05-17
+Description: Jsonnet - The data templating language
diff --git a/ports/jsonnet/portfile.cmake b/ports/jsonnet/portfile.cmake
new file mode 100644
index 000000000..51a7118c2
--- /dev/null
+++ b/ports/jsonnet/portfile.cmake
@@ -0,0 +1,29 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/jsonnet
+ REF d0ef48c976d9b72992001507ed3055baf56c2ba9
+ SHA512 ffa1a0da01dd770e3de37ffc78cc623efecd4e667de184116b8d9fdcc28ebb1fd2b09425d7f20c3f4dc2f3e4c8a637a1057eb7de0c41d042dce9941fcd593b0a
+ HEAD_REF master
+)
+
+vcpkg_execute_required_process(
+ COMMAND Powershell -Command "((Get-Content -Encoding Byte ${SOURCE_PATH}/stdlib/std.jsonnet) -join ',') + ',0' > ${SOURCE_PATH}/core/std.jsonnet.h"
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME "std.jsonnet"
+)
+
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/jsonnet)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/jsonnet RENAME copyright)
diff --git a/ports/jxrlib/CONTROL b/ports/jxrlib/CONTROL
index 062850e06..9fcc36254 100644
--- a/ports/jxrlib/CONTROL
+++ b/ports/jxrlib/CONTROL
@@ -1,3 +1,3 @@
Source: jxrlib
-Version: 1.1-2
+Version: 1.1-4
Description: Open source implementation of the jpegxr image format standard.
diff --git a/ports/jxrlib/portfile.cmake b/ports/jxrlib/portfile.cmake
index 57c9dc1fe..ca29a6aca 100644
--- a/ports/jxrlib/portfile.cmake
+++ b/ports/jxrlib/portfile.cmake
@@ -1,11 +1,13 @@
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src)
-vcpkg_download_distfile(ARCHIVE
- URLS "http://download-codeplex.sec.s-msft.com/Download/SourceControlFileDownload.ashx?ProjectName=jxrlib&changeSetId=e922fa50cdf9a58f40cad07553bcaa2883d3c5bf"
- FILENAME "jxrlib_1_1.zip"
- SHA512 6e8b579108444e9bea8d01f57e2ac3b63963c084adb8e265cfd82bb1199b8bd168b8aa41319cf34b87e97db1d72d0f3cc2d3dac881fcd1a6f398fe808d55772d
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO 4creators/jxrlib
+ REF e922fa50cdf9a58f40cad07553bcaa2883d3c5bf
+ SHA512 15ed099e5f80571ebd86e115ed1c2dd18be4d6faa8b5f19212ea89582ec37e0ffa0629d80470fcb49f1c605996ea6ce76fd0dd95d9edee458ba290dff4d21537
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
@@ -26,4 +28,4 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/jxrlib)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/jxrlib/LICENSE ${CURRENT_PACKAGES_DIR}/share/jxrlib/copyright)
-vcpkg_copy_pdbs() \ No newline at end of file
+vcpkg_copy_pdbs()
diff --git a/ports/kealib/CONTROL b/ports/kealib/CONTROL
new file mode 100644
index 000000000..7e8a712a2
--- /dev/null
+++ b/ports/kealib/CONTROL
@@ -0,0 +1,8 @@
+Source: kealib
+Version: 1.4.7-1
+Build-Depends: hdf5[cpp], zlib, szip
+Description: kealib is gdal model using HDF5 standard.
+
+Feature: parallel
+Description: Use parallel support for HDF5
+Build-Depends: hdf5[parallel], msmpi
diff --git a/ports/kealib/fix-cmake.patch b/ports/kealib/fix-cmake.patch
new file mode 100644
index 000000000..191517990
--- /dev/null
+++ b/ports/kealib/fix-cmake.patch
@@ -0,0 +1,122 @@
+diff --git a/trunk/CMakeLists.txt b/trunk/CMakeLists.txt
+index 464fb13..dc8e26f 100644
+--- a/trunk/CMakeLists.txt
++++ b/trunk/CMakeLists.txt
+@@ -8,6 +8,7 @@
+ # which were derived from those used by libLAS (http://liblas.org/)
+ #
+ # History
++# 2018/01/25 - updated by Hiroshi Miura
+ # 2012/07/02 - Created by Peter Bunting
+ #
+ ###############################################################################
+@@ -50,13 +51,10 @@ endif()
+
+ option (BUILD_SHARED_LIBS "Build with shared library" ON)
+
+-set(HDF5_INCLUDE_DIR /usr/local/include CACHE PATH "Include PATH for HDF5")
+-set(HDF5_LIB_PATH /usr/local/lib CACHE PATH "Library PATH for HDF5")
+
+ set(GDAL_INCLUDE_DIR "NOTFOUND" CACHE PATH "Include PATH for GDAL")
+ set(GDAL_LIB_PATH "NOTFOUND" CACHE PATH "Library PATH for GDAL")
+
+-set(HDF5_STATIC_LIBS FALSE CACHE BOOL "On Windows, link against static HDF5 libs")
+
+ IF(GDAL_INCLUDE_DIR AND GDAL_LIB_PATH)
+ # by default, only build if paths are set
+@@ -65,6 +63,8 @@ ELSE()
+ set(LIBKEA_WITH_GDAL FALSE CACHE BOOL "Choose if .kea GDAL driver should be built")
+ ENDIF()
+
++find_package(hdf5 COMPONENTS CXX HL REQUIRED)
++link_libraries(hdf5::hdf5_cpp-shared)
+ ###############################################################################
+
+ ###############################################################################
+@@ -141,14 +141,7 @@ endif(APPLE)
+ # Check the required libraries are present
+
+ if (MSVC)
+- if(HDF5_STATIC_LIBS)
+- set(HDF5_LIBRARIES -LIBPATH:"${HDF5_LIB_PATH}" hdf5_cpp.lib hdf5.lib zlibstatic.lib)
+- else()
+- set(HDF5_LIBRARIES -LIBPATH:"${HDF5_LIB_PATH}" hdf5_cpp.lib hdf5.lib)
+- set_property(DIRECTORY PROPERTY COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB)
+- endif()
+ else()
+- set(HDF5_LIBRARIES "-L${HDF5_LIB_PATH} -lhdf5 -lhdf5_hl -lhdf5_cpp")
+ endif(MSVC)
+
+ if (MSVC)
+@@ -160,21 +153,19 @@ endif(MSVC)
+
+ ###############################################################################
+ # Setup configure file
+-configure_file ( "${PROJECT_HEADER_DIR}/kea-config.h.in" "${PROJECT_HEADER_DIR}/libkea/kea-config.h" )
+-configure_file ( "${PROJECT_TOOLS_DIR}/kea-config.in" "${PROJECT_BINARY_DIR}/kea-config" )
++configure_file ( "${PROJECT_HEADER_DIR}/kea-config.h.in" "${CMAKE_BINARY_DIR}/${PROJECT_HEADER_DIR}/libkea/kea-config.h" )
++configure_file ( "${PROJECT_TOOLS_DIR}/kea-config.in" "${CMAKE_BINARY_DIR}/${PROJECT_BINARY_DIR}/kea-config" )
+ ###############################################################################
+
+ ###############################################################################
+ # Documentation
+-file(READ "doc/index.txt" README )
+-file(WRITE "README.txt" "${README}")
+ ###############################################################################
+
+ ###############################################################################
+ # Build library
+
+ include_directories ("${PROJECT_HEADER_DIR}")
+-include_directories(${HDF5_INCLUDE_DIR})
++include_directories ("${CMAKE_BINARY_DIR}/${PROJECT_HEADER_DIR}")
+ add_subdirectory ("${PROJECT_SOURCE_DIR}")
+ if (LIBKEA_WITH_GDAL)
+ add_subdirectory ("${PROJECT_GDAL_DIR}")
+@@ -185,13 +176,11 @@ endif(LIBKEA_WITH_GDAL)
+ # Tests
+ enable_testing()
+ add_test(NAME test1 COMMAND src/test1)
+-
+ ###############################################################################
+
+ ###############################################################################
+ # Installation
+-
+-install (FILES "${PROJECT_BINARY_DIR}/kea-config" DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
++install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_BINARY_DIR}/kea-config" DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ ###############################################################################
+
+ ###############################################################################
+diff --git a/trunk/src/CMakeLists.txt b/trunk/src/CMakeLists.txt
+index 84456c4..b804e74 100644
+--- a/trunk/src/CMakeLists.txt
++++ b/trunk/src/CMakeLists.txt
+@@ -37,6 +37,7 @@ target_link_libraries(${LIBKEA_LIB_NAME} ${HDF5_LIBRARIES} )
+
+ ###############################################################################
+ # Testing
++if(NOT DISABLE_TESTS)
+ # exe needs to be in 'src' otherwise it doesn't work
+ add_executable (test1 ${PROJECT_TEST_DIR}/test1.cpp)
+ target_link_libraries (test1 ${LIBKEA_LIB_NAME})
+@@ -53,6 +54,7 @@ if(NOT WIN32)
+ # probably should match other compilers, but since this is a Conda
+ # specific hack I'm not going to bother
+ endif()
++endif()
+
+ ###############################################################################
+ # Set target properties
+@@ -67,6 +69,9 @@ PROPERTIES
+
+ ###############################################################################
+ # Installation
+-install (TARGETS ${LIBKEA_LIB_NAME} DESTINATION lib)
++install (TARGETS ${LIBKEA_LIB_NAME}
++ RUNTIME DESTINATION bin
++ LIBRARY DESTINATION lib
++ ARCHIVE DESTINATION lib)
+ install (FILES ${LIBKEA_H} DESTINATION include/libkea)
+ ###############################################################################
+\ No newline at end of file
diff --git a/ports/kealib/portfile.cmake b/ports/kealib/portfile.cmake
new file mode 100644
index 000000000..4cd8b59d5
--- /dev/null
+++ b/ports/kealib/portfile.cmake
@@ -0,0 +1,39 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/kealib-1.4.7)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://bitbucket.org/chchrsc/kealib/downloads/kealib-1.4.7.tar.gz"
+ FILENAME "kealib-1.4.7.tar.gz"
+ SHA512 2d58d7d08943d028e19a24f3ad3316a13b4db59be8697cebf30ee621e6bf0a6a47bf61abadd972d6ea7af1c8eed28bba7edf40fb8709fcccc1effbc90ae6e244
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-cmake.patch
+)
+
+if ("parallel" IN_LIST FEATURES)
+ set(ENABLE_PARALLEL ON)
+else()
+ set(ENABLE_PARALLEL OFF)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/trunk
+ PREFER_NINJA
+ OPTIONS
+ -DHDF5_PREFER_PARALLEL=${ENABLE_PARALLEL}
+ -DLIBKEA_WITH_GDAL=OFF
+ -DDISABLE_TESTS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(INSTALL ${SOURCE_PATH}/trunk/python/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/kealib RENAME copyright)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin)
+endif() \ No newline at end of file
diff --git a/ports/keystone/CONTROL b/ports/keystone/CONTROL
new file mode 100644
index 000000000..70443a202
--- /dev/null
+++ b/ports/keystone/CONTROL
@@ -0,0 +1,3 @@
+Source: keystone
+Version: 0.9.1
+Description: Lightweight multi-platform, multi-architecture assembler framework
diff --git a/ports/keystone/portfile.cmake b/ports/keystone/portfile.cmake
new file mode 100644
index 000000000..6f740aeda
--- /dev/null
+++ b/ports/keystone/portfile.cmake
@@ -0,0 +1,51 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO keystone-engine/keystone
+ REF 0.9.1
+ SHA512 3bd9c3793d5862a0a8628b52da381625e62445f661dbd5ed715723e7d9db01ce3f9586e5ca0a5cc71e8ceb6c912050f5c28e3ccd540e72c8abcfd2f0d1bbae17
+ HEAD_REF master
+)
+
+vcpkg_find_acquire_program(PYTHON2)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" KEYSTONE_BUILD_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" KEYSTONE_BUILD_SHARED)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DKEYSTONE_BUILD_STATIC=${KEYSTONE_BUILD_STATIC}
+ -DKEYSTONE_BUILD_SHARED=${KEYSTONE_BUILD_SHARED}
+ -DPYTHON_EXECUTABLE=${PYTHON2}
+
+ # Add support for only a subset of architectures
+ #-DLLVM_TARGETS_TO_BUILD="AArch64;X86"
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(GLOB EXES ${CURRENT_PACKAGES_DIR}/bin/*.exe ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+if(EXES)
+ file(REMOVE ${EXES})
+endif()
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+else()
+ # Move DLLs
+ file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/lib/*.dll)
+ file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${DLLS})
+ file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll)
+ file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DLLS})
+endif()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/COPYING
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/keystone
+ RENAME copyright
+)
diff --git a/ports/kf5plotting/CONTROL b/ports/kf5plotting/CONTROL
new file mode 100644
index 000000000..a24b8e352
--- /dev/null
+++ b/ports/kf5plotting/CONTROL
@@ -0,0 +1,4 @@
+Source: kf5plotting
+Version: 5.37.0
+Description: Lightweight plotting framework
+Build-Depends: ecm, qt5
diff --git a/ports/kf5plotting/portfile.cmake b/ports/kf5plotting/portfile.cmake
new file mode 100644
index 000000000..39d6e8893
--- /dev/null
+++ b/ports/kf5plotting/portfile.cmake
@@ -0,0 +1,24 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/kplotting-5.37.0)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://download.kde.org/stable/frameworks/5.37/kplotting-5.37.0.zip"
+ FILENAME "kplotting-5.37.0.zip"
+ SHA512 3a1b3f993123dea7141d280cd53ae1b5e49b859e9df39a188bac216758576106efd8b744e8f10f96fac158f980d79ae94d2b27f3d85a48fcd5673263ffce3c4e
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DBUILD_HTML_DOCS=OFF
+ -DBUILD_MAN_DOCS=OFF
+ -DBUILD_QTHELP_DOCS=OFF
+ -DBUILD_TESTING=OFF
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/KF5Plotting)
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(INSTALL ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/KF5plotting RENAME copyright)
diff --git a/ports/kinectsdk1/CONTROL b/ports/kinectsdk1/CONTROL
new file mode 100644
index 000000000..9764fb69a
--- /dev/null
+++ b/ports/kinectsdk1/CONTROL
@@ -0,0 +1,3 @@
+Source: kinectsdk1
+Version: 1.8-2
+Description: Kinect for Windows SDK for Kinect v1 sensor.
diff --git a/ports/kinectsdk1/portfile.cmake b/ports/kinectsdk1/portfile.cmake
new file mode 100644
index 000000000..5aec50119
--- /dev/null
+++ b/ports/kinectsdk1/portfile.cmake
@@ -0,0 +1,71 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ message(FATAL_ERROR "This port does not currently support architecture: ${VCPKG_TARGET_ARCHITECTURE}")
+endif()
+
+set(KINECTSDK10_VERSION "v1.8")
+vcpkg_download_distfile(KINECTSDK10_INSTALLER
+ URLS "https://download.microsoft.com/download/E/1/D/E1DEC243-0389-4A23-87BF-F47DE869FC1A/KinectSDK-${KINECTSDK10_VERSION}-Setup.exe"
+ FILENAME "KinectSDK-${KINECTSDK10_VERSION}-Setup.exe"
+ SHA512 ee8a0f70c86aad80fe214108e315e4550a90ed39f278ce00a7137532174ee5bf3bdeb1d0b499fc5ffdb5e176adecfd68963ee3731e1d2f00d69d32d1b8a3c555
+)
+
+vcpkg_find_acquire_program(DARK)
+
+set(KINECTSDK10_WIX_INSTALLER "${KINECTSDK10_INSTALLER}")
+set(KINECTSDK10_WIX_EXTRACT_DIR "${CURRENT_BUILDTREES_DIR}/src/installer/wix")
+vcpkg_execute_required_process(
+ COMMAND ${DARK} -x ${KINECTSDK10_WIX_EXTRACT_DIR} ${KINECTSDK10_WIX_INSTALLER}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}
+ LOGNAME extract_wix_installer
+)
+
+file(TO_NATIVE_PATH "${KINECTSDK10_WIX_EXTRACT_DIR}/AttachedContainer/KinectSDK-${KINECTSDK10_VERSION}-${VCPKG_TARGET_ARCHITECTURE}.msi" KINECTSDK10_MSI_INSTALLER)
+file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/src/installer/msi/${VCPKG_TARGET_ARCHITECTURE}" KINECTSDK10_MSI_EXTRACT_DIR)
+file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/msiexec.log" MSIEXEC_LOG_PATH)
+set(BATCH_FILE ${CURRENT_BUILDTREES_DIR}/msiextract-msmpi.bat)
+file(WRITE ${BATCH_FILE} "msiexec.exe /a \"${KINECTSDK10_MSI_INSTALLER}\" /qn /log \"${MSIEXEC_LOG_PATH}\" TARGETDIR=\"${KINECTSDK10_MSI_EXTRACT_DIR}\"")
+vcpkg_execute_required_process(
+ COMMAND ${BATCH_FILE}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}
+ LOGNAME extract_msi_installer_${VCPKG_TARGET_ARCHITECTURE}
+)
+
+set(KINECTSDK10_DIR "${CURRENT_BUILDTREES_DIR}/src/installer/msi/${VCPKG_TARGET_ARCHITECTURE}/Microsoft SDKs/Kinect/${KINECTSDK10_VERSION}")
+
+file(
+ INSTALL
+ "${KINECTSDK10_DIR}/inc/NuiApi.h"
+ "${KINECTSDK10_DIR}/inc/NuiImageCamera.h"
+ "${KINECTSDK10_DIR}/inc/NuiSensor.h"
+ "${KINECTSDK10_DIR}/inc/NuiSkeleton.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include
+)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(ARCHITECTURE x86)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(ARCHITECTURE amd64)
+else()
+ message(FATAL_ERROR "This port does not currently support architecture: ${VCPKG_TARGET_ARCHITECTURE}")
+endif()
+
+file(
+ INSTALL
+ "${KINECTSDK10_DIR}/lib/${ARCHITECTURE}/Kinect10.lib"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/lib
+)
+
+file(
+ INSTALL
+ "${KINECTSDK10_DIR}/lib/${ARCHITECTURE}/Kinect10.lib"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+# Handle copyright
+file(COPY "${KINECTSDK10_DIR}/SDKEula.rtf" DESTINATION ${CURRENT_PACKAGES_DIR}/share/kinectsdk1)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/kinectsdk1/SDKEula.rtf ${CURRENT_PACKAGES_DIR}/share/kinectsdk1/copyright) \ No newline at end of file
diff --git a/ports/kinectsdk2/CONTROL b/ports/kinectsdk2/CONTROL
new file mode 100644
index 000000000..85ccd7f0b
--- /dev/null
+++ b/ports/kinectsdk2/CONTROL
@@ -0,0 +1,3 @@
+Source: kinectsdk2
+Version: 2.0
+Description: Kinect for Windows SDK for Kinect v2 sensor.
diff --git a/ports/kinectsdk2/portfile.cmake b/ports/kinectsdk2/portfile.cmake
new file mode 100644
index 000000000..05aa1fd2e
--- /dev/null
+++ b/ports/kinectsdk2/portfile.cmake
@@ -0,0 +1,72 @@
+# 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)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ message(FATAL_ERROR "This port does not currently support architecture: ${VCPKG_TARGET_ARCHITECTURE}")
+endif()
+
+set(KINECTSDK20_VERSION "v2.0_1409")
+vcpkg_download_distfile(KINECTSDK20_INSTALLER
+ URLS "https://download.microsoft.com/download/F/2/D/F2D1012E-3BC6-49C5-B8B3-5ACFF58AF7B8/KinectSDK-${KINECTSDK20_VERSION}-Setup.exe"
+ FILENAME "KinectSDK-${KINECTSDK20_VERSION}-Setup.exe"
+ SHA512 ae3b00f45282ab2ed6ea36c09e42e1b274074f41546ecfbe00facf1fffa2e5a762ffeffb9ba2194f716e8122e0fbd9a8ef63c62be68d2b50a40e4f8c5a821f5f
+)
+
+vcpkg_find_acquire_program(DARK)
+
+set(KINECTSDK20_WIX_INSTALLER "${KINECTSDK20_INSTALLER}")
+set(KINECTSDK20_WIX_EXTRACT_DIR "${CURRENT_BUILDTREES_DIR}/src/installer/wix")
+vcpkg_execute_required_process(
+ COMMAND ${DARK} -x ${KINECTSDK20_WIX_EXTRACT_DIR} ${KINECTSDK20_WIX_INSTALLER}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}
+ LOGNAME extract_wix_installer
+)
+
+file(TO_NATIVE_PATH "${KINECTSDK20_WIX_EXTRACT_DIR}/AttachedContainer/KinectSDK-${KINECTSDK20_VERSION}-x64.msi" KINECTSDK20_MSI_INSTALLER)
+file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/src/installer/msi" KINECTSDK20_MSI_EXTRACT_DIR)
+file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/msiexec.log" MSIEXEC_LOG_PATH)
+set(BATCH_FILE ${CURRENT_BUILDTREES_DIR}/msiextract-msmpi.bat)
+file(WRITE ${BATCH_FILE} "msiexec.exe /a \"${KINECTSDK20_MSI_INSTALLER}\" /qn /log \"${MSIEXEC_LOG_PATH}\" TARGETDIR=\"${KINECTSDK20_MSI_EXTRACT_DIR}\"")
+vcpkg_execute_required_process(
+ COMMAND ${BATCH_FILE}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}
+ LOGNAME extract_msi_installer
+)
+
+set(KINECTSDK20_DIR "${CURRENT_BUILDTREES_DIR}/src/installer/msi/Microsoft SDKs/Kinect/${KINECTSDK20_VERSION}")
+
+file(
+ INSTALL
+ "${KINECTSDK20_DIR}/inc/Kinect.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include
+)
+
+file(
+ INSTALL
+ "${KINECTSDK20_DIR}/Lib/${VCPKG_TARGET_ARCHITECTURE}/Kinect20.lib"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/lib
+)
+
+file(
+ INSTALL
+ "${KINECTSDK20_DIR}/Lib/${VCPKG_TARGET_ARCHITECTURE}/Kinect20.lib"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+# Handle copyright
+file(COPY "${KINECTSDK20_DIR}/SDKEula.rtf" DESTINATION ${CURRENT_PACKAGES_DIR}/share/kinectsdk2)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/kinectsdk2/SDKEula.rtf ${CURRENT_PACKAGES_DIR}/share/kinectsdk2/copyright)
diff --git a/ports/lcm/CONTROL b/ports/lcm/CONTROL
new file mode 100644
index 000000000..0cca68404
--- /dev/null
+++ b/ports/lcm/CONTROL
@@ -0,0 +1,5 @@
+Source: lcm
+Version: 1.3.95-1
+Build-Depends: glib
+Description: Lightweight Communications and Marshalling (LCM)
+ LCM is a set of libraries and tools for message passing and data marshalling, targeted at real-time systems where high-bandwidth and low latency are critical. It provides a publish/subscribe message passing model and automatic marshalling/unmarshalling code generation with bindings for applications in a variety of programming languages.
diff --git a/ports/lcm/only-install-one-flavor.patch b/ports/lcm/only-install-one-flavor.patch
new file mode 100644
index 000000000..d22b83c23
--- /dev/null
+++ b/ports/lcm/only-install-one-flavor.patch
@@ -0,0 +1,19 @@
+diff --git a/lcm/CMakeLists.txt b/lcm/CMakeLists.txt
+index a706a85..639ec12 100644
+--- a/lcm/CMakeLists.txt
++++ b/lcm/CMakeLists.txt
+@@ -76,8 +76,12 @@ endif()
+ target_include_directories(lcm-coretypes INTERFACE
+ $<BUILD_INTERFACE:${lcm_SOURCE_DIR}>
+ )
+-
+-install(TARGETS lcm-coretypes lcm-static lcm
++if(BUILD_SHARED_LIBS)
++ set(INSTALL_TARGETS lcm)
++else()
++ set(INSTALL_TARGETS lcm-static)
++endif()
++install(TARGETS lcm-coretypes ${INSTALL_TARGETS}
+ EXPORT lcmTargets
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib${LIB_SUFFIX}
diff --git a/ports/lcm/portfile.cmake b/ports/lcm/portfile.cmake
new file mode 100644
index 000000000..b50139f62
--- /dev/null
+++ b/ports/lcm/portfile.cmake
@@ -0,0 +1,55 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO lcm-proj/lcm
+ REF 82bd3a223e3227c70832307e53a65c13c1e5f81b
+ SHA512 5d3abf457e18a3bb50489ed17393c5416a459134f73c264e67d174a29411d6deb70c754b5669422a438ea3e5793b9b1b91d67e9d842151c5a910245fede5879f
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/only-install-one-flavor.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DLCM_ENABLE_JAVA=OFF
+ -DLCM_ENABLE_LUA=OFF
+ -DLCM_ENABLE_PYTHON=OFF
+ -DLCM_ENABLE_TESTS=OFF
+ -DLCM_INSTALL_M4MACROS=OFF
+ -DLCM_INSTALL_PKGCONFIG=OFF
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/aclocal)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/java)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/man)
+
+file(GLOB EXES ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+if(EXES)
+ file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/lcm)
+ file(REMOVE ${EXES})
+endif()
+file(GLOB DEBUG_EXES ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+if(DEBUG_EXES)
+ file(REMOVE ${DEBUG_EXES})
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/lcm)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/lcm RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/lcms/CMakeLists.txt b/ports/lcms/CMakeLists.txt
index 0fedfb95e..10ccc0b02 100644
--- a/ports/lcms/CMakeLists.txt
+++ b/ports/lcms/CMakeLists.txt
@@ -33,14 +33,21 @@ set(SRCS
"src/cmssm.c"
)
+set(CMAKE_DEBUG_POSTFIX d)
+
add_definitions(-DUNICODE -D_UNICODE)
+
+if(BUILD_SHARED_LIBS)
+ add_definitions(-DCMS_DLL_BUILD)
+endif()
+
string(REPLACE "/utf-8" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
include_directories(
"./include"
)
-add_library(lcms ${SRCS})
+add_library(lcms2 ${SRCS})
if(NOT SKIP_INSTALL_HEADERS )
@@ -52,7 +59,7 @@ if(NOT SKIP_INSTALL_HEADERS )
endif(NOT SKIP_INSTALL_HEADERS )
-install(TARGETS lcms EXPORT lcms_EXPORT
+install(TARGETS lcms2 EXPORT lcms_EXPORT
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
diff --git a/ports/lcms/CONTROL b/ports/lcms/CONTROL
index 64567fddd..5855fbc71 100644
--- a/ports/lcms/CONTROL
+++ b/ports/lcms/CONTROL
@@ -1,4 +1,4 @@
Source: lcms
-Version: 2.8
+Version: 2.8-4
Build-Depends:
-Description: Little CMS. \ No newline at end of file
+Description: Little CMS.
diff --git a/ports/lcms/portfile.cmake b/ports/lcms/portfile.cmake
index 4487cce6a..7d52e5270 100644
--- a/ports/lcms/portfile.cmake
+++ b/ports/lcms/portfile.cmake
@@ -1,23 +1,19 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/lcms2-2.8)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://sourceforge.net/projects/lcms/files/lcms/2.8/lcms2-2.8.tar.gz/download"
- FILENAME "lcms2-2.8.tar.gz"
- SHA512 a9478885b4892c79314a2ef9ab560e6655ac8f2d17abae0805e8b871138bb190e21f0e5c805398449f9dad528dc50baaf9e3cce8b8158eb8ff74179be5733f8f
-)
-vcpkg_extract_source_archive(${ARCHIVE})
-message(STATUS ${SOURCE_PATH})
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mm2/Little-CMS
+ REF lcms2.8
+ SHA512 22ee94aa3333db4248607d8aa84343d324e04b30c154c46672c6f668e14a369b9b72f2557b8465218b6e9a2676cf8fa37d617b4aa13a013dc2337197a599e63a
+ HEAD_REF master
+)
-set(USE_SHARED_LIBRARY OFF)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- set(USE_SHARED_LIBRARY ON)
-endif()
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS_DEBUG
+ PREFER_NINJA
+ OPTIONS_DEBUG
-DSKIP_INSTALL_HEADERS=ON
)
@@ -32,4 +28,4 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
vcpkg_apply_patches(
SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
PATCHES "${CMAKE_CURRENT_LIST_DIR}/shared.patch")
-endif(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+endif()
diff --git a/ports/lcms/shared.patch b/ports/lcms/shared.patch
index b3e7bf75f..2d7506c52 100644
--- a/ports/lcms/shared.patch
+++ b/ports/lcms/shared.patch
@@ -4,7 +4,7 @@
#endif // CMS_USE_BIG_ENDIAN
-+#define CMS_DLL_BUILD
++#define CMS_DLL
// Calling convention -- this is hardly platform and compiler dependent
#ifdef CMS_IS_WINDOWS_
diff --git a/ports/leptonica/CONTROL b/ports/leptonica/CONTROL
new file mode 100644
index 000000000..2be42f327
--- /dev/null
+++ b/ports/leptonica/CONTROL
@@ -0,0 +1,4 @@
+Source: leptonica
+Version: 1.74.4-3
+Description: An open source library containing software that is broadly useful for image processing and image analysis applications
+Build-Depends: libjpeg-turbo, zlib, libpng, tiff, giflib
diff --git a/ports/leptonica/fix-cmakelists.patch b/ports/leptonica/fix-cmakelists.patch
new file mode 100644
index 000000000..18eb8cde5
--- /dev/null
+++ b/ports/leptonica/fix-cmakelists.patch
@@ -0,0 +1,34 @@
+--- a/src/CMakeLists.txt Sun Jun 11 23:04:50 2017
++++ b/src/CMakeLists.txt Wed Aug 16 17:29:56 2017
+@@ -27,24 +27,31 @@
+ endif()
+
+ if (GIF_LIBRARY)
++ target_include_directories (leptonica PUBLIC ${GIF_INCLUDE_DIR})
+ target_link_libraries (leptonica ${GIF_LIBRARY})
+ endif()
+ if (JPEG_LIBRARY)
++ target_include_directories (leptonica PUBLIC ${JPEG_INCLUDE_DIR})
+ target_link_libraries (leptonica ${JPEG_LIBRARY})
+ endif()
+ if (JP2K_FOUND)
++ target_include_directories (leptonica PUBLIC ${JP2K_INCLUDE_DIR})
+ target_link_libraries (leptonica ${JP2K_LIBRARIES})
+ endif()
+ if (PNG_LIBRARY)
++ target_include_directories (leptonica PUBLIC ${PNG_INCLUDE_DIRS})
+ target_link_libraries (leptonica ${PNG_LIBRARY})
+ endif()
+ if (TIFF_LIBRARY)
++ target_include_directories (leptonica PUBLIC ${TIFF_INCLUDE_DIR})
+ target_link_libraries (leptonica ${TIFF_LIBRARY})
+ endif()
+ if (WEBP_FOUND)
++ target_include_directories (leptonica PUBLIC ${WEBP_INCLUDE_DIR})
+ target_link_libraries (leptonica ${WEBP_LIBRARIES})
+ endif()
+ if (ZLIB_LIBRARY)
++ target_include_directories (leptonica PUBLIC ${ZLIB_INCLUDE_DIR})
+ target_link_libraries (leptonica ${ZLIB_LIBRARY})
+ endif()
+
diff --git a/ports/leptonica/portfile.cmake b/ports/leptonica/portfile.cmake
new file mode 100644
index 000000000..acaf7fe9d
--- /dev/null
+++ b/ports/leptonica/portfile.cmake
@@ -0,0 +1,40 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO DanBloomberg/leptonica
+ REF 1.74.4
+ SHA512 3b9d0be937883f733f72cbdf0b624ec245d9256a8b4622997f437d309efd7ad9695ad1cbe2224d543eb3ef8c44833567b3cc9a95e9a774ef9046b7acaf0ae744
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch
+ ${CMAKE_CURRENT_LIST_DIR}/use-tiff-libraries.patch
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" STATIC)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DSTATIC=${STATIC}
+ -DCMAKE_REQUIRED_INCLUDES=${CURRENT_INSTALLED_DIR}/include # for check_include_file()
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake")
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/leptonica-license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/leptonica)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/leptonica/leptonica-license.txt ${CURRENT_PACKAGES_DIR}/share/leptonica/copyright)
diff --git a/ports/leptonica/use-tiff-libraries.patch b/ports/leptonica/use-tiff-libraries.patch
new file mode 100644
index 000000000..f994be552
--- /dev/null
+++ b/ports/leptonica/use-tiff-libraries.patch
@@ -0,0 +1,13 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 3af7e30..55e17da 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -44,7 +44,7 @@ if (PNG_LIBRARY)
+ endif()
+ if (TIFF_LIBRARY)
+ target_include_directories (leptonica PUBLIC ${TIFF_INCLUDE_DIR})
+- target_link_libraries (leptonica ${TIFF_LIBRARY})
++ target_link_libraries (leptonica ${TIFF_LIBRARIES})
+ endif()
+ if (WEBP_FOUND)
+ target_include_directories (leptonica PUBLIC ${WEBP_INCLUDE_DIR})
diff --git a/ports/leveldb/CMakeLists.txt b/ports/leveldb/CMakeLists.txt
new file mode 100644
index 000000000..73b082c4a
--- /dev/null
+++ b/ports/leveldb/CMakeLists.txt
@@ -0,0 +1,75 @@
+cmake_minimum_required(VERSION 3.8)
+project(leveldb C CXX)
+
+option(INSTALL_HEADERS "Install header files" ON)
+
+add_definitions(
+ -DWIN32
+ -D_CRT_NONSTDC_NO_DEPRECATE
+ -D_SCL_SECURE_NO_WARNINGS
+ -D_CRT_SECURE_NO_WARNINGS
+ -DNOMINMAX
+ -DLEVELDB_ATOMIC_PRESENT
+ -DLEVELDB_PLATFORM_WINDOWS
+)
+
+add_library(libleveldb
+ db/builder.cc
+ db/c.cc
+ db/dbformat.cc
+ db/db_impl.cc
+ db/db_iter.cc
+ db/dumpfile.cc
+ db/filename.cc
+ db/log_reader.cc
+ db/log_writer.cc
+ db/memtable.cc
+ db/repair.cc
+ db/table_cache.cc
+ db/version_edit.cc
+ db/version_set.cc
+ db/write_batch.cc
+ helpers/memenv/memenv.cc
+ port/port_posix_sse.cc
+ port/port_win.cc
+ table/block.cc
+ table/block_builder.cc
+ table/filter_block.cc
+ table/format.cc
+ table/iterator.cc
+ table/merger.cc
+ table/table.cc
+ table/table_builder.cc
+ table/two_level_iterator.cc
+ util/arena.cc
+ util/bloom.cc
+ util/cache.cc
+ util/coding.cc
+ util/comparator.cc
+ util/crc32c.cc
+ util/env.cc
+ util/env_posix.cc
+ util/env_win.cc
+ util/filter_policy.cc
+ util/hash.cc
+ util/histogram.cc
+ util/logging.cc
+ util/options.cc
+ util/status.cc
+)
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR} include)
+
+target_link_libraries(libleveldb PUBLIC Iphlpapi.lib Shlwapi.lib)
+
+install(TARGETS libleveldb
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
+
+if(INSTALL_HEADERS)
+ file(GLOB HEADERS include/leveldb/*.h)
+ install(FILES ${HEADERS} DESTINATION include/leveldb)
+ install(FILES helpers/memenv/memenv.h DESTINATION include)
+endif() \ No newline at end of file
diff --git a/ports/leveldb/CONTROL b/ports/leveldb/CONTROL
new file mode 100644
index 000000000..515d7dfea
--- /dev/null
+++ b/ports/leveldb/CONTROL
@@ -0,0 +1,3 @@
+Source: leveldb
+Version: 2017-10-25-8b1cd3753b184341e837b30383832645135d3d73-2
+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/msvc_code_fix.diff b/ports/leveldb/msvc_code_fix.diff
new file mode 100644
index 000000000..6cab006d3
--- /dev/null
+++ b/ports/leveldb/msvc_code_fix.diff
@@ -0,0 +1,63 @@
+ db/c.cc | 2 ++
+ port/port_win.h | 7 +++++++
+ util/env_win.cc | 6 ++++--
+ 3 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/db/c.cc b/db/c.cc
+index 08ff0ad..b23e3dc 100644
+--- a/db/c.cc
++++ b/db/c.cc
+@@ -5,7 +5,9 @@
+ #include "leveldb/c.h"
+
+ #include <stdlib.h>
++#ifndef WIN32
+ #include <unistd.h>
++#endif
+ #include "leveldb/cache.h"
+ #include "leveldb/comparator.h"
+ #include "leveldb/db.h"
+diff --git a/port/port_win.h b/port/port_win.h
+index e8bf46e..989c15c 100644
+--- a/port/port_win.h
++++ b/port/port_win.h
+@@ -32,9 +32,16 @@
+ #define STORAGE_LEVELDB_PORT_PORT_WIN_H_
+
+ #ifdef _MSC_VER
++#if !(_MSC_VER >= 1900)
+ #define snprintf _snprintf
++#endif
+ #define close _close
+ #define fread_unlocked _fread_nolock
++#ifdef _WIN64
++#define ssize_t int64_t
++#else
++#define ssize_t int32_t
++#endif
+ #endif
+
+ #include <string>
+diff --git a/util/env_win.cc b/util/env_win.cc
+index d32c4e6..3b4c92b 100644
+--- a/util/env_win.cc
++++ b/util/env_win.cc
+@@ -761,14 +761,16 @@ uint64_t Win32Env::NowMicros()
+ static Status CreateDirInner( const std::string& dirname )
+ {
+ Status sRet;
+- DWORD attr = ::GetFileAttributes(dirname.c_str());
++ std::wstring dirnameW;
++ ToWidePath(dirname, dirnameW);
++ DWORD attr = ::GetFileAttributesW(dirnameW.c_str());
+ if (attr == INVALID_FILE_ATTRIBUTES) { // doesn't exist:
+ std::size_t slash = dirname.find_last_of("\\");
+ if (slash != std::string::npos){
+ sRet = CreateDirInner(dirname.substr(0, slash));
+ if (!sRet.ok()) return sRet;
+ }
+- BOOL result = ::CreateDirectory(dirname.c_str(), NULL);
++ BOOL result = ::CreateDirectoryW(dirnameW.c_str(), NULL);
+ if (result == FALSE) {
+ sRet = Status::IOError(dirname, "Could not create directory.");
+ return sRet;
diff --git a/ports/leveldb/portfile.cmake b/ports/leveldb/portfile.cmake
new file mode 100644
index 000000000..9d6892977
--- /dev/null
+++ b/ports/leveldb/portfile.cmake
@@ -0,0 +1,30 @@
+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
+ BRANCH "bitcoin-fork"
+ REPO "bitcoin-core/leveldb"
+ REF "8b1cd3753b184341e837b30383832645135d3d73"
+ SHA512 f5ad5fd21fb28ee052a4f3873abd58dab508c71621bcd482ab9e6ef4b57eca182c81502ddfe59736f5b2a54f2d05b397dd15982b3bd5d9039cd481eae3c7b958
+)
+
+vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/msvc_code_fix.diff)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS_DEBUG -DINSTALL_HEADERS=OFF
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/leveldb RENAME copyright)
diff --git a/ports/libaiff/CMakeLists.txt b/ports/libaiff/CMakeLists.txt
new file mode 100644
index 000000000..9dcfd46d2
--- /dev/null
+++ b/ports/libaiff/CMakeLists.txt
@@ -0,0 +1,32 @@
+cmake_minimum_required (VERSION 3.9)
+project (libaiff)
+set(SRC
+ iff.c aifx.c lpcm.c g711.c
+ float32.c libaiff.c
+ extended.c pascal.c
+)
+
+if(MSVC)
+ add_compile_options(/W4 -D_CRT_SECURE_NO_WARNINGS -DHAVE_INTTYPES_H -DHAVE_STDINT_H -DHAVE_STRING_H -DHAVE_STDLIB_H)
+endif()
+
+if(BUILD_SHARED_LIBS)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif()
+
+include_directories(.)
+
+add_library(libaiff ${SRC})
+
+
+install(
+ TARGETS libaiff
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES libaiff/libaiff.h libaiff/config.h libaiff/endian.h DESTINATION include/libaiff)
+endif()
diff --git a/ports/libaiff/CONTROL b/ports/libaiff/CONTROL
new file mode 100644
index 000000000..21078bfe8
--- /dev/null
+++ b/ports/libaiff/CONTROL
@@ -0,0 +1,3 @@
+Source: libaiff
+Version: 5.0
+Description: LibAiff is an open-source library, providing C applications transparent read & write operations for Audio Interchange File Format (AIFF) files, with the goal of supporting all of its features
diff --git a/ports/libaiff/allow_utf_16_filename.patch b/ports/libaiff/allow_utf_16_filename.patch
new file mode 100644
index 000000000..773b492fd
--- /dev/null
+++ b/ports/libaiff/allow_utf_16_filename.patch
@@ -0,0 +1,214 @@
+diff --git a/libaiff.c b/libaiff.c
+index d0ad40d..e266802 100644
+--- a/libaiff.c
++++ b/libaiff.c
+@@ -44,6 +44,8 @@ static struct decoder* decoders[] = {
+
+ static AIFF_Ref AIFF_ReadOpen (const char *, int);
+ static AIFF_Ref AIFF_WriteOpen (const char *, int);
++static AIFF_Ref AIFF_ReadOpenW (const wchar_t*, int);
++static AIFF_Ref AIFF_WriteOpenW (const wchar_t*, int);
+ static void AIFF_ReadClose (AIFF_Ref);
+ static int AIFF_WriteClose (AIFF_Ref);
+ static void* InitBuffer (AIFF_Ref, size_t);
+@@ -53,6 +55,21 @@ static int Prepare (AIFF_Ref);
+ static void Unprepare (AIFF_Ref);
+ static struct decoder* FindDecoder (IFFType);
+
++#ifdef _WIN32
++AIFF_Ref
++AIFF_OpenFileW(const wchar_t *file, int flags)
++{
++ AIFF_Ref ref = NULL;
++
++ if (flags & F_RDONLY) {
++ ref = AIFF_ReadOpenW(file, flags);
++ } else if (flags & F_WRONLY) {
++ ref = AIFF_WriteOpenW(file, flags);
++ }
++
++ return ref;
++}
++#endif
+ AIFF_Ref
+ AIFF_OpenFile(const char *file, int flags)
+ {
+@@ -86,6 +103,76 @@ AIFF_CloseFile(AIFF_Ref ref)
+ return r;
+ }
+
++#ifdef _WIN32
++static AIFF_Ref
++AIFF_ReadOpenW(const wchar_t *file, int flags)
++{
++ AIFF_Ref r;
++ IFFHeader hdr;
++
++ r = malloc(kAIFFRefSize);
++ if (!r) {
++ return NULL;
++ }
++ r->fd = _wfopen(file, L"rb");
++ if (r->fd == NULL) {
++ free(r);
++ return NULL;
++ }
++ r->flags = F_RDONLY | flags;
++ if (fread(&hdr, 1, 4, r->fd) < 4) {
++ fclose(r->fd);
++ free(r);
++ return NULL;
++ }
++ switch (hdr.hid) {
++ case AIFF_TYPE_IFF:
++ /* Continue reading the IFF header */
++ if (fread(&(hdr.len), 1, 8, r->fd) < 8) {
++ fclose(r->fd);
++ free(r);
++ return NULL;
++ }
++ if (hdr.len == 0) {
++ fclose(r->fd);
++ free(r);
++ return NULL;
++ }
++ /*
++ * Check the format type (AIFF or AIFC)
++ */
++ r->format = hdr.fid;
++ switch (r->format) {
++ case AIFF_TYPE_AIFF:
++ case AIFF_TYPE_AIFC:
++ break;
++ default:
++ fclose(r->fd);
++ free(r);
++ return NULL;
++ }
++
++ if (init_aifx(r) < 1) {
++ fclose(r->fd);
++ free(r);
++ return NULL;
++ }
++ break;
++ default:
++ fclose(r->fd);
++ free(r);
++ return NULL;
++ }
++
++ r->stat = 0;
++ r->buffer = NULL;
++ r->buflen = 0;
++
++ return r;
++}
++
++#endif
++
+ static AIFF_Ref
+ AIFF_ReadOpen(const char *file, int flags)
+ {
+@@ -450,6 +537,89 @@ AIFF_ReadClose(AIFF_Ref r)
+ return;
+ }
+
++#ifdef WIN32
++static AIFF_Ref
++AIFF_WriteOpenW(const wchar_t *file, int flags)
++{
++ AIFF_Ref w;
++ IFFHeader hdr;
++ ASSERT(sizeof(IFFHeader) == 12);
++
++ w = malloc(kAIFFRefSize);
++ if (!w) {
++err0:
++ return NULL;
++ }
++
++ /*
++ * Simultaneous open for reading & writing
++ */
++ w->fd = _wfopen(file, L"w+b");
++ if (w->fd == NULL) {
++err1:
++ free(w);
++ goto err0;
++ }
++ hdr.hid = ARRANGE_BE32(AIFF_FORM);
++ w->len = 4;
++ hdr.len = ARRANGE_BE32(4);
++ if (flags & F_AIFC)
++ hdr.fid = ARRANGE_BE32(AIFF_AIFC);
++ else
++ hdr.fid = ARRANGE_BE32(AIFF_AIFF);
++
++ if (fwrite(&hdr, 1, 12, w->fd) < 12) {
++err2:
++ fclose(w->fd);
++ goto err1;
++ }
++ w->stat = 0;
++ w->segmentSize = 0;
++ w->buffer = NULL;
++ w->buflen = 0;
++ w->tics = 0;
++
++ /*
++ * If writing AIFF-C, write the required FVER chunk
++ */
++ if (flags & F_AIFC) {
++ IFFChunk chk;
++ uint32_t vers;
++ ASSERT(sizeof(IFFChunk) == 8);
++
++ chk.id = ARRANGE_BE32(AIFF_FVER);
++ chk.len = ARRANGE_BE32(4);
++ vers = ARRANGE_BE32(AIFC_STD_DRAFT_082691);
++
++ if (fwrite(&chk, 1, 8, w->fd) < 8 ||
++ fwrite(&vers, 1, 4, w->fd) < 4) {
++ goto err2;
++ }
++
++ w->len += 12;
++
++ /*
++ * If no endianness specified for AIFF-C,
++ * default to big endian
++ */
++ if (!(flags & (LPCM_LTE_ENDIAN | LPCM_BIG_ENDIAN))) {
++ flags |= LPCM_BIG_ENDIAN;
++ }
++ } else {
++ /*
++ * If writing regular AIFF, make sure we
++ * write big-endian data
++ */
++ flags &= ~LPCM_LTE_ENDIAN;
++ flags |= LPCM_BIG_ENDIAN;
++ }
++
++ w->flags = F_WRONLY | flags;
++
++ return w;
++}
++#endif
++
+ static AIFF_Ref
+ AIFF_WriteOpen(const char *file, int flags)
+ {
+diff --git a/libaiff/libaiff.h b/libaiff/libaiff.h
+index 56fc77f..e1940a5 100644
+--- a/libaiff/libaiff.h
++++ b/libaiff/libaiff.h
+@@ -165,6 +165,7 @@ typedef struct s_Instrument Instrument ;
+
+ /* == Function prototypes == */
+ AIFF_Ref AIFF_OpenFile(const char *, int) ;
++AIFF_Ref AIFF_OpenFileW(const wchar_t *, int) ;
+ int AIFF_CloseFile(AIFF_Ref) ;
+ char* AIFF_GetAttribute(AIFF_Ref,IFFType) ;
+ int AIFF_GetInstrumentData(AIFF_Ref,Instrument*) ;
diff --git a/ports/libaiff/buffer_uninitialized.patch b/ports/libaiff/buffer_uninitialized.patch
new file mode 100644
index 000000000..d87ab41c6
--- /dev/null
+++ b/ports/libaiff/buffer_uninitialized.patch
@@ -0,0 +1,42 @@
+diff --git "a/libaiff.c" "b/libaiff.c"
+index e266802..21179f9 100644
+--- "a/libaiff.c"
++++ "b/libaiff.c"
+@@ -168,6 +168,9 @@ AIFF_ReadOpenW(const wchar_t *file, int flags)
+ r->buffer = NULL;
+ r->buflen = 0;
+
++ r->buffer2 = NULL;
++ r->buflen2 = 0;
++
+ return r;
+ }
+
+@@ -237,6 +240,9 @@ AIFF_ReadOpen(const char *file, int flags)
+ r->buffer = NULL;
+ r->buflen = 0;
+
++ r->buffer2 = NULL;
++ r->buflen2 = 0;
++
+ return r;
+ }
+
+@@ -577,6 +583,8 @@ err2:
+ w->segmentSize = 0;
+ w->buffer = NULL;
+ w->buflen = 0;
++ w->buffer2 = NULL;
++ w->buflen2 = 0;
+ w->tics = 0;
+
+ /*
+@@ -659,6 +667,8 @@ err2:
+ w->segmentSize = 0;
+ w->buffer = NULL;
+ w->buflen = 0;
++ w->buffer2 = NULL;
++ w->buflen2 = 0;
+ w->tics = 0;
+
+ /*
diff --git a/ports/libaiff/config.h b/ports/libaiff/config.h
new file mode 100644
index 000000000..f7c04eebf
--- /dev/null
+++ b/ports/libaiff/config.h
@@ -0,0 +1,12 @@
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "marcotrillo@gmail.com"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "LibAiff (MSVC)"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "LibAiff (MSVC) $Revision: 1.1 $"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "$Revision: 1.1 $"
+
diff --git a/ports/libaiff/portfile.cmake b/ports/libaiff/portfile.cmake
new file mode 100644
index 000000000..17277159e
--- /dev/null
+++ b/ports/libaiff/portfile.cmake
@@ -0,0 +1,41 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libaiff-5.0)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://sourceforge.net/projects/aifftools/files/libaiff/LibAiff%205.0/libaiff-5.0-release.tar.gz"
+ FILENAME "libaiff-5.0-release.tar.gz"
+ SHA512 7800f9a3fbd0c5a17b8cc6c9b60181131d159ab5f5fb8e7de54e8f88c151717a988231de664a635e61940267c854a9ce83d58b12e322dcdda3aa8080c7b15f66
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/allow_utf_16_filename.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/buffer_uninitialized.patch"
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h DESTINATION ${SOURCE_PATH}/libaiff)
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(GLOB HEADERS "${CURRENT_PACKAGES_DIR}/include/libaiff/*.h")
+foreach(HEADER ${HEADERS})
+ file(READ "${HEADER}" _contents)
+ string(REPLACE "#ifdef HAVE_STDINT_H" "#if 1" _contents "${_contents}")
+ string(REPLACE "#ifdef HAVE_STRING_H" "#if 1" _contents "${_contents}")
+ string(REPLACE "#ifdef HAVE_STDLIB_H" "#if 1" _contents "${_contents}")
+ string(REPLACE "#ifdef HAVE_INTTYPES_H" "#if 1" _contents "${_contents}")
+ file(WRITE "${HEADER}" "${_contents}")
+endforeach()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libaiff RENAME copyright)
diff --git a/ports/libarchive/CONTROL b/ports/libarchive/CONTROL
index f4f9b8cdd..dfcfa66b3 100644
--- a/ports/libarchive/CONTROL
+++ b/ports/libarchive/CONTROL
@@ -1,4 +1,4 @@
Source: libarchive
-Version: 3.3.1-1
+Version: 3.3.2-2
Description: Library for reading and writing streaming archives
Build-Depends: zlib, bzip2, libxml2, lz4, liblzma, openssl
diff --git a/ports/libarchive/fix-buildsystem.patch b/ports/libarchive/fix-buildsystem.patch
index fcfe67c4f..59ffec3c9 100644
--- a/ports/libarchive/fix-buildsystem.patch
+++ b/ports/libarchive/fix-buildsystem.patch
@@ -132,8 +132,8 @@ index 1f85c01..11b2fb1 100644
--- a/libarchive/CMakeLists.txt
+++ b/libarchive/CMakeLists.txt
@@ -210,28 +210,22 @@ IF(WIN32 AND NOT CYGWIN)
- LIST(APPEND libarchive_SOURCES filter_fork_windows.c)
- ENDIF(WIN32 AND NOT CYGWIN)
+ LIST(APPEND libarchive_SOURCES archive_disk_acl_sunos.c)
+ ENDIF()
-# Libarchive is a shared library
-ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS})
diff --git a/ports/libarchive/fix-lz4.patch b/ports/libarchive/fix-lz4.patch
new file mode 100644
index 000000000..6a3d974fc
--- /dev/null
+++ b/ports/libarchive/fix-lz4.patch
@@ -0,0 +1,18 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 73bf07b3..76a1d61d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -515,7 +515,10 @@ IF (LZ4_INCLUDE_DIR)
+ ENDIF (LZ4_INCLUDE_DIR)
+
+ FIND_PATH(LZ4_INCLUDE_DIR lz4.h)
+-FIND_LIBRARY(LZ4_LIBRARY NAMES lz4 liblz4)
++FIND_LIBRARY(LZ4_LIBRARY_DEBUG NAMES lz4d liblz4d)
++FIND_LIBRARY(LZ4_LIBRARY_RELEASE NAMES lz4 liblz4)
++INCLUDE(SelectLibraryConfigurations)
++SELECT_LIBRARY_CONFIGURATIONS(LZ4)
+ INCLUDE(FindPackageHandleStandardArgs)
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(LZ4 DEFAULT_MSG LZ4_LIBRARY LZ4_INCLUDE_DIR)
+ IF(LZ4_FOUND)
+
+ \ No newline at end of file
diff --git a/ports/libarchive/portfile.cmake b/ports/libarchive/portfile.cmake
index 72958dfda..d361b7da8 100644
--- a/ports/libarchive/portfile.cmake
+++ b/ports/libarchive/portfile.cmake
@@ -4,19 +4,19 @@ if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
endif()
include(vcpkg_common_functions)
-set(ARCHIVE_VERSION 3.3.1)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libarchive-${ARCHIVE_VERSION})
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/libarchive/libarchive/archive/v${ARCHIVE_VERSION}.zip"
- FILENAME "libarchive-${ARCHIVE_VERSION}.zip"
- SHA512 a54fe3c5c24c83df244f3f2346212a6aa8d8945cf4ddc407e54c891ebbf8c98b93492e5652c9813a6d5dc654a32479e08a40bb0d2af7400a29ac027028e986f5)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libarchive/libarchive
+ REF v3.3.2
+ SHA512 7bc17d6f742080278e35f86b0233d70045df0ca1578cd427126e0acce183709bf33ecca689db65e2e67bdfaf687c04d36cae1202a926beeebc88076648aa40bc
+ HEAD_REF master)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
${CMAKE_CURRENT_LIST_DIR}/fix-buildsystem.patch
- ${CMAKE_CURRENT_LIST_DIR}/fix-dependencies.patch)
+ ${CMAKE_CURRENT_LIST_DIR}/fix-dependencies.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-lz4.patch)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
diff --git a/ports/libbson/CONTROL b/ports/libbson/CONTROL
index 0edf7847c..8ba25697f 100644
--- a/ports/libbson/CONTROL
+++ b/ports/libbson/CONTROL
@@ -1,3 +1,3 @@
Source: libbson
-Version: 1.6.2
-Description: libbson is a library providing useful routines related to building, parsing, and iterating BSON documents. \ No newline at end of file
+Version: 1.9.2
+Description: libbson is a library providing useful routines related to building, parsing, and iterating BSON documents.
diff --git a/ports/libbson/fix-uwp.patch b/ports/libbson/fix-uwp.patch
index abe11f8a4..ad916373f 100644
--- a/ports/libbson/fix-uwp.patch
+++ b/ports/libbson/fix-uwp.patch
@@ -2,27 +2,63 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt
index 553f13b..03dc546 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -194,6 +194,8 @@ set (HEADERS
+@@ -230,6 +230,9 @@
${SOURCE_DIR}/src/bson/bson-writer.h
)
+add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+
++if (NOT BSON_ENABLE_STATIC)
add_library(bson_shared SHARED ${SOURCES} ${HEADERS})
- add_library(bson_static STATIC ${SOURCES} ${HEADERS})
+ set(CMAKE_CXX_VISIBILITY_PRESET hidden)
+ set_target_properties(bson_shared PROPERTIES COMPILE_DEFINITIONS "BSON_COMPILATION;JSONSL_PARSE_NAN")
+@@ -263,16 +266,21 @@
+ # must be handled specially since we can't resolve them
+ set(BSON_SYSTEM_LIBS ${BSON_SYSTEM_LIBS} ws2_32)
+ endif()
++endif()
-@@ -272,8 +274,10 @@ if (ENABLE_TESTS)
- DESTINATION ${PROJECT_BINARY_DIR}/tests)
- endif () # ENABLE_TESTS
+ if (BSON_ENABLE_STATIC)
+ add_library(bson_static STATIC ${SOURCES} ${HEADERS})
++ set(CMAKE_CXX_VISIBILITY_PRESET hidden)
+ set_target_properties(bson_static PROPERTIES COMPILE_DEFINITIONS "BSON_COMPILATION;BSON_STATIC;JSONSL_PARSE_NAN")
+ set_target_properties(bson_static PROPERTIES VERSION ${BSON_VERSION})
+ set_target_properties(bson_static PROPERTIES OUTPUT_NAME "bson-static-${BSON_API_VERSION}")
++ set(THREADS_PREFER_PTHREAD_FLAG 1)
++ find_package (Threads REQUIRED)
+ target_link_libraries(bson_static Threads::Threads)
+ if (RT_LIBRARY)
+ target_link_libraries (bson_static ${RT_LIBRARY})
+ endif()
++ find_library(M_LIBRARY m)
+ if (M_LIBRARY)
+ target_link_libraries (bson_static ${M_LIBRARY})
+ endif()
+@@ -332,7 +340,7 @@
+ add_executable (${bin} ${BSON_EXAMPLE_SOURCES})
-+set(INSTALL_TARGETS bson_shared bson_static CACHE INTERNAL "List of library targets to install")
-+
+ # Link against the shared lib like normal apps
+- target_link_libraries(${bin} bson_shared)
++ target_link_libraries(${bin} bson_shared bson_static)
+
+ set (EXAMPLES ${EXAMPLES} ${bin})
+ endfunction ()
+@@ -349,6 +357,7 @@
+ endif () # ENABLE_EXAMPLES
+
+ set (BSON_HEADER_INSTALL_DIR "include/libbson-${BSON_API_VERSION}")
++if (NOT BSON_ENABLE_STATIC)
install(
-- TARGETS bson_shared bson_static
-+ TARGETS ${INSTALL_TARGETS}
+ TARGETS bson_shared ${EXAMPLES}
LIBRARY DESTINATION lib
+@@ -355,6 +364,7 @@
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
+ )
++endif ()
+ if (BSON_ENABLE_STATIC)
+ install(
+ TARGETS bson_static ${EXAMPLES}
diff --git a/src/bson/bson-compat.h b/src/bson/bson-compat.h
index 05fc614..e8e2214 100644
--- a/src/bson/bson-compat.h
@@ -31,21 +67,21 @@ index 05fc614..e8e2214 100644
#ifdef BSON_OS_WIN32
--# if defined(_WIN32_WINNT) && (_WIN32_WINNT < 0x0600)
-+# if defined(_WIN32_WINNT) && (_WIN32_WINNT < 0x0602)
- # undef _WIN32_WINNT
- # endif
- # ifndef _WIN32_WINNT
--# define _WIN32_WINNT 0x0600
-+# define _WIN32_WINNT 0x0602
- # endif
- # ifndef NOMINMAX
- # define NOMINMAX
+-#if defined(_WIN32_WINNT) && (_WIN32_WINNT < 0x0600)
++#if defined(_WIN32_WINNT) && (_WIN32_WINNT < 0x0602)
+ #undef _WIN32_WINNT
+ #endif
+ #ifndef _WIN32_WINNT
+-#define _WIN32_WINNT 0x0600
++#define _WIN32_WINNT 0x0602
+ #endif
+ #ifndef NOMINMAX
+ #define NOMINMAX
diff --git a/src/bson/bson-iso8601.c b/src/bson/bson-iso8601.c
index 8beea90..cb4b531 100644
--- a/src/bson/bson-iso8601.c
+++ b/src/bson/bson-iso8601.c
-@@ -117,8 +117,8 @@ _bson_iso8601_date_parse (const char *str,
+@@ -115,8 +115,8 @@ _bson_iso8601_date_parse (const char *str,
const char *day_ptr;
const char *hour_ptr;
const char *min_ptr;
diff --git a/ports/libbson/portfile.cmake b/ports/libbson/portfile.cmake
index 58513498e..3bc9cd18a 100644
--- a/ports/libbson/portfile.cmake
+++ b/ports/libbson/portfile.cmake
@@ -1,10 +1,10 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libbson-1.6.2)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libbson-1.9.2)
vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/mongodb/libbson/archive/1.6.2.tar.gz"
- FILENAME "libbson-1.6.2.tar.gz"
- SHA512 c5848984d5db5ab62e698a0185139b20834d83fd7befef72336997097f639ef13e81053531385e96c7ba1fe3f3fe4ded517f5b8ee58f0914c5c807a9cb43766d
+ URLS "https://github.com/mongodb/libbson/archive/1.9.2.tar.gz"
+ FILENAME "libbson-1.9.2.tar.gz"
+ SHA512 a05f1e8fbabb34e847692397e2e41fc5923ddd18dba861e5ab8a31acdf6738e13ab719eae8f9f8563f08fc43aab5c8d1f53cb6a47c38c96e132fa4a62a48d2bf
)
vcpkg_extract_source_archive(${ARCHIVE})
@@ -14,9 +14,9 @@ vcpkg_apply_patches(
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- set(TARGET_TO_INSTALL bson_static)
+ set(ENABLE_STATIC ON)
else()
- set(TARGET_TO_INSTALL bson_shared)
+ set(ENABLE_STATIC OFF)
endif()
vcpkg_configure_cmake(
@@ -24,10 +24,15 @@ vcpkg_configure_cmake(
PREFER_NINJA
OPTIONS
-DENABLE_TESTS=OFF
- -DINSTALL_TARGETS=${TARGET_TO_INSTALL}
+ -DENABLE_STATIC=${ENABLE_STATIC}
)
vcpkg_install_cmake()
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/libbson-static-1.0")
+else()
+ vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/libbson-1.0")
+endif()
# This rename is needed because the official examples expect to use #include <bson.h>
# See Microsoft/vcpkg#904
@@ -53,9 +58,26 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
PATCHES
${CMAKE_CURRENT_LIST_DIR}/static.patch
)
+
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin)
endif()
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libbson RENAME copyright)
file(COPY ${SOURCE_PATH}/THIRD_PARTY_NOTICES DESTINATION ${CURRENT_PACKAGES_DIR}/share/libbson)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(PORT_POSTFIX "static-1.0")
+else()
+ set(PORT_POSTFIX "1.0")
+endif()
+
+file(READ ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config.cmake LIBBSON_CONFIG_CMAKE)
+string(REPLACE "/include/libbson-1.0" "/include" LIBBSON_CONFIG_CMAKE "${LIBBSON_CONFIG_CMAKE}")
+string(REPLACE "bson-static-1.0" "bson-1.0" LIBBSON_CONFIG_CMAKE "${LIBBSON_CONFIG_CMAKE}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config.cmake "${LIBBSON_CONFIG_CMAKE}")
+file(COPY ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libbson-${PORT_POSTFIX})
+file(COPY ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config-version.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libbson-${PORT_POSTFIX})
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config.cmake ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-config.cmake)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-${PORT_POSTFIX}-config-version.cmake ${CURRENT_PACKAGES_DIR}/share/libbson/libbson-config-version.cmake)
+
vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/libbson/static.patch b/ports/libbson/static.patch
index adb52fa4f..e92286aed 100644
--- a/ports/libbson/static.patch
+++ b/ports/libbson/static.patch
@@ -2,12 +2,12 @@ diff --git a/bson-macros.h b/bson-macros.h
index 909bf6c..0a1f612 100644
--- a/bson-macros.h
+++ b/bson-macros.h
-@@ -69,7 +69,7 @@
- # ifdef BSON_COMPILATION
- # define BSON_API __declspec(dllexport)
- # else
--# define BSON_API __declspec(dllimport)
-+# define BSON_API
- # endif
- #elif defined(__GNUC__)
- # define BSON_API __attribute__ ((visibility ("default")))
+@@ -87,7 +87,7 @@
+ #elif defined(BSON_COMPILATION)
+ #define BSON_API __declspec(dllexport)
+ #else
+-#define BSON_API __declspec(dllimport)
++#define BSON_API
+ #endif
+ #define BSON_CALL __cdecl
+
diff --git a/ports/libccd/portfile.cmake b/ports/libccd/portfile.cmake
deleted file mode 100644
index 963000ec5..000000000
--- a/ports/libccd/portfile.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
-# 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}
-#
-
-include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libccd-16b9379fb6e8610566fe5e1396166daf7106f165)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/danfis/libccd/archive/16b9379fb6e8610566fe5e1396166daf7106f165.zip"
- FILENAME "libccd-16b9379fb6e8610566fe5e1396166daf7106f165.zip"
- SHA512 6cb3ea713f1b1ac1bf48c9ee7e14cb85b3ec5c822ce239330913edc00cb84c846b49ec090cbfa226ef8de70bac97199eb2bf4c651225e3cfc6f6a9dd441aa7db
-)
-vcpkg_extract_source_archive(${ARCHIVE})
-
-vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
- # OPTIONS_RELEASE -DOPTIMIZE=1
- # OPTIONS_DEBUG -DDEBUGGABLE=1
-)
-
-vcpkg_install_cmake()
-
-# Avoid a copy of file in debug
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-
-# Handle copyright
-file(INSTALL ${SOURCE_PATH}/BSD-LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libccd RENAME copyright)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc)
-
-# Miscellaneous cleanup
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/ccd)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/ccd)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig)
-
-vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/libcds/CONTROL b/ports/libcds/CONTROL
new file mode 100644
index 000000000..9b0f4c73a
--- /dev/null
+++ b/ports/libcds/CONTROL
@@ -0,0 +1,4 @@
+Source: libcds
+Version: 2.3.2
+Build-Depends: boost-system, boost-thread
+Description: a collection of concurrent containers that don't require external (manual) synchronization for shared access, and safe memory reclamation (SMR) algorithms like Hazard Pointer and user-space RCU that is used as an epoch-based SMR.
diff --git a/ports/libcds/cmake-install.patch b/ports/libcds/cmake-install.patch
new file mode 100644
index 000000000..599216614
--- /dev/null
+++ b/ports/libcds/cmake-install.patch
@@ -0,0 +1,31 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a198e26..e891aee 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -41,6 +41,10 @@ if(APPLE)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_DARWIN_C_SOURCE")
+ endif()
+
++if(MSVC)
++ add_definitions(-DCDS_BUILD_LIB)
++endif()
++
+ if(WITH_BOOST_ATOMIC)
+ if(Boost_FOUND)
+ if(${Boost_MINOR_VERSION} GREATER 53)
+@@ -191,9 +195,13 @@ target_compile_options(${CDS_STATIC_LIBRARY} PUBLIC "${LIBCDS_PUBLIC_CXX_FLAGS}"
+ target_compile_options(${CDS_SHARED_LIBRARY} PRIVATE "${LIBCDS_PRIVATE_CXX_FLAGS}")
+ target_compile_options(${CDS_STATIC_LIBRARY} PRIVATE "${LIBCDS_PRIVATE_CXX_FLAGS}")
+
+-install(TARGETS ${CDS_SHARED_LIBRARY} EXPORT LibCDSConfig LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT ${LIBRARIES_COMPONENT} NAMELINK_SKIP)
+-install(TARGETS ${CDS_SHARED_LIBRARY} EXPORT LibCDSConfig LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT ${HEADERS_COMPONENT} NAMELINK_ONLY)
++if(NOT DISABLE_INSTALL_SHARED)
++install(TARGETS ${CDS_SHARED_LIBRARY} EXPORT LibCDSConfig RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT ${LIBRARIES_COMPONENT} NAMELINK_SKIP)
++install(TARGETS ${CDS_SHARED_LIBRARY} EXPORT LibCDSConfig RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT ${HEADERS_COMPONENT} NAMELINK_ONLY)
++endif()
++if(NOT DISABLE_INSTALL_STATIC)
+ install(TARGETS ${CDS_STATIC_LIBRARY} EXPORT LibCDSConfig DESTINATION lib${LIB_SUFFIX} COMPONENT ${LIBRARIES_COMPONENT})
++endif()
+ install(EXPORT LibCDSConfig FILE LibCDSConfig.cmake NAMESPACE LibCDS:: DESTINATION lib/cmake/LibCDS)
+ install(DIRECTORY ${PROJECT_SOURCE_DIR}/cds DESTINATION include COMPONENT ${HEADERS_COMPONENT})
+
diff --git a/ports/libcds/lib-suffix-option.patch b/ports/libcds/lib-suffix-option.patch
new file mode 100644
index 000000000..eeb2f3e2e
--- /dev/null
+++ b/ports/libcds/lib-suffix-option.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e891aee..9f12295 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -125,7 +125,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+
+ if(CMAKE_TARGET_ARCHITECTURE STREQUAL "x86_64")
+ list(APPEND LIBCDS_PUBLIC_CXX_FLAGS "-mcx16")
+- set(LIB_SUFFIX "64")
++ set(LIB_SUFFIX "64" CACHE STRING "")
+
+ # GCC-7: 128-bit atomics support is implemented via libatomic on amd64
+ # see https://gcc.gnu.org/ml/gcc/2017-01/msg00167.html
diff --git a/ports/libcds/portfile.cmake b/ports/libcds/portfile.cmake
new file mode 100644
index 000000000..c3ba2ec65
--- /dev/null
+++ b/ports/libcds/portfile.cmake
@@ -0,0 +1,42 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO khizmax/libcds
+ REF v2.3.2
+ SHA512 f8313f85ae2950a008245603296b63bdbb2f58ead1a453fb287a8ecb96b79edc5b2f8fe33d6027dbc7ead6ccd1bb7ca8dd830091a86760358bb812a39b4ba83f
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/cmake-install.patch
+ ${CMAKE_CURRENT_LIST_DIR}/lib-suffix-option.patch
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" DISABLE_INSTALL_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" DISABLE_INSTALL_SHARED)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DENABLE_UNIT_TEST=OFF
+ -DENABLE_STRESS_TEST=OFF
+ -DDISABLE_INSTALL_STATIC=${DISABLE_INSTALL_STATIC}
+ -DDISABLE_INSTALL_SHARED=${DISABLE_INSTALL_SHARED}
+ "-DLIB_SUFFIX="
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/LibCDS)
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/libcds RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/libconfig/CMakeLists.txt b/ports/libconfig/CMakeLists.txt
new file mode 100644
index 000000000..fe70cb9dd
--- /dev/null
+++ b/ports/libconfig/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 3.5.1)
+project(libconfig C CXX)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+set(C_SOURCES
+ lib/grammar.c
+ lib/libconfig.c
+ lib/scanctx.c
+ lib/scanner.c
+ lib/strbuf.c
+ lib/strvec.c
+ lib/util.c
+ lib/wincompat.c
+)
+
+set(CPP_SOURCES
+ lib/libconfigcpp.cc
+)
+
+find_path(STDINT_H stdint.h)
+
+include_directories(lib ${STDINT_H})
+
+add_definitions(-DYY_NO_UNISTD_H -DYY_USE_CONST)
+
+add_library(libconfig ${C_SOURCES})
+add_library(libconfig++ ${CPP_SOURCES})
+
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(libconfig PRIVATE -DLIBCONFIG_EXPORTS)
+ target_compile_definitions(libconfig++ PRIVATE -DLIBCONFIGXX_EXPORTS)
+else()
+ target_compile_definitions(libconfig PUBLIC -DLIBCONFIG_STATIC)
+ target_compile_definitions(libconfig++ PUBLIC -DLIBCONFIGXX_STATIC)
+endif()
+
+target_link_libraries(libconfig shlwapi)
+target_link_libraries(libconfig++ PRIVATE libconfig)
+
+install(
+ TARGETS libconfig libconfig++
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES lib/libconfig.h++ lib/libconfig.h DESTINATION include)
+endif()
diff --git a/ports/libconfig/CONTROL b/ports/libconfig/CONTROL
new file mode 100644
index 000000000..fceb37bd3
--- /dev/null
+++ b/ports/libconfig/CONTROL
@@ -0,0 +1,3 @@
+Source: libconfig
+Version: 1.7.2
+Description: C/C++ library for processing configuration files
diff --git a/ports/libconfig/portfile.cmake b/ports/libconfig/portfile.cmake
new file mode 100644
index 000000000..9456636a9
--- /dev/null
+++ b/ports/libconfig/portfile.cmake
@@ -0,0 +1,38 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO hyperrealm/libconfig
+ REF v1.7.2
+ SHA512 9df57355c2d08381b4a0a6366f0db3633fbe8f73c2bb8c370c040b0bae96ce89ee4ac6c17a5a247fed855d890fa383e5b70cb5573fc9cfc62194d5b94e161cee
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+foreach(FILE ${CURRENT_PACKAGES_DIR}/include/libconfig.h++ ${CURRENT_PACKAGES_DIR}/include/libconfig.h)
+ file(READ ${FILE} _contents)
+ string(REPLACE "defined(LIBCONFIGXX_EXPORTS)" "0" _contents "${_contents}")
+ string(REPLACE "defined(LIBCONFIG_EXPORTS)" "0" _contents "${_contents}")
+
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ string(REPLACE "defined(LIBCONFIGXX_STATIC)" "0" _contents "${_contents}")
+ string(REPLACE "defined(LIBCONFIG_STATIC)" "0" _contents "${_contents}")
+ else()
+ string(REPLACE "defined(LIBCONFIGXX_STATIC)" "1" _contents "${_contents}")
+ string(REPLACE "defined(LIBCONFIG_STATIC)" "1" _contents "${_contents}")
+ endif()
+ file(WRITE ${FILE} "${_contents}")
+endforeach()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libconfig RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/libdatrie/CMakeLists.txt b/ports/libdatrie/CMakeLists.txt
new file mode 100644
index 000000000..bdc1c21ea
--- /dev/null
+++ b/ports/libdatrie/CMakeLists.txt
@@ -0,0 +1,94 @@
+cmake_minimum_required(VERSION 3.0)
+project(libdatrie LANGUAGES C)
+
+option(SKIP_HEADERS "Skip headers" OFF)
+option(SKIP_TOOL "Skip tool" OFF)
+option(BUILD_SHARED_LIBS "Build shared libs" OFF)
+
+set(LIB_SRCS
+ datrie/alpha-map.c
+ datrie/darray.c
+ datrie/dstring.c
+ datrie/fileutils.c
+ datrie/tail.c
+ datrie/trie.c
+ datrie/trie-string.c
+)
+
+set(LIB_HDRS
+ datrie/alpha-map.h
+ datrie/trie.h
+ datrie/triedefs.h
+ datrie/typedefs.h
+)
+
+if(WIN32)
+ list(APPEND LIB_SRCS datrie/libdatrie.def)
+endif()
+
+include(CheckIncludeFile)
+include(CheckFunctionExists)
+
+set(STDC_HEADERS 1)
+check_include_file(dlfcn.h HAVE_DLFCN_H)
+check_include_file(inttypes.h HAVE_INTTYPES_H)
+check_include_file(limits.h HAVE_LIMITS_H)
+check_include_file(memory.h HAVE_MEMORY_H)
+check_include_file(stdint.h HAVE_STDINT_H)
+check_include_file(stdio.h HAVE_STDIO_H)
+check_include_file(stdlib.h HAVE_STDLIB_H)
+check_include_file(strings.h HAVE_STRINGS_H)
+check_include_file(string.h HAVE_STRING_H)
+check_include_file(sys/stat.h HAVE_SYS_STAT_H)
+check_include_file(sys/types.h HAVE_SYS_TYPES_H)
+check_include_file(unistd.h HAVE_UNISTD_H)
+
+check_function_exists(nl_langinfo HAVE_LANGINFO_CODESET)
+check_function_exists(locale_charset HAVE_LOCALE_CHARSET)
+check_function_exists(malloc HAVE_MALLOC)
+
+configure_file(config.h.cmake config.h)
+
+add_library(libdatrie ${LIB_SRCS})
+target_include_directories(libdatrie PRIVATE ".")
+target_include_directories(libdatrie PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+set_target_properties(libdatrie PROPERTIES PREFIX "")
+set_target_properties(libdatrie PROPERTIES DEBUG_POSTFIX "d")
+
+if(MSVC)
+ add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+ add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
+endif()
+
+
+if (NOT SKIP_TOOL)
+ add_executable(trietool "tools/trietool.c" )
+ target_include_directories(trietool PRIVATE ".")
+ target_include_directories(trietool PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+ target_link_libraries(trietool libdatrie)
+
+ find_path(ICONV_INCLUDE_DIR iconv.h)
+ find_library(ICONV_LIBRARY NAMES iconv libiconv)
+ find_library(CHARSET_LIBRARY NAMES charset libcharset)
+ target_include_directories(trietool PRIVATE ${ICONV_INCLUDE_DIR})
+ target_link_libraries(trietool ${ICONV_LIBRARY} ${CHARSET_LIBRARY})
+
+ install(
+ TARGETS trietool
+ RUNTIME DESTINATION bin
+ )
+endif()
+
+install(
+ TARGETS libdatrie
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if (NOT SKIP_HEADERS)
+ install(
+ FILES ${LIB_HDRS}
+ DESTINATION "include/datrie"
+ )
+endif()
diff --git a/ports/libdatrie/CONTROL b/ports/libdatrie/CONTROL
new file mode 100644
index 000000000..8b9747fd7
--- /dev/null
+++ b/ports/libdatrie/CONTROL
@@ -0,0 +1,4 @@
+Source: libdatrie
+Version: 0.2.10-2
+Description: implementation of double-array structure for representing trie
+Build-Depends: libiconv
diff --git a/ports/libdatrie/config.h.cmake b/ports/libdatrie/config.h.cmake
new file mode 100644
index 000000000..9d575d6e5
--- /dev/null
+++ b/ports/libdatrie/config.h.cmake
@@ -0,0 +1,87 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#cmakedefine HAVE_DLFCN_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#cmakedefine HAVE_INTTYPES_H
+
+/* Have nl_langinfo (CODESET) */
+#cmakedefine HAVE_LANGINFO_CODESET
+
+/* Define to 1 if you have the <limits.h> header file. */
+#cmakedefine HAVE_LIMITS_H
+
+/* Have locale_charset() */
+#cmakedefine HAVE_LOCALE_CHARSET
+
+/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
+ to 0 otherwise. */
+#cmakedefine HAVE_MALLOC
+
+/* Define to 1 if you have the <memory.h> header file. */
+#cmakedefine HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#cmakedefine HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#cmakedefine HAVE_STDIO_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#cmakedefine HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#cmakedefine HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#cmakedefine HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#cmakedefine HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#cmakedefine HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#cmakedefine HAVE_UNISTD_H
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#cmakedefine LT_OBJDIR
+
+/* Name of package */
+#define PACKAGE "libdatrie"
+
+/* Define to the address where bug reports for this package should be sent. */
+#cmakedefine PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "libdatrie"
+
+/* Define to the full name and version of this package. */
+#cmakedefine PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#cmakedefine PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL "https://linux.thai.net/~thep/datrie/datrie.html"
+
+/* Define to the version of this package. */
+#cmakedefine PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#cmakedefine STDC_HEADERS 1
+
+/* Version number of package */
+#cmakedefine VERSION "@VERSION@"
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#cmakedefine const
+
+/* Define to rpl_malloc if the replacement function should be used. */
+#cmakedefine malloc
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#cmakedefine size_t
diff --git a/ports/libdatrie/fix-exports.patch b/ports/libdatrie/fix-exports.patch
new file mode 100644
index 000000000..3c407c21b
--- /dev/null
+++ b/ports/libdatrie/fix-exports.patch
@@ -0,0 +1,8 @@
+diff -Naur ./a/libdatrie.def ./b/libdatrie.def
+--- a/datrie/libdatrie.def 2013-10-17 06:27:57.000000000 +0300
++++ b/datrie/libdatrie.def 2017-12-21 02:42:39.873879000 +0300
+@@ -1,3 +1,4 @@
++EXPORTS
+ alpha_map_new
+ alpha_map_clone
+ alpha_map_free
diff --git a/ports/libdatrie/fix-trietool.patch b/ports/libdatrie/fix-trietool.patch
new file mode 100644
index 000000000..bcecee26e
--- /dev/null
+++ b/ports/libdatrie/fix-trietool.patch
@@ -0,0 +1,31 @@
+From 086a76ad7c17060d504371ea724cf5d651d43eb3 Mon Sep 17 00:00:00 2001
+From: Mikhail Paulyshka <me@mixaill.tk>
+Date: Thu, 28 Dec 2017 16:07:51 +0300
+Subject: [PATCH] fix trietool for MSVC runtime
+
+---
+ tools/trietool.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tools/trietool.c b/tools/trietool.c
+index 4cfde2a..7c90905 100644
+--- a/tools/trietool.c
++++ b/tools/trietool.c
+@@ -589,12 +589,12 @@ string_trim (char *s)
+ char *p;
+
+ /* skip leading white spaces */
+- while (*s && isspace (*s))
++ while (*s && isspace ((unsigned char)*s))
+ ++s;
+
+ /* trim trailing white spaces */
+ p = s + strlen (s) - 1;
+- while (isspace (*p))
++ while (isspace ((unsigned char)*p))
+ --p;
+ *++p = '\0';
+
+--
+2.14.1.windows.1
+
diff --git a/ports/libdatrie/portfile.cmake b/ports/libdatrie/portfile.cmake
new file mode 100644
index 000000000..f7fefd248
--- /dev/null
+++ b/ports/libdatrie/portfile.cmake
@@ -0,0 +1,55 @@
+set(LIBDATRIE_VERSION 0.2.10)
+
+include(vcpkg_common_functions)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libdatrie-${LIBDATRIE_VERSION})
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://linux.thai.net/pub/ThaiLinux/software/libthai/libdatrie-${LIBDATRIE_VERSION}.tar.xz"
+ FILENAME "libdatrie-${LIBDATRIE_VERSION}.tar.xz"
+ SHA512 ee68ded9d6e06c562da462d42e7e56098a82478d7b8547506200c3018b72536c4037a4e518924f779dc77d3ab139d93216bdb29ab4116b9dc9efd1a5d1eb9e31
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/fix-exports.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/fix-trietool.patch"
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h.cmake DESTINATION ${SOURCE_PATH})
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(SKIP_TOOL ON)
+else()
+ set(SKIP_TOOL OFF)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DVERSION=${LIBDATRIE_VERSION}
+ OPTIONS_RELEASE
+ -DSKIP_TOOL=${SKIP_TOOL}
+ -DSKIP_HEADERS=OFF
+ OPTIONS_DEBUG
+ -DSKIP_TOOL=ON
+ -DSKIP_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT})
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/trietool.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/trietool.exe)
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libdatrie RENAME copyright)
diff --git a/ports/libdisasm/CMakeLists.txt b/ports/libdisasm/CMakeLists.txt
new file mode 100644
index 000000000..96889e794
--- /dev/null
+++ b/ports/libdisasm/CMakeLists.txt
@@ -0,0 +1,49 @@
+cmake_minimum_required(VERSION 3.9)
+project(libdisasm C)
+
+set(CMAKE_DEBUG_POSTFIX d)
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+set(SRCS
+ ia32_implicit.c
+ ia32_implicit.h
+ ia32_insn.c
+ ia32_insn.h
+ ia32_invariant.c
+ ia32_invariant.h
+ ia32_modrm.c
+ ia32_modrm.h
+ ia32_opcode_tables.c
+ ia32_opcode_tables.h
+ ia32_operand.c
+ ia32_operand.h
+ ia32_reg.c
+ ia32_reg.h
+ ia32_settings.c
+ ia32_settings.h
+ libdis.h
+ qword.h
+ x86_disasm.c
+ x86_format.c
+ x86_imm.c
+ x86_imm.h
+ x86_insn.c
+ x86_misc.c
+ x86_operand_list.c
+ x86_operand_list.h
+)
+
+include_directories(libdisasm)
+
+add_library(libdisasm ${SRCS})
+
+install(
+ TARGETS libdisasm
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES libdis.h DESTINATION include)
+endif()
diff --git a/ports/libdisasm/CONTROL b/ports/libdisasm/CONTROL
new file mode 100644
index 000000000..c6044e88d
--- /dev/null
+++ b/ports/libdisasm/CONTROL
@@ -0,0 +1,3 @@
+Source: libdisasm
+Version: 0.23-1
+Description: x86 Disassembler Library.
diff --git a/ports/libdisasm/portfile.cmake b/ports/libdisasm/portfile.cmake
new file mode 100644
index 000000000..19919bed6
--- /dev/null
+++ b/ports/libdisasm/portfile.cmake
@@ -0,0 +1,35 @@
+include(vcpkg_common_functions)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "Warning: Dynamic building not supported. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+ endif()
+
+set(BASE_PATH ${CURRENT_BUILDTREES_DIR}/src/libdisasm-0.23)
+set(SOURCE_PATH ${BASE_PATH}/libdisasm)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://sourceforge.net/projects/bastard/files/libdisasm/0.23/libdisasm-0.23.tar.gz"
+ FILENAME "libdisasm-0.23.tar.gz"
+ SHA512 29eecfbfd8168188242278a1a38f0c90770d0581a52d4600ae6343829dd0d6607b98329f12a3d7409d43dd56dca6a7d1eb25d58a001c2bfd3eb8474c0e7879e7
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/sizeofvoid.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(INSTALL ${BASE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libdisasm RENAME copyright)
diff --git a/ports/libdisasm/sizeofvoid.patch b/ports/libdisasm/sizeofvoid.patch
new file mode 100644
index 000000000..428c5616c
--- /dev/null
+++ b/ports/libdisasm/sizeofvoid.patch
@@ -0,0 +1,29 @@
+diff --git a/x86_disasm.c b/x86_disasm.c
+index 04574fa..177bfb8 100644
+--- a/x86_disasm.c
++++ b/x86_disasm.c
+@@ -35,7 +35,7 @@ unsigned int x86_disasm( unsigned char *buf, unsigned int buf_len,
+
+ if ( offset >= buf_len ) {
+ /* another caller screwup ;) */
+- x86_report_error(report_disasm_bounds, (void*)(long)buf_rva+offset);
++ x86_report_error(report_disasm_bounds, (void*)(long)(buf_rva+offset));
+ return 0;
+ }
+
+@@ -53,13 +53,13 @@ unsigned int x86_disasm( unsigned char *buf, unsigned int buf_len,
+
+ /* check and see if we had an invalid instruction */
+ if (! size ) {
+- x86_report_error(report_invalid_insn, (void*)(long)buf_rva+offset );
++ x86_report_error(report_invalid_insn, (void*)(long)(buf_rva+offset));
+ return 0;
+ }
+
+ /* check if we overran the end of the buffer */
+ if ( size > len ) {
+- x86_report_error( report_insn_bounds, (void*)(long)buf_rva + offset );
++ x86_report_error( report_insn_bounds, (void*)(long)(buf_rva + offset));
+ MAKE_INVALID( insn, bytes );
+ return 0;
+ }
diff --git a/ports/libepoxy/CONTROL b/ports/libepoxy/CONTROL
index 2f9939ee4..79ffdbf46 100644
--- a/ports/libepoxy/CONTROL
+++ b/ports/libepoxy/CONTROL
@@ -1,3 +1,3 @@
Source: libepoxy
-Version: 1.4.2
+Version: 1.4.3-1
Description: Epoxy is a library for handling OpenGL function pointer management for you
diff --git a/ports/libepoxy/portfile.cmake b/ports/libepoxy/portfile.cmake
index 27c073786..e50754db3 100644
--- a/ports/libepoxy/portfile.cmake
+++ b/ports/libepoxy/portfile.cmake
@@ -7,19 +7,19 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO anholt/libepoxy
- REF 1.4.2
- SHA512 b94e1fe749c63a82f38369ff62b7d0d8cf1c55884159f030dc2919c17daf5811dd71cfd6a663edb38df66ff4ca53120a6a53501568cc8a582f08d4ae82fe9d89
+ REF 1.4.3
+ SHA512 41c7a4eea66c89346b0ec71407b2d22bf645ed0ef81ebad560370903f138ed48abb6bc6bcc88c75a3a05497acc6720397db828d61301599c05040263a9f4f7f0
HEAD_REF master)
-# ensure python is on path - not for meson but some source generation scripts
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "$ENV{PATH};${PYTHON3_PATH}")
-
-vcpkg_configure_meson(SOURCE_PATH ${SOURCE_PATH})
+vcpkg_configure_meson(SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -Denable-glx=no
+ -Denable-egl=no)
vcpkg_install_meson()
-
vcpkg_copy_pdbs()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share/pkgconfig)
+
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libepoxy)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libepoxy/COPYING ${CURRENT_PACKAGES_DIR}/share/libepoxy/copyright)
diff --git a/ports/libevent/CONTROL b/ports/libevent/CONTROL
index 56ca1f4c7..f260b6d01 100644
--- a/ports/libevent/CONTROL
+++ b/ports/libevent/CONTROL
@@ -1,3 +1,4 @@
Source: libevent
-Version: 2.1.8-1
-Description: An event notification library \ No newline at end of file
+Version: 2.1.8-3
+Build-Depends: openssl
+Description: An event notification library
diff --git a/ports/libevent/fix-target-files.patch b/ports/libevent/fix-target-files.patch
new file mode 100644
index 000000000..d1b2d5970
--- /dev/null
+++ b/ports/libevent/fix-target-files.patch
@@ -0,0 +1,36 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b4a34f3d..4bd80d84 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1343,10 +1343,10 @@ endif()
+ set(EVENT_INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
+
+ # Make sure the paths are absolute.
+-foreach(p LIB BIN INCLUDE CMAKE)
++foreach(p INCLUDE CMAKE)
+ set(var EVENT_INSTALL_${p}_DIR)
+ if(NOT IS_ABSOLUTE "${${var}}")
+- set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}")
++ set(${var}_FULL "${CMAKE_INSTALL_PREFIX}/${${var}}")
+ endif()
+ endforeach()
+
+@@ -1371,15 +1371,15 @@ configure_file(${PROJECT_SOURCE_DIR}/cmake/LibeventConfigBuildTree.cmake.in
+ # Generate the config file for the installation tree.
+ file(RELATIVE_PATH
+ REL_INCLUDE_DIR
+- "${EVENT_INSTALL_CMAKE_DIR}"
+- "${EVENT_INSTALL_INCLUDE_DIR}") # Calculate the relative directory from the Cmake dir.
++ "${EVENT_INSTALL_CMAKE_DIR_FULL}"
++ "${EVENT_INSTALL_INCLUDE_DIR_FULL}") # Calculate the relative directory from the Cmake dir.
+
+ # Note the EVENT_CMAKE_DIR is defined in LibeventConfig.cmake.in,
+ # we escape it here so it's evaluated when it is included instead
+ # so that the include dirs are givenrelative to where the
+ # config file is located.
+ set(EVENT__INCLUDE_DIRS
+- "\${EVENT_CMAKE_DIR}/${REL_INCLUDE_DIR}")
++ "\${EVENT_CMAKE_DIR_FULL}/${REL_INCLUDE_DIR}")
+
+ configure_file(${PROJECT_SOURCE_DIR}/cmake/LibeventConfig.cmake.in
+ ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/LibeventConfig.cmake
diff --git a/ports/libevent/portfile.cmake b/ports/libevent/portfile.cmake
index ce0bc73ba..251624e3f 100644
--- a/ports/libevent/portfile.cmake
+++ b/ports/libevent/portfile.cmake
@@ -1,40 +1,39 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libevent-release-2.1.8-stable)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/libevent/libevent/archive/release-2.1.8-stable.tar.gz"
- FILENAME "libevent-2.1.8-stable.tar.gz"
+
+if(VCPKG_CMAKE_SYSTEM_NAME MATCHES "WindowsStore")
+ message(FATAL_ERROR "libevent does not currently support UWP")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libevent/libevent
+ REF release-2.1.8-stable
SHA512 0d5c872dc797b69ab8ea4b83aebcbac20735b8c6f5adfcc2950aa4d6013d240f5fac3376e817da75ae0ccead50cec0d931619e135a050add438777457b086549
)
-vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/fix-target-files.patch"
+)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DEVENT_INSTALL_CMAKE_DIR:PATH=share/libevent
+ -DEVENT__DISABLE_BENCHMARK=ON
+ -DEVENT__DISABLE_TESTS=ON
+ -DEVENT__DISABLE_REGRESS=ON
+ -DEVENT__DISABLE_SAMPLES=ON
)
vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
-file(RENAME ${CURRENT_PACKAGES_DIR}/cmake ${CURRENT_PACKAGES_DIR}/share/libevent)
-file(READ ${CURRENT_PACKAGES_DIR}/debug/cmake/LibeventTargets-debug.cmake DEBUG_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" DEBUG_MODULE "${DEBUG_MODULE}")
-string(REPLACE "${CURRENT_PACKAGES_DIR}" "\${_IMPORT_PREFIX}" DEBUG_MODULE "${DEBUG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/libevent/LibeventTargets-debug.cmake "${DEBUG_MODULE}")
-
-file(READ ${CURRENT_PACKAGES_DIR}/share/libevent/LibeventTargets-release.cmake RELEASE_MODULE)
-string(REPLACE "${CURRENT_PACKAGES_DIR}" "\${_IMPORT_PREFIX}" RELEASE_MODULE "${RELEASE_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/libevent/LibeventTargets-release.cmake "${RELEASE_MODULE}")
-
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/cmake)
-
-file(READ ${CURRENT_PACKAGES_DIR}/share/libevent/LibeventConfig.cmake CONFIG_MODULE)
-string(REPLACE "${CURRENT_PACKAGES_DIR}" "\${LIBEVENT_CMAKE_DIR}/../.." CONFIG_MODULE "${CONFIG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/libevent/LibeventConfig.cmake "${CONFIG_MODULE}")
-file(READ ${CURRENT_PACKAGES_DIR}/share/libevent/LibeventTargets.cmake TARGETS_MODULE)
-string(REPLACE "${CURRENT_PACKAGES_DIR}" "\${LIBEVENT_CMAKE_DIR}/../.." TARGETS_MODULE "${TARGETS_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/libevent/LibeventTargets.cmake "${TARGETS_MODULE}")
+vcpkg_fixup_cmake_targets()
+vcpkg_copy_pdbs()
-file(COPY ${CURRENT_BUILDTREES_DIR}/src/libevent-release-2.1.8-stable/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libevent)
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libevent)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libevent/LICENSE ${CURRENT_PACKAGES_DIR}/share/libevent/copyright)
-vcpkg_copy_pdbs()
diff --git a/ports/libexif/CMakeLists.txt b/ports/libexif/CMakeLists.txt
new file mode 100644
index 000000000..ac32e82eb
--- /dev/null
+++ b/ports/libexif/CMakeLists.txt
@@ -0,0 +1,142 @@
+cmake_minimum_required(VERSION 3.0)
+project(libexif LANGUAGES C)
+
+set(PACKAGE "libexif")
+
+option(ENABLE_NLS "Enable NLS" OFF)
+
+set(HEADERS
+ libexif/_stdint.h
+ libexif/exif.h
+ libexif/exif-byte-order.h
+ libexif/exif-content.h
+ libexif/exif-data.h
+ libexif/exif-data-type.h
+ libexif/exif-entry.h
+ libexif/exif-format.h
+ libexif/exif-ifd.h
+ libexif/exif-loader.h
+ libexif/exif-log.h
+ libexif/exif-mem.h
+ libexif/exif-mnote-data.h
+ libexif/exif-mnote-data-priv.h
+ libexif/exif-system.h
+ libexif/exif-tag.h
+ libexif/exif-utils.h
+)
+
+set(SOURCES
+ libexif/exif-byte-order.c
+ libexif/exif-content.c
+ libexif/exif-data.c
+ libexif/exif-entry.c
+ libexif/exif-format.c
+ libexif/exif-ifd.c
+ libexif/exif-loader.c
+ libexif/exif-log.c
+ libexif/exif-mem.c
+ libexif/exif-mnote-data.c
+ libexif/exif-tag.c
+ libexif/exif-utils.c
+)
+
+set(HEADERS_CANON
+ libexif/canon/exif-mnote-data-canon.h
+ libexif/canon/mnote-canon-entry.h
+ libexif/canon/mnote-canon-tag.h
+)
+
+set(SOURCES_CANON
+ libexif/canon/exif-mnote-data-canon.c
+ libexif/canon/mnote-canon-entry.c
+ libexif/canon/mnote-canon-tag.c
+)
+
+set(HEADERS_FUJI
+ libexif/fuji/exif-mnote-data-fuji.h
+ libexif/fuji/mnote-fuji-entry.h
+ libexif/fuji/mnote-fuji-tag.h
+)
+
+set(SOURCES_FUJI
+ libexif/fuji/exif-mnote-data-fuji.c
+ libexif/fuji/mnote-fuji-entry.c
+ libexif/fuji/mnote-fuji-tag.c
+)
+
+set(HEADERS_OLYMPUS
+ libexif/olympus/exif-mnote-data-olympus.h
+ libexif/olympus/mnote-olympus-entry.h
+ libexif/olympus/mnote-olympus-tag.h
+)
+
+set(SOURCES_OLYMPUS
+ libexif/olympus/exif-mnote-data-olympus.c
+ libexif/olympus/mnote-olympus-entry.c
+ libexif/olympus/mnote-olympus-tag.c
+)
+
+set(HEADERS_PENTAX
+ libexif/pentax/exif-mnote-data-pentax.h
+ libexif/pentax/mnote-pentax-entry.h
+ libexif/pentax/mnote-pentax-tag.h
+)
+
+set(SOURCES_PENTAX
+ libexif/pentax/exif-mnote-data-pentax.c
+ libexif/pentax/mnote-pentax-entry.c
+ libexif/pentax/mnote-pentax-tag.c
+)
+
+if(MSVC)
+ set(SOURCES_MSVC "libexif.def")
+endif()
+
+add_library(libexif
+ ${SOURCES}
+ ${SOURCES_CANON}
+ ${SOURCES_FUJI}
+ ${SOURCES_OLYMPUS}
+ ${SOURCES_PENTAX}
+ ${SOURCES_MSVC}
+)
+
+target_include_directories(libexif PRIVATE .)
+target_include_directories(libexif PRIVATE ${CMAKE_BINARY_DIR})
+target_compile_definitions(libexif PRIVATE -D_CRT_SECURE_NO_WARNINGS)
+target_compile_definitions(libexif PRIVATE -DGETTEXT_PACKAGE="${PACKAGE}")
+
+include(CheckFunctionExists)
+include(CheckIncludeFile)
+
+check_function_exists(dcgettext HAVE_DCGETTEXT)
+check_function_exists(gettext HAVE_DCGETTEXT)
+check_function_exists(iconv HAVE_DCGETTEXT)
+check_function_exists(localtime_r HAVE_DCGETTEXT)
+
+check_include_file(dlfcn.h HAVE_DLFCN_H)
+check_include_file(inttypes.h HAVE_INTTYPES_H)
+check_include_file(memory.h HAVE_MEMORY_H)
+check_include_file(stdint.h HAVE_STDINT_H)
+check_include_file(stdlib.h HAVE_STDLIB_H)
+check_include_file(strings.h HAVE_STRINGS_H)
+check_include_file(string.h HAVE_STRING_H)
+check_include_file(sys/stat.h HAVE_SYS_STAT_H)
+check_include_file(sys/stat.h HAVE_SYS_STAT_H)
+check_include_file(sys/types.h HAVE_SYS_TYPES_H)
+check_include_file(unistd.h HAVE_UNISTD_H)
+
+configure_file(config.h.cmake config.h)
+
+install(
+ TARGETS libexif
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
+
+install(FILES ${HEADERS} DESTINATION include/libexif)
+install(FILES ${HEADERS_CANON} DESTINATION include/libexif/canon)
+install(FILES ${HEADERS_FUJI} DESTINATION include/libexif/fuji)
+install(FILES ${HEADERS_OLYMPUS} DESTINATION include/libexif/olympus)
+install(FILES ${HEADERS_PENTAX} DESTINATION include/libexif/pentax)
diff --git a/ports/libexif/CONTROL b/ports/libexif/CONTROL
new file mode 100644
index 000000000..427d907f2
--- /dev/null
+++ b/ports/libexif/CONTROL
@@ -0,0 +1,3 @@
+Source: libexif
+Version: 0.6.21-1
+Description: a library for parsing, editing, and saving EXIF data
diff --git a/ports/libexif/config.h.cmake b/ports/libexif/config.h.cmake
new file mode 100644
index 000000000..4dfbdb1b0
--- /dev/null
+++ b/ports/libexif/config.h.cmake
@@ -0,0 +1,96 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if translation of program messages to the user's native
+ language is requested. */
+#cmakedefine ENABLE_NLS
+
+/* Define if the GNU dcgettext() function is already present or preinstalled.
+ */
+#cmakedefine HAVE_DCGETTEXT
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#cmakedefine HAVE_DLFCN_H
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#cmakedefine HAVE_GETTEXT
+
+/* Define if you have the iconv() function. */
+#cmakedefine HAVE_ICONV
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#cmakedefine HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `localtime_r' function. */
+#cmakedefine HAVE_LOCALTIME_R
+
+/* Define to 1 if you have the <memory.h> header file. */
+#cmakedefine HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#cmakedefine HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#cmakedefine HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#cmakedefine HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#cmakedefine HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#cmakedefine HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#cmakedefine HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#cmakedefine HAVE_UNISTD_H
+
+/* Define as const if the declaration of iconv() needs const. */
+#cmakedefine ICONV_CONST
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#cmakedefine LT_OBJDIR
+
+/* Name of package */
+#cmakedefine PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#cmakedefine PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#cmakedefine PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#cmakedefine PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#cmakedefine PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#cmakedefine PACKAGE_URL
+
+/* Define to the version of this package. */
+#cmakedefine PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#cmakedefine STDC_HEADERS
+
+/* Version number of package */
+#cmakedefine VERSION
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#cmakedefine 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
+#cmakedefine inline
+#endif
+
+#ifdef _MSC_VER
+#include <BaseTsd.h>
+typedef SSIZE_T ssize_t;
+#endif \ No newline at end of file
diff --git a/ports/libexif/libexif.def b/ports/libexif/libexif.def
new file mode 100644
index 000000000..6bd0ca424
--- /dev/null
+++ b/ports/libexif/libexif.def
@@ -0,0 +1,130 @@
+EXPORTS
+ exif_array_set_byte_order
+ exif_byte_order_get_name
+ exif_content_add_entry
+ exif_content_dump
+ exif_content_fix
+ exif_content_foreach_entry
+ exif_content_free
+ exif_content_get_entry
+ exif_content_get_ifd
+ exif_content_log
+ exif_content_new
+ exif_content_new_mem
+ exif_content_ref
+ exif_content_remove_entry
+ exif_content_unref
+ exif_data_dump
+ exif_data_fix
+ exif_data_foreach_content
+ exif_data_free
+ exif_data_get_byte_order
+ exif_data_get_data_type
+ exif_data_get_log
+ exif_data_get_mnote_data
+ exif_data_load_data
+ exif_data_log
+ exif_data_new
+ exif_data_new_from_data
+ exif_data_new_from_file
+ exif_data_new_mem
+ exif_data_option_get_description
+ exif_data_option_get_name
+ exif_data_ref
+ exif_data_save_data
+ exif_data_set_byte_order
+ exif_data_set_data_type
+ exif_data_set_option
+ exif_data_unref
+ exif_data_unset_option
+ exif_entry_dump
+ exif_entry_fix
+ exif_entry_free
+ exif_entry_get_value
+ exif_entry_initialize
+ exif_entry_new
+ exif_entry_new_mem
+ exif_entry_ref
+ exif_entry_unref
+ exif_format_get_name
+ exif_format_get_size
+ exif_get_long
+ exif_get_rational
+ exif_get_short
+ exif_get_slong
+ exif_get_srational
+ exif_get_sshort
+ exif_ifd_get_name
+ exif_loader_get_buf
+ exif_loader_get_data
+ exif_loader_log
+ exif_loader_new
+ exif_loader_new_mem
+ exif_loader_ref
+ exif_loader_reset
+ exif_loader_unref
+ exif_loader_write
+ exif_loader_write_file
+ exif_log
+ exif_log_code_get_message
+ exif_log_code_get_title
+ exif_log_free
+ exif_log_new
+ exif_log_new_mem
+ exif_log_ref
+ exif_log_set_func
+ exif_log_unref
+ exif_logv
+ exif_mem_alloc
+ exif_mem_free
+ exif_mem_new
+ exif_mem_new_default
+ exif_mem_realloc
+ exif_mem_ref
+ exif_mem_unref
+ exif_mnote_data_canon_new
+ exif_mnote_data_construct
+ exif_mnote_data_count
+ exif_mnote_data_get_description
+ exif_mnote_data_get_id
+ exif_mnote_data_get_name
+ exif_mnote_data_get_title
+ exif_mnote_data_get_value
+ exif_mnote_data_load
+ exif_mnote_data_log
+ exif_mnote_data_olympus_new
+ exif_mnote_data_pentax_new
+ exif_mnote_data_ref
+ exif_mnote_data_save
+ exif_mnote_data_set_byte_order
+ exif_mnote_data_set_offset
+ exif_mnote_data_unref
+ exif_set_long
+ exif_set_rational
+ exif_set_short
+ exif_set_slong
+ exif_set_srational
+ exif_set_sshort
+ exif_tag_from_name
+ exif_tag_get_description
+ exif_tag_get_description_in_ifd
+ exif_tag_get_name
+ exif_tag_get_name_in_ifd
+ exif_tag_get_support_level_in_ifd
+ exif_tag_get_title
+ exif_tag_get_title_in_ifd
+ exif_tag_table_count
+ exif_tag_table_get_name
+ exif_tag_table_get_tag
+ mnote_canon_entry_get_value
+ mnote_canon_tag_get_description
+ mnote_canon_tag_get_name
+ mnote_canon_tag_get_title
+ mnote_olympus_entry_get_value
+ mnote_olympus_tag_get_description
+ mnote_olympus_tag_get_name
+ mnote_olympus_tag_get_title
+ mnote_pentax_entry_get_value
+ mnote_pentax_tag_get_description
+ mnote_pentax_tag_get_name
+ mnote_pentax_tag_get_title \ No newline at end of file
diff --git a/ports/libexif/portfile.cmake b/ports/libexif/portfile.cmake
new file mode 100644
index 000000000..0442d8c15
--- /dev/null
+++ b/ports/libexif/portfile.cmake
@@ -0,0 +1,31 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "libexif currently only supports being built for desktop")
+endif()
+
+set(LIBEXIF_VERSION 0.6.21)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libexif-${LIBEXIF_VERSION})
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://freefr.dl.sourceforge.net/project/libexif/libexif/${LIBEXIF_VERSION}/libexif-${LIBEXIF_VERSION}.tar.bz2"
+ FILENAME "libexif-${LIBEXIF_VERSION}.tar.bz2"
+ SHA512 4e0fe2abe85d1c95b41cb3abe1f6333dc3a9eb69dba106a674a78d74a4d5b9c5a19647118fa1cc2d72b98a29853394f1519eda9e2889eb28d3be26b21c7cfc35
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h.cmake DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/libexif.def DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libexif RENAME copyright)
diff --git a/ports/libffi/CMakeLists.txt b/ports/libffi/CMakeLists.txt
index 79e9e671d..1f8e2d332 100644
--- a/ports/libffi/CMakeLists.txt
+++ b/ports/libffi/CMakeLists.txt
@@ -1,13 +1,40 @@
-cmake_minimum_required(VERSION 3.0)
-project(libffi)
+cmake_minimum_required(VERSION 3.9)
+project(libffi C ASM)
+
+set(CMAKE_SHARED_LIBRARY_PREFIX)
+set(CMAKE_STATIC_LIBRARY_PREFIX)
+
+if(NOT CMAKE_SYSTEM_PROCESSOR)
+ set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}")
+endif()
# config variables for ffi.h.in
set(VERSION 3.1)
-if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+
+set(KNOWN_PROCESSORS x86 x86_64 AMD64 ARM ARM64 i386)
+
+if(NOT CMAKE_SYSTEM_PROCESSOR IN_LIST KNOWN_PROCESSORS)
+ message(FATAL_ERROR "Unknown processor: ${CMAKE_SYSTEM_PROCESSOR}")
+endif()
+
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "ARM")
+ set(TARGET ARM)
+elseif(CMAKE_SYSTEM_NAME MATCHES "BSD" AND CMAKE_SIZEOF_VOID_P EQUAL 4)
+ set(TARGET X86_FREEBSD)
+elseif(CMAKE_SYSTEM_NAME MATCHES "Windows" AND CMAKE_SIZEOF_VOID_P EQUAL 4)
set(TARGET X86_WIN32)
-else()
+elseif(CMAKE_SYSTEM_NAME MATCHES "Windows" AND CMAKE_SIZEOF_VOID_P EQUAL 8)
set(TARGET X86_WIN64)
+elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
+ set(TARGET X86_DARWIN)
+elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(TARGET X86_64)
+elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ set(TARGET X86)
+else()
+ message(FATAL_ERROR "Cannot determine target. Please consult ${CMAKE_CURRENT_SOURCE_DIR}/configure.ac and add your platform to this CMake file.")
endif()
+
set(HAVE_LONG_DOUBLE 0)
set(HAVE_LONG_DOUBLE_VARIANT 0)
set(FFI_EXEC_TRAMPOLINE_TABLE 0)
@@ -24,33 +51,13 @@ include_directories(include)
add_definitions(-DHAVE_CONFIG_H)
add_definitions(-DFFI_BUILDING)
if(BUILD_SHARED_LIBS)
- add_definitions(-DFFI_EXPORT_DATA)
+ if(WIN32)
+ add_definitions(-DFFI_EXPORT_DATA)
+ endif()
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif()
-if(CMAKE_SIZEOF_VOID_P EQUAL 4)
- set(ARCH_ASM_NAME win32)
- set(ARCH_ASSEMBLER ml /safeseh)
-else()
- set(ARCH_ASM_NAME win64)
- set(ARCH_ASSEMBLER ml64)
-endif()
-
-execute_process(
- COMMAND cl /nologo /EP /I. /Iinclude ${CMAKE_SOURCE_DIR}/src/x86/${ARCH_ASM_NAME}.S
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
- OUTPUT_FILE ${ARCH_ASM_NAME}.asm)
-
-# Produced *.asm file could be just added to sources.
-# It works in x64 mode, but for some strange reason MASM returns error code when in x86,
-# (even though it didn't report any errors and correctly generated object file)
-# which in turn causes MSBUILD to stop.
-execute_process(
- COMMAND ${ARCH_ASSEMBLER} /c /Zi ${ARCH_ASM_NAME}.asm
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
-
set(FFI_SOURCES
- ${CMAKE_BINARY_DIR}/${ARCH_ASM_NAME}.obj
src/x86/ffi.c
src/closures.c
src/java_raw_api.c
@@ -58,6 +65,57 @@ set(FFI_SOURCES
src/raw_api.c
src/types.c)
+macro(add_assembly ASMFILE)
+ get_filename_component(ASMFILE_FULL "${ASMFILE}" ABSOLUTE)
+ if(MSVC)
+ if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ set(ARCH_ASSEMBLER ml /safeseh)
+ else()
+ set(ARCH_ASSEMBLER ml64)
+ endif()
+
+ get_filename_component(ARCH_ASM_NAME "${ASMFILE_FULL}" NAME_WE)
+
+ execute_process(
+ COMMAND ${CMAKE_C_COMPILER} /nologo /EP /I. /Iinclude ${ASMFILE_FULL}
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ OUTPUT_FILE ${ARCH_ASM_NAME}.asm
+ )
+
+ # Produced *.asm file could be just added to sources.
+ # It works in x64 mode, but for some strange reason MASM returns error code when in x86,
+ # (even though it didn't report any errors and correctly generated object file)
+ # which in turn causes MSBUILD to stop.
+ execute_process(
+ COMMAND ${ARCH_ASSEMBLER} /c /Zi ${ARCH_ASM_NAME}.asm
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ )
+
+ list(APPEND FFI_SOURCES ${CMAKE_BINARY_DIR}/${ARCH_ASM_NAME}.obj)
+ else()
+ list(APPEND FFI_SOURCES ${ASMFILE})
+ endif()
+endmacro()
+
+if("${TARGET}" STREQUAL "X86")
+ add_assembly(src/x86/sysv.S)
+ add_assembly(src/x86/win32.S)
+elseif("${TARGET}" STREQUAL "X86_64")
+ list(APPEND FFI_SOURCES src/x86/ffi64.c)
+ add_assembly(src/x86/unix64.S)
+ add_assembly(src/x86/sysv.S)
+elseif("${TARGET}" STREQUAL "X86_WIN32")
+ add_assembly(src/x86/win32.S)
+elseif("${TARGET}" STREQUAL "X86_WIN64")
+ add_assembly(src/x86/win64.S)
+elseif("${TARGET}" STREQUAL "X86_DARWIN")
+ list(APPEND FFI_SOURCES src/x86/ffi64.c)
+ add_assembly(src/x86/darwin.S)
+ add_assembly(src/x86/darwin64.S)
+else()
+ message(FATAL_ERROR "Target not implemented")
+endif()
+
if(CMAKE_BUILD_TYPE STREQUAL Debug)
list(APPEND FFI_SOURCES src/debug.c)
add_definitions(-DFFI_DEBUG)
diff --git a/ports/libffi/CONTROL b/ports/libffi/CONTROL
index 83725f49c..ee1f0de9e 100644
--- a/ports/libffi/CONTROL
+++ b/ports/libffi/CONTROL
@@ -1,3 +1,3 @@
Source: libffi
-Version: 3.1
+Version: 3.1-1
Description: Portable, high level programming interface to various calling conventions
diff --git a/ports/libffi/fficonfig.h b/ports/libffi/fficonfig.h
index b5cd2368f..ff8b0ca44 100644
--- a/ports/libffi/fficonfig.h
+++ b/ports/libffi/fficonfig.h
@@ -1,209 +1,46 @@
-/* fficonfig.h. Generated from fficonfig.h.in by configure. */
-/* fficonfig.h.in. Generated from configure.ac by autoheader. */
-
-/* Define if building universal (internal helper macro) */
-/* #undef AC_APPLE_UNIVERSAL_BUILD */
-
-/* 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 the flags needed for the .section .eh_frame directive. */
-/* #undef EH_FRAME_FLAGS */
-
-/* Define this if you want extra debugging. */
-/* #undef FFI_DEBUG */
-
-/* Cannot use PROT_EXEC on this target, so, we revert to alternative means */
-/* #undef FFI_EXEC_TRAMPOLINE_TABLE */
-
-/* Define this if you want to enable pax emulated trampolines */
-/* #undef FFI_MMAP_EXEC_EMUTRAMP_PAX */
-
-/* Cannot use malloc on this target, so, we revert to alternative means */
-/* #undef FFI_MMAP_EXEC_WRIT */
-
-/* Define this if you do not want support for the raw API. */
-/* #undef FFI_NO_RAW_API */
-
-/* Define this if you do not want support for aggregate types. */
-/* #undef FFI_NO_STRUCTS */
-
-/* Define to 1 if you have `alloca', as a function or macro. */
#define HAVE_ALLOCA 1
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
- */
-/* #undef HAVE_ALLOCA_H */
-
-/* Define if your assembler supports .ascii. */
#ifndef _WIN64
#define HAVE_AS_ASCII_PSEUDO_OP 1
#endif
-
-/* Define if your assembler supports .cfi_* directives. */
-/* #undef HAVE_AS_CFI_PSEUDO_OP */
-
-/* Define if your assembler supports .register. */
-/* #undef HAVE_AS_REGISTER_PSEUDO_OP */
-
-/* Define if your assembler and linker support unaligned PC relative relocs.
- */
-/* #undef HAVE_AS_SPARC_UA_PCREL */
-
-/* Define if your assembler supports .string. */
#ifndef _WIN64
#define HAVE_AS_STRING_PSEUDO_OP 1
#endif
-
-/* Define if your assembler supports unwind section type. */
-/* #undef HAVE_AS_X86_64_UNWIND_SECTION_TYPE */
-
-/* Define if your assembler supports PC relative relocs. */
#ifndef _WIN64
#define HAVE_AS_X86_PCREL 1
#endif
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-/* #undef HAVE_DLFCN_H */
-
-/* Define if __attribute__((visibility("hidden"))) is supported. */
-/* #undef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE */
-
-/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
-
-/* Define if you have the long double type and it is bigger than a double */
-/* #undef HAVE_LONG_DOUBLE */
-
-/* Define if you support more than one size of the long double type */
-/* #undef HAVE_LONG_DOUBLE_VARIANT */
-
-/* Define to 1 if you have the `memcpy' function. */
-/* #undef HAVE_MEMCPY */
-
-/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `mmap' function. */
-/* #undef HAVE_MMAP */
-
-/* Define if mmap with MAP_ANON(YMOUS) works. */
-/* #undef HAVE_MMAP_ANON */
-
-/* Define if mmap of /dev/zero works. */
-/* #undef HAVE_MMAP_DEV_ZERO */
-
-/* Define if read-only mmap of a plain file works. */
-/* #undef HAVE_MMAP_FILE */
-
-/* Define if .eh_frame sections should be read-only. */
-/* #undef HAVE_RO_EH_FRAME */
-
-/* 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 <sys/mman.h> header file. */
-/* #undef HAVE_SYS_MMAN_H */
-
-/* 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/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-/* #undef HAVE_UNISTD_H */
-
-/* Define to the sub-directory where libtool stores uninstalled libraries. */
#define LT_OBJDIR ".libs/"
-
-/* Name of package */
#define PACKAGE "libffi"
-
-/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "http://github.com/atgreen/libffi/issues"
-
-/* Define to the full name of this package. */
#define PACKAGE_NAME "libffi"
-
-/* Define to the full name and version of this package. */
#define PACKAGE_STRING "libffi 3.1"
-
-/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "libffi"
-
-/* Define to the home page for this package. */
#define PACKAGE_URL ""
-
-/* Define to the version of this package. */
#define PACKAGE_VERSION "3.1"
-
-/* The size of `double', as computed by sizeof. */
#define SIZEOF_DOUBLE 8
-
-/* The size of `long double', as computed by sizeof. */
#define SIZEOF_LONG_DOUBLE 8
-
-/* The size of `size_t', as computed by sizeof. */
#ifndef _WIN64
#define SIZEOF_SIZE_T 4
#else
#define SIZEOF_SIZE_T 8
#endif
-
-/* 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 if symbols are underscored. */
#ifndef _WIN64
#define SYMBOL_UNDERSCORE 1
#endif
-
-/* Define this if you are using Purify and want to suppress spurious messages.
- */
-/* #undef USING_PURIFY */
-
-/* Version number of package */
#define VERSION "3.1"
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
- significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
-#else
-# ifndef WORDS_BIGENDIAN
-/* # undef WORDS_BIGENDIAN */
-# endif
#endif
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-/* #undef size_t */
-
-
#ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
#ifdef LIBFFI_ASM
#define FFI_HIDDEN(name) .hidden name
diff --git a/ports/libffi/portfile.cmake b/ports/libffi/portfile.cmake
index 2639aa1ba..8799e23a8 100644
--- a/ports/libffi/portfile.cmake
+++ b/ports/libffi/portfile.cmake
@@ -1,38 +1,42 @@
-if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL x86 AND NOT VCPKG_TARGET_ARCHITECTURE STREQUAL x64)
- message(FATAL_ERROR "Architecture not supported")
-endif()
-
-include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libffi-3.1)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/libffi/libffi/archive/v3.1.zip"
- FILENAME "libffi-3.1.zip"
- SHA512 a5d4cc638262aecec29e70333119f561588a737fd8f353e18d9bf1bfa7b38eb6aba371778119ea8d35339b458815105d5b110063295b6588a8761b24dac77a7c)
-
-vcpkg_extract_source_archive(${ARCHIVE})
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
-
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/export-global-data.patch)
-
-vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS
- -DFFI_CONFIG_FILE=${CMAKE_CURRENT_LIST_DIR}/fficonfig.h
- OPTIONS_DEBUG
- -DFFI_SKIP_HEADERS=ON)
-
-vcpkg_install_cmake()
-vcpkg_copy_pdbs()
-
-if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
- vcpkg_apply_patches(
- SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/auto-define-static-macro.patch)
-endif()
-
-file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libffi)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/libffi/LICENSE ${CURRENT_PACKAGES_DIR}/share/libffi/copyright)
+if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL x86 AND NOT VCPKG_TARGET_ARCHITECTURE STREQUAL x64)
+ message(FATAL_ERROR "Architecture not supported")
+endif()
+
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libffi/libffi
+ REF v3.1
+ SHA512 b214e4a876995f44e0a93bad5bf1b3501ea1fbedafbf33ea600007bd08c9bc965a1f0dd90ea870281c3add6c051febd19aa6cdce36f3ee8ba535ba2c0703153c
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/export-global-data.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DFFI_CONFIG_FILE=${CMAKE_CURRENT_LIST_DIR}/fficonfig.h
+ OPTIONS_DEBUG
+ -DFFI_SKIP_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ vcpkg_apply_patches(
+ SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/auto-define-static-macro.patch
+ )
+endif()
+
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libffi)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libffi/LICENSE ${CURRENT_PACKAGES_DIR}/share/libffi/copyright)
diff --git a/ports/libflac/CMakeLists.txt b/ports/libflac/CMakeLists.txt
index 518419c4f..d6f01399a 100644
--- a/ports/libflac/CMakeLists.txt
+++ b/ports/libflac/CMakeLists.txt
@@ -7,15 +7,22 @@ if(NOT DEFINED LIBFLAC_ARCHITECTURE)
message(FATAL_ERROR "Target architecture not specified")
endif()
-file(GLOB LIBFLAC_SOURCES
- ${PROJECT_SOURCE_DIR}/src/libFLAC/*.c
- ${PROJECT_SOURCE_DIR}/src/share/win_utf8_io/win_utf8_io.c)
+file(GLOB LIBFLAC_SOURCES src/libFLAC/*.c)
-file(GLOB LIBFLACXX_SOURCES
- ${PROJECT_SOURCE_DIR}/src/libFLAC++/*.cpp)
+if(WIN32)
+ list(APPEND LIBFLAC_SOURCES src/share/win_utf8_io/win_utf8_io.c)
+else()
+ list(FILTER LIBFLAC_SOURCES EXCLUDE REGEX "windows[^/]*$")
+
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/config.h "#include <inttypes.h>")
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+ add_definitions(-DHAVE_CONFIG_H)
+endif()
+
+file(GLOB LIBFLACXX_SOURCES src/libFLAC++/*.cpp)
-include_directories(${PROJECT_SOURCE_DIR}/include)
-include_directories(${PROJECT_SOURCE_DIR}/src/libFLAC/include)
+include_directories(include)
+include_directories(src/libFLAC/include)
if(NOT LIBFLAC_ARCHITECTURE MATCHES arm)
add_definitions(-DFLAC__SSE_OS)
@@ -44,14 +51,15 @@ endif()
add_definitions(-DPACKAGE_VERSION="1.3.2")
add_definitions(-DFLAC__HAS_OGG)
add_definitions(-DFLAC__ALIGN_MALLOC_DATA) # 32 byte boundary
+add_definitions(-DHAVE_LROUND)
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
add_definitions(-D_CRT_NONSTDC_NO_WARNINGS)
add_library(libFLAC ${LIBFLAC_SOURCES})
add_library(libFLACXX ${LIBFLACXX_SOURCES})
-set_target_properties(libFLAC PROPERTIES OUTPUT_NAME flac)
-set_target_properties(libFLACXX PROPERTIES OUTPUT_NAME flac++)
+set_target_properties(libFLAC PROPERTIES OUTPUT_NAME FLAC)
+set_target_properties(libFLACXX PROPERTIES OUTPUT_NAME FLAC++)
find_library(OGG_LIBRARY ogg)
find_path(OGG_INCLUDE_DIR ogg/ogg.h)
@@ -73,10 +81,10 @@ install(TARGETS libFLAC libFLACXX
LIBRARY DESTINATION lib)
if(NOT DEFINED LIBFLAC_SKIP_HEADERS)
- install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/FLAC/
+ install(DIRECTORY include/FLAC/
DESTINATION include/FLAC
FILES_MATCHING PATTERN "*.h")
- install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/FLAC++/
+ install(DIRECTORY include/FLAC++/
DESTINATION include/FLAC++
FILES_MATCHING PATTERN "*.h")
endif()
diff --git a/ports/libflac/CONTROL b/ports/libflac/CONTROL
index b81ec3cd1..1a16c7a6a 100644
--- a/ports/libflac/CONTROL
+++ b/ports/libflac/CONTROL
@@ -1,4 +1,4 @@
Source: libflac
-Version: 1.3.2-2
+Version: 1.3.2-5
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/libfreenect2/CONTROL b/ports/libfreenect2/CONTROL
new file mode 100644
index 000000000..90c53db6d
--- /dev/null
+++ b/ports/libfreenect2/CONTROL
@@ -0,0 +1,4 @@
+Source: libfreenect2
+Version: 0.2.0
+Build-Depends:libusb
+Description: Open source drivers for the Kinect for Windows v2 device
diff --git a/ports/libfreenect2/portfile.cmake b/ports/libfreenect2/portfile.cmake
new file mode 100644
index 000000000..ba41bb904
--- /dev/null
+++ b/ports/libfreenect2/portfile.cmake
@@ -0,0 +1,41 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO OpenKinect/libfreenect2
+ REF v0.2.0
+ SHA512 3525e3f21462cecd3b198f64545786ffddc2cafdfd8146e5a46f0300b83f29f1ad0739618a07ab195c276149d7e2e909f7662e2d379a2880593cac75942b0666
+ HEAD_REF master
+)
+
+file(READ ${SOURCE_PATH}/cmake_modules/FindLibUSB.cmake FINDLIBUSB)
+string(REPLACE "(WIN32)"
+ "(WIN32_DISABLE)" FINDLIBUSB "${FINDLIBUSB}")
+file(WRITE ${SOURCE_PATH}/cmake_modules/FindLibUSB.cmake "${FINDLIBUSB}")
+
+file(READ ${SOURCE_PATH}/examples/CMakeLists.txt EXAMPLECMAKE)
+string(REPLACE "(WIN32)"
+ "(WIN32_DISABLE)" EXAMPLECMAKE "${EXAMPLECMAKE}")
+file(WRITE ${SOURCE_PATH}/examples/CMakeLists.txt "${EXAMPLECMAKE}")
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DENABLE_CUDA=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/freenect2")
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# The cmake config is actually called freenect2Config.cmake instead of libfreenect2Config.cmake ...
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libfreenect2 ${CURRENT_PACKAGES_DIR}/share/freenect2)
+
+# license file needs to be in share/libfreenect2 otherwise vcpkg will complain
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/libfreenect2/)
+file(COPY ${SOURCE_PATH}/GPL2 DESTINATION ${CURRENT_PACKAGES_DIR}/share/libfreenect2/)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libfreenect2/GPL2 ${CURRENT_PACKAGES_DIR}/share/libfreenect2/copyright)
diff --git a/ports/libgd/CONTROL b/ports/libgd/CONTROL
index 4d9d5bd24..f86afe90f 100644
--- a/ports/libgd/CONTROL
+++ b/ports/libgd/CONTROL
@@ -1,4 +1,4 @@
Source: libgd
-Version: 2.2.4-2
+Version: 2.2.4-3
Description: Open source code library for the dynamic creation of images by programmers.
Build-Depends: freetype, libjpeg-turbo, libpng, libwebp, tiff, fontconfig
diff --git a/ports/libgeotiff/0001-Updates-to-CMake-configuration-to-align-with-other-C.patch b/ports/libgeotiff/0001-Updates-to-CMake-configuration-to-align-with-other-C.patch
new file mode 100644
index 000000000..93476fd2f
--- /dev/null
+++ b/ports/libgeotiff/0001-Updates-to-CMake-configuration-to-align-with-other-C.patch
@@ -0,0 +1,88 @@
+From 77b4bf4e649d55b1f1df38494114727f972ec806 Mon Sep 17 00:00:00 2001
+From: Howard Butler <hobu.inc@gmail.com>
+Date: Mon, 11 Dec 2017 15:21:56 +0000
+Subject: [PATCH 1/5] Updates to CMake configuration to align with other CMake
+ norms (BUILD_SHARED_LIBS mostly)
+
+git-svn-id: https://svn.osgeo.org/metacrs/geotiff/trunk/libgeotiff@2801 4e78687f-474d-0410-85f9-8d5e500ac6b2
+Signed-off-by: Hiroshi Miura <miurahr@linux.com>
+---
+ CMakeLists.txt | 22 ++--------------------
+ cmake/project-config.cmake.in | 5 ++++-
+ 2 files changed, 6 insertions(+), 21 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0c70973..55ececf 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -9,7 +9,6 @@ PROJECT(GeoTIFF)
+
+ SET(GEOTIFF_LIB_NAME geotiff)
+ SET(GEOTIFF_LIBRARY_TARGET geotiff_library)
+-SET(GEOTIFF_ARCHIVE_TARGET geotiff_archive)
+
+ ##############################################################################
+ # CMake settings
+@@ -416,32 +415,15 @@ FILE(WRITE "${CMAKE_CURRENT_BINARY_DIR}/epsg_incode_header.h"
+
+ SET(XTIFF_SOURCES libxtiff/xtiff.c)
+
+-#---
+-# Static libgeotiff archive
+-# NOTE: Did not put XTIFF_SOURCES in static lib because libxtiff.a is written out
+-# currently.
+-#---
+ if (MSVC OR CMAKE_CONFIGURATION_TYPES)
+ # For multi-config systems and for Visual Studio, the debug versions
+ # of the libraries have a _d suffix.
+ set (CMAKE_DEBUG_POSTFIX _d)
+ endif ()
+
+-ADD_LIBRARY(${GEOTIFF_ARCHIVE_TARGET} STATIC
+- ${GEOTIFF_LIB_SOURCES} ${GEOTIFF_LIB_CSV_SOURCES})
+-SET_TARGET_PROPERTIES(${GEOTIFF_ARCHIVE_TARGET} PROPERTIES
+- OUTPUT_NAME ${GEOTIFF_LIB_NAME})
+-
+-# Shared libgeotiff library
+-ADD_LIBRARY(${GEOTIFF_LIBRARY_TARGET} SHARED
++ADD_LIBRARY(${GEOTIFF_LIBRARY_TARGET}
+ ${GEOTIFF_LIB_SOURCES} ${GEOTIFF_LIB_CSV_SOURCES} ${XTIFF_SOURCES})
+
+-# Windows:
+-IF(WIN32 AND MSVC)
+- SET_TARGET_PROPERTIES(${GEOTIFF_LIBRARY_TARGET} PROPERTIES IMPORT_SUFFIX "_i.lib")
+-ENDIF(WIN32 AND MSVC)
+-
+-
+ # Unix, linux:
+ IF(UNIX)
+ SET_TARGET_PROPERTIES(
+@@ -478,7 +460,7 @@ TARGET_LINK_LIBRARIES(${GEOTIFF_LIBRARY_TARGET}
+ # LIBRARY DESTINATION ${GEOTIFF_LIB_DIR}
+ # ARCHIVE DESTINATION ${GEOTIFF_LIB_DIR})
+
+-INSTALL( TARGETS ${GEOTIFF_ARCHIVE_TARGET} ${GEOTIFF_LIBRARY_TARGET}
++INSTALL( TARGETS ${GEOTIFF_LIBRARY_TARGET}
+ EXPORT depends
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+diff --git a/cmake/project-config.cmake.in b/cmake/project-config.cmake.in
+index 6b5499f..dc5b999 100644
+--- a/cmake/project-config.cmake.in
++++ b/cmake/project-config.cmake.in
+@@ -32,8 +32,11 @@ set (@PROJECT_NAME@_BINARY_DIRS "${_ROOT}/bin")
+
+ message (STATUS " include directory: \${@PROJECT_NAME@_INCLUDE_DIRS}")
+
++if(BUILD_SHARED_LIBS)
+ set (@PROJECT_NAME@_SHARED_LIBRARIES @GEOTIFF_LIBRARY_TARGET@)
+-set (@PROJECT_NAME@_STATIC_LIBRARIES @GEOTIFF_ARCHIVE_TARGET@)
++else()
++set (@PROJECT_NAME@_STATIC_LIBRARIES @GEOTIFF_LIBRARY_TARGET@)
++endif()
+ # Read in the exported definition of the library
+ include ("${_DIR}/@PROJECT_NAME_LOWER@-depends.cmake")
+
+--
+2.16.1
+
diff --git a/ports/libgeotiff/0002-Fix-directory-output.patch b/ports/libgeotiff/0002-Fix-directory-output.patch
new file mode 100644
index 000000000..d6b79e54c
--- /dev/null
+++ b/ports/libgeotiff/0002-Fix-directory-output.patch
@@ -0,0 +1,28 @@
+From 2b60f0a2c264bf3730e89739384a6d50991b2fc4 Mon Sep 17 00:00:00 2001
+From: Hiroshi Miura <miurahr@linux.com>
+Date: Wed, 14 Feb 2018 12:31:53 +0900
+Subject: [PATCH 2/5] Fix directory output
+
+Signed-off-by: Hiroshi Miura <miurahr@linux.com>
+---
+ cmake/CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
+index 47a2b00..b41f2fa 100644
+--- a/cmake/CMakeLists.txt
++++ b/cmake/CMakeLists.txt
+@@ -10,8 +10,8 @@ if (NOT WIN32)
+ set (INSTALL_CMAKE_DIR "share/cmake/${PROJECT_NAME}")
+ set (PROJECT_ROOT_DIR "../../..")
+ else ()
+- set (INSTALL_CMAKE_DIR "cmake")
+- set (PROJECT_ROOT_DIR "..")
++ set (INSTALL_CMAKE_DIR "share/${PROJECT_NAME}")
++ set (PROJECT_ROOT_DIR "../..")
+ endif ()
+
+ configure_file (project-config.cmake.in project-config.cmake @ONLY)
+--
+2.16.1
+
diff --git a/ports/libgeotiff/0003-Fix-cmake-TIFF-detection.patch b/ports/libgeotiff/0003-Fix-cmake-TIFF-detection.patch
new file mode 100644
index 000000000..14929e10c
--- /dev/null
+++ b/ports/libgeotiff/0003-Fix-cmake-TIFF-detection.patch
@@ -0,0 +1,36 @@
+From bc0003ab3d94f271b27f6897259b734709a5d6cf Mon Sep 17 00:00:00 2001
+From: Hiroshi Miura <miurahr@linux.com>
+Date: Wed, 14 Feb 2018 12:32:11 +0900
+Subject: [PATCH 3/5] Fix cmake TIFF detection
+
+Signed-off-by: Hiroshi Miura <miurahr@linux.com>
+---
+ CMakeLists.txt | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 55ececf..1e2fe3d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -191,7 +191,8 @@ IF(WITH_TIFF)
+ IF(TIFF_FOUND)
+ # Confirm required API is available
+ INCLUDE(CheckFunctionExists)
+- SET(CMAKE_REQUIRED_LIBRARIES ${TIFF_LIBRARIES})
++ FIND_PACKAGE(LibLZMA)
++ SET(CMAKE_REQUIRED_LIBRARIES ${TIFF_LIBRARIES} ${ZLIB_LIBRARIES} ${JPEG_LIBRARIES} ${LIBLZMA_LIBRARIES})
+
+ CHECK_FUNCTION_EXISTS(TIFFOpen HAVE_TIFFOPEN)
+ IF(NOT HAVE_TIFFOPEN)
+@@ -204,7 +205,7 @@ IF(WITH_TIFF)
+ SET(TIFF_FOUND) # ReSET to NOT found for TIFF library
+ MESSAGE(FATAL_ERROR "Failed to link with libtiff - TIFFMergeFieldInfo function not found. libtiff 3.6.0 Beta or later required. Please upgrade or use an older version of libgeotiff")
+ ENDIF()
+-
++ SET(CMAKE_REQUIRED_LIBRARIES)
+ INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIR})
+ ADD_DEFINITIONS(-DHAVE_TIFF=1)
+ ENDIF(TIFF_FOUND)
+--
+2.16.1
+
diff --git a/ports/libgeotiff/0004-Fix-libxtiff-installation.patch b/ports/libgeotiff/0004-Fix-libxtiff-installation.patch
new file mode 100644
index 000000000..f7da51ab0
--- /dev/null
+++ b/ports/libgeotiff/0004-Fix-libxtiff-installation.patch
@@ -0,0 +1,64 @@
+From 3a7c42f304ec3bb149e31bbd21c9c84048c3047c Mon Sep 17 00:00:00 2001
+From: Hiroshi Miura <miurahr@linux.com>
+Date: Thu, 15 Feb 2018 13:11:01 +0900
+Subject: [PATCH 4/5] Fix libxtiff installation
+
+Signed-off-by: Hiroshi Miura <miurahr@linux.com>
+---
+ CMakeLists.txt | 9 ++-------
+ libxtiff/CMakeLists.txt | 9 ---------
+ 2 files changed, 2 insertions(+), 16 deletions(-)
+ delete mode 100644 libxtiff/CMakeLists.txt
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1e2fe3d..c52cfb4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -354,11 +354,6 @@ INSTALL(FILES ${GEOTIFF_MAN_PAGES} DESTINATION share/man/man1)
+ # INSTALL(FILES ${GEOTIFF_LIB_HEADERS} DESTINATION ${GEOTIFF_INCLUDE_DIR})
+ INSTALL(FILES ${GEOTIFF_LIB_HEADERS} DESTINATION include)
+
+-###############################################################################
+-# Build libxtiff library
+-
+-ADD_SUBDIRECTORY(libxtiff)
+-
+ ###############################################################################
+ # Build libgeotiff library
+
+@@ -406,6 +401,8 @@ FOREACH(epsg_csv_file ${GEOTIFF_CSV_DATA})
+ ENDIF()
+ ENDFOREACH()
+
++SET(XTIFF_SOURCES libxtiff/xtiff.c)
++
+ SET(EPSG_INCODE_EXPLANATION
+ "This file is autogenerated by CMake, based on the INCODE_EPSG_* options specified during configure.\n
+ Choosing an EPSG CSV file for inclusion into code will run csv/csv2c.py on the file and include the\n
+@@ -414,8 +411,6 @@ STRING(REPLACE ";" "\n" EPSG_INCLUDEFILE_POINTER_STRING "${epsg_includefile_poin
+ FILE(WRITE "${CMAKE_CURRENT_BINARY_DIR}/epsg_incode_header.h"
+ "/* ${EPSG_INCODE_EXPLANATION} */\n${epsg_includefile_externconst}; \n\n/* Pointers to csv data included in code */\nstatic const datafile_t files[] = {\n${EPSG_INCLUDEFILE_POINTER_STRING}\n { NULL, NULL }};")
+
+-SET(XTIFF_SOURCES libxtiff/xtiff.c)
+-
+ if (MSVC OR CMAKE_CONFIGURATION_TYPES)
+ # For multi-config systems and for Visual Studio, the debug versions
+ # of the libraries have a _d suffix.
+diff --git a/libxtiff/CMakeLists.txt b/libxtiff/CMakeLists.txt
+deleted file mode 100644
+index a0bbb96..0000000
+--- a/libxtiff/CMakeLists.txt
++++ /dev/null
+@@ -1,9 +0,0 @@
+-###############################################################################
+-#
+-# CMake configuration file to build libxtiff library
+-#
+-# Author: Mateusz Loskot <mateusz@loskot.net>
+-#
+-###############################################################################
+-
+-ADD_LIBRARY(xtiff STATIC xtiff.c)
+--
+2.16.1
+
diff --git a/ports/libgeotiff/0005-Control-shared-library-build-with-option.patch b/ports/libgeotiff/0005-Control-shared-library-build-with-option.patch
new file mode 100644
index 000000000..ed9a4e88a
--- /dev/null
+++ b/ports/libgeotiff/0005-Control-shared-library-build-with-option.patch
@@ -0,0 +1,34 @@
+From 84e537f3bd0db74b22ffebb3746d292daf4f4e59 Mon Sep 17 00:00:00 2001
+From: Hiroshi Miura <miurahr@linux.com>
+Date: Thu, 15 Feb 2018 13:17:14 +0900
+Subject: [PATCH 5/5] Control shared library build with option
+
+Signed-off-by: Hiroshi Miura <miurahr@linux.com>
+---
+ CMakeLists.txt | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c52cfb4..5890203 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,14 +5,15 @@
+ # Author: Mateusz Loskot <mateusz@loskot.net>
+ #
+ ###############################################################################
++CMAKE_MINIMUM_REQUIRED(VERSION 3.1.0)
+ PROJECT(GeoTIFF)
+
+ SET(GEOTIFF_LIB_NAME geotiff)
+ SET(GEOTIFF_LIBRARY_TARGET geotiff_library)
++option(BUILD_SHARE_LIBS "Set ON to build shared library." ON)
+
+ ##############################################################################
+ # CMake settings
+-CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0)
+
+ SET(CMAKE_COLOR_MAKEFILE ON)
+
+--
+2.16.1
+
diff --git a/ports/libgeotiff/0006-Fix-utility-link-error.patch b/ports/libgeotiff/0006-Fix-utility-link-error.patch
new file mode 100644
index 000000000..ef0963b26
--- /dev/null
+++ b/ports/libgeotiff/0006-Fix-utility-link-error.patch
@@ -0,0 +1,42 @@
+From 2625b4a85b6cacf9b6ede3cf30af16eb795044e9 Mon Sep 17 00:00:00 2001
+From: Hiroshi Miura <miurahr@linux.com>
+Date: Sat, 24 Feb 2018 08:36:31 +0900
+Subject: [PATCH 6/6] Fix utility link error
+
+Signed-off-by: Hiroshi Miura <miurahr@linux.com>
+---
+ bin/CMakeLists.txt | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/bin/CMakeLists.txt b/bin/CMakeLists.txt
+index 583ae36..6c6cc21 100644
+--- a/bin/CMakeLists.txt
++++ b/bin/CMakeLists.txt
+@@ -6,10 +6,6 @@
+ #
+ ###############################################################################
+
+-INCLUDE_DIRECTORIES(
+- .
+- ${CMAKE_SOURCE_DIR})
+-
+ IF(WIN32 AND MSVC)
+ SET(GETOPT_SOURCE getopt.c)
+ ENDIF()
+@@ -22,12 +18,11 @@ MESSAGE(STATUS "Adding GeoTIFF utilities to build")
+
+ FOREACH(utility ${GEOTIFF_UTILITIES})
+ ADD_EXECUTABLE(${utility} ${utility}.c ${GETOPT_SOURCE})
+- TARGET_LINK_LIBRARIES(${utility} xtiff ${GEOTIFF_LIBRARY_TARGET})
++ TARGET_LINK_LIBRARIES(${utility} ${GEOTIFF_LIBRARY_TARGET})
+ ENDFOREACH()
+
+ ADD_EXECUTABLE(geotifcp geotifcp.c ${GETOPT_SOURCE})
+ TARGET_LINK_LIBRARIES(geotifcp
+- xtiff
+ ${GEOTIFF_LIBRARY_TARGET}
+ ${JPEG_LIBRARIES}
+ ${ZLIB_LIBRARIES})
+--
+2.16.1
+
diff --git a/ports/libgeotiff/CONTROL b/ports/libgeotiff/CONTROL
new file mode 100644
index 000000000..abd2fbdc5
--- /dev/null
+++ b/ports/libgeotiff/CONTROL
@@ -0,0 +1,4 @@
+Source: libgeotiff
+Version: 1.4.2-3
+Description: Libgeotiff is an open source library normally hosted on top of ​libtiff for reading, and writing GeoTIFF information tags.
+Build-Depends: tiff, proj4, zlib, libjpeg-turbo
diff --git a/ports/libgeotiff/portfile.cmake b/ports/libgeotiff/portfile.cmake
new file mode 100644
index 000000000..65e5fa436
--- /dev/null
+++ b/ports/libgeotiff/portfile.cmake
@@ -0,0 +1,56 @@
+include(vcpkg_common_functions)
+
+set(LIBGEOTIFF_VERSION 1.4.2)
+set(LIBGEOTIFF_HASH 059c6e05eb0c47f17b102c7217a2e1636e76d622c4d1bdcf0bd89fb3505f3130bffa881e21c73cfd2ca0d6863b81322f85784658ba3539b53b63c3a8f38d1deb)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libgeotiff-${LIBGEOTIFF_VERSION})
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://download.osgeo.org/geotiff/libgeotiff/libgeotiff-${LIBGEOTIFF_VERSION}.tar.gz"
+ FILENAME "libgeotiff-${LIBGEOTIFF_VERSION}.tar.gz"
+ SHA512 ${LIBGEOTIFF_HASH})
+
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-Updates-to-CMake-configuration-to-align-with-other-C.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/0002-Fix-directory-output.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/0003-Fix-cmake-TIFF-detection.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/0004-Fix-libxtiff-installation.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/0005-Control-shared-library-build-with-option.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/0006-Fix-utility-link-error.patch"
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(BUILD_SHARED_LIBS ON)
+else()
+ set(BUILD_SHARED_LIBS OFF)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
+ -DWITH_TIFF=ON
+ -DWITH_PROJ4=ON
+ -DWITH_ZLIB=ON
+ -DWITH_JPEG=ON
+ OPTIONS_RELEASE -DWITH_UTILITIES=ON
+ OPTIONS_DEBUG -DWITH_UTILITIES=OFF
+)
+
+vcpkg_build_cmake()
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libgeotiff RENAME copyright)
+
+file(GLOB GEOTIFF_UTILS ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+file(INSTALL ${GEOTIFF_UTILS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/libgeotiff/)
+file(REMOVE ${GEOTIFF_UTILS})
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/libgeotiff)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin)
+endif()
diff --git a/ports/libgit2/CONTROL b/ports/libgit2/CONTROL
new file mode 100644
index 000000000..779bf10c9
--- /dev/null
+++ b/ports/libgit2/CONTROL
@@ -0,0 +1,3 @@
+Source: libgit2
+Version: 0.26.0
+Description: Git linkable library
diff --git a/ports/libgit2/portfile.cmake b/ports/libgit2/portfile.cmake
new file mode 100644
index 000000000..e624e37eb
--- /dev/null
+++ b/ports/libgit2/portfile.cmake
@@ -0,0 +1,30 @@
+# libgit2 uses winapi functions not available in WindowsStore
+if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+ message(FATAL_ERROR "Error: UWP builds are not supported.")
+endif()
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libgit2/libgit2
+ REF v0.26.0
+ SHA512 b6e51f2216c7c23f352572b780ea1325a25a517396709f036bb573295c2bd02aa505ba616846ac7e07863e99e640e7d47fefc5727478a257b283da99060ee47c
+ HEAD_REF master)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_CLAR=OFF
+ OPTIONS_DEBUG
+ -DBUILD_CLAR=OFF
+)
+
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libgit2)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libgit2/COPYING ${CURRENT_PACKAGES_DIR}/share/libgit2/copyright)
diff --git a/ports/libgo/CONTROL b/ports/libgo/CONTROL
new file mode 100644
index 000000000..c5c06fd8b
--- /dev/null
+++ b/ports/libgo/CONTROL
@@ -0,0 +1,4 @@
+Source: libgo
+Version: 2.8-1
+Build-Depends: boost-context
+Description: The best stackful coroutine by c++11.
diff --git a/ports/libgo/cmake.patch b/ports/libgo/cmake.patch
new file mode 100644
index 000000000..bed9cddaa
--- /dev/null
+++ b/ports/libgo/cmake.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index dbbdd7d..29396a5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -137,7 +137,7 @@ if (UNIX)
+ set(CMAKE_CXX_FLAGS "-std=c++11 -fPIC -Wall -pthread ${CMAKE_CXX_FLAGS}")
+ set(CMAKE_CXX_FLAGS_DEBUG "-g -pg ${CMAKE_CXX_FLAGS}")
+ set(CMAKE_CXX_FLAGS_RELEASE "-g -O3 ${CMAKE_CXX_FLAGS}")
+-else ()
++elseif (NOT DISABLE_ADJUST_COMMAND_LINE_FLAGS)
+ if (NOT DISABLE_DYNAMIC_LIB)
+ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD")
+@@ -159,7 +159,7 @@ set(STATIC_T "libgo_static")
+ add_library("${STATIC_T}" STATIC ${CO_SRC_LIST})
+ set_target_properties("${STATIC_T}" PROPERTIES OUTPUT_NAME "${TARGET}")
+
+-if (UNIX)
++if (UNIX OR FORCE_UNIX_TARGETS)
+ add_subdirectory(${PROJECT_SOURCE_DIR}/libgo/main)
+
+ if (NOT DISABLE_DYNAMIC_LIB)
+@@ -180,7 +180,11 @@ if (UNIX)
+ PATTERN "ctx_boost_coroutine" EXCLUDE
+ PATTERN "ctx_ucontext" EXCLUDE
+ PATTERN "*.h")
++ if(UNIX)
+ install(DIRECTORY ${PROJECT_SOURCE_DIR}/libgo/linux/ DESTINATION "include/libgo" FILES_MATCHING PATTERN "*.h")
++ else()
++ install(DIRECTORY ${PROJECT_SOURCE_DIR}/libgo/windows/ DESTINATION "include/libgo" FILES_MATCHING PATTERN "*.h")
++ endif()
+ #file(WRITE ${PROJECT_SOURCE_DIR}/tools/libgo.conf "${CMAKE_INSTALL_PREFIX}/lib")
+ #install(FILES ${PROJECT_SOURCE_DIR}/tools/libgo.conf DESTINATION "/etc/ld.so.conf.d")
+ if (DEPEND_BOOST)
diff --git a/ports/libgo/libgo-config.cmake b/ports/libgo/libgo-config.cmake
new file mode 100644
index 000000000..fd52f8dd3
--- /dev/null
+++ b/ports/libgo/libgo-config.cmake
@@ -0,0 +1,25 @@
+get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+
+if(NOT LIBGO_FIND_COMPONENTS)
+ set(LIBGO_FIND_COMPONENTS libgo libgo)
+ if(LIBGO_FIND_REQUIRED)
+ set(LIBGO_FIND_REQUIRED_libgo TRUE)
+ endif()
+
+ set(LIBGO_FOUND TRUE)
+endif()
+
+set(LIBGO_INCLUDE_DIRS ${_DIR}/../../include)
+set(LIBGO_LIBRARIES)
+if (EXISTS ${_DIR}/../../lib/liblibgo.a)
+ list(APPEND LIBGO_LIBRARIES optimized ${_DIR}/../../lib/liblibgo.a)
+endif()
+if (EXISTS ${_DIR}/../../debug/lib/liblibgo.a)
+ list(APPEND LIBGO_LIBRARIES debug ${_DIR}/../../debug/lib/liblibgo.a)
+endif()
+if (EXISTS ${_DIR}/../../lib/libgo.lib)
+ list(APPEND LIBGO_LIBRARIES optimized ${_DIR}/../../lib/libgo.lib)
+endif()
+if (EXISTS ${_DIR}/../../debug/lib/libgo.lib)
+ list(APPEND LIBGO_LIBRARIES debug ${_DIR}/../../debug/lib/libgo.lib)
+endif()
diff --git a/ports/libgo/portfile.cmake b/ports/libgo/portfile.cmake
new file mode 100644
index 000000000..01dabcb81
--- /dev/null
+++ b/ports/libgo/portfile.cmake
@@ -0,0 +1,63 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("libgo currently only supports static linkage")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO yyzybb537/libgo
+ REF v2.8
+ SHA512 44784de4aec36ea321195c11c99a73de4f6f51285febdf6980e8aaced1fdfc0a34c6b1a8acc8c6b424e747310a1d7fb1604f722084c28ab91f8ebee15667d59b
+ HEAD_REF master
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/cmake.patch
+)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/XBased/xhook/archive/e18c450541892212ca4f11dc91fa269fabf9646f.tar.gz"
+ FILENAME "xhook-e18c450541892212ca4f11dc91fa269fabf9646f.tar.gz"
+ SHA512 1bcf320f50cff13d92013a9f0ab5c818c2b6b63e9c1ac18c5dd69189e448d7a848f1678389d8b2c08c65f907afb3909e743f6c593d9cfb21e2bb67d5c294a166
+)
+
+file(REMOVE_RECURSE ${SOURCE_PATH}/third_party)
+
+vcpkg_extract_source_archive(${ARCHIVE} ${SOURCE_PATH}/third_party)
+file(RENAME ${SOURCE_PATH}/third_party/xhook-e18c450541892212ca4f11dc91fa269fabf9646f ${SOURCE_PATH}/third_party/xhook)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DDISABLE_ADJUST_COMMAND_LINE_FLAGS=ON
+ -DDISABLE_DYNAMIC_LIB=ON
+ -DENABLE_BOOST_CONTEXT=ON
+ -DFORCE_UNIX_TARGETS=ON
+ -DDISABLE_SYSTEMWIDE=ON
+)
+
+vcpkg_install_cmake()
+
+# remove duplicated include files
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/libgo/disable_hook)
+
+file(GLOB REL_MAIN ${CURRENT_PACKAGES_DIR}/lib/libgo_main.lib ${CURRENT_PACKAGES_DIR}/lib/liblibgo_main.a)
+if(REL_MAIN)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+ file(COPY ${REL_MAIN} DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+ file(REMOVE ${REL_MAIN})
+endif()
+
+file(GLOB DBG_MAIN ${CURRENT_PACKAGES_DIR}/debug/lib/libgo_main.lib ${CURRENT_PACKAGES_DIR}/debug/lib/liblibgo_main.a)
+if(DBG_MAIN)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ file(COPY ${DBG_MAIN} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ file(REMOVE ${DBG_MAIN})
+endif()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libgo RENAME copyright)
+file(INSTALL ${CURRENT_PORT_DIR}/libgo-config.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libgo)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/libgo/usage b/ports/libgo/usage
new file mode 100644
index 000000000..a8f072947
--- /dev/null
+++ b/ports/libgo/usage
@@ -0,0 +1,5 @@
+The package libgo provides CMake integration:
+
+ find_package(libgo REQUIRED)
+ target_include_directories(main PRIVATE ${LIBGO_INCLUDE_DIRS})
+ target_link_libraries(main PRIVATE ${LIBGO_LIBRARIES})
diff --git a/ports/libgta/CONTROL b/ports/libgta/CONTROL
new file mode 100644
index 000000000..2f5e817f6
--- /dev/null
+++ b/ports/libgta/CONTROL
@@ -0,0 +1,4 @@
+Source: libgta
+Version: 1.0.8
+Description: Libgta is a portable library that implements the Generic Tagged Array (GTA) file format.
+Build-Depends: bzip2, zlib, liblzma
diff --git a/ports/libgta/portfile.cmake b/ports/libgta/portfile.cmake
new file mode 100644
index 000000000..31fc64fd0
--- /dev/null
+++ b/ports/libgta/portfile.cmake
@@ -0,0 +1,36 @@
+
+include(vcpkg_common_functions)
+
+set(LIBGTA_VERSION 1.0.8)
+set(LIBGTA_HASH 99ec3d6317c9a12cf440a60bb989cc7a3fe35e0a1da3e65206e5cd52b69fb860850e61ea0f819511ef48ddc87c468c0ded710409990627096738886e1b358423)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libgta-${LIBGTA_VERSION})
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://download.savannah.nongnu.org/releases/gta/libgta-1.0.8.tar.xz"
+ FILENAME "libgta-${LIBGTA_VERSION}.tar.xz"
+ SHA512 ${LIBGTA_HASH})
+
+vcpkg_extract_source_archive(${ARCHIVE})
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ENABLE_SHARED_LIBS)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ENABLE_STATIC_LIBS)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DGTA_BUILD_SHARED_LIBS=${ENABLE_SHARED_LIBS}
+ -DGTA_BUILD_STATIC_LIBS=${ENABLE_STATIC_LIBS}
+ -DGTA_BUILD_DOCUMENTATION=OFF
+)
+
+vcpkg_build_cmake()
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin)
+endif()
+
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libgta)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libgta/COPYING ${CURRENT_PACKAGES_DIR}/share/libgta/copyright)
diff --git a/ports/libharu/CONTROL b/ports/libharu/CONTROL
new file mode 100644
index 000000000..623628ab8
--- /dev/null
+++ b/ports/libharu/CONTROL
@@ -0,0 +1,4 @@
+Source: libharu
+Version: 2017-08-15-d84867ebf9f-4
+Description: libharu - free PDF library
+Build-Depends: zlib, libpng
diff --git a/ports/libharu/portfile.cmake b/ports/libharu/portfile.cmake
new file mode 100644
index 000000000..c8e9250b9
--- /dev/null
+++ b/ports/libharu/portfile.cmake
@@ -0,0 +1,56 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libharu/libharu
+ REF d84867ebf9f3de6afd661d2cdaff102457fbc371
+ SHA512 789579dd52c1056ae90a4ce5360c26ba92cadae5341a3901c4159afe624129a1f628fa6412952a398e048b0e5040c93f7ed5b4e4bc620a22d897098298fe2a99
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LIBHPDF_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "shared" LIBHPDF_SHARED)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DLIBHPDF_STATIC=${LIBHPDF_STATIC}
+ -DLIBHPDF_SHARED=${LIBHPDF_SHARED}
+)
+
+vcpkg_install_cmake()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libhpdfs.lib ${CURRENT_PACKAGES_DIR}/lib/libhpdf.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libhpdfsd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libhpdfd.lib)
+endif()
+
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/include
+ ${CURRENT_PACKAGES_DIR}/debug/README
+ ${CURRENT_PACKAGES_DIR}/debug/CHANGES
+ ${CURRENT_PACKAGES_DIR}/debug/INSTALL
+ ${CURRENT_PACKAGES_DIR}/README
+ ${CURRENT_PACKAGES_DIR}/CHANGES
+ ${CURRENT_PACKAGES_DIR}/INSTALL
+)
+
+file(READ "${CURRENT_PACKAGES_DIR}/include/hpdf.h" _contents)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ string(REPLACE "#ifdef HPDF_DLL\n" "#if 1\n" _contents "${_contents}")
+else()
+ string(REPLACE "#ifdef HPDF_DLL\n" "#if 0\n" _contents "${_contents}")
+endif()
+file(WRITE "${CURRENT_PACKAGES_DIR}/include/hpdf.h" "${_contents}")
+
+file(READ "${CURRENT_PACKAGES_DIR}/include/hpdf_types.h" _contents)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ string(REPLACE "#ifdef HPDF_DLL\n" "#if 1\n" _contents "${_contents}")
+else()
+ string(REPLACE "#ifdef HPDF_DLL\n" "#if 0\n" _contents "${_contents}")
+endif()
+file(WRITE "${CURRENT_PACKAGES_DIR}/include/hpdf_types.h" "${_contents}")
+
+file(INSTALL ${SOURCE_PATH}/LICENCE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libharu RENAME copyright)
+
+vcpkg_copy_pdbs()
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..95071be9d 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,48 @@ 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})
+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}")
-#
-# Build libcharset
-#
-set(libname libcharset)
-set(libcharset_source_dir ${Libiconv_SOURCE_DIR}/libcharset)
+configure_file(libcharset/include/localcharset.h.build.in localcharset.h)
+configure_file(include/iconv.h.build.in iconv.h)
-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
-)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
-add_library(${libname} ${${libname}_sources})
-list(APPEND Libiconv_TARGETS ${libname})
-list(APPEND Libiconv_headers ${Libiconv_BINARY_DIR}/localcharset.h)
+add_definitions(-DLIBDIR -D_CRT_SECURE_NO_WARNINGS)
-#
-# Build libiconv
-#
-set(libname libiconv)
+add_library(libcharset libcharset/lib/localcharset.c)
+target_include_directories(libcharset PUBLIC $<INSTALL_INTERFACE:include>)
-add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+add_library(libiconv lib/iconv.c)
+target_link_libraries(libiconv PRIVATE libcharset)
+target_include_directories(libiconv PUBLIC $<INSTALL_INTERFACE:include>)
-configure_file(
- ${Libiconv_SOURCE_DIR}/include/iconv.h.build.in
- ${Libiconv_BINARY_DIR}/iconv.h
- )
-
-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)
-
-#
-# Export targets
-#
-install(TARGETS ${Libiconv_TARGETS}
+install(TARGETS libcharset libiconv EXPORT unofficial-iconv-targets
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
-install(FILES ${Libiconv_headers} DESTINATION include)
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/iconv.h
+ ${CMAKE_CURRENT_BINARY_DIR}/localcharset.h
+ DESTINATION include
+ )
+endif()
+
+install(
+ EXPORT unofficial-iconv-targets
+ FILE unofficial-iconv-config.cmake
+ NAMESPACE unofficial::iconv::
+ DESTINATION share/unofficial-iconv
+) \ No newline at end of file
diff --git a/ports/libiconv/CONTROL b/ports/libiconv/CONTROL
index c79f06bb8..852156dc6 100644
--- a/ports/libiconv/CONTROL
+++ b/ports/libiconv/CONTROL
@@ -1,3 +1,3 @@
Source: libiconv
-Version: 1.14
+Version: 1.15-4
Description: GNU Unicode text conversion
diff --git a/ports/libiconv/portfile.cmake b/ports/libiconv/portfile.cmake
index 46bd2f9e9..f1ee147f9 100644
--- a/ports/libiconv/portfile.cmake
+++ b/ports/libiconv/portfile.cmake
@@ -1,9 +1,16 @@
+if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/unofficial-iconv)
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/unofficial-iconv-config.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/unofficial-iconv)
+ return()
+endif()
+
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,13 +26,16 @@ vcpkg_apply_patches(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-iconv TARGET_PATH share/unofficial-iconv)
+
+vcpkg_copy_pdbs()
+
# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/libiconv)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libiconv/COPYING.LIB ${CURRENT_PACKAGES_DIR}/share/libiconv/copyright)
-
-# clean out the debug include
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) \ No newline at end of file
diff --git a/ports/libiconv/unofficial-iconv-config.cmake b/ports/libiconv/unofficial-iconv-config.cmake
new file mode 100644
index 000000000..7d08ff5f5
--- /dev/null
+++ b/ports/libiconv/unofficial-iconv-config.cmake
@@ -0,0 +1,6 @@
+add_library(unofficial::iconv::libcharset INTERFACE IMPORTED)
+add_library(unofficial::iconv::libiconv INTERFACE IMPORTED)
+if(APPLE)
+ set_property(TARGET unofficial::iconv::libcharset PROPERTY INTERFACE_LINK_LIBRARIES "charset;unofficial::iconv::libiconv")
+ set_property(TARGET unofficial::iconv::libiconv PROPERTY INTERFACE_LINK_LIBRARIES "iconv")
+endif() \ No newline at end of file
diff --git a/ports/libidn2/CMakeLists.txt b/ports/libidn2/CMakeLists.txt
new file mode 100644
index 000000000..a1eb9f9ce
--- /dev/null
+++ b/ports/libidn2/CMakeLists.txt
@@ -0,0 +1,103 @@
+cmake_minimum_required(VERSION 3.8)
+
+project(libidn2 C)
+
+find_package(unofficial-iconv REQUIRED)
+
+set(CMAKE_DEBUG_POSTFIX "d")
+
+if(MSVC)
+ add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
+ add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
+endif()
+
+add_definitions(-DIDN2_BUILDING)
+
+if(NOT BUILD_SHARED_LIBS)
+ add_definitions(-DIDN2_STATIC)
+endif()
+
+# List the source files
+set(LIB_SRC lib/bidi.c
+ lib/context.c
+ lib/data.c
+ lib/decode.c
+ lib/error.c
+ lib/free.c
+ lib/idna.c
+ lib/lookup.c
+ lib/puny_decode.c
+ lib/puny_encode.c
+ lib/register.c
+ lib/tables.c
+ lib/tr46map.c
+ lib/tr46map_data.c
+ lib/version.c
+)
+
+# List the libunistring source files
+set(UNISTR_SRC unistring/c-ctype.c
+ unistring/c-strcasecmp.c
+ unistring/c-strncasecmp.c
+ unistring/malloca.c
+ unistring/striconveh.c
+ unistring/striconveha.c
+ unistring/uniconv/u8-conv-from-enc.c
+ unistring/uniconv/u8-strconv-from-enc.c
+ unistring/uniconv/u8-strconv-from-locale.c
+ unistring/uniconv/u8-strconv-to-enc.c
+ unistring/uniconv/u8-strconv-to-locale.c
+ unistring/unistr/u32-cpy.c
+ unistring/unistr/u32-cpy-alloc.c
+ unistring/unistr/u32-mbtouc-unsafe.c
+ unistring/unistr/u32-strlen.c
+ unistring/unistr/u32-to-u8.c
+ unistring/unistr/u32-uctomb.c
+ unistring/unistr/u8-check.c
+ unistring/unistr/u8-mblen.c
+ unistring/unistr/u8-mbtouc.c
+ unistring/unistr/u8-mbtouc-aux.c
+ unistring/unistr/u8-mbtouc-unsafe.c
+ unistring/unistr/u8-mbtouc-unsafe-aux.c
+ unistring/unistr/u8-mbtoucr.c
+ unistring/unistr/u8-prev.c
+ unistring/unistr/u8-strlen.c
+ unistring/unistr/u8-to-u32.c
+ unistring/unistr/u8-uctomb.c
+ unistring/unistr/u8-uctomb-aux.c
+ unistring/uninorm/canonical-decomposition.c
+ unistring/uninorm/composition.c
+ unistring/uninorm/decompose-internal.c
+ unistring/uninorm/decomposition-table.c
+ unistring/uninorm/nfc.c
+ unistring/uninorm/nfd.c
+ unistring/uninorm/u32-normalize.c
+ unistring/unictype/bidi_of.c
+ unistring/unictype/categ_M.c
+ unistring/unictype/categ_none.c
+ unistring/unictype/categ_of.c
+ unistring/unictype/categ_test.c
+ unistring/unictype/combiningclass.c
+ unistring/unictype/joiningtype_of.c
+ unistring/unictype/scripts.c
+)
+
+# List the gnulib source files
+set(GL_SRC gl/rawmemchr.c
+ gl/strchrnul.c
+ gl/strverscmp.c
+ gl/msvc-inval.c
+ gl/msvc-nothrow.c
+)
+
+add_library(libidn2 ${LIB_SRC} ${UNISTR_SRC} ${GL_SRC})
+
+target_include_directories(libidn2 PRIVATE . ./unistring ./gl)
+target_link_libraries(libidn2 PRIVATE unofficial::iconv::libiconv unofficial::iconv::libcharset)
+
+install(TARGETS libidn2
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
+install(FILES lib/idn2.h DESTINATION include)
diff --git a/ports/libidn2/CONTROL b/ports/libidn2/CONTROL
new file mode 100644
index 000000000..46e81c7bf
--- /dev/null
+++ b/ports/libidn2/CONTROL
@@ -0,0 +1,4 @@
+Source: libidn2
+Version: 2.0.4
+Build-Depends: libiconv
+Description: GNU Libidn is an implementation of the Stringprep, Punycode and IDNA 2003 specifications. Libidn's purpose is to encode and decode internationalized domain names.
diff --git a/ports/libidn2/config.h b/ports/libidn2/config.h
new file mode 100644
index 000000000..9e61bc8f2
--- /dev/null
+++ b/ports/libidn2/config.h
@@ -0,0 +1,995 @@
+/* config.h. Generated from config.h.in by configure. */
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to the number of bits in type 'ptrdiff_t'. */
+/* #undef BITSIZEOF_PTRDIFF_T */
+
+/* Define to the number of bits in type 'sig_atomic_t'. */
+/* #undef BITSIZEOF_SIG_ATOMIC_T */
+
+/* Define to the number of bits in type 'size_t'. */
+/* #undef BITSIZEOF_SIZE_T */
+
+/* Define to the number of bits in type 'wchar_t'. */
+/* #undef BITSIZEOF_WCHAR_T */
+
+/* Define to the number of bits in type 'wint_t'. */
+/* #undef BITSIZEOF_WINT_T */
+
+/* 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 1 if // is a file system root distinct from /. */
+/* #undef DOUBLE_SLASH_IS_DISTINCT_ROOT */
+
+/* Define to 1 if translation of program messages to the user's native
+ language is requested. */
+/* #undef ENABLE_NLS */
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module fscanf shall be considered present. */
+#define GNULIB_FSCANF 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module msvc-nothrow shall be considered present. */
+#define GNULIB_MSVC_NOTHROW 1
+
+/* Define to 1 if printf and friends should be labeled with attribute
+ "__gnu_printf__" instead of "__printf__" */
+#define GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module scanf shall be considered present. */
+#define GNULIB_SCANF 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module strerror shall be considered present. */
+#define GNULIB_STRERROR 1
+
+/* Define to 1 when the gnulib module getdelim should be tested. */
+/* #undef GNULIB_TEST_GETDELIM */
+
+/* Define to 1 when the gnulib module getline should be tested. */
+/* #undef GNULIB_TEST_GETLINE */
+
+/* Define to 1 when the gnulib module malloc-posix should be tested. */
+/* #undef GNULIB_TEST_MALLOC_POSIX */
+
+/* Define to 1 when the gnulib module rawmemchr should be tested. */
+/* #undef GNULIB_TEST_RAWMEMCHR */
+
+/* Define to 1 when the gnulib module strchrnul should be tested. */
+/* #undef GNULIB_TEST_STRCHRNUL */
+
+/* Define to 1 when the gnulib module strerror should be tested. */
+/* #undef GNULIB_TEST_STRERROR */
+
+/* Define to 1 when the gnulib module strverscmp should be tested. */
+/* #undef GNULIB_TEST_STRVERSCMP */
+
+/* Define to 1 when the gnulib module uninorm/u32-normalize should be tested.
+ */
+/* #undef GNULIB_TEST_UNINORM_U32_NORMALIZE */
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module unistr/u32-mbtouc-unsafe shall be considered
+ present. */
+#define GNULIB_UNISTR_U32_MBTOUC_UNSAFE 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module unistr/u32-uctomb shall be considered present. */
+#define GNULIB_UNISTR_U32_UCTOMB 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module unistr/u8-mbtouc shall be considered present. */
+#define GNULIB_UNISTR_U8_MBTOUC 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module unistr/u8-mbtoucr shall be considered present. */
+#define GNULIB_UNISTR_U8_MBTOUCR 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module unistr/u8-mbtouc-unsafe shall be considered
+ present. */
+#define GNULIB_UNISTR_U8_MBTOUC_UNSAFE 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module unistr/u8-uctomb shall be considered present. */
+#define GNULIB_UNISTR_U8_UCTOMB 1
+
+/* Define to 1 if you have 'alloca' after including <alloca.h>, a header that
+ may be supplied by this distribution. */
+#define HAVE_ALLOCA 1
+
+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+ */
+/* #undef HAVE_ALLOCA_H */
+
+/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
+ CoreFoundation framework. */
+/* #undef HAVE_CFLOCALECOPYCURRENT */
+
+/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
+ the CoreFoundation framework. */
+/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
+
+/* Define if the GNU dcgettext() function is already present or preinstalled.
+ */
+#define HAVE_DCGETTEXT 1
+
+/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
+ don't. */
+#define HAVE_DECL_GETC_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `getdelim', and to 0 if you
+ don't. */
+#define HAVE_DECL_GETDELIM 0
+
+/* Define to 1 if you have the declaration of `getline', and to 0 if you
+ don't. */
+#define HAVE_DECL_GETLINE 0
+
+/* Define to 1 if you have the declaration of `program_invocation_name', and
+ to 0 if you don't. */
+#define HAVE_DECL_PROGRAM_INVOCATION_NAME 0
+
+/* Define to 1 if you have the declaration of `program_invocation_short_name',
+ and to 0 if you don't. */
+#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 0
+
+/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
+ don't. */
+#define HAVE_DECL_STRERROR_R 0
+
+/* Define to 1 if you have the declaration of `__argv', and to 0 if you don't.
+ */
+#define HAVE_DECL___ARGV 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+/* #undef HAVE_DLFCN_H */
+
+/* Define to 1 if you have the `flockfile' function. */
+/* #undef HAVE_FLOCKFILE */
+
+/* Define to 1 if you have the `funlockfile' function. */
+/* #undef HAVE_FUNLOCKFILE */
+
+/* Define to 1 if you have the 'getdelim' function. */
+/* #undef HAVE_GETDELIM */
+
+/* Define to 1 if you have the 'getexecname' function. */
+/* #undef HAVE_GETEXECNAME */
+
+/* Define to 1 if you have the 'getprogname' function. */
+/* #undef HAVE_GETPROGNAME */
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#define HAVE_GETTEXT 1
+
+/* Define if you have the iconv() function and it works. */
+#define HAVE_ICONV 1
+
+/* Define to 1 if you have the <iconv.h> header file. */
+#define HAVE_ICONV_H 1
+
+/* Define to 1 if the compiler supports one of the keywords 'inline',
+ '__inline__', '__inline' and effectively inlines functions marked as such.
+ */
+#define HAVE_INLINE 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+/* #undef HAVE_LANGINFO_CODESET */
+
+/* Define if you have the libunistring library. */
+/* #undef HAVE_LIBUNISTRING */
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if the system has the type 'long long int'. */
+#define HAVE_LONG_LONG_INT 1
+
+/* Define if the 'malloc' function is POSIX compliant. */
+/* #undef HAVE_MALLOC_POSIX */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 on MSVC platforms that have the "invalid parameter handler"
+ concept. */
+#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1
+
+/* Define to 1 if you have the `rawmemchr' function. */
+/* #undef HAVE_RAWMEMCHR */
+
+/* Define to 1 if atoll is declared even after undefining macros. */
+#define HAVE_RAW_DECL_ATOLL 1
+
+/* Define to 1 if canonicalize_file_name is declared even after undefining
+ macros. */
+/* #undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME */
+
+/* Define to 1 if chdir is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_CHDIR */
+
+/* Define to 1 if chown is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_CHOWN */
+
+/* Define to 1 if dprintf is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_DPRINTF */
+
+/* Define to 1 if dup is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_DUP */
+
+/* Define to 1 if dup2 is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_DUP2 */
+
+/* Define to 1 if dup3 is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_DUP3 */
+
+/* Define to 1 if endusershell is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_ENDUSERSHELL */
+
+/* Define to 1 if environ is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_ENVIRON */
+
+/* Define to 1 if euidaccess is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_EUIDACCESS */
+
+/* Define to 1 if faccessat is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_FACCESSAT */
+
+/* Define to 1 if fchdir is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_FCHDIR */
+
+/* Define to 1 if fchownat is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_FCHOWNAT */
+
+/* Define to 1 if fdatasync is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_FDATASYNC */
+
+/* Define to 1 if ffsl is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_FFSL */
+
+/* Define to 1 if ffsll is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_FFSLL */
+
+/* Define to 1 if fpurge is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_FPURGE */
+
+/* Define to 1 if fseeko is declared even after undefining macros. */
+#define HAVE_RAW_DECL_FSEEKO 1
+
+/* Define to 1 if fsync is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_FSYNC */
+
+/* Define to 1 if ftello is declared even after undefining macros. */
+#define HAVE_RAW_DECL_FTELLO 1
+
+/* Define to 1 if ftruncate is declared even after undefining macros. */
+#define HAVE_RAW_DECL_FTRUNCATE 1
+
+/* Define to 1 if getcwd is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETCWD */
+
+/* Define to 1 if getdelim is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETDELIM */
+
+/* Define to 1 if getdomainname is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETDOMAINNAME */
+
+/* Define to 1 if getdtablesize is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETDTABLESIZE */
+
+/* Define to 1 if getgroups is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETGROUPS */
+
+/* Define to 1 if gethostname is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETHOSTNAME */
+
+/* Define to 1 if getline is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETLINE */
+
+/* Define to 1 if getloadavg is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETLOADAVG */
+
+/* Define to 1 if getlogin is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETLOGIN */
+
+/* Define to 1 if getlogin_r is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETLOGIN_R */
+
+/* Define to 1 if getpagesize is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETPAGESIZE */
+
+/* Define to 1 if gets is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETS */
+
+/* Define to 1 if getsubopt is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETSUBOPT */
+
+/* Define to 1 if getusershell is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GETUSERSHELL */
+
+/* Define to 1 if grantpt is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GRANTPT */
+
+/* Define to 1 if group_member is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_GROUP_MEMBER */
+
+/* Define to 1 if initstate is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_INITSTATE */
+
+/* Define to 1 if initstate_r is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_INITSTATE_R */
+
+/* Define to 1 if isatty is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_ISATTY */
+
+/* Define to 1 if lchown is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_LCHOWN */
+
+/* Define to 1 if link is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_LINK */
+
+/* Define to 1 if linkat is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_LINKAT */
+
+/* Define to 1 if lseek is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_LSEEK */
+
+/* Define to 1 if memmem is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_MEMMEM */
+
+/* Define to 1 if mempcpy is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_MEMPCPY */
+
+/* Define to 1 if memrchr is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_MEMRCHR */
+
+/* Define to 1 if mkdtemp is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_MKDTEMP */
+
+/* Define to 1 if mkostemp is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_MKOSTEMP */
+
+/* Define to 1 if mkostemps is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_MKOSTEMPS */
+
+/* Define to 1 if mkstemp is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_MKSTEMP */
+
+/* Define to 1 if mkstemps is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_MKSTEMPS */
+
+/* Define to 1 if pclose is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_PCLOSE */
+
+/* Define to 1 if pipe is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_PIPE */
+
+/* Define to 1 if pipe2 is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_PIPE2 */
+
+/* Define to 1 if popen is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_POPEN */
+
+/* Define to 1 if posix_openpt is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_POSIX_OPENPT */
+
+/* Define to 1 if pread is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_PREAD */
+
+/* Define to 1 if ptsname is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_PTSNAME */
+
+/* Define to 1 if ptsname_r is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_PTSNAME_R */
+
+/* Define to 1 if pwrite is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_PWRITE */
+
+/* Define to 1 if qsort_r is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_QSORT_R */
+
+/* Define to 1 if random is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_RANDOM */
+
+/* Define to 1 if random_r is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_RANDOM_R */
+
+/* Define to 1 if rawmemchr is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_RAWMEMCHR */
+
+/* Define to 1 if readlink is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_READLINK */
+
+/* Define to 1 if readlinkat is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_READLINKAT */
+
+/* Define to 1 if realpath is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_REALPATH */
+
+/* Define to 1 if renameat is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_RENAMEAT */
+
+/* Define to 1 if rmdir is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_RMDIR */
+
+/* Define to 1 if rpmatch is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_RPMATCH */
+
+/* Define to 1 if secure_getenv is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_SECURE_GETENV */
+
+/* Define to 1 if setenv is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_SETENV */
+
+/* Define to 1 if sethostname is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_SETHOSTNAME */
+
+/* Define to 1 if setstate is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_SETSTATE */
+
+/* Define to 1 if setstate_r is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_SETSTATE_R */
+
+/* Define to 1 if setusershell is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_SETUSERSHELL */
+
+/* Define to 1 if sleep is declared even after undefining macros. */
+#define HAVE_RAW_DECL_SLEEP 1
+
+/* Define to 1 if snprintf is declared even after undefining macros. */
+#define HAVE_RAW_DECL_SNPRINTF 1
+
+/* Define to 1 if srandom is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_SRANDOM */
+
+/* Define to 1 if srandom_r is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_SRANDOM_R */
+
+/* Define to 1 if stpcpy is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_STPCPY */
+
+/* Define to 1 if stpncpy is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_STPNCPY */
+
+/* Define to 1 if strcasestr is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_STRCASESTR */
+
+/* Define to 1 if strchrnul is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_STRCHRNUL */
+
+/* Define to 1 if strdup is declared even after undefining macros. */
+#define HAVE_RAW_DECL_STRDUP 1
+
+/* Define to 1 if strerror_r is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_STRERROR_R */
+
+/* Define to 1 if strncat is declared even after undefining macros. */
+#define HAVE_RAW_DECL_STRNCAT 1
+
+/* Define to 1 if strndup is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_STRNDUP */
+
+/* Define to 1 if strnlen is declared even after undefining macros. */
+#define HAVE_RAW_DECL_STRNLEN 1
+
+/* Define to 1 if strpbrk is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_STRPBRK */
+
+/* Define to 1 if strsep is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_STRSEP */
+
+/* Define to 1 if strsignal is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_STRSIGNAL */
+
+/* Define to 1 if strtod is declared even after undefining macros. */
+#define HAVE_RAW_DECL_STRTOD 1
+
+/* Define to 1 if strtok_r is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_STRTOK_R */
+
+/* Define to 1 if strtoll is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_STRTOLL */
+
+/* Define to 1 if strtoull is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_STRTOULL */
+
+/* Define to 1 if strverscmp is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_STRVERSCMP */
+
+/* Define to 1 if symlink is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_SYMLINK */
+
+/* Define to 1 if symlinkat is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_SYMLINKAT */
+
+/* Define to 1 if tmpfile is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_TMPFILE */
+
+/* Define to 1 if truncate is declared even after undefining macros. */
+#define HAVE_RAW_DECL_TRUNCATE 1
+
+/* Define to 1 if ttyname_r is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_TTYNAME_R */
+
+/* Define to 1 if unlink is declared even after undefining macros. */
+#define HAVE_RAW_DECL_UNLINK 1
+
+/* Define to 1 if unlinkat is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_UNLINKAT */
+
+/* Define to 1 if unlockpt is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_UNLOCKPT */
+
+/* Define to 1 if unsetenv is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_UNSETENV */
+
+/* Define to 1 if usleep is declared even after undefining macros. */
+#define HAVE_RAW_DECL_USLEEP 1
+
+/* Define to 1 if vdprintf is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_VDPRINTF */
+
+/* Define to 1 if vsnprintf is declared even after undefining macros. */
+#define HAVE_RAW_DECL_VSNPRINTF 1
+
+/* Define to 1 if _Exit is declared even after undefining macros. */
+#define HAVE_RAW_DECL__EXIT 1
+
+/* Define to 1 if 'sig_atomic_t' is a signed integer type. */
+/* #undef HAVE_SIGNED_SIG_ATOMIC_T */
+
+/* Define to 1 if 'wchar_t' is a signed integer type. */
+/* #undef HAVE_SIGNED_WCHAR_T */
+
+/* Define to 1 if 'wint_t' is a signed integer type. */
+/* #undef HAVE_SIGNED_WINT_T */
+
+/* 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 `strchrnul' function. */
+/* #undef HAVE_STRCHRNUL */
+
+/* Define to 1 if you have the `strerror_r' function. */
+/* #undef HAVE_STRERROR_R */
+
+/* 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 `strverscmp' function. */
+/* #undef HAVE_STRVERSCMP */
+
+/* Define to 1 if you have the 'symlink' function. */
+/* #undef HAVE_SYMLINK */
+
+/* Define to 1 if you have the <sys/bitypes.h> header file. */
+/* #undef HAVE_SYS_BITYPES_H */
+
+/* Define to 1 if you have the <sys/inttypes.h> header file. */
+/* #undef HAVE_SYS_INTTYPES_H */
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+/* #undef HAVE_SYS_SOCKET_H */
+
+/* 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/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+/* #undef HAVE_UNISTD_H */
+
+/* Define to 1 if the system has the type 'unsigned long long int'. */
+#define HAVE_UNSIGNED_LONG_LONG_INT 1
+
+/* Define if you have a global __progname variable */
+/* #undef HAVE_VAR___PROGNAME */
+
+/* Define to 1 or 0, depending whether the compiler supports simple visibility
+ declarations. */
+/* #undef HAVE_VISIBILITY */
+
+/* Define to 1 if you have the <wchar.h> header file. */
+#define HAVE_WCHAR_H 1
+
+/* Define if you have the 'wchar_t' type. */
+#define HAVE_WCHAR_T 1
+
+/* Define to 1 if you have the <winsock2.h> header file. */
+#define HAVE_WINSOCK2_H 1
+
+/* Define if you have the 'wint_t' type. */
+#define HAVE_WINT_T 1
+
+/* Define to 1 if O_NOATIME works. */
+#define HAVE_WORKING_O_NOATIME 0
+
+/* Define to 1 if O_NOFOLLOW works. */
+#define HAVE_WORKING_O_NOFOLLOW 0
+
+/* Define to 1 if the system has the type `_Bool'. */
+#define HAVE__BOOL 1
+
+/* Define to 1 if you have the '_set_invalid_parameter_handler' function. */
+#define HAVE__SET_INVALID_PARAMETER_HANDLER 1
+
+/* Define as const if the declaration of iconv() needs const. */
+#define ICONV_CONST
+
+/* Define to a symbolic name denoting the flavor of iconv_open()
+ implementation. */
+/* #undef ICONV_FLAVOR */
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
+/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */
+#define MALLOC_0_IS_NONNULL 1
+
+/* Use GNU style printf and scanf. */
+#ifndef __USE_MINGW_ANSI_STDIO
+# define __USE_MINGW_ANSI_STDIO 1
+#endif
+
+
+/* Name of package */
+#define PACKAGE "libidn2"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "help-libidn@gnu.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "libidn2"
+
+/* String identifying the packager of this software */
+/* #undef PACKAGE_PACKAGER */
+
+/* Packager info for bug reports (URL/e-mail/...) */
+/* #undef PACKAGE_PACKAGER_BUG_REPORTS */
+
+/* Packager-specific version information */
+/* #undef PACKAGE_PACKAGER_VERSION */
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "libidn2 2.0.4"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "libidn2"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL "https://www.gnu.org/software/libidn/#libidn2"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "2.0.4"
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+ 'ptrdiff_t'. */
+/* #undef PTRDIFF_T_SUFFIX */
+
+/* Define to 1 if strerror(0) does not return a message implying success. */
+/* #undef REPLACE_STRERROR_0 */
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+ 'sig_atomic_t'. */
+/* #undef SIG_ATOMIC_T_SUFFIX */
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+ 'size_t'. */
+/* #undef SIZE_T_SUFFIX */
+
+/* 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 strerror_r returns char *. */
+/* #undef STRERROR_R_CHAR_P */
+
+/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable general extensions on macOS. */
+#ifndef _DARWIN_C_SOURCE
+# define _DARWIN_C_SOURCE 1
+#endif
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable threading extensions on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */
+#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */
+#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+# define __STDC_WANT_IEC_60559_BFP_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */
+#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
+# define __STDC_WANT_IEC_60559_DFP_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
+#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */
+#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
+# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */
+#ifndef __STDC_WANT_LIB_EXT2__
+# define __STDC_WANT_LIB_EXT2__ 1
+#endif
+/* Enable extensions specified by ISO/IEC 24747:2009. */
+#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
+# define __STDC_WANT_MATH_SPEC_FUNCS__ 1
+#endif
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable X/Open extensions if necessary. HP-UX 11.11 defines
+ mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of
+ whether compiling with -Ae or -D_HPUX_SOURCE=1. */
+#ifndef _XOPEN_SOURCE
+/* # undef _XOPEN_SOURCE */
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+
+
+/* Version number of package */
+#define VERSION "2.0.4"
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+ 'wchar_t'. */
+/* #undef WCHAR_T_SUFFIX */
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+ 'wint_t'. */
+/* #undef WINT_T_SUFFIX */
+
+/* Define to 1 if on MINIX. */
+/* #undef _MINIX */
+
+/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */
+/* #undef _NETBSD_SOURCE */
+
+/* The _Noreturn keyword of C11. */
+#if ! (defined _Noreturn \
+ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+ || 0x5110 <= __SUNPRO_C)
+# define _Noreturn __attribute__ ((__noreturn__))
+# elif defined _MSC_VER && 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn
+# endif
+#endif
+
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+ this defined. */
+/* #undef _POSIX_1_SOURCE */
+
+/* Define to 1 if you need to in order for 'stat' and other things to work. */
+/* #undef _POSIX_SOURCE */
+
+/* For standard stat data types on VMS. */
+#define _USE_STD_STAT 1
+
+/* Define to 1 if the system <stdint.h> predates C++11. */
+/* #undef __STDC_CONSTANT_MACROS */
+
+/* Define to 1 if the system <stdint.h> predates C++11. */
+/* #undef __STDC_LIMIT_MACROS */
+
+/* Please see the Gnulib manual for how to use these macros.
+
+ Suppress extern inline with HP-UX cc, as it appears to be broken; see
+ <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
+
+ Suppress extern inline with Sun C in standards-conformance mode, as it
+ mishandles inline functions that call each other. E.g., for 'inline void f
+ (void) { } inline void g (void) { f (); }', c99 incorrectly complains
+ 'reference to static identifier "f" in extern inline function'.
+ This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
+
+ Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
+ on configurations that mistakenly use 'static inline' to implement
+ functions or macros in standard C headers like <ctype.h>. For example,
+ if isdigit is mistakenly implemented via a static inline function,
+ a program containing an extern inline function that calls isdigit
+ may not work since the C standard prohibits extern inline functions
+ from calling static functions. This bug is known to occur on:
+
+ OS X 10.8 and earlier; see:
+ http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html
+
+ DragonFly; see
+ http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log
+
+ FreeBSD; see:
+ http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html
+
+ OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
+ for clang but remains for g++; see <http://trac.macports.org/ticket/41033>.
+ Assume DragonFly and FreeBSD will be similar. */
+#if (((defined __APPLE__ && defined __MACH__) \
+ || defined __DragonFly__ || defined __FreeBSD__) \
+ && (defined __header_inline \
+ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
+ && ! defined __clang__) \
+ : ((! defined _DONT_USE_CTYPE_INLINE_ \
+ && (defined __GNUC__ || defined __cplusplus)) \
+ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
+ && defined __GNUC__ && ! defined __cplusplus))))
+# define _GL_EXTERN_INLINE_STDHEADER_BUG
+#endif
+#if ((__GNUC__ \
+ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+ : (199901L <= __STDC_VERSION__ \
+ && !defined __HP_cc \
+ && !defined __PGI \
+ && !(defined __SUNPRO_C && __STDC__))) \
+ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# define _GL_INLINE inline
+# define _GL_EXTERN_INLINE extern inline
+# define _GL_EXTERN_INLINE_IN_USE
+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
+ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */
+# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
+# else
+# define _GL_INLINE extern inline
+# endif
+# define _GL_EXTERN_INLINE extern
+# define _GL_EXTERN_INLINE_IN_USE
+#else
+# define _GL_INLINE static _GL_UNUSED
+# define _GL_EXTERN_INLINE static _GL_UNUSED
+#endif
+
+/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
+ suppress bogus "no previous prototype for 'FOO'"
+ and "no previous declaration for 'FOO'" diagnostics,
+ when FOO is an inline function in the header; see
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */
+#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
+# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
+# define _GL_INLINE_HEADER_CONST_PRAGMA
+# else
+# define _GL_INLINE_HEADER_CONST_PRAGMA \
+ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
+# endif
+# define _GL_INLINE_HEADER_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
+ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
+ _GL_INLINE_HEADER_CONST_PRAGMA
+# define _GL_INLINE_HEADER_END \
+ _Pragma ("GCC diagnostic pop")
+#else
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
+#endif
+
+/* A replacement for va_copy, if needed. */
+#define gl_va_copy(a,b) ((a) = (b))
+
+/* 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
+/* #undef inline */
+#endif
+
+/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
+ the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
+ earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
+ __APPLE__ && __MACH__ test for Mac OS X.
+ __APPLE_CC__ tests for the Apple compiler and its version.
+ __STDC_VERSION__ tests for the C99 mode. */
+#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
+# define __GNUC_STDC_INLINE__ 1
+#endif
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef mode_t */
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef pid_t */
+
+/* Define to the equivalent of the C99 'restrict' keyword, or to
+ nothing if this is not supported. Do not define if restrict is
+ supported directly. */
+#define restrict __restrict
+/* Work around a bug in Sun C++: it does not support _Restrict or
+ __restrict__, even though the corresponding Sun C compiler ends up with
+ "#define restrict _Restrict" or "#define restrict __restrict__" in the
+ previous line. Perhaps some future version of Sun C++ will work with
+ restrict; if so, hopefully it defines __RESTRICT like Sun C does. */
+#if defined __SUNPRO_CC && !defined __RESTRICT
+# define _Restrict
+# define __restrict__
+#endif
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define as a signed type of the same size as size_t. */
+#define ssize_t intptr_t
+
+/* Define as a marker that can be attached to declarations that might not
+ be used. This helps to reduce warnings, such as from
+ GCC -Wunused-parameter. */
+#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+# define _GL_UNUSED __attribute__ ((__unused__))
+#else
+# define _GL_UNUSED
+#endif
+/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name
+ is a misnomer outside of parameter lists. */
+#define _UNUSED_PARAMETER_ _GL_UNUSED
+
+/* gcc supports the "unused" attribute on possibly unused labels, and
+ g++ has since version 4.5. Note to support C++ as well as C,
+ _GL_UNUSED_LABEL should be used with a trailing ; */
+#if !defined __cplusplus || __GNUC__ > 4 \
+ || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+# define _GL_UNUSED_LABEL _GL_UNUSED
+#else
+# define _GL_UNUSED_LABEL
+#endif
+
+/* The __pure__ attribute was added in gcc 2.96. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* The __const__ attribute was added in gcc 2.95. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST /* empty */
+#endif
+
+
+/* Define as a macro for copying va_list variables. */
+/* #undef va_copy */
diff --git a/ports/libidn2/portfile.cmake b/ports/libidn2/portfile.cmake
new file mode 100644
index 000000000..98892e2c0
--- /dev/null
+++ b/ports/libidn2/portfile.cmake
@@ -0,0 +1,49 @@
+include(vcpkg_common_functions)
+
+set(IDN2_VERSION 2.0.4)
+set(IDN2_FILENAME libidn2-${IDN2_VERSION}.tar.gz)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libidn2-${IDN2_VERSION})
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://ftp.gnu.org/gnu/libidn/${IDN2_FILENAME}"
+ FILENAME "${IDN2_FILENAME}"
+ SHA512 1e51bd4b8f8907531576291f1c2a8865d17429b4105418b4c98754eb982cd1cbb3adbeab4ec0c1c561d2dba11d876c7c09e5dc5b315c55a2c24986d7a2a3b4d2
+)
+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}/string.h DESTINATION ${SOURCE_PATH}/gl)
+
+function(simple_copy_template_header FILE_PATH BASE_NAME)
+ if(NOT EXISTS ${FILE_PATH}/${BASE_NAME}.h)
+ if(EXISTS ${FILE_PATH}/${BASE_NAME}.in.h)
+ configure_file(${FILE_PATH}/${BASE_NAME}.in.h ${FILE_PATH}/${BASE_NAME}.h)
+ endif()
+ endif()
+endfunction()
+
+# There seems to be no difference between source and destination files after 'configure'
+# apart from auto-generated notification at the top. So why not just do a simple copy.
+simple_copy_template_header(${SOURCE_PATH}/unistring uniconv)
+simple_copy_template_header(${SOURCE_PATH}/unistring unictype)
+simple_copy_template_header(${SOURCE_PATH}/unistring uninorm)
+simple_copy_template_header(${SOURCE_PATH}/unistring unistr)
+simple_copy_template_header(${SOURCE_PATH}/unistring unitypes)
+simple_copy_template_header(${SOURCE_PATH}/unistring alloca)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# License and man
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libidn2 RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/doc/libidn2.pdf DESTINATION ${CURRENT_PACKAGES_DIR}/share/libidn2)
+
+vcpkg_copy_pdbs()
diff --git a/ports/libidn2/string.h b/ports/libidn2/string.h
new file mode 100644
index 000000000..7ed5f5fdc
--- /dev/null
+++ b/ports/libidn2/string.h
@@ -0,0 +1,10 @@
+#ifndef _GL_STRING_H
+#define _GL_STRING_H
+
+char * strchrnul (const char *s, int c_in);
+int strverscmp (const char *s1, const char *s2);
+void * rawmemchr (const void *s, int c_in);
+
+#include <../ucrt/string.h>
+
+#endif /* _GL_STRING_H */
diff --git a/ports/libjpeg-turbo/CONTROL b/ports/libjpeg-turbo/CONTROL
index d9df1c43d..fa72d68b0 100644
--- a/ports/libjpeg-turbo/CONTROL
+++ b/ports/libjpeg-turbo/CONTROL
@@ -1,3 +1,3 @@
Source: libjpeg-turbo
-Version: 1.5.1-1
+Version: 1.5.3-1
Description: libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2, NEON, AltiVec) to accelerate baseline JPEG compression and decompression on x86, x86-64, ARM, and PowerPC systems.
diff --git a/ports/libjpeg-turbo/add-options-for-exes-docs-headers.patch b/ports/libjpeg-turbo/add-options-for-exes-docs-headers.patch
index 5be2594c7..bd10a21bb 100644
--- a/ports/libjpeg-turbo/add-options-for-exes-docs-headers.patch
+++ b/ports/libjpeg-turbo/add-options-for-exes-docs-headers.patch
@@ -1,8 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index bfb7661..5373cd7 100644
+index 131b437..c29e604 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -55,6 +55,9 @@ option(WITH_JAVA "Build Java wrapper for the TurboJPEG library" FALSE)
+@@ -62,6 +62,9 @@ option(WITH_JAVA "Build Java wrapper for the TurboJPEG library" FALSE)
option(WITH_12BIT "Encode/decode JPEG images with 12-bit samples (implies WITH_SIMD=0 WITH_TURBOJPEG=0 WITH_ARITH_ENC=0 WITH_ARITH_DEC=0)" FALSE)
option(ENABLE_STATIC "Build static libraries" TRUE)
option(ENABLE_SHARED "Build shared libraries" TRUE)
@@ -12,7 +12,7 @@ index bfb7661..5373cd7 100644
if(WITH_12BIT)
set(WITH_SIMD FALSE)
-@@ -264,14 +267,16 @@ if(WITH_TURBOJPEG)
+@@ -279,14 +282,16 @@ if(WITH_TURBOJPEG)
target_link_libraries(turbojpeg jpeg-static)
set_target_properties(turbojpeg PROPERTIES LINK_INTERFACE_LIBRARIES "")
@@ -36,7 +36,7 @@ index bfb7661..5373cd7 100644
endif()
if(ENABLE_STATIC)
-@@ -284,14 +289,16 @@ if(WITH_TURBOJPEG)
+@@ -299,14 +304,16 @@ if(WITH_TURBOJPEG)
add_dependencies(turbojpeg-static simd)
endif()
@@ -60,7 +60,7 @@ index bfb7661..5373cd7 100644
endif()
endif()
-@@ -303,7 +310,7 @@ else()
+@@ -318,7 +325,7 @@ else()
set(DJPEG_BMP_SOURCES wrbmp.c wrtarga.c)
endif()
@@ -69,7 +69,7 @@ index bfb7661..5373cd7 100644
add_executable(cjpeg-static cjpeg.c cdjpeg.c rdgif.c rdppm.c rdswitch.c
${CJPEG_BMP_SOURCES})
set_property(TARGET cjpeg-static PROPERTY COMPILE_FLAGS ${COMPILE_FLAGS})
-@@ -319,10 +326,11 @@ if(ENABLE_STATIC)
+@@ -334,10 +341,11 @@ if(ENABLE_STATIC)
set_property(TARGET jpegtran-static PROPERTY COMPILE_FLAGS "-DUSE_SETMODE")
endif()
@@ -84,7 +84,7 @@ index bfb7661..5373cd7 100644
#
# Tests
-@@ -880,24 +888,30 @@ add_custom_target(installer
+@@ -917,24 +925,30 @@ add_custom_target(installer
if(WITH_TURBOJPEG)
if(ENABLE_SHARED)
@@ -119,7 +119,7 @@ index bfb7661..5373cd7 100644
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/cjpeg-static.exe
DESTINATION bin RENAME cjpeg.exe)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/djpeg-static.exe
-@@ -907,14 +921,20 @@ if(ENABLE_STATIC)
+@@ -944,17 +958,23 @@ if(ENABLE_STATIC)
endif()
endif()
@@ -149,6 +149,10 @@ index bfb7661..5373cd7 100644
+ ${CMAKE_SOURCE_DIR}/jmorecfg.h ${CMAKE_SOURCE_DIR}/jpeglib.h
+ DESTINATION include)
+endif()
+
+ configure_file("${CMAKE_SOURCE_DIR}/cmakescripts/cmake_uninstall.cmake.in"
+ "cmake_uninstall.cmake" IMMEDIATE @ONLY)
+
diff --git a/sharedlib/CMakeLists.txt b/sharedlib/CMakeLists.txt
index d423cce..9da7c6e 100644
--- a/sharedlib/CMakeLists.txt
diff --git a/ports/libjpeg-turbo/linux-cmake.patch b/ports/libjpeg-turbo/linux-cmake.patch
new file mode 100644
index 000000000..48a04279f
--- /dev/null
+++ b/ports/libjpeg-turbo/linux-cmake.patch
@@ -0,0 +1,26 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c29e604..6e467be 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -29,10 +29,6 @@ pad_number(VERSION_MINOR 3)
+ pad_number(VERSION_REVISION 3)
+ set(LIBJPEG_TURBO_VERSION_NUMBER ${VERSION_MAJOR}${VERSION_MINOR}${VERSION_REVISION})
+
+-if(NOT WIN32)
+- message(FATAL_ERROR "Platform not supported by this build system. Use autotools instead.")
+-endif()
+-
+ string(TIMESTAMP BUILD "%Y%m%d")
+
+ # This does nothing except when using MinGW. CMAKE_BUILD_TYPE has no meaning
+@@ -166,8 +162,10 @@ endif()
+
+ if(64BIT)
+ message(STATUS "64-bit build")
++ add_compile_options(-DSIZEOF_SIZE_T=8)
+ else()
+ message(STATUS "32-bit build")
++ add_compile_options(-DSIZEOF_SIZE_T=4)
+ endif()
+
+ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
diff --git a/ports/libjpeg-turbo/portfile.cmake b/ports/libjpeg-turbo/portfile.cmake
index 995e8e0ee..7f6bc4973 100644
--- a/ports/libjpeg-turbo/portfile.cmake
+++ b/ports/libjpeg-turbo/portfile.cmake
@@ -1,55 +1,59 @@
include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libjpeg-turbo/libjpeg-turbo
+ REF 1.5.3
+ SHA512 0e7a2cd9943b610f49b562c20a5c350a50326a87bce1d39f14fe45760ed2f89a0d2d3e3f0de9f6a7714f566aabadec6b2422b592591ebb98bbad600ea411fea7
+ HEAD_REF master
+)
-set(LIBJPEGTURBO_VERSION 1.5.1)
-set(LIBJPEGTURBO_HASH "7b89f3c707daa98b0ed19ec417aab5273a1248ce7f98722a671ea80558a8eb0e73b136ce7be7c059f9f42262e682743abcab64e325f82cd4bd1531e0a4035209")
-
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libjpeg-turbo-${LIBJPEGTURBO_VERSION})
-
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/${LIBJPEGTURBO_VERSION}.zip"
- FILENAME "libjpeg-turbo-${LIBJPEGTURBO_VERSION}.zip"
- SHA512 ${LIBJPEGTURBO_HASH}
+vcpkg_download_distfile(GETENV_PATCH
+ URLS "https://github.com/libjpeg-turbo/libjpeg-turbo/commit/bd96b30b74fe166fc94218cfc64a097fafdcc05f.diff"
+ FILENAME "libjpeg-turbo-bd96b30b74fe166fc94218cfc64a097fafdcc05f.diff"
+ SHA512 4cd064521b5e4baba4adf972f9f574f6dd43a2cd3e3ad143ca2cdf0f165024406d4fd2ed094124d0c17c5370394140e82fdd892d3cdc49609acdf8f79db1758c
)
-vcpkg_extract_source_archive(${ARCHIVE})
+
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES "${CMAKE_CURRENT_LIST_DIR}/add-options-for-exes-docs-headers.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/linux-cmake.patch"
+ "${GETENV_PATCH}"
)
-vcpkg_find_acquire_program(NASM)
-get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
-set(ENV{PATH} "$ENV{PATH};${NASM_EXE_PATH}")
-
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- set(BUILD_STATIC OFF)
- set(NOT_BUILD_STATIC ON)
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" OR (VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore"))
+ set(LIBJPEGTURBO_SIMD -DWITH_SIMD=OFF)
else()
- set(BUILD_STATIC ON)
- set(NOT_BUILD_STATIC OFF)
+ set(LIBJPEGTURBO_SIMD -DWITH_SIMD=ON)
+ vcpkg_find_acquire_program(NASM)
+ get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
+ set(ENV{PATH} "$ENV{PATH};${NASM_EXE_PATH}")
endif()
-if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
- set(LIBJPEGTURBO_SIMD -DWITH_SIMD=OFF)
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(ENV{_CL_} "-DNO_GETENV -DNO_PUTENV")
endif()
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ENABLE_SHARED)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ENABLE_STATIC)
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" WITH_CRT_DLL)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
- -DENABLE_STATIC=${BUILD_STATIC}
- -DENABLE_SHARED=${NOT_BUILD_STATIC}
- -DWITH_CRT_DLL=ON
+ -DENABLE_STATIC=${ENABLE_STATIC}
+ -DENABLE_SHARED=${ENABLE_SHARED}
-DENABLE_EXECUTABLES=OFF
-DINSTALL_DOCS=OFF
+ -DWITH_CRT_DLL=${WITH_CRT_DLL}
${LIBJPEGTURBO_SIMD}
OPTIONS_DEBUG -DINSTALL_HEADERS=OFF
)
-vcpkg_build_cmake()
vcpkg_install_cmake()
# Rename libraries for static builds
-if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND EXISTS "${CURRENT_PACKAGES_DIR}/lib/jpeg-static.lib")
file(RENAME "${CURRENT_PACKAGES_DIR}/lib/jpeg-static.lib" "${CURRENT_PACKAGES_DIR}/lib/jpeg.lib")
file(RENAME "${CURRENT_PACKAGES_DIR}/lib/turbojpeg-static.lib" "${CURRENT_PACKAGES_DIR}/lib/turbojpeg.lib")
file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/jpeg-static.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/jpeg.lib")
@@ -62,3 +66,4 @@ file(COPY
)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libjpeg-turbo/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/libjpeg-turbo/copyright)
vcpkg_copy_pdbs()
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/libjpeg-turbo/usage b/ports/libjpeg-turbo/usage
new file mode 100644
index 000000000..ccd47717f
--- /dev/null
+++ b/ports/libjpeg-turbo/usage
@@ -0,0 +1,5 @@
+The package libjpeg-turbo is compatible with built-in CMake targets:
+
+ find_package(JPEG REQUIRED)
+ target_link_libraries(main PRIVATE ${JPEG_LIBRARIES})
+ target_include_directories(main PRIVATE ${JPEG_INCLUDE_DIR})
diff --git a/ports/libkml/CONTROL b/ports/libkml/CONTROL
new file mode 100644
index 000000000..b5ea568c7
--- /dev/null
+++ b/ports/libkml/CONTROL
@@ -0,0 +1,4 @@
+Source: libkml
+Version: 1.3.0-2
+Description: Reference implementation of OGC KML 2.2
+Build-Depends: zlib, expat, minizip, uriparser, boost-smart-ptr
diff --git a/ports/libkml/patch_empty_literal_on_vc.patch b/ports/libkml/patch_empty_literal_on_vc.patch
new file mode 100644
index 000000000..8a3581a05
--- /dev/null
+++ b/ports/libkml/patch_empty_literal_on_vc.patch
@@ -0,0 +1,13 @@
+diff --git a/src/kml/base/file_win32.cc b/src/kml/base/file_win32.cc
+index c46e099..28ccb36 100644
+--- a/src/kml/base/file_win32.cc
++++ b/src/kml/base/file_win32.cc
+@@ -42,7 +42,7 @@ namespace kmlbase {
+ // Internal to the win32 file class. We need a conversion from string to
+ // LPCWSTR.
+ static std::wstring Str2Wstr(const string& str) {
+- std::wstring wstr(str.length(), L'');
++ std::wstring wstr(str.length(), L' ');
+ std::copy(str.begin(), str.end(), wstr.begin());
+ return wstr;
+ }
diff --git a/ports/libkml/portfile.cmake b/ports/libkml/portfile.cmake
new file mode 100644
index 000000000..b2e846d3c
--- /dev/null
+++ b/ports/libkml/portfile.cmake
@@ -0,0 +1,28 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libkml/libkml
+ REF 1.3.0
+ SHA512 aa48158103d3af764bf98c1fb4cf3e1356b9cc6c8e79d80b96850916f0a8ccb1dac3a46427735dd0bf20647daa047d10e722ac3da2a214d4c1559bf6d5d7c853
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/patch_empty_literal_on_vc.patch"
+)
+
+file(REMOVE ${SOURCE_PATH}/cmake/External_boost.cmake)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libkml RENAME copyright)
diff --git a/ports/liblinear/CMakeLists.txt b/ports/liblinear/CMakeLists.txt
new file mode 100644
index 000000000..6e6928a91
--- /dev/null
+++ b/ports/liblinear/CMakeLists.txt
@@ -0,0 +1,47 @@
+cmake_minimum_required(VERSION 3.9)
+project(liblinear)
+
+add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
+
+add_library(blas OBJECT
+ blas/daxpy.c
+ blas/ddot.c
+ blas/dnrm2.c
+ blas/dscal.c
+)
+
+add_library(liblinear
+ linear.cpp
+ tron.cpp
+ $<TARGET_OBJECTS:blas>
+)
+target_include_directories(liblinear PRIVATE .)
+if(BUILD_SHARED_LIBS)
+ target_link_libraries(liblinear PRIVATE "-DEF:${CMAKE_CURRENT_SOURCE_DIR}/linear.def")
+endif()
+
+add_executable(train train.c $<TARGET_OBJECTS:blas>)
+target_link_libraries(train liblinear)
+
+add_executable(predict predict.c $<TARGET_OBJECTS:blas>)
+target_link_libraries(predict liblinear)
+
+install(
+ TARGETS liblinear
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_TOOLS)
+ install(
+ TARGETS train predict
+ RUNTIME DESTINATION tools/liblinear
+ )
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(
+ FILES linear.h tron.h
+ DESTINATION include/liblinear)
+endif() \ No newline at end of file
diff --git a/ports/liblinear/CONTROL b/ports/liblinear/CONTROL
new file mode 100644
index 000000000..3e83e601d
--- /dev/null
+++ b/ports/liblinear/CONTROL
@@ -0,0 +1,3 @@
+Source: liblinear
+Version: 2.20
+Description: A Library for Large Linear Classification
diff --git a/ports/liblinear/portfile.cmake b/ports/liblinear/portfile.cmake
new file mode 100644
index 000000000..4d662d0a5
--- /dev/null
+++ b/ports/liblinear/portfile.cmake
@@ -0,0 +1,26 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO cjlin1/liblinear
+ REF v220
+ SHA512 cde798b7cb221513cf2b8bbe134d6c3dce1ed26c43504d8c09dbed93b82ca47bfd271d4dd3d03384187273906ce140d4ce4418a4a8c21410015ec1631c1042c6
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+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/liblinear)
+
+file(INSTALL ${SOURCE_PATH}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/liblinear RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/liblinear)
diff --git a/ports/liblo/CONTROL b/ports/liblo/CONTROL
new file mode 100644
index 000000000..b5c4f6861
--- /dev/null
+++ b/ports/liblo/CONTROL
@@ -0,0 +1,3 @@
+Source: liblo
+Version: 0.29-1
+Description: liblo is an implementation of the Open Sound Control protocol for POSIX systems \ No newline at end of file
diff --git a/ports/liblo/portfile.cmake b/ports/liblo/portfile.cmake
new file mode 100644
index 000000000..4dae62903
--- /dev/null
+++ b/ports/liblo/portfile.cmake
@@ -0,0 +1,36 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO radarsat1/liblo
+ REF 0.29
+ SHA512 45648f2b2280e056b045dc0f08491baa7c154a983af95cf79438ac8fafd8f03a44c337a4beb0e01dce1f4d7352a03dc9088244d8db77dcdbfa6e39874dd6250f
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/cmake
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS -DTHREADING=1
+)
+
+vcpkg_install_cmake()
+
+# Install needed files into package directory
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/liblo)
+
+file(INSTALL ${CURRENT_PACKAGES_DIR}/bin/oscsend.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/liblo)
+file(INSTALL ${CURRENT_PACKAGES_DIR}/bin/oscdump.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/liblo)
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/liblo)
+
+# Remove unnecessary files
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/oscsend.exe ${CURRENT_PACKAGES_DIR}/bin/oscdump.exe)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/oscsend.exe ${CURRENT_PACKAGES_DIR}/debug/bin/oscdump.exe)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/liblo RENAME copyright)
diff --git a/ports/liblzma/CMakeLists.txt b/ports/liblzma/CMakeLists.txt
index e51b034bd..2c809a5aa 100644
--- a/ports/liblzma/CMakeLists.txt
+++ b/ports/liblzma/CMakeLists.txt
@@ -7,7 +7,59 @@ if(BUILD_SHARED_LIBS)
add_definitions(-DDLL_EXPORT)
endif()
-include_directories(windows)
+if(NOT MSVC)
+ add_definitions(-DHAVE_VISIBILITY=1)
+endif()
+
+if(WIN32)
+ include_directories(windows)
+else()
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/config.h
+ """
+#define TUKLIB_SYMBOL_PREFIX lzma_
+#define ASSUME_RAM 128
+#define HAVE_CHECK_CRC32 1
+#define HAVE_CHECK_CRC64 1
+#define HAVE_CHECK_SHA256 1
+#define HAVE_DECODERS 1
+#define HAVE_DECODER_ARM 1
+#define HAVE_DECODER_ARMTHUMB 1
+#define HAVE_DECODER_DELTA 1
+#define HAVE_DECODER_IA64 1
+#define HAVE_DECODER_LZMA1 1
+#define HAVE_DECODER_LZMA2 1
+#define HAVE_DECODER_POWERPC 1
+#define HAVE_DECODER_SPARC 1
+#define HAVE_DECODER_X86 1
+#define HAVE_ENCODERS 1
+#define HAVE_ENCODER_ARM 1
+#define HAVE_ENCODER_ARMTHUMB 1
+#define HAVE_ENCODER_DELTA 1
+#define HAVE_ENCODER_IA64 1
+#define HAVE_ENCODER_LZMA1 1
+#define HAVE_ENCODER_LZMA2 1
+#define HAVE_ENCODER_POWERPC 1
+#define HAVE_ENCODER_SPARC 1
+#define HAVE_ENCODER_X86 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_LIMITS_H 1
+#define HAVE_MF_BT2 1
+#define HAVE_MF_BT3 1
+#define HAVE_MF_BT4 1
+#define HAVE_MF_HC3 1
+#define HAVE_MF_HC4 1
+#define HAVE_STDBOOL_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRING_H 1
+#define HAVE_VISIBILITY 1
+#define MYTHREAD_POSIX 1
+#define PACKAGE_NAME \"XZ Utils\"
+#define PACKAGE_URL \"http://tukaani.org/xz/\"
+#define SIZEOF_SIZE_T (sizeof(size_t))
+""")
+endif()
include_directories(src/liblzma/common)
include_directories(src/common)
include_directories(src/liblzma/api)
diff --git a/ports/liblzma/CONTROL b/ports/liblzma/CONTROL
index 3c4cbfb2b..c29002b9c 100644
--- a/ports/liblzma/CONTROL
+++ b/ports/liblzma/CONTROL
@@ -1,3 +1,3 @@
Source: liblzma
-Version: 5.2.3-1
+Version: 5.2.3-2
Description: Compression library with an API similar to that of zlib.
diff --git a/ports/liblzma/portfile.cmake b/ports/liblzma/portfile.cmake
index 6185815f4..81c43a0f8 100644
--- a/ports/liblzma/portfile.cmake
+++ b/ports/liblzma/portfile.cmake
@@ -1,30 +1,37 @@
-
-include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/xz-5.2.3)
-vcpkg_download_distfile(ARCHIVE
- URLS "http://tukaani.org/xz/xz-5.2.3.tar.gz"
- FILENAME "xz-5.2.3.tar.gz"
- SHA512 a5eb4f707cf31579d166a6f95dbac45cf7ea181036d1632b4f123a4072f502f8d57cd6e7d0588f0bf831a07b8fc4065d26589a25c399b95ddcf5f73435163da6)
-
-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
- -DLIBLZMA_SKIP_HEADERS=ON)
-
-vcpkg_install_cmake()
-vcpkg_copy_pdbs()
-
-if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
- vcpkg_apply_patches(
- SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/auto-define-lzma-api-static.patch)
-endif()
-
-file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/liblzma)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/liblzma/COPYING ${CURRENT_PACKAGES_DIR}/share/liblzma/copyright)
+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 xz-mirror/xz
+ REF v5.2.3
+ SHA512 d126666e58c6536aa7ae6aa6aac480f421e25aa61c4b5e7adb3de7b99423275a94d583ceaf0b15d559eaf9bc9be18f381cd46e49b1f8cb238c1d715876731063
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DLIBLZMA_SKIP_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ vcpkg_apply_patches(
+ SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/auto-define-lzma-api-static.patch)
+endif()
+
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/liblzma)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/liblzma/COPYING ${CURRENT_PACKAGES_DIR}/share/liblzma/copyright)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/liblzma)
diff --git a/ports/liblzma/usage b/ports/liblzma/usage
new file mode 100644
index 000000000..6f5a281a5
--- /dev/null
+++ b/ports/liblzma/usage
@@ -0,0 +1,5 @@
+The package liblzma is compatible with built-in CMake targets:
+
+ find_package(LibLZMA REQUIRED)
+ target_include_directories(main PRIVATE ${LIBLZMA_INCLUDE_DIRS})
+ target_link_libraries(main PRIVATE ${LIBLZMA_LIBRARIES})
diff --git a/ports/libmad/CMakeLists.txt b/ports/libmad/CMakeLists.txt
index 8e15017c0..522c0fbea 100644
--- a/ports/libmad/CMakeLists.txt
+++ b/ports/libmad/CMakeLists.txt
@@ -53,5 +53,5 @@ install(
install(
FILES mad.h
- DESTINATION include/mad
+ DESTINATION include
)
diff --git a/ports/libmad/CONTROL b/ports/libmad/CONTROL
index 04cec21bf..daf25faa1 100644
--- a/ports/libmad/CONTROL
+++ b/ports/libmad/CONTROL
@@ -1,3 +1,3 @@
Source: libmad
-Version: 0.15.1
+Version: 0.15.1-1
Description: high-quality MPEG audio decoder
diff --git a/ports/libmad/portfile.cmake b/ports/libmad/portfile.cmake
index d9e20ecb5..65b926d55 100644
--- a/ports/libmad/portfile.cmake
+++ b/ports/libmad/portfile.cmake
@@ -7,6 +7,11 @@ vcpkg_download_distfile(ARCHIVE
)
vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/use_fpm_default.patch"
+)
+
#The archive only contains a Visual Studio 6.0 era DSP project file, so use a custom CMakeLists.txt
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
diff --git a/ports/libmad/use_fpm_default.patch b/ports/libmad/use_fpm_default.patch
new file mode 100644
index 000000000..f20c8265e
--- /dev/null
+++ b/ports/libmad/use_fpm_default.patch
@@ -0,0 +1,16 @@
+--- mad.h 2004-01-23 10:36:03.000000000 +0100
++++ mad.h 2017-08-12 16:03:38.060392600 +0200
+@@ -24,7 +24,7 @@
+ extern "C" {
+ # endif
+
+-# define FPM_INTEL
++# define FPM_DEFAULT
+--- msvc++/mad.h 2017-08-12 16:04:30.678146600 +0200
++++ msvc++/mad.h 2017-08-12 16:04:00.779378000 +0200
+@@ -24,7 +24,7 @@
+ extern "C" {
+ # endif
+
+-# define FPM_INTEL
++# define FPM_DEFAULT
diff --git a/ports/libmariadb/CONTROL b/ports/libmariadb/CONTROL
index 26e23810a..b9cfcbbef 100644
--- a/ports/libmariadb/CONTROL
+++ b/ports/libmariadb/CONTROL
@@ -1,3 +1,3 @@
Source: libmariadb
-Version: 2.3.2
+Version: 3.0.2
Description: MariaDB Connector/C is used to connect C/C++ applications to MariaDB and MySQL databases
diff --git a/ports/libmariadb/portfile.cmake b/ports/libmariadb/portfile.cmake
index 3dba9c7d1..4486564f6 100644
--- a/ports/libmariadb/portfile.cmake
+++ b/ports/libmariadb/portfile.cmake
@@ -1,20 +1,24 @@
-if (EXISTS "${CURRENT_INSTALLED_DIR}/include/mysql/mysql.h")
- message(FATAL_ERROR "FATAL ERROR: libmysql and libmariadb are incompatible.")
+if (EXISTS "${CURRENT_INSTALLED_DIR}/share/libmysql")
+ message(FATAL_ERROR "FATAL ERROR: libmysql and libmariadb are incompatible.")
endif()
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mariadb-connector-c-2.3.2)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/MariaDB/mariadb-connector-c/archive/v2.3.2.tar.gz"
- FILENAME "mariadb-connector-c-2.3.2.tar.gz"
- SHA512 f5574756ffce69e3dd15b7f7c14cfd0b4d69e3203ae4b383f05a110918916279ba7c0b9149d0dcb9ec93bbfc0927dfaf88bb40979ba1de710ce148d1fbe033af
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO MariaDB/mariadb-connector-c
+ REF v3.0.2
+ SHA512 a5086ff149b1ca0e1b652013475c5f3793824416a60ec35018b6dcd502bd38b50fa040271ff8d308520dadecc9601671fccf67046fcda2425f1d7c59e1c6c52f
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DWITH_UNITTEST=OFF
+ -DWITH_SSL=OFF
+ -DWITH_CURL=OFF
)
vcpkg_install_cmake()
@@ -24,47 +28,47 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
# fix libmariadb lib & dll directory.
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- file(RENAME
- ${CURRENT_PACKAGES_DIR}/lib/mariadb/mariadbclient.lib
- ${CURRENT_PACKAGES_DIR}/lib/mariadbclient.lib)
- file(RENAME
- ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb/mariadbclient.lib
- ${CURRENT_PACKAGES_DIR}/debug/lib/mariadbclient.lib)
+ file(RENAME
+ ${CURRENT_PACKAGES_DIR}/lib/mariadb/mariadbclient.lib
+ ${CURRENT_PACKAGES_DIR}/lib/mariadbclient.lib)
+ file(RENAME
+ ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb/mariadbclient.lib
+ ${CURRENT_PACKAGES_DIR}/debug/lib/mariadbclient.lib)
else()
- file(MAKE_DIRECTORY
- ${CURRENT_PACKAGES_DIR}/bin
- ${CURRENT_PACKAGES_DIR}/debug/bin)
- file(RENAME
- ${CURRENT_PACKAGES_DIR}/lib/mariadb/libmariadb.dll
- ${CURRENT_PACKAGES_DIR}/bin/libmariadb.dll)
- file(RENAME
- ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb/libmariadb.dll
- ${CURRENT_PACKAGES_DIR}/debug/bin/libmariadb.dll)
- file(RENAME
- ${CURRENT_PACKAGES_DIR}/lib/mariadb/libmariadb.lib
- ${CURRENT_PACKAGES_DIR}/lib/libmariadb.lib)
- file(RENAME
- ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb/libmariadb.lib
- ${CURRENT_PACKAGES_DIR}/debug/lib/libmariadb.lib)
+ file(MAKE_DIRECTORY
+ ${CURRENT_PACKAGES_DIR}/bin
+ ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(RENAME
+ ${CURRENT_PACKAGES_DIR}/lib/mariadb/libmariadb.dll
+ ${CURRENT_PACKAGES_DIR}/bin/libmariadb.dll)
+ file(RENAME
+ ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb/libmariadb.dll
+ ${CURRENT_PACKAGES_DIR}/debug/bin/libmariadb.dll)
+ file(RENAME
+ ${CURRENT_PACKAGES_DIR}/lib/mariadb/libmariadb.lib
+ ${CURRENT_PACKAGES_DIR}/lib/libmariadb.lib)
+ file(RENAME
+ ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb/libmariadb.lib
+ ${CURRENT_PACKAGES_DIR}/debug/lib/libmariadb.lib)
endif()
# remove plugin folder
file(REMOVE_RECURSE
- ${CURRENT_PACKAGES_DIR}/lib/plugin
- ${CURRENT_PACKAGES_DIR}/debug/lib/plugin
- ${CURRENT_PACKAGES_DIR}/lib/mariadb
- ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb)
+ ${CURRENT_PACKAGES_DIR}/lib/plugin
+ ${CURRENT_PACKAGES_DIR}/debug/lib/plugin
+ ${CURRENT_PACKAGES_DIR}/lib/mariadb
+ ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb)
# copy & remove header files
file(GLOB HEADER_FILES ${CURRENT_PACKAGES_DIR}/include/mariadb/*)
file(REMOVE
- ${CURRENT_PACKAGES_DIR}/include/mariadb/my_config.h.in
- ${CURRENT_PACKAGES_DIR}/include/mariadb/mysql_version.h.in
- ${CURRENT_PACKAGES_DIR}/include/mariadb/CMakeLists.txt
- ${CURRENT_PACKAGES_DIR}/include/mariadb/Makefile.am)
+ ${CURRENT_PACKAGES_DIR}/include/mariadb/my_config.h.in
+ ${CURRENT_PACKAGES_DIR}/include/mariadb/mysql_version.h.in
+ ${CURRENT_PACKAGES_DIR}/include/mariadb/CMakeLists.txt
+ ${CURRENT_PACKAGES_DIR}/include/mariadb/Makefile.am)
file(RENAME
- ${CURRENT_PACKAGES_DIR}/include/mariadb
- ${CURRENT_PACKAGES_DIR}/include/mysql)
+ ${CURRENT_PACKAGES_DIR}/include/mariadb
+ ${CURRENT_PACKAGES_DIR}/include/mysql)
# copy license file
file(COPY ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/libmariadb)
diff --git a/ports/libmicrohttpd/CMakeLists.txt b/ports/libmicrohttpd/CMakeLists.txt
new file mode 100644
index 000000000..d76c09122
--- /dev/null
+++ b/ports/libmicrohttpd/CMakeLists.txt
@@ -0,0 +1,78 @@
+cmake_minimum_required(VERSION 3.8)
+project(libmicrohttpd C)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+set(MIN_SRC contrib/libmicrohttpd)
+
+
+set(SRC
+ src/microhttpd/base64.c
+ src/microhttpd/basicauth.c
+ src/microhttpd/connection.c
+ src/microhttpd/daemon.c
+ src/microhttpd/digestauth.c
+ src/microhttpd/internal.c
+ src/microhttpd/md5.c
+ src/microhttpd/memorypool.c
+ src/microhttpd/mhd_mono_clock.c
+ src/microhttpd/postprocessor.c
+ src/microhttpd/reason_phrase.c
+ src/microhttpd/response.c
+ src/microhttpd/tsearch.c
+ src/microhttpd/sysfdsetsize.c
+ src/microhttpd/mhd_str.c
+ src/microhttpd/mhd_threads.c
+ src/microhttpd/mhd_sockets.c
+ src/microhttpd/mhd_itc.c
+ src/microhttpd/mhd_compat.c
+)
+set(HEADERS
+ src/microhttpd/base64.h
+ src/microhttpd/connection.h
+ src/microhttpd/internal.h
+ src/microhttpd/md5.h
+ src/microhttpd/memorypool.h
+ src/microhttpd/mhd_byteorder.h
+ src/microhttpd/mhd_limits.h
+ src/microhttpd/mhd_mono_clock.h
+ src/microhttpd/response.h
+ src/microhttpd/tsearch.h
+ src/microhttpd/sysfdsetsize.h
+ src/microhttpd/mhd_str.h
+ src/microhttpd/mhd_threads.h
+ src/microhttpd/mhd_locks.h
+ src/microhttpd/mhd_sockets.h
+ src/microhttpd/mhd_itc.h
+ src/microhttpd/mhd_itc_types.h
+ src/microhttpd/mhd_compat.h
+)
+
+if(BUILD_SHARED_LIBS)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif()
+
+include_directories(${HEADERS} src/include w32/common)
+
+add_library(libmicrohttpd ${SRC})
+
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(libmicrohttpd PRIVATE -DMHD_W32DLL)
+else()
+ target_compile_definitions(libmicrohttpd PRIVATE -DMHD_W32LIB)
+endif()
+
+ target_link_libraries(libmicrohttpd ws2_32)
+
+install(
+ TARGETS libmicrohttpd
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES src/include/microhttpd.h DESTINATION include)
+endif()
diff --git a/ports/libmicrohttpd/CONTROL b/ports/libmicrohttpd/CONTROL
new file mode 100644
index 000000000..2c5815aed
--- /dev/null
+++ b/ports/libmicrohttpd/CONTROL
@@ -0,0 +1,3 @@
+Source: libmicrohttpd
+Version: 0.9.55-1
+Description: GNU libmicrohttpd is a small C library that is supposed to make it easy to run an HTTP server as part of another application
diff --git a/ports/libmicrohttpd/portfile.cmake b/ports/libmicrohttpd/portfile.cmake
new file mode 100644
index 000000000..8b11e3e9c
--- /dev/null
+++ b/ports/libmicrohttpd/portfile.cmake
@@ -0,0 +1,23 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libmicrohttpd-0.9.55)
+vcpkg_download_distfile(ARCHIVE
+ URLS "ftp://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.55.tar.gz"
+ FILENAME "libmicrohttpd-0.9.55.tar.gz"
+ SHA512 b410e7253d7c98c40b5e8b8dcd1f93bcbb05c88717190e8dae73073d36465e8e5cfa53c6c5098de60051a5ec64dc423fd94f4b06537d8146b744aa99f5a0b173
+)
+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 -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libmicrohttpd RENAME copyright)
diff --git a/ports/libmikmod/CONTROL b/ports/libmikmod/CONTROL
new file mode 100644
index 000000000..c1dc45c3e
--- /dev/null
+++ b/ports/libmikmod/CONTROL
@@ -0,0 +1,4 @@
+Source: libmikmod
+Version: 3.3.11.1-1
+Description: Mikmod is a module player and library supporting many formats, including mod, s3m, it, and xm.
+Build-Depends: openal-soft
diff --git a/ports/libmikmod/portfile.cmake b/ports/libmikmod/portfile.cmake
new file mode 100644
index 000000000..1231f5bfa
--- /dev/null
+++ b/ports/libmikmod/portfile.cmake
@@ -0,0 +1,52 @@
+# 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/libmikmod-3.3.11.1)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://downloads.sourceforge.net/project/mikmod/libmikmod/3.3.11.1/libmikmod-3.3.11.1.tar.gz"
+ FILENAME "libmikmod-3.3.11.1.tar.gz"
+ SHA512 f2439e2b691613847cd0787dd4e050116683ce7b05c215b8afecde5c6add819ea6c18e678e258c0a80786bef463f406072de15127f64368f694287a5e8e1a9de
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ -DENABLE_DOC=OFF
+ -DENABLE_THREADS=ON
+ -DDISABLE_HQMIXER=OFF
+ -DENABLE_AF=ON
+ -DENABLE_AIFF=ON
+ -DENABLE_NAS=ON
+ -DENABLE_OPENAL=ON
+ -DENABLE_PIPE=ON
+ -DENABLE_RAW=ON
+ -DENABLE_STDOUT=ON
+ -DENABLE_WAV=ON
+ -DOPENAL_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include
+ OPTIONS_RELEASE -DENABLE_SIMD=ON
+ OPTIONS_DEBUG -DENABLE_SIMD=OFF
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING.LESSER DESTINATION ${CURRENT_PACKAGES_DIR}/share/libmikmod)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libmikmod/COPYING.LESSER ${CURRENT_PACKAGES_DIR}/share/libmikmod/copyright)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif() \ No newline at end of file
diff --git a/ports/libmodplug/CONTROL b/ports/libmodplug/CONTROL
index 60614602a..e0cc81a3b 100644
--- a/ports/libmodplug/CONTROL
+++ b/ports/libmodplug/CONTROL
@@ -1,3 +1,3 @@
Source: libmodplug
-Version: 0.8.9.0
+Version: 0.8.9.0-1
Description: The ModPlug mod file playing library.
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..76ed52c5a
--- /dev/null
+++ b/ports/libmupdf/CMakeLists.txt
@@ -0,0 +1,53 @@
+cmake_minimum_required(VERSION 3.9)
+project(libmupdf C)
+
+set(CMAKE_DEBUG_POSTFIX d)
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+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)
+find_package(ZLIB REQUIRED)
+find_package(openjpeg REQUIRED)
+find_library(JBIG2DEC_LIB NAMES jbig2decd jbig2dec)
+
+file(GLOB_RECURSE SOURCES "source/*.c" "generated/*.c")
+list(FILTER SOURCES EXCLUDE REGEX "source/tools/[a-z]*\\.c$")
+add_library(libmupdf ${SOURCES})
+
+target_compile_definitions(libmupdf PRIVATE -DSHARE_JPEG -DFZ_ENABLE_JS=0 -DNO_ICC)
+target_include_directories(libmupdf
+ PUBLIC
+ include
+ PRIVATE
+ generated
+ ${JPEG_INCLUDE_DIR}
+ ${HARFBUZZ_INCLUDE}
+)
+target_link_libraries(libmupdf PRIVATE
+ openjp2
+ freetype
+ ${JPEG_LIBRARIES}
+ ${HARFBUZZ_LIBRARIES}
+ ${JBIG2DEC_LIB}
+ ZLIB::ZLIB
+)
+
+install(TARGETS libmupdf
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(BUILD_EXAMPLES)
+ add_executable(mu-office-test source/tests/mu-office-test.c)
+ target_link_libraries(mu-office-test PRIVATE libmupdf)
+endif() \ No newline at end of file
diff --git a/ports/libmupdf/CONTROL b/ports/libmupdf/CONTROL
new file mode 100644
index 000000000..36ae69488
--- /dev/null
+++ b/ports/libmupdf/CONTROL
@@ -0,0 +1,4 @@
+Source: libmupdf
+Version: 1.12.0
+Build-Depends: freetype, libjpeg-turbo, harfbuzz, zlib, curl, glfw3, openjpeg, jbig2dec
+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..b3618ea80
--- /dev/null
+++ b/ports/libmupdf/portfile.cmake
@@ -0,0 +1,27 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ArtifexSoftware/mupdf
+ REF 1.12.0
+ SHA512 893a1958e34355acf73624e9c47f4a97adf13d5fe33604ac384df9ac22a56ef7c18e02143eaffc3c2a08f460e4c71fee00c094b6d6696f8446977bb18f65e3da
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH "${SOURCE_PATH}"
+ DISABLE_PARALLEL_CONFIGURE
+ 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/libmysql/CONTROL b/ports/libmysql/CONTROL
index 906249936..6f856c607 100644
--- a/ports/libmysql/CONTROL
+++ b/ports/libmysql/CONTROL
@@ -1,3 +1,4 @@
-Source: libmysql
-Version: 5.7.17-1
-Description: A MySQL client library for C development. \ No newline at end of file
+Source: libmysql
+Version: 8.0.4-2
+Build-Depends: boost-algorithm, boost-geometry, boost-optional, boost-functional, boost-graph, openssl, icu, libevent, liblzma, lz4, zlib
+Description: A MySQL client library for C development.
diff --git a/ports/libmysql/boost_and_build.patch b/ports/libmysql/boost_and_build.patch
deleted file mode 100644
index 7fce8ffc5..000000000
--- a/ports/libmysql/boost_and_build.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 44842d3..e34ab24 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -452,7 +452,7 @@ ELSE()
- SET(DEFAULT_TMPDIR "\"${TMPDIR}\"")
- ENDIF()
-
--INCLUDE(cmake/boost.cmake)
-+#INCLUDE(cmake/boost.cmake)
-
- IF (CMAKE_SYSTEM_NAME MATCHES "Linux")
- OPTION(WITH_SYSTEMD "Enable installation of systemd support files" OFF)
-diff --git a/client/dump/CMakeLists.txt b/client/dump/CMakeLists.txt
-index bae2ce7..4e11516 100644
---- a/client/dump/CMakeLists.txt
-+++ b/client/dump/CMakeLists.txt
-@@ -21,12 +21,12 @@ INCLUDE_DIRECTORIES(
- ${CMAKE_SOURCE_DIR}/dump
- )
-
--IF (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
-+#IF (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
- IF (WITHOUT_SERVER)
- MESSAGE(STATUS "Not building mysqlpump")
- RETURN()
- ENDIF()
--ENDIF()
-+#ENDIF()
-
- # Prevent Boost from including external precompiled Boost libraries, use
- # threading (not implemented for older Solaris Studio compilers)
-diff --git a/mysys/mysys_priv.h b/mysys/mysys_priv.h
-index 8b7a554..4353037 100644
---- a/mysys/mysys_priv.h
-+++ b/mysys/mysys_priv.h
-@@ -18,6 +18,7 @@
-
- #include "my_global.h"
- #include "mysql/psi/mysql_thread.h"
-+#include "my_sys.h"
-
- #ifdef HAVE_PSI_INTERFACE
-
diff --git a/ports/libmysql/ignore-boost-version.patch b/ports/libmysql/ignore-boost-version.patch
new file mode 100644
index 000000000..ea7111ded
--- /dev/null
+++ b/ports/libmysql/ignore-boost-version.patch
@@ -0,0 +1,13 @@
+diff --git a/cmake/boost.cmake b/cmake/boost.cmake
+index 2851181..8788322 100644
+--- a/cmake/boost.cmake
++++ b/cmake/boost.cmake
+@@ -280,7 +280,7 @@ IF(NOT BOOST_MAJOR_VERSION EQUAL 10)
+ COULD_NOT_FIND_BOOST()
+ ENDIF()
+
+-IF(NOT BOOST_MINOR_VERSION EQUAL 65)
++IF(NOT BOOST_MINOR_VERSION EQUAL 65 AND NOT IGNORE_BOOST_VERSION)
+ MESSAGE(WARNING "Boost minor version found is ${BOOST_MINOR_VERSION} "
+ "we need 65"
+ )
diff --git a/ports/libmysql/portfile.cmake b/ports/libmysql/portfile.cmake
index 530732b71..0e7b69edf 100644
--- a/ports/libmysql/portfile.cmake
+++ b/ports/libmysql/portfile.cmake
@@ -1,87 +1,118 @@
-if (EXISTS "${CURRENT_INSTALLED_DIR}/include/mysql/mysql.h")
- message(FATAL_ERROR "FATAL ERROR: libmysql and libmariadb are incompatible.")
-endif()
-
-include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mysql-server-mysql-5.7.17)
-
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/mysql/mysql-server/archive/mysql-5.7.17.tar.gz"
- FILENAME "mysql-server-mysql-5.7.17.tar.gz"
- SHA512 511027f28f0705f59a08ec369b1ebe5d9a77eb839d545898631f1ebbcb6b4b800f5b88511d3ae5d231c04e09a2d7b2b2d178264d36aeb2bc602cc1b0b248cfba
-)
-vcpkg_extract_source_archive(${ARCHIVE})
-
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/boost_and_build.patch
-)
-
-vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS
- -DWITHOUT_SERVER=ON
- -DWITH_UNIT_TESTS=OFF
- -DENABLED_PROFILING=OFF
- -DWIX_DIR=OFF
-)
-
-vcpkg_install_cmake()
-
-# delete debug headers
-file(REMOVE_RECURSE
- ${CURRENT_PACKAGES_DIR}/debug/include)
-
-# switch mysql into /mysql
-file(RENAME ${CURRENT_PACKAGES_DIR}/include ${CURRENT_PACKAGES_DIR}/include2)
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include)
-file(RENAME ${CURRENT_PACKAGES_DIR}/include2 ${CURRENT_PACKAGES_DIR}/include/mysql)
-
-## delete useless vcruntime/scripts/bin/msg file
-file(REMOVE_RECURSE
- ${CURRENT_PACKAGES_DIR}/share
- ${CURRENT_PACKAGES_DIR}/debug/share
- ${CURRENT_PACKAGES_DIR}/bin
- ${CURRENT_PACKAGES_DIR}/debug/bin
- ${CURRENT_PACKAGES_DIR}/docs
- ${CURRENT_PACKAGES_DIR}/debug/docs
- ${CURRENT_PACKAGES_DIR}/lib/debug)
-
-# remove misc files
-file(REMOVE
- ${CURRENT_PACKAGES_DIR}/COPYING
- ${CURRENT_PACKAGES_DIR}/README
- ${CURRENT_PACKAGES_DIR}/debug/COPYING
- ${CURRENT_PACKAGES_DIR}/debug/README)
-
-# remove not-related libs
-file (REMOVE
- ${CURRENT_PACKAGES_DIR}/lib/mysqlservices.lib
- ${CURRENT_PACKAGES_DIR}/debug/lib/mysqlservices.lib)
-
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- file(REMOVE
- ${CURRENT_PACKAGES_DIR}/lib/libmysql.lib
- ${CURRENT_PACKAGES_DIR}/lib/libmysql.dll
- ${CURRENT_PACKAGES_DIR}/lib/libmysql.pdb
- ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.lib
- ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.dll
- ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.pdb)
-else()
- file(REMOVE
- ${CURRENT_PACKAGES_DIR}/lib/mysqlclient.lib
- ${CURRENT_PACKAGES_DIR}/debug/lib/mysqlclient.lib)
-
- # correct the dll directory
- file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
- file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
- file (RENAME ${CURRENT_PACKAGES_DIR}/lib/libmysql.dll ${CURRENT_PACKAGES_DIR}/bin/libmysql.dll)
- file (RENAME ${CURRENT_PACKAGES_DIR}/lib/libmysql.pdb ${CURRENT_PACKAGES_DIR}/bin/libmysql.pdb)
- file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.dll ${CURRENT_PACKAGES_DIR}/debug/bin/libmysql.dll)
- file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.pdb ${CURRENT_PACKAGES_DIR}/debug/bin/libmysql.pdb)
-endif()
-
-# copy license
-file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libmysql)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/libmysql/COPYING ${CURRENT_PACKAGES_DIR}/share/libmysql/copyright) \ No newline at end of file
+if (EXISTS "${CURRENT_INSTALLED_DIR}/include/mysql/mysql.h")
+ message(FATAL_ERROR "FATAL ERROR: libmysql and libmariadb are incompatible.")
+endif()
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "libmysql cannot currently be cross-compiled for UWP")
+endif()
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" AND NOT CMAKE_SYSTEM_NAME OR CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "Oracle has dropped support in libmysql for 32-bit Windows.")
+endif()
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mysql/mysql-server
+ REF mysql-8.0.4
+ SHA512 8d9129e7670e88df14238299052a5fe6d4f3e40bf27ef7a3ca8f4f91fb40507b13463e9bd24435b34e5d06c5d056dfb259fb04e77cc251b188eea734db5642be
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/ignore-boost-version.patch
+ ${CMAKE_CURRENT_LIST_DIR}/system-libs.patch
+)
+
+file(REMOVE_RECURSE ${SOURCE_PATH}/include/boost_1_65_0)
+
+set(STACK_DIRECTION)
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(STACK_DIRECTION -DSTACK_DIRECTION=-1)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DWITHOUT_SERVER=ON
+ -DWITH_UNIT_TESTS=OFF
+ -DENABLED_PROFILING=OFF
+ -DWIX_DIR=OFF
+ -DHAVE_LLVM_LIBCPP_EXITCODE=1
+ ${STACK_DIRECTION}
+ -DWINDOWS_RUNTIME_MD=ON # Note: this disables _replacement_ of /MD with /MT. If /MT is specified, it will be preserved.
+ -DIGNORE_BOOST_VERSION=ON
+ -DWITH_SSL=system
+ -DWITH_ICU=system
+ -DWITH_LIBEVENT=system
+ -DWITH_LZMA=system
+ -DWITH_LZ4=system
+ -DWITH_ZLIB=system
+)
+
+vcpkg_install_cmake(ADD_BIN_TO_PATH)
+
+# delete debug headers
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# switch mysql into /mysql
+file(RENAME ${CURRENT_PACKAGES_DIR}/include ${CURRENT_PACKAGES_DIR}/include2)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include)
+file(RENAME ${CURRENT_PACKAGES_DIR}/include2 ${CURRENT_PACKAGES_DIR}/include/mysql)
+
+## delete useless vcruntime/scripts/bin/msg file
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/share
+ ${CURRENT_PACKAGES_DIR}/debug/share
+ ${CURRENT_PACKAGES_DIR}/bin
+ ${CURRENT_PACKAGES_DIR}/debug/bin
+ ${CURRENT_PACKAGES_DIR}/docs
+ ${CURRENT_PACKAGES_DIR}/debug/docs
+ ${CURRENT_PACKAGES_DIR}/lib/debug)
+
+# remove misc files
+file(REMOVE
+ ${CURRENT_PACKAGES_DIR}/LICENSE
+ ${CURRENT_PACKAGES_DIR}/README
+ ${CURRENT_PACKAGES_DIR}/debug/LICENSE
+ ${CURRENT_PACKAGES_DIR}/debug/README)
+
+# remove not-related libs
+file (REMOVE
+ ${CURRENT_PACKAGES_DIR}/lib/mysqlservices.lib
+ ${CURRENT_PACKAGES_DIR}/debug/lib/mysqlservices.lib)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE
+ ${CURRENT_PACKAGES_DIR}/lib/libmysql.lib
+ ${CURRENT_PACKAGES_DIR}/lib/libmysql.dll
+ ${CURRENT_PACKAGES_DIR}/lib/libmysql.pdb
+ ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.lib
+ ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.dll
+ ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.pdb)
+else()
+ file(REMOVE
+ ${CURRENT_PACKAGES_DIR}/lib/mysqlclient.lib
+ ${CURRENT_PACKAGES_DIR}/debug/lib/mysqlclient.lib)
+
+ # correct the dll directory
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file (RENAME ${CURRENT_PACKAGES_DIR}/lib/libmysql.dll ${CURRENT_PACKAGES_DIR}/bin/libmysql.dll)
+ file (RENAME ${CURRENT_PACKAGES_DIR}/lib/libmysql.pdb ${CURRENT_PACKAGES_DIR}/bin/libmysql.pdb)
+ file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.dll ${CURRENT_PACKAGES_DIR}/debug/bin/libmysql.dll)
+ file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.pdb ${CURRENT_PACKAGES_DIR}/debug/bin/libmysql.pdb)
+endif()
+
+file(READ ${CURRENT_PACKAGES_DIR}/include/mysql/mysql_com.h _contents)
+string(REPLACE "#include <mysql/udf_registration_types.h>" "#include \"mysql/udf_registration_types.h\"" _contents "${_contents}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/mysql/mysql_com.h "${_contents}")
+
+# copy license
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libmysql)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libmysql/LICENSE ${CURRENT_PACKAGES_DIR}/share/libmysql/copyright) \ No newline at end of file
diff --git a/ports/libmysql/system-libs.patch b/ports/libmysql/system-libs.patch
new file mode 100644
index 000000000..b5c1cba0d
--- /dev/null
+++ b/ports/libmysql/system-libs.patch
@@ -0,0 +1,150 @@
+diff --git a/cmake/icu.cmake b/cmake/icu.cmake
+index ce9cc67..64445c5 100644
+--- a/cmake/icu.cmake
++++ b/cmake/icu.cmake
+@@ -40,49 +40,10 @@ SET(DEFAULT_ICU "bundled")
+ # install_root is either 'system' or is assumed to be a path.
+ #
+ MACRO (FIND_ICU install_root)
+- IF("${install_root}" STREQUAL "system")
+- SET(EXTRA_FIND_LIB_ARGS)
+- SET(EXTRA_FIND_INC_ARGS)
+- ELSE()
+- SET(EXTRA_FIND_LIB_ARGS HINTS "${install_root}"
+- PATH_SUFFIXES "lib" "lib64" NO_DEFAULT_PATH)
+- SET(EXTRA_FIND_INC_ARGS HINTS "${install_root}"
+- PATH_SUFFIXES "include" NO_DEFAULT_PATH)
+- ENDIF()
+-
+- FIND_PATH(ICU_INCLUDE_DIR NAMES unicode/regex.h ${EXTRA_FIND_INC_ARGS})
+- IF (NOT ICU_INCLUDE_DIR)
+- MESSAGE(FATAL_ERROR "Cannot find ICU regular expression headers")
+- ENDIF()
+-
+- IF(WIN32)
+- SET(ICU_LIBS icuuc icuio icudt icuin)
+- ELSE()
+- SET(ICU_LIBS icuuc icuio icudata icui18n)
+- ENDIF()
+-
+- SET(ICU_SYSTEM_LIBRARIES)
+- FOREACH(ICU_LIB ${ICU_LIBS})
+- UNSET(ICU_LIB_PATH CACHE)
+- FIND_LIBRARY(ICU_LIB_PATH NAMES ${ICU_LIB} ${EXTRA_FIND_LIB_ARGS})
+- IF(NOT ICU_LIB_PATH)
+- MESSAGE(FATAL_ERROR "Cannot find the ICU library ${ICU_LIB}")
+- ENDIF()
+- LIST(APPEND ICU_SYSTEM_LIBRARIES ${ICU_LIB_PATH})
+- ENDFOREACH()
+-
+- # To do: If we include the path in ICU_INCLUDE_DIR, it leads to GUnit
+- # picking up the wrong regex.h header. And it looks like we don't need it;
+- # at least on Linux, the header gets installed in an OS path anyway.
+- IF(NOT "${install_root}" STREQUAL "system")
+- SET(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR})
+- ENDIF()
+-
+- SET(ICU_LIBRARIES ${ICU_SYSTEM_LIBRARIES})
+-
+- # Needed for version information.
+- SET(ICU_COMMON_DIR ${ICU_INCLUDE_DIR})
+-
++ find_package(ICU REQUIRED COMPONENTS uc io dt in)
++ set(ICU_SYSTEM_LIBRARIES ICU::uc ICU::io ICU::dt ICU::in)
++ set(ICU_COMMON_DIR ${ICU_INCLUDE_DIR})
++ SET(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR})
+ ENDMACRO()
+
+ MACRO (MYSQL_USE_BUNDLED_ICU)
+diff --git a/cmake/lz4.cmake b/cmake/lz4.cmake
+index 6e576c3..60cb8ba 100644
+--- a/cmake/lz4.cmake
++++ b/cmake/lz4.cmake
+@@ -25,7 +25,7 @@
+
+ MACRO (FIND_SYSTEM_LZ4)
+ FIND_PATH(PATH_TO_LZ4 NAMES lz4frame.h)
+- FIND_LIBRARY(LZ4_SYSTEM_LIBRARY NAMES lz4)
++ FIND_LIBRARY(LZ4_SYSTEM_LIBRARY NAMES lz4d lz4)
+ IF (PATH_TO_LZ4 AND LZ4_SYSTEM_LIBRARY)
+ SET(SYSTEM_LZ4_FOUND 1)
+ INCLUDE_DIRECTORIES(SYSTEM ${PATH_TO_LZ4})
+diff --git a/cmake/lzma.cmake b/cmake/lzma.cmake
+index ac8aaa7..78d8e8d 100644
+--- a/cmake/lzma.cmake
++++ b/cmake/lzma.cmake
+@@ -24,15 +24,10 @@
+ # bundled is the default
+
+ MACRO (FIND_SYSTEM_LZMA)
+- FIND_PATH(PATH_TO_LZMA NAMES lzma/lzma.h)
+- FIND_LIBRARY(LZMA_SYSTEM_LIBRARY NAMES lzma)
+- IF (PATH_TO_LZMA AND LZMA_SYSTEM_LIBRARY)
+- SET(SYSTEM_LZMA_FOUND 1)
+- SET(LZMA_INCLUDE_DIR ${PATH_TO_LZMA})
+- SET(LZMA_LIBRARY ${LZMA_SYSTEM_LIBRARY})
+- MESSAGE(STATUS "LZMA_INCLUDE_DIR ${LZMA_INCLUDE_DIR}")
+- MESSAGE(STATUS "LZMA_LIBRARY ${LZMA_LIBRARY}")
+- ENDIF()
++ find_package(LibLZMA REQUIRED)
++ set(LZMA_INCLUDE_DIR ${LZMA_INCLUDE_DIRS})
++ set(LZMA_LIBRARY ${LZMA_LIBRARIES})
++ set(SYSTEM_LZMA_FOUND 1)
+ ENDMACRO()
+
+ MACRO (MYSQL_USE_BUNDLED_LZMA)
+diff --git a/cmake/ssl.cmake b/cmake/ssl.cmake
+index 8af9699..2bdfe14 100644
+--- a/cmake/ssl.cmake
++++ b/cmake/ssl.cmake
+@@ -104,6 +104,16 @@ ENDMACRO()
+ # Provides the following configure options:
+ # WITH_SSL=[yes|bundled|system|<path/to/custom/installation>]
+ MACRO (MYSQL_CHECK_SSL)
++ find_package(OpenSSL REQUIRED)
++ set(OPENSSL_LIBRARY ${OPENSSL_SSL_LIBRARY} CACHE STRING "")
++ set(CRYPTO_LIBRARY ${OPENSSL_CRYPTO_LIBRARY} CACHE STRING "")
++ FIND_PROGRAM(OPENSSL_EXECUTABLE openssl
++ DOC "path to the openssl executable")
++ SET(SSL_DEFINES "-DHAVE_OPENSSL")
++ set(SSL_LIBRARIES ${OPENSSL_LIBRARIES})
++ENDMACRO()
++
++MACRO (MYSQL_CHECK_SSL_OLD)
+ IF(NOT WITH_SSL)
+ IF(WIN32)
+ CHANGE_SSL_SETTINGS("bundled")
+diff --git a/cmake/zlib.cmake b/cmake/zlib.cmake
+index e74b8c9..6695075 100644
+--- a/cmake/zlib.cmake
++++ b/cmake/zlib.cmake
+@@ -51,27 +51,7 @@ MACRO (MYSQL_CHECK_ZLIB_WITH_COMPRESS)
+ IF(WITH_ZLIB STREQUAL "bundled")
+ MYSQL_USE_BUNDLED_ZLIB()
+ ELSE()
+- SET(ZLIB_FIND_QUIETLY TRUE)
+- INCLUDE(FindZLIB)
+- IF(ZLIB_FOUND)
+- INCLUDE(CheckFunctionExists)
+- SET(CMAKE_REQUIRED_LIBRARIES z)
+- CHECK_FUNCTION_EXISTS(crc32 HAVE_CRC32)
+- CHECK_FUNCTION_EXISTS(compressBound HAVE_COMPRESSBOUND)
+- CHECK_FUNCTION_EXISTS(deflateBound HAVE_DEFLATEBOUND)
+- SET(CMAKE_REQUIRED_LIBRARIES)
+- IF(HAVE_CRC32 AND HAVE_COMPRESSBOUND AND HAVE_DEFLATEBOUND)
+- SET(ZLIB_LIBRARY ${ZLIB_LIBRARIES} CACHE INTERNAL "System zlib library")
+- SET(WITH_ZLIB "system" CACHE STRING
+- "Which zlib to use (possible values are 'bundled' or 'system')")
+- SET(ZLIB_SOURCES "")
+- ELSE()
+- SET(ZLIB_FOUND FALSE CACHE INTERNAL "Zlib found but not usable")
+- MESSAGE(STATUS "system zlib found but not usable")
+- ENDIF()
+- ENDIF()
+- IF(NOT ZLIB_FOUND)
+- MYSQL_USE_BUNDLED_ZLIB()
+- ENDIF()
++ find_package(ZLIB REQUIRED)
++ SET(ZLIB_LIBRARY ZLIB::ZLIB CACHE INTERNAL "System zlib library")
+ ENDIF()
+ ENDMACRO()
diff --git a/ports/libnice/CMakeLists.txt b/ports/libnice/CMakeLists.txt
index c631d3317..7454a0046 100644
--- a/ports/libnice/CMakeLists.txt
+++ b/ports/libnice/CMakeLists.txt
@@ -119,7 +119,7 @@ RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib)
-if (${CMAKE_BUILD_TYPE} STREQUAL "Release")
+if (CMAKE_BUILD_TYPE STREQUAL "Release")
install(FILES agent/address.h DESTINATION include/nice)
install(FILES agent/agent.h DESTINATION include/nice)
install(FILES agent/candidate.h DESTINATION include/nice)
diff --git a/ports/libnice/CONTROL b/ports/libnice/CONTROL
index 7d16f4262..de7b0b67e 100644
--- a/ports/libnice/CONTROL
+++ b/ports/libnice/CONTROL
@@ -1,4 +1,4 @@
Source: libnice
-Version: 0.1.13
+Version: 0.1.13-1
Description: Libnice is an implementation of the IETF's Interactive Connectivity Establishment (ICE) standard (RFC 5245) and the Session Traversal Utilities for NAT (STUN) standard (RFC 5389).
-Build-Depends: glib \ No newline at end of file
+Build-Depends: glib
diff --git a/ports/libodb-mysql/CMakeLists.txt b/ports/libodb-mysql/CMakeLists.txt
new file mode 100644
index 000000000..b578964b6
--- /dev/null
+++ b/ports/libodb-mysql/CMakeLists.txt
@@ -0,0 +1,44 @@
+cmake_minimum_required(VERSION 3.0)
+project(libodb-mysql VERSION 2.4.0 LANGUAGES CXX)
+find_package(odb 2.4.0 REQUIRED COMPONENTS libodb)
+INCLUDE_DIRECTORIES(${MYSQL_INCLUDE_DIR})
+set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)")
+file(GLOB_RECURSE libodb_src
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ *.cxx)
+add_library(libodb-mysql ${libodb_src})
+target_include_directories(libodb-mysql
+ PUBLIC
+ $<INSTALL_INTERFACE:include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+
+)
+
+target_link_libraries(libodb-mysql PRIVATE odb::libodb ${MYSQL_LIB})
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(libodb-mysql PRIVATE
+ -DLIBODB_MYSQL_DYNAMIC_LIB
+ -DLIBODB_MYSQL_HAVE_UNLOCK_NOTIFY)
+else()
+ target_compile_definitions(libodb-mysql PRIVATE
+ -DLIBODB_MYSQL_STATIC_LIB
+ -DLIBODB_MYSQL_HAVE_UNLOCK_NOTIFY)
+endif()
+install(TARGETS libodb-mysql EXPORT odb_mysqlConfig
+ COMPONENT mysql
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+ RUNTIME DESTINATION bin
+)
+if(LIBODB_INSTALL_HEADERS)
+install(DIRECTORY odb DESTINATION include/
+ COMPONENT mysql
+ FILES_MATCHING
+ PATTERN "*.h"
+ PATTERN "*.hxx"
+ PATTERN "*.ixx"
+ PATTERN "*.txx"
+)
+endif()
+install(EXPORT odb_mysqlConfig NAMESPACE odb:: COMPONENT mysql DESTINATION share/odb)
+export(TARGETS libodb-mysql NAMESPACE odb:: FILE odb_mysqlConfig.cmake) \ No newline at end of file
diff --git a/ports/libodb-mysql/CONTROL b/ports/libodb-mysql/CONTROL
new file mode 100644
index 000000000..d51a5a216
--- /dev/null
+++ b/ports/libodb-mysql/CONTROL
@@ -0,0 +1,4 @@
+Source: libodb-mysql
+Version: 2.4.0-1
+Description: MySQL support for the ODB ORM library
+Build-Depends: libodb, libmysql \ No newline at end of file
diff --git a/ports/libodb-mysql/portfile.cmake b/ports/libodb-mysql/portfile.cmake
new file mode 100644
index 000000000..9bb0d0434
--- /dev/null
+++ b/ports/libodb-mysql/portfile.cmake
@@ -0,0 +1,45 @@
+# 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/libodb-mysql-2.4.0)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://www.codesynthesis.com/download/odb/2.4/libodb-mysql-2.4.0.tar.gz"
+ FILENAME "libodb-mysql-2.4.0.tar.gz"
+ SHA512 c27b73c3f61dccdd149c11c122185f645a00d5bc346b366ee65b738f8719c39d03fad07a0d55b62b3db9e3ad2507679c24ddda331e5d110f367ad32f7cf8b910
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+set(MYSQL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include/mysql")
+set(MYSQL_LIB "${CURRENT_INSTALLED_DIR}/lib/libmysql.lib")
+set(MYSQL_LIB_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib/libmysql.lib")
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DMYSQL_INCLUDE_DIR=${MYSQL_INCLUDE_DIR}
+ OPTIONS_RELEASE
+ -DMYSQL_LIB=${MYSQL_LIB}
+ OPTIONS_DEBUG
+ -DLIBODB_INSTALL_HEADERS=OFF
+ -DMYSQL_LIB=${MYSQL_LIB_DEBUG}
+)
+
+vcpkg_install_cmake()
+
+file(READ ${CURRENT_PACKAGES_DIR}/debug/share/odb/odb_mysqlConfig-debug.cmake LIBODB_DEBUG_TARGETS)
+string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" LIBODB_DEBUG_TARGETS "${LIBODB_DEBUG_TARGETS}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/odb/odb_mysqlConfig-debug.cmake "${LIBODB_DEBUG_TARGETS}")
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libodb-mysql)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libodb-mysql/LICENSE ${CURRENT_PACKAGES_DIR}/share/libodb-mysql/copyright)
+vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/libodb-pgsql/CONTROL b/ports/libodb-pgsql/CONTROL
index a2daa777a..f89d1f37c 100644
--- a/ports/libodb-pgsql/CONTROL
+++ b/ports/libodb-pgsql/CONTROL
@@ -1,4 +1,4 @@
Source: libodb-pgsql
-Version: 2.4.0
+Version: 2.4.0-1
Description: Description: PostgreSQL support for the ODB ORM library
-Build-Depends: libodb, libpq \ No newline at end of file
+Build-Depends: libodb, libpq
diff --git a/ports/libodb-sqlite/CONTROL b/ports/libodb-sqlite/CONTROL
index 5a87fb847..89be9ee88 100644
--- a/ports/libodb-sqlite/CONTROL
+++ b/ports/libodb-sqlite/CONTROL
@@ -1,4 +1,4 @@
Source: libodb-sqlite
-Version: 2.4.0
+Version: 2.4.0-1
Description: Sqlite support for the ODB ORM library
Build-Depends: libodb, sqlite3
diff --git a/ports/libodb/CONTROL b/ports/libodb/CONTROL
index f9645d098..bb9bbfe29 100644
--- a/ports/libodb/CONTROL
+++ b/ports/libodb/CONTROL
@@ -1,3 +1,3 @@
Source: libodb
-Version: 2.4.0
+Version: 2.4.0-2
Description: ODB library, base runtime for the ODB ORM solution
diff --git a/ports/libodb/portfile.cmake b/ports/libodb/portfile.cmake
index 21d715499..e45b7b25a 100644
--- a/ports/libodb/portfile.cmake
+++ b/ports/libodb/portfile.cmake
@@ -36,4 +36,13 @@ write_basic_package_version_file(${CURRENT_PACKAGES_DIR}/share/odb/odbConfigVers
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libodb)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libodb/LICENSE ${CURRENT_PACKAGES_DIR}/share/libodb/copyright)
+set(LIBODB_HEADER_PATH ${CURRENT_PACKAGES_DIR}/include/odb/details/export.hxx)
+file(READ ${LIBODB_HEADER_PATH} LIBODB_HEADER)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ string(REPLACE "#ifdef LIBODB_STATIC_LIB" "#if 1" LIBODB_HEADER ${LIBODB_HEADER})
+else()
+ string(REPLACE "#ifdef LIBODB_STATIC_LIB" "#if 0" LIBODB_HEADER ${LIBODB_HEADER})
+endif()
+file(WRITE ${LIBODB_HEADER_PATH} ${LIBODB_HEADER})
+
vcpkg_copy_pdbs()
diff --git a/ports/libogg/CONTROL b/ports/libogg/CONTROL
index 266cf4c2b..459cdaf95 100644
--- a/ports/libogg/CONTROL
+++ b/ports/libogg/CONTROL
@@ -1,3 +1,3 @@
Source: libogg
-Version: 1.3.2
+Version: 1.3.3
Description: Ogg is a multimedia container format, and the native file and stream format for the Xiph.org multimedia codecs.
diff --git a/ports/libogg/portfile.cmake b/ports/libogg/portfile.cmake
index 4127a6aef..d0efac69a 100644
--- a/ports/libogg/portfile.cmake
+++ b/ports/libogg/portfile.cmake
@@ -1,44 +1,23 @@
-# 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}
-#
-
include(vcpkg_common_functions)
-find_program(GIT git)
-
-set(GIT_URL "https://git.xiph.org/ogg.git")
-set(GIT_REF "cab46b19847eb1d38aeda73ab4708716e5776366")
-
-if(NOT EXISTS "${DOWNLOADS}/ogg.git")
- message(STATUS "Cloning")
- vcpkg_execute_required_process(
- COMMAND ${GIT} clone --bare ${GIT_URL} ${DOWNLOADS}/ogg.git
- WORKING_DIRECTORY ${DOWNLOADS}
- LOGNAME clone
- )
-endif()
-
-if(NOT EXISTS "${CURRENT_BUILDTREES_DIR}/src/.git")
- message(STATUS "Adding worktree")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR})
- vcpkg_execute_required_process(
- COMMAND ${GIT} worktree add -f --detach ${CURRENT_BUILDTREES_DIR}/src ${GIT_REF}
- WORKING_DIRECTORY ${DOWNLOADS}/ogg.git
- LOGNAME worktree
- )
-endif()
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO xiph/ogg
+ REF v1.3.3
+ SHA512 0bd6095d647530d4cb1f509eb5e99965a25cc3dd9b8125b93abd6b248255c890cf20710154bdec40568478eb5c4cde724abfb2eff1f3a04e63acef0fbbc9799b
+ HEAD_REF master
+)
vcpkg_configure_cmake(
- SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
)
vcpkg_install_cmake()
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-# Handle copyright
-file(COPY ${CURRENT_BUILDTREES_DIR}/src/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libogg)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/libogg/COPYING ${CURRENT_PACKAGES_DIR}/share/libogg/copyright)
vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libogg RENAME copyright)
diff --git a/ports/libopenmpt/CMakeLists.txt b/ports/libopenmpt/CMakeLists.txt
new file mode 100644
index 000000000..5e9b20799
--- /dev/null
+++ b/ports/libopenmpt/CMakeLists.txt
@@ -0,0 +1,289 @@
+cmake_minimum_required(VERSION 3.9)
+project(libopenmpt)
+
+if(MSVC)
+ add_compile_options(
+ /W3 /wd4005 /wd4267 /wd4244 /wd4996 /wd410 /wd4018
+ -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE
+ -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS
+ )
+endif()
+
+find_package(ZLIB REQUIRED)
+
+find_path(MPG123_INCLUDE_DIR NAMES mpg123.h)
+find_library(MPG123_LIBRARY NAMES mpg123 libmpg123)
+
+find_path(VORBIS_INCLUDE_DIR vorbis/vorbisfile.h)
+find_path(OGG_INCLUDE_DIR ogg/ogg.h)
+
+find_library(OGG_LIBRARY NAMES ogg)
+find_library(VORBIS_LIBRARY NAMES vorbis)
+find_library(VORBISFILE_LIBRARY NAMES vorbisfile)
+
+find_path(FLAC_INCLUDE_DIR FLAC/all.h)
+find_library(FLAC_LIBRARY NAMES FLAC flac)
+
+find_path(PORTAUDIO_INCLUDE_DIR NAMES portaudio.h)
+find_library(PORTAUDIO_LIBRARY NAMES portaudio)
+
+
+
+set(
+ lib_headers
+ libopenmpt/libopenmpt.h
+ libopenmpt/libopenmpt.hpp
+ libopenmpt/libopenmpt_config.h
+ libopenmpt/libopenmpt_ext.h
+ libopenmpt/libopenmpt_ext.hpp
+ libopenmpt/libopenmpt_ext_impl.hpp
+ libopenmpt/libopenmpt_impl.hpp
+ libopenmpt/libopenmpt_internal.h
+ libopenmpt/libopenmpt_stream_callbacks_buffer.h
+ libopenmpt/libopenmpt_stream_callbacks_fd.h
+ libopenmpt/libopenmpt_stream_callbacks_file.h
+ libopenmpt/libopenmpt_version.h
+)
+
+
+include_directories(
+ .
+ build/svn_version
+ libopenmpt
+ common
+ soundbase
+ sounddsp
+ soundlib
+ openmpt123
+ ${MPG123_INCLUDE_DIR}
+ ${VORBIS_INCLUDE_DIR}
+ ${OGG_INCLUDE_DIR}
+ ${FLAC_INCLUDE_DIR}
+ ${PORTAUDIO_INCLUDE_DIR}
+)
+
+set(
+ lib_sources
+ common/ComponentManager.cpp
+ common/FileReader.cpp
+ common/Logging.cpp
+ common/Profiler.cpp
+ common/misc_util.cpp
+ common/mptCPU.cpp
+ common/mptFileIO.cpp
+ common/mptIO.cpp
+ common/mptLibrary.cpp
+ common/mptOS.cpp
+ common/mptPathString.cpp
+ common/mptRandom.cpp
+ common/mptString.cpp
+ common/mptStringFormat.cpp
+ common/mptStringParse.cpp
+ common/mptTime.cpp
+ common/mptUUID.cpp
+ common/mptWine.cpp
+ common/serialization_utils.cpp
+ common/stdafx.cpp
+ common/typedefs.cpp
+ common/version.cpp
+ libopenmpt/libopenmpt_c.cpp
+ libopenmpt/libopenmpt_cxx.cpp
+ libopenmpt/libopenmpt_ext_impl.cpp
+ libopenmpt/libopenmpt_impl.cpp
+ sounddsp/AGC.cpp
+ sounddsp/DSP.cpp
+ sounddsp/EQ.cpp
+ sounddsp/Reverb.cpp
+ soundlib/AudioCriticalSection.cpp
+ soundlib/ContainerMMCMP.cpp
+ soundlib/ContainerPP20.cpp
+ soundlib/ContainerUMX.cpp
+ soundlib/ContainerXPK.cpp
+ soundlib/Dither.cpp
+ soundlib/Dlsbank.cpp
+ soundlib/Fastmix.cpp
+ soundlib/ITCompression.cpp
+ soundlib/ITTools.cpp
+ soundlib/InstrumentExtensions.cpp
+ soundlib/Load_669.cpp
+ soundlib/Load_amf.cpp
+ soundlib/Load_ams.cpp
+ soundlib/Load_dbm.cpp
+ soundlib/Load_digi.cpp
+ soundlib/Load_dmf.cpp
+ soundlib/Load_dsm.cpp
+ soundlib/Load_dtm.cpp
+ soundlib/Load_far.cpp
+ soundlib/Load_gdm.cpp
+ soundlib/Load_imf.cpp
+ soundlib/Load_it.cpp
+ soundlib/Load_itp.cpp
+ soundlib/Load_mdl.cpp
+ soundlib/Load_med.cpp
+ soundlib/Load_mid.cpp
+ soundlib/Load_mo3.cpp
+ soundlib/Load_mod.cpp
+ soundlib/Load_mt2.cpp
+ soundlib/Load_mtm.cpp
+ soundlib/Load_okt.cpp
+ soundlib/Load_plm.cpp
+ soundlib/Load_psm.cpp
+ soundlib/Load_ptm.cpp
+ soundlib/Load_s3m.cpp
+ soundlib/Load_sfx.cpp
+ soundlib/Load_stm.cpp
+ soundlib/Load_stp.cpp
+ soundlib/Load_uax.cpp
+ soundlib/Load_ult.cpp
+ soundlib/Load_wav.cpp
+ soundlib/Load_xm.cpp
+ soundlib/MIDIEvents.cpp
+ soundlib/MIDIMacros.cpp
+ soundlib/MPEGFrame.cpp
+ soundlib/Message.cpp
+ soundlib/MixFuncTable.cpp
+ soundlib/MixerLoops.cpp
+ soundlib/MixerSettings.cpp
+ soundlib/ModChannel.cpp
+ soundlib/ModInstrument.cpp
+ soundlib/ModSample.cpp
+ soundlib/ModSequence.cpp
+ soundlib/OggStream.cpp
+ soundlib/Paula.cpp
+ soundlib/RowVisitor.cpp
+ soundlib/S3MTools.cpp
+ soundlib/SampleFormatFLAC.cpp
+ soundlib/SampleFormatMP3.cpp
+ soundlib/SampleFormatMediaFoundation.cpp
+ soundlib/SampleFormatOpus.cpp
+ soundlib/SampleFormatVorbis.cpp
+ soundlib/SampleFormats.cpp
+ soundlib/SampleIO.cpp
+ soundlib/Snd_flt.cpp
+ soundlib/Snd_fx.cpp
+ soundlib/Sndfile.cpp
+ soundlib/Sndmix.cpp
+ soundlib/SoundFilePlayConfig.cpp
+ soundlib/Tables.cpp
+ soundlib/Tagging.cpp
+ soundlib/UMXTools.cpp
+ soundlib/UpgradeModule.cpp
+ soundlib/WAVTools.cpp
+ soundlib/WindowedFIR.cpp
+ soundlib/XMTools.cpp
+ soundlib/load_j2b.cpp
+ soundlib/mod_specifications.cpp
+ soundlib/modcommand.cpp
+ soundlib/modsmp_ctrl.cpp
+ soundlib/pattern.cpp
+ soundlib/patternContainer.cpp
+ soundlib/plugins/DigiBoosterEcho.cpp
+ soundlib/plugins/LFOPlugin.cpp
+ soundlib/plugins/PlugInterface.cpp
+ soundlib/plugins/PluginManager.cpp
+ soundlib/plugins/dmo/Chorus.cpp
+ soundlib/plugins/dmo/Compressor.cpp
+ soundlib/plugins/dmo/DMOPlugin.cpp
+ soundlib/plugins/dmo/Distortion.cpp
+ soundlib/plugins/dmo/Echo.cpp
+ soundlib/plugins/dmo/Flanger.cpp
+ soundlib/plugins/dmo/Gargle.cpp
+ soundlib/plugins/dmo/I3DL2Reverb.cpp
+ soundlib/plugins/dmo/ParamEq.cpp
+ soundlib/plugins/dmo/WavesReverb.cpp
+ soundlib/tuning.cpp
+ soundlib/tuningCollection.cpp
+ soundlib/tuningbase.cpp
+)
+
+add_library(libopenmpt ${lib_sources})
+
+target_compile_definitions(libopenmpt PRIVATE
+ -DMPT_WITH_MPG123 -DMPT_WITH_OGG
+ -DMPT_WITH_VORBIS -DMPT_WITH_VORBISFILE
+ -DMPT_WITH_ZLIB -DMPT_BUILD_VCPKG
+ -DLIBOPENMPT_BUILD
+)
+
+set(cli_srcs openmpt123/openmpt123.cpp)
+
+add_executable(openmpt123 ${cli_srcs})
+
+target_compile_definitions(openmpt123 PRIVATE
+ -DMPT_WITH_MPG123 -DMPT_WITH_OGG
+ -DMPT_WITH_VORBIS -DMPT_WITH_VORBISFILE
+ -DMPT_WITH_ZLIB -DMPT_BUILD_VCPKG
+ -DLIBOPENMPT_BUILD
+)
+
+
+
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(
+ libopenmpt
+ PRIVATE
+ -DMPT_BUILD_MSVC_SHARED -DLIBOPENMPT_BUILD_DLL
+ )
+ target_compile_definitions(
+ openmpt123
+ PRIVATE
+ -DMPT_BUILD_MSVC_SHARED -DLIBOPENMPT_BUILD_DLL
+ )
+else()
+ target_compile_definitions(
+ libopenmpt
+ PRIVATE
+ -DMPT_BUILD_MSVC_STATIC
+ )
+ target_compile_definitions(
+ openmpt123
+ PRIVATE
+ -DMPT_BUILD_MSVC_STATIC
+ )
+endif()
+
+target_link_libraries(
+ libopenmpt
+ PRIVATE
+ ${OGG_LIBRARY}
+ ${MPG123_LIBRARY}
+ ${VORBISFILE_LIBRARY}
+ ${VORBIS_LIBRARY}
+ ${VORBISFILE_LIBRARY}
+ ZLIB::ZLIB
+)
+
+target_link_libraries(
+ openmpt123
+ PRIVATE
+ libopenmpt
+ ${OGG_LIBRARY}
+ ${MPG123_LIBRARY}
+ ${VORBISFILE_LIBRARY}
+ ${VORBIS_LIBRARY}
+ ${VORBISFILE_LIBRARY}
+ ${FLAC_LIBRARY}
+ ${PORTAUDIO_LIBRARY}
+ Winmm
+ ZLIB::ZLIB
+)
+
+
+install(
+ TARGETS libopenmpt
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES ${lib_headers} DESTINATION include/libopenmpt)
+endif()
+
+if(NOT DISABLE_INSTALL_TOOLS)
+ install (
+ TARGETS openmpt123
+ RUNTIME DESTINATION tools/libopenmpt
+ )
+endif()
diff --git a/ports/libopenmpt/CONTROL b/ports/libopenmpt/CONTROL
new file mode 100644
index 000000000..b12a2ee64
--- /dev/null
+++ b/ports/libopenmpt/CONTROL
@@ -0,0 +1,4 @@
+Source: libopenmpt
+Version: 2017-01-28-cf2390140
+Description: a library to render tracker music
+Build-Depends: zlib, mpg123, libogg, libvorbis, portaudio, libflac
diff --git a/ports/libopenmpt/portfile.cmake b/ports/libopenmpt/portfile.cmake
new file mode 100644
index 000000000..c43f64a99
--- /dev/null
+++ b/ports/libopenmpt/portfile.cmake
@@ -0,0 +1,26 @@
+include(vcpkg_common_functions)
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+ message(FATAL_ERROR "Windowstore not supported")
+endif()
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO OpenMPT/openmpt
+ REF cf2390140c37a53ecf7d5fe73412982d346efba4
+ SHA512 6401bac7a899eaacebb601591f982fabde6351f1c0dc0c2d24f1f303b78592e7883a84463bdf3cf0fd029eb38d7b7085fdfadafea2931b307b43d0b601db863e
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+
+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/libopenmpt)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libopenmpt RENAME copyright)
diff --git a/ports/libopusenc/CMakeLists.txt b/ports/libopusenc/CMakeLists.txt
new file mode 100644
index 000000000..10f425821
--- /dev/null
+++ b/ports/libopusenc/CMakeLists.txt
@@ -0,0 +1,38 @@
+cmake_minimum_required(VERSION 3.4)
+project(libopusenc C)
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4267 /wd4244 /wd4996 /wd4101 /wd4018")
+
+find_path(OPUS_INCLUDE_DIR opus.h PATH_SUFFIXES opus)
+find_library(OPUS_LIBRARY opus)
+
+add_library(opusenc
+ src/ogg_packer.c
+ src/opus_header.c
+ src/opusenc.c
+ src/picture.c
+ src/resample.c)
+
+get_filename_component(FOLDER ${CMAKE_CURRENT_SOURCE_DIR} NAME)
+string(REPLACE "libopusenc-" "" VERSION ${FOLDER})
+
+target_compile_definitions(opusenc PRIVATE
+ RANDOM_PREFIX=libopusenc
+ OUTSIDE_SPEEX
+ FLOATING_POINT
+ PACKAGE_VERSION="${VERSION}"
+ PACKAGE_NAME="libopusenc"
+ OPE_BUILD)
+set_target_properties(opusenc PROPERTIES DEFINE_SYMBOL DLL_EXPORT)
+target_include_directories(opusenc PRIVATE include ${OPUS_INCLUDE_DIR})
+target_link_libraries(opusenc PRIVATE ${OPUS_LIBRARY})
+
+install(TARGETS opusenc
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
+if(NOT OPUSENC_SKIP_HEADERS)
+ install(FILES include/opusenc.h
+ DESTINATION include/opus)
+endif()
diff --git a/ports/libopusenc/CONTROL b/ports/libopusenc/CONTROL
new file mode 100644
index 000000000..93b2a7544
--- /dev/null
+++ b/ports/libopusenc/CONTROL
@@ -0,0 +1,4 @@
+Source: libopusenc
+Version: 0.1-1
+Description: Library for encoding .opus audio files and live streams.
+Build-Depends: opus
diff --git a/ports/libopusenc/portfile.cmake b/ports/libopusenc/portfile.cmake
new file mode 100644
index 000000000..d41880e01
--- /dev/null
+++ b/ports/libopusenc/portfile.cmake
@@ -0,0 +1,29 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+ message(FATAL_ERROR "UWP builds not supported")
+endif()
+
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO xiph/libopusenc
+ REF v0.1
+ SHA512 6abc5cd9e87ad41409f844d350cf43ee0067ad05a768aa9ef1d726a7e98ef9b006cbc42a6601d05a51dba6386a1361751a9a367a902c52eff8b4e56c3bf8a04b
+ HEAD_REF master)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DOPUSENC_SKIP_HEADERS=ON)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+# make includes work with MSBuild integration
+file(READ ${CURRENT_PACKAGES_DIR}/include/opus/opusenc.h OPUSENC_H)
+ string(REPLACE "#include <opus.h>" "#include \"opus.h\"" OPUSENC_H "${OPUSENC_H}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/opus/opusenc.h "${OPUSENC_H}")
+
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libopusenc)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libopusenc/COPYING ${CURRENT_PACKAGES_DIR}/share/libopusenc/copyright)
diff --git a/ports/libp7-baical/CMakeLists.txt b/ports/libp7-baical/CMakeLists.txt
index c4559c603..6b1044e43 100644
--- a/ports/libp7-baical/CMakeLists.txt
+++ b/ports/libp7-baical/CMakeLists.txt
@@ -3,13 +3,14 @@ cmake_minimum_required(VERSION 3.0)
set(SOURCES "Sources/ClBaical.cpp"
"Sources/ClFile.cpp"
- "Sources/ClText.cpp"
"Sources/Client.cpp"
"Sources/ClNull.cpp"
+ "Sources/ClText.cpp"
"Sources/CRC32.cpp"
"Sources/Proxy.cpp"
"Sources/Telemetry.cpp"
- "Sources/Trace.cpp")
+ "Sources/Trace.cpp"
+)
if(WIN32)
set(RESOURCES "Sources/P7Client.rc")
diff --git a/ports/libp7-baical/CONTROL b/ports/libp7-baical/CONTROL
index df6cf94b6..215810511 100644
--- a/ports/libp7-baical/CONTROL
+++ b/ports/libp7-baical/CONTROL
@@ -1,3 +1,3 @@
Source: libp7-baical
-Version: 4.1
+Version: 4.4-2
Description: P7 is a library for high-speed sending telemetry & trace data from application
diff --git a/ports/libp7-baical/portfile.cmake b/ports/libp7-baical/portfile.cmake
index f298186e0..bb9b751f4 100644
--- a/ports/libp7-baical/portfile.cmake
+++ b/ports/libp7-baical/portfile.cmake
@@ -4,8 +4,12 @@ if(VCPKG_TARGET_ARCHITECTURE STREQUAL arm)
message(FATAL_ERROR "libP7 does not support ARM")
endif()
-set(LIBP7_VERSION 4.1)
-set(LIBP7_HASH 6259416378f1fe60ad6097faf9facd2de1a3ea13e8015a5727d6a179caa88a7f6707b47273afceebc16b39883da4768f29feac199f7d6c354b744b643c2044ab)
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "libP7 does not support UWP")
+endif()
+
+set(LIBP7_VERSION 4.4)
+set(LIBP7_HASH ce33db9a0c731e4dff95646703fe5fd96015f1c528377aa5dbe2e533529b0e8c45a4b74ee2b4616a811a7f9038c12edf106b08b3c21cec9cb6bdf85ad6e1d64f)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libP7_v${LIBP7_VERSION})
vcpkg_download_distfile(ARCHIVE
diff --git a/ports/libpng-apng/CONTROL b/ports/libpng-apng/CONTROL
new file mode 100644
index 000000000..f4ea530fe
--- /dev/null
+++ b/ports/libpng-apng/CONTROL
@@ -0,0 +1,4 @@
+Source: libpng-apng
+Version: 1.6.34-2
+Build-Depends: zlib
+Description: libpng-apng is a library implementing an interface for reading and writing (A)PNG ((Animated) Portable Network Graphics) format files. This is backward compatible with the regular libpng, both in library usage and format.
diff --git a/ports/libpng-apng/portfile.cmake b/ports/libpng-apng/portfile.cmake
new file mode 100644
index 000000000..b1ec137a8
--- /dev/null
+++ b/ports/libpng-apng/portfile.cmake
@@ -0,0 +1,78 @@
+include(vcpkg_common_functions)
+
+set(LIBPNG_APNG_VERSION 1.6.34)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO glennrp/libpng
+ REF v${LIBPNG_APNG_VERSION}
+ SHA512 23b6112a1d16a34c8037d5c5812944d4385fc96ed819a22172776bdd5acd3a34e55f073b46087b77d1c12cecc68f9e8ba7754c86b5ab6ed3016063e1c795de7a
+ HEAD_REF master
+)
+
+vcpkg_download_distfile(LIBPNG_APNG_PATCH_ARCHIVE
+ URLS "https://downloads.sourceforge.net/project/libpng-apng/libpng16/${LIBPNG_APNG_VERSION}/libpng-${LIBPNG_APNG_VERSION}-apng.patch.gz"
+ FILENAME "libpng-${LIBPNG_APNG_VERSION}-apng.patch.gz"
+ SHA512 0777b8e55aeee207ee92479f2258ef1f60f16d7951fdbc6d89a80ef533b86dadecd1ef659d6fe7602d8ea3a8e711a096b0f77ee09b993799b73dfffddfe5dd3c
+)
+
+vcpkg_find_acquire_program(7Z)
+
+vcpkg_execute_required_process(
+ COMMAND ${7Z} x ${LIBPNG_APNG_PATCH_ARCHIVE} -aoa
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src
+ LOGNAME extract-patch.log
+)
+
+find_program(GIT NAMES git git.cmd)
+
+# sed and awk are installed with git but in a different directory
+get_filename_component(GIT_EXE_PATH ${GIT} DIRECTORY)
+set(AWK_EXE_PATH "${GIT_EXE_PATH}/../usr/bin")
+set(ENV{PATH} "$ENV{PATH};${AWK_EXE_PATH}")
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/use-abort-on-all-platforms.patch
+ ${CURRENT_BUILDTREES_DIR}/src/libpng-${LIBPNG_APNG_VERSION}-apng.patch
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(PNG_STATIC_LIBS OFF)
+ set(PNG_SHARED_LIBS ON)
+else()
+ set(PNG_STATIC_LIBS ON)
+ set(PNG_SHARED_LIBS OFF)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DPNG_STATIC=${PNG_STATIC_LIBS}
+ -DPNG_SHARED=${PNG_SHARED_LIBS}
+ -DPNG_TESTS=OFF
+ -DPNG_PREFIX=a
+ -DSKIP_INSTALL_PROGRAMS=ON
+ -DSKIP_INSTALL_EXECUTABLES=ON
+ -DSKIP_INSTALL_FILES=ON
+ OPTIONS_DEBUG
+ -DSKIP_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libpng16_static.lib ${CURRENT_PACKAGES_DIR}/lib/libpng16.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libpng16_staticd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libpng16d.lib)
+endif()
+
+# Remove CMake config files as they are incorrectly generated and everyone uses built-in FindPNG anyway.
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/libpng ${CURRENT_PACKAGES_DIR}/debug/lib/libpng)
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libpng-apng)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libpng-apng/LICENSE ${CURRENT_PACKAGES_DIR}/share/libpng-apng/copyright)
+
+vcpkg_copy_pdbs()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/libpng-apng/usage b/ports/libpng-apng/usage
new file mode 100644
index 000000000..d9c299738
--- /dev/null
+++ b/ports/libpng-apng/usage
@@ -0,0 +1,4 @@
+The package libpng-apng is compatible with built-in CMake targets:
+
+ find_package(PNG REQUIRED)
+ target_link_libraries(main PRIVATE PNG::PNG)
diff --git a/ports/libpng-apng/use-abort-on-all-platforms.patch b/ports/libpng-apng/use-abort-on-all-platforms.patch
new file mode 100644
index 000000000..0a629e059
--- /dev/null
+++ b/ports/libpng-apng/use-abort-on-all-platforms.patch
@@ -0,0 +1,17 @@
+diff --git a/pngpriv.h b/pngpriv.h
+index fe3355d..5a049b5 100644
+--- a/pngpriv.h
++++ b/pngpriv.h
+@@ -457,11 +457,7 @@
+
+ /* Memory model/platform independent fns */
+ #ifndef PNG_ABORT
+-# ifdef _WINDOWS_
+-# define PNG_ABORT() ExitProcess(0)
+-# else
+-# define PNG_ABORT() abort()
+-# endif
++# define PNG_ABORT() abort()
+ #endif
+
+ /* These macros may need to be architecture dependent. */
diff --git a/ports/libpng/CONTROL b/ports/libpng/CONTROL
index 801a9f1fb..1eec4f2dc 100644
--- a/ports/libpng/CONTROL
+++ b/ports/libpng/CONTROL
@@ -1,4 +1,4 @@
Source: libpng
-Version: 1.6.28-1
+Version: 1.6.34-3
Build-Depends: zlib
Description: libpng is a library implementing an interface for reading and writing PNG (Portable Network Graphics) format files.
diff --git a/ports/libpng/dont-double-eval-CMAKE_SYSTEM_PROCESSOR.patch b/ports/libpng/dont-double-eval-CMAKE_SYSTEM_PROCESSOR.patch
deleted file mode 100644
index 3af02186f..000000000
--- a/ports/libpng/dont-double-eval-CMAKE_SYSTEM_PROCESSOR.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e076d5e..428cf68 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -78,8 +78,8 @@ set(PNG_PREFIX "" CACHE STRING "Prefix to add to the API function names")
- set(DFA_XTRA "" CACHE FILEPATH "File containing extra configuration settings")
-
- # set definitions and sources for arm
--if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^arm" OR
-- ${CMAKE_SYSTEM_PROCESSOR} MATCHES "^aarch64")
-+if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR
-+ CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
- set(PNG_ARM_NEON_POSSIBLE_VALUES check on off)
- set(PNG_ARM_NEON "check" CACHE STRING "Enable ARM NEON optimizations:
- check: (default) use internal checking code;
diff --git a/ports/libpng/portfile.cmake b/ports/libpng/portfile.cmake
index 7c9c8194a..0c9f8ab0b 100644
--- a/ports/libpng/portfile.cmake
+++ b/ports/libpng/portfile.cmake
@@ -1,17 +1,18 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libpng-1.6.28)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://downloads.sourceforge.net/project/libpng/libpng16/1.6.28/libpng-1.6.28.tar.xz"
- FILENAME "libpng-1.6.28.tar.xz"
- SHA512 3541139062a1c6cded7abe378ae73519835ec68561006ba33b3fe34f65676e4f91f2561b11d890ac20255dbf2e691e0b3d4fbf11db77b47b67979ba45b8af655
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO glennrp/libpng
+ REF v1.6.34
+ SHA512 23b6112a1d16a34c8037d5c5812944d4385fc96ed819a22172776bdd5acd3a34e55f073b46087b77d1c12cecc68f9e8ba7754c86b5ab6ed3016063e1c795de7a
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
+
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
${CMAKE_CURRENT_LIST_DIR}/use-abort-on-all-platforms.patch
- ${CMAKE_CURRENT_LIST_DIR}/dont-double-eval-CMAKE_SYSTEM_PROCESSOR.patch
+ ${CMAKE_CURRENT_LIST_DIR}/skip-install-symlink.patch
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
@@ -24,6 +25,7 @@ endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
-DPNG_STATIC=${PNG_STATIC_LIBS}
-DPNG_SHARED=${PNG_SHARED_LIBS}
@@ -31,23 +33,27 @@ vcpkg_configure_cmake(
-DSKIP_INSTALL_PROGRAMS=ON
-DSKIP_INSTALL_EXECUTABLES=ON
-DSKIP_INSTALL_FILES=ON
+ -DSKIP_INSTALL_SYMLINK=ON
OPTIONS_DEBUG
-DSKIP_INSTALL_HEADERS=ON
)
vcpkg_install_cmake()
-if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
- file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libpng16_static.lib ${CURRENT_PACKAGES_DIR}/lib/libpng16.lib)
- file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libpng16_staticd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libpng16d.lib)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/libpng16_static.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libpng16_static.lib ${CURRENT_PACKAGES_DIR}/lib/libpng16.lib)
+ endif()
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/libpng16_staticd.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libpng16_staticd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libpng16d.lib)
+ endif()
endif()
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libpng ${CURRENT_PACKAGES_DIR}/share/libpng)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libpng/libpng16-debug.cmake ${CURRENT_PACKAGES_DIR}/share/libpng/libpng16-debug.cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/libpng)
+# Remove CMake config files as they are incorrectly generated and everyone uses built-in FindPNG anyway.
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/libpng ${CURRENT_PACKAGES_DIR}/debug/lib/libpng)
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libpng)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libpng/LICENSE ${CURRENT_PACKAGES_DIR}/share/libpng/copyright)
vcpkg_copy_pdbs()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/libpng/skip-install-symlink.patch b/ports/libpng/skip-install-symlink.patch
new file mode 100644
index 000000000..c31177d7e
--- /dev/null
+++ b/ports/libpng/skip-install-symlink.patch
@@ -0,0 +1,22 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 48c6fa2..589e5f9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -868,7 +868,7 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+- if(PNG_SHARED)
++ if(PNG_SHARED AND NOT SKIP_INSTALL_SYMLINK)
+ # Create a symlink for libpng.dll.a => libpng16.dll.a on Cygwin
+ if(CYGWIN OR MINGW)
+ CREATE_SYMLINK(libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} TARGET png)
+@@ -881,7 +881,7 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
+ endif(NOT WIN32)
+ endif(PNG_SHARED)
+
+- if(PNG_STATIC)
++ if(PNG_STATIC AND NOT SKIP_INSTALL_SYMLINK)
+ if(NOT WIN32 OR CYGWIN OR MINGW)
+ CREATE_SYMLINK( libpng${CMAKE_STATIC_LIBRARY_SUFFIX} TARGET png_static)
+ install(FILES $<TARGET_LINKER_FILE_DIR:png_static>/libpng${CMAKE_STATIC_LIBRARY_SUFFIX} DESTINATION ${CMAKE_INSTALL_LIBDIR})
diff --git a/ports/libpng/usage b/ports/libpng/usage
new file mode 100644
index 000000000..19203399c
--- /dev/null
+++ b/ports/libpng/usage
@@ -0,0 +1,4 @@
+The package libpng is compatible with built-in CMake targets:
+
+ find_package(PNG REQUIRED)
+ target_link_libraries(main PRIVATE PNG::PNG)
diff --git a/ports/libpopt/CONTROL b/ports/libpopt/CONTROL
index 0065bf323..5ba1451b6 100644
--- a/ports/libpopt/CONTROL
+++ b/ports/libpopt/CONTROL
@@ -1,3 +1,3 @@
Source: libpopt
-Version: 1.16-10~vcpkg1
+Version: 1.16-10~vcpkg1-1
Description: Library for parsing command line parameters
diff --git a/ports/libpq/CMakeLists.txt b/ports/libpq/CMakeLists.txt
index 54e929a5b..57b86e255 100644
--- a/ports/libpq/CMakeLists.txt
+++ b/ports/libpq/CMakeLists.txt
@@ -1,39 +1,98 @@
cmake_minimum_required(VERSION 3.5)
project(libpq VERSION 9.6.1 LANGUAGES C)
+if(NOT CMAKE_SYSTEM_PROCESSOR)
+ set(CMAKE_SYSTEM_PROCESSOR ${CMAKE_HOST_SYSTEM_PROCESSOR})
+endif()
+
find_package(OpenSSL REQUIRED)
+find_program(PERL NAMES perl)
+
+set(CMAKE_STATIC_LIBRARY_PREFIX)
+set(CMAKE_SHARED_LIBRARY_PREFIX)
set(CMAKE_DEBUG_POSTFIX "d")
-configure_file(${CMAKE_CURRENT_LIST_DIR}/src/include/pg_config.h.win32 ${CMAKE_CURRENT_LIST_DIR}/src/include/pg_config.h)
-configure_file(${CMAKE_CURRENT_LIST_DIR}/src/include/pg_config_ext.h.win32 ${CMAKE_CURRENT_LIST_DIR}/src/include/pg_config_ext.h)
-configure_file(${CMAKE_CURRENT_LIST_DIR}/src/include/port/win32.h ${CMAKE_CURRENT_LIST_DIR}/src/include/pg_config_os.h)
-file(WRITE src/interfaces/libpq/pg_config_paths.h "#define SYSCONFDIR \"\"")
+
+file(REMOVE
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/include/pg_config.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/include/pg_config_ext.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/include/pg_config_os.h
+)
+
+if(WIN32)
+ configure_file(src/include/pg_config.h.win32 include/pg_config.h)
+ configure_file(src/include/pg_config_ext.h.win32 include/pg_config_ext.h)
+ configure_file(src/include/port/win32.h include/pg_config_os.h)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_ext.h" "#include <stdint.h>\n#define PG_INT64_TYPE int64_t")
+ configure_file("${PORT_DIR}/pg_config.darwin.h" include/pg_config.h COPYONLY)
+ configure_file(src/include/port/darwin.h include/pg_config_os.h COPYONLY)
+ configure_file(src/backend/port/dynloader/darwin.h include/dynloader.h COPYONLY)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_ext.h" "#include <stdint.h>\n#define PG_INT64_TYPE int64_t")
+ configure_file(src/include/port/linux.h include/pg_config_os.h COPYONLY)
+ configure_file("${PORT_DIR}/pg_config.linux.h" include/pg_config.h COPYONLY)
+ configure_file(src/backend/port/dynloader/linux.h include/dynloader.h COPYONLY)
+else()
+ message(FATAL_ERROR "Unknown system: ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
+endif()
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_paths.h "#define SYSCONFDIR \"\"")
+
set(INSTALL_INCLUDES ON CACHE BOOL "Install include files")
+
set(pg_port_src
- src/port/getaddrinfo.c
src/port/pgstrcasecmp.c
src/port/pqsignal.c
src/port/thread.c
- src/port/inet_aton.c
src/port/crypt.c
src/port/noblock.c
src/port/chklocale.c
- src/port/inet_net_ntop.c
src/port/snprintf.c
- src/port/strlcpy.c
- src/port/dirent.c
src/port/dirmod.c
src/port/pgsleep.c
src/port/open.c
src/port/system.c
- src/port/win32error.c
- src/port/win32setlocale.c
)
+if(WIN32)
+ list(APPEND pg_port_src
+ src/port/dirent.c
+ src/port/inet_aton.c
+ src/port/inet_net_ntop.c
+ src/port/win32error.c
+ src/port/win32setlocale.c
+ src/port/getaddrinfo.c
+ src/port/strlcpy.c
+ )
+ include_directories(src/include/port/win32 src/include/port/win32_msvc)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ list(APPEND pg_port_src
+ src/port/strlcpy.c
+ )
+endif()
+
set(pg_backend_src
src/backend/libpq/md5.c
src/backend/libpq/ip.c
src/backend/utils/mb/wchar.c
src/backend/utils/mb/encnames.c
)
+if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ list(APPEND pg_backend_src
+ src/backend/port/dynloader/linux.c
+ src/backend/port/sysv_sema.c
+ src/backend/port/sysv_shmem.c
+ )
+endif()
+if(NOT WIN32)
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/include/utils/errcodes.h
+ COMMAND "${PERL}" "${CMAKE_CURRENT_SOURCE_DIR}/src/backend/utils/generate-errcodes.pl" "${CMAKE_CURRENT_SOURCE_DIR}/src/backend/utils/errcodes.txt" > "${CMAKE_CURRENT_BINARY_DIR}/include/utils/errcodes.h"
+ VERBATIM
+ )
+ list(APPEND pg_backend_src
+ ${CMAKE_CURRENT_BINARY_DIR}/include/utils/errcodes.h
+ )
+endif()
+
set(pg_libpq_src
src/interfaces/libpq/fe-auth.c
src/interfaces/libpq/fe-connect.c
@@ -47,16 +106,21 @@ set(pg_libpq_src
src/interfaces/libpq/fe-secure.c
src/interfaces/libpq/libpq-events.c
src/interfaces/libpq/pqexpbuffer.c
- src/interfaces/libpq/pthread-win32.c
- src/interfaces/libpq/win32.c
src/interfaces/libpq/libpq-dist.rc
)
+
+if(WIN32)
+ list(APPEND pg_libpq_src
+ src/interfaces/libpq/pthread-win32.c
+ src/interfaces/libpq/win32.c
+ )
+endif()
set(pg_libpq_interface
src/include/postgres_ext.h
- src/include/pg_config_ext.h
- src/include/pg_config.h
+ ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_ext.h
+ ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config.h
src/interfaces/libpq/libpq-fe.h
- )
+)
set(pg_libpq_catalog_interface
src/include/catalog/pg_type.h
src/include/catalog/genbki.h
@@ -66,15 +130,19 @@ set(CMAKE_DEBUG_POSTFIX "d")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_library(libpq ${pg_port_src} ${pg_backend_src} ${pg_libpq_src})
target_compile_definitions(libpq PRIVATE -DFRONTEND -DENABLE_THREAD_SAFETY -DUSE_OPENSSL -D_CRT_SECURE_NO_WARNINGS)
-target_link_libraries(libpq PRIVATE OpenSSL::SSL ws2_32 secur32 advapi32 shell32)
-target_include_directories(libpq PRIVATE src/include src/include/port/win32 src/include/port/win32_msvc src/port)
+target_link_libraries(libpq PRIVATE OpenSSL::SSL)
+if(WIN32)
+ target_link_libraries(libpq PRIVATE ws2_32 secur32 advapi32 shell32)
+endif()
+target_include_directories(libpq PRIVATE src/include src/port ${CMAKE_CURRENT_BINARY_DIR}/include)
set_target_properties(libpq PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
install(TARGETS libpq
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin
- )
+)
+
if(INSTALL_INCLUDES)
install(FILES ${pg_libpq_interface} DESTINATION include)
install(DIRECTORY src/include/libpq DESTINATION include)
diff --git a/ports/libpq/CONTROL b/ports/libpq/CONTROL
index 580a06857..225d886de 100644
--- a/ports/libpq/CONTROL
+++ b/ports/libpq/CONTROL
@@ -1,4 +1,4 @@
Source: libpq
-Version: 9.6.1
+Version: 9.6.1-4
Description: The official database access API of postgresql
-Build-Depends: openssl
+Build-Depends: openssl, zlib (linux)
diff --git a/ports/libpq/pg_config.darwin.h b/ports/libpq/pg_config.darwin.h
new file mode 100644
index 000000000..5db9f84d2
--- /dev/null
+++ b/ports/libpq/pg_config.darwin.h
@@ -0,0 +1,191 @@
+#define ACCEPT_TYPE_ARG1 int
+#define ACCEPT_TYPE_ARG2 struct sockaddr *
+#define ACCEPT_TYPE_ARG3 socklen_t
+#define ACCEPT_TYPE_RETURN int
+#define ALIGNOF_DOUBLE 8
+#define ALIGNOF_INT 4
+#define ALIGNOF_LONG 8
+#define ALIGNOF_SHORT 2
+#define BLCKSZ 8192
+#define DEF_PGPORT 5432
+#define DEF_PGPORT_STR "5432"
+#define ENABLE_THREAD_SAFETY 1
+#define FLEXIBLE_ARRAY_MEMBER /**/
+#define FLOAT4PASSBYVAL true
+#define FLOAT8PASSBYVAL true
+#ifdef GETTIMEOFDAY_1ARG
+# define gettimeofday(a,b) gettimeofday(a)
+#endif
+#define HAVE_ATOMICS 1
+#define HAVE_CBRT 1
+#define HAVE_CRYPT 1
+#define HAVE_DECL_FDATASYNC 0
+#define HAVE_DECL_F_FULLFSYNC 1
+#define HAVE_DECL_POSIX_FADVISE 0
+#define HAVE_DECL_SNPRINTF 1
+#define HAVE_DECL_STRLCAT 1
+#define HAVE_DECL_STRLCPY 1
+#define HAVE_DECL_SYS_SIGLIST 1
+#define HAVE_DECL_VSNPRINTF 1
+#define HAVE_DLOPEN 1
+#define HAVE_FDATASYNC 1
+#define HAVE_FLS 1
+#define HAVE_FSEEKO 1
+#define HAVE_FUNCNAME__FUNC 1
+#define HAVE_GCC__ATOMIC_INT32_CAS 1
+#define HAVE_GCC__ATOMIC_INT64_CAS 1
+#define HAVE_GCC__SYNC_CHAR_TAS 1
+#define HAVE_GCC__SYNC_INT32_CAS 1
+#define HAVE_GCC__SYNC_INT32_TAS 1
+#define HAVE_GCC__SYNC_INT64_CAS 1
+#define HAVE_GETADDRINFO 1
+#define HAVE_GETIFADDRS 1
+#define HAVE_GETOPT 1
+#define HAVE_GETOPT_H 1
+#define HAVE_GETOPT_LONG 1
+#define HAVE_GETPEEREID 1
+#define HAVE_GETPWUID_R 1
+#define HAVE_GETRLIMIT 1
+#define HAVE_GETRUSAGE 1
+#define HAVE_HISTORY_TRUNCATE_FILE 1
+#define HAVE_IFADDRS_H 1
+#define HAVE_INET_ATON 1
+#define HAVE_INTPTR_T 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_INT_OPTERR 1
+#define HAVE_INT_OPTRESET 1
+#define HAVE_INT_TIMEZONE 1
+#define HAVE_IPV6 1
+#define HAVE_ISINF 1
+#define HAVE_LANGINFO_H 1
+#define HAVE_LIBM 1
+#define HAVE_LIBREADLINE 1
+#define HAVE_LIBZ 1
+#define HAVE_LOCALE_T 1
+#define HAVE_LONG_INT_64 1
+#define HAVE_LONG_LONG_INT 1
+#define HAVE_MBSTOWCS_L 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MEMORY_H 1
+#define HAVE_MKDTEMP 1
+#define HAVE_NETINET_IN_H 1
+#define HAVE_NETINET_TCP_H 1
+#define HAVE_NET_IF_H 1
+#define HAVE_POLL 1
+#define HAVE_POLL_H 1
+#define HAVE_PTHREAD 1
+#define HAVE_PTHREAD_IS_THREADED_NP 1
+#define HAVE_PTHREAD_PRIO_INHERIT 1
+#define HAVE_PWD_H 1
+#define HAVE_RANDOM 1
+#define HAVE_READLINE_HISTORY_H 1
+#define HAVE_READLINE_READLINE_H 1
+#define HAVE_READLINK 1
+#define HAVE_RINT 1
+#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1
+#define HAVE_RL_COMPLETION_MATCHES 1
+#define HAVE_RL_FILENAME_COMPLETION_FUNCTION 1
+#define HAVE_SETSID 1
+#define HAVE_SHM_OPEN 1
+#define HAVE_SNPRINTF 1
+#define HAVE_SPINLOCKS 1
+#define HAVE_SRANDOM 1
+#define HAVE_SSL_GET_CURRENT_COMPRESSION 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRERROR 1
+#define HAVE_STRERROR_R 1
+#define HAVE_STRINGS_H 1
+#define HAVE_STRING_H 1
+#define HAVE_STRLCAT 1
+#define HAVE_STRLCPY 1
+#define HAVE_STRTOLL 1
+#define HAVE_STRTOULL 1
+#define HAVE_STRUCT_ADDRINFO 1
+#define HAVE_STRUCT_OPTION 1
+#define HAVE_STRUCT_SOCKADDR_SA_LEN 1
+#define HAVE_STRUCT_SOCKADDR_STORAGE 1
+#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
+#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN 1
+#define HAVE_STRUCT_TM_TM_ZONE 1
+#define HAVE_SYMLINK 1
+#define HAVE_SYSLOG 1
+#define HAVE_SYS_IOCTL_H 1
+#define HAVE_SYS_IPC_H 1
+#define HAVE_SYS_POLL_H 1
+#define HAVE_SYS_RESOURCE_H 1
+#define HAVE_SYS_SELECT_H 1
+#define HAVE_SYS_SEM_H 1
+#define HAVE_SYS_SHM_H 1
+#define HAVE_SYS_SOCKET_H 1
+#define HAVE_SYS_SOCKIO_H 1
+#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_TIME_H 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_SYS_UCRED_H 1
+#define HAVE_SYS_UN_H 1
+#define HAVE_TERMIOS_H 1
+#define HAVE_TM_ZONE 1
+#define HAVE_TOWLOWER 1
+#define HAVE_TZNAME 1
+#define HAVE_UINTPTR_T 1
+#define HAVE_UNION_SEMUN 1
+#define HAVE_UNISTD_H 1
+#define HAVE_UNIX_SOCKETS 1
+#define HAVE_UNSETENV 1
+#define HAVE_UNSIGNED_LONG_LONG_INT 1
+#define HAVE_UTIME 1
+#define HAVE_UTIMES 1
+#define HAVE_UTIME_H 1
+#define HAVE_VSNPRINTF 1
+#define HAVE_WCHAR_H 1
+#define HAVE_WCSTOMBS 1
+#define HAVE_WCSTOMBS_L 1
+#define HAVE_WCTYPE_H 1
+#define HAVE__BUILTIN_BSWAP32 1
+#define HAVE__BUILTIN_BSWAP64 1
+#define HAVE__BUILTIN_CONSTANT_P 1
+#define HAVE__BUILTIN_TYPES_COMPATIBLE_P 1
+#define HAVE__BUILTIN_UNREACHABLE 1
+#define HAVE__GET_CPUID 1
+#define HAVE__STATIC_ASSERT 1
+#define HAVE__VA_ARGS 1
+#define INT64_MODIFIER "l"
+#define LOCALE_T_IN_XLOCALE 1
+#define MAXIMUM_ALIGNOF 8
+#define MEMSET_LOOP_LIMIT 1024
+#define PACKAGE_BUGREPORT "pgsql-bugs@postgresql.org"
+#define PACKAGE_NAME "PostgreSQL"
+#define PACKAGE_STRING "PostgreSQL 9.6.3"
+#define PACKAGE_TARNAME "postgresql"
+#define PACKAGE_URL ""
+#define PACKAGE_VERSION "9.6.3"
+#define PG_INT128_TYPE __int128
+#define PG_INT64_TYPE long int
+#define PG_KRB_SRVNAM "postgres"
+#define PG_MAJORVERSION "9.6"
+#define PG_PRINTF_ATTRIBUTE printf
+#define PG_VERSION "9.6.3"
+#define PG_VERSION_NUM 90603
+#define PG_VERSION_STR "PostgreSQL 9.6.3 on x86_64-apple-darwin15.6.0, compiled by Apple LLVM version 7.0.2 (clang-700.1.81), 64-bit"
+#define RELSEG_SIZE 131072
+#define SIZEOF_LONG 8
+#define SIZEOF_OFF_T 8
+#define SIZEOF_SIZE_T 8
+#define SIZEOF_VOID_P 8
+#define STDC_HEADERS 1
+#define STRERROR_R_INT 1
+#define USE_FLOAT4_BYVAL 1
+#define USE_FLOAT8_BYVAL 1
+#define USE_INTEGER_DATETIMES 1
+#define USE_SSE42_CRC32C_WITH_RUNTIME_CHECK 1
+#define USE_SYSV_SEMAPHORES 1
+#define USE_SYSV_SHARED_MEMORY 1
+#define WCSTOMBS_L_IN_XLOCALE 1
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#endif
+#define XLOG_BLCKSZ 8192
+#define XLOG_SEG_SIZE (16 * 1024 * 1024)
diff --git a/ports/libpq/pg_config.linux.h b/ports/libpq/pg_config.linux.h
new file mode 100644
index 000000000..d3758bb95
--- /dev/null
+++ b/ports/libpq/pg_config.linux.h
@@ -0,0 +1,173 @@
+#define ACCEPT_TYPE_ARG1 int
+#define ACCEPT_TYPE_ARG2 struct sockaddr *
+#define ACCEPT_TYPE_ARG3 socklen_t
+#define ACCEPT_TYPE_RETURN int
+#define ALIGNOF_DOUBLE 8
+#define ALIGNOF_INT 4
+#define ALIGNOF_LONG 8
+#define ALIGNOF_SHORT 2
+#define BLCKSZ 8192
+#define DEF_PGPORT 5432
+#define DEF_PGPORT_STR "5432"
+#define ENABLE_THREAD_SAFETY 1
+#define FLEXIBLE_ARRAY_MEMBER /**/
+#define FLOAT4PASSBYVAL true
+#define FLOAT8PASSBYVAL true
+#ifdef GETTIMEOFDAY_1ARG
+# define gettimeofday(a,b) gettimeofday(a)
+#endif
+#define HAVE_ATOMICS 1
+#define HAVE_CBRT 1
+#define HAVE_CRYPT 1
+#define HAVE_CRYPT_H 1
+#define HAVE_DECL_FDATASYNC 1
+#define HAVE_DECL_F_FULLFSYNC 0
+#define HAVE_DECL_POSIX_FADVISE 1
+#define HAVE_DECL_SNPRINTF 1
+#define HAVE_DECL_STRLCAT 0
+#define HAVE_DECL_STRLCPY 0
+#define HAVE_DECL_SYS_SIGLIST 1
+#define HAVE_DECL_VSNPRINTF 1
+#define HAVE_DLOPEN 1
+#define HAVE_FDATASYNC 1
+#define HAVE_FSEEKO 1
+#define HAVE_FUNCNAME__FUNC 1
+#define HAVE_GCC__ATOMIC_INT32_CAS 1
+#define HAVE_GCC__ATOMIC_INT64_CAS 1
+#define HAVE_GCC__SYNC_CHAR_TAS 1
+#define HAVE_GCC__SYNC_INT32_CAS 1
+#define HAVE_GCC__SYNC_INT32_TAS 1
+#define HAVE_GCC__SYNC_INT64_CAS 1
+#define HAVE_GETADDRINFO 1
+#define HAVE_GETHOSTBYNAME_R 1
+#define HAVE_GETIFADDRS 1
+#define HAVE_GETOPT 1
+#define HAVE_GETOPT_H 1
+#define HAVE_GETOPT_LONG 1
+#define HAVE_GETPWUID_R 1
+#define HAVE_GETRLIMIT 1
+#define HAVE_GETRUSAGE 1
+#define HAVE_IFADDRS_H 1
+#define HAVE_INET_ATON 1
+#define HAVE_INTPTR_T 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_INT_OPTERR 1
+#define HAVE_INT_TIMEZONE 1
+#define HAVE_IPV6 1
+#define HAVE_ISINF 1
+#define HAVE_LANGINFO_H 1
+#define HAVE_LIBM 1
+#define HAVE_LIBZ 1
+#define HAVE_LOCALE_T 1
+#define HAVE_LONG_INT_64 1
+#define HAVE_LONG_LONG_INT 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MEMORY_H 1
+#define HAVE_MKDTEMP 1
+#define HAVE_NETINET_IN_H 1
+#define HAVE_NETINET_TCP_H 1
+#define HAVE_NET_IF_H 1
+#define HAVE_POLL 1
+#define HAVE_POLL_H 1
+#define HAVE_POSIX_FADVISE 1
+#define HAVE_PTHREAD 1
+#define HAVE_PTHREAD_PRIO_INHERIT 1
+#define HAVE_PWD_H 1
+#define HAVE_RANDOM 1
+#define HAVE_READLINK 1
+#define HAVE_RINT 1
+#define HAVE_SETSID 1
+#define HAVE_SHM_OPEN 1
+#define HAVE_SNPRINTF 1
+#define HAVE_SPINLOCKS 1
+#define HAVE_SRANDOM 1
+#define HAVE_SSL_GET_CURRENT_COMPRESSION 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRERROR 1
+#define HAVE_STRERROR_R 1
+#define HAVE_STRINGS_H 1
+#define HAVE_STRING_H 1
+#define HAVE_STRTOLL 1
+#define HAVE_STRTOULL 1
+#define HAVE_STRUCT_ADDRINFO 1
+#define HAVE_STRUCT_OPTION 1
+#define HAVE_STRUCT_SOCKADDR_STORAGE 1
+#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
+#define HAVE_STRUCT_TM_TM_ZONE 1
+#define HAVE_SYMLINK 1
+#define HAVE_SYNC_FILE_RANGE 1
+#define HAVE_SYSLOG 1
+#define HAVE_SYS_EPOLL_H 1
+#define HAVE_SYS_IOCTL_H 1
+#define HAVE_SYS_IPC_H 1
+#define HAVE_SYS_POLL_H 1
+#define HAVE_SYS_RESOURCE_H 1
+#define HAVE_SYS_SELECT_H 1
+#define HAVE_SYS_SEM_H 1
+#define HAVE_SYS_SHM_H 1
+#define HAVE_SYS_SOCKET_H 1
+#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_TIME_H 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_SYS_UN_H 1
+#define HAVE_TERMIOS_H 1
+#define HAVE_TM_ZONE 1
+#define HAVE_TOWLOWER 1
+#define HAVE_TZNAME 1
+#define HAVE_UINTPTR_T 1
+#define HAVE_UNISTD_H 1
+#define HAVE_UNIX_SOCKETS 1
+#define HAVE_UNSETENV 1
+#define HAVE_UNSIGNED_LONG_LONG_INT 1
+#define HAVE_UTIME 1
+#define HAVE_UTIMES 1
+#define HAVE_UTIME_H 1
+#define HAVE_VSNPRINTF 1
+#define HAVE_WCHAR_H 1
+#define HAVE_WCSTOMBS 1
+#define HAVE_WCTYPE_H 1
+#define HAVE__BUILTIN_BSWAP32 1
+#define HAVE__BUILTIN_BSWAP64 1
+#define HAVE__BUILTIN_CONSTANT_P 1
+#define HAVE__BUILTIN_TYPES_COMPATIBLE_P 1
+#define HAVE__BUILTIN_UNREACHABLE 1
+#define HAVE__GET_CPUID 1
+#define HAVE__STATIC_ASSERT 1
+#define HAVE__VA_ARGS 1
+#define INT64_MODIFIER "l"
+#define MAXIMUM_ALIGNOF 8
+#define MEMSET_LOOP_LIMIT 1024
+#define PACKAGE_BUGREPORT "pgsql-bugs@postgresql.org"
+#define PACKAGE_NAME "PostgreSQL"
+#define PACKAGE_STRING "PostgreSQL 9.6.3"
+#define PACKAGE_TARNAME "postgresql"
+#define PACKAGE_URL ""
+#define PACKAGE_VERSION "9.6.3"
+#define PG_INT128_TYPE __int128
+#define PG_INT64_TYPE long int
+#define PG_KRB_SRVNAM "postgres"
+#define PG_MAJORVERSION "9.6"
+#define PG_PRINTF_ATTRIBUTE gnu_printf
+#define PG_VERSION "9.6.3"
+#define PG_VERSION_NUM 90603
+#define PG_VERSION_STR "PostgreSQL 9.6.3 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904, 64-bit"
+#define RELSEG_SIZE 131072
+#define SIZEOF_LONG 8
+#define SIZEOF_OFF_T 8
+#define SIZEOF_SIZE_T 8
+#define SIZEOF_VOID_P 8
+#define STDC_HEADERS 1
+#define USE_FLOAT4_BYVAL 1
+#define USE_FLOAT8_BYVAL 1
+#define USE_INTEGER_DATETIMES 1
+#define USE_SSE42_CRC32C_WITH_RUNTIME_CHECK 1
+#define USE_SYSV_SEMAPHORES 1
+#define USE_SYSV_SHARED_MEMORY 1
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#endif
+#define XLOG_BLCKSZ 8192
+#define XLOG_SEG_SIZE (16 * 1024 * 1024)
diff --git a/ports/libpq/portfile.cmake b/ports/libpq/portfile.cmake
index 50ac67bb7..7b23aed32 100644
--- a/ports/libpq/portfile.cmake
+++ b/ports/libpq/portfile.cmake
@@ -1,33 +1,24 @@
-# 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}
-#
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/postgresql-9.6.1)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/postgresql-9.6.3)
vcpkg_download_distfile(ARCHIVE
- URLS "https://ftp.postgresql.org/pub/source/v9.6.1/postgresql-9.6.1.tar.bz2"
- FILENAME "postgresql-9.6.1.tar.bz2"
- SHA512 f27af67f9a96f6327150330bf091a803e10eabbac4e488cf5e4d72907e2eb1dbde7282fe0b89fd75711fd8bdcdb3688b5a9eac1e4d6871f4e8681c9c8b0e7c45
+ URLS "https://ftp.postgresql.org/pub/source/v9.6.3/postgresql-9.6.3.tar.bz2"
+ FILENAME "postgresql-9.6.3.tar.bz2"
+ SHA512 97141972e154e6b0e756ee6a4e20f26e82022a9fd4c56305314a3a5567a79ece638e4ac3d513b46138737ae6bd27a098f30013a94767db151181aac9c01290a1
)
vcpkg_extract_source_archive(${ARCHIVE})
+
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
- # OPTIONS_RELEASE -DOPTIMIZE=1
- OPTIONS_DEBUG -DINSTALL_INCLUDES=OFF
+ PREFER_NINJA
+ OPTIONS
+ "-DPORT_DIR=${CMAKE_CURRENT_LIST_DIR}"
+ OPTIONS_DEBUG
+ -DINSTALL_INCLUDES=OFF
)
vcpkg_install_cmake()
+vcpkg_copy_pdbs()
-# Handle copyright
-file(COPY ${SOURCE_PATH}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/libpq)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/libpq/COPYRIGHT ${CURRENT_PACKAGES_DIR}/share/libpq/copyright)
-
-
-
-vcpkg_copy_pdbs() \ No newline at end of file
+file(INSTALL ${SOURCE_PATH}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/libpq RENAME copyright)
diff --git a/ports/libpqxx/CMakeLists.txt b/ports/libpqxx/CMakeLists.txt
new file mode 100644
index 000000000..c33d8863f
--- /dev/null
+++ b/ports/libpqxx/CMakeLists.txt
@@ -0,0 +1,68 @@
+cmake_minimum_required(VERSION 3.5)
+project(libpqxx VERSION 6.0.0 LANGUAGES CXX)
+set(CMAKE_DEBUG_POSTFIX "D")
+
+find_library(LIBPQD libpqd)
+find_library(LIBPQ libpq)
+find_path(LIBPQ_FE_H libpq-fe.h)
+find_path(POSTGRES_EXT_H postgres_ext.h)
+
+include(CheckIncludeFileCXX)
+
+check_include_file_cxx(poll.h HAVE_POLL)
+check_include_file_cxx(sys/select.h HAVE_SYS_SELECT_H)
+check_include_file_cxx(sys/time.h HAVE_SYS_TIME_H)
+check_include_file_cxx(sys/types.h HAVE_SYS_TYPES_H)
+check_include_file_cxx(unistd.h HAVE_UNISTD_H)
+
+include(CheckCXXSourceCompiles)
+
+check_cxx_source_compiles("[[deprecated]] void f();
+int main() { return 0; }" PQXX_HAVE_DEPRECATED)
+check_cxx_source_compiles("#include <optional>
+int main() { return std::optional<int>(0).value(); }" PQXX_HAVE_OPTIONAL)
+check_cxx_source_compiles("#include <experimental/optional>
+int main() { return std::experimental::optional<int>(0).value(); }" PQXX_HAVE_EXP_OPTIONAL)
+
+configure_file(config-internal-compiler.h.in pqxx/config-internal-compiler.h)
+configure_file(config-public-compiler.h.in pqxx/config-public-compiler.h)
+
+file(GLOB SRCS "${PROJECT_SOURCE_DIR}/src/*.cxx")
+
+if(BUILD_SHARED_LIBS)
+ set(TARGET libpqxx)
+ set(SHARED_DEFINITION -DPQXX_SHARED)
+ list(APPEND SRCS "${PROJECT_SOURCE_DIR}/win32/libpqxx.cxx")
+else()
+ set(TARGET libpqxx_static)
+ set(SHARED_DEFINITION "")
+endif()
+
+add_library(${TARGET} ${SRCS})
+target_compile_definitions(${TARGET} PRIVATE -DPQXX_INTERNAL -DNOMINMAX ${SHARED_DEFINITION})
+target_include_directories(${TARGET} PRIVATE include ${LIBPQ_FE_H} ${POSTGRES_EXT_H} ${CMAKE_BINARY_DIR})
+target_link_libraries(${TARGET} PRIVATE ws2_32)
+if(LIBPQD AND LIBPQ)
+ target_link_libraries(${TARGET} PRIVATE debug ${LIBPQD} optimized ${LIBPQ})
+elseif(LIBPQD)
+ target_link_libraries(${TARGET} PRIVATE ${LIBPQD})
+else()
+ target_link_libraries(${TARGET} PRIVATE ${LIBPQ})
+endif()
+
+install(TARGETS ${TARGET}
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+ )
+install(DIRECTORY include/ DESTINATION include
+ CONFIGURATIONS Release
+ PATTERN "doc" EXCLUDE
+ PATTERN "*.am" EXCLUDE
+ PATTERN "*.in" EXCLUDE
+ PATTERN "*.template" EXCLUDE
+ )
+install(DIRECTORY ${CMAKE_BINARY_DIR}/pqxx/ DESTINATION include/pqxx
+ CONFIGURATIONS Release
+ FILES_MATCHING PATTERN "*.h"
+ )
diff --git a/ports/libpqxx/CONTROL b/ports/libpqxx/CONTROL
new file mode 100644
index 000000000..8860ddaf9
--- /dev/null
+++ b/ports/libpqxx/CONTROL
@@ -0,0 +1,4 @@
+Source: libpqxx
+Version: 6.0.0
+Description: The official C++ client API for PostgreSQL
+Build-Depends: libpq
diff --git a/ports/libpqxx/config-internal-compiler.h.in b/ports/libpqxx/config-internal-compiler.h.in
new file mode 100644
index 000000000..6a5f07fbe
--- /dev/null
+++ b/ports/libpqxx/config-internal-compiler.h.in
@@ -0,0 +1,14 @@
+/* System supports poll(). */
+#cmakedefine HAVE_POLL 1
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#cmakedefine HAVE_SYS_SELECT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#cmakedefine HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#cmakedefine HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#cmakedefine HAVE_UNISTD_H 1
diff --git a/ports/libpqxx/config-public-compiler.h.in b/ports/libpqxx/config-public-compiler.h.in
new file mode 100644
index 000000000..24479707a
--- /dev/null
+++ b/ports/libpqxx/config-public-compiler.h.in
@@ -0,0 +1,8 @@
+/* Define if compiler supports [[deprecated]] attribute */
+#cmakedefine PQXX_HAVE_DEPRECATED 1
+
+/* Define if the compiler supports std::experimental::optional. */
+#cmakedefine PQXX_HAVE_EXP_OPTIONAL 1
+
+/* Define if the compiler supports std::optional. */
+#cmakedefine PQXX_HAVE_OPTIONAL 1
diff --git a/ports/libpqxx/portfile.cmake b/ports/libpqxx/portfile.cmake
new file mode 100644
index 000000000..2ba92b1cb
--- /dev/null
+++ b/ports/libpqxx/portfile.cmake
@@ -0,0 +1,23 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO jtv/libpqxx
+ REF 6.0.0
+ SHA512 f237cc03c01a8262eee44a9428206c1cc11b6034dddf540afef145f58eee5c32b880d84832563480d73d834c24311170e2ef6789e100793afbe0b6e393bd4169
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/config-public-compiler.h.in DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/config-internal-compiler.h.in DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libpqxx RENAME copyright)
diff --git a/ports/libqrencode/CONTROL b/ports/libqrencode/CONTROL
new file mode 100644
index 000000000..056d6a92b
--- /dev/null
+++ b/ports/libqrencode/CONTROL
@@ -0,0 +1,4 @@
+Source: libqrencode
+Version: 4.0.0-2
+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..72af0103e
--- /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 ${SOURCE_PATH}/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/librabbitmq/CONTROL b/ports/librabbitmq/CONTROL
new file mode 100644
index 000000000..19b131f82
--- /dev/null
+++ b/ports/librabbitmq/CONTROL
@@ -0,0 +1,4 @@
+Source: librabbitmq
+Version: 0.8.0
+Build-Depends: openssl
+Description: A C-language AMQP client library for use with v2.0+ of the RabbitMQ broker.
diff --git a/ports/librabbitmq/portfile.cmake b/ports/librabbitmq/portfile.cmake
new file mode 100644
index 000000000..cfdcf9527
--- /dev/null
+++ b/ports/librabbitmq/portfile.cmake
@@ -0,0 +1,29 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO alanxz/rabbitmq-c
+ REF v0.8.0
+ SHA512 54e1c98a6b0eb7de848c9fac13dcde6455a6f71acee9e62a96c171f0e3e1cf860a70837f07b633d1a55b1ffd3d33ed7186b52495fa4c6e755b69a7e728eb9f1a
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DBUILD_EXAMPLES=OFF
+ -DBUILD_SHARED_LIBS=${BUILD_SHARED}
+ -DBUILD_STATIC_LIBS=${BUILD_STATIC}
+ -DBUILD_TESTS=OFF
+ -DBUILD_TOOLS=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
+file(INSTALL ${SOURCE_PATH}/LICENSE-MIT DESTINATION ${CURRENT_PACKAGES_DIR}/share/librabbitmq RENAME copyright)
diff --git a/ports/libraw/CONTROL b/ports/libraw/CONTROL
index 9bb52aae0..e49e79f66 100644
--- a/ports/libraw/CONTROL
+++ b/ports/libraw/CONTROL
@@ -1,4 +1,4 @@
Source: libraw
-Version: 0.18.0-1
-Build-Depends: libjpeg-turbo
+Version: 0.18.2-5
+Build-Depends: lcms, jasper
Description: raw image decoder library
diff --git a/ports/libraw/portfile.cmake b/ports/libraw/portfile.cmake
index 2e25ec714..ee3c1ae26 100644
--- a/ports/libraw/portfile.cmake
+++ b/ports/libraw/portfile.cmake
@@ -1,9 +1,10 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/LibRaw-0.18.0)
+set(LIBRAW_VERSION 0.18.2)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/LibRaw-${LIBRAW_VERSION})
vcpkg_download_distfile(ARCHIVE
- URLS "http://www.libraw.org/data/LibRaw-0.18.0.zip"
- FILENAME "LibRaw-0.18.0.zip"
- SHA512 c66ae2331caffe18c2835d76d6106052125fab2f549a6f06687b4c1fedaae1c46ee0e4ae4c23b0480976870d76e8cfdbb91dd3cf11e3433ccc070bf03c538bb1
+ URLS "http://www.libraw.org/data/LibRaw-${LIBRAW_VERSION}.zip"
+ FILENAME "LibRaw-${LIBRAW_VERSION}.zip"
+ SHA512 e557dc47e8c2f79cdb55fafe7e668b823ecd7afe2537c8b7cd6e3f299110efa4ba1696ce8aa01bdba06a5570eec53a4a04f1af32974f98a1521ab5cd174effd3
)
set(LIBRAW_CMAKE_COMMIT "a71f3b83ee3dccd7be32f9a2f410df4d9bdbde0a")
set(LIBRAW_CMAKE_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/LibRaw-cmake-${LIBRAW_CMAKE_COMMIT})
@@ -22,17 +23,27 @@ file(COPY ${LIBRAW_CMAKE_SOURCE_PATH}/cmake DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
-DINSTALL_CMAKE_MODULE_PATH=${CURRENT_PACKAGES_DIR}/share/libraw
+ -DCMAKE_DEBUG_POSTFIX=d
)
vcpkg_install_cmake()
+file(READ ${CURRENT_PACKAGES_DIR}/include/libraw/libraw_types.h LIBRAW_H)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ string(REPLACE "#ifdef LIBRAW_NODLL" "#if 1" LIBRAW_H "${LIBRAW_H}")
+else()
+ string(REPLACE "#ifdef LIBRAW_NODLL" "#if 0" LIBRAW_H "${LIBRAW_H}")
+endif()
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/libraw/libraw_types.h "${LIBRAW_H}")
+
# Rename thread-safe version to be "raw.lib". This is unfortunately needed
# because otherwise libraries that build on top of libraw have to choose.
-file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/raw.lib ${CURRENT_PACKAGES_DIR}/debug/lib/raw.lib)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/raw.lib ${CURRENT_PACKAGES_DIR}/debug/lib/rawd.lib)
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/raw_r.lib ${CURRENT_PACKAGES_DIR}/lib/raw.lib)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/raw_r.lib ${CURRENT_PACKAGES_DIR}/debug/lib/raw.lib)
+file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/raw_rd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/rawd.lib)
# Cleanup
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
@@ -43,7 +54,7 @@ file(REMOVE ${DEBUG_EXECUTABLES})
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
else()
- file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/raw.dll ${CURRENT_PACKAGES_DIR}/debug/bin/raw.dll)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/raw.dll ${CURRENT_PACKAGES_DIR}/debug/bin/rawd.dll)
endif()
# Rename cmake module into a config in order to allow more flexible lookup rules
diff --git a/ports/librsync/CONTROL b/ports/librsync/CONTROL
new file mode 100644
index 000000000..b51be6105
--- /dev/null
+++ b/ports/librsync/CONTROL
@@ -0,0 +1,3 @@
+Source: librsync
+Version: 2.0.2
+Description: librsync is a library for calculating and applying network deltas, with an interface designed to ease integration into diverse network applications.
diff --git a/ports/librsync/portfile.cmake b/ports/librsync/portfile.cmake
new file mode 100644
index 000000000..0f9cfad55
--- /dev/null
+++ b/ports/librsync/portfile.cmake
@@ -0,0 +1,39 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO librsync/librsync
+ REF v2.0.2
+ SHA512 5d2bc1d62b37e9ed7416203615d0a0e3c05c4c884b5da63eda10dd5c985845b500331bce226e4d45676729382c85b41528282e25d491afda31ba434ac0fefad7
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DBUILD_RDIFF:BOOL=OFF
+ -DENABLE_COMPRESSION:BOOL=OFF
+ -DENABLE_TRACE:BOOL=OFF
+ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS:BOOL=ON
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/rsync.dll)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/rsync.dll ${CURRENT_PACKAGES_DIR}/bin/rsync.dll)
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/rsync.dll)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/rsync.dll ${CURRENT_PACKAGES_DIR}/debug/bin/rsync.dll)
+endif()
+
+file(INSTALL
+ ${SOURCE_PATH}/COPYING
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/librsync RENAME copyright
+)
+
+vcpkg_copy_pdbs()
diff --git a/ports/librtmp/CMakeLists.txt b/ports/librtmp/CMakeLists.txt
new file mode 100644
index 000000000..9751f3d73
--- /dev/null
+++ b/ports/librtmp/CMakeLists.txt
@@ -0,0 +1,56 @@
+cmake_minimum_required(VERSION 3.8)
+
+project(librtmp C)
+
+find_package(ZLIB REQUIRED)
+find_package(OpenSSL REQUIRED)
+
+include_directories(${ZLIB_INCLUDE_DIRS})
+include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+
+set(CMAKE_DEBUG_POSTFIX "d")
+
+if(MSVC)
+ add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
+ add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
+ add_definitions(-D_WINSOCK_DEPRECATED_NO_WARNINGS)
+endif()
+
+add_definitions(-DLIBRTMP_ONLY)
+
+# List the header files
+set(HEADERS librtmp/amf.h
+ librtmp/bytes.h
+ librtmp/dh.h
+ librtmp/dhgroups.h
+ librtmp/handshake.h
+ librtmp/http.h
+ librtmp/log.h
+ librtmp/rtmp.h
+ librtmp/rtmp_sys.h
+)
+
+# List the source files
+set(SRCS librtmp/amf.c
+ librtmp/hashswf.c
+ librtmp/log.c
+ librtmp/parseurl.c
+ librtmp/rtmp.c
+)
+
+if(MSVC)
+ set(SRCS_MSVC "librtmp/librtmp.def")
+endif()
+
+add_library(librtmp ${SRCS} ${HEADERS} ${SRCS_MSVC})
+
+target_include_directories(librtmp PRIVATE ./librtmp)
+target_link_libraries(librtmp PRIVATE ${ZLIB_LIBRARIES} ${OPENSSL_LIBRARIES})
+target_link_libraries(librtmp PRIVATE Ws2_32.lib Winmm.lib)
+
+install(TARGETS librtmp
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
+install(DIRECTORY ${PROJECT_SOURCE_DIR}/librtmp DESTINATION include FILES_MATCHING PATTERN "*.h")
diff --git a/ports/librtmp/CONTROL b/ports/librtmp/CONTROL
new file mode 100644
index 000000000..957f5ee16
--- /dev/null
+++ b/ports/librtmp/CONTROL
@@ -0,0 +1,4 @@
+Source: librtmp
+Version: 2.4-1
+Build-Depends: zlib, openssl
+Description: RTMPDump Real-Time Messaging Protocol API
diff --git a/ports/librtmp/fix_strncasecmp.patch b/ports/librtmp/fix_strncasecmp.patch
new file mode 100644
index 000000000..3e0c7ea96
--- /dev/null
+++ b/ports/librtmp/fix_strncasecmp.patch
@@ -0,0 +1,20 @@
+diff --git a/librtmp/rtmp_sys.h b/librtmp/rtmp_sys.h
+index 6a3f215..1b5ac2a 100644
+--- a/librtmp/rtmp_sys.h
++++ b/librtmp/rtmp_sys.h
+@@ -28,11 +28,13 @@
+ #include <ws2tcpip.h>
+
+ #ifdef _MSC_VER /* MSVC */
++#if _MSC_VER < 1900
+ #define snprintf _snprintf
+-#define strcasecmp stricmp
+-#define strncasecmp strnicmp
+ #define vsnprintf _vsnprintf
+ #endif
++#define strcasecmp _stricmp
++#define strncasecmp _strnicmp
++#endif
+
+ #define GetSockError() WSAGetLastError()
+ #define SetSockError(e) WSASetLastError(e)
diff --git a/ports/librtmp/hide_netstackdump.patch b/ports/librtmp/hide_netstackdump.patch
new file mode 100644
index 000000000..2ae44e46b
--- /dev/null
+++ b/ports/librtmp/hide_netstackdump.patch
@@ -0,0 +1,58 @@
+diff --git a/librtmp/rtmp.c b/librtmp/rtmp.c
+index 5ef3ae9..7c6a010 100644
+--- a/librtmp/rtmp.c
++++ b/librtmp/rtmp.c
+@@ -129,7 +129,7 @@ static int clk_tck;
+ uint32_t
+ RTMP_GetTime()
+ {
+-#ifdef _DEBUG
++#if defined(_DEBUG) && !defined(LIBRTMP_ONLY)
+ return 0;
+ #elif defined(_WIN32)
+ return timeGetTime();
+@@ -1256,7 +1256,7 @@ RTMP_ClientPacket(RTMP *r, RTMPPacket *packet)
+ return bHasMediaPacket;
+ }
+
+-#ifdef _DEBUG
++#if defined(_DEBUG) && !defined(LIBRTMP_ONLY)
+ extern FILE *netstackdump;
+ extern FILE *netstackdump_read;
+ #endif
+@@ -1333,7 +1333,7 @@ ReadN(RTMP *r, char *buffer, int n)
+ SendBytesReceived(r);
+ }
+ /*RTMP_Log(RTMP_LOGDEBUG, "%s: %d bytes\n", __FUNCTION__, nBytes); */
+-#ifdef _DEBUG
++#if defined(_DEBUG) && !defined(LIBRTMP_ONLY)
+ fwrite(ptr, 1, nBytes, netstackdump_read);
+ #endif
+
+@@ -3064,7 +3064,7 @@ HandShake(RTMP *r, int FP9HandShake)
+
+ memset(&clientsig[4], 0, 4);
+
+-#ifdef _DEBUG
++#if defined(_DEBUG) && !defined(LIBRTMP_ONLY)
+ for (i = 8; i < RTMP_SIG_SIZE; i++)
+ clientsig[i] = 0xff;
+ #else
+@@ -3136,7 +3136,7 @@ SHandShake(RTMP *r)
+ memcpy(serversig, &uptime, 4);
+
+ memset(&serversig[4], 0, 4);
+-#ifdef _DEBUG
++#if defined(_DEBUG) && !defined(LIBRTMP_ONLY)
+ for (i = 8; i < RTMP_SIG_SIZE; i++)
+ serversig[i] = 0xff;
+ #else
+@@ -3553,7 +3553,7 @@ RTMPSockBuf_Send(RTMPSockBuf *sb, const char *buf, int len)
+ {
+ int rc;
+
+-#ifdef _DEBUG
++#if defined(_DEBUG) && !defined(LIBRTMP_ONLY)
+ fwrite(buf, 1, len, netstackdump);
+ #endif
+
diff --git a/ports/librtmp/librtmp.def b/ports/librtmp/librtmp.def
new file mode 100644
index 000000000..837e6a355
--- /dev/null
+++ b/ports/librtmp/librtmp.def
@@ -0,0 +1,109 @@
+EXPORTS
+ AMF3_Decode
+ AMF3CD_AddProp
+ AMF3CD_GetProp
+ AMF3Prop_Decode
+ AMF3ReadInteger
+ AMF3ReadString
+
+ AMF_AddProp
+ AMF_CountProp
+ AMF_Decode
+ AMF_DecodeArray
+ AMF_DecodeBoolean
+ AMF_DecodeInt16
+ AMF_DecodeInt24
+ AMF_DecodeInt32
+ AMF_DecodeLongString
+ AMF_DecodeNumber
+ AMF_DecodeString
+ AMF_Dump
+ AMF_Encode
+ AMF_EncodeBoolean
+ AMF_EncodeInt16
+ AMF_EncodeInt24
+ AMF_EncodeInt32
+ AMF_EncodeNamedBoolean
+ AMF_EncodeNamedNumber
+ AMF_EncodeNamedString
+ AMF_EncodeNumber
+ AMF_EncodeString
+ AMF_GetProp
+ AMF_Reset
+
+ AMFProp_Decode
+ AMFProp_Dump
+ AMFProp_Encode
+ AMFProp_GetBoolean
+ AMFProp_GetName
+ AMFProp_GetNumber
+ AMFProp_GetObject
+ AMFProp_GetString
+ AMFProp_GetType
+ AMFProp_IsValid
+ AMFProp_Reset
+ AMFProp_SetName
+
+ RTMP_Alloc
+ RTMP_ClientPacket
+ RTMP_Close
+ RTMP_Connect
+ RTMP_Connect0
+ RTMP_Connect1
+ RTMP_ConnectStream
+ RTMP_debuglevel
+ RTMP_DeleteStream
+ RTMP_DropRequest
+ RTMP_EnableWrite
+ RTMP_FindFirstMatchingProperty
+ RTMP_FindPrefixProperty
+ RTMP_Free
+ RTMP_GetDuration
+ RTMP_GetNextMediaPacket
+ RTMP_GetTime
+ RTMP_HashSWF
+ RTMP_Init
+ RTMP_IsConnected
+ RTMP_IsTimedout
+ RTMP_LibVersion
+ RTMP_Log
+ RTMP_LogGetLevel
+ RTMP_LogHex
+ RTMP_LogHexString
+ RTMP_LogPrintf
+ RTMP_LogSetCallback
+ RTMP_LogSetLevel
+ RTMP_LogSetOutput
+ RTMP_LogStatus
+ RTMP_ParsePlaypath
+ RTMP_ParseURL
+ RTMP_Pause
+ RTMP_Read
+ RTMP_ReadPacket
+ RTMP_ReconnectStream
+ RTMP_SendChunk
+ RTMP_SendClientBW
+ RTMP_SendCreateStream
+ RTMP_SendCtrl
+ RTMP_SendPacket
+ RTMP_SendPause
+ RTMP_SendSeek
+ RTMP_SendServerBW
+ RTMP_Serve
+ RTMP_SetBufferMS
+ RTMP_SetOpt
+ RTMP_SetupStream
+ RTMP_SetupURL
+ RTMP_Socket
+ RTMP_TLS_Init
+ RTMP_ToggleStream
+ RTMP_UpdateBufferMS
+ RTMP_UserInterrupt
+ RTMP_Write
+ RTMPPacket_Alloc
+ RTMPPacket_Dump
+ RTMPPacket_Free
+ RTMPPacket_Reset
+ RTMPSockBuf_Close
+ RTMPSockBuf_Fill
+ RTMPSockBuf_Send
diff --git a/ports/librtmp/portfile.cmake b/ports/librtmp/portfile.cmake
new file mode 100644
index 000000000..25e41bbf7
--- /dev/null
+++ b/ports/librtmp/portfile.cmake
@@ -0,0 +1,37 @@
+include(vcpkg_common_functions)
+
+set(RTMPDUMP_VERSION 2.4)
+set(RTMPDUMP_FILENAME rtmpdump-${RTMPDUMP_VERSION}.tar.gz)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/rtmpdump)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://rtmpdump.mplayerhq.hu/download/${RTMPDUMP_FILENAME}"
+ FILENAME "${RTMPDUMP_FILENAME}"
+ SHA512 a6253af95492739366dce620a2a6cc6f4f18d7f12f9ef2c747240259066ca135beeb02091d0f3dd8380c0c294a30d3f702ad3fad1dee1db4e70473078fb81609
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/librtmp.def DESTINATION ${SOURCE_PATH}/librtmp)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix_strncasecmp.patch
+ ${CMAKE_CURRENT_LIST_DIR}/hide_netstackdump.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# License and man
+file(INSTALL ${SOURCE_PATH}/librtmp/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/librtmp RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/librtmp/librtmp.3.html DESTINATION ${CURRENT_PACKAGES_DIR}/share/librtmp)
+
+vcpkg_copy_pdbs()
diff --git a/ports/libsamplerate/CMakeLists.txt b/ports/libsamplerate/CMakeLists.txt
new file mode 100644
index 000000000..44ba2277a
--- /dev/null
+++ b/ports/libsamplerate/CMakeLists.txt
@@ -0,0 +1,14 @@
+add_library(libsamplerate-0
+ samplerate.c
+ src_sinc.c
+ src_zoh.c
+ src_linear.c
+ ../Win32/libsamplerate-0.def
+)
+
+install(TARGETS libsamplerate-0
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
+install(FILES samplerate.h DESTINATION include)
diff --git a/ports/libsamplerate/CONTROL b/ports/libsamplerate/CONTROL
new file mode 100644
index 000000000..d8a8f5f4e
--- /dev/null
+++ b/ports/libsamplerate/CONTROL
@@ -0,0 +1,3 @@
+Source: libsamplerate
+Version: 0.1.9.0
+Description: Sample Rate Converter for audio
diff --git a/ports/libsamplerate/portfile.cmake b/ports/libsamplerate/portfile.cmake
new file mode 100644
index 000000000..87712f6d2
--- /dev/null
+++ b/ports/libsamplerate/portfile.cmake
@@ -0,0 +1,26 @@
+include(vcpkg_common_functions)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libsamplerate-0.1.9)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.mega-nerd.com/SRC/libsamplerate-0.1.9.tar.gz"
+ FILENAME "libsamplerate-0.1.9.tar.gz"
+ SHA512 78596657963cbf06785e3e6e1190b093df71da52ca340e75bd8246a962cd79dd1c90fa5527c607cebcb296e2c1ee605015278b274e3b768f2f3fbeb0eadfb728
+)
+
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/src)
+file(COPY ${SOURCE_PATH}/Win32/config.h DESTINATION ${SOURCE_PATH}/src)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/src
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libsamplerate RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/libsigcpp/CMakeLists.txt b/ports/libsigcpp/CMakeLists.txt
index 7a669a24e..9c43b1a1b 100644
--- a/ports/libsigcpp/CMakeLists.txt
+++ b/ports/libsigcpp/CMakeLists.txt
@@ -1,6 +1,8 @@
cmake_minimum_required(VERSION 3.0)
project(libsigc++)
+set(CMAKE_CXX_STANDARD 17)
+
set(SIGCPP_API_VERSION 2.0)
add_definitions(-DSIGC_BUILD)
diff --git a/ports/libsigcpp/CONTROL b/ports/libsigcpp/CONTROL
index 02b2e4b83..c0393066b 100644
--- a/ports/libsigcpp/CONTROL
+++ b/ports/libsigcpp/CONTROL
@@ -1,3 +1,3 @@
Source: libsigcpp
-Version: 2.10
+Version: 2.10-1
Description: Typesafe callback framework for C++
diff --git a/ports/libsndfile/CONTROL b/ports/libsndfile/CONTROL
index c1949d8fc..f870d97af 100644
--- a/ports/libsndfile/CONTROL
+++ b/ports/libsndfile/CONTROL
@@ -1,4 +1,4 @@
Source: libsndfile
-Version: libsndfile-1.0.29-6830c42
+Version: 1.0.29-6830c42-3
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..e217a9671 100644
--- a/ports/libsndfile/portfile.cmake
+++ b/ports/libsndfile/portfile.cmake
@@ -1,23 +1,19 @@
-# 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/libsndfile-6830c421899e32f8d413a903a21a9b6cf384d369)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/erikd/libsndfile/archive/6830c421899e32f8d413a903a21a9b6cf384d369.zip"
- FILENAME "libsndfile-1.0.29-6830c42.zip"
- SHA512 94b561f384606f2c3dccc79164ffb4f37b93cf96e102e8bc319b50acc0e27045eea61cbe49f25610151adbeb13cc1fd57ddbbeb76abddb0fb5027e0581b83bb6
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO erikd/libsndfile
+ REF 6830c421899e32f8d413a903a21a9b6cf384d369
+ SHA512 b13c5d7bc27218eff8a8c4ce89a964b4920b1d3946e4843e60be965d77ec205845750a82bf654a7c2c772bf3a24f6ff5706881b24ff12115f2525c8134b6d0b9
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/uwp-createfile-getfilesize.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/uwp-createfile-getfilesize-addendum.patch"
)
-vcpkg_extract_source_archive(${ARCHIVE})
if (VCPKG_CRT_LINKAGE STREQUAL "dynamic")
set(CRT_LIB_STATIC 0)
@@ -37,30 +33,34 @@ option(BUILD_EXECUTABLES "Build sndfile tools and install to folder tools" OFF)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA # Disable this option if project cannot be built with Ninja
- OPTIONS -DBUILD_PROGRAMS=${BUILD_EXECUTABLES} -DBUILD_EXAMPLES=0 -DBUILD_REGTEST=0 -DBUILD_TESTING=0 -DENABLE_STATIC_RUNTIME=${CRT_LIB_STATIC} -DBUILD_STATIC_LIBS=${BUILD_STATIC} -DBUILD_SHARED_LIBS=${BUILD_DYNAMIC}
+ PREFER_NINJA
+ OPTIONS -DBUILD_EXAMPLES=0 -DBUILD_REGTEST=0 -DBUILD_TESTING=0 -DENABLE_STATIC_RUNTIME=${CRT_LIB_STATIC} -DBUILD_STATIC_LIBS=${BUILD_STATIC}
+ OPTIONS_RELEASE -DBUILD_PROGRAMS=${BUILD_EXECUTABLES}
# Setting ENABLE_PACKAGE_CONFIG=0 has no effect
- # Avoid building tools in debug-build:
OPTIONS_DEBUG -DBUILD_PROGRAMS=0
)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake)
+
+# Fix applied for 6830c421899e32f8d413a903a21a9b6cf384d369
+file(READ "${CURRENT_PACKAGES_DIR}/share/libsndfile/LibSndFileTargets.cmake" _contents)
+string(REPLACE "INTERFACE_INCLUDE_DIRECTORIES \"\${_IMPORT_PREFIX}/lib\"" "INTERFACE_INCLUDE_DIRECTORIES \"\${_IMPORT_PREFIX}/include\"" _contents "${_contents}")
+file(WRITE "${CURRENT_PACKAGES_DIR}/share/libsndfile/LibSndFileTargets.cmake" "${_contents}")
+
vcpkg_copy_pdbs()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/cmake)
-file(COPY ${CURRENT_PACKAGES_DIR}/share/doc/libsndfile DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/libsndfile ${CURRENT_PACKAGES_DIR}/share/${PORT}/doc)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/doc/libsndfile ${CURRENT_PACKAGES_DIR}/share/${PORT}/doc)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc)
-file(COPY ${CURRENT_PACKAGES_DIR}/cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake )
if(BUILD_EXECUTABLES)
file(GLOB TOOLS ${CURRENT_PACKAGES_DIR}/bin/*.exe)
file(COPY ${TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
file(REMOVE ${TOOLS})
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
endif(BUILD_EXECUTABLES)
# Handle copyright
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
new file mode 100644
index 000000000..b670f39ff
--- /dev/null
+++ b/ports/libsodium/CONTROL
@@ -0,0 +1,3 @@
+Source: libsodium
+Version: 1.0.16-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
new file mode 100644
index 000000000..ff473b525
--- /dev/null
+++ b/ports/libsodium/portfile.cmake
@@ -0,0 +1,74 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO jedisct1/libsodium
+ REF 1.0.16
+ SHA512 a9b5c4484f08f3ec1703a6c3af0acfa233214d0d38f32c1fc26305fc01cd2d9c8d469d52d98e6329729c08c15ee0494494037d5ad1472864d3cbdb55a751afec
+ 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)
+else()
+ set(LIBSODIUM_RELEASE_CONFIGURATION Release)
+ set(LIBSODIUM_DEBUG_CONFIGURATION Debug)
+endif()
+
+vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/libsodium.vcxproj
+ RELEASE_CONFIGURATION ${LIBSODIUM_RELEASE_CONFIGURATION}
+ DEBUG_CONFIGURATION ${LIBSODIUM_DEBUG_CONFIGURATION}
+)
+
+IF(VCPKG_TARGET_ARCHITECTURE MATCHES "x86")
+ SET(BUILD_ARCH "Win32")
+ELSE()
+ SET(BUILD_ARCH ${VCPKG_TARGET_ARCHITECTURE})
+ENDIF()
+
+file(INSTALL
+ ${SOURCE_PATH}/src/libsodium/include/sodium.h
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
+)
+
+file(GLOB LIBSODIUM_HEADERS "${SOURCE_PATH}/src/libsodium/include/sodium/*.h")
+file(INSTALL
+ ${LIBSODIUM_HEADERS}
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include/sodium
+)
+
+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.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+vcpkg_copy_pdbs()
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/libsodium
+ RENAME copyright
+)
diff --git a/ports/libspatialite/CONTROL b/ports/libspatialite/CONTROL
new file mode 100644
index 000000000..bb19a0605
--- /dev/null
+++ b/ports/libspatialite/CONTROL
@@ -0,0 +1,5 @@
+Source: libspatialite
+Version: 4.3.0a-2
+Description: SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities.
+Build-Depends: libxml2, sqlite3, geos, proj4, zlib, freexl, libiconv
+
diff --git a/ports/libspatialite/fix-latin-literals.patch b/ports/libspatialite/fix-latin-literals.patch
new file mode 100644
index 000000000..3060593e7
--- /dev/null
+++ b/ports/libspatialite/fix-latin-literals.patch
@@ -0,0 +1,108 @@
+diff --git a/src/srsinit/epsg_inlined_prussian.c b/src/srsinit/epsg_inlined_prussian.c
+index a5c8334..dd75dde 100644
+--- a/src/srsinit/epsg_inlined_prussian.c
++++ b/src/srsinit/epsg_inlined_prussian.c
+@@ -282,10 +282,10 @@ initialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs *
+ add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",17.11233917],");
+ add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+ add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187913\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+- p = add_epsg_def(filter,first,last,187914,"mj10777.de",187914,"DHDN / Soldner 14 Gröditzberg I");
++ p = add_epsg_def(filter,first,last,187914,"mj10777.de",187914,u8"DHDN / Soldner 14 Gr\u00f6ditzberg I");
+ add_proj4text(p,0,"+proj=cass +lat_0=51.17819342 +lon_0=15.76127086 ");
+ add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+- add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 14 Gröditzberg I\",");
++ add_srs_wkt(p,0,u8"PROJCS[\"DHDN / Soldner 14 Gr\u00f6ditzberg I\",");
+ add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+ add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+ add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+@@ -346,10 +346,10 @@ initialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs *
+ add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",14.70144539],");
+ add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+ add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187916\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+- p = add_epsg_def(filter,first,last,187918,"mj10777.de",187918,"DHDN / Soldner 18 Müggelberg 600");
++ p = add_epsg_def(filter,first,last,187918,u8"mj10777.de",187918,"DHDN / Soldner 18 M\u00fcggelberg 600");
+ add_proj4text(p,0,"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 ");
+ add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+- add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 18 Müggelberg 600\",");
++ add_srs_wkt(p,0,u8"PROJCS[\"DHDN / Soldner 18 M\u00fcggelberg 600\",");
+ add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+ add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+ add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+@@ -362,10 +362,10 @@ initialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs *
+ add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.62720366666667],");
+ add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+ add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187918\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+- p = add_epsg_def(filter,first,last,187919,"mj10777.de",187919,"DHDN / Soldner 19 Götzer Berg 650");
++ p = add_epsg_def(filter,first,last,187919,"mj10777.de",187919,u8"DHDN / Soldner 19 G\u00f6tzer Berg 650");
+ add_proj4text(p,0,"+proj=cass +lat_0=52.43725961111112 +lon_0=12.72882972222223 ");
+ add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+- add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 19 Götzer Berg 650\",");
++ add_srs_wkt(p,0,u8"PROJCS[\"DHDN / Soldner 19 G\u00f6tzer Berg 650\",");
+ add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+ add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+ add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+@@ -458,10 +458,10 @@ initialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs *
+ add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",9.23411097],");
+ add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+ add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187924\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+- p = add_epsg_def(filter,first,last,187925,"mj10777.de",187925,"DHDN / Soldner 25 Rathkrügen");
++ p = add_epsg_def(filter,first,last,187925,"mj10777.de",187925,u8"DHDN / Soldner 25 Rathkr\u00fcgen");
+ add_proj4text(p,0,"+proj=cass +lat_0=53.81839364 +lon_0=10.04220189 ");
+ add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+- add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 25 Rathkrügen\",");
++ add_srs_wkt(p,0,u8"PROJCS[\"DHDN / Soldner 25 Rathkr\u00fcgen\",");
+ add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+ add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+ add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+@@ -570,10 +570,10 @@ initialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs *
+ add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",8.84051853],");
+ add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+ add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187931\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+- p = add_epsg_def(filter,first,last,187932,"mj10777.de",187932,"DHDN / Soldner 32 Münster");
++ p = add_epsg_def(filter,first,last,187932,"mj10777.de",187932,u8"DHDN / Soldner 32 M\u00fcnster");
+ add_proj4text(p,0,"+proj=cass +lat_0=51.96547642 +lon_0=7.62334994 ");
+ add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+- add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 32 Münster\",");
++ add_srs_wkt(p,0,u8"PROJCS[\"DHDN / Soldner 32 M\u00fcnster\",");
+ add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+ add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+ add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+@@ -634,10 +634,10 @@ initialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs *
+ add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",9.50203072],");
+ add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+ add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187935\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+- p = add_epsg_def(filter,first,last,187936,"mj10777.de",187936,"DHDN / Soldner 36 Schaumburg, Schloßturm");
++ p = add_epsg_def(filter,first,last,187936,"mj10777.de",187936,u8"DHDN / Soldner 36 Schaumburg, Schlo\u00dfturm");
+ add_proj4text(p,0,"+proj=cass +lat_0=50.34048964 +lon_0=7.97808156 ");
+ add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+- add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 36 Schaumburg, Schloßturm\",");
++ add_srs_wkt(p,0,u8"PROJCS[\"DHDN / Soldner 36 Schaumburg, Schlo\u00dfturm\",");
+ add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+ add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+ add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+@@ -666,10 +666,10 @@ initialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs *
+ add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.60594289],");
+ add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+ add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187937\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+- p = add_epsg_def(filter,first,last,187938,"mj10777.de",187938,"DHDN / Soldner 38 Cöln, Dom");
++ p = add_epsg_def(filter,first,last,187938,"mj10777.de",187938,u8"DHDN / Soldner 38 C\u00f6ln, Dom");
+ add_proj4text(p,0,"+proj=cass +lat_0=50.94257242 +lon_0=6.95897600 ");
+ add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+- add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 38 Cöln, Dom\",");
++ add_srs_wkt(p,0,u8"PROJCS[\"DHDN / Soldner 38 C\u00f6ln, Dom\",");
+ add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+ add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+ add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
+@@ -682,10 +682,10 @@ initialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs *
+ add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",6.95897600],");
+ add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],");
+ add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187938\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]");
+- p = add_epsg_def(filter,first,last,187939,"mj10777.de",187939,"DHDN / Soldner 39 Langschoß");
++ p = add_epsg_def(filter,first,last,187939,u8"mj10777.de",187939,"DHDN / Soldner 39 Langscho\u00df");
+ add_proj4text(p,0,"+proj=cass +lat_0=50.66738711 +lon_0=6.28935703 ");
+ add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs");
+- add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 39 Langschoß\",");
++ add_srs_wkt(p,0,u8"PROJCS[\"DHDN / Soldner 39 Langscho\u00df\",");
+ add_srs_wkt(p,1,"GEOGCS[\"DHDN\",");
+ add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",");
+ add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],");
diff --git a/ports/libspatialite/fix-makefiles.patch b/ports/libspatialite/fix-makefiles.patch
new file mode 100644
index 000000000..9372739bb
--- /dev/null
+++ b/ports/libspatialite/fix-makefiles.patch
@@ -0,0 +1,61 @@
+diff --git a/makefile.vc b/makefile.vc
+index 9b9e8ee..b524a27 100644
+--- a/makefile.vc
++++ b/makefile.vc
+@@ -59,7 +59,7 @@ LIBOBJ = src\gaiaaux\gg_sqlaux.obj src\gaiaaux\gg_utf8.obj \
+ src\versioninfo\version.obj src\virtualtext\virtualtext.obj
+ SPATIALITE_DLL = spatialite$(VERSION).dll
+
+-CFLAGS = /nologo -I.\src\headers -I. -IC:\OSGeo4W\include $(OPTFLAGS)
++CFLAGS = /nologo -I.\src\headers -I. -I$(INSTALLED_ROOT)\include $(OPTFLAGS)
+
+ default: all
+
+@@ -73,12 +73,9 @@ spatialite.lib: $(LIBOBJ)
+ $(SPATIALITE_DLL): spatialite_i.lib
+
+ spatialite_i.lib: $(LIBOBJ)
+- link /debug /dll /out:$(SPATIALITE_DLL) \
++ link $(LINK_FLAGS) /dll /out:$(SPATIALITE_DLL) \
+ /implib:spatialite_i.lib $(LIBOBJ) \
+- C:\OSGeo4W\lib\proj_i.lib C:\OSGeo4W\lib\geos_c.lib \
+- C:\OSGeo4w\lib\freexl_i.lib C:\OSGeo4w\lib\iconv.lib \
+- C:\OSGeo4W\lib\sqlite3_i.lib C:\OSGeo4W\lib\zlib.lib \
+- C:\OSGeo4W\lib\libxml2.lib
++ $(LIBS_ALL)
+ if exist $(SPATIALITE_DLL).manifest mt -manifest \
+ $(SPATIALITE_DLL).manifest -outputresource:$(SPATIALITE_DLL);2
+
+@@ -90,16 +87,7 @@ clean:
+ del *.exp
+ del *.manifest
+ del *.lib
+- del src\gaiaaux\*.obj
+- del src\gaiaexif\*.obj
+- del src\gaiageo\*.obj
+- del src\spatialite\*.obj
+- del src\srsinit\*.obj
+- del src\versioninfo\*.obj
+- del src\virtualtext\*.obj
+- del src\wfs\*.obj
+- del src\dxf\*.obj
+- del src\md5\*.obj
++ forfiles /m *.obj* /s /c "cmd /c del @path" & exit 0
+ del *.pdb
+
+ install: all
+diff --git a/nmake.opt b/nmake.opt
+index 0960ec1..276bc84 100644
+--- a/nmake.opt
++++ b/nmake.opt
+@@ -1,8 +1,8 @@
+ # Directory tree where SpatiaLite will be installed.
+-INSTDIR=C:\OSGeo4W
++INSTDIR=$(INST_DIR)
+
+ # Uncomment the first for an optimized build, or the second for debug.
+-OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \
++OPTFLAGS= /nologo /fp:precise /W3 $(CL_FLAGS) /D_CRT_SECURE_NO_WARNINGS \
+ /DDLL_EXPORT /DYY_NO_UNISTD_H
+ #OPTFLAGS= /nologo /Zi /MD /Fdspatialite.pdb /DDLL_EXPORT
+
diff --git a/ports/libspatialite/fix-sources.patch b/ports/libspatialite/fix-sources.patch
new file mode 100644
index 000000000..63def0d3c
--- /dev/null
+++ b/ports/libspatialite/fix-sources.patch
@@ -0,0 +1,32 @@
+diff --git a/config-msvc.h b/config-msvc.h
+index 9c7f477..a812546 100644
+--- a/config-msvc.h
++++ b/config-msvc.h
+@@ -143,7 +143,7 @@
+ #define HAVE_SYS_TYPES_H 1
+
+ /* Define to 1 if you have the <unistd.h> header file. */
+-#define HAVE_UNISTD_H 1
++#undef HAVE_UNISTD_H
+
+ /* Define to 1 if you have the <zlib.h> header file. */
+ #define HAVE_ZLIB_H 1
+diff --git a/src/gaiageo/gg_extras.c b/src/gaiageo/gg_extras.c
+index ff3dd7c..49ec986 100644
+--- a/src/gaiageo/gg_extras.c
++++ b/src/gaiageo/gg_extras.c
+@@ -59,14 +59,6 @@ the terms of any one of the MPL, the GPL or the LGPL.
+ #include <spatialite/sqlite.h>
+ #include <spatialite/gaiageo.h>
+
+-#if defined(_WIN32) && !defined(__MINGW32__)
+-static double
+-rint (double x)
+-{
+- return floor (x + 0.5);
+-}
+-#endif
+-
+ static void
+ auxGridSnapPoint (int dimension_model, gaiaPointPtr pt, gaiaGeomCollPtr result,
+ double origin_x, double origin_y, double origin_z,
diff --git a/ports/libspatialite/portfile.cmake b/ports/libspatialite/portfile.cmake
new file mode 100644
index 000000000..59a1499f4
--- /dev/null
+++ b/ports/libspatialite/portfile.cmake
@@ -0,0 +1,114 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libspatialite-4.3.0a)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-4.3.0a.tar.gz"
+ FILENAME "libspatialite-4.3.0a.tar.gz"
+ SHA512 adfd63e8dde0f370b07e4e7bb557647d2bfb5549205b60bdcaaca69ff81298a3d885e7c1ca515ef56dd0aca152ae940df8b5dbcb65bb61ae0a9337499895c3c0
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+find_program(NMAKE nmake)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-sources.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-latin-literals.patch
+)
+
+# fix most of the problems when spacebar is in the path
+set(CURRENT_INSTALLED_DIR "\"${CURRENT_INSTALLED_DIR}\"")
+
+if(VCPKG_CRT_LINKAGE STREQUAL dynamic)
+ set(CL_FLAGS_DBG "/MDd /Zi")
+ set(CL_FLAGS_REL "/MD /Ox")
+ set(GEOS_LIBS_REL "${CURRENT_INSTALLED_DIR}/lib/geos_c.lib")
+ set(GEOS_LIBS_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/geos_cd.lib")
+ set(LIBXML2_LIBS_REL "${CURRENT_INSTALLED_DIR}/lib/libxml2.lib")
+ set(LIBXML2_LIBS_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libxml2.lib")
+else()
+ set(CL_FLAGS_DBG "/MTd /Zi")
+ set(CL_FLAGS_REL "/MT /Ox")
+ set(GEOS_LIBS_REL "${CURRENT_INSTALLED_DIR}/lib/libgeos_c.lib ${CURRENT_INSTALLED_DIR}/lib/libgeos.lib")
+ set(GEOS_LIBS_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libgeos_cd.lib ${CURRENT_INSTALLED_DIR}/debug/lib/libgeosd.lib")
+ set(LIBXML2_LIBS_REL "${CURRENT_INSTALLED_DIR}/lib/libxml2.lib ${CURRENT_INSTALLED_DIR}/lib/lzma.lib ws2_32.lib")
+ set(LIBXML2_LIBS_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libxml2.lib ${CURRENT_INSTALLED_DIR}/debug/lib/lzma.lib ws2_32.lib")
+endif()
+
+set(LIBS_ALL_DBG
+ "${CURRENT_INSTALLED_DIR}/debug/lib/libiconv.lib \
+ ${CURRENT_INSTALLED_DIR}/debug/lib/libcharset.lib \
+ ${CURRENT_INSTALLED_DIR}/debug/lib/sqlite3.lib \
+ ${CURRENT_INSTALLED_DIR}/debug/lib/freexl.lib \
+ ${CURRENT_INSTALLED_DIR}/debug/lib/zlibd.lib \
+ ${LIBXML2_LIBS_DBG} \
+ ${GEOS_LIBS_DBG} \
+ ${CURRENT_INSTALLED_DIR}/debug/lib/projd.lib"
+ )
+set(LIBS_ALL_REL
+ "${CURRENT_INSTALLED_DIR}/lib/libiconv.lib \
+ ${CURRENT_INSTALLED_DIR}/lib/libcharset.lib \
+ ${CURRENT_INSTALLED_DIR}/lib/sqlite3.lib \
+ ${CURRENT_INSTALLED_DIR}/lib/freexl.lib \
+ ${CURRENT_INSTALLED_DIR}/lib/zlib.lib \
+ ${LIBXML2_LIBS_REL} \
+ ${GEOS_LIBS_REL} \
+ ${CURRENT_INSTALLED_DIR}/lib/proj.lib"
+ )
+
+################
+# Debug build
+################
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg")
+
+ file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/debug" INST_DIR_DBG)
+
+ vcpkg_execute_required_process(
+ COMMAND ${NMAKE} -f makefile.vc clean install
+ "INST_DIR=\"${INST_DIR_DBG}\"" INSTALLED_ROOT=${CURRENT_INSTALLED_DIR} "LINK_FLAGS=/debug" "CL_FLAGS=${CL_FLAGS_DBG}" "LIBS_ALL=${LIBS_ALL_DBG}"
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME nmake-build-${TARGET_TRIPLET}-debug
+ )
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg done")
+ vcpkg_copy_pdbs()
+endif()
+
+################
+# Release build
+################
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Building ${TARGET_TRIPLET}-rel")
+
+ file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR_REL)
+ vcpkg_execute_required_process(
+ COMMAND ${NMAKE} -f makefile.vc clean install
+ "INST_DIR=\"${INST_DIR_REL}\"" INSTALLED_ROOT=${CURRENT_INSTALLED_DIR} "LINK_FLAGS=" "CL_FLAGS=${CL_FLAGS_REL}" "LIBS_ALL=${LIBS_ALL_REL}"
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME nmake-build-${TARGET_TRIPLET}-release
+ )
+ message(STATUS "Building ${TARGET_TRIPLET}-rel done")
+endif()
+
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libspatialite RENAME copyright)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/spatialite_i.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/spatialite_i.lib)
+else()
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/spatialite.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/spatialite.lib)
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/spatialite_i.lib ${CURRENT_PACKAGES_DIR}/lib/spatialite.lib)
+ endif()
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/spatialite_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/spatialite.lib)
+ endif()
+endif()
+
+message(STATUS "Packaging ${TARGET_TRIPLET} done")
diff --git a/ports/libssh/CONTROL b/ports/libssh/CONTROL
new file mode 100644
index 000000000..5f3c8a0db
--- /dev/null
+++ b/ports/libssh/CONTROL
@@ -0,0 +1,4 @@
+Source: libssh
+Version: 0.7.5-4
+Description: libssh is a multiplatform C library implementing the SSHv2 and SSHv1 protocol on client and server side
+Build-Depends: zlib, openssl
diff --git a/ports/libssh/build-one-flavor.patch b/ports/libssh/build-one-flavor.patch
new file mode 100644
index 000000000..96e20ba98
--- /dev/null
+++ b/ports/libssh/build-one-flavor.patch
@@ -0,0 +1,20 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 1012ddf..612f0ba 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -225,6 +225,7 @@ include_directories(
+ ${LIBSSH_PRIVATE_INCLUDE_DIRS}
+ )
+
++if (NOT WITH_STATIC_LIB)
+ add_library(${LIBSSH_SHARED_LIBRARY} SHARED ${libssh_SRCS})
+
+ target_link_libraries(${LIBSSH_SHARED_LIBRARY} ${LIBSSH_LINK_LIBRARIES})
+@@ -259,6 +260,7 @@ install(
+ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
+ COMPONENT libraries
+ )
++endif()
+
+ if (WITH_STATIC_LIB)
+ add_library(${LIBSSH_STATIC_LIBRARY} STATIC ${libssh_SRCS})
diff --git a/ports/libssh/only-one-flavor-threads.patch b/ports/libssh/only-one-flavor-threads.patch
new file mode 100644
index 000000000..31b3e1f36
--- /dev/null
+++ b/ports/libssh/only-one-flavor-threads.patch
@@ -0,0 +1,21 @@
+diff --git a/src/threads/CMakeLists.txt b/src/threads/CMakeLists.txt
+index 2ab4e1b..a47620b 100644
+--- a/src/threads/CMakeLists.txt
++++ b/src/threads/CMakeLists.txt
+@@ -59,6 +59,7 @@ include_directories(
+ if (libssh_threads_SRCS)
+ set(LIBSSH_THREADS ON CACHE "libssh threads lib" INTERNAL)
+
++ if (NOT WITH_STATIC_LIB)
+ add_library(${LIBSSH_THREADS_SHARED_LIBRARY} SHARED ${libssh_threads_SRCS})
+
+ target_link_libraries(${LIBSSH_THREADS_SHARED_LIBRARY} ${LIBSSH_THREADS_LINK_LIBRARIES})
+@@ -89,7 +90,7 @@ if (libssh_threads_SRCS)
+ COMPONENT libraries
+ )
+
+- if (WITH_STATIC_LIB)
++ else (WITH_STATIC_LIB)
+ add_library(${LIBSSH_THREADS_STATIC_LIBRARY} STATIC ${libssh_threads_SRCS})
+
+ if (MSVC)
diff --git a/ports/libssh/portfile.cmake b/ports/libssh/portfile.cmake
new file mode 100644
index 000000000..49c927c22
--- /dev/null
+++ b/ports/libssh/portfile.cmake
@@ -0,0 +1,58 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+ message(FATAL_ERROR "WindowsStore not supported")
+endif()
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libssh-0.7.5)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://red.libssh.org/attachments/download/218/libssh-0.7.5.tar.xz"
+ FILENAME "libssh-0.7.5.tar.xz"
+ SHA512 6c7f539899caaedf13d66fa2e0fac1a475ecdfe389131abcbdf908bdebc50a0b9e6b0d43e67e52aea85c32f6aa68e46ca2f50695992f82ded83489f445a8e775
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/build-one-flavor.patch
+ ${CMAKE_CURRENT_LIST_DIR}/only-one-flavor-threads.patch
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" WITH_STATIC_LIB)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DWITH_STATIC_LIB=${WITH_STATIC_LIB}
+ -DWITH_EXAMPLES=OFF
+ -DWITH_TESTING=OFF
+ -DWITH_NACL=OFF
+ -DWITH_GSSAPI=OFF
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/static/ssh.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/static/ssh.lib ${CURRENT_PACKAGES_DIR}/lib/ssh.lib)
+ endif()
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/static/ssh.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/static/ssh.lib ${CURRENT_PACKAGES_DIR}/debug/lib/ssh.lib)
+ endif()
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+
+ file(READ ${CURRENT_PACKAGES_DIR}/include/libssh/libssh.h _contents)
+ string(REPLACE "#ifdef LIBSSH_STATIC" "#if 1" _contents "${_contents}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/libssh/libssh.h "${_contents}")
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/static ${CURRENT_PACKAGES_DIR}/debug/lib/static)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# The installed cmake config files are nonfunctional (0.7.5)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/cmake ${CURRENT_PACKAGES_DIR}/cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake ${CURRENT_PACKAGES_DIR}/lib/cmake)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libssh RENAME copyright)
diff --git a/ports/libssh2/CONTROL b/ports/libssh2/CONTROL
index 715ffa0bd..d050bf838 100644
--- a/ports/libssh2/CONTROL
+++ b/ports/libssh2/CONTROL
@@ -1,4 +1,4 @@
Source: libssh2
-Version: 1.8.0-1
+Version: 1.8.0-3
Build-Depends: zlib, openssl
-Description: The SSH library \ No newline at end of file
+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/libstemmer/CMakeLists.txt b/ports/libstemmer/CMakeLists.txt
new file mode 100644
index 000000000..787bb26ec
--- /dev/null
+++ b/ports/libstemmer/CMakeLists.txt
@@ -0,0 +1,22 @@
+cmake_minimum_required(VERSION 3.8.0)
+
+project(libstemmer)
+
+file(GLOB SNOWBALL_SOURCES
+ src_c/*.c
+ runtime/api.c
+ runtime/utilities.c
+ libstemmer/libstemmer.c
+)
+
+add_library(stemmer ${SNOWBALL_SOURCES})
+
+install(
+ TARGETS stemmer
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES include/libstemmer.h DESTINATION include)
+endif()
diff --git a/ports/libstemmer/CONTROL b/ports/libstemmer/CONTROL
new file mode 100644
index 000000000..c09295b62
--- /dev/null
+++ b/ports/libstemmer/CONTROL
@@ -0,0 +1,3 @@
+Source: libstemmer
+Version: 2017-9-3
+Description: Snowball is a small string processing language designed for creating stemming algorithms for use in Information Retrieval
diff --git a/ports/libstemmer/LICENSE b/ports/libstemmer/LICENSE
new file mode 100644
index 000000000..0c9e7c008
--- /dev/null
+++ b/ports/libstemmer/LICENSE
@@ -0,0 +1,19 @@
+Snowball - License
+Except where explicitly noted, all the software given out on this Snowball site is covered by the 3-clause BSD License:
+
+Copyright (c) 2001, Dr Martin Porter,
+Copyright (c) 2002, Richard Boulton.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+Essentially, all this means is that you can do what you like with the code, except claim another Copyright for it, or claim that it is issued under a different license. The software is also issued without warranties, which means that if anyone suffers through its use, they cannot come back and sue you. You also have to alert anyone to whom you give the Snowball software to the fact that it is covered by the BSD license.
+
+We have not bothered to insert the licensing arrangement into the text of the Snowball software.
diff --git a/ports/libstemmer/portfile.cmake b/ports/libstemmer/portfile.cmake
new file mode 100644
index 000000000..9a76c3a94
--- /dev/null
+++ b/ports/libstemmer/portfile.cmake
@@ -0,0 +1,24 @@
+include(vcpkg_common_functions)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "Dynamic not supported building static")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libstemmer_c)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://snowball.tartarus.org/dist/libstemmer_c.tgz"
+ FILENAME "libstemmer_c.tgz"
+ SHA512 9ab5b8bfd5b4071dbbd63d769e09fae3971b49ee441ad970aa95d90b3297f5ffc9deed1613d99974d1485bf3b69292663591957f52bbeddcadbf9d9a4af432f2
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libstemmer RENAME copyright)
diff --git a/ports/libtheora/0001-fix-uwp.patch b/ports/libtheora/0001-fix-uwp.patch
new file mode 100644
index 000000000..b6dc8779d
--- /dev/null
+++ b/ports/libtheora/0001-fix-uwp.patch
@@ -0,0 +1,53 @@
+From 47eb8d07a8caaa6cc1e6e906a7cd5b44ee0fb624 Mon Sep 17 00:00:00 2001
+From: Mikhail Paulyshka <me@mixaill.tk>
+Date: Thu, 27 Jul 2017 04:24:36 +0300
+Subject: [PATCH] remove redundant assignments
+
+---
+ lib/tokenize.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/lib/tokenize.c b/lib/tokenize.c
+index 57b7aa8..3f53fb5 100644
+--- a/lib/tokenize.c
++++ b/lib/tokenize.c
+@@ -487,11 +487,11 @@ int oc_enc_tokenize_ac(oc_enc_ctx *_enc,int _pli,ptrdiff_t _fragi,
+ zzj=64;
+ for(zzi=OC_MINI(_zzi,63);zzi>0;zzi--){
+ ogg_uint32_t best_cost;
+- int best_bits=best_bits;
+- int best_next=best_next;
+- int best_token=best_token;
+- int best_eb=best_eb;
+- int best_qc=best_qc;
++ int best_bits;
++ int best_next;
++ int best_token;
++ int best_eb;
++ int best_qc;
+ ogg_uint32_t d2;
+ int dq;
+ int qc_m;
+@@ -1091,8 +1091,8 @@ void oc_enc_tokenize_dc_frag_list(oc_enc_ctx *_enc,int _pli,
+ int neobs1;
+ int token;
+ int eb;
+- int token1=token1;
+- int eb1=eb1;
++ int token1;
++ int eb1;
+ /*Return immediately if there are no coded fragments; otherwise we'd flush
+ any trailing EOB run into the AC 1 list and never read it back out.*/
+ if(_ncoded_fragis<=0)return;
+@@ -1328,7 +1328,7 @@ void oc_enc_tokenize_finish(oc_enc_ctx *_enc){
+ int new_eb;
+ int zzj;
+ int plj;
+- ptrdiff_t ti=ti;
++ ptrdiff_t ti;
+ int run_count;
+ /*Make sure this coefficient has tokens at all.*/
+ if(_enc->ndct_tokens[pli][zzi]<=0)continue;
+--
+2.12.2.windows.2
+
diff --git a/ports/libtheora/CMakeLists.txt b/ports/libtheora/CMakeLists.txt
index a13c5a8e6..cf8799e5d 100644
--- a/ports/libtheora/CMakeLists.txt
+++ b/ports/libtheora/CMakeLists.txt
@@ -1,67 +1,91 @@
-project(theora)
+cmake_minimum_required(VERSION 3.0)
+project(theora LANGUAGES C)
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}")
FIND_PACKAGE(OGG REQUIRED)
file(GLOB HEADERS
-"include/theora/codec.h"
-"include/theora/theora.h"
-"include/theora/theoradec.h"
+ "include/theora/codec.h"
+ "include/theora/theora.h"
+ "include/theora/theoradec.h"
+ "include/theora/theoraenc.h"
)
-
include_directories("include")
include_directories(${OGG_INCLUDE_DIR})
-file(GLOB SOURCES
-"lib/analyze.c"
-"lib/encapiwrapper.c"
-"lib/encfrag.c"
-"lib/encinfo.c"
-"lib/encode.c"
-#"lib/encoder_disabled.c"
-"lib/enquant.c"
-"lib/fdct.c"
-"lib/huffenc.c"
-"lib/mathops.c"
-"lib/mcenc.c"
-"lib/rate.c"
-"lib/tokenize.c"
-"lib/x86_vc/mmxencfrag.c"
-"lib/x86_vc/mmxfdct.c"
-"lib/x86_vc/x86cpu.c"
-"lib/x86_vc/x86enc.c"
-"lib/apiwrapper.c"
-"lib/bitpack.c"
-"lib/decapiwrapper.c"
-"lib/decinfo.c"
-"lib/decode.c"
-"lib/dequant.c"
-"lib/fragment.c"
-"lib/huffdec.c"
-"lib/idct.c"
-"lib/info.c"
-"lib/internal.c"
-"lib/quant.c"
-"lib/state.c"
-"lib/x86_vc/mmxfrag.c"
-"lib/x86_vc/mmxidct.c"
-"lib/x86_vc/mmxstate.c"
-"lib/x86_vc/x86state.c"
-"win32/xmingw32/libtheoradec-all.def"
+set(LIBTHEORA_COMMON
+ "lib/apiwrapper.c"
+ "lib/bitpack.c"
+ "lib/dequant.c"
+ "lib/fragment.c"
+ "lib/idct.c"
+ "lib/info.c"
+ "lib/internal.c"
+ "lib/state.c"
+ "lib/quant.c"
+
+ "lib/x86_vc/mmxfrag.c"
+ "lib/x86_vc/mmxidct.c"
+ "lib/x86_vc/mmxstate.c"
+ "lib/x86_vc/x86cpu.c"
+ "lib/x86_vc/x86state.c"
+)
+
+set(LIBTHEORA_ENC
+ "lib/analyze.c"
+ "lib/encapiwrapper.c"
+ "lib/encfrag.c"
+ "lib/encinfo.c"
+ "lib/encode.c"
+ "lib/enquant.c"
+ "lib/fdct.c"
+ "lib/huffenc.c"
+ "lib/mathops.c"
+ "lib/mcenc.c"
+ "lib/rate.c"
+ "lib/tokenize.c"
+
+ "lib/x86_vc/mmxencfrag.c"
+ "lib/x86_vc/mmxfdct.c"
+ "lib/x86_vc/x86enc.c"
+)
+
+set(LIBTHEORA_DEC
+ "lib/decapiwrapper.c"
+ "lib/decinfo.c"
+ "lib/decode.c"
+ "lib/huffdec.c"
)
-add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_BIND_TO_CURRENT_CRT_VERSION)
-if (${BUILD_SHARED_LIBS})
- add_definitions(-DLIBTHEORA_EXPORTS)
+add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
+add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
+
+option(USE_X86 "Use x86 optimization" OFF)
+if(USE_X86)
+ add_definitions(-DOC_X86_ASM)
+endif()
+
+if (BUILD_SHARED_LIBS)
+ add_definitions(-DLIBTHEORA_EXPORTS)
endif()
-add_library(theora ${SOURCES} ${HEADERS})
+add_library(theora-common OBJECT ${LIBTHEORA_COMMON} ${HEADERS})
+add_library(theora-enc OBJECT ${LIBTHEORA_ENC} ${HEADERS})
+add_library(theora-dec OBJECT ${LIBTHEORA_DEC} ${HEADERS})
+
+add_library(theora $<TARGET_OBJECTS:theora-common> $<TARGET_OBJECTS:theora-enc> $<TARGET_OBJECTS:theora-dec> "libtheora.def")
target_link_libraries(theora ${OGG_LIBRARY})
+add_library(theoraenc $<TARGET_OBJECTS:theora-common> $<TARGET_OBJECTS:theora-enc> "win32/xmingw32/libtheoraenc-all.def")
+target_link_libraries(theoraenc ${OGG_LIBRARY})
+
+add_library(theoradec $<TARGET_OBJECTS:theora-common> $<TARGET_OBJECTS:theora-dec> "win32/xmingw32/libtheoradec-all.def")
+target_link_libraries(theoradec ${OGG_LIBRARY})
+
install(FILES ${HEADERS} DESTINATION include/theora)
-install(TARGETS theora
+install(TARGETS theora theoraenc theoradec
RUNTIME DESTINATION bin
LIBRARY DESTINATION bin
ARCHIVE DESTINATION lib
diff --git a/ports/libtheora/CONTROL b/ports/libtheora/CONTROL
index 7d373c1cf..7324f0526 100644
--- a/ports/libtheora/CONTROL
+++ b/ports/libtheora/CONTROL
@@ -1,4 +1,4 @@
Source: libtheora
-Version: 1.1.1
+Version: 1.2.0alpha1-20170719~vcpkg1-1
Description: Theora is a free and open video compression format from the Xiph.org Foundation.
Build-Depends: libogg
diff --git a/ports/libtheora/libtheora.def b/ports/libtheora/libtheora.def
new file mode 100644
index 000000000..9755b81e7
--- /dev/null
+++ b/ports/libtheora/libtheora.def
@@ -0,0 +1,61 @@
+EXPORTS
+; Old alpha API
+ theora_version_string
+ theora_version_number
+ theora_decode_header
+ theora_decode_init
+ theora_decode_packetin
+ theora_decode_YUVout
+ theora_control
+ theora_packet_isheader
+ theora_packet_iskeyframe
+ theora_granule_shift
+ theora_granule_frame
+ theora_granule_time
+ theora_info_init
+ theora_info_clear
+ theora_clear
+ theora_comment_init
+ theora_comment_add
+ theora_comment_add_tag
+ theora_comment_query
+ theora_comment_query_count
+ theora_comment_clear
+; New theora-exp API
+ th_version_string
+ th_version_number
+ th_decode_headerin
+ th_decode_alloc
+ th_setup_free
+ th_decode_ctl
+ th_decode_packetin
+ th_decode_ycbcr_out
+ th_decode_free
+ th_packet_isheader
+ th_packet_iskeyframe
+ th_granule_frame
+ th_granule_time
+ th_info_init
+ th_info_clear
+ th_comment_init
+ th_comment_add
+ th_comment_add_tag
+ th_comment_query
+ th_comment_query_count
+ th_comment_clear
+; Old alpha API
+ theora_encode_init
+ theora_encode_YUVin
+ theora_encode_packetout
+ theora_encode_header
+ theora_encode_comment
+ theora_encode_tables
+; New theora-exp API
+ th_encode_alloc
+ th_encode_ctl
+ th_encode_flushheader
+ th_encode_ycbcr_in
+ th_encode_packetout
+ th_encode_free
+ TH_VP31_QUANT_INFO
+ TH_VP31_HUFF_CODES
diff --git a/ports/libtheora/portfile.cmake b/ports/libtheora/portfile.cmake
index 0d63621e5..9312d6685 100644
--- a/ports/libtheora/portfile.cmake
+++ b/ports/libtheora/portfile.cmake
@@ -1,31 +1,41 @@
-# 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}
-#
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libtheora-1.1.1)
-vcpkg_download_distfile(ARCHIVE
- URLS "http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2"
- FILENAME "libtheora-1.1.1.tar.bz2"
- SHA512 9ab9b3af1c35d16a7d6d84f61f59ef3180132e30c27bdd7c0fa2683e0d00e2c791accbc7fd2c90718cc947d8bd10ee4a5940fb55f90f1fd7b0ed30583a47dbbd
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO xiph/theora
+ REF fa5707d68c2a4338d58aa8b6afc95539ba89fecb
+ SHA512 e33da23a17e93709dfe4421b512cedbd9aab0d706f5650e0436f9c8e1cde76b902c3338d46750bb86d83e1bceb111ee84e90df36fb59b5c2e7f7aee1610752b2
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001-fix-uwp.patch
)
-vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/libtheora.def DESTINATION ${SOURCE_PATH})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindOGG.cmake DESTINATION ${SOURCE_PATH})
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(THEORA_X86_OPT ON)
+else()
+ set(THEORA_X86_OPT OFF)
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DUSE_X86=${THEORA_X86_OPT}
)
+vcpkg_build_cmake()
vcpkg_install_cmake()
+vcpkg_copy_pdbs()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libtheora)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libtheora/LICENSE ${CURRENT_PACKAGES_DIR}/share/libtheora/copyright)
diff --git a/ports/libtorrent/CONTROL b/ports/libtorrent/CONTROL
new file mode 100644
index 000000000..815a53497
--- /dev/null
+++ b/ports/libtorrent/CONTROL
@@ -0,0 +1,4 @@
+Source: libtorrent
+Version: 1.1.6-1
+Description: An efficient feature complete C++ BitTorrent implementation
+Build-Depends: openssl, boost-system, boost-date-time, boost-chrono, boost-random, boost-asio, boost-crc, boost-config, boost-iterator
diff --git a/ports/libtorrent/add-datetime-to-boost-libs.patch b/ports/libtorrent/add-datetime-to-boost-libs.patch
new file mode 100644
index 000000000..35d8de1cf
--- /dev/null
+++ b/ports/libtorrent/add-datetime-to-boost-libs.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 340e38f..1963d90 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -258,7 +258,7 @@ endif()
+
+ # Boost
+ if(NOT DEFINED Boost_INCLUDE_DIR OR NOT DEFINED Boost_LIBRARIES)
+- FIND_PACKAGE(Boost REQUIRED COMPONENTS system chrono random)
++ FIND_PACKAGE(Boost REQUIRED COMPONENTS system date_time chrono random)
+ endif()
+ include_directories(${Boost_INCLUDE_DIRS})
+ target_link_libraries(torrent-rasterbar ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
diff --git a/ports/libtorrent/boost-167.patch b/ports/libtorrent/boost-167.patch
new file mode 100644
index 000000000..279d517d5
--- /dev/null
+++ b/ports/libtorrent/boost-167.patch
@@ -0,0 +1,48 @@
+diff --git a/include/libtorrent/ip_filter.hpp b/include/libtorrent/ip_filter.hpp
+index dac1cab..0b29c64 100644
+--- a/include/libtorrent/ip_filter.hpp
++++ b/include/libtorrent/ip_filter.hpp
+@@ -42,6 +42,7 @@ POSSIBILITY OF SUCH DAMAGE.
+
+ #include <boost/limits.hpp>
+ #include <boost/utility.hpp>
++#include <boost/next_prior.hpp>
+ #include <boost/cstdint.hpp>
+ #include <boost/tuple/tuple.hpp>
+
+diff --git a/src/kademlia/routing_table.cpp b/src/kademlia/routing_table.cpp
+index 1ac00de..1d11617 100644
+--- a/src/kademlia/routing_table.cpp
++++ b/src/kademlia/routing_table.cpp
+@@ -53,6 +53,7 @@ POSSIBILITY OF SUCH DAMAGE.
+
+ #include <boost/cstdint.hpp>
+ #include <boost/bind.hpp>
++#include <boost/next_prior.hpp>
+
+ #include "libtorrent/aux_/disable_warnings_pop.hpp"
+
+diff --git a/src/torrent.cpp b/src/torrent.cpp
+index feacfa4..7b2b920 100644
+--- a/src/torrent.cpp
++++ b/src/torrent.cpp
+@@ -46,6 +46,7 @@ POSSIBILITY OF SUCH DAMAGE.
+
+ #include <boost/bind.hpp>
+ #include <boost/make_shared.hpp>
++#include <boost/next_prior.hpp>
+ #if TORRENT_USE_I2P
+ # include <boost/algorithm/string/predicate.hpp>
+ #endif
+diff --git a/test/test_ip_filter.cpp b/test/test_ip_filter.cpp
+index 21ac404..40e3cd5 100644
+--- a/test/test_ip_filter.cpp
++++ b/test/test_ip_filter.cpp
+@@ -32,6 +32,7 @@ POSSIBILITY OF SUCH DAMAGE.
+
+ #include "libtorrent/ip_filter.hpp"
+ #include <boost/utility.hpp>
++#include <boost/next_prior.hpp>
+
+ #include "test.hpp"
+ #include "settings.hpp"
diff --git a/ports/libtorrent/portfile.cmake b/ports/libtorrent/portfile.cmake
new file mode 100644
index 000000000..792fe1dee
--- /dev/null
+++ b/ports/libtorrent/portfile.cmake
@@ -0,0 +1,54 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO arvidn/libtorrent
+ REF libtorrent-1_1_6
+ SHA512 528034e63330d3c6910ab9db34a2a543618961c0095ecb8f865065516c341d063cba92aed2904b80aa0d0ef65df1b91c400f69d16defad787ff1ffb5edd09e37
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/add-datetime-to-boost-libs.patch
+ ${CMAKE_CURRENT_LIST_DIR}/boost-167.patch
+)
+
+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}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ -Dshared=${LIBTORRENT_SHARED}
+ -Ddeprecated-functions=off
+)
+
+vcpkg_install_cmake()
+
+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)
+
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/torrent-rasterbar.dll ${CURRENT_PACKAGES_DIR}/bin/torrent-rasterbar.dll)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/torrent-rasterbar.dll ${CURRENT_PACKAGES_DIR}/debug/bin/torrent-rasterbar.dll)
+
+ # Defines for shared lib
+ file(READ ${CURRENT_PACKAGES_DIR}/include/libtorrent/export.hpp EXPORT_H)
+ string(REPLACE "defined TORRENT_BUILDING_SHARED" "1" EXPORT_H "${EXPORT_H}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/libtorrent/export.hpp "${EXPORT_H}")
+endif()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libtorrent)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/libtorrent/LICENSE ${CURRENT_PACKAGES_DIR}/share/libtorrent/copyright)
+
+# Do not duplicate include files
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/libudis86/CMakeLists.txt b/ports/libudis86/CMakeLists.txt
new file mode 100644
index 000000000..8f412cf90
--- /dev/null
+++ b/ports/libudis86/CMakeLists.txt
@@ -0,0 +1,56 @@
+cmake_minimum_required (VERSION 3.9)
+
+project (udis86)
+
+
+set(
+ lib_sources
+ libudis86/decode.c
+ libudis86/itab.c
+ libudis86/syn-att.c
+ libudis86/syn-intel.c
+ libudis86/syn.c
+ libudis86/udis86.c
+)
+
+set(lib_headers
+ libudis86/decode.h
+ libudis86/itab.h
+ libudis86/extern.h
+ libudis86/syn.h
+ libudis86/types.h
+ libudis86/udint.h
+)
+
+set(cli_srcs udcli/udcli.c)
+
+include_directories(.)
+
+add_library(libudis86 ${lib_sources})
+
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(libudis86 PRIVATE -D_USRDLL)
+endif()
+
+add_executable(udcli ${cli_srcs})
+target_link_libraries(udcli libudis86)
+
+
+install(
+ TARGETS libudis86
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_TOOLS)
+ install (
+ TARGETS udcli
+ RUNTIME DESTINATION tools/libudis86
+ )
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES ${lib_headers} DESTINATION include/libudis86)
+ install(FILES udis86.h DESTINATION include)
+endif()
diff --git a/ports/libudis86/CONTROL b/ports/libudis86/CONTROL
new file mode 100644
index 000000000..661ad7859
--- /dev/null
+++ b/ports/libudis86/CONTROL
@@ -0,0 +1,3 @@
+Source: libudis86
+Version: 2018-01-28-56ff6c87
+Description: Disassembler Library for x86 and x86-64
diff --git a/ports/libudis86/portfile.cmake b/ports/libudis86/portfile.cmake
new file mode 100644
index 000000000..a4f5aa9d7
--- /dev/null
+++ b/ports/libudis86/portfile.cmake
@@ -0,0 +1,33 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO vmt/udis86
+ REF 56ff6c87c11de0ffa725b14339004820556e343d
+ SHA512 7a98333f9310f5f0466294bd980f03f9269c118a7557832015c59a7b6349a0eeab5642e0e6598d0be76d71f5d2d566d8b8af0ec75c26bdcff45646d60ff18e3a
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_find_acquire_program(PYTHON2)
+
+vcpkg_execute_required_process(
+ COMMAND ${PYTHON2} ${SOURCE_PATH}/scripts/ud_itab.py ${SOURCE_PATH}/docs/x86/optable.xml ${SOURCE_PATH}/libudis86/
+ WORKING_DIRECTORY SOURCE_PATH
+ LOGNAME python-${TARGET_TRIPLET}-generate-sources
+)
+
+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/libudis86)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libudis86 RENAME copyright)
diff --git a/ports/libunibreak/CMakeLists.txt b/ports/libunibreak/CMakeLists.txt
new file mode 100644
index 000000000..9ee5437d3
--- /dev/null
+++ b/ports/libunibreak/CMakeLists.txt
@@ -0,0 +1,35 @@
+cmake_minimum_required(VERSION 3.8.0)
+
+project(libunibreak)
+
+set(libunibreak_srcs
+ src/linebreakdata.c
+ src/linebreakdef.c
+ src/wordbreak.c
+ src/graphemebreak.c
+ src/unibreakbase.c
+ src/unibreakdef.c
+)
+
+
+include_directories(src)
+
+add_library(libunibreak ${libunibreak_srcs})
+
+install(
+ TARGETS libunibreak
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(
+ FILES
+ src/linebreak.h
+ src/linebreakdef.h
+ src/wordbreak.h
+ src/wordbreakdef.h
+ DESTINATION include
+ )
+endif()
diff --git a/ports/libunibreak/CONTROL b/ports/libunibreak/CONTROL
new file mode 100644
index 000000000..a8df4119f
--- /dev/null
+++ b/ports/libunibreak/CONTROL
@@ -0,0 +1,3 @@
+Source: libunibreak
+Version: 4.0-1
+Description: an implementation of the line breaking and word breaking algorithms as described in [Unicode Standard Annex 14] 1 and [Unicode Standard Annex 29] 2. Check the project's [home page] 3 for up-to-date information.
diff --git a/ports/libunibreak/portfile.cmake b/ports/libunibreak/portfile.cmake
new file mode 100644
index 000000000..6ec8bdd74
--- /dev/null
+++ b/ports/libunibreak/portfile.cmake
@@ -0,0 +1,24 @@
+include(vcpkg_common_functions)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "Dynamic not supported building static")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO adah1972/libunibreak
+ REF libunibreak_4_0
+ SHA512 f11295133a1c65f365a5287f7377f69ac7998f19b06d44818fb55c8a5ba3edabc36de8d1b7c0d38db9d982f0e443d0a751f6d51841865094122df4cd74c9af3b
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/LICENCE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libunibreak RENAME copyright)
diff --git a/ports/libusb-win32/CONTROL b/ports/libusb-win32/CONTROL
index f95a959f3..eba6e283d 100644
--- a/ports/libusb-win32/CONTROL
+++ b/ports/libusb-win32/CONTROL
@@ -1,3 +1,3 @@
Source: libusb-win32
-Version: 1.2.6.0
+Version: 1.2.6.0-1
Description: Allows user space applications to access many USB device on Windows.
diff --git a/ports/libusb-win32/portfile.cmake b/ports/libusb-win32/portfile.cmake
index bab7675a0..a93b39bca 100644
--- a/ports/libusb-win32/portfile.cmake
+++ b/ports/libusb-win32/portfile.cmake
@@ -1,7 +1,7 @@
include(vcpkg_common_functions)
-if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
- message(FATAL_ERROR "Error: UWP builds are currently not supported.")
+if (VCPKG_CMAKE_SYSTEM_NAME)
+ message(FATAL_ERROR "Error: only Windows Desktop builds are currently supported.")
endif()
set(LIBUSB_VERSION 1.2.6.0)
diff --git a/ports/libusb/CONTROL b/ports/libusb/CONTROL
index de5fe82b4..722cf9090 100644
--- a/ports/libusb/CONTROL
+++ b/ports/libusb/CONTROL
@@ -1,3 +1,3 @@
Source: libusb
Version: 1.0.21-fc99620
-Description: A library for USB device access from Windows userspace.
+Description: a cross-platform library to access USB devices
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/libuuid/CMakeLists.txt b/ports/libuuid/CMakeLists.txt
new file mode 100644
index 000000000..ff1edd0ef
--- /dev/null
+++ b/ports/libuuid/CMakeLists.txt
@@ -0,0 +1,35 @@
+cmake_minimum_required(VERSION 3.0)
+project(libuuid C)
+
+configure_file(config.linux.h config.h COPYONLY)
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+add_library(uuid STATIC
+ clear.c
+ compare.c
+ copy.c
+ gen_uuid.c
+ isnull.c
+ pack.c
+ parse.c
+ randutils.c
+ unpack.c
+ unparse.c
+ uuid_time.c
+)
+target_compile_options(uuid PRIVATE -include "${CMAKE_CURRENT_BINARY_DIR}/config.h")
+
+add_executable(test_uuid test_uuid.c)
+target_link_libraries(test_uuid uuid)
+
+if(CMAKE_BUILD_TYPE STREQUAL "Release")
+ install(FILES uuid.h DESTINATION include/uuid)
+endif()
+
+install(
+ TARGETS uuid
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
diff --git a/ports/libuuid/CONTROL b/ports/libuuid/CONTROL
new file mode 100644
index 000000000..04bfbe47b
--- /dev/null
+++ b/ports/libuuid/CONTROL
@@ -0,0 +1,3 @@
+Source: libuuid
+Version: 1.0.3-1
+Description: Universally unique id library
diff --git a/ports/libuuid/config.linux.h b/ports/libuuid/config.linux.h
new file mode 100644
index 000000000..38b53cac1
--- /dev/null
+++ b/ports/libuuid/config.linux.h
@@ -0,0 +1,13 @@
+#define HAVE_DECL__SC_HOST_NAME_MAX 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_NETINET_IN_H 1
+#define HAVE_SRANDOM 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_SYS_FILE_H 1
+#define HAVE_SYS_IOCTL_H 1
+#define HAVE_SYS_SOCKET_H 1
+#define HAVE_SYS_TIME_H 1
+#define HAVE_UNISTD_H 1
+#define HAVE_USLEEP 1
+#define PACKAGE_STRING "libuuid 1.0.3"
diff --git a/ports/libuuid/portfile.cmake b/ports/libuuid/portfile.cmake
new file mode 100644
index 000000000..7989e830d
--- /dev/null
+++ b/ports/libuuid/portfile.cmake
@@ -0,0 +1,29 @@
+include(vcpkg_common_functions)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libuuid-1.0.3)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://sourceforge.net/projects/libuuid/files/libuuid-1.0.3.tar.gz"
+ FILENAME libuuid-1.0.3.tar.gz
+ SHA512 77488caccc66503f6f2ded7bdfc4d3bc2c20b24a8dc95b2051633c695e99ec27876ffbafe38269b939826e1fdb06eea328f07b796c9e0aaca12331a787175507
+)
+
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY
+ ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt
+ ${CMAKE_CURRENT_LIST_DIR}/config.linux.h
+ DESTINATION ${SOURCE_PATH}
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL
+ ${SOURCE_PATH}/COPYING
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/libuuid RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/libuv/CMakeLists.txt b/ports/libuv/CMakeLists.txt
index cd5d9f66f..538169e09 100644
--- a/ports/libuv/CMakeLists.txt
+++ b/ports/libuv/CMakeLists.txt
@@ -2,23 +2,70 @@ cmake_minimum_required(VERSION 3.5)
project(libuv C)
file(GLOB UV_SOURCES_COMMON src/*.c)
+
+file(GLOB UV_SOURCES_UNIX
+ src/unix/async.c
+ src/unix/core.c
+ src/unix/dl.c
+ src/unix/fs.c
+ src/unix/getaddrinfo.c
+ src/unix/getnameinfo.c
+ src/unix/loop.c
+ src/unix/loop-watcher.c
+ src/unix/pipe.c
+ src/unix/poll.c
+ src/unix/process.c
+ src/unix/signal.c
+ src/unix/stream.c
+ src/unix/tcp.c
+ src/unix/thread.c
+ src/unix/timer.c
+ src/unix/tty.c
+ src/unix/udp.c
+ src/unix/proctitle.c
+)
+file(GLOB UV_SOURCES_LINUX
+ src/unix/linux-core.c
+ src/unix/linux-inotify.c
+ src/unix/linux-syscalls.c
+)
+file(GLOB UV_SOURCES_DARWIN
+ src/unix/kqueue.c
+ src/unix/darwin.c
+ src/unix/fsevents.c
+ src/unix/pthread-barrier.c
+ src/unix/darwin-proctitle.c
+)
file(GLOB UV_SOURCES_WIN src/win/*.c)
-add_library(libuv ${UV_SOURCES_COMMON} ${UV_SOURCES_WIN})
-target_link_libraries(libuv iphlpapi psapi shell32 userenv ws2_32)
+if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ add_library(libuv ${UV_SOURCES_COMMON} ${UV_SOURCES_WIN})
+ target_compile_definitions(libuv PRIVATE WIN32_LEAN_AND_MEAN "_WIN32_WINNT=0x0600")
+ target_link_libraries(libuv iphlpapi psapi shell32 userenv ws2_32)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ add_library(libuv ${UV_SOURCES_COMMON} ${UV_SOURCES_UNIX} ${UV_SOURCES_DARWIN})
+else() # Assume some Linux variant
+ add_library(libuv ${UV_SOURCES_COMMON} ${UV_SOURCES_UNIX} ${UV_SOURCES_LINUX})
+endif()
+
target_include_directories(libuv PUBLIC ./include PRIVATE ./src)
set_target_properties(libuv PROPERTIES DEFINE_SYMBOL BUILDING_UV_SHARED)
if(NOT UV_SKIP_HEADERS)
install(FILES
- include/tree.h
- include/uv.h
- include/uv-version.h
- include/uv-errno.h
- include/uv-threadpool.h
- include/uv-win.h
- DESTINATION include)
+ include/tree.h
+ include/uv.h
+ include/uv-version.h
+ include/uv-errno.h
+ include/uv-threadpool.h
+ include/uv-win.h
+ include/uv-unix.h
+ include/uv-darwin.h
+ include/pthread-barrier.h
+ DESTINATION include
+)
endif()
+
install(TARGETS libuv
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
diff --git a/ports/libuv/CONTROL b/ports/libuv/CONTROL
index 275dee9df..6affcb3c2 100644
--- a/ports/libuv/CONTROL
+++ b/ports/libuv/CONTROL
@@ -1,3 +1,3 @@
Source: libuv
-Version: 1.11.0
-Description: libuv is a multi-platform support library with a focus on asynchronous I/O. \ No newline at end of file
+Version: 1.20.3-2
+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 a8f4463cd..4f3d3f738 100644
--- a/ports/libuv/portfile.cmake
+++ b/ports/libuv/portfile.cmake
@@ -1,10 +1,12 @@
include(vcpkg_common_functions)
+
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO libuv/libuv
- REF v1.11.0
- SHA512 fb0415d62a32cfc658bad6c849263ac236d27e9188fac603467173a5ae34fb3ad3e3bfd333e543ebd98b4fd59e0a58a93275e830c4365c058b62bb0c2c802732
- HEAD_REF v1.x)
+ REF v1.20.3
+ SHA512 60ebc0059ec9fdd022aa9d60b2a0340f29e037bf79fa08707f6f2ecca9ec263c7a6466bdc1f94e0875a6a627ee749efa86117dedb22119676a7bafed8b5d77a0
+ HEAD_REF v1.x
+)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
@@ -12,7 +14,8 @@ vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS_DEBUG
- -DUV_SKIP_HEADERS=ON)
+ -DUV_SKIP_HEADERS=ON
+)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
diff --git a/ports/libvorbis/CONTROL b/ports/libvorbis/CONTROL
index dec9363b2..96b9ed8df 100644
--- a/ports/libvorbis/CONTROL
+++ b/ports/libvorbis/CONTROL
@@ -1,4 +1,4 @@
Source: libvorbis
-Version: 1.3.5-143caf4-2
+Version: 1.3.6-112d3bd
Description: Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format.
Build-Depends: libogg
diff --git a/ports/libvorbis/portfile.cmake b/ports/libvorbis/portfile.cmake
index 26eb1dceb..6a862c84b 100644
--- a/ports/libvorbis/portfile.cmake
+++ b/ports/libvorbis/portfile.cmake
@@ -7,11 +7,11 @@
#
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/vorbis-143caf4023a90c09a5eb685fdd46fb9b9c36b1ee)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/vorbis-112d3bd0aaacad51305e1464d4b381dabad0e88b)
vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/xiph/vorbis/archive/143caf4023a90c09a5eb685fdd46fb9b9c36b1ee.zip"
- FILENAME "vorbis-143caf4023a90c09a5eb685fdd46fb9b9c36b1ee.zip"
- SHA512 9eeb64b1664ba8a1d118cdc5efc0090fe5f542eff33a16f4676fde8e59031fd0f9017857a7c45ca549899cab34efefd81dd54a57fab97f91f776fd9426f4e37a
+ URLS "https://github.com/xiph/vorbis/archive/112d3bd0aaacad51305e1464d4b381dabad0e88b.zip"
+ FILENAME "vorbis-112d3bd0aaacad51305e1464d4b381dabad0e88b.zip"
+ SHA512 94e773a34f3e8d1c8ed0422f0eab345b35f76a96760141af83d69d007ebf076fca2d083a77d36bfa4ea10dfefa03a8fa35201aced963655ab8a524aaa7580b11
)
vcpkg_extract_source_archive(${ARCHIVE})
diff --git a/ports/libvpx/CONTROL b/ports/libvpx/CONTROL
index b4cfa55f4..fa1522629 100644
--- a/ports/libvpx/CONTROL
+++ b/ports/libvpx/CONTROL
@@ -1,3 +1,3 @@
Source: libvpx
-Version: 1.6.1-1
+Version: 1.7.0
Description: The reference software implementation for the video coding formats VP8 and VP9.
diff --git a/ports/libvpx/portfile.cmake b/ports/libvpx/portfile.cmake
index 87f6cfdfc..d253008e7 100644
--- a/ports/libvpx/portfile.cmake
+++ b/ports/libvpx/portfile.cmake
@@ -5,8 +5,8 @@ endif()
include(vcpkg_common_functions)
-set(LIBVPX_VERSION 1.6.1)
-set(LIBVPX_HASH 13b7eb515d026b302b8c484d6f06df067feb5aed4ceac953d85fe84fd684dab07e89ddbf80b4f395c6d9127709422156287e5754f49246050b2e18930adb3970)
+set(LIBVPX_VERSION 1.7.0)
+set(LIBVPX_HASH 8b3b766b550f8d86907628d7ed88035f9a2612aac21542e0fd5ad35b905eb82cbe1be02a1a24afce7a3bcc4766f62611971f72724761996b392136c40a1e7ff0)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libvpx-${LIBVPX_VERSION})
@@ -14,7 +14,7 @@ string(REGEX REPLACE "\\\\" "/" SOURCE_PATH_UNIX ${SOURCE_PATH})
string(REGEX REPLACE "\\\\" "/" CURRENT_PACKAGES_DIR_UNIX ${CURRENT_PACKAGES_DIR})
vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/webmproject/libvpx/archive/v${LIBVPX_VERSION}.tar.gz"
+ URLS "https://github.com/webmproject/libvpx/archive/v${LIBVPX_VERSION}/libvpx-${LIBVPX_VERSION}.tar.gz"
FILENAME "libvpx-${LIBVPX_VERSION}.tar.gz"
SHA512 ${LIBVPX_HASH}
)
@@ -22,19 +22,14 @@ vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_find_acquire_program(YASM)
vcpkg_find_acquire_program(PERL)
-vcpkg_acquire_msys(MSYS_ROOT)
+vcpkg_acquire_msys(MSYS_ROOT PACKAGES make)
+vcpkg_acquire_msys(MSYS_ROOT PACKAGES diffutils)
get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY)
get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
-set(ENV{PATH} "${PERL_EXE_PATH};${YASM_EXE_PATH};${MSYS_ROOT}/usr/bin;$ENV{PATH}")
-set(BASH ${MSYS_ROOT}/usr/bin/bash.exe)
-message(STATUS "Installing MSYS Packages")
-vcpkg_execute_required_process(
- COMMAND
- ${BASH} --noprofile --norc -c
- "pacman -Sy --noconfirm --needed make"
- WORKING_DIRECTORY ${MSYS_ROOT}
- LOGNAME pacman-${TARGET_TRIPLET})
+message(STATUS "PERL_EXE_PATH ; ${PERL_EXE_PATH}")
+set(ENV{PATH} "${YASM_EXE_PATH};${MSYS_ROOT}/usr/bin;$ENV{PATH};${PERL_EXE_PATH}")
+set(BASH ${MSYS_ROOT}/usr/bin/bash.exe)
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
@@ -56,7 +51,7 @@ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL arm)
set(LIBVPX_ARCH_DIR "ARM")
endif()
-set(LIBVPX_TARGET_VS "vs14")
+set(LIBVPX_TARGET_VS "vs15")
message(STATUS "Generating makefile")
file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
diff --git a/ports/libwebm/CONTROL b/ports/libwebm/CONTROL
index ca76af460..eb19cf16a 100644
--- a/ports/libwebm/CONTROL
+++ b/ports/libwebm/CONTROL
@@ -1,3 +1,3 @@
Source: libwebm
-Version: 1.0.0.27-1
+Version: 1.0.0.27-2
Description: WebM File Parser
diff --git a/ports/libwebp/0001-add-install-to-cmake.patch b/ports/libwebp/0001-add-install-to-cmake.patch
deleted file mode 100644
index 206e87fc3..000000000
--- a/ports/libwebp/0001-add-install-to-cmake.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 0c62dd19..a2f72106 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -95,6 +95,16 @@ foreach(I_FILE RANGE ${WEBP_SIMD_FILES_TO_INCLUDE_RANGE})
- )
- endforeach()
-
-+# Install the headers
-+file(GLOB PUBLIC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/*.h)
-+install(FILES ${PUBLIC_HEADERS} DESTINATION include/webp)
-+
-+# Install the library
-+install(TARGETS webp
-+ RUNTIME DESTINATION bin
-+ LIBRARY DESTINATION lib
-+ ARCHIVE DESTINATION lib)
-+
- # Build the executables if asked for.
- if(WEBP_BUILD_CWEBP OR WEBP_BUILD_DWEBP OR
- WEBP_BUILD_GIF2WEBP OR WEBP_BUILD_IMG2WEBP)
diff --git a/ports/libwebp/0002-add-missing-directory-to-cmake.patch b/ports/libwebp/0002-add-missing-directory-to-cmake.patch
deleted file mode 100644
index 92c52a9c7..000000000
--- a/ports/libwebp/0002-add-missing-directory-to-cmake.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a2f72106..469f03b4 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -68,6 +68,7 @@ parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/dec "WEBP_SRCS")
- parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/demux "WEBP_SRCS")
- parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/dsp "WEBP_SRCS")
- parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/enc "WEBP_SRCS")
-+parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/mux "WEBP_SRCS")
- parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/utils "WEBP_SRCS")
-
- # Remove the files specific to SIMD we don't use.
diff --git a/ports/libwebp/CONTROL b/ports/libwebp/CONTROL
index 2b3c36554..3e3ae16d8 100644
--- a/ports/libwebp/CONTROL
+++ b/ports/libwebp/CONTROL
@@ -1,3 +1,3 @@
Source: libwebp
-Version: 0.6.0-1
+Version: 0.6.1-2
Description: Lossy compression of digital photographic images.
diff --git a/ports/libwebp/FindWebP.cmake b/ports/libwebp/FindWebP.cmake
new file mode 100644
index 000000000..c39a0eb05
--- /dev/null
+++ b/ports/libwebp/FindWebP.cmake
@@ -0,0 +1,27 @@
+include(SelectLibraryConfigurations)
+include(FindPackageHandleStandardArgs)
+
+# If the user has provided ``WEBP_ROOT``, use it! Choose items found
+# at this location over system locations.
+if( EXISTS "$ENV{WEBP_ROOT}" )
+ file( TO_CMAKE_PATH "$ENV{WEBP_ROOT}" WEBP_ROOT )
+ set( WEBP_ROOT "${WEBP_ROOT}" CACHE PATH "Prefix for WebP installation." )
+elseif(EXISTS "$ENV{WEBP_DIR}" )
+ file( TO_CMAKE_PATH "$ENV{WEBP_DIR}" WEBP_ROOT )
+ set( WEBP_ROOT "${WEBP_ROOT}" CACHE PATH "Prefix for WebP installation." )
+endif()
+
+if(NOT WEBP_INCLUDE_DIR)
+ FIND_PATH(WEBP_INCLUDE_DIR NAMES webp/decode.h)
+endif()
+
+if(NOT WEBP_LIBRARY)
+ find_library(WEBP_LIBRARY_RELEASE NAMES webp PATHS ${WEBP_ROOT} PATH_SUFFIXES webp )
+ find_library(WEBP_LIBRARY_DEBUG NAMES webpd PATHS ${WEBP_ROOT} PATH_SUFFIXES debug webp webp/debug debug/webp)
+ select_library_configurations(WEBP)
+endif()
+
+SET(WEBP_LIBRARIES ${WEBP_LIBRARY})
+SET(WEBP_INCLUDE_DIRS ${WEBP_INCLUDE_DIR})
+
+find_package_handle_standard_args(WEBP REQUIRED_VARS WEBP_LIBRARY WEBP_INCLUDE_DIR)
diff --git a/ports/libwebp/build_fixes.patch b/ports/libwebp/build_fixes.patch
new file mode 100644
index 000000000..72cb304a9
--- /dev/null
+++ b/ports/libwebp/build_fixes.patch
@@ -0,0 +1,33 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3b105e37..f9b806c4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -106,6 +106,9 @@ endforeach()
+ if(MSVC)
+ # avoid security warnings for e.g., fopen() used in the examples.
+ add_definitions(-D_CRT_SECURE_NO_WARNINGS)
++ if(BUILD_SHARED_LIBS)
++ add_definitions(-DWEBP_EXTERN=__declspec\(dllexport\))
++ endif()
+ else()
+ add_definitions(-Wall)
+ endif()
+@@ -235,6 +238,10 @@ if(WEBP_BUILD_GIF2WEBP AND NOT GIF_FOUND)
+ endif()
+
+ if(WEBP_BUILD_GIF2WEBP OR WEBP_BUILD_IMG2WEBP)
++ set(WEBP_BUILD_MUX ON)
++endif()
++
++if(WEBP_BUILD_MUX)
+ parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/mux "WEBP_MUX_SRCS"
+ "")
+ add_library(webpmux ${WEBP_MUX_SRCS})
+@@ -322,6 +329,7 @@ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/decode.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/types.h
+ DESTINATION include/webp)
+ install(TARGETS ${INSTALLED_LIBRARIES}
++ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
diff --git a/ports/libwebp/portfile.cmake b/ports/libwebp/portfile.cmake
index 2c70513b8..e4f5dbbc8 100644
--- a/ports/libwebp/portfile.cmake
+++ b/ports/libwebp/portfile.cmake
@@ -1,37 +1,37 @@
include(vcpkg_common_functions)
-set(WEBP_VERSION 0.6.0)
-set(WEBP_HASH 59491b3837c7c96e56407c479722ad48b08b6133b123b61f66c5f0b61a1e8222ed20006b5c6fc708791bed72ac65e707aa25635e07fd11c81f26cc1e23892f48)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libwebp-${WEBP_VERSION})
-
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/webmproject/libwebp/archive/v${WEBP_VERSION}.zip"
- FILENAME "libwebp-${WEBP_VERSION}.zip"
- SHA512 ${WEBP_HASH}
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO webmproject/libwebp
+ REF v0.6.1
+ SHA512 313b345a01c91eb07c2e4d46b93fcda9c50dca9e05e39f757238a679355514a2e9bc9bc220f3d3eb6d6a55148957cb2be14dac330203953337759841af1a32bf
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
- PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-add-install-to-cmake.patch
- ${CMAKE_CURRENT_LIST_DIR}/0002-add-missing-directory-to-cmake.patch
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/build_fixes.patch
)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
- # dllexport support seem to be broken
- OPTIONS -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
- -DCMAKE_DEBUG_POSTFIX=d
+ OPTIONS
+ -DCMAKE_DEBUG_POSTFIX=d
+ -DWEBP_BUILD_MUX=ON
)
-vcpkg_build_cmake()
vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share)
# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libwebp)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libwebp/COPYING ${CURRENT_PACKAGES_DIR}/share/libwebp/copyright)
-vcpkg_copy_pdbs() \ No newline at end of file
+vcpkg_copy_pdbs()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindWebP.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libwebp)
diff --git a/ports/libwebsockets/0001-Fix-UWP.patch b/ports/libwebsockets/0001-Fix-UWP.patch
index 8996c4e0e..c4cf22140 100644
--- a/ports/libwebsockets/0001-Fix-UWP.patch
+++ b/ports/libwebsockets/0001-Fix-UWP.patch
@@ -1,91 +1,99 @@
-diff --git a/lib/lws-plat-win.c b/lib/lws-plat-win.c
+diff --git a/lib/plat/lws-plat-win.c b/lib/plat/lws-plat-win.c
index dd3e95a..eb1690a 100644
---- a/lib/lws-plat-win.c
-+++ b/lib/lws-plat-win.c
-@@ -155,7 +155,7 @@ lws_plat_service_tsi(struct lws_context *context, int timeout_ms, int tsi)
+--- a/lib/plat/lws-plat-win.c
++++ b/lib/plat/lws-plat-win.c
+@@ -157,7 +157,7 @@ _lws_plat_service_tsi(struct lws_context *context, int timeout_ms, int tsi)
{
- struct lws_context_per_thread *pt = &context->pt[tsi];
+ struct lws_context_per_thread *pt;
WSANETWORKEVENTS networkevents;
- struct lws_pollfd *pfd;
+ struct lws_pollfd *pfd = NULL;
struct lws *wsi;
unsigned int i;
DWORD ev;
-@@ -493,6 +493,7 @@ lws_plat_inet_ntop(int af, const void *src, char *dst, int cnt)
- return ok ? dst : NULL;
+@@ -591,6 +591,7 @@ lws_plat_inet_pton(int af, const char *src, void *dst)
+ return ok ? 1 : -1;
}
+#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)
- static lws_filefd_type
- _lws_plat_file_open(struct lws *wsi, const char *filename,
- unsigned long *filelen, int flags)
-@@ -516,6 +517,35 @@ _lws_plat_file_open(struct lws *wsi, const char *filename,
-
- return ret;
+ LWS_VISIBLE lws_fop_fd_t
+ _lws_plat_file_open(const struct lws_plat_file_ops *fops, const char *filename,
+ const char *vpath, lws_fop_flags_t *flags)
+@@ -631,6 +632,49 @@ _lws_plat_file_open(const struct lws_plat_file_ops *fops, const char *filename,
+ bail:
+ return NULL;
}
+#else
-+static lws_filefd_type
-+_lws_plat_file_open(struct lws *wsi, const char *filename,
-+ unsigned long *filelen, int flags)
++LWS_VISIBLE lws_fop_fd_t
++_lws_plat_file_open(const struct lws_plat_file_ops *fops, const char *filename,
++ const char *vpath, lws_fop_flags_t *flags)
+{
-+ HANDLE ret;
-+ WCHAR buf[MAX_PATH];
++ HANDLE ret;
++ WCHAR buf[MAX_PATH];
++ lws_fop_fd_t fop_fd;
++ LARGE_INTEGER llFileSize = {0};
++
++ MultiByteToWideChar(CP_UTF8, 0, filename, -1, buf, ARRAY_SIZE(buf));
++ if (((*flags) & 7) == _O_RDONLY) {
++ ret = CreateFile2(buf, GENERIC_READ, FILE_SHARE_READ,
++ OPEN_EXISTING, NULL);
++ } else {
++ lwsl_err("%s: open for write not implemented\n", __func__);
++ *filelen = 0;
++ ret = LWS_INVALID_FILE;
++ }
++
++ if (ret == LWS_INVALID_FILE)
++ goto bail;
++
++ fop_fd = malloc(sizeof(*fop_fd));
++ if (!fop_fd)
++ goto bail;
++
++ fop_fd->fops = fops;
++ fop_fd->fd = ret;
++ fop_fd->filesystem_priv = NULL; /* we don't use it */
++ fop_fd->flags = *flags;
++ fop_fd->len = GetFileSize(ret, NULL);
++ if(GetFileSizeEx(ret, &llFileSize))
++ fop_fd->len = llFileSize.QuadPart;
+
-+ (void)wsi;
-+ MultiByteToWideChar(CP_UTF8, 0, filename, -1, buf, ARRAY_SIZE(buf));
-+ if ((flags & 7) == _O_RDONLY) {
-+ ret = CreateFile2(buf, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, NULL);
-+ }
-+ else {
-+ lwsl_err("%s: open for write not implemented\n", __func__);
-+ *filelen = 0;
-+ return LWS_INVALID_FILE;
-+ }
++ fop_fd->pos = 0;
+
-+ if (ret != LWS_INVALID_FILE)
-+ {
-+ struct stat info;
-+ int result = stat(filename, &info);
-+ *filelen = result != 0 ? -1 : (long)(info.st_size);
-+ }
++ return fop_fd;
+
-+ return ret;
++bail:
++ return NULL;
+}
+#endif
- static int
- _lws_plat_file_close(struct lws *wsi, lws_filefd_type fd)
+ LWS_VISIBLE int
+ _lws_plat_file_close(lws_fop_fd_t *fop_fd)
diff --git a/lib/private-libwebsockets.h b/lib/private-libwebsockets.h
index 23f8f4d..bc32aef 100644
--- a/lib/private-libwebsockets.h
+++ b/lib/private-libwebsockets.h
-@@ -48,12 +48,25 @@
+@@ -111,12 +111,23 @@
+ #define WIN32_LEAN_AND_MEAN
#endif
- #if defined(WIN32) || defined(_WIN32)
-+
+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
-+ #ifndef WINVER
-+ #define WINVER 0x0602
-+ #define _WIN32_WINNT WINVER
-+ #endif
++#ifndef WINVER
++#define WINVER 0x0602
++#define _WIN32_WINNT WINVER
++#endif
+
-+ #define getenv(x) NULL
-+ #define _WINSOCK_DEPRECATED_NO_WARNINGS
++#define getenv(x) NULL
++#define _WINSOCK_DEPRECATED_NO_WARNINGS
+#else
+
#if (WINVER < 0x0501)
--#undef WINVER
--#undef _WIN32_WINNT
--#define WINVER 0x0501
--#define _WIN32_WINNT WINVER
-+ #undef WINVER
-+ #undef _WIN32_WINNT
-+ #define WINVER 0x0501
-+ #define _WIN32_WINNT WINVER
-+ #endif
+ #undef WINVER
+ #undef _WIN32_WINNT
+ #define WINVER 0x0501
+ #define _WIN32_WINNT WINVER
#endif
-+
++#endif
#define LWS_NO_DAEMONIZE
#define LWS_ERRNO WSAGetLastError()
#define LWS_EAGAIN WSAEWOULDBLOCK
diff --git a/ports/libwebsockets/CONTROL b/ports/libwebsockets/CONTROL
index 61a9cc449..bf33021a2 100644
--- a/ports/libwebsockets/CONTROL
+++ b/ports/libwebsockets/CONTROL
@@ -1,4 +1,4 @@
Source: libwebsockets
-Version: 2.0.0-1
+Version: 3.0.0
Build-Depends: zlib, openssl
-Description: Libwebsockets is a lightweight pure C library built to use minimal CPU and memory resources, and provide fast throughput in both directions as client or server. \ No newline at end of file
+Description: Libwebsockets is a lightweight pure C library built to use minimal CPU and memory resources, and provide fast throughput in both directions as client or server.
diff --git a/ports/libwebsockets/portfile.cmake b/ports/libwebsockets/portfile.cmake
index 43502a52a..79903c3a4 100644
--- a/ports/libwebsockets/portfile.cmake
+++ b/ports/libwebsockets/portfile.cmake
@@ -1,26 +1,27 @@
-if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- message(STATUS "Warning: Static building not supported yet. Building dynamic.")
- set(VCPKG_LIBRARY_LINKAGE dynamic)
-endif()
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libwebsockets-2.0.0)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/warmcat/libwebsockets/archive/v2.0.0.zip"
- FILENAME "libwebsockets-v2.0.0.zip"
- SHA512 bf57a46f2c60095e7e6ec6656b185ffd2cf8f553bc22255ae8f6825d3613316d794f139cdefacbdf60ef997b0cd675fe356813d406c9b7c5a5ae838ce5326042
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO warmcat/libwebsockets
+ REF v3.0.0
+ SHA512 626edd00cc4f7559c67fc1663cbc4679a3c4e7a1b60944a7cf6968c6676073bbc15f9b90f4f2ea629394ebbcf84856663ae032a3557bae383bd0db54838d30e8
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-UWP.patch
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-UWP.patch
)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LWS_WITH_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LWS_WITH_SHARED)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS
- -DLWS_WITH_STATIC=OFF
+ -DLWS_WITH_STATIC=${LWS_WITH_STATIC}
+ -DLWS_WITH_SHARED=${LWS_WITH_SHARED}
-DLWS_USE_BUNDLED_ZLIB=OFF
-DLWS_WITHOUT_TESTAPPS=ON
-DLWS_IPV6=ON
@@ -31,15 +32,24 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
-file(RENAME ${CURRENT_PACKAGES_DIR}/cmake ${CURRENT_PACKAGES_DIR}/share/libwebsockets)
-file(RENAME
- ${CURRENT_PACKAGES_DIR}/debug/cmake/LibwebsocketsTargets-debug.cmake
- ${CURRENT_PACKAGES_DIR}/share/libwebsockets/LibwebsocketsTargets-debug.cmake
-)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/cmake)
+vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake")
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/libwebsockets-test-server)
+file(READ ${CURRENT_PACKAGES_DIR}/share/libwebsockets/LibwebsocketsConfig.cmake LIBWEBSOCKETSCONFIG_CMAKE)
+string(REPLACE "/../include" "/../../include" LIBWEBSOCKETSCONFIG_CMAKE "${LIBWEBSOCKETSCONFIG_CMAKE}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/libwebsockets/LibwebsocketsConfig.cmake "${LIBWEBSOCKETSCONFIG_CMAKE}")
+file(READ ${CURRENT_PACKAGES_DIR}/share/libwebsockets/LibwebsocketsTargets-debug.cmake LIBWEBSOCKETSTARGETSDEBUG_CMAKE)
+string(REPLACE "websockets_static.lib" "websockets.lib" LIBWEBSOCKETSTARGETSDEBUG_CMAKE "${LIBWEBSOCKETSTARGETSDEBUG_CMAKE}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/libwebsockets/LibwebsocketsTargets-debug.cmake "${LIBWEBSOCKETSTARGETSDEBUG_CMAKE}")
+file(READ ${CURRENT_PACKAGES_DIR}/share/libwebsockets/LibwebsocketsTargets-release.cmake LIBWEBSOCKETSTARGETSRELEASE_CMAKE)
+string(REPLACE "websockets_static.lib" "websockets.lib" LIBWEBSOCKETSTARGETSRELEASE_CMAKE "${LIBWEBSOCKETSTARGETSRELEASE_CMAKE}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/libwebsockets/LibwebsocketsTargets-release.cmake "${LIBWEBSOCKETSTARGETSRELEASE_CMAKE}")
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libwebsockets)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libwebsockets/LICENSE ${CURRENT_PACKAGES_DIR}/share/libwebsockets/copyright)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/websockets_static.lib ${CURRENT_PACKAGES_DIR}/debug/lib/websockets.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/websockets_static.lib ${CURRENT_PACKAGES_DIR}/lib/websockets.lib)
+endif ()
vcpkg_copy_pdbs()
diff --git a/ports/libxml2/CMakeLists.txt b/ports/libxml2/CMakeLists.txt
index 02cccd6c7..3d49985ee 100644
--- a/ports/libxml2/CMakeLists.txt
+++ b/ports/libxml2/CMakeLists.txt
@@ -3,58 +3,16 @@ project(libxml2 C)
option(INSTALL_HEADERS "Install public header files" ON)
+set(CMAKE_SHARED_LIBRARY_PREFIX)
+set(CMAKE_STATIC_LIBRARY_PREFIX)
+
find_package(ZLIB REQUIRED)
find_package(LibLZMA REQUIRED)
-find_library(ICONV NAMES libiconv)
-find_library(ICONV_CHARSET NAMES libcharset)
+find_package(unofficial-iconv REQUIRED)
-set(SOURCES
- buf.c
- c14n.c
- catalog.c
- chvalid.c
- debugXML.c
- dict.c
- DOCBparser.c
- encoding.c
- entities.c
- error.c
- globals.c
- hash.c
- HTMLparser.c
- HTMLtree.c
- legacy.c
- list.c
- nanoftp.c
- nanohttp.c
- parser.c
- parserInternals.c
- pattern.c
- relaxng.c
- SAX.c
- SAX2.c
- schematron.c
- threads.c
- tree.c
- uri.c
- valid.c
- xinclude.c
- xlink.c
- xmlIO.c
- xmlmemory.c
- xmlreader.c
- xmlregexp.c
- xmlmodule.c
- xmlsave.c
- xmlschemas.c
- xmlschemastypes.c
- xmlstring.c
- xmlunicode.c
- xmlwriter.c
- xpath.c
- xpointer.c
- xzlib.c
-)
+file(GLOB SOURCES *.c)
+list(FILTER SOURCES EXCLUDE REGEX "/(run|test|trio)[^/]*$")
+list(FILTER SOURCES EXCLUDE REGEX "xml(lint|catalog).c$")
# Generate xmlexports with fixed definition of LIBXML_STATIC
file(READ include/libxml/xmlexports.h XMLEXPORTS_H)
@@ -65,31 +23,46 @@ else()
endif()
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/xmlexports.h "${XMLEXPORTS_H}")
-file(GLOB PUBLIC_HEADERS include/libxml/*.h)
-list(FILTER PUBLIC_HEADERS EXCLUDE REGEX "xmlexports\\.h$")
-list(APPEND PUBLIC_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/xmlexports.h)
-
-configure_file(include/win32config.h config.h COPYONLY)
+if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ configure_file(include/win32config.h config.h COPYONLY)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ configure_file("${PORT_DIR}/config.osx.h" config.h COPYONLY)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ configure_file("${PORT_DIR}/config.linux.h" config.h COPYONLY)
+else()
+ message(FATAL_ERROR "No config.h checked in for the target platform. Please run ./configure for libxml2 and add the resulting config.h into this port.")
+endif()
add_library(libxml2 ${SOURCES})
if(INSTALL_HEADERS)
+ file(GLOB PUBLIC_HEADERS include/libxml/*.h)
+ list(FILTER PUBLIC_HEADERS EXCLUDE REGEX "xmlexports\\.h$")
+ list(APPEND PUBLIC_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/xmlexports.h)
+
set_target_properties(libxml2 PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADERS}")
endif()
-target_include_directories(libxml2 PRIVATE ${CMAKE_CURRENT_BINARY_DIR} win32/vc10 include ${LIBLZMA_INCLUDE_DIRS})
+target_include_directories(libxml2 PRIVATE ${CMAKE_CURRENT_BINARY_DIR} include ${LIBLZMA_INCLUDE_DIRS})
target_link_libraries(libxml2 PRIVATE
+ unofficial::iconv::libcharset unofficial::iconv::libiconv
ZLIB::ZLIB
${LIBLZMA_LIBRARIES}
- ${ICONV}
- ${ICONV_CHARSET}
- wsock32.lib
- ws2_32.lib
)
+if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ target_include_directories(libxml2 PRIVATE win32/vc10)
+ target_link_libraries(libxml2 PRIVATE
+ wsock32.lib
+ ws2_32.lib
+ )
+ target_compile_definitions(libxml2 PRIVATE
+ -DHAVE_WIN32_THREADS
+ )
+endif()
+
target_compile_definitions(libxml2 PRIVATE
-D_CRT_SECURE_NO_DEPRECATE
-D_CRT_NONSTDC_NO_DEPRECATE
-D_REENTRANT
-DNOLIBTOOL
- -DHAVE_WIN32_THREADS
-DHAVE_ZLIB_H
-DHAVE_LZMA_H
)
diff --git a/ports/libxml2/CONTROL b/ports/libxml2/CONTROL
index 9f1564226..f005d2367 100644
--- a/ports/libxml2/CONTROL
+++ b/ports/libxml2/CONTROL
@@ -1,4 +1,4 @@
Source: libxml2
-Version: 2.9.4-1
+Version: 2.9.4-5
Description: Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform)
Build-Depends: zlib, libiconv, liblzma
diff --git a/ports/libxml2/config.linux.h b/ports/libxml2/config.linux.h
new file mode 100644
index 000000000..d029e95cf
--- /dev/null
+++ b/ports/libxml2/config.linux.h
@@ -0,0 +1,56 @@
+#define GETHOSTBYNAME_ARG_CAST /**/
+#define HAVE_ANSIDECL_H 1
+#define HAVE_ARPA_INET_H 1
+#define HAVE_ARPA_NAMESER_H 1
+#define HAVE_CTYPE_H 1
+#define HAVE_DIRENT_H 1
+#define HAVE_DLFCN_H 1
+#define HAVE_DLOPEN /**/
+#define HAVE_ERRNO_H 1
+#define HAVE_FCNTL_H 1
+#define HAVE_FLOAT_H 1
+#define HAVE_FTIME 1
+#define HAVE_GETADDRINFO /**/
+#define HAVE_GETTIMEOFDAY 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_ISASCII 1
+#define HAVE_LIMITS_H 1
+#define HAVE_LOCALTIME 1
+#define HAVE_LZMA_H 1
+#define HAVE_MALLOC_H 1
+#define HAVE_MATH_H 1
+#define HAVE_MMAP 1
+#define HAVE_NETDB_H 1
+#define HAVE_NETINET_IN_H 1
+#define HAVE_POLL_H 1
+#define HAVE_PTHREAD_H /**/
+#define HAVE_PUTENV 1
+#define HAVE_RAND 1
+#define HAVE_RAND_R 1
+#define HAVE_RESOLV_H 1
+#define HAVE_SIGNAL_H 1
+#define HAVE_SRAND 1
+#define HAVE_STAT 1
+#define HAVE_STDARG_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRFTIME 1
+#define HAVE_STRINGS_H 1
+#define HAVE_STRING_H 1
+#define HAVE_SYS_MMAN_H 1
+#define HAVE_SYS_SELECT_H 1
+#define HAVE_SYS_SOCKET_H 1
+#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_TIMEB_H 1
+#define HAVE_SYS_TIME_H 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_TIME 1
+#define HAVE_TIME_H 1
+#define HAVE_UNISTD_H 1
+#define HAVE_VA_COPY 1
+#define HAVE_ZLIB_H 1
+#define ICONV_CONST
+#define SEND_ARG2_CAST /**/
+#define SUPPORT_IP6 /**/
+#define VA_LIST_IS_ARRAY 1
+#define XML_SOCKLEN_T socklen_t
diff --git a/ports/libxml2/config.osx.h b/ports/libxml2/config.osx.h
new file mode 100644
index 000000000..95d83edc1
--- /dev/null
+++ b/ports/libxml2/config.osx.h
@@ -0,0 +1,54 @@
+#define GETHOSTBYNAME_ARG_CAST /**/
+#define HAVE_ARPA_INET_H 1
+#define HAVE_ARPA_NAMESER_H 1
+#define HAVE_CTYPE_H 1
+#define HAVE_DIRENT_H 1
+#define HAVE_DLFCN_H 1
+#define HAVE_DLOPEN /**/
+#define HAVE_ERRNO_H 1
+#define HAVE_FCNTL_H 1
+#define HAVE_FLOAT_H 1
+#define HAVE_FTIME 1
+#define HAVE_GETADDRINFO /**/
+#define HAVE_GETTIMEOFDAY 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_ISASCII 1
+#define HAVE_LIMITS_H 1
+#define HAVE_LOCALTIME 1
+#define HAVE_LZMA_H 1
+#define HAVE_MATH_H 1
+#define HAVE_MMAP 1
+#define HAVE_NETDB_H 1
+#define HAVE_NETINET_IN_H 1
+#define HAVE_POLL_H 1
+#define HAVE_PTHREAD_H /**/
+#define HAVE_PUTENV 1
+#define HAVE_RAND 1
+#define HAVE_RAND_R 1
+#define HAVE_RESOLV_H 1
+#define HAVE_SIGNAL_H 1
+#define HAVE_SRAND 1
+#define HAVE_STAT 1
+#define HAVE_STDARG_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRFTIME 1
+#define HAVE_STRINGS_H 1
+#define HAVE_STRING_H 1
+#define HAVE_SYS_MMAN_H 1
+#define HAVE_SYS_SELECT_H 1
+#define HAVE_SYS_SOCKET_H 1
+#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_TIMEB_H 1
+#define HAVE_SYS_TIME_H 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_TIME 1
+#define HAVE_TIME_H 1
+#define HAVE_UNISTD_H 1
+#define HAVE_VA_COPY 1
+#define HAVE_ZLIB_H 1
+#define ICONV_CONST
+#define SEND_ARG2_CAST /**/
+#define SUPPORT_IP6 /**/
+#define VA_LIST_IS_ARRAY 1
+#define XML_SOCKLEN_T socklen_t
diff --git a/ports/libxml2/portfile.cmake b/ports/libxml2/portfile.cmake
index de98368c9..d55d4052d 100644
--- a/ports/libxml2/portfile.cmake
+++ b/ports/libxml2/portfile.cmake
@@ -1,15 +1,7 @@
-# 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}
-#
-
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libxml2-2.9.4)
vcpkg_download_distfile(ARCHIVE
- URLS "ftp://xmlsoft.org/libxml2/libxml2-2.9.4.tar.gz"
+ URLS "ftp://xmlsoft.org/libxml2/libxml2-2.9.4.tar.gz" "http://xmlsoft.org/sources/libxml2-2.9.4.tar.gz"
FILENAME "libxml2-2.9.4.tar.gz"
SHA512 f5174ab1a3a0ec0037a47f47aa47def36674e02bfb42b57f609563f84c6247c585dbbb133c056953a5adb968d328f18cbc102eb0d00d48eb7c95478389e5daf9
)
@@ -20,13 +12,18 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
+ OPTIONS -DPORT_DIR=${CMAKE_CURRENT_LIST_DIR}
OPTIONS_DEBUG -DINSTALL_HEADERS=OFF
)
vcpkg_install_cmake()
# Handle copyright
-file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libxml2)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libxml2)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libxml2/COPYING ${CURRENT_PACKAGES_DIR}/share/libxml2/copyright)
-vcpkg_copy_pdbs() \ No newline at end of file
+vcpkg_copy_pdbs()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libxml2)
+endif()
diff --git a/ports/libxml2/usage b/ports/libxml2/usage
new file mode 100644
index 000000000..fd94c4b4e
--- /dev/null
+++ b/ports/libxml2/usage
@@ -0,0 +1,5 @@
+The package libxml2 is compatible with built-in CMake targets:
+
+ find_package(LibXml2 REQUIRED)
+ target_include_directories(main PRIVATE ${LIBXML2_INCLUDE_DIR})
+ target_link_libraries(main PRIVATE ${LIBXML2_LIBRARIES})
diff --git a/ports/libxml2/vcpkg-cmake-wrapper.cmake b/ports/libxml2/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..68bed6547
--- /dev/null
+++ b/ports/libxml2/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,13 @@
+_find_package(${ARGS})
+if(LibXml2_FOUND)
+ find_package(LibLZMA)
+ list(APPEND LIBXML2_LIBRARIES ${LIBLZMA_LIBRARIES})
+ if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ list(APPEND LIBXML2_LIBRARIES
+ debug ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/libiconv.lib
+ optimized ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/libiconv.lib
+ debug ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/libcharset.lib
+ optimized ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/libcharset.lib
+ ws2_32)
+ endif()
+endif()
diff --git a/ports/libxmlpp/CMakeLists.txt b/ports/libxmlpp/CMakeLists.txt
new file mode 100644
index 000000000..697d6bbc2
--- /dev/null
+++ b/ports/libxmlpp/CMakeLists.txt
@@ -0,0 +1,97 @@
+cmake_minimum_required(VERSION 3.9)
+project(libxmlpp)
+
+set(CMAKE_CXX_STANDARD 17)
+
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+
+find_path(GLIBMM_INCLUDE_DIR NAMES glibmm.h)
+find_library(GLIBMM_LIBRARY NAMES glibmm)
+find_library(GIOMM_LIBRARY NAMES giomm)
+find_library(GLIB_LIBRARY NAMES glib glib-2.0)
+find_library(GIO_LIBRARY NAMES gio gio-2.0)
+find_library(GMODULE_LIBRARY NAMES gmodule gmodule-2.0)
+find_library(GOBJECT_LIBRARY NAMES gobject gobject-2.0)
+find_library(SIGCPP_LIBRARY NAMES sigc sigc-2.0)
+find_library(FFI_LIBRARY NAMES ffi libffi)
+find_library(PCRE_LIBRARY NAMES pcre libpcre)
+find_package(LibXml2 REQUIRED)
+find_package(LibLZMA REQUIRED)
+find_package(ZLIB REQUIRED)
+
+if(APPLE)
+ find_library(LIBINTL_LIBRARY NAMES intl)
+endif()
+
+find_package(unofficial-iconv REQUIRED)
+link_libraries(${LIBINTL_LIBRARY} unofficial::iconv::libiconv)
+
+if(APPLE)
+ find_library(COREFOUNDATION_LIBRARY CoreFoundation)
+ find_library(CORESERVICES_LIBRARY CoreServices)
+ find_library(FOUNDATION_LIBRARY Foundation)
+ link_libraries(${COREFOUNDATION_LIBRARY} ${CORESERVICES_LIBRARY} ${FOUNDATION_LIBRARY})
+endif()
+
+link_libraries(
+ ${GIOMM_LIBRARY}
+ ${GLIBMM_LIBRARY}
+ ${GMODULE_LIBRARY}
+ ${GOBJECT_LIBRARY}
+ ${GIO_LIBRARY}
+ ${GLIB_LIBRARY}
+ ${SIGCPP_LIBRARY}
+ ${FFI_LIBRARY}
+ ${LIBXML2_LIBRARIES}
+ ${PCRE_LIBRARY}
+ ${LIBLZMA_LIBRARIES}
+ ZLIB::ZLIB
+)
+include_directories(${GLIBMM_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIRS} ${LIBLZMA_INCLUDE_DIRS})
+include_directories(. ${CMAKE_BINARY_DIR}/config)
+if(NOT WIN32)
+ set(THREADS_PREFER_PTHREAD_FLAG ON)
+ find_package(Threads REQUIRED)
+ link_libraries(Threads::Threads ${CMAKE_DL_LIBS})
+endif()
+
+# config file
+if(WIN32)
+ configure_file(MSVC_Net2010/libxml++/libxml++config.h ${CMAKE_BINARY_DIR}/config/libxml++config.h COPYONLY)
+else()
+ set(ENV{GLIBMM_CFLAGS} -I${GLIBMM_INCLUDE_DIR})
+ set(ENV{GLIBMM_LIBS} "${GLIBMM_LIBRARY}")
+ set(ENV{GIOMM_CFLAGS} -I${GLIBMM_INCLUDE_DIR})
+ set(ENV{GIOMM_LIBS} "${GIOMM_LIBRARY}")
+ set(ENV{PKG_CONFIG} "echo")
+
+ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/config)
+ execute_process(
+ COMMAND "${CMAKE_SOURCE_DIR}/configure"
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/config
+ RESULT_VARIABLE res
+ )
+ if(NOT res EQUAL 0)
+ message(FATAL_ERROR "Configure failed.")
+ endif()
+endif()
+
+file(GLOB_RECURSE SOURCES libxml++/*.cc)
+add_library(xml++ ${SOURCES})
+target_compile_definitions(xml++ PRIVATE -DLIBXMLPP_BUILD)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES ${CMAKE_BINARY_DIR}/config/libxml++config.h DESTINATION include)
+ install(DIRECTORY libxml++ DESTINATION include FILES_MATCHING PATTERN *.h)
+endif()
+install(
+ TARGETS xml++
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
+
+if(NOT DISABLE_EXAMPLES)
+ add_executable(dom_build examples/dom_build/main.cc)
+ target_link_libraries(dom_build xml++)
+endif()
diff --git a/ports/libxmlpp/CONTROL b/ports/libxmlpp/CONTROL
new file mode 100644
index 000000000..890d1471d
--- /dev/null
+++ b/ports/libxmlpp/CONTROL
@@ -0,0 +1,4 @@
+Source: libxmlpp
+Version: 2.40.1-2
+Description: a C++ wrapper for the libxml XML parser library.
+Build-Depends: libxml2, glibmm
diff --git a/ports/libxmlpp/fixAutoPtrExpired.patch b/ports/libxmlpp/fixAutoPtrExpired.patch
new file mode 100644
index 000000000..98d4df6bc
--- /dev/null
+++ b/ports/libxmlpp/fixAutoPtrExpired.patch
@@ -0,0 +1,114 @@
+diff --git a/libxml++/parsers/saxparser.h b/libxml++/parsers/saxparser.h
+index 1362ca3..0bd36d2 100644
+--- a/libxml++/parsers/saxparser.h
++++ b/libxml++/parsers/saxparser.h
+@@ -221,7 +221,7 @@ private:
+ //TODO: Remove the virtual when we can break ABI?
+ virtual void parse();
+
+- std::auto_ptr<_xmlSAXHandler> sax_handler_;
++ std::unique_ptr<_xmlSAXHandler> sax_handler_;
+
+ // A separate xmlpp::Document that is just used for entity resolution,
+ // and never seen in the API:
+diff --git a/libxml++/parsers/textreader.h b/libxml++/parsers/textreader.h
+index 48901b2..17f0737 100644
+--- a/libxml++/parsers/textreader.h
++++ b/libxml++/parsers/textreader.h
+@@ -257,7 +257,7 @@ class TextReader: NonCopyable
+ void * locator);
+ void check_for_exceptions() const;
+
+- std::auto_ptr<PropertyReader> propertyreader;
++ std::unique_ptr<PropertyReader> propertyreader;
+ _xmlTextReader* impl_;
+ int severity_;
+ Glib::ustring error_;
+diff --git a/libxml++/relaxngschema.h b/libxml++/relaxngschema.h
+index 8df7089..ffe2eaa 100644
+--- a/libxml++/relaxngschema.h
++++ b/libxml++/relaxngschema.h
+@@ -23,7 +23,7 @@
+
+ #include <libxml++/schemabase.h>
+ #include <libxml++/document.h>
+-#include <memory> // std::auto_ptr
++#include <memory> // std::unique_ptr
+
+ #ifndef DOXYGEN_SHOULD_SKIP_THIS
+ extern "C" {
+@@ -105,7 +105,7 @@ protected:
+
+ private:
+ struct Impl;
+- std::auto_ptr<Impl> pimpl_;
++ std::unique_ptr<Impl> pimpl_;
+ };
+
+ } // namespace xmlpp
+diff --git a/libxml++/validators/relaxngvalidator.h b/libxml++/validators/relaxngvalidator.h
+index 5cd5ad7..cd29393 100644
+--- a/libxml++/validators/relaxngvalidator.h
++++ b/libxml++/validators/relaxngvalidator.h
+@@ -22,7 +22,7 @@
+ #define __LIBXMLPP_VALIDATOR_RELAXNGVALIDATOR_H
+
+ #include <libxml++/validators/schemavalidatorbase.h>
+-#include <memory> // std::auto_ptr
++#include <memory> // std::unique_ptr
+
+ namespace Glib
+ {
+@@ -156,7 +156,7 @@ protected:
+
+ private:
+ struct Impl;
+- std::auto_ptr<Impl> pimpl_;
++ std::unique_ptr<Impl> pimpl_;
+ };
+
+ } // namespace xmlpp
+diff --git a/libxml++/validators/xsdvalidator.h b/libxml++/validators/xsdvalidator.h
+index 941d7f1..d64b971 100644
+--- a/libxml++/validators/xsdvalidator.h
++++ b/libxml++/validators/xsdvalidator.h
+@@ -20,7 +20,7 @@
+ #define __LIBXMLPP_VALIDATOR_XSDVALIDATOR_H
+
+ #include <libxml++/validators/schemavalidatorbase.h>
+-#include <memory> // std::auto_ptr
++#include <memory> // std::unique_ptr
+
+ namespace Glib
+ {
+@@ -146,7 +146,7 @@ protected:
+
+ private:
+ struct Impl;
+- std::auto_ptr<Impl> pimpl_;
++ std::unique_ptr<Impl> pimpl_;
+ };
+
+ } // namespace xmlpp
+diff --git a/libxml++/xsdschema.h b/libxml++/xsdschema.h
+index 1333025..8220e4e 100644
+--- a/libxml++/xsdschema.h
++++ b/libxml++/xsdschema.h
+@@ -21,7 +21,7 @@
+
+ #include <libxml++/schemabase.h>
+ #include <libxml++/document.h>
+-#include <memory> // std::auto_ptr
++#include <memory> // std::unique_ptr
+
+ #ifndef DOXYGEN_SHOULD_SKIP_THIS
+ extern "C" {
+@@ -96,7 +96,7 @@ protected:
+
+ private:
+ struct Impl;
+- std::auto_ptr<Impl> pimpl_;
++ std::unique_ptr<Impl> pimpl_;
+ };
+
+ } // namespace xmlpp
diff --git a/ports/libxmlpp/portfile.cmake b/ports/libxmlpp/portfile.cmake
new file mode 100644
index 000000000..9c39d6397
--- /dev/null
+++ b/ports/libxmlpp/portfile.cmake
@@ -0,0 +1,31 @@
+include(vcpkg_common_functions)
+set(LIBXMLPP_VERSION 2.40.1)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libxml++-${LIBXMLPP_VERSION})
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://ftp.gnome.org/pub/GNOME/sources/libxml++/2.40/libxml++-${LIBXMLPP_VERSION}.tar.xz"
+ FILENAME "libxml++-${LIBXMLPP_VERSION}.tar.xz"
+ SHA512 a4ec2e8182d981c57bdcb8f0a203a3161f8c735ceb59fd212408b7a539d1dc826adf6717bed8f4d544ab08afd9c2fc861efe518e24bbd3a1c4b158e2ca48183a
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libxml++-${LIBXMLPP_VERSION}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/fixAutoPtrExpired.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+# Handle copyright and readme
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libxmlpp RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/libxmlpp)
diff --git a/ports/libxmp-lite/0001-msvc-buildfix.patch b/ports/libxmp-lite/0001-msvc-buildfix.patch
new file mode 100644
index 000000000..dfd548186
--- /dev/null
+++ b/ports/libxmp-lite/0001-msvc-buildfix.patch
@@ -0,0 +1,23 @@
+diff -Naur .\libxmp-lite-4.4.1/src/common.h .\libxmp-lite-4.4.1-orig/src/common.h
+--- a/src/common.h 2016-07-16 13:37:36 +0200
++++ b/src/common.h 2017-05-23 00:52:17 +0200
+@@ -77,19 +77,12 @@
+ #ifndef CLIB_DECL
+ #define CLIB_DECL
+ #endif
+-#ifdef DEBUG
+-#ifndef ATTR_PRINTF
+-#define ATTR_PRINTF(x,y)
+-#endif
+-void CLIB_DECL D_(const char *text, ...) ATTR_PRINTF(1,2);
+-#else
+ // VS prior to VC7.1 does not support variadic macros. VC8.0 does not optimize unused parameters passing
+ #if _MSC_VER < 1400
+ void __inline CLIB_DECL D_(const char *text, ...) { do {} while (0); }
+ #else
+ #define D_(args, ...) do {} while (0)
+ #endif
+-#endif
+
+ #elif defined __ANDROID__
+
diff --git a/ports/libxmp-lite/0002-fix-symbols.patch b/ports/libxmp-lite/0002-fix-symbols.patch
new file mode 100644
index 000000000..f765a7bf0
--- /dev/null
+++ b/ports/libxmp-lite/0002-fix-symbols.patch
@@ -0,0 +1,44 @@
+diff --git a/lite/src/format.c b/lite/src/format.c
+--- a/src/format.c
++++ b/src/format.c
+@@ -27,20 +27,20 @@
+ #endif
+ #include "format.h"
+
+-extern const struct format_loader xm_loader;
+-extern const struct format_loader mod_loader;
+-extern const struct format_loader it_loader;
+-extern const struct format_loader s3m_loader;
++extern const struct format_loader libxmp_loader_xm;
++extern const struct format_loader libxmp_loader_mod;
++extern const struct format_loader libxmp_loader_it;
++extern const struct format_loader libxmp_loader_s3m;
+
+ extern const struct pw_format *const pw_format[];
+
+ const struct format_loader *const format_loader[5] = {
+- &xm_loader,
+- &mod_loader,
++ &libxmp_loader_xm,
++ &libxmp_loader_mod,
+ #ifndef LIBXMP_CORE_DISABLE_IT
+- &it_loader,
++ &libxmp_loader_it,
+ #endif
+- &s3m_loader,
++ &libxmp_loader_s3m,
+ NULL
+ };
+
+diff --git a/lite/src/loaders/mod_load.c b/lite/src/loaders/mod_load.c
+--- a/src/loaders/mod_load.c
++++ b/src/loaders/mod_load.c
+@@ -36,7 +36,7 @@
+ static int mod_test (HIO_HANDLE *, char *, const int);
+ static int mod_load (struct module_data *, HIO_HANDLE *, const int);
+
+-const struct format_loader mod_loader = {
++const struct format_loader libxmp_loader_mod = {
+ "Protracker",
+ mod_test,
+ mod_load
diff --git a/ports/libxmp-lite/CMakeLists.txt b/ports/libxmp-lite/CMakeLists.txt
new file mode 100644
index 000000000..9495e0eb4
--- /dev/null
+++ b/ports/libxmp-lite/CMakeLists.txt
@@ -0,0 +1,65 @@
+cmake_minimum_required(VERSION 3.4)
+project(libxmp-lite)
+
+set(HEADERS "include/libxmp-lite/xmp.h")
+
+set(SOURCES src/virtual.c
+ src/format.c
+ src/period.c
+ src/player.c
+ src/read_event.c
+ src/dataio.c
+ src/lfo.c
+ src/scan.c
+ src/control.c
+ src/filter.c
+ src/effects.c
+ src/mixer.c
+ src/mix_all.c
+ src/load_helpers.c
+ src/load.c
+ src/hio.c
+ src/smix.c
+ src/memio.c
+ src/loaders/common.c
+ src/loaders/itsex.c
+ src/loaders/sample.c
+ src/loaders/xm_load.c
+ src/loaders/mod_load.c
+ src/loaders/s3m_load.c
+ src/loaders/it_load.c
+)
+
+include_directories(include/libxmp-lite src)
+
+option(BUILD_SHARED_LIBS "Build shared libs" OFF)
+if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+ option(INSTALL_HEADERS "Install header files" OFF)
+else()
+ option(INSTALL_HEADERS "Install header files" ON)
+endif()
+
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+add_library(libxmp-lite ${SOURCES})
+target_compile_definitions(libxmp-lite PRIVATE
+ LIBXMP_CORE_PLAYER=1
+ inline=__inline
+ _USE_MATH_DEFINES=1
+)
+
+# Fix UWP /sdl compile errors
+# Disable C4703: Not initialized
+# Disable C4996: Deprecated
+set_target_properties(libxmp-lite PROPERTIES COMPILE_FLAGS "/wd4703 /wd4996")
+
+install(
+ TARGETS libxmp-lite
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+ RUNTIME DESTINATION bin
+)
+
+if(INSTALL_HEADERS)
+ install(FILES ${HEADERS} DESTINATION include)
+endif()
diff --git a/ports/libxmp-lite/CONTROL b/ports/libxmp-lite/CONTROL
new file mode 100644
index 000000000..1f7e8dded
--- /dev/null
+++ b/ports/libxmp-lite/CONTROL
@@ -0,0 +1,3 @@
+Source: libxmp-lite
+Version: 4.4.1
+Description: Lightweight version of libxmp that supports MOD, S3M, XM and IT modules.
diff --git a/ports/libxmp-lite/portfile.cmake b/ports/libxmp-lite/portfile.cmake
new file mode 100644
index 000000000..ac67940a1
--- /dev/null
+++ b/ports/libxmp-lite/portfile.cmake
@@ -0,0 +1,27 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libxmp-lite-4.4.1)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://sourceforge.net/projects/xmp/files/libxmp/4.4.1/libxmp-lite-4.4.1.tar.gz"
+ FILENAME "libxmp-lite-4.4.1.tar.gz"
+ SHA512 f27e3f9fb79ff15ce90b51fb29641c01cadf7455150da57cde6860c2ba075ed497650eb44ec9143bdd3538288228c609f7db6d862c9d73f007f686eccb05543e
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001-msvc-buildfix.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0002-fix-symbols.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/libxmp-lite RENAME copyright)
diff --git a/ports/libzip/CONTROL b/ports/libzip/CONTROL
new file mode 100644
index 000000000..e82f0fee2
--- /dev/null
+++ b/ports/libzip/CONTROL
@@ -0,0 +1,4 @@
+Source: libzip
+Version: rel-1-5-1
+Build-Depends: zlib
+Description: A library for reading, creating, and modifying zip archives.
diff --git a/ports/libzip/LICENSE b/ports/libzip/LICENSE
new file mode 100644
index 000000000..1c2e86bf2
--- /dev/null
+++ b/ports/libzip/LICENSE
@@ -0,0 +1,66 @@
+Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+
+The authors can be contacted at <libzip@nih.at>
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+For AES encryption support, files under the following license are used:
+
+---------------------------------------------------------------------------
+Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK.
+All rights reserved.
+
+LICENSE TERMS
+
+The free distribution and use of this software in both source and binary
+form is allowed (with or without changes) provided that:
+
+ 1. distributions of this source code include the above copyright
+ notice, this list of conditions and the following disclaimer;
+
+ 2. distributions in binary form include the above copyright
+ notice, this list of conditions and the following disclaimer
+ in the documentation and/or other associated materials;
+
+ 3. the copyright holder's name is not used to endorse products
+ built using this software without specific written permission.
+
+ALTERNATIVELY, provided that this notice is retained in full, this product
+may be distributed under the terms of the GNU General Public License (GPL),
+in which case the provisions of the GPL apply INSTEAD OF those given above.
+
+DISCLAIMER
+
+This software is provided 'as is' with no explicit or implied warranties
+in respect of its properties, including, but not limited to, correctness
+and/or fitness for purpose.
+---------------------------------------------------------------------------
+Issue Date: 18th November 2008
diff --git a/ports/libzip/cmake_dont_build_more_than_needed.patch b/ports/libzip/cmake_dont_build_more_than_needed.patch
new file mode 100644
index 000000000..bb0af9749
--- /dev/null
+++ b/ports/libzip/cmake_dont_build_more_than_needed.patch
@@ -0,0 +1,19 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 69cdb8b..4c985fb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -149,10 +149,10 @@ ENABLE_TESTING()
+
+ # Targets
+ ADD_SUBDIRECTORY(lib)
+-ADD_SUBDIRECTORY(man)
+-ADD_SUBDIRECTORY(src)
+-ADD_SUBDIRECTORY(regress)
+-ADD_SUBDIRECTORY(examples)
++#ADD_SUBDIRECTORY(man)
++#ADD_SUBDIRECTORY(src)
++#ADD_SUBDIRECTORY(regress)
++#ADD_SUBDIRECTORY(examples)
+
+ # pkgconfig file
+ SET(prefix ${CMAKE_INSTALL_PREFIX})
diff --git a/ports/libzip/portfile.cmake b/ports/libzip/portfile.cmake
new file mode 100644
index 000000000..b509c5eb0
--- /dev/null
+++ b/ports/libzip/portfile.cmake
@@ -0,0 +1,32 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO nih-at/libzip
+ REF rel-1-5-1
+ SHA512 778f438f6354f030656baa5497b3154ad8fb764011d2a6925136f32e06dc0dcd1ed93fe05dbf7be619004a68cdabe5e34a83b988c1501ed67e9cfa4fa540350f
+)
+
+# Patch cmake and configuration to allow static builds
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/cmake_dont_build_more_than_needed.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+# Move zipconf.h to include and remove include directories from lib
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/libzip ${CURRENT_PACKAGES_DIR}/debug/lib/libzip)
+
+# Remove debug include
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Copy copright information
+file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libzip RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/live555/CMakeLists.txt b/ports/live555/CMakeLists.txt
new file mode 100644
index 000000000..a41d2c791
--- /dev/null
+++ b/ports/live555/CMakeLists.txt
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.5)
+project(live555 CXX)
+
+include_directories(
+ BasicUsageEnvironment/include
+ groupsock/include
+ liveMedia/include
+ UsageEnvironment/include
+)
+
+file(GLOB BASIC_USAGE_ENVIRONMENT_SRCS BasicUsageEnvironment/*.cpp)
+add_library(BasicUsageEnvironment ${BASIC_USAGE_ENVIRONMENT_SRCS})
+
+file(GLOB GROUPSOCK_SRCS groupsock/*.cpp)
+add_library(groupsock ${GROUPSOCK_SRCS})
+
+file(GLOB LIVEMEDIA_SRCS liveMedia/*.cpp)
+add_library(liveMedia ${LIVEMEDIA_SRCS})
+
+file(GLOB USAGE_ENVIRONMENT_SRCS UsageEnvironment/*.cpp)
+add_library(UsageEnvironment ${LIVEMEDIA_SRCS})
+
+install(TARGETS groupsock BasicUsageEnvironment liveMedia UsageEnvironment
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
diff --git a/ports/live555/CONTROL b/ports/live555/CONTROL
new file mode 100644
index 000000000..07b93da6b
--- /dev/null
+++ b/ports/live555/CONTROL
@@ -0,0 +1,3 @@
+Source: live555
+Version: 2018.02.28
+Description: A complete RTSP server application
diff --git a/ports/live555/portfile.cmake b/ports/live555/portfile.cmake
new file mode 100644
index 000000000..d3ac4f51d
--- /dev/null
+++ b/ports/live555/portfile.cmake
@@ -0,0 +1,35 @@
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("live555 cannot currently be built dynamically. Building static instead.")
+ set(VCPKG_LIBRARY_LINKAGE "static")
+endif()
+
+include(vcpkg_common_functions)
+set(LIVE_VERSION 2018.02.28)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIVE_VERSION}/live)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.live555.com/liveMedia/public/live.${LIVE_VERSION}.tar.gz"
+ FILENAME "live.${LIVE_VERSION}.tar.gz"
+ SHA512 0e445d0b494d82e5826ecea2ec4196472781d3524d2fea95efef83ec5dc0d211334e3ea34dc83b758ed847e2b4290727b299b4118133ca2468911c7cb2053a55
+)
+vcpkg_extract_source_archive(${ARCHIVE} ${CURRENT_BUILDTREES_DIR}/src/${LIVE_VERSION})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(GLOB HEADERS
+ "${SOURCE_PATH}/BasicUsageEnvironment/include/*.h*"
+ "${SOURCE_PATH}/groupsock/include/*.h*"
+ "${SOURCE_PATH}/liveMedia/include/*.h*"
+ "${SOURCE_PATH}/UsageEnvironment/include/*.h*"
+)
+
+file(COPY ${HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/live555 RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/llvm/CONTROL b/ports/llvm/CONTROL
new file mode 100644
index 000000000..37368dbc7
--- /dev/null
+++ b/ports/llvm/CONTROL
@@ -0,0 +1,4 @@
+Source: llvm
+Version: 6.0.0-1
+Description: The LLVM Compiler Infrastructure
+Build-Depends: atlmfc
diff --git a/ports/llvm/install-cmake-modules-to-share.patch b/ports/llvm/install-cmake-modules-to-share.patch
new file mode 100644
index 000000000..b5193beca
--- /dev/null
+++ b/ports/llvm/install-cmake-modules-to-share.patch
@@ -0,0 +1,10 @@
+diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
+index ac4b0b7..13a271d 100644
+--- a/cmake/modules/CMakeLists.txt
++++ b/cmake/modules/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
++set(LLVM_INSTALL_PACKAGE_DIR share/llvm)
+ set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+
+ # First for users who use an installed LLVM, create the LLVMExports.cmake file.
diff --git a/ports/llvm/portfile.cmake b/ports/llvm/portfile.cmake
new file mode 100644
index 000000000..650e2ae92
--- /dev/null
+++ b/ports/llvm/portfile.cmake
@@ -0,0 +1,83 @@
+# LLVM documentation recommends always using static library linkage when
+# building with Microsoft toolchain; it's also the default on other platforms
+set(VCPKG_LIBRARY_LINKAGE static)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "llvm cannot currently be built for UWP")
+endif()
+
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/llvm-6.0.0.src)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://releases.llvm.org/6.0.0/llvm-6.0.0.src.tar.xz"
+ FILENAME "llvm-6.0.0.src.tar.xz"
+ SHA512 a71fdd5ddc46f01327ad891cfcc198febdbe10769c57f14d8a4fb7d514621ee4080e1a641200d3353c16a16731d390270499ec6cd3dc98fadc570f3eb6b52b8c
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_download_distfile(CLANG_ARCHIVE
+ URLS "http://releases.llvm.org/6.0.0/cfe-6.0.0.src.tar.xz"
+ FILENAME "cfe-6.0.0.src.tar.xz"
+ SHA512 e886dd27448503bbfc7fd4f68eb089c19b2f2be4f0e5b26d3df253833f60b91d70b472a6b530063386e2252075b110ce9f5942800feddf6c34b94a75cf7bd5c6
+)
+vcpkg_extract_source_archive(${CLANG_ARCHIVE} ${SOURCE_PATH}/tools)
+
+if(NOT EXISTS ${SOURCE_PATH}/tools/clang)
+ file(RENAME ${SOURCE_PATH}/tools/cfe-6.0.0.src ${SOURCE_PATH}/tools/clang)
+endif()
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/install-cmake-modules-to-share.patch
+)
+
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY)
+set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}")
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DLLVM_TARGETS_TO_BUILD=X86
+ -DLLVM_INCLUDE_TOOLS=ON
+ -DLLVM_INCLUDE_UTILS=OFF
+ -DLLVM_INCLUDE_EXAMPLES=OFF
+ -DLLVM_INCLUDE_TESTS=OFF
+ -DLLVM_ABI_BREAKING_CHECKS=FORCE_OFF
+ -DLLVM_TOOLS_INSTALL_DIR=tools/llvm
+)
+
+vcpkg_install_cmake()
+
+file(GLOB EXE ${CURRENT_PACKAGES_DIR}/bin/*)
+file(GLOB DEBUG_EXE ${CURRENT_PACKAGES_DIR}/debug/bin/*)
+file(COPY ${EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/llvm)
+file(COPY ${DEBUG_EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/llvm)
+file(REMOVE ${EXE})
+file(REMOVE ${DEBUG_EXE})
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/clang TARGET_PATH share/clang)
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/llvm)
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/llvm)
+
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/include
+ ${CURRENT_PACKAGES_DIR}/debug/tools
+ ${CURRENT_PACKAGES_DIR}/debug/share
+ ${CURRENT_PACKAGES_DIR}/debug/bin
+ ${CURRENT_PACKAGES_DIR}/debug/msbuild-bin
+ ${CURRENT_PACKAGES_DIR}/bin
+ ${CURRENT_PACKAGES_DIR}/msbuild-bin
+ ${CURRENT_PACKAGES_DIR}/tools/msbuild-bin
+ ${CURRENT_PACKAGES_DIR}/include/llvm/BinaryFormat/WasmRelocs
+)
+
+# Remove one empty include subdirectory if it is indeed empty
+file(GLOB MCANALYSISFILES ${CURRENT_PACKAGES_DIR}/include/llvm/MC/MCAnalysis/*)
+if(NOT MCANALYSISFILES)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/llvm/MC/MCAnalysis)
+endif()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/llvm RENAME copyright)
diff --git a/ports/lmdb/CONTROL b/ports/lmdb/CONTROL
index 13c648fa6..c926fd78f 100644
--- a/ports/lmdb/CONTROL
+++ b/ports/lmdb/CONTROL
@@ -1,3 +1,3 @@
Source: lmdb
-Version: 0.9.18-2
-Description: LMDB is an extraordinarily fast, memory-efficient database \ No newline at end of file
+Version: 0.9.18-3
+Description: LMDB is an extraordinarily fast, memory-efficient database
diff --git a/ports/lmdb/cmake/CMakeLists.txt b/ports/lmdb/cmake/CMakeLists.txt
index 6f63384ea..32097e86a 100644
--- a/ports/lmdb/cmake/CMakeLists.txt
+++ b/ports/lmdb/cmake/CMakeLists.txt
@@ -22,8 +22,8 @@ set(LMDB_CONFIG_INSTALL_DIR share/lmdb CACHE PATH "Install directory for cmake c
if(BUILD_SHARED_LIBS)
-set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /DEF:${CMAKE_CURRENT_SOURCE_DIR}/lmdbd.def")
-set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /DEF:${CMAKE_CURRENT_SOURCE_DIR}/lmdb.def")
+set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /DEF:\"${CMAKE_CURRENT_SOURCE_DIR}/lmdbd.def\"")
+set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /DEF:\"${CMAKE_CURRENT_SOURCE_DIR}/lmdb.def\"")
endif()
set(SRCS lmdb mdb.c lmdb.h midl.c midl.h )
diff --git a/ports/lodepng/CMakeLists.txt b/ports/lodepng/CMakeLists.txt
new file mode 100644
index 000000000..d4c8bc12a
--- /dev/null
+++ b/ports/lodepng/CMakeLists.txt
@@ -0,0 +1,41 @@
+cmake_minimum_required(VERSION 3.8.0)
+project(lodepng)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+if(BUILD_SHARED_LIBS)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif()
+
+
+include_directories(".")
+
+add_library(lodepng lodepng.cpp lodepng_util.cpp)
+
+add_executable(pngdetail pngdetail.cpp)
+
+target_link_libraries(pngdetail lodepng)
+
+install(
+ TARGETS lodepng
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_TOOLS)
+ install (
+ TARGETS pngdetail
+ RUNTIME DESTINATION tools/lodepng
+ )
+endif()
+
+if(NOT DDISABLE_INSTALL_EXAMPLES)
+ install(DIRECTORY examples DESTINATION share/lodepng/)
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES lodepng.h lodepng_util.h DESTINATION include)
+endif()
diff --git a/ports/lodepng/CONTROL b/ports/lodepng/CONTROL
new file mode 100644
index 000000000..0f31c87fb
--- /dev/null
+++ b/ports/lodepng/CONTROL
@@ -0,0 +1,3 @@
+Source: lodepng
+Version: 2018-05-17
+Description: PNG encoder and decoder in C and C++
diff --git a/ports/lodepng/portfile.cmake b/ports/lodepng/portfile.cmake
new file mode 100644
index 000000000..9b390b4ff
--- /dev/null
+++ b/ports/lodepng/portfile.cmake
@@ -0,0 +1,28 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO lvandeve/lodepng
+ REF d03d7df9888aafb9c7f615895c34b05acf033908
+ SHA512 a7139f839ad161075909611527645c75758959626fbb5d892dc1bfba8df2d4c3cfa86328de5534386e6053843727d2bc453fd439a2e329fd3be5d36d77903a0f
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DDISABLE_INSTALL_HEADERS=ON
+ -DDISABLE_INSTALL_TOOLS=ON
+ -DDDISABLE_INSTALL_EXAMPLES=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/lodepng)
+
+
+file(INSTALL ${SOURCE_PATH}/lodepng.h DESTINATION ${CURRENT_PACKAGES_DIR}/share/lodepng RENAME copyright)
diff --git a/ports/log4cplus/CONTROL b/ports/log4cplus/CONTROL
index 2d367a31a..6dbcb515c 100644
--- a/ports/log4cplus/CONTROL
+++ b/ports/log4cplus/CONTROL
@@ -1,3 +1,4 @@
Source: log4cplus
-Version: 1.1.3-RC7
+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 1eb1a7a59..d6e600221 100644
--- a/ports/log4cplus/portfile.cmake
+++ b/ports/log4cplus/portfile.cmake
@@ -1,20 +1,43 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/log4cplus-REL_1_1_3-RC7)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO log4cplus/log4cplus
+ REF REL_2_0_0-RC2
+ SHA512 34392d85088534e0661e6fa9726c5970647a5acaa559bafb5d3746a70f5baca01012f457d50c15e73d9aca1d3ed9ec99028cc65fab07f73cdadbbc0b4329bcb5
+ HEAD_REF master
+)
+
+set(THREADPOOL_REF dda9e3d40502e85ce082c05d2c05c1bc94348b6a)
vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/log4cplus/log4cplus/archive/REL_1_1_3-RC7.zip"
- FILENAME "REL_1_1_3-RC7.zip"
- SHA512 06320cb2ab6e18e91c6d79a943c9fdcd82b984e8e908e232f0e0e8eca69496f1f3845913107218bc2be356473315f8dfb822a5993bab8efcadfc4819532da823
+ URLS "https://github.com/log4cplus/ThreadPool/archive/${THREADPOOL_REF}.tar.gz"
+ FILENAME "log4cplus-threadpool-${THREADPOOL_REF}.tar.gz"
+ SHA512 225adb11f447495a00e401d32f63d9a7eb3a8191d477a21bfa3c39f1ff5cbe8bfb7770a740e840c5748f816137cdef1a5915b17d16b3dd4c3399d1a67ab0f381
)
vcpkg_extract_source_archive(${ARCHIVE})
+file(
+ COPY
+ ${CURRENT_BUILDTREES_DIR}/src/ThreadPool-${THREADPOOL_REF}/COPYING
+ ${CURRENT_BUILDTREES_DIR}/src/ThreadPool-${THREADPOOL_REF}/example.cpp
+ ${CURRENT_BUILDTREES_DIR}/src/ThreadPool-${THREADPOOL_REF}/README.md
+ ${CURRENT_BUILDTREES_DIR}/src/ThreadPool-${THREADPOOL_REF}/ThreadPool.h
+ DESTINATION ${SOURCE_PATH}/threadpool
+)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS -DLOG4CPLUS_BUILD_TESTING=OFF -DLOG4CPLUS_BUILD_LOGGINGSERVER=OFF -DWITH_UNIT_TESTS=OFF
)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/log4cplus)
+
+vcpkg_copy_pdbs()
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/log4cplus)
diff --git a/ports/lpeg/CMakeLists.txt b/ports/lpeg/CMakeLists.txt
new file mode 100644
index 000000000..f5a72fad4
--- /dev/null
+++ b/ports/lpeg/CMakeLists.txt
@@ -0,0 +1,28 @@
+cmake_minimum_required(VERSION 3.0)
+project(lpeg)
+
+if(NOT WIN32)
+ message(FATAL_ERROR "Written for windows only")
+endif()
+
+find_path(LUA_INCLUDE_DIR lua.h PATH_SUFFIXES lua)
+find_library(LUA_LIBRARY lua)
+set(LPEG_INCLUDES ${LUA_INCLUDE_DIR})
+set(LPEG_LIBRARIES ${LUA_LIBRARY})
+
+add_library(lpeg
+ lpvm.c
+ lptree.c
+ lpprint.c
+ lpcap.c
+ lpcode.c
+ lpeg.def)
+
+target_include_directories(lpeg PRIVATE ${LPEG_INCLUDES})
+target_link_libraries(lpeg PRIVATE ${LPEG_LIBRARIES})
+
+install(TARGETS lpeg
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+install(FILES re.lua DESTINATION share/lua)
diff --git a/ports/lpeg/CONTROL b/ports/lpeg/CONTROL
new file mode 100644
index 000000000..9896815b8
--- /dev/null
+++ b/ports/lpeg/CONTROL
@@ -0,0 +1,4 @@
+Source: lpeg
+Version: 1.0.1-3
+Description: LPeg is a pattern-matching library for Lua, based on Parsing Expression Grammars (PEGs).
+Build-Depends: lua
diff --git a/ports/lpeg/lpeg.def b/ports/lpeg/lpeg.def
new file mode 100644
index 000000000..c4c1285b7
--- /dev/null
+++ b/ports/lpeg/lpeg.def
@@ -0,0 +1,3 @@
+LIBRARY lpeg
+EXPORTS
+ luaopen_lpeg
diff --git a/ports/lpeg/portfile.cmake b/ports/lpeg/portfile.cmake
new file mode 100644
index 000000000..43cc89d93
--- /dev/null
+++ b/ports/lpeg/portfile.cmake
@@ -0,0 +1,32 @@
+#cmake-only scripts
+include(vcpkg_common_functions)
+
+set(LPEG_VER 1.0.1)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/lpeg-${LPEG_VER})
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.inf.puc-rio.br/~roberto/lpeg/lpeg-${LPEG_VER}.tar.gz"
+ FILENAME "lpeg-${LPEG_VER}.tar.gz"
+ SHA512 7b43fbee7eff443000986684bc56bba6d2796a31cf860740746c70e155bdea1b62a46b93f97e2747e3ef0f63e965148778ac2985d0f2d83e1e37ec4ebbabf4aa
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/lpeg.def DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+# Remove debug share
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/lpeg.html DESTINATION ${CURRENT_PACKAGES_DIR}/share/lpeg RENAME copyright)
+
+# Allow empty include directory
+set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
diff --git a/ports/lua/CMakeLists.txt b/ports/lua/CMakeLists.txt
index faef8018b..3fa62fe2c 100644
--- a/ports/lua/CMakeLists.txt
+++ b/ports/lua/CMakeLists.txt
@@ -45,7 +45,7 @@ ADD_DEFINITIONS (-D_CRT_SECURE_NO_WARNINGS )
ADD_LIBRARY ( lua ${SRC_LIBLUA} )
IF (BUILD_SHARED_LIBS)
- TARGET_COMPILE_DEFINITIONS (lua PRIVATE -DLUA_BUILD_AS_DLL )
+ TARGET_COMPILE_DEFINITIONS (lua PUBLIC -DLUA_BUILD_AS_DLL )
ENDIF ()
INSTALL ( TARGETS lua
@@ -55,10 +55,11 @@ INSTALL ( TARGETS lua
)
IF (NOT DEFINED SKIP_INSTALL_TOOLS)
- ADD_EXECUTABLE ( luac src/luac.c ${SRC_LIBLUA} ) # compiler
- ADD_EXECUTABLE ( luai src/lua.c ${SRC_LIBLUA} ) # interpreter
+ ADD_EXECUTABLE ( luac src/luac.c ${SRC_LIBLUA} ) # compiler uses non-exported APIs, so must include sources directly.
+ ADD_EXECUTABLE ( luai src/lua.c ) # interpreter
+ TARGET_LINK_LIBRARIES ( luai lua )
SET_TARGET_PROPERTIES ( luai PROPERTIES OUTPUT_NAME lua PDB_NAME luai )
- INSTALL ( TARGETS luai luac RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/tools )
+ INSTALL ( TARGETS luai luac RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/tools/lua )
ENDIF ()
IF (NOT DEFINED SKIP_INSTALL_HEADERS)
diff --git a/ports/lua/CONTROL b/ports/lua/CONTROL
index 266bd153c..836ae345a 100644
--- a/ports/lua/CONTROL
+++ b/ports/lua/CONTROL
@@ -1,3 +1,3 @@
Source: lua
-Version: 5.3.4
+Version: 5.3.4-4
Description: a powerful, fast, lightweight, embeddable scripting language
diff --git a/ports/lua/portfile.cmake b/ports/lua/portfile.cmake
index beda8362e..a1dcbd379 100644
--- a/ports/lua/portfile.cmake
+++ b/ports/lua/portfile.cmake
@@ -35,6 +35,8 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
file(WRITE ${CURRENT_PACKAGES_DIR}/include/luaconf.h "${LUA_CONF_H}")
endif()
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/lua)
+
# Handle copyright
file(COPY ${CMAKE_CURRENT_LIST_DIR}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/lua)
vcpkg_copy_pdbs()
diff --git a/ports/luafilesystem/CMakeLists.txt b/ports/luafilesystem/CMakeLists.txt
new file mode 100644
index 000000000..85fb5eb86
--- /dev/null
+++ b/ports/luafilesystem/CMakeLists.txt
@@ -0,0 +1,21 @@
+cmake_minimum_required(VERSION 3.0)
+project(luafilesystem)
+
+if(NOT WIN32)
+ message(FATAL_ERROR "Written for windows only")
+endif()
+
+find_path(LUA_INCLUDE_DIR lua.h PATH_SUFFIXES lua)
+find_library(LUA_LIBRARY lua)
+set(LFS_INCLUDES ${LUA_INCLUDE_DIR})
+set(LFS_LIBRARIES ${LUA_LIBRARY})
+
+add_library( lfs src/lfs.h src/lfs.c src/lfs.def)
+
+target_include_directories(lfs PRIVATE ${LFS_INCLUDES})
+target_link_libraries(lfs PRIVATE ${LFS_LIBRARIES})
+
+install(TARGETS lfs
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
diff --git a/ports/luafilesystem/CONTROL b/ports/luafilesystem/CONTROL
new file mode 100644
index 000000000..4ff18cda4
--- /dev/null
+++ b/ports/luafilesystem/CONTROL
@@ -0,0 +1,4 @@
+Source: luafilesystem
+Version: 1.7.0.2
+Description: LuaFileSystem is a Lua library developed to complement the set of functions related to file systems offered by the standard Lua distribution.
+Build-Depends: lua
diff --git a/ports/luafilesystem/lfs-def-fix.patch b/ports/luafilesystem/lfs-def-fix.patch
new file mode 100644
index 000000000..34923427f
--- /dev/null
+++ b/ports/luafilesystem/lfs-def-fix.patch
@@ -0,0 +1,20 @@
+From 92527d96199912f79b8046ddb32ff83a16771cb4 Mon Sep 17 00:00:00 2001
+From: "Stephen E. Baker" <baker.stephen.e@gmail.com>
+Date: Fri, 15 Sep 2017 21:18:58 -0400
+Subject: [PATCH] Update version in lfs.def
+
+Version number of current release is 1.7
+---
+ src/lfs.def | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/lfs.def b/src/lfs.def
+index 8a36d41..4055ff0 100644
+--- a/src/lfs.def
++++ b/src/lfs.def
+@@ -1,4 +1,4 @@
+ LIBRARY lfs.dll
+-VERSION 1.6
++VERSION 1.7
+ EXPORTS
+ luaopen_lfs
diff --git a/ports/luafilesystem/portfile.cmake b/ports/luafilesystem/portfile.cmake
new file mode 100644
index 000000000..74c3d116a
--- /dev/null
+++ b/ports/luafilesystem/portfile.cmake
@@ -0,0 +1,35 @@
+include(vcpkg_common_functions)
+
+set(LUAFILESYSTEM_VERSION 1.7.0.2)
+set(LUAFILESYSTEM_REVISION v1_7_0_2)
+set(LUAFILESYSTEM_HASH a1d4d077776e57cd878dbcd21656da141ea3686c587b5420a2b039aeaf086b7e7d05d531ee1cc2bbd7d06660d1315b09593e52143f6711f033ce8eecdc550511)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/luafilesystem-${LUAFILESYSTEM_VERSION})
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO keplerproject/luafilesystem
+ REF ${LUAFILESYSTEM_REVISION}
+ SHA512 ${LUAFILESYSTEM_HASH}
+ HEAD_REF master)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/lfs-def-fix.patch)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/luafilesystem)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/luafilesystem/LICENSE ${CURRENT_PACKAGES_DIR}/share/luafilesystem/copyright)
+
+# Allow empty include directory
+set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
diff --git a/ports/luajit/001-fixStaticBuild.patch b/ports/luajit/001-fixStaticBuild.patch
new file mode 100644
index 000000000..b21991702
--- /dev/null
+++ b/ports/luajit/001-fixStaticBuild.patch
@@ -0,0 +1,26 @@
+diff --git a/src/msvcbuild.bat b/src/msvcbuild.bat
+index bd0c4c5..95e1cf4 100644
+--- a/src/msvcbuild.bat
++++ b/src/msvcbuild.bat
+@@ -67,15 +67,20 @@ buildvm -m folddef -o lj_folddef.h lj_opt_fold.c
+ @shift
+ @set LJCOMPILE=%LJCOMPILE% /Zi
+ @set LJLINK=%LJLINK% /debug
++@set DEBUG=1
+ :NODEBUG
+ @if "%1"=="amalg" goto :AMALGDLL
+ @if "%1"=="static" goto :STATIC
+-%LJCOMPILE% /MD /DLUA_BUILD_AS_DLL lj_*.c lib_*.c
++@if "%DEBUG%"=="1" set LJCOMPILE=%LJCOMPILE% /MDd
++@if "%DEBUG%"=="" set LJCOMPILE=%LJCOMPILE% /MD
++%LJCOMPILE% /DLUA_BUILD_AS_DLL lj_*.c lib_*.c
+ @if errorlevel 1 goto :BAD
+ %LJLINK% /DLL /out:%LJDLLNAME% lj_*.obj lib_*.obj
+ @if errorlevel 1 goto :BAD
+ @goto :MTDLL
+ :STATIC
++@if "%DEBUG%"=="1" set LJCOMPILE=%LJCOMPILE% /MTd
++@if "%DEBUG%"=="" set LJCOMPILE=%LJCOMPILE% /MT
+ %LJCOMPILE% lj_*.c lib_*.c
+ @if errorlevel 1 goto :BAD
+ %LJLIB% /OUT:%LJLIBNAME% lj_*.obj lib_*.obj
diff --git a/ports/luajit/CONTROL b/ports/luajit/CONTROL
new file mode 100644
index 000000000..5a5ad6b91
--- /dev/null
+++ b/ports/luajit/CONTROL
@@ -0,0 +1,3 @@
+Source: luajit
+Version: 2.0.5
+Description: LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language.
diff --git a/ports/luajit/portfile.cmake b/ports/luajit/portfile.cmake
new file mode 100644
index 000000000..da68d3ad4
--- /dev/null
+++ b/ports/luajit/portfile.cmake
@@ -0,0 +1,85 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "LuaJIT currently only supports being built for desktop")
+endif()
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/LuaJIT-2.0.5)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO LuaJIT/LuaJIT
+ REF v2.0.5
+ SHA512 65d982d7fe532a61335613f414f3b8fa5333747bdf7aefc2c2d52022d227594ade827639049b97e3c4ffae9f38f32cb15f1a17b1780fb0a943e1a3af05e2b576
+ HEAD_REF master
+)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/luajit)
+
+set (SRC ${SOURCE_PATH}/src)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set (LJIT_STATIC "")
+else()
+ set (LJIT_STATIC "static")
+endif()
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/001-fixStaticBuild.patch
+)
+
+message(STATUS "Building ${TARGET_TRIPLET}-dbg")
+
+file(REMOVE "${SRC}/*.dll")
+file(REMOVE "${SRC}/*.exe")
+file(REMOVE "${SRC}/*.lib")
+
+vcpkg_execute_required_process_repeat(
+ COUNT 1
+ COMMAND "${SOURCE_PATH}/src/msvcbuild.bat" debug ${LJIT_STATIC}
+ WORKING_DIRECTORY "${SOURCE_PATH}/src/"
+ LOGNAME build-${TARGET_TRIPLET}-dbg
+)
+
+file(INSTALL ${SRC}/luajit.exe DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools)
+file(INSTALL ${SRC}/lua51.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(INSTALL ${SRC}/lua51.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+vcpkg_copy_pdbs()
+
+file(REMOVE "${SRC}/*.dll")
+file(REMOVE "${SRC}/*.exe")
+file(REMOVE "${SRC}/*.lib")
+
+message(STATUS "Building ${TARGET_TRIPLET}-rel")
+
+vcpkg_execute_required_process_repeat(d8un
+ COUNT 1
+ COMMAND "${SOURCE_PATH}/src/msvcbuild.bat" ${LJIT_STATIC}
+ WORKING_DIRECTORY "${SOURCE_PATH}/src/"
+ LOGNAME build-${TARGET_TRIPLET}-rel
+)
+
+file(INSTALL ${SRC}/luajit.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools)
+file(INSTALL ${SRC}/lua51.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(INSTALL ${SRC}/lua51.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+endif()
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SRC}/lua.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SRC}/luajit.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SRC}/luaconf.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SRC}/lualib.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SRC}/lauxlib.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SRC}/lua.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+file(REMOVE "${SRC}/*.dll")
+file(REMOVE "${SRC}/*.exe")
+file(REMOVE "${SRC}/*.lib")
diff --git a/ports/luasocket/CMakeLists.txt b/ports/luasocket/CMakeLists.txt
new file mode 100644
index 000000000..3ab763deb
--- /dev/null
+++ b/ports/luasocket/CMakeLists.txt
@@ -0,0 +1,65 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(luasocket)
+
+if(NOT WIN32)
+ message(FATAL_ERROR "Written for windows only")
+endif()
+
+find_path(LUA_INCLUDE_DIR lua.h PATH_SUFFIXES lua)
+find_library(LUA_LIBRARY lua)
+set(LUASOCKET_INCLUDES ${LUA_INCLUDE_DIR} src)
+set(LUASOCKET_LIBRARIES ${LUA_LIBRARY} ws2_32)
+
+add_library(socket.core
+ src/luasocket.c
+ src/timeout.c
+ src/buffer.c
+ src/io.c
+ src/auxiliar.c
+ src/options.c
+ src/inet.c
+ src/except.c
+ src/select.c
+ src/tcp.c
+ src/udp.c
+ src/compat.c
+ src/wsocket.c)
+
+add_library(mime.core
+ src/mime.c
+ src/compat.c)
+
+target_include_directories(socket.core PRIVATE ${LUASOCKET_INCLUDES})
+target_link_libraries(socket.core PRIVATE ${LUASOCKET_LIBRARIES})
+
+target_include_directories(mime.core PRIVATE ${LUASOCKET_INCLUDES})
+target_link_libraries(mime.core PRIVATE ${LUASOCKET_LIBRARIES})
+
+add_definitions(
+ "-DLUASOCKET_API=__declspec(dllexport)"
+ "-DMIME_API=__declspec(dllexport)")
+
+install(TARGETS socket.core
+ RUNTIME DESTINATION bin/socket
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
+install(TARGETS mime.core
+ RUNTIME DESTINATION bin/mime
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
+install(FILES
+ src/ltn12.lua
+ src/socket.lua
+ src/mime.lua
+ DESTINATION share/lua)
+
+install(FILES
+ src/http.lua
+ src/url.lua
+ src/tp.lua
+ src/ftp.lua
+ src/headers.lua
+ src/smtp.lua
+ DESTINATION share/lua/socket)
diff --git a/ports/luasocket/CONTROL b/ports/luasocket/CONTROL
new file mode 100644
index 000000000..3eeada1ca
--- /dev/null
+++ b/ports/luasocket/CONTROL
@@ -0,0 +1,4 @@
+Source: luasocket
+Version: 2018-02-25
+Description: LuaSocket is a Lua extension library that is composed by two parts: a C core that provides support for the TCP and UDP transport layers, and a set of Lua modules that add support for functionality commonly needed by applications that deal with the Internet.
+Build-Depends: lua
diff --git a/ports/luasocket/portfile.cmake b/ports/luasocket/portfile.cmake
new file mode 100644
index 000000000..831cd1b5e
--- /dev/null
+++ b/ports/luasocket/portfile.cmake
@@ -0,0 +1,40 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO diegonehab/luasocket
+ REF 652959890943c34d7180cae372339b91e62f0d7b
+ SHA512 8666e3dec0a3a0429e59a66c79b167f88b05a2a0b2c7f5456754cb5c505bcf8c39c4d358880a2f78a488ad07bee4e6e5b9a6a63c2affcee788091dee15ed2f6a
+ HEAD_REF master)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+# Remove debug share
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/luasocket)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/luasocket/LICENSE ${CURRENT_PACKAGES_DIR}/share/luasocket/copyright)
+
+# Handle socket dll name
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/socket/socket.core.dll ${CURRENT_PACKAGES_DIR}/bin/socket/core.dll)
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/socket/socket.core.pdb ${CURRENT_PACKAGES_DIR}/bin/socket/core.pdb)
+file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin/socket/socket.core.dll ${CURRENT_PACKAGES_DIR}/debug/bin/socket/core.dll)
+file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin/socket/socket.core.pdb ${CURRENT_PACKAGES_DIR}/debug/bin/socket/core.pdb)
+
+# Handle mime dll name
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/mime/mime.core.dll ${CURRENT_PACKAGES_DIR}/bin/mime/core.dll)
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/mime/mime.core.pdb ${CURRENT_PACKAGES_DIR}/bin/mime/core.pdb)
+file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin/mime/mime.core.dll ${CURRENT_PACKAGES_DIR}/debug/bin/mime/core.dll)
+file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin/mime/mime.core.pdb ${CURRENT_PACKAGES_DIR}/debug/bin/mime/core.pdb)
+
+# Allow empty include directory
+set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
diff --git a/ports/lz4/CMakeLists.txt b/ports/lz4/CMakeLists.txt
index a5366f5ab..b082ab374 100644
--- a/ports/lz4/CMakeLists.txt
+++ b/ports/lz4/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.0)
-project(lz4)
+project(lz4 C)
if(BUILD_SHARED_LIBS)
add_definitions(-DLZ4_DLL_EXPORT)
diff --git a/ports/lz4/CONTROL b/ports/lz4/CONTROL
index b48ba5424..bf2dd6c08 100644
--- a/ports/lz4/CONTROL
+++ b/ports/lz4/CONTROL
@@ -1,3 +1,3 @@
Source: lz4
-Version: 1.7.5
+Version: 1.8.2
Description: Lossless compression algorithm, providing compression speed at 400 MB/s per core.
diff --git a/ports/lz4/auto-define-import-macro.patch b/ports/lz4/auto-define-import-macro.patch
deleted file mode 100644
index 314c228db..000000000
--- a/ports/lz4/auto-define-import-macro.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/lz4.h b/lz4.h
-index 7420ad8..c1c3e56 100644
---- a/lz4.h
-+++ b/lz4.h
-@@ -73,6 +73,9 @@ extern "C" {
- * LZ4_DLL_EXPORT :
- * Enable exporting of functions when building a Windows DLL
- */
-+
-+#define LZ4_DLL_IMPORT 1
-+
- #if defined(LZ4_DLL_EXPORT) && (LZ4_DLL_EXPORT==1)
- # define LZ4LIB_API __declspec(dllexport)
- #elif defined(LZ4_DLL_IMPORT) && (LZ4_DLL_IMPORT==1)
-diff --git a/lz4frame.h b/lz4frame.h
-index 3104d2e..4442461 100644
---- a/lz4frame.h
-+++ b/lz4frame.h
-@@ -55,6 +55,9 @@ extern "C" {
- * LZ4_DLL_EXPORT :
- * Enable exporting of functions when building a Windows DLL
- */
-+
-+#define LZ4_DLL_IMPORT 1
-+
- #if defined(LZ4_DLL_EXPORT) && (LZ4_DLL_EXPORT==1)
- # define LZ4FLIB_API __declspec(dllexport)
- #elif defined(LZ4_DLL_IMPORT) && (LZ4_DLL_IMPORT==1)
diff --git a/ports/lz4/portfile.cmake b/ports/lz4/portfile.cmake
index dc6f80ed9..bbeee708f 100644
--- a/ports/lz4/portfile.cmake
+++ b/ports/lz4/portfile.cmake
@@ -1,12 +1,10 @@
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/lz4-1.7.5)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/lz4/lz4/archive/v1.7.5.zip"
- FILENAME "lz4-1.7.5.zip"
- SHA512 09968b67a5cd8555f6e1d95b99971a82d228c6d8d9f9dd9e9a33c9633bed9bcf1e370c2ff44e58c6ca72d103c149585b3e83061c690f3e857eb5f53d586f86a4)
-
-vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO lz4/lz4
+ REF v1.8.2
+ SHA512 5fadc79334d37739c947d6dfc24f48ce82989fc5ee4f2bb8201ccf7ee3230b9e6e7c8488beb64050a035369f4247161d258bdb539578bec224ccebfef1b8a763
+ HEAD_REF dev)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
@@ -14,17 +12,21 @@ vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS_DEBUG
- -DLZ4_SKIP_INCLUDES=ON)
+ -DLZ4_SKIP_INCLUDES=ON
+ -DCMAKE_DEBUG_POSTFIX=d)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- vcpkg_apply_patches(
- SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/auto-define-import-macro.patch)
-endif()
+foreach(FILE lz4.h lz4frame.h)
+ file(READ ${CURRENT_PACKAGES_DIR}/include/${FILE} LZ4_HEADER)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ string(REPLACE "defined(LZ4_DLL_IMPORT) && (LZ4_DLL_IMPORT==1)" "1" LZ4_HEADER "${LZ4_HEADER}")
+ else()
+ string(REPLACE "defined(LZ4_DLL_IMPORT) && (LZ4_DLL_IMPORT==1)" "0" LZ4_HEADER "${LZ4_HEADER}")
+ endif()
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/${FILE} "${LZ4_HEADER}")
+endforeach()
file(COPY ${SOURCE_PATH}/lib/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/lz4)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/lz4/LICENSE ${CURRENT_PACKAGES_DIR}/share/lz4/copyright)
diff --git a/ports/lzfse/CONTROL b/ports/lzfse/CONTROL
new file mode 100644
index 000000000..34276814f
--- /dev/null
+++ b/ports/lzfse/CONTROL
@@ -0,0 +1,3 @@
+Source: lzfse
+Version: 1.0-1
+Description: Lempel-Ziv style data compressor using Finite State Entropy coding.
diff --git a/ports/lzfse/disable-cli-option.patch b/ports/lzfse/disable-cli-option.patch
new file mode 100644
index 000000000..260b7a2be
--- /dev/null
+++ b/ports/lzfse/disable-cli-option.patch
@@ -0,0 +1,51 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 336a68d..96a2a74 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -67,18 +67,20 @@ add_library(lzfse
+ src/lzvn_encode_base.c)
+ lzfse_add_compiler_flags(lzfse -Wall -Wno-unknown-pragmas -Wno-unused-variable)
+
+-add_executable(lzfse_cli
+- src/lzfse_main.c)
+-target_link_libraries(lzfse_cli lzfse)
+-set_target_properties(lzfse_cli PROPERTIES OUTPUT_NAME lzfse)
+-lzfse_add_compiler_flags(lzfse_cli -Wall -Wno-unknown-pragmas -Wno-unused-variable)
+-
+-if(CMAKE_VERSION VERSION_LESS 3.1 OR CMAKE_C_COMPLIER_ID STREQUAL "Intel")
+- lzfse_add_compiler_flags(lzfse -std=c99)
+- lzfse_add_compiler_flags(lzfse_cli -std=c99)
+-else()
+- set_property(TARGET lzfse PROPERTY C_STANDARD 99)
+- set_property(TARGET lzfse_cli PROPERTY C_STANDARD 99)
++if(NOT LZFSE_DISABLE_CLI)
++ add_executable(lzfse_cli
++ src/lzfse_main.c)
++ target_link_libraries(lzfse_cli lzfse)
++ set_target_properties(lzfse_cli PROPERTIES OUTPUT_NAME lzfse)
++ lzfse_add_compiler_flags(lzfse_cli -Wall -Wno-unknown-pragmas -Wno-unused-variable)
++
++ if(CMAKE_VERSION VERSION_LESS 3.1 OR CMAKE_C_COMPLIER_ID STREQUAL "Intel")
++ lzfse_add_compiler_flags(lzfse -std=c99)
++ lzfse_add_compiler_flags(lzfse_cli -std=c99)
++ else()
++ set_property(TARGET lzfse PROPERTY C_STANDARD 99)
++ set_property(TARGET lzfse_cli PROPERTY C_STANDARD 99)
++ endif()
+ endif()
+
+ set_target_properties(lzfse PROPERTIES
+@@ -95,7 +97,12 @@ endif()
+ if(NOT LZFSE_BUNDLE_MODE)
+ include(GNUInstallDirs)
+
+- install(TARGETS lzfse lzfse_cli
++ if(NOT LZFSE_DISABLE_CLI)
++ install(TARGETS lzfse_cli
++ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
++ endif()
++
++ install(TARGETS lzfse
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
diff --git a/ports/lzfse/portfile.cmake b/ports/lzfse/portfile.cmake
new file mode 100644
index 000000000..80d9e2f10
--- /dev/null
+++ b/ports/lzfse/portfile.cmake
@@ -0,0 +1,37 @@
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ message(FATAL_ERROR "ARM build not supported")
+endif()
+
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO lzfse/lzfse
+ REF lzfse-1.0
+ SHA512 9d7ca44e6d3d2bdf4b82b0eb66c14922369b8b6fe2cf891187a77c6708b8d26c2c1b2ccddec6059e85dbbbb37c497419549f02812b5f34d06238ac246a8cf912
+ HEAD_REF master)
+
+vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/disable-cli-option.patch)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DLZFSE_DISABLE_TESTS=ON
+ -DLZFSE_DISABLE_CLI=ON)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(READ ${CURRENT_PACKAGES_DIR}/include/lzfse.h LZFSE_H)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ string(REPLACE "defined(LZFSE_DLL)" "1" LZFSE_H "${LZFSE_H}")
+else()
+ string(REPLACE "defined(LZFSE_DLL)" "0" LZFSE_H "${LZFSE_H}")
+endif()
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/lzfse.h "${LZFSE_H}")
+
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/lzfse)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/lzfse/LICENSE ${CURRENT_PACKAGES_DIR}/share/lzfse/copyright)
diff --git a/ports/lzo/CONTROL b/ports/lzo/CONTROL
index a3b69bd7e..d124020b8 100644
--- a/ports/lzo/CONTROL
+++ b/ports/lzo/CONTROL
@@ -1,3 +1,3 @@
Source: lzo
-Version: 2.10
+Version: 2.10-2
Description: Lossless data compression library
diff --git a/ports/lzo/portfile.cmake b/ports/lzo/portfile.cmake
index e9575f5ce..b8faeb358 100644
--- a/ports/lzo/portfile.cmake
+++ b/ports/lzo/portfile.cmake
@@ -6,11 +6,6 @@
# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
#
-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/lzo-2.10)
vcpkg_download_distfile(ARCHIVE
@@ -20,20 +15,38 @@ vcpkg_download_distfile(ARCHIVE
)
vcpkg_extract_source_archive(${ARCHIVE})
+set(LZO_STATIC OFF)
+set(LZO_SHARED OFF)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(LZO_STATIC ON)
+else()
+ set(LZO_SHARED ON)
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
- # OPTIONS_RELEASE -DOPTIMIZE=1
- # OPTIONS_DEBUG -DDEBUGGABLE=1
+ PREFER_NINJA
+ OPTIONS
+ -DENABLE_STATIC=${LZO_STATIC}
+ -DENABLE_SHARED=${LZO_SHARED}
)
vcpkg_install_cmake()
-
vcpkg_copy_pdbs()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/libexec)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/libexec)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(READ ${CURRENT_PACKAGES_DIR}/include/lzo/lzoconf.h LZO_CONFIG)
+ string(REPLACE "# define __LZO_EXPORT1 /*empty*/"
+ "# define __LZO_EXPORT1 __declspec(dllimport)" LZO_CONFIG "${LZO_CONFIG}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/lzo/lzoconf.h "${LZO_CONFIG}")
+endif()
+
# Handle copyright
-file(COPY ${CURRENT_BUILDTREES_DIR}/src/lzo-2.10/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/lzo)
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/lzo)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/lzo/COPYING ${CURRENT_PACKAGES_DIR}/share/lzo/copyright)
diff --git a/ports/magnum-extras/CONTROL b/ports/magnum-extras/CONTROL
new file mode 100644
index 000000000..752f7333b
--- /dev/null
+++ b/ports/magnum-extras/CONTROL
@@ -0,0 +1,9 @@
+Source: magnum-extras
+Version: 2018.04-1
+Build-Depends: magnum
+Description: Extras for magnum, C++11/C++14 graphics middleware for games and data visualization http://magnum.graphics/
+Default-Features:
+
+Feature: ui
+Description: Ui library
+Build-Depends: corrade[interconnect], magnum[text]
diff --git a/ports/magnum-extras/portfile.cmake b/ports/magnum-extras/portfile.cmake
new file mode 100644
index 000000000..61aa619cd
--- /dev/null
+++ b/ports/magnum-extras/portfile.cmake
@@ -0,0 +1,72 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mosra/magnum-extras
+ REF v2018.04
+ SHA512 2c933d0cad6f0b6580a84dba22bfdadf120a302246cab404a99749e0ba7bb0d799ee606ca43cc1c39f85ae37a00dcc7374b9fd05eb2bb07945c9371a9c8a8492
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC)
+
+# Handle features
+set(_COMPONENT_FLAGS "")
+foreach(_feature IN LISTS ALL_FEATURES)
+ # Uppercase the feature name and replace "-" with "_"
+ string(TOUPPER "${_feature}" _FEATURE)
+ string(REPLACE "-" "_" _FEATURE "${_FEATURE}")
+
+ # Turn "-DWITH_*=" ON or OFF depending on whether the feature
+ # is in the list.
+ if(_feature IN_LIST FEATURES)
+ list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=ON")
+ else()
+ list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=OFF")
+ endif()
+endforeach()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ ${_COMPONENT_FLAGS}
+ -DBUILD_STATIC=${BUILD_STATIC}
+ -DMAGNUM_PLUGINS_DEBUG_DIR=${CURRENT_INSTALLED_DIR}/debug/bin/magnum-d
+ -DMAGNUM_PLUGINS_RELEASE_DIR=${CURRENT_INSTALLED_DIR}/bin/magnum
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake/MagnumExtras TARGET_PATH share/MagnumExtras)
+
+# Messages to the user
+if("ui" IN_LIST FEATURES)
+ message(WARNING "It is recommended to install one of magnum-plugins[freetypefont,harfbuzzfont,stbtruetypefont] to have the UI library working out of the box")
+endif()
+
+# Debug includes and share are the same as release
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/include
+ ${CURRENT_PACKAGES_DIR}/debug/share
+)
+
+# Clean up empty directories
+if("${FEATURES}" STREQUAL "core")
+ file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/bin
+ ${CURRENT_PACKAGES_DIR}/lib
+ ${CURRENT_PACKAGES_DIR}/debug
+ )
+ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/magnum-extras)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/magnum-extras/COPYING ${CURRENT_PACKAGES_DIR}/share/magnum-extras/copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/magnum-integration/CONTROL b/ports/magnum-integration/CONTROL
new file mode 100644
index 000000000..a7fbebb5b
--- /dev/null
+++ b/ports/magnum-integration/CONTROL
@@ -0,0 +1,16 @@
+Source: magnum-integration
+Version: 2018.04-1
+Build-Depends: magnum
+Description: Integrations for magnum, C++11/C++14 graphics middleware for games and data visualization http://magnum.graphics/
+Default-Features:
+
+Feature: bullet
+Description: BulletIntegration library
+Build-Depends: bullet3
+#Feature: ovr
+#Description: OvrIntegration library
+#Build-Depends: ovrsdk
+#Feature: dart
+#Description: DartIntegration library
+#Build-Depends: dart
+
diff --git a/ports/magnum-integration/portfile.cmake b/ports/magnum-integration/portfile.cmake
new file mode 100644
index 000000000..4790d07d5
--- /dev/null
+++ b/ports/magnum-integration/portfile.cmake
@@ -0,0 +1,65 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mosra/magnum-integration
+ REF v2018.04
+ SHA512 ef22309dea452de8cf63d62f4b99f3e7b5b12b3580455e8fc1d53eabd921e24ec3824ce238a2b74cf0b6fd137e238b67c6b4653e750072b1105c6571e352d9fe
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC)
+
+# Handle features
+set(_COMPONENT_FLAGS "")
+foreach(_feature IN LISTS ALL_FEATURES)
+ # Uppercase the feature name and replace "-" with "_"
+ string(TOUPPER "${_feature}" _FEATURE)
+ string(REPLACE "-" "_" _FEATURE "${_FEATURE}")
+
+ # Turn "-DWITH_*=" ON or OFF depending on whether the feature
+ # is in the list.
+ if(_feature IN_LIST FEATURES)
+ list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=ON")
+ else()
+ list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=OFF")
+ endif()
+endforeach()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ ${_COMPONENT_FLAGS}
+ -DBUILD_STATIC=${BUILD_STATIC}
+ -DMAGNUM_PLUGINS_DEBUG_DIR=${CURRENT_INSTALLED_DIR}/debug/bin/magnum-d
+ -DMAGNUM_PLUGINS_RELEASE_DIR=${CURRENT_INSTALLED_DIR}/bin/magnum
+)
+
+vcpkg_install_cmake()
+
+# Debug includes and share are the same as release
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/include
+ ${CURRENT_PACKAGES_DIR}/debug/share
+)
+
+# Clean up empty directories
+if("${FEATURES}" STREQUAL "core")
+ file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/bin
+ ${CURRENT_PACKAGES_DIR}/lib
+ ${CURRENT_PACKAGES_DIR}/debug
+ )
+ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/magnum-integration)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/magnum-integration/COPYING ${CURRENT_PACKAGES_DIR}/share/magnum-integration/copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/magnum-plugins/001-tools-path.patch b/ports/magnum-plugins/001-tools-path.patch
new file mode 100644
index 000000000..18a351c2e
--- /dev/null
+++ b/ports/magnum-plugins/001-tools-path.patch
@@ -0,0 +1,26 @@
+diff --git a/modules/FindCorrade.cmake b/modules/FindCorrade.cmake
+index e63bc03..052006f 100644
+--- a/modules/FindCorrade.cmake
++++ b/modules/FindCorrade.cmake
+@@ -397,7 +397,7 @@ foreach(_component ${Corrade_FIND_COMPONENTS})
+ if(_component MATCHES ${_CORRADE_EXECUTABLE_COMPONENTS})
+ add_executable(Corrade::${_component} IMPORTED)
+
+- find_program(CORRADE_${_COMPONENT}_EXECUTABLE corrade-${_component})
++ find_program(CORRADE_${_COMPONENT}_EXECUTABLE corrade-${_component} PATH_SUFFIXES corrade)
+ mark_as_advanced(CORRADE_${_COMPONENT}_EXECUTABLE)
+
+ if(CORRADE_${_COMPONENT}_EXECUTABLE)
+diff --git a/modules/FindMagnum.cmake b/modules/FindMagnum.cmake
+index 8df555d..12f7aa4 100644
+--- a/modules/FindMagnum.cmake
++++ b/modules/FindMagnum.cmake
+@@ -493,7 +493,7 @@ foreach(_component ${Magnum_FIND_COMPONENTS})
+ if(_component MATCHES ${_MAGNUM_EXECUTABLE_COMPONENTS})
+ add_executable(Magnum::${_component} IMPORTED)
+
+- find_program(MAGNUM_${_COMPONENT}_EXECUTABLE magnum-${_component})
++ find_program(MAGNUM_${_COMPONENT}_EXECUTABLE magnum-${_component} PATH_SUFFIXES magnum)
+ mark_as_advanced(MAGNUM_${_COMPONENT}_EXECUTABLE)
+
+ if(MAGNUM_${_COMPONENT}_EXECUTABLE)
diff --git a/ports/magnum-plugins/CONTROL b/ports/magnum-plugins/CONTROL
new file mode 100644
index 000000000..9722245f6
--- /dev/null
+++ b/ports/magnum-plugins/CONTROL
@@ -0,0 +1,80 @@
+Source: magnum-plugins
+Version: 2018.04-1
+Build-Depends: magnum
+Description: Plugins for magnum, C++11/C++14 graphics middleware for games and data visualization http://magnum.graphics/
+Default-Features: ddsimporter, miniexrimageconverter, opengeximporter, stanfordimporter, stbimageconverter, stbimageimporter
+
+Feature: assimpimporter
+Description: AssimpImporter plugin
+Build-Depends: assimp, magnum[anyimageimporter], magnum[trade]
+
+Feature: openddl
+Description: OpenDdl library
+
+Feature: ddsimporter
+Description: DdsImporter plugin
+Build-Depends: magnum[trade]
+
+Feature: devilimageimporter
+Description: DevIlImageImporter plugin
+Build-Depends: devil, magnum[trade]
+
+Feature: drflacaudioimporter
+Description: DrFlacAudioImporter plugin
+Build-Depends: magnum[audio]
+
+Feature: drwavaudioimporter
+Description: DrWavAudioImporter plugin
+Build-Depends: magnum[audio]
+
+Feature: freetypefont
+Description: FreeTypeFont plugin
+Build-Depends: freetype, magnum[text]
+
+Feature: harfbuzzfont
+Description: HarfBuzzFont plugin
+Build-Depends: harfbuzz, magnum-plugins[freetypefont]
+
+Feature: jpegimporter
+Description: JpegImporter plugin
+Build-Depends: libjpeg-turbo, magnum[trade]
+
+Feature: miniexrimageconverter
+Description: MiniExrImageConverter plugin
+Build-Depends: magnum[trade]
+
+Feature: opengeximporter
+Description: OpenGexImporter plugin
+Build-Depends: magnum[anyimageimporter], magnum[trade], magnum-plugins[openddl]
+
+Feature: pngimageconverter
+Description: PngImageConverter plugin
+Build-Depends: libpng, magnum[trade]
+
+Feature: pngimporter
+Description: PngImporter plugin
+Build-Depends: libpng, magnum[trade]
+
+Feature: stanfordimporter
+Description: StanfordImporter plugin
+Build-Depends: magnum[trade]
+
+Feature: stbimageconverter
+Description: StbImageConverter plugin
+Build-Depends: magnum[trade]
+
+Feature: stbimageimporter
+Description: StbImageImporter plugin
+Build-Depends: magnum[trade]
+
+Feature: stbtruetypefont
+Description: StbTrueTypeFont plugin
+Build-Depends: magnum[text]
+
+Feature: stbvorbisaudioimporter
+Description: StbVorbisAudioImporter plugin
+Build-Depends: magnum[audio]
+
+Feature: tinygltfimporter
+Description: TinyGltfImporter plugin
+Build-Depends: magnum[anyimageimporter], magnum-plugins[stbimageimporter], magnum[trade]
diff --git a/ports/magnum-plugins/portfile.cmake b/ports/magnum-plugins/portfile.cmake
new file mode 100644
index 000000000..54ea7659c
--- /dev/null
+++ b/ports/magnum-plugins/portfile.cmake
@@ -0,0 +1,86 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mosra/magnum-plugins
+ REF v2018.04
+ SHA512 0b8ae1488e210d111826532299d1e29c5eba32c75f7c210caff088a9a57459b6354474c7a53fccd0c78553d67d79bf041d471b5822c59cb2c9612126cf3e49ef
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/001-tools-path.patch
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(BUILD_PLUGINS_STATIC 1)
+else()
+ set(BUILD_PLUGINS_STATIC 0)
+endif()
+
+# Handle features
+set(_COMPONENT_FLAGS "")
+foreach(_feature IN LISTS ALL_FEATURES)
+ # Uppercase the feature name and replace "-" with "_"
+ string(TOUPPER "${_feature}" _FEATURE)
+ string(REPLACE "-" "_" _FEATURE "${_FEATURE}")
+
+ # Turn "-DWITH_*=" ON or OFF depending on whether the feature
+ # is in the list.
+ if(_feature IN_LIST FEATURES)
+ list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=ON")
+ else()
+ list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=OFF")
+ endif()
+endforeach()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ ${_COMPONENT_FLAGS}
+ -DBUILD_STATIC=${BUILD_PLUGINS_STATIC}
+ -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
+)
+
+vcpkg_install_cmake()
+
+# Debug includes and share are the same as release
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/include
+ ${CURRENT_PACKAGES_DIR}/debug/share)
+
+# Clean up empty directories, if not building anything.
+# FEATURES may only contain "core", but that does not build anything.
+if(NOT FEATURES OR FEATURES STREQUAL "core")
+ file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/bin
+ ${CURRENT_PACKAGES_DIR}/lib
+ ${CURRENT_PACKAGES_DIR}/debug)
+ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+ # move plugin libs to conventional place
+ file(GLOB_RECURSE LIB_TO_MOVE ${CURRENT_PACKAGES_DIR}/lib/magnum/*)
+ file(COPY ${LIB_TO_MOVE} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/magnum)
+ file(GLOB_RECURSE LIB_TO_MOVE_DBG ${CURRENT_PACKAGES_DIR}/debug/lib/magnum/*)
+ file(COPY ${LIB_TO_MOVE_DBG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/magnum)
+else()
+ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/magnum)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/magnum-d)
+endif()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/magnum-plugins)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/magnum-plugins/COPYING ${CURRENT_PACKAGES_DIR}/share/magnum-plugins/copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/magnum/001-sdl-includes.patch b/ports/magnum/001-sdl-includes.patch
new file mode 100644
index 000000000..afa1301d9
--- /dev/null
+++ b/ports/magnum/001-sdl-includes.patch
@@ -0,0 +1,20 @@
+diff --git a/src/Magnum/Platform/Sdl2Application.h b/src/Magnum/Platform/Sdl2Application.h
+index 99c3174..311b2c1 100644
+--- a/src/Magnum/Platform/Sdl2Application.h
++++ b/src/Magnum/Platform/Sdl2Application.h
+@@ -42,11 +42,11 @@
+ #ifdef CORRADE_TARGET_WINDOWS /* Windows version of SDL2 redefines main(), we don't want that */
+ #define SDL_MAIN_HANDLED
+ #endif
+-#include <SDL.h>
+-#include <SDL_scancode.h>
++#include <SDL2/SDL.h>
++#include <SDL2/SDL_scancode.h>
+
+ #ifdef CORRADE_TARGET_WINDOWS_RT
+-#include <SDL_main.h> /* For SDL_WinRTRunApp */
++#include <SDL2/SDL_main.h> /* For SDL_WinRTRunApp */
+ #include <wrl.h> /* For the WinMain entrypoint */
+ #endif
+
+
diff --git a/ports/magnum/002-tools-path.patch b/ports/magnum/002-tools-path.patch
new file mode 100644
index 000000000..18a351c2e
--- /dev/null
+++ b/ports/magnum/002-tools-path.patch
@@ -0,0 +1,26 @@
+diff --git a/modules/FindCorrade.cmake b/modules/FindCorrade.cmake
+index e63bc03..052006f 100644
+--- a/modules/FindCorrade.cmake
++++ b/modules/FindCorrade.cmake
+@@ -397,7 +397,7 @@ foreach(_component ${Corrade_FIND_COMPONENTS})
+ if(_component MATCHES ${_CORRADE_EXECUTABLE_COMPONENTS})
+ add_executable(Corrade::${_component} IMPORTED)
+
+- find_program(CORRADE_${_COMPONENT}_EXECUTABLE corrade-${_component})
++ find_program(CORRADE_${_COMPONENT}_EXECUTABLE corrade-${_component} PATH_SUFFIXES corrade)
+ mark_as_advanced(CORRADE_${_COMPONENT}_EXECUTABLE)
+
+ if(CORRADE_${_COMPONENT}_EXECUTABLE)
+diff --git a/modules/FindMagnum.cmake b/modules/FindMagnum.cmake
+index 8df555d..12f7aa4 100644
+--- a/modules/FindMagnum.cmake
++++ b/modules/FindMagnum.cmake
+@@ -493,7 +493,7 @@ foreach(_component ${Magnum_FIND_COMPONENTS})
+ if(_component MATCHES ${_MAGNUM_EXECUTABLE_COMPONENTS})
+ add_executable(Magnum::${_component} IMPORTED)
+
+- find_program(MAGNUM_${_COMPONENT}_EXECUTABLE magnum-${_component})
++ find_program(MAGNUM_${_COMPONENT}_EXECUTABLE magnum-${_component} PATH_SUFFIXES magnum)
+ mark_as_advanced(MAGNUM_${_COMPONENT}_EXECUTABLE)
+
+ if(MAGNUM_${_COMPONENT}_EXECUTABLE)
diff --git a/ports/magnum/003-glfw-find-module.patch b/ports/magnum/003-glfw-find-module.patch
new file mode 100644
index 000000000..0517559e3
--- /dev/null
+++ b/ports/magnum/003-glfw-find-module.patch
@@ -0,0 +1,13 @@
+diff --git a/modules/FindGLFW.cmake b/modules/FindGLFW.cmake
+index e831fdb2..b2dba97f 100644
+--- a/modules/FindGLFW.cmake
++++ b/modules/FindGLFW.cmake
+@@ -39,7 +39,7 @@
+ # DEALINGS IN THE SOFTWARE.
+ #
+
+-find_library(GLFW_LIBRARY NAMES glfw glfw3)
++find_library(GLFW_LIBRARY NAMES glfw glfw3 glfw3dll)
+
+ # Include dir
+ find_path(GLFW_INCLUDE_DIR
diff --git a/ports/magnum/CONTROL b/ports/magnum/CONTROL
new file mode 100644
index 000000000..c34339938
--- /dev/null
+++ b/ports/magnum/CONTROL
@@ -0,0 +1,127 @@
+Source: magnum
+Version: 2018.04-1
+Build-Depends: corrade[pluginmanager], corrade[utility]
+Description: C++11/C++14 graphics middleware for games and data visualization http://magnum.graphics/
+Default-Features: anyimageimporter, anyaudioimporter, anyimageconverter, anysceneimporter, debugtools, gl, meshtools, primitives, scenegraph, shaders, shapes, text, texturetools, trade, sdl2application, windowlesswglapplication
+
+Feature: al-info
+Description: magnum-al-info utility
+Build-Depends: magnum[audio]
+
+Feature: anyimageimporter
+Description: AnyImageImporter plugin
+Build-Depends: magnum[trade]
+
+Feature: anyaudioimporter
+Description: AnyAudioImporter plugin
+Build-Depends: magnum[audio]
+
+Feature: anyimageconverter
+Description: AnyImageConverter plugin
+Build-Depends: magnum[trade]
+
+Feature: anysceneimporter
+Description: AnySceneImporter plugin
+Build-Depends: magnum[trade]
+
+Feature: audio
+Description: Audio library
+Build-Depends: openal-soft
+
+Feature: debugtools
+Description: DebugTools library
+
+Feature: distancefieldconverter
+Description: magnum-distancefieldconverter utility
+Build-Depends: magnum[texturetools], magnum[gl]
+
+Feature: fontconverter
+Description: magnum-fontconverter utility
+Build-Depends: magnum[text], magnum[gl]
+
+Feature: gl
+Description: GL library
+
+Feature: gl-info
+Description: gl-info utility
+Build-Depends: magnum[gl]
+
+Feature: glfwapplication
+Description: GlfwApplication library
+Build-Depends: glfw3
+
+Feature: glutapplication
+Description: GlutApplication library
+Build-Depends: freeglut, magnum[gl]
+
+Feature: imageconverter
+Description: magnum-imageconverter utility
+Build-Depends: magnum[trade]
+
+Feature: magnumfont
+Description: MagnumFont plugin
+Build-Depends: magnum[text]
+
+Feature: magnumfontconverter
+Description: MagnumFontConverter plugin
+Build-Depends: magnum[text], magnum[tgaimageconverter]
+
+Feature: meshtools
+Description: MeshTools library
+Build-Depends: magnum[trade]
+
+Feature: objimporter
+Description: ObjImporter plugin
+Build-Depends: magnum[trade]
+
+Feature: tgaimageconverter
+Description: TgaImageConverter plugin
+Build-Depends: magnum[trade]
+
+Feature: opengltester
+Description: OpenGLTester library
+Build-Depends: corrade[testsuite], magnum[gl]
+
+Feature: primitives
+Description: Primitives library
+Build-Depends: magnum[trade]
+
+Feature: sdl2application
+Description: Sdl2Application library
+Build-Depends: sdl2
+
+Feature: shapes
+Description: Shapes library
+
+Feature: scenegraph
+Description: SceneGraph library
+
+Feature: shaders
+Description: Shaders library
+Build-Depends: magnum[gl]
+
+Feature: text
+Description: Text library
+Build-Depends: magnum[texturetools], magnum[gl]
+
+Feature: texturetools
+Description: TextureTools library
+
+Feature: tgaimporter
+Description: TgaImporter plugin
+Build-Depends: magnum[trade]
+
+Feature: trade
+Description: Trade library
+
+Feature: wavaudioimporter
+Description: WavAudioImporter plugin
+Build-Depends: magnum[audio]
+
+Feature: windowlesswglapplication
+Description: WindowlessWglApplication library
+Build-Depends: magnum[gl]
+
+Feature: wglcontext
+Description: WglContext library
+Build-Depends: magnum[gl]
diff --git a/ports/magnum/magnumdeploy.ps1 b/ports/magnum/magnumdeploy.ps1
new file mode 100644
index 000000000..203f2bac3
--- /dev/null
+++ b/ports/magnum/magnumdeploy.ps1
@@ -0,0 +1,38 @@
+# Magnum's plugin deployment strategy is that each Magnum module has a hardcoded
+# set of plugin directories. Each of these directories is deployed in
+# full if that Module is referenced.
+#
+# Note: this function signature and behavior is depended upon by applocal.ps1
+function deployPluginsIfMagnum([string]$targetBinaryDir, [string]$MagnumPluginsDir, [string]$targetBinaryName) {
+ Write-Verbose "Deploying magnum plugins"
+
+ $baseDir = Split-Path $MagnumPluginsDir -parent
+ $pluginsBase = Split-Path $MagnumPluginsDir -Leaf
+ $binDir = "$baseDir\bin"
+
+ function deployPlugins([string]$pluginSubdirName) {
+ if (Test-Path "$MagnumPluginsDir\$pluginSubdirName") {
+ Write-Verbose " Deploying plugins directory '$pluginSubdirName'"
+ New-Item "$targetBinaryDir\$pluginsBase\$pluginSubdirName" -ItemType Directory -ErrorAction SilentlyContinue | Out-Null
+ Get-ChildItem -Path "$MagnumPluginsDir\$pluginSubdirName\*" -Include "*.dll", "*.conf", "*.pdb" | % {
+ deployBinary "$targetBinaryDir\$pluginsBase\$pluginSubdirName" "$MagnumPluginsDir\$pluginSubdirName" $_.Name
+ resolve $_
+ }
+ } else {
+ Write-Verbose " Skipping plugins directory '$pluginSubdirName': doesn't exist"
+ }
+ }
+
+ # We detect Magnum modules in use via the DLLs themselves.
+ # Rather than checking for Magnum*.dll, we check for Magnum.dll and
+ # Magnum-d.dll to avoid falsly matching MagnumTextureTools.dll for example.
+ if ($targetBinaryName -like "MagnumAudio.dll" -or $targetBinaryName -like "MagnumAudio-d.dll") {
+ deployPlugins "audioimporters"
+ } elseif ($targetBinaryName -like "MagnumText.dll" -or $targetBinaryName -like "MagnumText-d.dll") {
+ deployPlugins "fonts"
+ deployPlugins "fontconverters"
+ } elseif ($targetBinaryName -like "Magnum.dll" -or $targetBinaryName -like "Magnum-d.dll") {
+ deployPlugins "importers"
+ deployPlugins "imageconverters"
+ }
+}
diff --git a/ports/magnum/portfile.cmake b/ports/magnum/portfile.cmake
new file mode 100644
index 000000000..e6b501e5a
--- /dev/null
+++ b/ports/magnum/portfile.cmake
@@ -0,0 +1,101 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mosra/magnum
+ REF v2018.04
+ SHA512 6ad50e782c8cb10157cf969a571f8c0c0c91161de60ac25cf86eda09106f4de73168618a1a5fe0931c3fd293c718911e14d610bd4f86fe3e073620bd7619a9eb
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/001-sdl-includes.patch
+ ${CMAKE_CURRENT_LIST_DIR}/002-tools-path.patch
+ ${CMAKE_CURRENT_LIST_DIR}/003-glfw-find-module.patch
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(BUILD_STATIC 1)
+ set(BUILD_PLUGINS_STATIC 1)
+else()
+ set(BUILD_STATIC 0)
+ set(BUILD_PLUGINS_STATIC 0)
+endif()
+
+# Handle features
+set(_COMPONENT_FLAGS "")
+foreach(_feature IN LISTS ALL_FEATURES)
+ # Uppercase the feature name and replace "-" with "_"
+ string(TOUPPER "${_feature}" _FEATURE)
+ string(REPLACE "-" "_" _FEATURE "${_FEATURE}")
+
+ # Turn "-DWITH_*=" ON or OFF depending on whether the feature
+ # is in the list.
+ if(_feature IN_LIST FEATURES)
+ list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=ON")
+ else()
+ list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=OFF")
+ endif()
+endforeach()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ ${_COMPONENT_FLAGS}
+ -DBUILD_STATIC=${BUILD_STATIC}
+ -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
+)
+
+vcpkg_install_cmake()
+
+# Drop a copy of tools
+if(distancefieldconverter IN_LIST FEATURES)
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/magnum-distancefieldconverter.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/magnum)
+endif()
+if(fontconverter IN_LIST FEATURES)
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/magnum-fontconverter.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/magnum)
+endif()
+if(al-info IN_LIST FEATURES)
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/magnum-al-info.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/magnum)
+endif()
+if(magnuminfo IN_LIST FEATURES)
+ file(COPY ${CURRENT_PACKAGES_DIR}/bin/magnum-info.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/magnum)
+endif()
+
+# Tools require dlls
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/magnum)
+
+file(GLOB_RECURSE TO_REMOVE
+ ${CURRENT_PACKAGES_DIR}/bin/*.exe
+ ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+if(TO_REMOVE)
+ file(REMOVE ${TO_REMOVE})
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+ # move plugin libs to conventional place
+ file(GLOB_RECURSE LIB_TO_MOVE ${CURRENT_PACKAGES_DIR}/lib/magnum/*)
+ file(COPY ${LIB_TO_MOVE} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/magnum)
+ file(GLOB_RECURSE LIB_TO_MOVE_DBG ${CURRENT_PACKAGES_DIR}/debug/lib/magnum/*)
+ file(COPY ${LIB_TO_MOVE_DBG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/magnum)
+else()
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/magnumdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/bin/magnum)
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/magnumdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin/magnum-d)
+endif()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/magnum)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/magnum/COPYING ${CURRENT_PACKAGES_DIR}/share/magnum/copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/matio/CMakeLists.txt b/ports/matio/CMakeLists.txt
new file mode 100644
index 000000000..6c21bbf53
--- /dev/null
+++ b/ports/matio/CMakeLists.txt
@@ -0,0 +1,54 @@
+cmake_minimum_required(VERSION 3.8.0)
+project(libmatio C)
+
+set(SRC
+ src/endian.c
+ src/inflate.c
+ src/io.c
+ src/mat.c
+ src/mat4.c
+ src/mat5.c
+ src/mat73.c
+ visual_studio/matio.def
+ src/matvar_cell.c
+ src/matvar_struct.c
+ src/read_data.c
+ src/snprintf.c
+)
+
+add_library(libmatio ${SRC})
+target_include_directories(libmatio PRIVATE src visual_studio)
+target_compile_definitions(libmatio PRIVATE
+ -DH5_NO_DEPRECATED_SYMBOLS
+ -DMAT73=1
+ -DREPLACE_GETOPT
+ -DMATIO_HAVE_INTTYPES_H=1
+ -DMATIO_HAVE_STDINT_H=1
+)
+
+find_package(ZLIB REQUIRED)
+target_link_libraries(libmatio PRIVATE ZLIB::ZLIB)
+target_compile_definitions(libmatio PRIVATE -DHAVE_ZLIB=1)
+
+find_package(hdf5 CONFIG REQUIRED)
+target_link_libraries(libmatio PRIVATE hdf5::hdf5-shared hdf5::hdf5_hl-shared)
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(libmatio PRIVATE -DHAVE_HDF5=1 -DH5_BUILT_AS_DYNAMIC_LIB)
+else()
+ target_compile_definitions(libmatio PRIVATE -DHAVE_HDF5=1 -DH5_BUILT_AS_STATIC_LIB)
+endif()
+
+install(
+ TARGETS libmatio
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES
+ src/matio.h
+ visual_studio/matio_pubconf.h
+ DESTINATION include
+ )
+endif()
diff --git a/ports/matio/CONTROL b/ports/matio/CONTROL
new file mode 100644
index 000000000..7c891c035
--- /dev/null
+++ b/ports/matio/CONTROL
@@ -0,0 +1,4 @@
+Source: matio
+Version: 1.5.12
+Description: MATLAB MAT File I/O Library
+Build-Depends: zlib, hdf5
diff --git a/ports/matio/portfile.cmake b/ports/matio/portfile.cmake
new file mode 100644
index 000000000..86d5b6a1f
--- /dev/null
+++ b/ports/matio/portfile.cmake
@@ -0,0 +1,22 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO tbeu/matio
+ REF v1.5.12
+ SHA512 3bf6d2bf6460531dd2a740813bca3f3da6347b9fadb39803257f11bcceeaa7cf6657921c9ca9c8db02bf2020d5adf2ecf544b2455aa0ca897c0644493b1902a4
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/matio RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/matroska/CMakeLists.txt b/ports/matroska/CMakeLists.txt
new file mode 100644
index 000000000..58308866c
--- /dev/null
+++ b/ports/matroska/CMakeLists.txt
@@ -0,0 +1,110 @@
+cmake_minimum_required(VERSION 3.1.2)
+
+project(matroska VERSION 1.4.8)
+
+option(DISABLE_PKGCONFIG "Disable PkgConfig module generation" OFF)
+option(DISABLE_CMAKE_CONFIG "Disable CMake package config module generation" OFF)
+
+find_package(ebml 1.3.5 REQUIRED)
+
+include(GNUInstallDirs)
+
+set(libmatroska_SOURCES
+ src/FileKax.cpp
+ src/KaxAttached.cpp
+ src/KaxAttachments.cpp
+ src/KaxBlock.cpp
+ src/KaxBlockData.cpp
+ src/KaxCluster.cpp
+ src/KaxContexts.cpp
+ src/KaxCues.cpp
+ src/KaxCuesData.cpp
+ src/KaxInfoData.cpp
+ src/KaxSeekHead.cpp
+ src/KaxSegment.cpp
+ src/KaxSemantic.cpp
+ src/KaxTracks.cpp
+ src/KaxVersion.cpp)
+
+set(libmatroska_PUBLIC_HEADERS
+ matroska/FileKax.h
+ matroska/KaxAttached.h
+ matroska/KaxAttachments.h
+ matroska/KaxBlockData.h
+ matroska/KaxBlock.h
+ matroska/KaxChapters.h
+ matroska/KaxClusterData.h
+ matroska/KaxCluster.h
+ matroska/KaxConfig.h
+ matroska/KaxContentEncoding.h
+ matroska/KaxContexts.h
+ matroska/KaxCuesData.h
+ matroska/KaxCues.h
+ matroska/KaxDefines.h
+ matroska/KaxInfoData.h
+ matroska/KaxInfo.h
+ matroska/KaxSeekHead.h
+ matroska/KaxSegment.h
+ matroska/KaxSemantic.h
+ matroska/KaxTag.h
+ matroska/KaxTags.h
+ matroska/KaxTrackAudio.h
+ matroska/KaxTrackEntryData.h
+ matroska/KaxTracks.h
+ matroska/KaxTrackVideo.h
+ matroska/KaxTypes.h
+ matroska/KaxVersion.h)
+
+set (libmatroska_C_PUBLIC_HEADERS
+ matroska/c/libmatroska.h
+ matroska/c/libmatroska_t.h)
+
+add_library(matroska ${libmatroska_SOURCES} ${limatroska_PUBLIC_HEADERS} ${libmatroska_C_PUBLIC_HEADERS})
+target_link_libraries(matroska PUBLIC ebml)
+set_target_properties(matroska PROPERTIES
+ VERSION 6.0.0
+ SOVERSION 6)
+target_include_directories(matroska PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+if(MSVC)
+ target_compile_definitions(matroska PRIVATE _CRT_SECURE_NO_WARNINGS)
+endif()
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(matroska PUBLIC MATROSKA_DLL)
+ set_target_properties(matroska PROPERTIES DEFINE_SYMBOL "MATROSKA_DLL_EXPORT")
+endif()
+
+install(TARGETS matroska
+ EXPORT MatroskaTargets
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+install(FILES ${libmatroska_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/matroska)
+install(FILES ${libmatroska_C_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/matroska/c)
+
+if(NOT DISABLE_PKGCONFIG)
+ set(prefix ${CMAKE_INSTALL_PREFIX})
+ set(exec_prefix "\$\{prefix\}")
+ set(libdir "\$\{prefix\}/${CMAKE_INSTALL_LIBDIR}")
+ set(includedir "\$\{prefix\}/${CMAKE_INSTALL_INCLUDEDIR}")
+ set(PACKAGE_VERSION ${PROJECT_VERSION})
+ configure_file(libmatroska.pc.in libmatroska.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libmatroska.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+endif()
+
+if(NOT DISABLE_CMAKE_CONFIG)
+ if(WIN32)
+ set(CMAKE_INSTALL_PACKAGEDIR cmake)
+ elseif(WIN32)
+ set(CMAKE_INSTALL_PACKAGEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
+ endif()
+ include(CMakePackageConfigHelpers)
+ write_basic_package_version_file(MatroskaConfigVersion.cmake COMPATIBILITY SameMajorVersion)
+ install(EXPORT MatroskaTargets DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
+ install(FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/MatroskaConfig.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/MatroskaConfigVersion.cmake
+ DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
+endif()
diff --git a/ports/matroska/CONTROL b/ports/matroska/CONTROL
new file mode 100644
index 000000000..cd688d697
--- /dev/null
+++ b/ports/matroska/CONTROL
@@ -0,0 +1,4 @@
+Source: matroska
+Version: 1.4.8
+Description: a C++ libary to parse Matroska files (.mkv and .mka)
+Build-Depends: ebml
diff --git a/ports/matroska/MatroskaConfig.cmake b/ports/matroska/MatroskaConfig.cmake
new file mode 100644
index 000000000..e9a88bd49
--- /dev/null
+++ b/ports/matroska/MatroskaConfig.cmake
@@ -0,0 +1 @@
+include(${CMAKE_CURRENT_LIST_DIR}/MatroskaTargets.cmake)
diff --git a/ports/matroska/portfile.cmake b/ports/matroska/portfile.cmake
new file mode 100644
index 000000000..fd3624584
--- /dev/null
+++ b/ports/matroska/portfile.cmake
@@ -0,0 +1,45 @@
+# 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)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Matroska-Org/libmatroska
+ REF release-1.4.8
+ SHA512 3591508674ff69a185d143b4ce5c34a4c9913ad806ad94c6a96b694752f3e67b029037573564ab3bf5d9303a4b6c5fdd55865f140ab0d26df53b051b71957d0a
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/MatroskaConfig.cmake DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS -DDISABLE_PKGCONFIG=1
+ # OPTIONS_RELEASE -DOPTIMIZE=1
+ # OPTIONS_DEBUG -DDEBUGGABLE=1
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.LGPL DESTINATION ${CURRENT_PACKAGES_DIR}/share/matroska RENAME copyright)
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/meschach/CMakeLists.txt b/ports/meschach/CMakeLists.txt
new file mode 100644
index 000000000..648fe5af9
--- /dev/null
+++ b/ports/meschach/CMakeLists.txt
@@ -0,0 +1,89 @@
+cmake_minimum_required(VERSION 3.8.0)
+project(meschach)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+set(meschach_srcs
+ bdfactor.c
+ bkpfacto.c
+ chfactor.c
+ copy.c
+ err.c
+ extras.c
+ fft.c
+ givens.c
+ hessen.c
+ hsehldr.c
+ init.c
+ iter0.c
+ iternsym.c
+ itersym.c
+ ivecop.c
+ lufactor.c
+ machine.c
+ matlab.c
+ matop.c
+ matrixio.c
+ meminfo.c
+ memory.c
+ memstat.c
+ mfunc.c
+ norm.c
+ otherio.c
+ pxop.c
+ qrfactor.c
+ schur.c
+ solve.c
+ sparse.c
+ sparseio.c
+ spbkp.c
+ spchfctr.c
+ splufctr.c
+ sprow.c
+ spswap.c
+ submat.c
+ svd.c
+ symmeig.c
+ update.c
+ vecop.c
+ version.c
+ zcopy.c
+ zfunc.c
+ zgivens.c
+ zhessen.c
+ zhsehldr.c
+ zlufctr.c
+ zmachine.c
+ zmatio.c
+ zmatlab.c
+ zmatop.c
+ zmemory.c
+ znorm.c
+ zqrfctr.c
+ zschur.c
+ zsolve.c
+ ztorture.c
+ zvecop.c
+)
+file(GLOB meschach_headers "*.h")
+
+include_directories(".")
+
+if(BUILD_SHARED_LIBS)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif()
+
+add_library(meschach ${meschach_srcs})
+target_compile_definitions(meschach PRIVATE -DHAVE_MEMORY_H -DHAVE_COMPLEX_H)
+
+install(
+ TARGETS meschach
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES ${meschach_headers} DESTINATION include/meschach)
+endif()
diff --git a/ports/meschach/CONTROL b/ports/meschach/CONTROL
new file mode 100644
index 000000000..a8418b2b1
--- /dev/null
+++ b/ports/meschach/CONTROL
@@ -0,0 +1,3 @@
+Source: meschach
+Version: 1.2b-1
+Description: Matrix computations in C
diff --git a/ports/meschach/portfile.cmake b/ports/meschach/portfile.cmake
new file mode 100644
index 000000000..dd9d93085
--- /dev/null
+++ b/ports/meschach/portfile.cmake
@@ -0,0 +1,21 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://homepage.math.uiowa.edu/~dstewart/meschach/mesch12b.tar.gz"
+ FILENAME "mesch12b.tar.gz"
+ SHA512 9051e1502b8c9741400c61fd6038e514887f305f267ba4e97d747423de3da1270f835f65b2d1f538f8938677060bc0fcfd7a94022d74fbfd31a0450116e9d79e
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/meschach)
diff --git a/ports/metis/CONTROL b/ports/metis/CONTROL
index cc604ce8f..f302a9ce4 100644
--- a/ports/metis/CONTROL
+++ b/ports/metis/CONTROL
@@ -1,3 +1,3 @@
Source: metis
-Version: 5.1.0
+Version: 5.1.0-1
Description: Serial Graph Partitioning and Fill-reducing Matrix Ordering
diff --git a/ports/mhook/CONTROL b/ports/mhook/CONTROL
new file mode 100644
index 000000000..24fae14df
--- /dev/null
+++ b/ports/mhook/CONTROL
@@ -0,0 +1,3 @@
+Source: mhook
+Version: 2.5.1-1
+Description: A Windows API hooking library.
diff --git a/ports/mhook/portfile.cmake b/ports/mhook/portfile.cmake
new file mode 100644
index 000000000..e9faeccae
--- /dev/null
+++ b/ports/mhook/portfile.cmake
@@ -0,0 +1,21 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO apriorit/mhook
+ REF 2.5.1
+ SHA512 914f198417b1e30301a42463af5cfbf9269dc64bcf1be87d3d6d2943fd72b3536f48eb4bfb25a51dd0bbe0f8f099777b2d49c9d58cb2e2eeb517d998917ae976
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/mhook RENAME copyright)
+
+vcpkg_copy_pdbs()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/minizip/CMakeLists.txt b/ports/minizip/CMakeLists.txt
new file mode 100644
index 000000000..9ebb5d217
--- /dev/null
+++ b/ports/minizip/CMakeLists.txt
@@ -0,0 +1,71 @@
+cmake_minimum_required(VERSION 3.8)
+project(minizip C)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+find_package(ZLIB REQUIRED)
+
+find_package(Bzip2 REQUIRED)
+
+set(MIN_SRC contrib/minizip)
+
+include_directories(${MIN_SRC} ${ZLIB_INCLUDE_DIRS} ${BZIP2_INCLUDE_DIR})
+
+set(SRC
+ ${MIN_SRC}/ioapi.c
+ ${MIN_SRC}/iowin32.c
+ ${MIN_SRC}/unzip.c
+ ${MIN_SRC}/zip.c
+ ${MIN_SRC}/unzip.c
+ ${MIN_SRC}/mztools.c
+)
+set(HEADERS
+ ${MIN_SRC}/crypt.h
+ ${MIN_SRC}/ioapi.h
+ ${MIN_SRC}/iowin32.h
+ ${MIN_SRC}/unzip.h
+ ${MIN_SRC}/zip.h
+ ${MIN_SRC}/unzip.h
+ ${MIN_SRC}/mztools.h
+)
+if(BUILD_SHARED_LIBS)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif()
+
+add_library(minizip ${SRC})
+
+target_link_libraries(minizip PRIVATE ZLIB::ZLIB)
+target_compile_definitions(minizip PRIVATE -D_ZLIB_H)
+
+target_link_libraries(minizip PRIVATE ${BZIP2_LIBRARIES})
+target_compile_definitions(minizip PRIVATE -DHAVE_BZIP2=1)
+
+add_executable(minizip_bin ${MIN_SRC}/minizip.c)
+add_executable(miniunz_bin ${MIN_SRC}/miniunz.c)
+
+target_link_libraries(minizip_bin minizip ${BZIP2_LIBRARIES} ZLIB::ZLIB)
+target_link_libraries(miniunz_bin minizip ${BZIP2_LIBRARIES} ZLIB::ZLIB)
+
+set_target_properties(minizip_bin PROPERTIES OUTPUT_NAME minizip)
+set_target_properties(miniunz_bin PROPERTIES OUTPUT_NAME miniunz)
+
+
+install(
+ TARGETS minizip
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_TOOLS)
+ install (
+ TARGETS minizip_bin miniunz_bin
+ RUNTIME DESTINATION tools/minizip
+ )
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES ${HEADERS} DESTINATION include/minizip)
+endif()
diff --git a/ports/minizip/CONTROL b/ports/minizip/CONTROL
new file mode 100644
index 000000000..cc37b5f8c
--- /dev/null
+++ b/ports/minizip/CONTROL
@@ -0,0 +1,4 @@
+Source: minizip
+Version: 1.2.11-2
+Description: Zip compression library
+Build-Depends: bzip2, zlib
diff --git a/ports/minizip/portfile.cmake b/ports/minizip/portfile.cmake
new file mode 100644
index 000000000..f12e3329b
--- /dev/null
+++ b/ports/minizip/portfile.cmake
@@ -0,0 +1,34 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+ message(FATAL_ERROR "WindowsStore not supported")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO madler/zlib
+ REF v1.2.11
+ SHA512 104c62ed1228b5f1199bc037081861576900eb0697a226cafa62a35c4c890b5cb46622e399f9aad82ee5dfb475bae26ae75e2bd6da3d261361b1c8b996970faf
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+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/minizip)
+file(GLOB HEADERS "${CURRENT_PACKAGES_DIR}/include/minizip/*.h")
+foreach(HEADER ${HEADERS})
+ file(READ "${HEADER}" _contents)
+ string(REPLACE "#ifdef HAVE_BZIP2" "#if 1" _contents "${_contents}")
+ file(WRITE "${HEADER}" "${_contents}")
+endforeach()
+
+file(INSTALL ${SOURCE_PATH}/contrib/minizip/MiniZip64_info.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/minizip RENAME copyright)
diff --git a/ports/mman/CONTROL b/ports/mman/CONTROL
new file mode 100644
index 000000000..dad1b19da
--- /dev/null
+++ b/ports/mman/CONTROL
@@ -0,0 +1,3 @@
+Source: mman
+Version: git-f5ff813-2
+Description: A light implementation of the mmap functions for MinGW.
diff --git a/ports/mman/mman-static.patch b/ports/mman/mman-static.patch
new file mode 100644
index 000000000..ce7be4976
--- /dev/null
+++ b/ports/mman/mman-static.patch
@@ -0,0 +1,33 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4696ad4..a72bbce 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,6 +8,10 @@ option (BUILD_TESTS "tests?" OFF)
+ set (headers mman.h)
+ set (sources mman.c)
+
++if(NOT BUILD_SHARED_LIBS)
++ add_definitions(-DMMANSHARED_EXPORT=)
++endif()
++
+ add_library (mman ${sources})
+
+ install (TARGETS mman RUNTIME DESTINATION bin
+diff --git a/mman.h b/mman.h
+index 4065bc6..435ea26 100644
+--- a/mman.h
++++ b/mman.h
+@@ -15,11 +15,13 @@
+ #include <_mingw.h>
+ #endif
+
++#if !defined(MMANSHARED_EXPORT)
+ #if defined(MMAN_LIBRARY)
+ #define MMANSHARED_EXPORT __declspec(dllexport)
+ #else
+ #define MMANSHARED_EXPORT __declspec(dllimport)
+ #endif
++#endif
+
+ /* Determine offset type */
+ #include <stdint.h>
diff --git a/ports/mman/portfile.cmake b/ports/mman/portfile.cmake
new file mode 100644
index 000000000..f4eb270c8
--- /dev/null
+++ b/ports/mman/portfile.cmake
@@ -0,0 +1,37 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO witwall/mman-win32
+ REF f5ff813c53935c3078f48e1f03a6944c4e7b459c
+ SHA512 49c9a63a0a3c6fa585a76e65425f6fb1fdaa23cc87e53d5afb7a1298bcd4956298c076ee78f24dd5df5f5a0c5f6244c6abb63b40818e4d2546185fa37a73bf0d
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/mman-static.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include/mman)
+file(RENAME ${CURRENT_PACKAGES_DIR}/include/sys ${CURRENT_PACKAGES_DIR}/include/mman/sys)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/mman)
+file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/mman RENAME copyright)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(READ ${CURRENT_PACKAGES_DIR}/include/mman/sys/mman.h _contents)
+ string(REPLACE "__declspec(dllimport)" "" _contents "${_contents}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/mman/sys/mman.h "${_contents}")
+endif()
+
+vcpkg_copy_pdbs()
diff --git a/ports/mman/usage b/ports/mman/usage
new file mode 100644
index 000000000..25d00d4c0
--- /dev/null
+++ b/ports/mman/usage
@@ -0,0 +1,4 @@
+The mman.h header deployed by mman is placed in mman/sys/mman.h to avoid accidental inclusion.
+
+ find_path(MMAN_DIR NAMES sys/mman.h PATH_SUFFIXES mman)
+ target_include_directories(main PRIVATE ${MMAN_DIR})
diff --git a/ports/mongo-c-driver/CONTROL b/ports/mongo-c-driver/CONTROL
index 8d77eeca5..9a367df3a 100644
--- a/ports/mongo-c-driver/CONTROL
+++ b/ports/mongo-c-driver/CONTROL
@@ -1,4 +1,4 @@
Source: mongo-c-driver
-Version: 1.6.2
-Build-Depends: libbson, openssl [uwp]
-Description: Client library written in C for MongoDB. \ No newline at end of file
+Version: 1.9.2
+Build-Depends: libbson, openssl (uwp)
+Description: Client library written in C for MongoDB.
diff --git a/ports/mongo-c-driver/bson.patch b/ports/mongo-c-driver/bson.patch
deleted file mode 100644
index 6ef5451b8..000000000
--- a/ports/mongo-c-driver/bson.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/build/cmake/FindBSON.cmake b/build/cmake/FindBSON.cmake
-index 06fd82e..3ac549d 100644
---- a/build/cmake/FindBSON.cmake
-+++ b/build/cmake/FindBSON.cmake
-@@ -11,15 +11,15 @@ endif ()
-
- find_path(BSON_INCLUDE_DIR
- NAMES
-- libbson-1.0/bson.h
-+ bson.h
- HINTS
- ${BSON_ROOT_DIR}
- PATH_SUFFIXES
- include
-+ libbson-1.0
-+ include/libbson-1.0
- )
-
--set(BSON_INCLUDE_DIR "${BSON_INCLUDE_DIR}/libbson-1.0")
--
- find_library(BSON
- NAMES
- "bson-1.0"
diff --git a/ports/mongo-c-driver/fix-uwp.patch b/ports/mongo-c-driver/fix-uwp.patch
index 13c0a2299..59d67c6be 100644
--- a/ports/mongo-c-driver/fix-uwp.patch
+++ b/ports/mongo-c-driver/fix-uwp.patch
@@ -1,8 +1,72 @@
-diff --git a/src/mongoc/mongoc-gridfs-file.c b/src/mongoc/mongoc-gridfs-file.c
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5beb610..7e74ff7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -55,6 +55,7 @@
+
+ include(MaintainerFlags)
+
++if ((NOT ENABLE_STATIC STREQUAL ON) AND (NOT ENABLE_STATIC STREQUAL AUTO))
+ # The input variable BSON_ROOT_DIR is respected for backwards compatibility,
+ # but you should use the standard CMAKE_PREFIX_PATH instead.
+ message (STATUS "Searching for libbson CMake packages")
+@@ -67,12 +68,14 @@
+ message ("-- libbson found version \"${BSON_VERSION}\"")
+ message ("-- libbson include path \"${BSON_INCLUDE_DIRS}\"")
+ message ("-- libbson libraries \"${BSON_LIBRARIES}\"")
++endif ()
+
+ if (ENABLE_STATIC STREQUAL ON OR ENABLE_STATIC STREQUAL AUTO)
+ find_package (libbson-static-1.0
+ "${MONGOC_MAJOR_VERSION}.${MONGOC_MINOR_VERSION}.${MONGOC_MICRO_VERSION}"
+ HINTS
+- ${BSON_ROOT_DIR})
++ ${BSON_ROOT_DIR}
++ REQUIRED)
+
+ if (ENABLE_STATIC STREQUAL ON AND NOT BSON_STATIC_LIBRARY)
+ message (FATAL_ERROR "Static libbson not found. Pass -DENABLE_STATIC=OFF")
+@@ -627,6 +630,7 @@
+ set (LIBS ${LIBS} ws2_32)
+ endif()
+
++if (NOT MONGOC_ENABLE_STATIC)
+ add_library(mongoc_shared SHARED ${SOURCES} ${HEADERS})
+ set_target_properties(mongoc_shared PROPERTIES CMAKE_CXX_VISIBILITY_PRESET hidden)
+ target_link_libraries (mongoc_shared ${LIBS} ${BSON_LIBRARIES})
+@@ -638,6 +642,7 @@
+ # This hack sets up standard symlink, libmongoc-1.0.so -> libmongoc-1.0.0.so
+ set_target_properties(mongoc_shared PROPERTIES VERSION 0 SOVERSION ${MONGOC_MAJOR_VERSION})
+ set_target_properties(mongoc_shared PROPERTIES OUTPUT_NAME "mongoc-${MONGOC_API_VERSION}" PREFIX "lib")
++endif ()
+
+ if (MONGOC_ENABLE_STATIC)
+ add_library(mongoc_static STATIC ${SOURCES} ${HEADERS})
+@@ -804,6 +809,7 @@
+ file(COPY ${SOURCE_DIR}/tests/x509gen DESTINATION ${PROJECT_BINARY_DIR}/tests)
+ file(COPY ${SOURCE_DIR}/tests/release_files DESTINATION ${PROJECT_BINARY_DIR}/tests)
+
++if (NOT MONGOC_ENABLE_STATIC)
+ install(
+ TARGETS mongoc_shared ${EXAMPLES}
+ LIBRARY DESTINATION lib
+@@ -810,10 +816,11 @@
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin
+ )
++endif ()
+
+ if (MONGOC_ENABLE_STATIC)
+ install(
+- TARGETS mongoc_shared mongoc_static ${EXAMPLES}
++ TARGETS mongoc_static ${EXAMPLES}
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin
index 5beb610..7e74ff7 100644
--- a/src/mongoc/mongoc-gridfs-file.c
+++ b/src/mongoc/mongoc-gridfs-file.c
-@@ -734,7 +734,7 @@ _mongoc_gridfs_file_refresh_page (mongoc_gridfs_file_t *file)
+@@ -753,7 +753,7 @@ _mongoc_gridfs_file_refresh_page (mongoc_gridfs_file_t *file)
bson_t query;
bson_t child;
bson_t opts;
@@ -15,7 +79,7 @@ diff --git a/src/mongoc/mongoc-handshake.c b/src/mongoc/mongoc-handshake.c
index 4e181bd..b274fc1 100644
--- a/src/mongoc/mongoc-handshake.c
+++ b/src/mongoc/mongoc-handshake.c
-@@ -195,7 +195,8 @@ _get_os_version (void)
+@@ -243,7 +243,8 @@ _get_os_version (void)
char *ret = bson_malloc (HANDSHAKE_OS_VERSION_MAX);
bool found = false;
@@ -29,7 +93,7 @@ diff --git a/src/mongoc/mongoc-util.c b/src/mongoc/mongoc-util.c
index 6dbb26d..7f33780 100644
--- a/src/mongoc/mongoc-util.c
+++ b/src/mongoc/mongoc-util.c
-@@ -46,7 +46,11 @@ _mongoc_hex_md5 (const char *input)
+@@ -69,7 +69,11 @@ _mongoc_hex_md5 (const char *input)
void
_mongoc_usleep (int64_t usec)
{
diff --git a/ports/mongo-c-driver/portfile.cmake b/ports/mongo-c-driver/portfile.cmake
index 4376f324a..74f4bd66b 100644
--- a/ports/mongo-c-driver/portfile.cmake
+++ b/ports/mongo-c-driver/portfile.cmake
@@ -1,21 +1,24 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mongo-c-driver-1.6.2)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mongo-c-driver-1.9.2)
vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/mongodb/mongo-c-driver/archive/1.6.2.tar.gz"
- FILENAME "mongo-c-driver-1.6.2.tar.gz"
- SHA512 3533fed665c70b71f0e9473156bab1575f60b0b3db412f19c0a625e1e35683a3077f96b8a0ba337fd755675029f47b68dc3a5fc8f39254bb0be589da57cffad3
+ URLS "https://github.com/mongodb/mongo-c-driver/archive/1.9.2.tar.gz"
+ FILENAME "mongo-c-driver-1.9.2.tar.gz"
+ SHA512 a2c819da77aef93ce261093e98e8e8c41c449af56bd03d875e2838a067ae71b5ceb16fed2fb8df9458c84310451b813464377592806fc9ac39d9df2f4ddba83b
)
vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/bson.patch
- ${CMAKE_CURRENT_LIST_DIR}/fix-uwp.patch
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-uwp.patch
)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ set(ENABLE_STATIC ON)
+else()
+ set(ENABLE_STATIC OFF)
+endif()
+
set(ENABLE_SSL "WINDOWS")
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
set(ENABLE_SSL "OPENSSL")
@@ -23,14 +26,21 @@ endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
-DBSON_ROOT_DIR=${CURRENT_INSTALLED_DIR}
-DENABLE_TESTS=OFF
-DENABLE_EXAMPLES=OFF
-DENABLE_SSL=${ENABLE_SSL}
+ -DENABLE_STATIC=${ENABLE_STATIC}
)
vcpkg_install_cmake()
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/libmongoc-static-1.0")
+else()
+ vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/libmongoc-1.0")
+endif()
# This rename is needed because the official examples expect to use #include <mongoc.h>
# See Microsoft/vcpkg#904
@@ -43,23 +53,39 @@ file(RENAME ${CURRENT_PACKAGES_DIR}/temp ${CURRENT_PACKAGES_DIR}/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/mongoc-1.0.lib)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/mongoc-1.0.lib)
-
file(RENAME
${CURRENT_PACKAGES_DIR}/lib/mongoc-static-1.0.lib
${CURRENT_PACKAGES_DIR}/lib/mongoc-1.0.lib)
file(RENAME
${CURRENT_PACKAGES_DIR}/debug/lib/mongoc-static-1.0.lib
${CURRENT_PACKAGES_DIR}/debug/lib/mongoc-1.0.lib)
-else()
- file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/mongoc-static-1.0.lib)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/mongoc-static-1.0.lib)
+
+ # drop the __declspec(dllimport) when building static
+ vcpkg_apply_patches(
+ SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/static.patch
+ )
+
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin)
endif()
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver RENAME copyright)
file(COPY ${SOURCE_PATH}/THIRD_PARTY_NOTICES DESTINATION ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(PORT_POSTFIX "static-1.0")
+else()
+ set(PORT_POSTFIX "1.0")
+endif()
+
+file(READ ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/libmongoc-${PORT_POSTFIX}-config.cmake LIBMONGOC_CONFIG_CMAKE)
+string(REPLACE "/include/libmongoc-1.0" "/include" LIBMONGOC_CONFIG_CMAKE "${LIBMONGOC_CONFIG_CMAKE}")
+string(REPLACE "mongoc-static-1.0" "mongoc-1.0" LIBMONGOC_CONFIG_CMAKE "${LIBMONGOC_CONFIG_CMAKE}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/libmongoc-${PORT_POSTFIX}-config.cmake "${LIBMONGOC_CONFIG_CMAKE}")
+file(COPY ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/libmongoc-${PORT_POSTFIX}-config.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libmongoc-${PORT_POSTFIX})
+file(COPY ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/libmongoc-${PORT_POSTFIX}-config-version.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libmongoc-${PORT_POSTFIX})
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/libmongoc-${PORT_POSTFIX}-config.cmake ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/mongo-c-driver-config.cmake)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/libmongoc-${PORT_POSTFIX}-config-version.cmake ${CURRENT_PACKAGES_DIR}/share/mongo-c-driver/mongo-c-driver-config-version.cmake)
+
vcpkg_copy_pdbs()
diff --git a/ports/mongo-c-driver/static.patch b/ports/mongo-c-driver/static.patch
new file mode 100644
index 000000000..7f348ba82
--- /dev/null
+++ b/ports/mongo-c-driver/static.patch
@@ -0,0 +1,13 @@
+diff --git a/mongoc-macros.h b/mongoc-macros.h
+index 909bf6c..0a1f612 100644
+--- a/mongoc-macros.h
++++ b/mongoc-macros.h
+@@ -40,7 +40,7 @@
+ #elif defined(MONGOC_COMPILATION)
+ #define MONGOC_API __declspec(dllexport)
+ #else
+-#define MONGOC_API __declspec(dllimport)
++#define MONGOC_API
+ #endif
+ #define MONGOC_CALL __cdecl
+
diff --git a/ports/mongo-cxx-driver/CONTROL b/ports/mongo-cxx-driver/CONTROL
index 9b7e29ba3..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
-Build-Depends: boost, libbson, mongo-c-driver
-Description: MongoDB C++ Driver. \ No newline at end of file
+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/monkeys-audio/CONTROL b/ports/monkeys-audio/CONTROL
new file mode 100644
index 000000000..7b28d4c08
--- /dev/null
+++ b/ports/monkeys-audio/CONTROL
@@ -0,0 +1,5 @@
+Source: monkeys-audio
+Version: 4.3.3
+Description: Monkey's Audio is an excellent audio compression tool which has multiple advantages over traditional methods.
+ Audio files compressed with it ends with .ape extension.
+ \ No newline at end of file
diff --git a/ports/monkeys-audio/license b/ports/monkeys-audio/license
new file mode 100644
index 000000000..a4ab2f09a
--- /dev/null
+++ b/ports/monkeys-audio/license
@@ -0,0 +1,42 @@
+Monkey's Audio Program License Agreement
+========================================
+
+1. Monkey's Audio is completely free for personal, educational, or commercial use.
+
+2. Although the software has been tested thoroughly, the author is in no way responsible for
+ damages due to bugs or misuse.
+
+3. The redistribution of Monkey's Audio is only allowed in cases where the original installer and
+ components therein have not been modified.
+
+4. The use of Monkey's Audio or any component thereof from another program requires
+ compliance with the 'Monkey's Audio SDK and Source Code License Agreement'.
+
+5. Installing and using Monkey's Audio signifies the acceptance of these terms. If you do not
+ agree with any of the above terms, you must cease using Monkey's Audio and remove it from
+ your storage device.
+
+
+Monkey's Audio SDK and Source Code License Agreement
+====================================================
+
+1. The Monkey's Audio SDK and source code can be freely used to add APE format playback,
+ encoding, or tagging support to any product, free or commercial.
+
+2. Monkey's Audio source can be included in GPL and open-source software, although Monkey's
+ Audio itself will not be subjected to external licensing requirements or other viral source
+ restrictions.
+
+3. Code changes and improvements must be contributed back to the Monkey's Audio project or
+ made freely available, unless exempted by written consent of the author.
+
+4. Any source code, ideas, or libraries used must be plainly acknowledged in the software using
+ the code.
+
+5. Although the software has been tested thoroughly, the author is in no way responsible for
+ damages due to bugs or misuse.
+
+6. If you do not completely agree with all of the previous stipulations, you must cease using this
+ source code and remove it from your storage device.
+
+All materials and programs copyrighted ©2000-2018 by Matt Ashland
diff --git a/ports/monkeys-audio/portfile.cmake b/ports/monkeys-audio/portfile.cmake
new file mode 100644
index 000000000..58a336737
--- /dev/null
+++ b/ports/monkeys-audio/portfile.cmake
@@ -0,0 +1,55 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message(FATAL_ERROR "${PORT} currently only support static build")
+endif()
+
+include(vcpkg_common_functions)
+
+set(VERSION 4.7)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src)
+set(PROJECT_PATH ${SOURCE_PATH}/Source/Projects/VS2017)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://monkeysaudio.com/files/MAC_SDK_433.zip"
+ FILENAME "MAC_SDK_433.zip"
+ SHA512 957ba262da29a8542ab82dc828328b19bf80ecf0d09165db935924b390cb6a3a2d9303a2e07b86b28ecf4210a66dd5c4be840205a9f09518189101033f1a13c8
+)
+
+vcpkg_extract_source_archive(${ARCHIVE})
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/use-dynamic-linkage.patch
+ )
+endif()
+
+vcpkg_build_msbuild(
+ PROJECT_PATH ${PROJECT_PATH}/Console/Console.vcxproj
+)
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include)
+file(COPY ${CURRENT_BUILDTREES_DIR}/src/Shared/
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include/monkeys-audio
+ FILES_MATCHING PATTERN "*.h")
+file(REMOVE ${CURRENT_PACKAGES_DIR}/include/monkeys-audio/MACDll.h)
+
+file(COPY
+ ${PROJECT_PATH}/MACLib/Debug/MACLib.lib
+ ${PROJECT_PATH}/MACLib/Debug/MACLib.pdb
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+file(COPY
+ ${PROJECT_PATH}/MACLib/Release/MACLib.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+)
+
+file(INSTALL ${PROJECT_PATH}/Console/Release/Console.exe
+ DESTINATION ${CURRENT_PACKAGES_DIR}/tools/monkeys-audio
+ RENAME mac.exe)
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+
+file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/license DESTINATION ${CURRENT_PACKAGES_DIR}/share/monkeys-audio RENAME copyright)
diff --git a/ports/monkeys-audio/use-dynamic-linkage.patch b/ports/monkeys-audio/use-dynamic-linkage.patch
new file mode 100644
index 000000000..ab16f6353
--- /dev/null
+++ b/ports/monkeys-audio/use-dynamic-linkage.patch
@@ -0,0 +1,36 @@
+diff --git a/Source/Projects/VS2017/MACLib/MACLib.vcxproj b/Source/Projects/VS2017/MACLib/MACLib.vcxproj
+index ec3cf92..44c8e65 100644
+--- a/Source/Projects/VS2017/MACLib/MACLib.vcxproj
++++ b/Source/Projects/VS2017/MACLib/MACLib.vcxproj
+@@ -25,27 +25,27 @@
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+- <ConfigurationType>StaticLibrary</ConfigurationType>
++ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v141_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+- <ConfigurationType>StaticLibrary</ConfigurationType>
++ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v141_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+- <ConfigurationType>StaticLibrary</ConfigurationType>
++ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v141_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+- <ConfigurationType>StaticLibrary</ConfigurationType>
++ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v141_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>Unicode</CharacterSet>
diff --git a/ports/mosquitto/0001-win64-cmake.patch b/ports/mosquitto/0001-win64-cmake.patch
new file mode 100644
index 000000000..70888b637
--- /dev/null
+++ b/ports/mosquitto/0001-win64-cmake.patch
@@ -0,0 +1,40 @@
+--- a/config.h
++++ b/config.h
+@@ -16,7 +16,7 @@
+ # define EPROTO ECONNABORTED
+ #endif
+
+-#ifdef WIN32
++#ifdef WIN32 || WIN64
+ # ifndef strcasecmp
+ # define strcasecmp strcmpi
+ # endif
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -4,8 +4,8 @@
+ if (${WITH_THREADING} STREQUAL ON)
+ add_definitions("-DWITH_THREADING")
+ if (WIN32)
+- set (PTHREAD_LIBRARIES C:\\pthreads\\Pre-built.2\\lib\\x86\\pthreadVC2.lib)
+- set (PTHREAD_INCLUDE_DIR C:\\pthreads\\Pre-built.2\\include)
++ set (PTHREAD_LIBRARIES ${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/lib/pthreadsVC2.lib)
++ set (PTHREAD_INCLUDE_DIR ${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/include)
+ else (WIN32)
+ find_library(LIBPTHREAD pthread)
+ if (LIBPTHREAD)
+--- a/lib/net_mosq.h
++++ b/lib/net_mosq.h
+@@ -20,7 +20,12 @@
+ #include <unistd.h>
+ #else
+ #include <winsock2.h>
++#if defined(_MSC_VER) && _MSC_VER > 1900
++#undef ssize_t
+ typedef int ssize_t;
++#else
++typedef int ssize_t;
++#endif
+ #endif
+
+ #include <mosquitto_internal.h>
+
diff --git a/ports/mosquitto/CONTROL b/ports/mosquitto/CONTROL
new file mode 100644
index 000000000..81d12dc23
--- /dev/null
+++ b/ports/mosquitto/CONTROL
@@ -0,0 +1,8 @@
+Source: mosquitto
+Version: 1.4.15
+Build-Depends: c-ares, libwebsockets, openssl, pthreads
+Description: Mosquitto is an open source message broker that implements the MQ Telemetry Transport protocol versions 3.1 and
+ 3.1.1. MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it
+ suitable for "machine to machine" messaging such as with low power sensors or mobile devices such as phones, embedded
+ computers or microcontrollers like the Arduino. you can see more information from this url
+ https://mosquitto.org/download/
diff --git a/ports/mosquitto/cmake-2.patch b/ports/mosquitto/cmake-2.patch
new file mode 100644
index 000000000..bd5121c72
--- /dev/null
+++ b/ports/mosquitto/cmake-2.patch
@@ -0,0 +1,68 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3a68061..e4197fd 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -24,10 +24,10 @@ endif (WIN32)
+ add_definitions (-DCMAKE -DVERSION=\"${VERSION}\" -DTIMESTAMP=\"${TIMESTAMP}\")
+
+ if (WIN32)
+- set (BINDIR .)
+- set (SBINDIR .)
++ set (BINDIR bin)
++ set (SBINDIR bin)
+ set (SYSCONFDIR .)
+- set (LIBDIR .)
++ set (LIBDIR lib)
+ set (INCLUDEDIR include)
+ set (DATAROOTDIR share)
+ set (MANDIR man)
+@@ -86,10 +86,10 @@ option(WITH_SRV "Include SRV lookup support?" ON)
+ add_subdirectory(lib)
+ add_subdirectory(client)
+ add_subdirectory(src)
+-add_subdirectory(man)
++#add_subdirectory(man)
+
+ # ========================================
+ # Install config file
+ # ========================================
+
+-install(FILES mosquitto.conf aclfile.example pskfile.example pwfile.example DESTINATION "${SYSCONFDIR}")
++#install(FILES mosquitto.conf aclfile.example pskfile.example pwfile.example DESTINATION "${SYSCONFDIR}")
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index 1260761..aebd580 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -4,8 +4,8 @@ option(WITH_THREADING "Include client library threading support?" ON)
+ if (${WITH_THREADING} STREQUAL ON)
+ add_definitions("-DWITH_THREADING")
+ if (WIN32)
+- set (PTHREAD_LIBRARIES ${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/lib/pthreadsVC2.lib)
+- set (PTHREAD_INCLUDE_DIR ${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/include)
++ find_library(PTHREAD_LIBRARIES NAMES pthreadsVC2)
++ find_path(PTHREAD_INCLUDE_DIR pthread.h)
+ else (WIN32)
+ find_library(LIBPTHREAD pthread)
+ if (LIBPTHREAD)
+@@ -78,7 +78,7 @@ set_target_properties(libmosquitto PROPERTIES
+ SOVERSION 1
+ )
+
+-install(TARGETS libmosquitto RUNTIME DESTINATION "${BINDIR}" LIBRARY DESTINATION "${LIBDIR}")
++install(TARGETS libmosquitto RUNTIME DESTINATION "${BINDIR}" LIBRARY DESTINATION "${LIBDIR}" ARCHIVE DESTINATION "${LIBDIR}")
+ install(FILES mosquitto.h DESTINATION "${INCLUDEDIR}")
+
+ if (UNIX)
+diff --git a/lib/cpp/CMakeLists.txt b/lib/cpp/CMakeLists.txt
+index b80dc18..e91ec77 100644
+--- a/lib/cpp/CMakeLists.txt
++++ b/lib/cpp/CMakeLists.txt
+@@ -10,7 +10,7 @@ set_target_properties(mosquittopp PROPERTIES
+ VERSION ${VERSION}
+ SOVERSION 1
+ )
+-install(TARGETS mosquittopp RUNTIME DESTINATION "${BINDIR}" LIBRARY DESTINATION "${LIBDIR}")
++install(TARGETS mosquittopp RUNTIME DESTINATION "${BINDIR}" LIBRARY DESTINATION "${LIBDIR}" ARCHIVE DESTINATION "${LIBDIR}")
+ install(FILES mosquittopp.h DESTINATION "${INCLUDEDIR}")
+
+ if (UNIX)
diff --git a/ports/mosquitto/cmake.patch b/ports/mosquitto/cmake.patch
new file mode 100644
index 000000000..e20d3986e
--- /dev/null
+++ b/ports/mosquitto/cmake.patch
@@ -0,0 +1,13 @@
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -4,8 +4,8 @@
+ if (${WITH_THREADING} STREQUAL ON)
+ add_definitions("-DWITH_THREADING")
+ if (WIN32)
+- set (PTHREAD_LIBRARIES C:\\pthreads\\Pre-built.2\\lib\\x86\\pthreadVC2.lib)
+- set (PTHREAD_INCLUDE_DIR C:\\pthreads\\Pre-built.2\\include)
++ set (PTHREAD_LIBRARIES ${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/lib/pthreadsVC2.lib)
++ set (PTHREAD_INCLUDE_DIR ${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/include)
+ else (WIN32)
+ find_library(LIBPTHREAD pthread)
+ if (LIBPTHREAD)
diff --git a/ports/mosquitto/portfile.cmake b/ports/mosquitto/portfile.cmake
new file mode 100644
index 000000000..a9c70f853
--- /dev/null
+++ b/ports/mosquitto/portfile.cmake
@@ -0,0 +1,56 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message("mosquitto only supports dynamic linkage")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "mosquitto does not support static CRT linkage")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO eclipse/mosquitto
+ REF v1.4.15
+ SHA512 428ef9434d3fe022232dcde415fe8cd948d237507d512871803a116230f9e011c10fa01313111ced0946f906e8cc7e26d9eee5de6caa7f82590753a4d087f6fd
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/0001-win64-cmake.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/cmake.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/cmake-2.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DWITH_SRV=OFF
+ -DWITH_WEBSOCKETS=ON
+ -DWITH_TLS=ON
+ -DWITH_TLS_PSK=ON
+ -DWITH_THREADING=ON
+ OPTIONS_RELEASE
+ -DENABLE_DEBUG=OFF
+ OPTIONS_DEBUG
+ -DENABLE_DEBUG=ON
+)
+
+vcpkg_install_cmake()
+
+# Remove debug/include
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(GLOB EXE ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+file(GLOB DEBUG_EXE ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+file(REMOVE ${EXE})
+file(REMOVE ${DEBUG_EXE})
+
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/mosquitto RENAME copyright)
+
+# Copy pdb
+vcpkg_copy_pdbs()
diff --git a/ports/mozjpeg/CONTROL b/ports/mozjpeg/CONTROL
new file mode 100644
index 000000000..9e3f19b4c
--- /dev/null
+++ b/ports/mozjpeg/CONTROL
@@ -0,0 +1,3 @@
+Source: mozjpeg
+Version: 3.2-1
+Description: MozJPEG reduces file sizes of JPEG images while retaining quality and compatibility with the vast majority of the world's deployed decoders. It's compatible with libjpeg API and ABI, and can be used as a drop-in replacement for libjpeg.
diff --git a/ports/mozjpeg/portfile.cmake b/ports/mozjpeg/portfile.cmake
new file mode 100644
index 000000000..52011d394
--- /dev/null
+++ b/ports/mozjpeg/portfile.cmake
@@ -0,0 +1,54 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mozilla/mozjpeg
+ REF v3.2
+ SHA512 d14789827a9f4f78139a3945d3169d37eb891758b5ab40ef19e99ebebb2fb6d7c3a05495de245bba54cfd913b153af352159aa9fc0218127f97819137e0f1ab8
+ HEAD_REF master
+)
+
+vcpkg_find_acquire_program(NASM)
+get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
+set(ENV{PATH} "$ENV{PATH};${NASM_EXE_PATH}")
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(OPTIONS "-DENABLE_SHARED=FALSE")
+else()
+ set(OPTIONS "-DENABLE_STATIC=FALSE")
+endif()
+
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" WITH_CRT_DLL)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ ${OPTIONS}
+ -DWITH_CRT_DLL=${WITH_CRT_DLL}
+)
+
+vcpkg_install_cmake()
+
+#remove extra debug files
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/doc)
+file(GLOB DEBUGEXES ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+file(REMOVE ${DEBUGEXES})
+
+#move exes to tools
+file(GLOB EXES ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/mozjpeg)
+file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/mozjpeg)
+file(REMOVE ${EXES})
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/mozjpeg)
+
+#remove empty folders after static build
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/mozjpeg RENAME copyright)
+vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/mpark-variant/CONTROL b/ports/mpark-variant/CONTROL
new file mode 100644
index 000000000..d6cbf380e
--- /dev/null
+++ b/ports/mpark-variant/CONTROL
@@ -0,0 +1,3 @@
+Source: mpark-variant
+Version: 1.3.0
+Description: an implementation of C++17 std::variant for C++11/14/17.
diff --git a/ports/mpark-variant/portfile.cmake b/ports/mpark-variant/portfile.cmake
new file mode 100644
index 000000000..b400507ee
--- /dev/null
+++ b/ports/mpark-variant/portfile.cmake
@@ -0,0 +1,24 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mpark/variant
+ REF v1.3.0
+ SHA512 53735d14a9b241d93191fa3b7ac8ed8fb17a8f8766318b2817c4dd1948088377190ca168027a297bae41bb2cc1f6043fe51752d43b8c33badcc9f2df9fa08ece
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/mpark_variant TARGET_PATH share/mpark_variant)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/lib)
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE.md
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/mpark-variant RENAME copyright)
diff --git a/ports/mpfr/CMakeLists.txt b/ports/mpfr/CMakeLists.txt
new file mode 100644
index 000000000..ed48eaf59
--- /dev/null
+++ b/ports/mpfr/CMakeLists.txt
@@ -0,0 +1,277 @@
+cmake_minimum_required(VERSION 3.3.0)
+
+project(MPFR VERSION 3.1.5 LANGUAGES C)
+
+# Find GMP (or MPIR)
+find_library(GMP_LIBRARY NAMES gmp mpir)
+find_path(GMP_INCLUDE_DIR "gmp.h")
+
+set(GMP_LIBRARIES ${GMP_LIBRARY})
+set(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR})
+
+# Sources
+set(SRCS
+ src/gmp_printf.c
+ src/mpfr.h
+ src/mpf2mpfr.h
+ src/mpfr-gmp.h
+ src/mpfr-impl.h
+ src/mpfr-intmax.h
+ src/mpfr-longlong.h
+ src/mpfr-thread.h
+ src/exceptions.c
+ src/extract.c
+ src/uceil_exp2.c
+ src/uceil_log2.c
+ src/ufloor_log2.c
+ src/add.c
+ src/add1.c
+ src/add_ui.c
+ src/agm.c
+ src/clear.c
+ src/cmp.c
+ src/cmp_abs.c
+ src/cmp_si.c
+ src/cmp_ui.c
+ src/comparisons.c
+ src/div_2exp.c
+ src/div_2si.c
+ src/div_2ui.c
+ src/div.c
+ src/div_ui.c
+ src/dump.c
+ src/eq.c
+ src/exp10.c
+ src/exp2.c
+ src/exp3.c
+ src/exp.c
+ src/frac.c
+ src/frexp.c
+ src/get_d.c
+ src/get_exp.c
+ src/get_str.c
+ src/init.c
+ src/inp_str.c
+ src/isinteger.c
+ src/isinf.c
+ src/isnan.c
+ src/isnum.c
+ src/const_log2.c
+ src/log.c
+ src/modf.c
+ src/mul_2exp.c
+ src/mul_2si.c
+ src/mul_2ui.c
+ src/mul.c
+ src/mul_ui.c
+ src/neg.c
+ src/next.c
+ src/out_str.c
+ src/printf.c
+ src/vasprintf.c
+ src/const_pi.c
+ src/pow.c
+ src/pow_si.c
+ src/pow_ui.c
+ src/print_raw.c
+ src/print_rnd_mode.c
+ src/reldiff.c
+ src/round_prec.c
+ src/set.c
+ src/setmax.c
+ src/setmin.c
+ src/set_d.c
+ src/set_dfl_prec.c
+ src/set_exp.c
+ src/set_rnd.c
+ src/set_f.c
+ src/set_prc_raw.c
+ src/set_prec.c
+ src/set_q.c
+ src/set_si.c
+ src/set_str.c
+ src/set_str_raw.c
+ src/set_ui.c
+ src/set_z.c
+ src/sqrt.c
+ src/sqrt_ui.c
+ src/sub.c
+ src/sub1.c
+ src/sub_ui.c
+ src/rint.c
+ src/ui_div.c
+ src/ui_sub.c
+ src/urandom.c
+ src/urandomb.c
+ src/get_z_exp.c
+ src/swap.c
+ src/factorial.c
+ src/cosh.c
+ src/sinh.c
+ src/tanh.c
+ src/sinh_cosh.c
+ src/acosh.c
+ src/asinh.c
+ src/atanh.c
+ src/atan.c
+ src/cmp2.c
+ src/exp_2.c
+ src/asin.c
+ src/const_euler.c
+ src/cos.c
+ src/sin.c
+ src/tan.c
+ src/fma.c
+ src/fms.c
+ src/hypot.c
+ src/log1p.c
+ src/expm1.c
+ src/log2.c
+ src/log10.c
+ src/ui_pow.c
+ src/ui_pow_ui.c
+ src/minmax.c
+ src/dim.c
+ src/signbit.c
+ src/copysign.c
+ src/setsign.c
+ src/gmp_op.c
+ src/init2.c
+ src/acos.c
+ src/sin_cos.c
+ src/set_nan.c
+ src/set_inf.c
+ src/set_zero.c
+ src/powerof2.c
+ src/gamma.c
+ src/set_ld.c
+ src/get_ld.c
+ src/cbrt.c
+ src/volatile.c
+ src/fits_s.h
+ src/fits_sshort.c
+ src/fits_sint.c
+ src/fits_slong.c
+ src/fits_u.h
+ src/fits_ushort.c
+ src/fits_uint.c
+ src/fits_ulong.c
+ src/fits_uintmax.c
+ src/fits_intmax.c
+ src/get_si.c
+ src/get_ui.c
+ src/zeta.c
+ src/cmp_d.c
+ src/erf.c
+ src/inits.c
+ src/inits2.c
+ src/clears.c
+ src/sgn.c
+ src/check.c
+ src/sub1sp.c
+ src/version.c
+ src/mpn_exp.c
+ src/mpfr-gmp.c
+ src/mp_clz_tab.c
+ src/sum.c
+ src/add1sp.c
+ src/free_cache.c
+ src/si_op.c
+ src/cmp_ld.c
+ src/set_ui_2exp.c
+ src/set_si_2exp.c
+ src/set_uj.c
+ src/set_sj.c
+ src/get_sj.c
+ src/get_uj.c
+ src/get_z.c
+ src/iszero.c
+ src/cache.c
+ src/sqr.c
+ src/int_ceil_log2.c
+ src/isqrt.c
+ src/strtofr.c
+ src/pow_z.c
+ src/logging.c
+ src/mulders.c
+ src/get_f.c
+ src/round_p.c
+ src/erfc.c
+ src/atan2.c
+ src/subnormal.c
+ src/const_catalan.c
+ src/root.c
+ src/gen_inverse.h
+ src/sec.c
+ src/csc.c
+ src/cot.c
+ src/eint.c
+ src/sech.c
+ src/csch.c
+ src/coth.c
+ src/round_near_x.c
+ src/constant.c
+ src/abort_prec_max.c
+ src/stack_interface.c
+ src/lngamma.c
+ src/zeta_ui.c
+ src/set_d64.c
+ src/get_d64.c
+ src/jn.c
+ src/yn.c
+ src/rem1.c
+ src/get_patches.c
+ src/add_d.c
+ src/sub_d.c
+ src/d_sub.c
+ src/mul_d.c
+ src/div_d.c
+ src/d_div.c
+ src/li2.c
+ src/rec_sqrt.c
+ src/min_prec.c
+ src/buildopt.c
+ src/digamma.c
+ src/bernoulli.c
+ src/isregular.c
+ src/set_flt.c
+ src/get_flt.c
+ src/scale2.c
+ src/set_z_exp.c
+ src/ai.c
+ src/gammaonethird.c
+ src/ieee_floats.h
+ src/grandom.c)
+
+configure_file("src/mparam_h.in" "mparam.h")
+
+# Create and configure the target
+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()
+
+target_link_libraries(mpfr ${GMP_LIBRARIES})
+
+target_include_directories(mpfr PUBLIC ${GMP_INCLUDE_DIRS})
+target_include_directories(mpfr PRIVATE ${CMAKE_BINARY_DIR})
+target_include_directories(mpfr PRIVATE ${PROJECT_SOURCE_DIR})
+target_include_directories(mpfr PRIVATE ${PROJECT_SOURCE_DIR}/src)
+
+# Install
+install(
+ TARGETS mpfr
+ EXPORT MPFRExports
+ RUNTIME DESTINATION "bin"
+ LIBRARY DESTINATION "lib"
+ ARCHIVE DESTINATION "lib"
+ )
+
+install(
+ FILES src/mpfr.h
+ DESTINATION "include"
+)
diff --git a/ports/mpfr/CONTROL b/ports/mpfr/CONTROL
new file mode 100644
index 000000000..fdfe6deb0
--- /dev/null
+++ b/ports/mpfr/CONTROL
@@ -0,0 +1,4 @@
+Source: mpfr
+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
new file mode 100644
index 000000000..689b075fc
--- /dev/null
+++ b/ports/mpfr/portfile.cmake
@@ -0,0 +1,25 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mpfr-3.1.6)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.mpfr.org/mpfr-3.1.6/mpfr-3.1.6.tar.xz"
+ FILENAME "mpfr-3.1.6.tar.xz"
+ SHA512 746ee74d5026f267f74ab352d850ed30ff627d530aa840c71b24793e44875f8503946bd7399905dea2b2dd5744326254d7889337fe94cfe58d03c4066e9d8054
+)
+
+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()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/mpfr)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/mpfr/COPYING ${CURRENT_PACKAGES_DIR}/share/mpfr/copyright)
diff --git a/ports/mpg123/0002-fix-x86-build.patch b/ports/mpg123/0002-fix-x86-build.patch
new file mode 100644
index 000000000..2d0b10b81
--- /dev/null
+++ b/ports/mpg123/0002-fix-x86-build.patch
@@ -0,0 +1,37 @@
+diff --git a/src/libmpg123/mangle.h b/src/libmpg123/mangle.h
+index 6012ccc..bf37cd7 100644
+--- a/src/libmpg123/mangle.h
++++ b/src/libmpg123/mangle.h
+@@ -85,6 +85,10 @@
+ #define ASM_VALUE(a) MANGLE_MACROCAT($,a)
+ #endif
+
++#if defined(_WIN32) && !defined(_WIN64)
++#define OPT_X86
++#endif
++
+ /* Enable position-independent code for certain platforms. */
+
+ #if defined(OPT_X86)
+@@ -130,7 +134,7 @@ Lpic_base: \
+ /* Dummies for everyone else. */
+ #define LOCAL_VAR(a) a
+ #define GLOBAL_VAR ASM_NAME
+-#define GLOBAL_VAR_PTR(a) #error Cannot use indirect addressing in non-PIC object.
++#define GLOBAL_VAR_PTR(a) // #error Cannot use indirect addressing in non-PIC object.
+ #define FUNC ASM_NAME
+ #define EXTERNAL_FUNC ASM_NAME
+ #define GET_GOT
+diff --git a/ports/MSVC++/2015/win32/libmpg123/libmpg123.vcxproj b/ports/MSVC++/2015/win32/libmpg123/libmpg123.vcxproj
+index 1edf77d..f78999b 100644
+--- a/ports/MSVC++/2015/win32/libmpg123/libmpg123.vcxproj
++++ b/ports/MSVC++/2015/win32/libmpg123/libmpg123.vcxproj
+@@ -700,7 +700,7 @@ yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "$(IntDir)synth_stereo_sse_
+ </Command>
+ </PreLinkEvent>
+ <Lib>
+- <AdditionalDependencies>Shlwapi.lib;dct36_3dnow.o;dct36_3dnowext.o;dct64_3dnow.o;dct64_3dnowext.o;dct64_mmx.o;dct64_sse.o;dct64_sse_float.o;equalizer_3dnow.o;getcpuflags.o;synth_3dnow.o;synth_3dnowext.o;synth_i586.o;synth_mmx.o;synth_sse.o;synth_sse_float.o;synth_stereo_sse_float.o;tabinit_mmx.o;synth_sse_accurate.o;synth_sse_s32.o;synth_stereo_sse_accurate.o;synth_stereo_sse_s32.o;%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalDependencies>Shlwapi.lib;dct36_3dnow.o;dct36_3dnowext.o;dct36_sse.o;dct64_3dnow.o;dct64_3dnowext.o;dct64_mmx.o;dct64_sse.o;dct64_sse_float.o;equalizer_3dnow.o;getcpuflags.o;synth_3dnow.o;synth_3dnowext.o;synth_i586.o;synth_mmx.o;synth_sse.o;synth_sse_float.o;synth_stereo_sse_float.o;tabinit_mmx.o;synth_sse_accurate.o;synth_sse_s32.o;synth_stereo_sse_accurate.o;synth_stereo_sse_s32.o;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>$(IntDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <Verbose>true</Verbose>
+ </Lib>
diff --git a/ports/mpg123/CONTROL b/ports/mpg123/CONTROL
index e4652e52d..ca4f01835 100644
--- a/ports/mpg123/CONTROL
+++ b/ports/mpg123/CONTROL
@@ -1,3 +1,3 @@
Source: mpg123
-Version: 1.24.0-1
-Description: mpg123 is a real time MPEG 1.0/2.0/2.5 audio player/decoder for layers 1, 2 and 3 (MPEG 1.0 layer 3 also known as MP3). \ No newline at end of file
+Version: 1.25.8-5
+Description: mpg123 is a real time MPEG 1.0/2.0/2.5 audio player/decoder for layers 1, 2 and 3 (MPEG 1.0 layer 3 also known as MP3).
diff --git a/ports/mpg123/portfile.cmake b/ports/mpg123/portfile.cmake
index cac518cb2..ff7645390 100644
--- a/ports/mpg123/portfile.cmake
+++ b/ports/mpg123/portfile.cmake
@@ -1,7 +1,7 @@
include(vcpkg_common_functions)
-set(MPG123_VERSION 1.24.0)
-set(MPG123_HASH e7c0d7a103daf496e75a6aa6aca861cfc0ad391f242335990c2360305e567039d24ca3b37a35f79b75749055e255f4692b8b43d2fec332b119223b00e12b0cb7)
+set(MPG123_VERSION 1.25.8)
+set(MPG123_HASH f226317dddb07841a13753603fa13c0a867605a5a051626cb30d45cfba266d3d4296f5b8254f65b403bb5eef6addce1784ae8829b671a746854785cda1bad203)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mpg123-${MPG123_VERSION})
#architecture detection
@@ -29,53 +29,128 @@ vcpkg_find_acquire_program(YASM)
get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY)
set(ENV{PATH} "$ENV{PATH};${YASM_EXE_PATH}")
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES "${CURRENT_PORT_DIR}/0001-fix-crt-linking.patch")
+if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CURRENT_PORT_DIR}/0001-fix-crt-linking.patch"
+ "${CURRENT_PORT_DIR}/0002-fix-x86-build.patch")
-vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/libmpg123.vcxproj
- RELEASE_CONFIGURATION Release_x86${MPG123_CONFIGURATION_SUFFIX}
- DEBUG_CONFIGURATION Debug_x86${MPG123_CONFIGURATION_SUFFIX}
-)
+ vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/libmpg123.vcxproj
+ RELEASE_CONFIGURATION Release_x86${MPG123_CONFIGURATION_SUFFIX}
+ DEBUG_CONFIGURATION Debug_x86${MPG123_CONFIGURATION_SUFFIX}
+ )
+
+ message(STATUS "Installing")
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ file(INSTALL
+ ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Debug/libmpg123.dll
+ ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Debug/libmpg123.pdb
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Release/libmpg123.dll
+ ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Release/libmpg123.pdb
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+ )
+ else()
+ file(INSTALL
+ ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Debug_x86/libmpg123.pdb
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Release_x86/libmpg123.pdb
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+ )
+ endif()
-message(STATUS "Installing")
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
file(INSTALL
- ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Debug/libmpg123.dll
- ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Debug/libmpg123.pdb
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Debug/libmpg123.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
)
file(INSTALL
- ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Release/libmpg123.dll
- ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Release/libmpg123.pdb
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+ ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Release/libmpg123.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
)
-else()
file(INSTALL
- ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Debug_x86/libmpg123.pdb
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+ ${SOURCE_PATH}/ports/MSVC++/mpg123.h
+ ${SOURCE_PATH}/src/libmpg123/fmt123.h
+ ${SOURCE_PATH}/src/libmpg123/mpg123.h.in
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
)
- file(INSTALL
- ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Release_x86/libmpg123.pdb
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ file(REMOVE_RECURSE ${SOURCE_PATH}/build/debug)
+ file(REMOVE_RECURSE ${SOURCE_PATH}/build/release)
+
+ ################
+ # Debug build
+ ################
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
+ vcpkg_execute_required_process(
+ COMMAND "${SOURCE_PATH}/configure" --prefix=${SOURCE_PATH}/build/debug --enable-debug=yes --enable-static=yes --disable-dependency-tracking --with-default-audio=coreaudio --with-module-suffix=.so
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME config-${TARGET_TRIPLET}-dbg
)
-endif()
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done.")
-file(INSTALL
- ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Debug/libmpg123.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
-)
-file(INSTALL
- ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Release/libmpg123.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib
-)
-file(INSTALL
- ${SOURCE_PATH}/ports/MSVC++/mpg123.h
- ${SOURCE_PATH}/src/libmpg123/fmt123.h
- ${SOURCE_PATH}/src/libmpg123/mpg123.h.in
- DESTINATION ${CURRENT_PACKAGES_DIR}/include
-)
+ message(STATUS "Installing ${TARGET_TRIPLET}-dbg")
+ vcpkg_execute_required_process(
+ COMMAND make -j install
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME build-${TARGET_TRIPLET}-dbg
+ )
+ message(STATUS "Installing ${TARGET_TRIPLET}-dbg done.")
+
+ ################
+ # Release build
+ ################
+ message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
+ vcpkg_execute_required_process(
+ COMMAND make distclean
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME config-${TARGET_TRIPLET}-dbg
+ )
+ vcpkg_execute_required_process(
+ COMMAND "${SOURCE_PATH}/configure" --prefix=${SOURCE_PATH}/build/release --enable-static=yes --disable-dependency-tracking --with-default-audio=coreaudio --with-module-suffix=.so
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME config-${TARGET_TRIPLET}-rel
+ )
+ message(STATUS "Configuring ${TARGET_TRIPLET}-rel done.")
+
+ message(STATUS "Installing ${TARGET_TRIPLET}-rel")
+ vcpkg_execute_required_process(
+ COMMAND make -j install
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME build-${TARGET_TRIPLET}-rel
+ )
+ message(STATUS "Installing ${TARGET_TRIPLET}-rel done.")
+
+ file(
+ INSTALL
+ "${SOURCE_PATH}/build/debug/include/fmt123.h"
+ "${SOURCE_PATH}/build/debug/include/mpg123.h"
+ "${SOURCE_PATH}/build/debug/include/out123.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include
+ )
+
+ file(
+ INSTALL
+ "${SOURCE_PATH}/build/debug/lib/libmpg123.a"
+ "${SOURCE_PATH}/build/debug/lib/libout123.a"
+ DESTINATION
+ ${CURRENT_INSTALLED_DIR}/debug/lib
+ )
+
+ file(
+ INSTALL
+ "${SOURCE_PATH}/build/release/lib/libmpg123.a"
+ "${SOURCE_PATH}/build/release/lib/libout123.a"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/lib
+ )
+endif()
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/mpg123 RENAME copyright)
diff --git a/ports/mpir/CONTROL b/ports/mpir/CONTROL
index fc15d9b41..22216d41d 100644
--- a/ports/mpir/CONTROL
+++ b/ports/mpir/CONTROL
@@ -1,3 +1,3 @@
-Source: mpir
-Version: 3.0.0-2
-Description: Multiple Precision Integers and Rationals. \ No newline at end of file
+Source: mpir
+Version: 3.0.0-4
+Description: Multiple Precision Integers and Rationals.
diff --git a/ports/mpir/enable-runtimelibrary-toggle.patch b/ports/mpir/enable-runtimelibrary-toggle.patch
new file mode 100644
index 000000000..d0260e869
--- /dev/null
+++ b/ports/mpir/enable-runtimelibrary-toggle.patch
@@ -0,0 +1,26 @@
+diff --git a/build.vc/mpir_debug_lib.props b/build.vc/mpir_debug_lib.props
+index b2fd57b..3937570 100644
+--- a/build.vc/mpir_debug_lib.props
++++ b/build.vc/mpir_debug_lib.props
+@@ -9,7 +9,7 @@
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <ObjectFileName>$(IntDir)dum\my\%(RelativeDir)</ObjectFileName>
+- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
++ <RuntimeLibrary>$(RuntimeLibrary)</RuntimeLibrary>
+ <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
+ </ClCompile>
+ <Link>
+diff --git a/build.vc/mpir_release_lib.props b/build.vc/mpir_release_lib.props
+index 6cdff3e..3937570 100644
+--- a/build.vc/mpir_release_lib.props
++++ b/build.vc/mpir_release_lib.props
+@@ -9,7 +9,7 @@
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <ObjectFileName>$(IntDir)dum\my\%(RelativeDir)</ObjectFileName>
+- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
++ <RuntimeLibrary>$(RuntimeLibrary)</RuntimeLibrary>
+ <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
+ </ClCompile>
+ <Link>
diff --git a/ports/mpir/portfile.cmake b/ports/mpir/portfile.cmake
index 1595a6533..c352b657a 100644
--- a/ports/mpir/portfile.cmake
+++ b/ports/mpir/portfile.cmake
@@ -1,81 +1,98 @@
-include(vcpkg_common_functions)
-
-set(MPIR_VERSION 3.0.0)
-set(MPIR_HASH "c735105db8b86db739fd915bf16064e6bc82d0565ad8858059e4e93f62c9d72d9a1c02a5ca9859b184346a8dc64fa714d4d61404cff1e405dc548cbd54d0a88e")
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mpir-${MPIR_VERSION})
-
-vcpkg_download_distfile(ARCHIVE_FILE
- URLS "http://mpir.org/mpir-${MPIR_VERSION}.tar.bz2"
- FILENAME "mpir-${MPIR_VERSION}.tar.bz2"
- SHA512 ${MPIR_HASH}
-)
-vcpkg_extract_source_archive(${ARCHIVE_FILE})
-
-if(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
- set(MSVC_VERSION 15)
-else()
- set(MSVC_VERSION 14)
-endif()
-
-if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
- vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_mpir_gc/dll_mpir_gc.vcxproj
- )
-else()
- vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_mpir_gc/lib_mpir_gc.vcxproj
- )
-endif()
-
-IF (VCPKG_TARGET_ARCHITECTURE MATCHES "x86")
- SET(BUILD_ARCH "Win32")
-ELSE()
- SET(BUILD_ARCH ${VCPKG_TARGET_ARCHITECTURE})
-ENDIF()
-
-if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
- file(INSTALL
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/gmp.h
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/gmpxx.h
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpir.h
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpirxx.h
- DESTINATION ${CURRENT_PACKAGES_DIR}/include
- )
- file(INSTALL
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpir.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
- )
- file(INSTALL
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Release/mpir.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin
- )
- file(INSTALL
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpir.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
- )
- file(INSTALL
- ${SOURCE_PATH}/dll/${BUILD_ARCH}/Release/mpir.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib
- )
- file(INSTALL ${SOURCE_PATH}/COPYING.lib DESTINATION ${CURRENT_PACKAGES_DIR}/share/mpir RENAME copyright)
- vcpkg_copy_pdbs()
-else()
- file(INSTALL
- ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/gmp.h
- ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/gmpxx.h
- ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/mpir.h
- ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/mpirxx.h
- DESTINATION ${CURRENT_PACKAGES_DIR}/include
- )
- file(INSTALL
- ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/mpir.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
- )
- file(INSTALL
- ${SOURCE_PATH}/lib/${BUILD_ARCH}/Release/mpir.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib
- )
- file(INSTALL ${SOURCE_PATH}/COPYING.lib DESTINATION ${CURRENT_PACKAGES_DIR}/share/mpir RENAME copyright)
-endif()
-
-message(STATUS "Installing done")
+include(vcpkg_common_functions)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "MPIR currently can only be built for desktop")
+endif()
+
+if(VCPKG_CRT_LINKAGE STREQUAL "static" AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message(FATAL_ERROR "MPIR currently can only be built using the dynamic CRT when building DLLs")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO wbhart/mpir
+ REF mpir-3.0.0
+ SHA512 7d37f60645c533a6638dde5d9c48f5535022fa0ea02bafd5b714649c70814e88c5e5e3b0bef4c5a749aaf8772531de89c331716ee00ba1c2f9521c2cc8f3c61b
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/enable-runtimelibrary-toggle.patch"
+)
+
+if(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
+ set(MSVC_VERSION 15)
+else()
+ set(MSVC_VERSION 14)
+endif()
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/dll_mpir_gc/dll_mpir_gc.vcxproj
+ )
+else()
+ if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ set(RuntimeLibraryExt "")
+ else()
+ set(RuntimeLibraryExt "DLL")
+ endif()
+ vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/build.vc${MSVC_VERSION}/lib_mpir_gc/lib_mpir_gc.vcxproj
+ OPTIONS_DEBUG "/p:RuntimeLibrary=MultiThreadedDebug${RuntimeLibraryExt}"
+ OPTIONS_RELEASE "/p:RuntimeLibrary=MultiThreaded${RuntimeLibraryExt}"
+ )
+endif()
+
+IF (VCPKG_TARGET_ARCHITECTURE MATCHES "x86")
+ SET(BUILD_ARCH "Win32")
+ELSE()
+ SET(BUILD_ARCH ${VCPKG_TARGET_ARCHITECTURE})
+ENDIF()
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ file(INSTALL
+ ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/gmp.h
+ ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/gmpxx.h
+ ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpir.h
+ ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpirxx.h
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpir.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/dll/${BUILD_ARCH}/Release/mpir.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/dll/${BUILD_ARCH}/Debug/mpir.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/dll/${BUILD_ARCH}/Release/mpir.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+ )
+else()
+ file(INSTALL
+ ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/gmp.h
+ ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/gmpxx.h
+ ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/mpir.h
+ ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/mpirxx.h
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/lib/${BUILD_ARCH}/Debug/mpir.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+ )
+ file(INSTALL
+ ${SOURCE_PATH}/lib/${BUILD_ARCH}/Release/mpir.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+ )
+endif()
+
+file(INSTALL ${SOURCE_PATH}/COPYING.lib DESTINATION ${CURRENT_PACKAGES_DIR}/share/mpir RENAME copyright)
+vcpkg_copy_pdbs()
+
+message(STATUS "Installing done")
diff --git a/ports/ms-gsl/CONTROL b/ports/ms-gsl/CONTROL
index c485497e3..68398fb19 100644
--- a/ports/ms-gsl/CONTROL
+++ b/ports/ms-gsl/CONTROL
@@ -1,3 +1,3 @@
Source: ms-gsl
-Version: 20170425-8b320e3f5d016f953e55dfc7ec8694c1349d3fe4
+Version: 2018-05-17
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 a5353e666..0a3518a8a 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 8b320e3f5d016f953e55dfc7ec8694c1349d3fe4
- SHA512 79d4ecc937cdce2acf79620f12c6d4592159f17aa23c0fd1e978cc571e84ee11d91bd9a45f975546447e1ba20878244312609396a52a76f18872b97ea024aa00
+ REF d6a2242d97827449f3f1c1c2e54214ceb9e80d62
+ SHA512 d98d294e6560bc47f6b30fddf046be2a97bf9091c6e096c2c699db582d0322260c825c2357df2d2e55d017973c17798dd1d994931403534570789883f1d00321
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/msgpack/CONTROL b/ports/msgpack/CONTROL
index de50a5575..7c9933d27 100644
--- a/ports/msgpack/CONTROL
+++ b/ports/msgpack/CONTROL
@@ -1,3 +1,3 @@
Source: msgpack
-Version: 2.1.1
+Version: 2.1.5-1
Description: MessagePack is an efficient binary serialization format, which lets you exchange data among multiple languages like JSON, except that it's faster and smaller.
diff --git a/ports/msgpack/add-static-lib-option.patch b/ports/msgpack/add-static-lib-option.patch
new file mode 100644
index 000000000..349a413fb
--- /dev/null
+++ b/ports/msgpack/add-static-lib-option.patch
@@ -0,0 +1,84 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f92363e..b0becbb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -196,27 +196,28 @@ IF (MSGPACK_ENABLE_SHARED)
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+ ENDIF ()
++IF (MSGPACK_ENABLE_STATIC)
++ ADD_LIBRARY (msgpackc-static STATIC
++ ${msgpackc_SOURCES}
++ ${msgpackc_HEADERS}
++ )
+
+-ADD_LIBRARY (msgpackc-static STATIC
+- ${msgpackc_SOURCES}
+- ${msgpackc_HEADERS}
+-)
+-
+-TARGET_INCLUDE_DIRECTORIES (msgpackc-static
+- PUBLIC
+- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+- $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
+- $<INSTALL_INTERFACE:include>
+- PRIVATE
+- ${CMAKE_CURRENT_SOURCE_DIR}
+-)
++ TARGET_INCLUDE_DIRECTORIES (msgpackc-static
++ PUBLIC
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
++ $<INSTALL_INTERFACE:include>
++ PRIVATE
++ ${CMAKE_CURRENT_SOURCE_DIR}
++ )
++ SET_TARGET_PROPERTIES (msgpackc-static PROPERTIES OUTPUT_NAME "msgpackc" COMPILE_DEFINITIONS MSGPACK_DLLEXPORT=)
++ENDIF ()
+
+-IF (NOT MSGPACK_ENABLE_SHARED)
++IF (MSGPACK_ENABLE_STATIC AND NOT MSGPACK_ENABLE_SHARED)
+ # Add alias for subdirectories
+ ADD_LIBRARY (msgpackc ALIAS msgpackc-static)
+ ENDIF ()
+
+-SET_TARGET_PROPERTIES (msgpackc-static PROPERTIES OUTPUT_NAME "msgpackc")
+ IF (MSGPACK_ENABLE_SHARED)
+ IF (MSVC)
+ SET_TARGET_PROPERTIES (msgpackc PROPERTIES IMPORT_SUFFIX "_import.lib")
+@@ -239,14 +240,18 @@ IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" ST
+ IF (MSGPACK_ENABLE_SHARED)
+ SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 -DPIC")
+ ENDIF ()
+- SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3" )
++ IF (MSGPACK_ENABLE_STATIC)
++ SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3" )
++ ENDIF ()
+ ENDIF ()
+
+ IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ IF (MSGPACK_ENABLE_SHARED)
+ SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags")
+ ENDIF ()
+- SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags")
++ IF (MSGPACK_ENABLE_STATIC)
++ SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags")
++ ENDIF ()
+ ENDIF ()
+
+ IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
+@@ -278,10 +283,12 @@ IF (MSGPACK_BUILD_EXAMPLES)
+ ADD_SUBDIRECTORY (example)
+ ENDIF ()
+
+-IF (MSGPACK_ENABLE_SHARED)
++IF (MSGPACK_ENABLE_SHARED AND MSGPACK_ENABLE_STATIC)
+ SET (MSGPACK_INSTALLTARGETS msgpackc msgpackc-static)
+-ELSE()
++ELSEIF (MSGPACK_ENABLE_STATIC)
+ SET (MSGPACK_INSTALLTARGETS msgpackc-static)
++ELSE ()
++ SET (MSGPACK_INSTALLTARGETS msgpackc)
+ ENDIF ()
+
+ INSTALL (TARGETS ${MSGPACK_INSTALLTARGETS} EXPORT msgpack-targets
diff --git a/ports/msgpack/portfile.cmake b/ports/msgpack/portfile.cmake
index 3beb72c5d..9328811dd 100644
--- a/ports/msgpack/portfile.cmake
+++ b/ports/msgpack/portfile.cmake
@@ -1,30 +1,34 @@
include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO msgpack/msgpack-c
+ REF cpp-2.1.5
+ SHA512 aab8357e494bb5aa7407b53e5e650382869ea95812a6677e085530d5f27cde6946fbfd0095b19608c75163dbb82de9ccb6a695234e7c03659fc6efc2da300e19
+ HEAD_REF master)
-set(MSGPACK_VERSION 2.1.1)
-set(MSGPACK_HASH 31ed6fda498d43da6fdbbe000ce36c40e4cf886f00d879c57d406def7f5bba4eaf66f02f221398cb50f6f4c748d5cde9c97eca0cfa21b368c7c933c3301cf9b5)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/msgpack-${MSGPACK_VERSION})
-
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/msgpack/msgpack-c/releases/download/cpp-${MSGPACK_VERSION}/msgpack-${MSGPACK_VERSION}.tar.gz"
- FILENAME "msgpack-${MSGPACK_VERSION}.tar.gz"
- SHA512 ${MSGPACK_HASH}
-)
-vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/add-static-lib-option.patch)
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(MSGPACK_ENABLE_SHARED OFF)
+ set(MSGPACK_ENABLE_STATIC ON)
else()
set(MSGPACK_ENABLE_SHARED ON)
+ set(MSGPACK_ENABLE_STATIC OFF)
endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
- OPTIONS -DMSGPACK_ENABLE_SHARED=${MSGPACK_ENABLE_SHARED}
-)
+ OPTIONS
+ -DMSGPACK_ENABLE_SHARED=${MSGPACK_ENABLE_SHARED}
+ -DMSGPACK_ENABLE_STATIC=${MSGPACK_ENABLE_STATIC}
+ -DMSGPACK_BUILD_EXAMPLES=OFF
+ -DMSGPACK_BUILD_TESTS=OFF)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/msgpack)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/msinttypes/CONTROL b/ports/msinttypes/CONTROL
new file mode 100644
index 000000000..8b9840e0b
--- /dev/null
+++ b/ports/msinttypes/CONTROL
@@ -0,0 +1,3 @@
+Source: msinttypes
+Version: 2018-02-25
+Description: msinttypes is a package to provide missing ISO C9x compliant headers for Microsoft Visual Studio
diff --git a/ports/msinttypes/portfile.cmake b/ports/msinttypes/portfile.cmake
new file mode 100644
index 000000000..9393ea5f9
--- /dev/null
+++ b/ports/msinttypes/portfile.cmake
@@ -0,0 +1,13 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO chemeris/msinttypes
+ REF f9e7c5758ed9e3b9f4b2394de1881c704dd79de0
+ SHA512 943ccb1245e41ad554908fd7664725f2aac929222bd823b375fbd2e8a4c4ffc42c268543c43a817b65dca047c3253d04527378ec3902e5e7df7f6ba5a736d6f3
+ HEAD_REF master
+)
+
+file(INSTALL ${SOURCE_PATH}/inttypes.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/msinttypes)
+file(INSTALL ${SOURCE_PATH}/stdint.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/msinttypes)
+file(INSTALL ${SOURCE_PATH}/stdint.h DESTINATION ${CURRENT_PACKAGES_DIR}/share/msinttypes RENAME copyright)
diff --git a/ports/msix/CMakeLists.txt b/ports/msix/CMakeLists.txt
new file mode 100644
index 000000000..4c193bbb3
--- /dev/null
+++ b/ports/msix/CMakeLists.txt
@@ -0,0 +1 @@
+add_custom_target(LIBS) \ No newline at end of file
diff --git a/ports/msix/CONTROL b/ports/msix/CONTROL
new file mode 100644
index 000000000..52ec64556
--- /dev/null
+++ b/ports/msix/CONTROL
@@ -0,0 +1,5 @@
+Source: msix
+Version: 1.0
+Build-Depends: xerces-c, zlib
+Description: The MSIX Packaging SDK project is an effort to enable developers on a variety of platforms to pack and unpack packages for the purposes of distribution from either the Microsoft Store, or their own content distribution networks.
+ The MSIX Packaging APIs that a client app would use to interact with .msix/.appx packages are a subset of those documented here. See sample/ExtractContentsSample/ExtractContentsSample.cpp for additional details.
diff --git a/ports/msix/install-cmake.patch b/ports/msix/install-cmake.patch
new file mode 100644
index 000000000..e44cc9b3c
--- /dev/null
+++ b/ports/msix/install-cmake.patch
@@ -0,0 +1,35 @@
+diff --git a/src/msix/CMakeLists.txt b/src/msix/CMakeLists.txt
+index 586c140..41a24ae 100644
+--- a/src/msix/CMakeLists.txt
++++ b/src/msix/CMakeLists.txt
+@@ -129,6 +129,17 @@ set(LIB_SOURCES
+ # Define the library
+ add_library(${LIBRARY_NAME} SHARED ${LIB_SOURCES} ${LIB_PUBLIC_HEADERS} ${LIB_PRIVATE_HEADERS})
+
++if(INSTALL_LIBMSIX)
++ install(TARGETS ${LIBRARY_NAME}
++ RUNTIME DESTINATION bin
++ LIBRARY DESTINATION lib
++ ARCHIVE DESTINATION lib
++ )
++ if(INSTALL_HEADERS)
++ install(FILES ${LIB_PUBLIC_HEADERS} DESTINATION include)
++ endif()
++endif()
++
+ # specify that this library is to be built with C++14
+ set_property(TARGET ${LIBRARY_NAME} PROPERTY CXX_STANDARD 14)
+
+@@ -149,8 +160,10 @@ include_directories(
+ ${CMAKE_PROJECT_ROOT}/lib/xerces/src
+ )
+
+-target_link_libraries(${PROJECT_NAME} PRIVATE zlibstatic)
+-target_link_libraries(${PROJECT_NAME} PRIVATE xerces-c)
++find_package(ZLIB REQUIRED)
++find_package(XercesC REQUIRED)
++target_link_libraries(${PROJECT_NAME} PRIVATE ZLIB::ZLIB)
++target_link_libraries(${PROJECT_NAME} PRIVATE XercesC::XercesC)
+
+ IF(AOSP)
+ target_link_libraries(${PROJECT_NAME} PRIVATE -latomic)
diff --git a/ports/msix/portfile.cmake b/ports/msix/portfile.cmake
new file mode 100644
index 000000000..552d57699
--- /dev/null
+++ b/ports/msix/portfile.cmake
@@ -0,0 +1,46 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message("msix only supports dynamic library linkage")
+ set(VCPKG_LIBRARY_LINKAGE "dynamic")
+endif()
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "msix only supports dynamic crt linkage")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Microsoft/msix-packaging
+ REF v1.0
+ SHA512 11abf60da3414ce59f4347df8b2872ad6aa8a3c1e077f6e0be5c66ce90f14340cec5e58c30fb42ed17a10d5296dc0718bb8cddd665bdc20359bf7f0be4b0b4dc
+ HEAD_REF master
+)
+
+file(REMOVE_RECURSE ${SOURCE_PATH}/lib)
+file(MAKE_DIRECTORY ${SOURCE_PATH}/lib)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/lib)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/install-cmake.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
+ -DWIN32=ON
+ -DINSTALL_LIBMSIX=ON
+ OPTIONS_RELEASE
+ -DINSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/msix RENAME copyright)
+
+vcpkg_copy_pdbs()
+
diff --git a/ports/msmpi/CONTROL b/ports/msmpi/CONTROL
index e17fd1c00..27e27074a 100644
--- a/ports/msmpi/CONTROL
+++ b/ports/msmpi/CONTROL
@@ -1,3 +1,3 @@
Source: msmpi
-Version: 8.0-1
+Version: 9.0
Description: Microsoft MPI
diff --git a/ports/msmpi/portfile.cmake b/ports/msmpi/portfile.cmake
index 6125a20f6..7933f2361 100644
--- a/ports/msmpi/portfile.cmake
+++ b/ports/msmpi/portfile.cmake
@@ -1,20 +1,28 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/msmpi-8.0)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/msmpi-8.1)
vcpkg_download_distfile(SDK_ARCHIVE
- URLS "https://download.microsoft.com/download/B/2/E/B2EB83FE-98C2-4156-834A-E1711E6884FB/msmpisdk.msi"
- FILENAME "msmpisdk-8.0.msi"
- SHA512 49c762873ba777ccb3c959a1d2ca1392e4c3c8d366e604ad707184ea432302e6649894ec6599162d0d40f3e6ebc0dada1eb9ca0da1cde0f6ba7a9b1847dac8c0
+ URLS "https://download.microsoft.com/download/2/E/C/2EC96D7F-687B-4613-80F6-E10F670A2D97/msmpisdk.msi"
+ FILENAME "msmpisdk-9.0.msi"
+ SHA512 f80cc7619c42a5a0975224c5a0ab6d4085a97ab9a1480318cd72db2f600db52fb81d3959a2a9e0dbd9412b02d0814b8191dd4745bbde397110210e05960628b4
)
+macro(download_msmpi_redistributable_package)
+ vcpkg_download_distfile(REDIST_ARCHIVE
+ URLS "https://download.microsoft.com/download/2/E/C/2EC96D7F-687B-4613-80F6-E10F670A2D97/msmpisetup.exe"
+ FILENAME "msmpisetup-9.0.exe"
+ SHA512 ad1cc3bc74e4c9c3c0f304395df9468e729e0acd9c77c8c6c806e88eadf4693811d29e608ffb459fcb6f4a20f61946ef4ac2e411aac49fb8f8d5aaddd10d4554
+ )
+endmacro()
+
### Check for correct version of installed redistributable package
# We always want the ProgramFiles folder even on a 64-bit machine (not the ProgramFilesx86 folder)
vcpkg_get_program_files_platform_bitness(PROGRAM_FILES_PLATFORM_BITNESS)
set(SYSTEM_MPIEXEC_FILEPATH "${PROGRAM_FILES_PLATFORM_BITNESS}/Microsoft MPI/Bin/mpiexec.exe")
-set(MSMPI_EXPECTED_FULL_VERSION "8.0.12438.0")
+set(MSMPI_EXPECTED_FULL_VERSION "9.0.12497")
-if(EXISTS ${SYSTEM_MPIEXEC_FILEPATH})
+if(EXISTS "${SYSTEM_MPIEXEC_FILEPATH}")
set(MPIEXEC_VERSION_LOGNAME "mpiexec-version")
vcpkg_execute_required_process(
COMMAND ${SYSTEM_MPIEXEC_FILEPATH}
@@ -23,12 +31,17 @@ if(EXISTS ${SYSTEM_MPIEXEC_FILEPATH})
)
file(READ ${CURRENT_BUILDTREES_DIR}/${MPIEXEC_VERSION_LOGNAME}-out.log MPIEXEC_OUTPUT)
- if(${MPIEXEC_OUTPUT} MATCHES "\\[Version ([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)\\]")
- if(NOT ${CMAKE_MATCH_1} STREQUAL ${MSMPI_EXPECTED_FULL_VERSION})
+ if(MPIEXEC_OUTPUT MATCHES "\\[Version ([0-9]+\\.[0-9]+\\.[0-9]+)\\.[0-9]+\\]")
+ if(NOT CMAKE_MATCH_1 STREQUAL MSMPI_EXPECTED_FULL_VERSION)
+ download_msmpi_redistributable_package()
+
message(FATAL_ERROR
" The version of the installed MSMPI redistributable packages does not match the version to be installed\n"
- " Expected version: ${MSMPI_EXPECTED_FULL_VERSION}\n"
- " Found version: ${CMAKE_MATCH_1}\n")
+ " Expected version: ${MSMPI_EXPECTED_FULL_VERSION}\n"
+ " Found version: ${CMAKE_MATCH_1}\n"
+ " Please upgrade the installed version on your system.\n"
+ " The appropriate installer for the expected version has been downloaded to:\n"
+ " ${REDIST_ARCHIVE}\n")
endif()
else()
message(FATAL_ERROR
@@ -38,11 +51,7 @@ if(EXISTS ${SYSTEM_MPIEXEC_FILEPATH})
" ${CURRENT_BUILDTREES_DIR}\\${MPIEXEC_VERSION_LOGNAME}-err.log\n")
endif()
else()
- vcpkg_download_distfile(REDIST_ARCHIVE
- URLS "https://download.microsoft.com/download/B/2/E/B2EB83FE-98C2-4156-834A-E1711E6884FB/MSMpiSetup.exe"
- FILENAME "MSMpiSetup-8.0.exe"
- SHA512 f5271255817f5417de8e432cd21e5ff3c617911a30b7777560c0ceb6f4031ace5fa88fc7675759ae0964bcf4e2076fe367a06c129f3a9ad06871a08bf95ed68b
- )
+ download_msmpi_redistributable_package()
message(FATAL_ERROR
" Could not find:\n"
@@ -56,8 +65,15 @@ file(TO_NATIVE_PATH "${SDK_ARCHIVE}" SDK_ARCHIVE)
file(TO_NATIVE_PATH "${SOURCE_PATH}/sdk" SDK_SOURCE_DIR)
file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/msiexec-${TARGET_TRIPLET}.log" MSIEXEC_LOG_PATH)
+set(PARAM_MSI "/a \"${SDK_ARCHIVE}\"")
+set(PARAM_LOG "/log \"${MSIEXEC_LOG_PATH}\"")
+set(PARAM_TARGET_DIR "TARGETDIR=\"${SDK_SOURCE_DIR}\"")
+set(SCRIPT_FILE ${CURRENT_BUILDTREES_DIR}/msiextract-msmpi.bat)
+# Write the command out to a script file and run that to avoid weird escaping behavior when spaces are present
+file(WRITE ${SCRIPT_FILE} "msiexec ${PARAM_MSI} /qn ${PARAM_LOG} ${PARAM_TARGET_DIR}")
+
vcpkg_execute_required_process(
- COMMAND msiexec /a ${SDK_ARCHIVE} /qn TARGETDIR=${SDK_SOURCE_DIR} /log "${MSIEXEC_LOG_PATH}"
+ COMMAND ${SCRIPT_FILE}
WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}
LOGNAME extract-sdk
)
@@ -86,7 +102,7 @@ file(INSTALL
DESTINATION
${CURRENT_PACKAGES_DIR}/lib
)
-if(${TRIPLET_SYSTEM_ARCH} STREQUAL "x86")
+if(TRIPLET_SYSTEM_ARCH STREQUAL "x86")
file(INSTALL
"${SOURCE_LIB_PATH}/${TRIPLET_SYSTEM_ARCH}/msmpifes.lib"
"${SOURCE_LIB_PATH}/${TRIPLET_SYSTEM_ARCH}/msmpifms.lib"
@@ -105,7 +121,7 @@ file(INSTALL
DESTINATION
${CURRENT_PACKAGES_DIR}/debug/lib
)
-if(${TRIPLET_SYSTEM_ARCH} STREQUAL "x86")
+if(TRIPLET_SYSTEM_ARCH STREQUAL "x86")
file(INSTALL
"${SOURCE_LIB_PATH}/${TRIPLET_SYSTEM_ARCH}/msmpifes.lib"
"${SOURCE_LIB_PATH}/${TRIPLET_SYSTEM_ARCH}/msmpifms.lib"
diff --git a/ports/mujs/CMakeLists.txt b/ports/mujs/CMakeLists.txt
new file mode 100644
index 000000000..639d2a965
--- /dev/null
+++ b/ports/mujs/CMakeLists.txt
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 3.9)
+project(mujs)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+file(GLOB libmujs_sources js*.c utf*.c regexp.c)
+
+include_directories(.)
+
+
+add_library(libmujs ${libmujs_sources})
+
+install(
+ TARGETS libmujs
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES mujs.h DESTINATION include)
+endif()
diff --git a/ports/mujs/CONTROL b/ports/mujs/CONTROL
new file mode 100644
index 000000000..bb9ab194f
--- /dev/null
+++ b/ports/mujs/CONTROL
@@ -0,0 +1,3 @@
+Source: mujs
+Version: 2018-05-17
+Description: An embeddable Javascript interpreter in C
diff --git a/ports/mujs/portfile.cmake b/ports/mujs/portfile.cmake
new file mode 100644
index 000000000..5724f4593
--- /dev/null
+++ b/ports/mujs/portfile.cmake
@@ -0,0 +1,27 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "building static")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ccxvii/mujs
+ REF cbdf814ee25841ce2130e6d58b0ac607b508f045
+ SHA512 7477d539c409985ca5849b7b7ef5f0dfd974f850b763bdbb1024faeda82a01eefdeb94ca6f7505f234e1670017d9e68b8d5de68f34124a83528b99301c02f03f
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+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()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/mujs RENAME copyright)
diff --git a/ports/muparser/CONTROL b/ports/muparser/CONTROL
new file mode 100644
index 000000000..547e7c67e
--- /dev/null
+++ b/ports/muparser/CONTROL
@@ -0,0 +1,3 @@
+Source: muparser
+Version: 6cf2746
+Description: Fast math parser library
diff --git a/ports/muparser/portfile.cmake b/ports/muparser/portfile.cmake
new file mode 100644
index 000000000..7afb8adb1
--- /dev/null
+++ b/ports/muparser/portfile.cmake
@@ -0,0 +1,25 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO beltoforion/muparser
+ REF 6cf2746f7ce3ecbe0fd91098a3c2123e5253bb0e
+ SHA512 a44720507806beb577fee9480102dbdcbf8b95612e8e51e1c57688c27e69f5fec0261beb03d034471519d8a4430954d74fdb626f63d21000160eeaa081a83861
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DENABLE_SAMPLES=OFF
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+
+file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/muparser RENAME copyright)
diff --git a/ports/nana/CONTROL b/ports/nana/CONTROL
index 96d79560f..41d7188b9 100644
--- a/ports/nana/CONTROL
+++ b/ports/nana/CONTROL
@@ -1,4 +1,4 @@
Source: nana
-Version: 1.4.1-66be23c9204c5567d1c51e6f57ba23bffa517a7c
+Version: 1.5.5
Description: Cross-platform library for GUI programming in modern C++ style.
-Build-Depends: zlib, libpng, libjpeg-turbo
+Build-Depends: libpng, libjpeg-turbo
diff --git a/ports/nana/fix-linking.patch b/ports/nana/fix-linking.patch
deleted file mode 100644
index f897ed228..000000000
--- a/ports/nana/fix-linking.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 5c9c9c9..ae35185 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -149,26 +149,20 @@ endif ()
- # Find PNG
- if(NANA_CMAKE_ENABLE_PNG)
- add_definitions(-DNANA_ENABLE_PNG)
-- set(NANA_LINKS "${NANA_LINKS} -lpng")
- if(NANA_CMAKE_LIBPNG_FROM_OS)
-- find_package(PNG)
-- if (PNG_FOUND)
-- include_directories( ${PNG_INCLUDE_DIRS})
-- add_definitions(-DUSE_LIBPNG_FROM_OS)
-- endif(PNG_FOUND)
-+ find_package(PNG REQUIRED)
-+ include_directories(${PNG_INCLUDE_DIRS})
-+ add_definitions(-DUSE_LIBPNG_FROM_OS)
- endif(NANA_CMAKE_LIBPNG_FROM_OS)
- endif(NANA_CMAKE_ENABLE_PNG)
-
- # Find JPEG
- if(NANA_CMAKE_ENABLE_JPEG)
- add_definitions(-DNANA_ENABLE_JPEG)
-- set(NANA_LINKS "${NANA_LINKS} -ljpeg")
- if(NANA_CMAKE_LIBJPEG_FROM_OS)
-- find_package(JPEG)
-- if (JPEG_FOUND)
-- include_directories( ${JPEG_INCLUDE_DIRS})
-- add_definitions(-DUSE_LIBJPEG_FROM_OS)
-- endif(JPEG_FOUND)
-+ find_package(JPEG REQUIRED)
-+ include_directories(${JPEG_INCLUDE_DIRS})
-+ add_definitions(-DUSE_LIBJPEG_FROM_OS)
- endif(NANA_CMAKE_LIBJPEG_FROM_OS)
- endif(NANA_CMAKE_ENABLE_JPEG)
-
-@@ -253,7 +247,12 @@ endforeach(subdir ${NANA_SOURCE_SUBDIRS})
-
- include_directories(${NANA_INCLUDE_DIR})
- add_library(${PROJECT_NAME} ${sources} )
--target_link_libraries(${PROJECT_NAME} ${NANA_LINKS})
-+if(NANA_CMAKE_ENABLE_JPEG AND NANA_CMAKE_LIBJPEG_FROM_OS)
-+ target_link_libraries(${PROJECT_NAME} ${JPEG_LIBRARIES})
-+endif()
-+if(NANA_CMAKE_ENABLE_PNG AND NANA_CMAKE_LIBPNG_FROM_OS)
-+ target_link_libraries(${PROJECT_NAME} ${PNG_LIBRARIES})
-+endif()
-
- # Headers: use INCLUDE_DIRECTORIES
- # Libraries: use FIND_LIBRARY and link with the result of it (try to avoid LINK_DIRECTORIES)
diff --git a/ports/nana/portfile.cmake b/ports/nana/portfile.cmake
index 117e41e23..fc492ee44 100644
--- a/ports/nana/portfile.cmake
+++ b/ports/nana/portfile.cmake
@@ -1,35 +1,28 @@
-include(vcpkg_common_functions)
+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)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO cnjinhao/nana
- REF 66be23c9204c5567d1c51e6f57ba23bffa517a7c
- SHA512 4f87acb51cc4bb2760402b33c81b6bd15a794b026dd31876a0ccc24a86f2c501b873f7bf3a57098e261fddc49d4935c39d13ae1595cb85b67bce337ae2fd3a0d
- HEAD_REF master
+ REF v1.5.5
+ SHA512 d28348b807e131f5868a162cf5b914523246ab5c4d4395186377f54dff9ad91199b13f640e05b5d959347ebfb570df79d5de39abfd690d8831034063422e3587
+ HEAD_REF develop
)
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-linking.patch")
-
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
- -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
+ -DMSVC_USE_STATIC_RUNTIME=OFF # dont override our settings
-DNANA_CMAKE_ENABLE_PNG=ON
-DNANA_CMAKE_ENABLE_JPEG=ON
OPTIONS_DEBUG
-DNANA_CMAKE_INSTALL_INCLUDES=OFF)
vcpkg_install_cmake()
-
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/nana.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
- file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/nana.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
-endif()
-
vcpkg_copy_pdbs()
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/nana)
diff --git a/ports/nanodbc/CONTROL b/ports/nanodbc/CONTROL
index 2611bac80..0343119a0 100644
--- a/ports/nanodbc/CONTROL
+++ b/ports/nanodbc/CONTROL
@@ -1,3 +1,3 @@
Source: nanodbc
-Version: 2.12.4
-Description: A small C++ wrapper for the native C ODBC API. \ No newline at end of file
+Version: 2.12.4-1
+Description: A small C++ wrapper for the native C ODBC API.
diff --git a/ports/nanomsg/CONTROL b/ports/nanomsg/CONTROL
new file mode 100644
index 000000000..c39df5e95
--- /dev/null
+++ b/ports/nanomsg/CONTROL
@@ -0,0 +1,4 @@
+Source: nanomsg
+Version: 1.1.2
+Description: a simple high-performance implementation of several "scalability protocols".
+ These scalability protocols are light-weight messaging protocols which can be used to solve a number of very common messaging patterns, such as request/reply, publish/subscribe, surveyor/respondent, and so forth. These protocols can run over a variety of transports such as TCP, UNIX sockets, and even WebSocket.
diff --git a/ports/nanomsg/portfile.cmake b/ports/nanomsg/portfile.cmake
new file mode 100644
index 000000000..a869baea4
--- /dev/null
+++ b/ports/nanomsg/portfile.cmake
@@ -0,0 +1,38 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO nanomsg/nanomsg
+ REF 1.1.2
+ SHA512 f95ce24b34c25d139cf3de46585f6354e0311a9d5e7135ad71df62b8bb5df26f81a58b9773c39c320df2d0e97cd2905a8576f9f00b0a4d33774f1b610271cee5
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" NN_STATIC_LIB)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE
+ -DNN_STATIC_LIB=${NN_STATIC_LIB}
+ -DNN_TESTS=OFF
+ -DNN_TOOLS=OFF
+ -DNN_ENABLE_DOC=OFF
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(READ ${CURRENT_PACKAGES_DIR}/include/nanomsg/nn.h _contents)
+ string(REPLACE "defined(NN_STATIC_LIB)" "1" _contents "${_contents}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/nanomsg/nn.h "${_contents}")
+endif()
+
+file(INSTALL
+ ${SOURCE_PATH}/COPYING
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/nanomsg RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/netcdf-c/CONTROL b/ports/netcdf-c/CONTROL
index 1303cb517..a7f3816ba 100644
--- a/ports/netcdf-c/CONTROL
+++ b/ports/netcdf-c/CONTROL
@@ -1,4 +1,4 @@
Source: netcdf-c
-Version: 4.4.1.1-1
+Version: 4.4.1.1-2
Build-Depends: hdf5, curl
Description: a set of self-describing, machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.
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/netcdf-cxx4/CONTROL b/ports/netcdf-cxx4/CONTROL
index 9fcda5468..a3b7278a6 100644
--- a/ports/netcdf-cxx4/CONTROL
+++ b/ports/netcdf-cxx4/CONTROL
@@ -1,4 +1,4 @@
Source: netcdf-cxx4
-Version: 4.3.0
+Version: 4.3.0-1
Build-Depends: netcdf-c
Description: a set of machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.
diff --git a/ports/nghttp2/CONTROL b/ports/nghttp2/CONTROL
new file mode 100644
index 000000000..0214aa9a3
--- /dev/null
+++ b/ports/nghttp2/CONTROL
@@ -0,0 +1,3 @@
+Source: nghttp2
+Version: 1.32.0
+Description: Implementation of the Hypertext Transfer Protocol version 2 in C
diff --git a/ports/nghttp2/enable-static.patch b/ports/nghttp2/enable-static.patch
new file mode 100644
index 000000000..18e58daeb
--- /dev/null
+++ b/ports/nghttp2/enable-static.patch
@@ -0,0 +1,27 @@
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index 17e422b..b2e7a6e 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -37,8 +37,8 @@ if(WIN32)
+ set(NGHTTP2_RES ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
+ endif()
+
+-# Public shared library
+-add_library(nghttp2 SHARED ${NGHTTP2_SOURCES} ${NGHTTP2_RES})
++# Public library
++add_library(nghttp2 ${NGHTTP2_SOURCES} ${NGHTTP2_RES})
+ set_target_properties(nghttp2 PROPERTIES
+ COMPILE_FLAGS "${WARNCFLAGS}"
+ VERSION ${LT_VERSION} SOVERSION ${LT_SOVERSION}
+@@ -49,6 +49,10 @@ target_include_directories(nghttp2 INTERFACE
+ "${CMAKE_CURRENT_SOURCE_DIR}/includes"
+ )
+
++if(NOT BUILD_SHARED_LIBS)
++ target_compile_definitions(nghttp2 PUBLIC "-DNGHTTP2_STATICLIB")
++endif()
++
+ if(HAVE_CUNIT OR ENABLE_STATIC_LIB)
+ # Static library (for unittests because of symbol visibility)
+ add_library(nghttp2_static STATIC ${NGHTTP2_SOURCES})
+
diff --git a/ports/nghttp2/portfile.cmake b/ports/nghttp2/portfile.cmake
new file mode 100644
index 000000000..c2caa520c
--- /dev/null
+++ b/ports/nghttp2/portfile.cmake
@@ -0,0 +1,50 @@
+include(vcpkg_common_functions)
+
+set(LIB_NAME nghttp2)
+set(LIB_VERSION 1.32.0)
+
+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 f5bd36230cd42bd544d75b71af44f2fa2798363ddc1efb05499f6c8e86d54acfe6fde20f3d544ed560324a30141408dba6bc7e03e5f03ee7f7df532fb21aecbd
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/enable-static.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ 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 4e65a9d93..b0eee2bf9 100644
--- a/ports/nlohmann-json/CONTROL
+++ b/ports/nlohmann-json/CONTROL
@@ -1,3 +1,3 @@
Source: nlohmann-json
-Version: 2.1.1
+Version: 3.1.2
Description: JSON for Modern C++
diff --git a/ports/nlohmann-json/portfile.cmake b/ports/nlohmann-json/portfile.cmake
index 8a8f5dc30..44f7a86dc 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.1.2)
-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 05df0ad3338f0bca885c0aa9da523922b99016986a9b01426b13888c0febd83bf1f6f063886f6c75f8a656ef79abac6292fe442dc05b1897d546ba5b70be48a5
+)
-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 0fdb404547467f4523579acde53066badf458504d33edbb6e39df0ae145ed27d48a720189a60c225c0aab05f2aa4ce4050dcb241b56dc693f7ee9f54c8728a75
+)
-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)
diff --git a/ports/nlopt/0001_export_symbols.patch b/ports/nlopt/0001_export_symbols.patch
new file mode 100644
index 000000000..8db70a139
--- /dev/null
+++ b/ports/nlopt/0001_export_symbols.patch
@@ -0,0 +1,25 @@
+From a8ab743870873066a66b30d68907ccc4ade250a5 Mon Sep 17 00:00:00 2001
+From: Mikhail Paulyshka <me@mixaill.tk>
+Date: Mon, 4 Sep 2017 01:25:38 +0300
+Subject: [PATCH] export symbols
+
+---
+ CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f630c18..c266b39 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -20,6 +20,8 @@ endif ()
+
+ project (nlopt)
+
++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
++
+ list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+
+ option (WITH_CXX "enable cxx routines" OFF)
+--
+2.12.2.windows.2
+
diff --git a/ports/nlopt/CONTROL b/ports/nlopt/CONTROL
new file mode 100644
index 000000000..22d763b0b
--- /dev/null
+++ b/ports/nlopt/CONTROL
@@ -0,0 +1,3 @@
+Source: nlopt
+Version: 2.4.2-c43afa08d~vcpkg1-1
+Description: a library for nonlinear local and global optimization, for functions with and without gradient information.
diff --git a/ports/nlopt/portfile.cmake b/ports/nlopt/portfile.cmake
new file mode 100644
index 000000000..f2370b0c0
--- /dev/null
+++ b/ports/nlopt/portfile.cmake
@@ -0,0 +1,30 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO stevengj/nlopt
+ REF c43afa08d4fe086d9c00c37924a6bd4c9de71816
+ SHA512 e063d748b040f081a648b33dadaf9b7deef63ff3be0cffd8988816701c18694202f5bcf06a18991f1f4b35014e3f406ffa4404d4036ff7625d3680bd5e24f8e4
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001_export_symbols.patch)
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/nlopt")
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/nmslib/CONTROL b/ports/nmslib/CONTROL
new file mode 100644
index 000000000..be3c8b486
--- /dev/null
+++ b/ports/nmslib/CONTROL
@@ -0,0 +1,8 @@
+Source: nmslib
+Version: 1.7.2
+Description: Non-Metric Space Library (NMSLIB) is an efficient similarity search library and a toolkit for evaluation of k-NN methods for generic non-metric spaces.
+#
+# ## Extras are currently unsupported for Windows, waiting for fixes.
+# Feature: extra
+# Description: Build extra algorithms and tools for nmslib. Note that this feature requires a large bunch of dependencies.
+# Build-Depends: gsl, eigen3, boost-system, boost-filesystem, boost-timer, boost-foreach, boost-format, boost-math, boost-random, boost-dynamic-bitset, boost-program-options
diff --git a/ports/nmslib/fix-cmake-order.patch b/ports/nmslib/fix-cmake-order.patch
new file mode 100644
index 000000000..8b465ae47
--- /dev/null
+++ b/ports/nmslib/fix-cmake-order.patch
@@ -0,0 +1,23 @@
+diff --git a/similarity_search/CMakeLists.txt b/similarity_search/CMakeLists.txt
+index 1451b30..a9f1616 100644
+--- a/similarity_search/CMakeLists.txt
++++ b/similarity_search/CMakeLists.txt
+@@ -109,9 +109,6 @@ if (WITH_EXTRAS)
+ message (FATAL_ERROR "Could not locate GSL.")
+ endif (GSL_FOUND)
+
+- include_directories (${PROJECT_SOURCE_DIR}/lshkit/include)
+- add_subdirectory (lshkit)
+-
+ find_package(Eigen3 3 REQUIRED)
+ if (EIGEN3_FOUND)
+ message (STATUS "Found Eigen3.")
+@@ -139,6 +136,8 @@ if (WITH_EXTRAS)
+ else ()
+ message (FATAL_ERROR "Could not locate BOOST.")
+ endif ()
++
++ add_subdirectory (lshkit)
+ endif()
+
+ add_subdirectory (src)
diff --git a/ports/nmslib/fix-headers.patch b/ports/nmslib/fix-headers.patch
new file mode 100644
index 000000000..92a8d6c36
--- /dev/null
+++ b/ports/nmslib/fix-headers.patch
@@ -0,0 +1,92 @@
+diff --git a/similarity_search/src/method/hnsw.cc b/similarity_search/src/method/hnsw.cc
+index 30a7c8a..5ca07c5 100644
+--- a/similarity_search/src/method/hnsw.cc
++++ b/similarity_search/src/method/hnsw.cc
+@@ -27,7 +27,7 @@
+ #include <iostream>
+ #include <memory>
+ // This is only for _mm_prefetch
+-#include <mmintrin.h>
++#include <xmmintrin.h>
+
+ #include "portable_simd.h"
+ #include "knnquery.h"
+diff --git a/similarity_search/src/method/hnsw_distfunc_opt.cc b/similarity_search/src/method/hnsw_distfunc_opt.cc
+index 168ee81..408d95d 100644
+--- a/similarity_search/src/method/hnsw_distfunc_opt.cc
++++ b/similarity_search/src/method/hnsw_distfunc_opt.cc
+@@ -30,7 +30,7 @@
+ #include "rangequery.h"
+ #include "portable_intrinsics.h"
+ // This is only for _mm_prefetch
+-#include <mmintrin.h>
++#include <xmmintrin.h>
+ #include "space.h"
+
+ #include "sort_arr_bi.h"
+diff --git a/similarity_search/src/method/pivot_neighb_invindx.cc b/similarity_search/src/method/pivot_neighb_invindx.cc
+index b6473bd..6dcb00f 100644
+--- a/similarity_search/src/method/pivot_neighb_invindx.cc
++++ b/similarity_search/src/method/pivot_neighb_invindx.cc
+@@ -21,7 +21,7 @@
+ #include <unordered_map>
+
+ // This is only for _mm_prefetch
+-#include <mmintrin.h>
++#include <xmmintrin.h>
+
+ #include "portable_simd.h"
+ #include "space.h"
+diff --git a/similarity_search/src/method/small_world_rand.cc b/similarity_search/src/method/small_world_rand.cc
+index 59e13f7..0f3e0b9 100644
+--- a/similarity_search/src/method/small_world_rand.cc
++++ b/similarity_search/src/method/small_world_rand.cc
+@@ -16,7 +16,7 @@
+ #include <memory>
+ #include <iostream>
+ // This is only for _mm_prefetch
+-#include <mmintrin.h>
++#include <xmmintrin.h>
+
+ #include "portable_simd.h"
+ #include "space.h"
+diff --git a/similarity_search/src/method/vptree.cc b/similarity_search/src/method/vptree.cc
+index d0262ad..0e5befc 100644
+--- a/similarity_search/src/method/vptree.cc
++++ b/similarity_search/src/method/vptree.cc
+@@ -20,7 +20,7 @@
+ #include <cmath>
+
+ // This is only for _mm_prefetch
+-#include <mmintrin.h>
++#include <xmmintrin.h>
+
+ #include "portable_simd.h"
+ #include "space.h"
+diff --git a/similarity_search/test/test_overlap.cc b/similarity_search/test/test_overlap.cc
+index 326b26b..413d66d 100644
+--- a/similarity_search/test/test_overlap.cc
++++ b/similarity_search/test/test_overlap.cc
+@@ -12,7 +12,6 @@
+ * Apache License Version 2.0 http://www.apache.org/licenses/.
+ *
+ */
+-#include <sys/time.h>
+
+ #include <logging.h>
+ #include <idtype.h>
+diff --git a/similarity_search/test/test_pow.cc b/similarity_search/test/test_pow.cc
+index 1b46a68..faaa84e 100644
+--- a/similarity_search/test/test_pow.cc
++++ b/similarity_search/test/test_pow.cc
+@@ -29,8 +29,8 @@ using namespace std;
+
+ const float MAX_REL_DIFF = 1e-6f;
+
+-vector<float> addExps = { 0, 0.125, 0.25, 0.5 };
+-vector<float> vals = { 0.1, 0.5, 1, 1.5, 2, 4};
++vector<float> addExps = { 0, 0.125f, 0.25f, 0.5f };
++vector<float> vals = { 0.1f, 0.5f, 1, 1.5f, 2, 4};
+ vector<float> signs = { 1, -1};
+
+ template <typename T> bool runTest() {
diff --git a/ports/nmslib/portfile.cmake b/ports/nmslib/portfile.cmake
new file mode 100644
index 000000000..8743aae80
--- /dev/null
+++ b/ports/nmslib/portfile.cmake
@@ -0,0 +1,60 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "nmslib only supports static linkage. Building statically.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO searchivarius/nmslib
+ REF v1.7.2
+ SHA512 2f910f752bfb1146aa8d1765fd5faf64d718a92ab7edf9d8ac0a2d9c4359d42b07b3cd553e2aff93da8b009add52ab9cce6b841f5175f57163f73f643ff62c19
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-headers.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-cmake-order.patch
+)
+
+set(WITH_EXTRAS OFF)
+if("extra" IN_LIST FEATURES)
+ set(WITH_EXTRAS ON)
+endif()
+
+# TODO: check SSE and AVX avability and set corresponding tags
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/similarity_search
+ OPTIONS
+ -DWITH_EXTRAS=${WITH_EXTRAS}
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+# Move headers into separate folder
+set(SUBFOLDERS factory method space)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include/nmslib)
+foreach(SUBFOLER ${SUBFOLDERS})
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include/nmslib/${SUBFOLER})
+endforeach()
+
+file(GLOB HEADERS ${CURRENT_PACKAGES_DIR}/include/*.h ${CURRENT_PACKAGES_DIR}/include/*/*.h)
+foreach(HEADER ${HEADERS})
+ string(REPLACE "${CURRENT_PACKAGES_DIR}/include" "${CURRENT_PACKAGES_DIR}/include/nmslib"
+ MOVED_HEADER ${HEADER})
+ file(RENAME ${HEADER} ${MOVED_HEADER})
+endforeach(HEADER ${HEADERS})
+
+foreach(SUBFOLER ${SUBFOLDERS})
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/${SUBFOLER}/)
+endforeach()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Put the license file where vcpkg expects it
+file(COPY ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/nmslib/)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/nmslib/README.md ${CURRENT_PACKAGES_DIR}/share/nmslib/copyright)
diff --git a/ports/nuklear/CONTROL b/ports/nuklear/CONTROL
new file mode 100644
index 000000000..ffc589cb1
--- /dev/null
+++ b/ports/nuklear/CONTROL
@@ -0,0 +1,3 @@
+Source: nuklear
+Version: 2018-05-17
+Description: This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain
diff --git a/ports/nuklear/portfile.cmake b/ports/nuklear/portfile.cmake
new file mode 100644
index 000000000..9ad603d7b
--- /dev/null
+++ b/ports/nuklear/portfile.cmake
@@ -0,0 +1,11 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO vurtun/nuklear
+ REF b1209dbb2e087dacb1d5224c3f85675cabbe2330
+ SHA512 940730caf6f3732c7846feaf48d3a91538985bc9f0c3b2fea66e395c99c1ca0c6252829152cac3d58dc04d39da19a9aa9b4d9134a6cd1a4ed2594931e22e0461
+ HEAD_REF master
+)
+file(INSTALL ${SOURCE_PATH}/nuklear.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/Readme.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/nuklear RENAME copyright)
+vcpkg_copy_pdbs()
diff --git a/ports/nvtt/CONTROL b/ports/nvtt/CONTROL
new file mode 100644
index 000000000..31ff5ecf4
--- /dev/null
+++ b/ports/nvtt/CONTROL
@@ -0,0 +1,3 @@
+Source: nvtt
+Version: 2.1.0
+Description: Texture processing tools with support for Direct3D 10 and 11 formats. \ No newline at end of file
diff --git a/ports/nvtt/portfile.cmake b/ports/nvtt/portfile.cmake
new file mode 100644
index 000000000..237a71b65
--- /dev/null
+++ b/ports/nvtt/portfile.cmake
@@ -0,0 +1,44 @@
+# 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(STATUS "Warning: Dynamic building not supported yet. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO castano/nvidia-texture-tools
+ REF 2.1.0
+ SHA512 6c5c9588af57023fc384de080cbe5c5ccd8707d04a9533384c606efd09730d780cb21bcf2d3576102a3facd2f281cacb2625958d74575e71550fd98da92e38b6
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DNVTT_SHARED=0
+)
+
+vcpkg_install_cmake()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+# Handle copyright
+file(REMOVE ${CURRENT_PACKAGES_DIR}/share/doc/nvtt/LICENSE)
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/nvtt)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/nvtt/LICENSE ${CURRENT_PACKAGES_DIR}/share/nvtt/copyright)
diff --git a/ports/octomap/CONTROL b/ports/octomap/CONTROL
index f54112669..6b26d7ef1 100644
--- a/ports/octomap/CONTROL
+++ b/ports/octomap/CONTROL
@@ -1,3 +1,3 @@
Source: octomap
-Version: cefed0c1d79afafa5aeb05273cf1246b093b771c-1
+Version: cefed0c1d79afafa5aeb05273cf1246b093b771c-2
Description: An Efficient Probabilistic 3D Mapping Framework Based on Octrees
diff --git a/ports/octomap/portfile.cmake b/ports/octomap/portfile.cmake
index 96b7a6386..099a1ed78 100644
--- a/ports/octomap/portfile.cmake
+++ b/ports/octomap/portfile.cmake
@@ -1,3 +1,8 @@
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message("Octomap does not currently support building purely static. Building dynamic instead.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
include(vcpkg_common_functions)
set(GIT_REF "cefed0c1d79afafa5aeb05273cf1246b093b771c")
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/octomap-${GIT_REF})
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..27c6d2f70
--- /dev/null
+++ b/ports/ogre/001-cmake-install-dir.patch
@@ -0,0 +1,38 @@
+--- 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
+--- a/cmake/InstallResources.cmake
++++ b/cmake/InstallResources.cmake
+@@ -241,10 +241,12 @@ endif ()
+ # Create the CMake package files
+ include(CMakePackageConfigHelpers)
+
+-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()
+ configure_package_config_file(${OGRE_TEMPLATES_DIR}/OGREConfig.cmake.in ${OGRE_BINARY_DIR}/cmake/OGREConfig.cmake
+ INSTALL_DESTINATION ${OGRE_CMAKE_DIR}
diff --git a/ports/ogre/CONTROL b/ports/ogre/CONTROL
index 40d9e2416..f7d93e7b2 100644
--- a/ports/ogre/CONTROL
+++ b/ports/ogre/CONTROL
@@ -1,4 +1,14 @@
Source: ogre
-Version: 1.9.0
+Version: 1.10.11
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..8281960c6 100644
--- a/ports/ogre/portfile.cmake
+++ b/ports/ogre/portfile.cmake
@@ -1,17 +1,17 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sinbad-ogre-dd30349ea667)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://bitbucket.org/sinbad/ogre/get/v1-9-0.zip"
- FILENAME "ogre-v1-9-0.zip"
- SHA512 de7315a2450ecf0d9073e6a8f0c54737e041016f7ad820556d10701c7d23eefab9d3473476a8e95447c30ab21518b8e4cfb0271db72494ea67a3dea284c9a3d3
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO OGRECave/ogre
+ REF v1.10.11
+ SHA512 2dfedd6f0a0de1a8c687c001439138b233200ca11e5c9940debf43d8a0380ca6472e0b5f4d599f0e22ca2049d0a5d34066ef41b6bc4912130694fa5d851fc900
+ HEAD_REF master
)
-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 +20,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}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/ogre RENAME copyright)
-vcpkg_copy_pdbs() \ No newline at end of file
+vcpkg_copy_pdbs()
diff --git a/ports/openal-soft/CONTROL b/ports/openal-soft/CONTROL
index e54c98e64..cd7078c08 100644
--- a/ports/openal-soft/CONTROL
+++ b/ports/openal-soft/CONTROL
@@ -1,3 +1,3 @@
Source: openal-soft
-Version: 1.17.2
-Description: OpenAL Soft is an LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API. \ No newline at end of file
+Version: 1.18.2-2
+Description: OpenAL Soft is an LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API.
diff --git a/ports/openal-soft/cmake-3-11.patch b/ports/openal-soft/cmake-3-11.patch
new file mode 100644
index 000000000..07f7e6936
--- /dev/null
+++ b/ports/openal-soft/cmake-3-11.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a871f4c..f9f6b34 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -965,7 +965,8 @@ OPTION(ALSOFT_REQUIRE_DSOUND "Require DirectSound backend" OFF)
+ OPTION(ALSOFT_REQUIRE_MMDEVAPI "Require MMDevApi backend" OFF)
+ IF(HAVE_WINDOWS_H)
+ # Check MMSystem backend
+- CHECK_INCLUDE_FILES("windows.h;mmsystem.h" HAVE_MMSYSTEM_H -D_WIN32_WINNT=0x0502)
++ set(CMAKE_REQUIRED_DEFINITIONS -D_WIN32_WINNT=0x0502)
++ CHECK_INCLUDE_FILES("windows.h;mmsystem.h" HAVE_MMSYSTEM_H)
+ IF(HAVE_MMSYSTEM_H)
+ CHECK_SHARED_FUNCTION_EXISTS(waveOutOpen "windows.h;mmsystem.h" winmm "" HAVE_LIBWINMM)
+ IF(HAVE_LIBWINMM)
diff --git a/ports/openal-soft/dont-export-symbols-in-static-build.patch b/ports/openal-soft/dont-export-symbols-in-static-build.patch
new file mode 100644
index 000000000..6663ad208
--- /dev/null
+++ b/ports/openal-soft/dont-export-symbols-in-static-build.patch
@@ -0,0 +1,13 @@
+diff --git a/config.h.in b/config.h.in
+index a71b54f..8d84645 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -1,6 +1,8 @@
+ /* API declaration export attribute */
++#ifndef AL_LIBTYPE_STATIC
+ #define AL_API ${EXPORT_DECL}
+ #define ALC_API ${EXPORT_DECL}
++#endif
+
+ /* Define any available alignment declaration */
+ #define ALIGN(x) ${ALIGN_DECL}
diff --git a/ports/openal-soft/portfile.cmake b/ports/openal-soft/portfile.cmake
index bfb8b4ffb..f35e81b4e 100644
--- a/ports/openal-soft/portfile.cmake
+++ b/ports/openal-soft/portfile.cmake
@@ -1,32 +1,81 @@
-if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- message(STATUS "Warning: Static building not supported yet. Building dynamic.")
- set(VCPKG_LIBRARY_LINKAGE dynamic)
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+ message(FATAL_ERROR "WindowsStore not supported")
endif()
+
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openal-soft-1.17.2)
-vcpkg_download_distfile(ARCHIVE
- URLS "http://openal-soft.org/openal-releases/openal-soft-1.17.2.tar.bz2"
- FILENAME "openal-soft-1.17.2.tar.bz2"
- MD5 1764e0d8fec499589b47ebc724e0913d
- SHA512 50c20cd3ddada55d91643a79c2894d5a14315d5fc1ed8e870e3d8d3f410e8b7d8da29b838226e7fce37fbeca719ff919b51806f72e4cd529a18fbe8bd68860e3
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO kcat/openal-soft
+ REF openal-soft-1.18.2
+ SHA512 85c62d3d16d2a371c1930310eed7219031203824289d9a30d60000f8e124ffa67e1bbfb15f1ba6841ef7346e88c000b9cca51c79d32c02e5dc9870392c536723
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/dont-export-symbols-in-static-build.patch
+ ${CMAKE_CURRENT_LIST_DIR}/cmake-3-11.patch
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(OPENAL_LIBTYPE "SHARED")
+else()
+ set(OPENAL_LIBTYPE "STATIC")
+endif()
+
+if(VCPKG_CMAKE_SYSTEM_NAME)
+ set(ALSOFT_REQUIRE_WINDOWS OFF)
+ set(ALSOFT_REQUIRE_LINUX ON)
+else()
+ set(ALSOFT_REQUIRE_WINDOWS ON)
+ set(ALSOFT_REQUIRE_LINUX OFF)
+endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
+ -DLIBTYPE=${OPENAL_LIBTYPE}
-DALSOFT_UTILS=OFF
-DALSOFT_NO_CONFIG_UTIL=ON
-DALSOFT_EXAMPLES=OFF
-DALSOFT_TESTS=OFF
-DALSOFT_CONFIG=OFF
-DALSOFT_HRTF_DEFS=OFF
+ -DALSOFT_AMBDEC_PRESETS=OFF
+ -DALSOFT_BACKEND_ALSA=${ALSOFT_REQUIRE_LINUX}
+ -DALSOFT_BACKEND_OSS=OFF
+ -DALSOFT_BACKEND_SOLARIS=OFF
+ -DALSOFT_BACKEND_SNDIO=OFF
+ -DALSOFT_BACKEND_QSA=OFF
+ -DALSOFT_BACKEND_PORTAUDIO=OFF
+ -DALSOFT_BACKEND_PULSEAUDIO=OFF
+ -DALSOFT_BACKEND_COREAUDIO=OFF
+ -DALSOFT_BACKEND_JACK=OFF
+ -DALSOFT_BACKEND_OPENSL=OFF
+ -DALSOFT_BACKEND_WAVE=ON
+ -DALSOFT_REQUIRE_WINMM=${ALSOFT_REQUIRE_WINDOWS}
+ -DALSOFT_REQUIRE_DSOUND=${ALSOFT_REQUIRE_WINDOWS}
+ -DALSOFT_REQUIRE_MMDEVAPI=${ALSOFT_REQUIRE_WINDOWS}
)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/OpenAL)
+foreach(HEADER al.h alc.h)
+ file(READ ${CURRENT_PACKAGES_DIR}/include/AL/${HEADER} AL_H)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ string(REPLACE "defined(AL_LIBTYPE_STATIC)" "1" AL_H "${AL_H}")
+ else()
+ string(REPLACE "defined(AL_LIBTYPE_STATIC)" "0" AL_H "${AL_H}")
+ endif()
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/AL/${HEADER} "${AL_H}")
+endforeach()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/openal-soft)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/openal-soft/COPYING ${CURRENT_PACKAGES_DIR}/share/openal-soft/copyright)
vcpkg_copy_pdbs()
-
diff --git a/ports/openblas/CONTROL b/ports/openblas/CONTROL
index 29c2cea0e..78617d700 100644
--- a/ports/openblas/CONTROL
+++ b/ports/openblas/CONTROL
@@ -1,3 +1,3 @@
Source: openblas
-Version: v0.2.19-1
+Version: 0.2.20-2
Description: OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
diff --git a/ports/openblas/install-openblas.patch b/ports/openblas/install-openblas.patch
index 7beb11af9..ef9574cdd 100644
--- a/ports/openblas/install-openblas.patch
+++ b/ports/openblas/install-openblas.patch
@@ -1,9 +1,9 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index ff42643..1a013ee 100644
+index a379f549..f95a872b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -13,7 +13,7 @@ enable_language(ASM)
- enable_language(C)
+@@ -16,7 +16,7 @@ enable_language(C)
+ include(GNUInstallDirs)
if(MSVC)
-set(OpenBLAS_LIBNAME libopenblas)
@@ -11,7 +11,7 @@ index ff42643..1a013ee 100644
else()
set(OpenBLAS_LIBNAME openblas)
endif()
-@@ -174,6 +174,10 @@ set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES
+@@ -197,6 +197,10 @@ set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES
SOVERSION ${OpenBLAS_MAJOR_VERSION}
)
diff --git a/ports/openblas/portfile.cmake b/ports/openblas/portfile.cmake
index f4bf66d15..463db0f25 100644
--- a/ports/openblas/portfile.cmake
+++ b/ports/openblas/portfile.cmake
@@ -12,43 +12,83 @@
include(vcpkg_common_functions)
-
if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
message(FATAL_ERROR "openblas can only be built for x64 currently")
endif()
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- message(WARNING "openblas only support dynamic link for msvc")
+ message("openblas currenly only supports dynamic library linkage")
set(VCPKG_LIBRARY_LINKAGE "dynamic")
endif()
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openblas-0.2.19)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://codeload.github.com/xianyi/OpenBLAS/zip/v0.2.19"
- FILENAME "openblas-v0.2.19.zip"
- SHA512 d95dcd1ca5b3bdc5355969d10c22486f7e32f7dfc3a418b5d0a979d030e9f2ed242d2d78267a5896aa83d27b6041e13ee4c6694f9a589765535011eb22dad9e2
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO xianyi/OpenBLAS
+ REF v0.2.20
+ SHA512 8dfc8e8c8d456b834d2e9544c8eadd9f4770e30db8b8dd76af601ec0735fd86c9cf63dd6a03ccd23fc02ec2e05069a09875b9073dfe29f99aadab3a958ae2634
+ HEAD_REF develop
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
- PATCHES "${CMAKE_CURRENT_LIST_DIR}/install-openblas.patch"
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/install-openblas.patch" "${CMAKE_CURRENT_LIST_DIR}/whitespace.patch"
)
+find_program(GIT NAMES git git.cmd)
+
+# sed and awk are installed with git but in a different directory
+get_filename_component(GIT_EXE_PATH ${GIT} DIRECTORY)
+set(SED_EXE_PATH "${GIT_EXE_PATH}/../usr/bin")
+
# openblas require perl to generate .def for exports
vcpkg_find_acquire_program(PERL)
get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
-set(ENV{PATH} "${PERL_EXE_PATH};$ENV{PATH}")
+set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH};${SED_EXE_PATH}")
-vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS -DTARGET=NEHALEM -DBUILD_WITHOUT_LAPACK=ON
- # PREFER_NINJA # Disable this option if project cannot be built with Ninja
- # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
- # OPTIONS_RELEASE -DOPTIMIZE=1
- # OPTIONS_DEBUG -DDEBUGGABLE=1
+# for UWP version, must build non uwp first for helper
+# binaries.
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(STATUS "Building Windows helper files")
+ set(TEMP_CMAKE_SYSTEM_NAME "${VCPKG_CMAKE_SYSTEM_NAME}")
+ set(TEMP_CMAKE_SYSTEM_VERSION "${VCPKG_CMAKE_SYSTEM_VERSION}")
+ set(TEMP_TARGET_TRIPLET "${TARGET_TRIPLET}")
+ unset(VCPKG_CMAKE_SYSTEM_NAME)
+ unset(VCPKG_CMAKE_SYSTEM_VERSION)
+ set(TARGET_TRIPLET "x64-windows")
+
+ vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS -DTARGET=NEHALEM -DBUILD_WITHOUT_LAPACK=ON
+ )
+
+ # add just built path to environment for gen_config_h.exe,
+ # getarch.exe and getarch_2nd.exe
+ set(ENV{PATH} "$ENV{PATH};${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+ # restore target build information
+ set(VCPKG_CMAKE_SYSTEM_NAME "${TEMP_CMAKE_SYSTEM_NAME}")
+ set(VCPKG_CMAKE_SYSTEM_VERSION "${TEMP_CMAKE_SYSTEM_VERSION}")
+ set(TARGET_TRIPLET "${TEMP_TARGET_TRIPLET}")
+
+ message(STATUS "Finished building Windows helper files")
+
+ vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS -DCMAKE_SYSTEM_PROCESSOR=AMD64 -DVS_WINRT_COMPONENT=TRUE -DBUILD_WITHOUT_LAPACK=ON
+ "-DBLASHELPER_BINARY_DIR=${CURRENT_BUILDTREES_DIR}/x64-windows-rel")
+
+else()
+ vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS -DTARGET=NEHALEM -DBUILD_WITHOUT_LAPACK=ON
+ # PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
+ # OPTIONS_RELEASE -DOPTIMIZE=1
+ # OPTIONS_DEBUG -DDEBUGGABLE=1
)
+endif()
+
vcpkg_install_cmake()
@@ -61,11 +101,13 @@ file(COPY ${SOURCE_PATH}/config.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
file(RENAME ${CURRENT_PACKAGES_DIR}/include/config.h ${CURRENT_PACKAGES_DIR}/include/openblas_config.h)
file(READ ${SOURCE_PATH}/cblas.h CBLAS_H)
-string(REPLACE "#include \"common.h\"" "#include \"openblas_common.h\"" CBLAS_H ${CBLAS_H})
-file(WRITE ${CURRENT_PACKAGES_DIR}/include/cblas.h ${CBLAS_H})
+string(REPLACE "#include \"common.h\"" "#include \"openblas_common.h\"" CBLAS_H "${CBLAS_H}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/cblas.h "${CBLAS_H}")
# openblas is BSD
-file(COPY ${CURRENT_BUILDTREES_DIR}/src/OpenBLAS-0.2.19/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openblas)
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openblas)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/openblas/LICENSE ${CURRENT_PACKAGES_DIR}/share/openblas/copyright)
vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/openblas/whitespace.patch b/ports/openblas/whitespace.patch
new file mode 100644
index 000000000..410e81655
--- /dev/null
+++ b/ports/openblas/whitespace.patch
@@ -0,0 +1,64 @@
+diff --git a/cmake/prebuild.cmake b/cmake/prebuild.cmake
+index 02ab708..b51bd0b 100644
+--- a/cmake/prebuild.cmake
++++ b/cmake/prebuild.cmake
+@@ -37,6 +37,10 @@
+
+ # CPUIDEMU = ../../cpuid/table.o
+
++if (NOT DEFINED BLASHELPER_BINARY_DIR)
++ set(BLASHELPER_BINARY_DIR "${PROJECT_BINARY_DIR}")
++endif ()
++
+ if (DEFINED CPUIDEMU)
+ set(EXFLAGS "-DCPUIDEMU -DVENDOR=99")
+ endif ()
+@@ -87,7 +87,7 @@ file(MAKE_DIRECTORY ${GETARCH_DIR})
+ if (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore")
+ try_compile(GETARCH_RESULT ${GETARCH_DIR}
+ SOURCES ${GETARCH_SRC}
+- COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} -I${PROJECT_SOURCE_DIR}
++ COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} -I"${PROJECT_SOURCE_DIR}"
+ OUTPUT_VARIABLE GETARCH_LOG
+ COPY_FILE ${PROJECT_BINARY_DIR}/${GETARCH_BIN}
+ )
+@@ -95,8 +99,8 @@ endif ()
+ message(STATUS "Running getarch")
+
+ # use the cmake binary w/ the -E param to run a shell command in a cross-platform way
+-execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH_BIN} 0 OUTPUT_VARIABLE GETARCH_MAKE_OUT)
+-execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH_BIN} 1 OUTPUT_VARIABLE GETARCH_CONF_OUT)
++execute_process(COMMAND ${BLASHELPER_BINARY_DIR}/${GETARCH_BIN} 0 OUTPUT_VARIABLE GETARCH_MAKE_OUT)
++execute_process(COMMAND ${BLASHELPER_BINARY_DIR}/${GETARCH_BIN} 1 OUTPUT_VARIABLE GETARCH_CONF_OUT)
+
+ message(STATUS "GETARCH results:\n${GETARCH_MAKE_OUT}")
+
+@@ -114,7 +114,7 @@ file(MAKE_DIRECTORY ${GETARCH2_DIR})
+ if (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore")
+ try_compile(GETARCH2_RESULT ${GETARCH2_DIR}
+ SOURCES ${PROJECT_SOURCE_DIR}/getarch_2nd.c
+- COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} ${GETARCH2_FLAGS} -I${PROJECT_SOURCE_DIR}
++ COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} ${GETARCH2_FLAGS} -I"${PROJECT_SOURCE_DIR}"
+ OUTPUT_VARIABLE GETARCH2_LOG
+ COPY_FILE ${PROJECT_BINARY_DIR}/${GETARCH2_BIN}
+ )
+@@ -121,8 +125,8 @@ if (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore")
+ endif ()
+
+ # use the cmake binary w/ the -E param to run a shell command in a cross-platform way
+-execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH2_BIN} 0 OUTPUT_VARIABLE GETARCH2_MAKE_OUT)
+-execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH2_BIN} 1 OUTPUT_VARIABLE GETARCH2_CONF_OUT)
++execute_process(COMMAND ${BLASHELPER_BINARY_DIR}/${GETARCH2_BIN} 0 OUTPUT_VARIABLE GETARCH2_MAKE_OUT)
++execute_process(COMMAND ${BLASHELPER_BINARY_DIR}/${GETARCH2_BIN} 1 OUTPUT_VARIABLE GETARCH2_CONF_OUT)
+
+ # append config data from getarch_2nd to the TARGET file and read in CMake vars
+ file(APPEND ${TARGET_CONF} ${GETARCH2_CONF_OUT})
+@@ -141,7 +141,7 @@ file(MAKE_DIRECTORY ${GEN_CONFIG_H_DIR})
+ if (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore")
+ try_compile(GEN_CONFIG_H_RESULT ${GEN_CONFIG_H_DIR}
+ SOURCES ${PROJECT_SOURCE_DIR}/gen_config_h.c
+- COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} ${GEN_CONFIG_H_FLAGS} -I${PROJECT_SOURCE_DIR}
++ COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} ${GEN_CONFIG_H_FLAGS} -I"${PROJECT_SOURCE_DIR}"
+ OUTPUT_VARIABLE GEN_CONFIG_H_LOG
+ COPY_FILE ${PROJECT_BINARY_DIR}/${GEN_CONFIG_H_BIN}
+ )
diff --git a/ports/opencl/CONTROL b/ports/opencl/CONTROL
new file mode 100644
index 000000000..89d4ad0e1
--- /dev/null
+++ b/ports/opencl/CONTROL
@@ -0,0 +1,3 @@
+Source: opencl
+Version: 2.2 (2017.07.18)
+Description: C/C++ headers and ICD loader (Installable Client Driver) for OpenCL
diff --git a/ports/opencl/portfile.cmake b/ports/opencl/portfile.cmake
new file mode 100644
index 000000000..f7e1bdd2f
--- /dev/null
+++ b/ports/opencl/portfile.cmake
@@ -0,0 +1,90 @@
+include(vcpkg_common_functions)
+
+# OpenCL C headers
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO KhronosGroup/OpenCL-Headers
+ REF f039db6764d52388658ef15c30b2237bbda49803
+ SHA512 5909a85f96477d731059528303435f06255e98ed8df9d4cd2b62c744b5fe41408c69c0d4068421a2813eb9ad9d70d7f1bace9ebf0db19cc09e71bb8066127c5f
+ HEAD_REF master
+)
+
+file(INSTALL
+ "${SOURCE_PATH}/opencl22/CL"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include
+)
+
+# OpenCL C++ headers
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO KhronosGroup/OpenCL-CLHPP
+ REF 5dd8bb9e32a8e2f72621566b296ac8143a554270
+ SHA512 2909fe2b979b52724ef8d285180d8bfd30bdd56cb79da4effc9e03b576ec7edb5497c99a9fa30541fe63037c84ddef21d4a73e7927f3813baab2a2afeecd55ab
+ HEAD_REF master
+)
+
+vcpkg_find_acquire_program(PYTHON3)
+
+vcpkg_execute_required_process(
+ COMMAND "${PYTHON3}" "${SOURCE_PATH}/gen_cl_hpp.py"
+ -i ${SOURCE_PATH}/input_cl.hpp
+ -o ${CURRENT_PACKAGES_DIR}/include/CL/cl.hpp
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME generate_clhpp-${TARGET_TRIPLET}
+)
+
+vcpkg_execute_required_process(
+ COMMAND "${PYTHON3}" "${SOURCE_PATH}/gen_cl_hpp.py"
+ -i ${SOURCE_PATH}/input_cl2.hpp
+ -o ${CURRENT_PACKAGES_DIR}/include/CL/cl2.hpp
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME generate_cl2hpp-${TARGET_TRIPLET}
+)
+message(STATUS "Generating OpenCL C++ headers done")
+
+# OpenCL ICD loader
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO KhronosGroup/OpenCL-ICD-Loader
+ REF 26a38983cbe5824fd5be03eab8d037758fc44360
+ SHA512 3029f758ff0c39b57aa10d881af68e73532fd179c54063ed1d4529b7d6e27a5219e3c24b7fb5598d790ebcdc2441e00001a963671dc90fef2fc377c76d724f54
+ HEAD_REF master
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message(STATUS "Building the ICD loader as a static library is not supported. Building as DLLs instead.")
+ set(VCPKG_LIBRARY_LINKAGE "dynamic")
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DOPENCL_INCLUDE_DIRS=${CURRENT_PACKAGES_DIR}/include
+)
+
+vcpkg_build_cmake(TARGET OpenCL)
+
+file(INSTALL
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/OpenCL.lib"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/lib
+)
+
+file(INSTALL
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/OpenCL.lib"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+file(INSTALL
+ "${SOURCE_PATH}/LICENSE.txt"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright
+)
+file(COPY
+ ${CMAKE_CURRENT_LIST_DIR}/usage
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/share/${PORT}
+)
diff --git a/ports/opencl/usage b/ports/opencl/usage
new file mode 100644
index 000000000..699ff0170
--- /dev/null
+++ b/ports/opencl/usage
@@ -0,0 +1,7 @@
+The package opencl is compatible with built-in CMake targets:
+
+ find_package(OpenCL REQUIRED)
+ target_link_libraries(main PRIVATE ${OpenCL_LIBRARIES})
+ target_include_directories(main PRIVATE ${OpenCL_INCLUDE_DIRS})
+
+You will also need to install an appropriate driver package from your CPU/GPU manufacturer.
diff --git a/ports/opencv/0001-winrt-fixes.patch b/ports/opencv/0001-winrt-fixes.patch
new file mode 100644
index 000000000..f913d92a4
--- /dev/null
+++ b/ports/opencv/0001-winrt-fixes.patch
@@ -0,0 +1,61 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -311,7 +311,7 @@ OCV_OPTION(INSTALL_TESTS "Install accuracy and performance test binar
+ # OpenCV build options
+ # ===================================================
+ OCV_OPTION(ENABLE_CCACHE "Use ccache" (UNIX AND NOT IOS AND (CMAKE_GENERATOR MATCHES "Makefile" OR CMAKE_GENERATOR MATCHES "Ninja")) )
+-OCV_OPTION(ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" ON IF (NOT IOS AND NOT CMAKE_CROSSCOMPILING) )
++OCV_OPTION(ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" ON IF (NOT IOS AND (MSVC OR NOT CMAKE_CROSSCOMPILING)) )
+ OCV_OPTION(ENABLE_SOLUTION_FOLDERS "Solution folder in Visual Studio or in other IDEs" (MSVC_IDE OR CMAKE_GENERATOR MATCHES Xcode) )
+ OCV_OPTION(ENABLE_PROFILING "Enable profiling in the GCC compiler (Add flags: -g -pg)" OFF IF CMAKE_COMPILER_IS_GNUCXX )
+ OCV_OPTION(ENABLE_COVERAGE "Enable coverage collection with GCov" OFF IF CMAKE_COMPILER_IS_GNUCXX )
+--- a/cmake/OpenCVModule.cmake
++++ b/cmake/OpenCVModule.cmake
+@@ -842,7 +842,7 @@ macro(ocv_create_module)
+ set(the_module_target ${the_module})
+ endif()
+
+- if(WINRT)
++ if(WINRT AND BUILD_TESTS)
+ # removing APPCONTAINER from modules to run from console
+ # in case of usual starting of WinRT test apps output is missing
+ # so starting of console version w/o APPCONTAINER is required to get test results
+--- a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp
++++ b/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp
+@@ -24,6 +24,7 @@
+ // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ // POSSIBILITY OF SUCH DAMAGE.
+
++#include "opencv2/core/cvdef.h"
+ using namespace Windows::UI::Xaml::Controls;
+
+ namespace cv
+diff --git a/modules/highgui/src/window_winrt_bridge.hpp b/modules/highgui/src/window_winrt_bridge.hpp
+index 25f4aef..5429f0b 100644
+--- a/modules/highgui/src/window_winrt_bridge.hpp
++++ b/modules/highgui/src/window_winrt_bridge.hpp
+@@ -28,6 +28,7 @@
+
+ #include <map>
+ #include <opencv2\core.hpp>
++#include "opencv2/highgui/highgui_c.h"
+
+ using namespace Windows::UI::Xaml::Controls;
+
+diff --git a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp
+index 236e227..e2417dc 100644
+--- a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp
++++ b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp
+@@ -94,10 +94,10 @@ Media::CaptureFrameGrabber::~CaptureFrameGrabber()
+
+ void Media::CaptureFrameGrabber::ShowCameraSettings()
+ {
+-#if WINAPI_FAMILY!=WINAPI_FAMILY_PHONE_APP
++#if (WINAPI_FAMILY!=WINAPI_FAMILY_PHONE_APP) && (WINAPI_FAMILY!=WINAPI_FAMILY_APP)
+ if (_state == State::Started)
+ {
+- CameraOptionsUI::Show(_capture.Get());
++ CameraOptionsUI::Show(_capture.Get()); // TODO: Turn it on again in UWP mode by adding reference to UWP Desktop Extensions
+ }
+ #endif
+ }
diff --git a/ports/opencv/opencv-installation-options.patch b/ports/opencv/0002-install-options.patch
index cfb401836..830c9f385 100644
--- a/ports/opencv/opencv-installation-options.patch
+++ b/ports/opencv/0002-install-options.patch
@@ -1,8 +1,6 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index cc45f6f..b4265bd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -263,6 +263,10 @@ OCV_OPTION(INSTALL_PYTHON_EXAMPLES "Install Python examples" OFF )
+@@ -307,6 +307,10 @@ OCV_OPTION(INSTALL_PYTHON_EXAMPLES "Install Python examples" OFF )
OCV_OPTION(INSTALL_ANDROID_EXAMPLES "Install Android examples" OFF IF ANDROID )
OCV_OPTION(INSTALL_TO_MANGLED_PATHS "Enables mangled install paths, that help with side by side installs." OFF IF (UNIX AND NOT ANDROID AND NOT APPLE_FRAMEWORK AND BUILD_SHARED_LIBS) )
OCV_OPTION(INSTALL_TESTS "Install accuracy and performance test binaries and test data" OFF)
@@ -10,12 +8,21 @@ index cc45f6f..b4265bd 100644
+OCV_OPTION(INSTALL_LICENSE "Install license file" ON)
+OCV_OPTION(INSTALL_OTHER "Install other files" ON)
+OCV_OPTION(INSTALL_FORCE_UNIX_PATHS "Force unix-style installation" OFF)
-
+
# OpenCV build options
# ===================================================
-@@ -330,7 +334,9 @@ else()
+@@ -335,7 +339,7 @@ OCV_OPTION(CV_ENABLE_INTRINSICS "Use intrinsic-based optimized code" ON )
+ OCV_OPTION(CV_DISABLE_OPTIMIZATION "Disable explicit optimized code (dispatched code/intrinsics/loop unrolling/etc)" OFF )
+ OCV_OPTION(CV_TRACE "Enable OpenCV code trace" ON)
+
+-OCV_OPTION(ENABLE_PYLINT "Add target with Pylint checks" (${BUILD_DOCS} OR ${BUILD_EXAMPLES}) IF (NOT CMAKE_CROSSCOMPILING AND NOT APPLE_FRAMEWORK) )
++OCV_OPTION(ENABLE_PYLINT "Add target with Pylint checks" (BUILD_DOCS OR BUILD_EXAMPLES) IF (NOT CMAKE_CROSSCOMPILING AND NOT APPLE_FRAMEWORK) )
+
+ if(ENABLE_IMPL_COLLECTION)
+ add_definitions(-DCV_COLLECT_IMPL_DATA)
+@@ -372,7 +376,9 @@ else()
endif()
-
+
if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
- if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH)
+ if(DEFINED OpenCV_DISABLE_ARCH_PATH)
@@ -24,29 +31,42 @@ index cc45f6f..b4265bd 100644
ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "${OpenCV_ARCH}/${OpenCV_RUNTIME}/")
else()
message(STATUS "Can't detect runtime and/or arch")
-@@ -784,7 +790,7 @@ if(NOT OPENCV_LICENSE_FILE)
+@@ -427,12 +433,8 @@ else()
+ ocv_update(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}")
+
+ if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
+- if(OpenCV_STATIC)
+- ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
+- else()
+- ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
+- endif()
+- ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
++ ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
++ ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
+ ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH samples)
+ ocv_update(OPENCV_JAR_INSTALL_PATH java)
+ ocv_update(OPENCV_OTHER_INSTALL_PATH etc)
+@@ -895,7 +897,7 @@ if(NOT OPENCV_LICENSE_FILE)
endif()
-
+
# for UNIX it does not make sense as LICENSE and readme will be part of the package automatically
-if(ANDROID OR NOT UNIX)
+if(ANDROID OR NOT UNIX AND INSTALL_LICENSE)
install(FILES ${OPENCV_LICENSE_FILE}
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
DESTINATION ./ COMPONENT libs)
-diff --git a/cmake/OpenCVGenConfig.cmake b/cmake/OpenCVGenConfig.cmake
-index 206acfd..b4c223e 100644
--- a/cmake/OpenCVGenConfig.cmake
+++ b/cmake/OpenCVGenConfig.cmake
-@@ -91,7 +91,7 @@ function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME)
+@@ -105,7 +105,7 @@ function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME)
endif()
endfunction()
-
--if(UNIX AND NOT ANDROID)
-+if((UNIX AND NOT ANDROID) OR INSTALL_FORCE_UNIX_PATHS)
+
+-if((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" OR UNIX) AND NOT ANDROID)
++if(((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" OR UNIX) AND NOT ANDROID) OR INSTALL_FORCE_UNIX_PATHS)
ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "" "")
endif()
-
-@@ -103,7 +103,7 @@ endif()
+
+@@ -117,7 +117,7 @@ endif()
# --------------------------------------------------------------------------------------------
# Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages
# --------------------------------------------------------------------------------------------
@@ -55,8 +75,6 @@ index 206acfd..b4c223e 100644
if(CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
if(BUILD_SHARED_LIBS)
set(_lib_suffix "lib")
-diff --git a/cmake/OpenCVGenHeaders.cmake b/cmake/OpenCVGenHeaders.cmake
-index 2988979..810871b 100644
--- a/cmake/OpenCVGenHeaders.cmake
+++ b/cmake/OpenCVGenHeaders.cmake
@@ -1,7 +1,9 @@
@@ -67,51 +85,45 @@ index 2988979..810871b 100644
+if(INSTALL_HEADERS)
+ install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/cvconfig.h" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev)
+endif()
-
- # ----------------------------------------------------------------------------
- # opencv_modules.hpp based on actual modules list
-@@ -25,4 +27,6 @@ set(OPENCV_MODULE_DEFINITIONS_CONFIGMAKE "${OPENCV_MODULE_DEFINITIONS_CONFIGMAKE
+
+ # platform-specific config file
+ ocv_compiler_optimization_fill_cpu_config()
+@@ -29,4 +31,6 @@ set(OPENCV_MODULE_DEFINITIONS_CONFIGMAKE "${OPENCV_MODULE_DEFINITIONS_CONFIGMAKE
#endforeach()
-
+
configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/opencv_modules.hpp.in" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/opencv_modules.hpp")
-install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/opencv_modules.hpp" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev)
+if(INSTALL_HEADERS)
+ install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/opencv_modules.hpp" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev)
+endif()
-diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake
-index 742a287..c8242dd 100644
--- a/cmake/OpenCVModule.cmake
+++ b/cmake/OpenCVModule.cmake
-@@ -880,7 +880,9 @@ macro(_ocv_create_module)
- foreach(hdr ${OPENCV_MODULE_${m}_HEADERS})
- string(REGEX REPLACE "^.*opencv2/" "opencv2/" hdr2 "${hdr}")
- if(NOT hdr2 MATCHES "opencv2/${m}/private.*" AND hdr2 MATCHES "^(opencv2/?.*)/[^/]+.h(..)?$" )
-- install(FILES ${hdr} OPTIONAL DESTINATION "${OPENCV_INCLUDE_INSTALL_PATH}/${CMAKE_MATCH_1}" COMPONENT dev)
-+ if(INSTALL_HEADERS)
-+ install(FILES ${hdr} OPTIONAL DESTINATION "${OPENCV_INCLUDE_INSTALL_PATH}/${CMAKE_MATCH_1}" COMPONENT dev)
-+ endif()
- endif()
- endforeach()
- endif()
-diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
-index 1f0d720..86b9d89 100644
+@@ -994,7 +994,9 @@ macro(_ocv_create_module)
+ foreach(hdr ${OPENCV_MODULE_${the_module}_HEADERS})
+ string(REGEX REPLACE "^.*opencv2/" "opencv2/" hdr2 "${hdr}")
+ if(NOT hdr2 MATCHES "private" AND hdr2 MATCHES "^(opencv2/?.*)/[^/]+.h(..)?$" )
+- install(FILES ${hdr} OPTIONAL DESTINATION "${OPENCV_INCLUDE_INSTALL_PATH}/${CMAKE_MATCH_1}" COMPONENT dev)
++ if(INSTALL_HEADERS)
++ install(FILES ${hdr} OPTIONAL DESTINATION "${OPENCV_INCLUDE_INSTALL_PATH}/${CMAKE_MATCH_1}" COMPONENT dev)
++ endif()
+ endif()
+ endforeach()
+ endif()
--- a/data/CMakeLists.txt
+++ b/data/CMakeLists.txt
@@ -1,8 +1,10 @@
file(GLOB HAAR_CASCADES haarcascades/*.xml)
file(GLOB LBP_CASCADES lbpcascades/*.xml)
-
+
-install(FILES ${HAAR_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/haarcascades COMPONENT libs)
-install(FILES ${LBP_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/lbpcascades COMPONENT libs)
+if(INSTALL_OTHER)
+ install(FILES ${HAAR_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/haarcascades COMPONENT libs)
+ install(FILES ${LBP_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/lbpcascades COMPONENT libs)
+endif()
-
+
if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH)
install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests")
-diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
-index b4e48e6..d5ed455 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -1,7 +1,9 @@
@@ -131,7 +143,3 @@ index b4e48e6..d5ed455 100644
+ DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2
+ COMPONENT dev)
+endif()
-\ No newline at end of file
---
-2.9.0.windows.1
-
diff --git a/ports/opencv/0003-disable-downloading.patch b/ports/opencv/0003-disable-downloading.patch
new file mode 100644
index 000000000..28b00251f
--- /dev/null
+++ b/ports/opencv/0003-disable-downloading.patch
@@ -0,0 +1,11 @@
+--- a/cmake/OpenCVDownload.cmake
++++ b/cmake/OpenCVDownload.cmake
+@@ -151,6 +151,8 @@ function(ocv_download)
+ # Download
+ if(NOT EXISTS "${CACHE_CANDIDATE}")
+ ocv_download_log("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"")
++ string(REPLACE "${OPENCV_DOWNLOAD_PATH}/" "opencv-cache/" CACHE_SUBPATH "${CACHE_CANDIDATE}")
++ message(FATAL_ERROR " Downloads are not permitted during configure. Please pre-download the file \"${CACHE_CANDIDATE}\":\n \n vcpkg_download_distfile(OCV_DOWNLOAD\n URLS \"${DL_URL}\"\n FILENAME \"${CACHE_SUBPATH}\"\n SHA512 0\n )")
+ file(DOWNLOAD "${DL_URL}" "${CACHE_CANDIDATE}"
+ INACTIVITY_TIMEOUT 60
+ TIMEOUT 600
diff --git a/ports/opencv/0004-use-find-package-required.patch b/ports/opencv/0004-use-find-package-required.patch
new file mode 100644
index 000000000..4e1daf659
--- /dev/null
+++ b/ports/opencv/0004-use-find-package-required.patch
@@ -0,0 +1,83 @@
+--- a/cmake/OpenCVFindLibsGrfmt.cmake
++++ b/cmake/OpenCVFindLibsGrfmt.cmake
+@@ -6,7 +6,7 @@
+ if(BUILD_ZLIB)
+ ocv_clear_vars(ZLIB_FOUND)
+ else()
+- find_package(ZLIB "${MIN_VER_ZLIB}")
++ find_package(ZLIB "${MIN_VER_ZLIB}" REQUIRED)
+ if(ZLIB_FOUND AND ANDROID)
+ if(ZLIB_LIBRARIES MATCHES "/usr/(lib|lib32|lib64)/libz.so$")
+ set(ZLIB_LIBRARIES z)
+@@ -30,7 +30,7 @@ if(WITH_JPEG)
+ if(BUILD_JPEG)
+ ocv_clear_vars(JPEG_FOUND)
+ else()
+- include(FindJPEG)
++ find_package(JPEG REQUIRED)
+ endif()
+
+ if(NOT JPEG_FOUND)
+@@ -51,7 +51,7 @@ if(WITH_TIFF)
+ if(BUILD_TIFF)
+ ocv_clear_vars(TIFF_FOUND)
+ else()
+- include(FindTIFF)
++ find_package(TIFF REQUIRED)
+ if(TIFF_FOUND)
+ ocv_parse_header("${TIFF_INCLUDE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION)
+ endif()
+@@ -94,7 +94,7 @@ if(WITH_WEBP)
+ if(BUILD_WEBP)
+ ocv_clear_vars(WEBP_FOUND WEBP_LIBRARY WEBP_LIBRARIES WEBP_INCLUDE_DIR)
+ else()
+- include(cmake/OpenCVFindWebP.cmake)
++ find_package(WebP REQUIRED)
+ if(WEBP_FOUND)
+ set(HAVE_WEBP 1)
+ endif()
+@@ -135,7 +135,7 @@ if(WITH_JASPER)
+ if(BUILD_JASPER)
+ ocv_clear_vars(JASPER_FOUND)
+ else()
+- include(FindJasper)
++ find_package(Jasper REQUIRED)
+ endif()
+
+ if(NOT JASPER_FOUND)
+@@ -159,7 +159,7 @@ if(WITH_PNG)
+ if(BUILD_PNG)
+ ocv_clear_vars(PNG_FOUND)
+ else()
+- include(FindPNG)
++ find_package(PNG REQUIRED)
+ if(PNG_FOUND)
+ include(CheckIncludeFile)
+ check_include_file("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" HAVE_LIBPNG_PNG_H)
+@@ -191,7 +191,7 @@ if(WITH_OPENEXR)
+ if(BUILD_OPENEXR)
+ ocv_clear_vars(OPENEXR_FOUND)
+ else()
+- include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake")
++ find_package(OpenEXR REQUIRED)
+ endif()
+
+ if(NOT OPENEXR_FOUND)
+@@ -207,7 +207,7 @@ endif()
+
+ # --- GDAL (optional) ---
+ if(WITH_GDAL)
+- find_package(GDAL QUIET)
++ find_package(GDAL REQUIRED)
+
+ if(NOT GDAL_FOUND)
+ set(HAVE_GDAL NO)
+@@ -219,7 +219,7 @@ if(WITH_GDAL)
+ endif()
+
+ if (WITH_GDCM)
+- find_package(GDCM QUIET)
++ find_package(GDCM REQUIRED)
+ if(NOT GDCM_FOUND)
+ set(HAVE_GDCM NO)
+ ocv_clear_vars(GDCM_VERSION GDCM_LIBRARIES)
diff --git a/ports/opencv/0005-remove-protobuf-target.patch b/ports/opencv/0005-remove-protobuf-target.patch
new file mode 100644
index 000000000..b538ee040
--- /dev/null
+++ b/ports/opencv/0005-remove-protobuf-target.patch
@@ -0,0 +1,31 @@
+--- a/cmake/OpenCVFindProtobuf.cmake
++++ b/cmake/OpenCVFindProtobuf.cmake
+@@ -44,17 +44,6 @@ else()
+ # end of compatibility block
+
+ if(Protobuf_FOUND)
+- if(TARGET protobuf::libprotobuf)
+- add_library(libprotobuf INTERFACE)
+- target_link_libraries(libprotobuf INTERFACE protobuf::libprotobuf)
+- else()
+- add_library(libprotobuf UNKNOWN IMPORTED)
+- set_target_properties(libprotobuf PROPERTIES
+- IMPORTED_LOCATION "${Protobuf_LIBRARY}"
+- INTERFACE_INCLUDE_DIRECTORIES "${Protobuf_INCLUDE_DIR}"
+- )
+- get_protobuf_version(Protobuf_VERSION "${Protobuf_INCLUDE_DIR}")
+- endif()
+ set(HAVE_PROTOBUF TRUE)
+ endif()
+ endif()
+--- a/modules/dnn/CMakeLists.txt
++++ b/modules/dnn/CMakeLists.txt
+@@ -65,7 +65,7 @@ endif()
+
+ ocv_module_include_directories(${fw_inc} ${CMAKE_CURRENT_LIST_DIR}/src/ocl4dnn/include ${OPENCL_INCLUDE_DIRS})
+ ocv_glob_module_sources(SOURCES ${fw_srcs})
+-ocv_create_module(libprotobuf ${LAPACK_LIBRARIES})
++ocv_create_module()
+ ocv_add_samples()
+ ocv_add_accuracy_tests()
+ ocv_add_perf_tests()
diff --git a/ports/opencv/001-fix-uwp.patch b/ports/opencv/001-fix-uwp.patch
deleted file mode 100644
index fa047ee4e..000000000
--- a/ports/opencv/001-fix-uwp.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff --git a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake
-index 0dcf7ed..c722a03 100644
---- "a/cmake/OpenCVCompilerOptions.cmake"
-+++ "b/cmake/OpenCVCompilerOptions.cmake"
-@@ -21,6 +21,9 @@ if(MSVC)
- string(REPLACE "/EHsc" "/EHa" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "Flags used by the compiler during all build types." FORCE)
- endif()
-+ if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
-+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /ZW")
-+ endif()
- endif()
-
- set(OPENCV_EXTRA_FLAGS "")
- diff --git "a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp" "b/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp"
-index f4147f3..498f414 100644
---- "a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp"
-+++ "b/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp"
-@@ -24,6 +24,8 @@
- // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- // POSSIBILITY OF SUCH DAMAGE.
-
-+#include "opencv2/core/cvdef.h"
-+
- using namespace Windows::UI::Xaml::Controls;
-
- namespace cv
-diff --git "a/modules/highgui/src/window_winrt_bridge.hpp" "b/modules/highgui/src/window_winrt_bridge.hpp"
-index 25f4aef..5429f0b 100644
---- "a/modules/highgui/src/window_winrt_bridge.hpp"
-+++ "b/modules/highgui/src/window_winrt_bridge.hpp"
-@@ -28,6 +28,7 @@
-
- #include <map>
- #include <opencv2\core.hpp>
-+#include "opencv2/highgui/highgui_c.h"
-
- using namespace Windows::UI::Xaml::Controls;
-
-diff --git "a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp" "b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp"
-index 236e227..9f5970e 100644
---- "a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp"
-+++ "b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp"
-@@ -94,10 +94,10 @@ Media::CaptureFrameGrabber::~CaptureFrameGrabber()
-
- void Media::CaptureFrameGrabber::ShowCameraSettings()
- {
--#if WINAPI_FAMILY!=WINAPI_FAMILY_PHONE_APP
-+#if (WINAPI_FAMILY!=WINAPI_FAMILY_PHONE_APP) && (WINAPI_FAMILY!=WINAPI_FAMILY_APP)
- if (_state == State::Started)
- {
-- CameraOptionsUI::Show(_capture.Get());
-+ CameraOptionsUI::Show(_capture.Get()); // TODO: Turn it back by adding reference to UWP Desktop Extensions
- }
- #endif
- }
- \ No newline at end of file
diff --git a/ports/opencv/002-fix-uwp.patch b/ports/opencv/002-fix-uwp.patch
deleted file mode 100644
index d684141f5..000000000
--- a/ports/opencv/002-fix-uwp.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b4265bd..f1621e0 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -271,7 +271,7 @@ OCV_OPTION(INSTALL_FORCE_UNIX_PATHS "Force unix-style installation" OFF)
- # OpenCV build options
- # ===================================================
- OCV_OPTION(ENABLE_CCACHE "Use ccache" (UNIX AND NOT IOS AND (CMAKE_GENERATOR MATCHES "Makefile" OR CMAKE_GENERATOR MATCHES "Ninja")) )
--OCV_OPTION(ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" ON IF (NOT IOS AND NOT CMAKE_CROSSCOMPILING) )
-+OCV_OPTION(ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" ON IF (NOT IOS AND (MSVC OR NOT CMAKE_CROSSCOMPILING)) )
- OCV_OPTION(ENABLE_SOLUTION_FOLDERS "Solution folder in Visual Studio or in other IDEs" (MSVC_IDE OR CMAKE_GENERATOR MATCHES Xcode) )
- OCV_OPTION(ENABLE_PROFILING "Enable profiling in the GCC compiler (Add flags: -g -pg)" OFF IF CMAKE_COMPILER_IS_GNUCXX )
- OCV_OPTION(ENABLE_COVERAGE "Enable coverage collection with GCov" OFF IF CMAKE_COMPILER_IS_GNUCXX )
-diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake
-index c8242dd..97edd14 100644
---- a/cmake/OpenCVModule.cmake
-+++ b/cmake/OpenCVModule.cmake
-@@ -730,7 +730,7 @@ macro(ocv_create_module)
- set(the_module_target ${the_module})
- endif()
-
-- if(WINRT)
-+ if(WINRT AND BUILD_TESTS)
- # removing APPCONTAINER from modules to run from console
- # in case of usual starting of WinRT test apps output is missing
- # so starting of console version w/o APPCONTAINER is required to get test results
-diff --git a/modules/highgui/src/window.cpp b/modules/highgui/src/window.cpp
-index 9306f8e..69a814e 100644
---- a/modules/highgui/src/window.cpp
-+++ b/modules/highgui/src/window.cpp
-@@ -209,7 +209,7 @@ int cv::waitKeyEx(int delay)
- int cv::waitKey(int delay)
- {
- int code = waitKeyEx(delay);
--#ifndef HAVE_WINRT
-+#ifndef WINRT
- static int use_legacy = -1;
- if (use_legacy < 0)
- {
diff --git a/ports/opencv/CONTROL b/ports/opencv/CONTROL
index 8da12f3d9..5450f3906 100644
--- a/ports/opencv/CONTROL
+++ b/ports/opencv/CONTROL
@@ -1,6 +1,78 @@
Source: opencv
-Version: 3.2.0-1
-Build-Depends: zlib, libpng, libjpeg-turbo, tiff
-#Use the following line instead for optional features from OpenCV-contrib that require protobuf
-#Build-Depends: zlib, libpng, libjpeg-turbo, tiff, protobuf
+Version: 3.4.1
+Build-Depends: zlib
Description: computer vision library
+Default-Features: opengl, jpeg, png, tiff, eigen, flann
+
+Feature: opengl
+Build-Depends: opengl
+Description: opengl support for opencv
+
+Feature: dnn
+Build-Depends: protobuf
+Description: opencv_dnn module
+
+Feature: ovis
+Build-Depends: ogre
+Description: opencv_ovis module
+
+Feature: flann
+Description: opencv_flann module
+
+Feature: sfm
+Build-Depends: eigen3, glog, gflags, ceres
+Description: opencv_sfm module
+
+Feature: contrib
+Build-Depends: opencv[flann]
+Description: opencv_contrib module
+
+Feature: cuda
+Build-Depends: cuda
+Description: CUDA support for opencv
+
+Feature: ffmpeg
+Description: prebuilt ffmpeg support for opencv
+
+Feature: ipp
+Description: Enable Intel Integrated Performance Primitives
+
+Feature: qt
+Build-Depends: qt5
+Description: Qt GUI support for opencv
+
+Feature: vtk
+Build-Depends: vtk
+Description: vtk support for opencv
+
+Feature: gdcm
+Build-Depends: gdcm2
+Description: GDCM support for opencv
+
+Feature: webp
+Build-Depends: libwebp
+Description: WebP support for opencv
+
+Feature: openexr
+Build-Depends: openexr
+Description: OpenEXR support for opencv
+
+Feature: tiff
+Build-Depends: tiff
+Description: TIFF support for opencv
+
+Feature: png
+Build-Depends: libpng
+Description: PNG support for opencv
+
+Feature: jpeg
+Build-Depends: libjpeg-turbo
+Description: JPEG support for opencv
+
+Feature: jasper
+Build-Depends: jasper
+Description: JPEG 2000 support for opencv
+
+Feature: eigen
+Build-Depends: eigen3
+Description: Eigen support for opencv
diff --git a/ports/opencv/open_contrib-remove-waldboost.patch b/ports/opencv/open_contrib-remove-waldboost.patch
deleted file mode 100644
index 6c4da30ae..000000000
--- a/ports/opencv/open_contrib-remove-waldboost.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/modules/xobjdetect/CMakeLists.txt b/modules/xobjdetect/CMakeLists.txt
-index 567909b..2f30b41 100644
---- a/modules/xobjdetect/CMakeLists.txt
-+++ b/modules/xobjdetect/CMakeLists.txt
-@@ -1,5 +1,2 @@
- set(the_description "Object detection algorithms")
- ocv_define_module(xobjdetect opencv_core opencv_imgproc opencv_highgui opencv_objdetect WRAP python)
--if (NOT APPLE_FRAMEWORK)
-- add_subdirectory(tools)
--endif()
---
-2.12.0.windows.1
-
diff --git a/ports/opencv/portfile.cmake b/ports/opencv/portfile.cmake
index c72eefba1..78ed5fa51 100644
--- a/ports/opencv/portfile.cmake
+++ b/ports/opencv/portfile.cmake
@@ -1,67 +1,313 @@
-if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- message(STATUS "Warning: Static building not supported yet. Building dynamic.")
- set(VCPKG_LIBRARY_LINKAGE dynamic)
-endif()
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/opencv-3.2.0)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/opencv/opencv/archive/3.2.0.zip"
- FILENAME "opencv-3.2.0.zip"
- SHA512 c6418d2a7654fe9d50611e756778df4c6736f2de76b85773efbf490bb475dd95ec1041fe57a87163ce11a7db44430cd378c8416af3319f979ced92532bf5ebb5
+
+set(OPENCV_PORT_VERSION "3.4.1")
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO opencv/opencv
+ REF ${OPENCV_PORT_VERSION}
+ SHA512 e1fc14285090c6fe9e26e721f2d67d7096650c523147e925567426ef76aa7f4c6f12035d6f6ce3ec7991a75a6828a810fd4f9b75f78ed5fcccecefbadd79944b
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
- PATCHES "${CMAKE_CURRENT_LIST_DIR}/opencv-installation-options.patch"
- "${CMAKE_CURRENT_LIST_DIR}/001-fix-uwp.patch"
- "${CMAKE_CURRENT_LIST_DIR}/002-fix-uwp.patch"
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/0001-winrt-fixes.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/0002-install-options.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/0003-disable-downloading.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/0004-use-find-package-required.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/0005-remove-protobuf-target.patch"
)
-file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty/libjpeg ${SOURCE_PATH}/3rdparty/libpng ${SOURCE_PATH}/3rdparty/zlib ${SOURCE_PATH}/3rdparty/libtiff)
-
-# Uncomment the following lines and the lines under OPTIONS to build opencv_contrib
-# Important: after uncommenting you've add protobuf dependency within CONTROL file
-#SET(CONTRIB_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/opencv_contrib-3.2.0)
-#vcpkg_download_distfile(CONTRIB_ARCHIVE
-# URLS "https://github.com/opencv/opencv_contrib/archive/3.2.0.zip"
-# FILENAME "opencv_contrib-3.2.0.zip"
-# SHA512 da6cda7a7ae1d722967e18f9b8d60895b93bbc3664dfdb1645cb4d8b337a9c4207b9073fd546a596c48a489f92d15191aa34c7c607167b536fbe4937b8424b43
-#)
-#vcpkg_extract_source_archive(${CONTRIB_ARCHIVE})
-#vcpkg_apply_patches(
-# SOURCE_PATH ${CONTRIB_SOURCE_PATH}
-# PATCHES "${CMAKE_CURRENT_LIST_DIR}/open_contrib-remove-waldboost.patch"
-#)
+
+file(WRITE "${CURRENT_BUILDTREES_DIR}/src/opencv-${OPENCV_PORT_VERSION}/rework.stamp")
+
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT)
+
+set(CMAKE_MODULE_PATH)
+
+set(BUILD_opencv_dnn OFF)
+set(WITH_PROTOBUF OFF)
+if("dnn" IN_LIST FEATURES)
+ set(BUILD_opencv_dnn ON)
+ set(WITH_PROTOBUF ON)
+ set(PROTOBUF_UPDATE_FILES ON)
+ set(UPDATE_PROTO_FILES ON)
+ vcpkg_download_distfile(TINYDNN_ARCHIVE
+ URLS "https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz"
+ FILENAME "opencv-cache/tiny_dnn/adb1c512e09ca2c7a6faef36f9c53e59-v1.0.0a3.tar.gz"
+ SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b
+ )
+endif()
+
+set(BUILD_opencv_flann OFF)
+if("flann" IN_LIST FEATURES)
+ set(BUILD_opencv_flann ON)
+endif()
+
+set(BUILD_opencv_ovis OFF)
+if("ovis" IN_LIST FEATURES)
+ set(BUILD_opencv_ovis ON)
+endif()
+
+set(BUILD_opencv_sfm OFF)
+if("sfm" IN_LIST FEATURES)
+ set(BUILD_opencv_sfm ON)
+endif()
+
+set(BUILD_opencv_contrib OFF)
+if("contrib" IN_LIST FEATURES)
+ set(BUILD_opencv_contrib ON)
+
+ # Used for opencv's face module
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat"
+ FILENAME "opencv-cache/data/7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat"
+ SHA512 c16e60a6c4bb4de3ab39b876ae3c3f320ea56f69c93e9303bd2dff8760841dcd71be4161fff8bc71e8fe4fe8747fa8465d49d6bd8f5ebcdaea161f4bc2da7c93
+ )
+
+ vcpkg_download_distfile(TINYDNN_ARCHIVE
+ URLS "https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz"
+ FILENAME "opencv-cache/tiny_dnn/adb1c512e09ca2c7a6faef36f9c53e59-v1.0.0a3.tar.gz"
+ SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b
+ )
+
+ function(download_opencv_3rdparty ID COMMIT HASH)
+ if(NOT EXISTS "${DOWNLOADS}/opencv-cache/${ID}/${COMMIT}.stamp")
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://github.com/opencv/opencv_3rdparty/archive/${COMMIT}.zip"
+ FILENAME "opencv_3rdparty-${COMMIT}.zip"
+ SHA512 ${HASH}
+ )
+ vcpkg_extract_source_archive(${OCV_DOWNLOAD})
+ file(MAKE_DIRECTORY "${DOWNLOADS}/opencv-cache/${ID}")
+ file(GLOB XFEATURES2D_I ${CURRENT_BUILDTREES_DIR}/src/opencv_3rdparty-${COMMIT}/*)
+ foreach(FILE ${XFEATURES2D_I})
+ file(COPY ${FILE} DESTINATION "${DOWNLOADS}/opencv-cache/${ID}")
+ get_filename_component(XFEATURES2D_I_NAME "${FILE}" NAME)
+ file(MD5 "${FILE}" FILE_HASH)
+ file(RENAME "${DOWNLOADS}/opencv-cache/${ID}/${XFEATURES2D_I_NAME}" "${DOWNLOADS}/opencv-cache/${ID}/${FILE_HASH}-${XFEATURES2D_I_NAME}")
+ endforeach()
+ file(WRITE "${DOWNLOADS}/opencv-cache/${ID}/${COMMIT}.stamp")
+ endif()
+ endfunction()
+
+ # Used for opencv's xfeature2d module
+ download_opencv_3rdparty(
+ xfeatures2d/boostdesc
+ 34e4206aef44d50e6bbcd0ab06354b52e7466d26
+ 2ccdc8fb59da55eabc73309a80a4d3b1e73e2341027cdcdd2d714e0f519e60f243f38f79b13ed3de32f595aa23e4f86418eed42e741f32a81b1e6e0879190601
+ )
+
+ # Used for opencv's xfeature2d module
+ download_opencv_3rdparty(
+ xfeatures2d/vgg
+ fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d
+ 7051f5d6ccb938d296b919dd6d5dcddc5afb527aed456639c9984276a8f64565c084d96a72499a7756f127f8d2b1ce9ab70e4cbb3f89c4e16f82296c2a15daed
+ )
+endif()
+
+set(WITH_CUDA OFF)
+if("cuda" IN_LIST FEATURES)
+ set(WITH_CUDA ON)
+endif()
+
+set(WITH_FFMPEG OFF)
+if("ffmpeg" IN_LIST FEATURES)
+ set(WITH_FFMPEG ON)
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll"
+ FILENAME "opencv-cache/ffmpeg/b8120c07962d591e2e9071a1bf566fd0-opencv_ffmpeg.dll"
+ SHA512 53325e3bb04de19273270475d7b7d9190c950b0d12e1179feef63c69ba66c9f8593d8ed9b030109dee8c104ab5babea69f18c7cae7366a57d48272d67c00d871
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg_64.dll"
+ FILENAME "opencv-cache/ffmpeg/dc9c50e7b05482acc25d6ce0ac61bf1d-opencv_ffmpeg_64.dll"
+ SHA512 7d90df6f5d141f842a45e5678cf1349657612321250ece4ad5c6b5fb28a50140735d91ced0ce1a6e81962ef87236cbd1669c0b4410308f70fccee341a7a5c28b
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/ffmpeg_version.cmake"
+ FILENAME "opencv-cache/ffmpeg/3b90f67f4b429e77d3da36698cef700c-ffmpeg_version.cmake"
+ SHA512 7d0142c30ac6f6260c1bcabc22753030fd25a708477fa28053e8df847c366967d3b93a8ac14af19a2b7b73d9f8241749a431458faf21a0c8efc7d6d99eecfdcf
+ )
+endif()
+
+set(WITH_IPP OFF)
+if("ipp" IN_LIST FEATURES)
+ set(WITH_IPP ON)
+
+ if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ vcpkg_download_distfile(IPPICV_ARCHIVE
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/dfe3162c237af211e98b8960018b564bc209261d/ippicv/ippicv_2017u3_win_intel64_general_20170822.zip"
+ FILENAME "opencv-cache/ippicv/0421e642bc7ad741a2236d3ec4190bdd-ippicv_2017u3_win_intel64_general_20170822.zip"
+ SHA512 1b2b66ac60e5b6ba2fc95a3839d09b7fcfb42628dc6e01648727ee5394f6405702f69f741371627a9e1690294147c730196f1c9872339301c92a1424f159df6c
+ )
+ else()
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/dfe3162c237af211e98b8960018b564bc209261d/ippicv/ippicv_2017u3_win_ia32_general_20170822.zip"
+ FILENAME "opencv-cache/ippicv/8a7680ae352c192de2e2e34936164bd0-ippicv_2017u3_win_ia32_general_20170822.zip"
+ SHA512 6bbe08264b56117d4a00118088d72274396964bb904fb0719fc48beeb458ac31bea3d4d2fa2e0449f55af42471758f2c090c82061c91985c8b7994ed3b71df81
+ )
+ endif()
+endif()
+
+set(WITH_QT OFF)
+if("qt" IN_LIST FEATURES)
+ set(WITH_QT ON)
+endif()
+
+set(WITH_VTK OFF)
+if("vtk" IN_LIST FEATURES)
+ set(WITH_VTK ON)
+endif()
+
+set(WITH_WEBP OFF)
+if("webp" IN_LIST FEATURES)
+ set(WITH_WEBP ON)
+ list(APPEND CMAKE_MODULE_PATH ${CURRENT_INSTALLED_DIR}/share/libwebp)
+endif()
+
+set(WITH_GDCM OFF)
+if("gdcm" IN_LIST FEATURES)
+ set(WITH_GDCM ON)
+endif()
+
+set(WITH_OPENGL OFF)
+if("opengl" IN_LIST FEATURES)
+ set(WITH_OPENGL ON)
+endif()
+
+set(WITH_OPENEXR OFF)
+if("openexr" IN_LIST FEATURES)
+ set(WITH_OPENEXR ON)
+ list(APPEND CMAKE_MODULE_PATH ${CURRENT_INSTALLED_DIR}/share/openexr)
+endif()
+
+set(WITH_MSMF ON)
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(WITH_MSMF OFF)
+endif()
+
+set(WITH_TIFF OFF)
+if("tiff" IN_LIST FEATURES)
+ set(WITH_TIFF ON)
+endif()
+
+set(WITH_JPEG OFF)
+if("jpeg" IN_LIST FEATURES)
+ set(WITH_JPEG ON)
+endif()
+
+set(WITH_JASPER OFF)
+if("jasper" IN_LIST FEATURES)
+ set(WITH_JASPER ON)
+endif()
+
+set(WITH_PNG OFF)
+if("png" IN_LIST FEATURES)
+ set(WITH_PNG ON)
+endif()
+
+set(WITH_EIGEN OFF)
+if("eigen" IN_LIST FEATURES)
+ set(WITH_EIGEN ON)
+endif()
+
+if(BUILD_opencv_contrib)
+ vcpkg_from_github(
+ OUT_SOURCE_PATH CONTRIB_SOURCE_PATH
+ REPO opencv/opencv_contrib
+ REF ${OPENCV_PORT_VERSION}
+ SHA512 431dfba0f413071d7faa18bc6e6f5e4f015285e2cc730c5dd69b2a4d6aa4250b7e0bcb1814ac6f06f5c76f103aea1f93f72f32aee6bc0cd7ddacdaf1f40075c1
+ HEAD_REF master
+ )
+ set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules")
+endif()
+
+set(WITH_ZLIB ON)
+set(BUILD_opencv_line_descriptor ON)
+set(BUILD_opencv_saliency ON)
+set(BUILD_opencv_bgsegm ON)
+if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm")
+ set(BUILD_opencv_line_descriptor OFF)
+ set(BUILD_opencv_saliency OFF)
+ set(BUILD_opencv_bgsegm OFF)
+endif()
+
+string(REPLACE ";" "\\\\\;" CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}")
vcpkg_configure_cmake(
+ PREFER_NINJA
SOURCE_PATH ${SOURCE_PATH}
OPTIONS
- -DBUILD_ZLIB=OFF
- -DBUILD_TIFF=OFF
- -DBUILD_JPEG=OFF
- -DBUILD_PNG=OFF
- -DBUILD_opencv_python2=OFF
- -DBUILD_opencv_python3=OFF
- -DBUILD_opencv_apps=OFF
+ # Ungrouped Entries
+ -DOpenCV_DISABLE_ARCH_PATH=ON
+ # Do not build docs/examples
-DBUILD_DOCS=OFF
-DBUILD_EXAMPLES=OFF
+ # Do not build integrated libraries, use external ones whenever possible
+ -DBUILD_JASPER=OFF
+ -DBUILD_JPEG=OFF
+ -DBUILD_OPENEXR=OFF
-DBUILD_PACKAGE=OFF
-DBUILD_PERF_TESTS=OFF
+ -DBUILD_PNG=OFF
+ -DBUILD_PROTOBUF=OFF
-DBUILD_TESTS=OFF
+ -DBUILD_TIFF=OFF
+ -DBUILD_WEBP=OFF
-DBUILD_WITH_DEBUG_INFO=ON
- -DOpenCV_DISABLE_ARCH_PATH=ON
- -DWITH_FFMPEG=OFF
+ -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT}
+ -DBUILD_ZLIB=OFF
+ # Select which OpenCV modules should be built
+ -DBUILD_opencv_apps=OFF
+ -DBUILD_opencv_bgsegm=${BUILD_opencv_bgsegm}
+ -DBUILD_opencv_dnn=${BUILD_opencv_dnn}
+ -DBUILD_opencv_flann=${BUILD_opencv_flann}
+ -DBUILD_opencv_line_descriptor=${BUILD_opencv_line_descriptor}
+ -DBUILD_opencv_ovis=${BUILD_opencv_ovis}
+ -DBUILD_opencv_python2=OFF
+ -DBUILD_opencv_python3=OFF
+ -DBUILD_opencv_saliency=${BUILD_opencv_saliency}
+ -DBUILD_opencv_sfm=${BUILD_opencv_sfm}
+ # PROTOBUF
+ -DPROTOBUF_UPDATE_FILES=${PROTOBUF_UPDATE_FILES}
+ -DUPDATE_PROTO_FILES=${UPDATE_PROTO_FILES}
+ # CMAKE
+ -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON
+ "-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}"
+ # ENABLE
+ -DENABLE_CXX11=ON
+ -DENABLE_PYLINT=OFF
+ # INSTALL
-DINSTALL_FORCE_UNIX_PATHS=ON
+ -DINSTALL_LICENSE=OFF
+ # OPENCV
-DOPENCV_CONFIG_INSTALL_PATH=share/opencv
+ "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache"
+ ${BUILD_WITH_CONTRIB_FLAG}
-DOPENCV_OTHER_INSTALL_PATH=share/opencv
- -DINSTALL_LICENSE=OFF
- -DWITH_CUDA=OFF
+ # WITH
-DWITH_CUBLAS=OFF
- -DWITH_OPENCLAMDBLAS=OFF
+ -DWITH_CUDA=${WITH_CUDA}
+ -DWITH_EIGEN=${WITH_EIGEN}
+ -DWITH_FFMPEG=${WITH_FFMPEG}
+ -DWITH_GDCM=${WITH_GDCM}
+ -DWITH_IPP=${WITH_IPP}
+ -DWITH_JASPER=${WITH_JASPER}
+ -DWITH_JPEG=${WITH_JPEG}
-DWITH_LAPACK=OFF
- #-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules # uncomment the following 3 lines to build opencv_contrib modules
- #-DBUILD_PROTOBUF=OFF
- #-DUPDATE_PROTO_FILES=ON
+ -DWITH_MSMF=${WITH_MSMF}
+ -DWITH_OPENCLAMDBLAS=OFF
+ -DWITH_OPENEXR=${WITH_OPENEXR}
+ -DWITH_OPENGL=${WITH_OPENGL}
+ -DWITH_PNG=${WITH_PNG}
+ -DWITH_PROTOBUF=${WITH_PROTOBUF}
+ -DWITH_QT=${WITH_QT}
+ -DWITH_TIFF=${WITH_TIFF}
+ -DWITH_VTK=${WITH_VTK}
+ -DWITH_WEBP=${WITH_WEBP}
+ -DWITH_ZLIB=${WITH_ZLIB}
OPTIONS_DEBUG
-DINSTALL_HEADERS=OFF
-DINSTALL_OTHER=OFF
@@ -69,13 +315,74 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
-file(READ ${CURRENT_PACKAGES_DIR}/debug/share/opencv/OpenCVModules-debug.cmake OPENCV_DEBUG_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" OPENCV_DEBUG_MODULE "${OPENCV_DEBUG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-debug.cmake "${OPENCV_DEBUG_MODULE}")
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/opencv/LICENSE ${CURRENT_PACKAGES_DIR}/share/opencv/copyright)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/LICENSE)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/LICENSE)
+
+if(VCPKG_PLATFORM_TOOLSET STREQUAL "v141")
+ set(OpenCV_RUNTIME vc15)
+else()
+ set(OpenCV_RUNTIME vc14)
+endif()
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(OpenCV_ARCH x64)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ set(OpenCV_ARCH ARM)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ set(OpenCV_ARCH ARM64)
+else()
+ set(OpenCV_ARCH x86)
+endif()
+
+file(GLOB BIN_AND_LIB ${CURRENT_PACKAGES_DIR}/${OpenCV_ARCH}/${OpenCV_RUNTIME}/*)
+file(COPY ${BIN_AND_LIB} DESTINATION ${CURRENT_PACKAGES_DIR})
+file(GLOB DEBUG_BIN_AND_LIB ${CURRENT_PACKAGES_DIR}/debug/${OpenCV_ARCH}/${OpenCV_RUNTIME}/*)
+file(COPY ${DEBUG_BIN_AND_LIB} DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/${OpenCV_ARCH})
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/${OpenCV_ARCH})
+
+file(GLOB STATICLIB ${CURRENT_PACKAGES_DIR}/staticlib/*)
+if(STATICLIB)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib)
+ file(COPY ${STATICLIB} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/staticlib)
+endif()
+file(GLOB STATICLIB ${CURRENT_PACKAGES_DIR}/debug/staticlib/*)
+if(STATICLIB)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib)
+ file(COPY ${STATICLIB} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/staticlib)
+endif()
+
+file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVConfig.cmake OPENCV_CONFIG)
+string(REPLACE "/staticlib/"
+ "/lib/" OPENCV_CONFIG "${OPENCV_CONFIG}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVConfig.cmake "${OPENCV_CONFIG}")
+
+file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-release.cmake OPENCV_CONFIG_LIB)
+string(REPLACE "/staticlib/"
+ "/lib/" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-release.cmake "${OPENCV_CONFIG_LIB}")
+
+file(READ ${CURRENT_PACKAGES_DIR}/debug/share/opencv/OpenCVModules-debug.cmake OPENCV_CONFIG_LIB)
+string(REPLACE "/staticlib/"
+ "/lib/" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}")
+string(REPLACE "PREFIX}/lib"
+ "PREFIX}/debug/lib" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}")
+string(REPLACE "PREFIX}/bin"
+ "PREFIX}/debug/bin" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-debug.cmake "${OPENCV_CONFIG_LIB}")
+
+file(RENAME ${CURRENT_PACKAGES_DIR}/debug/share/opencv/OpenCVModules.cmake ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/opencv/LICENSE ${CURRENT_PACKAGES_DIR}/share/opencv/copyright)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv)
vcpkg_copy_pdbs()
+
+set(VCPKG_LIBRARY_LINKAGE "dynamic")
+
+set(VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT enabled)
diff --git a/ports/opencv/usage b/ports/opencv/usage
new file mode 100644
index 000000000..1c30e5fea
--- /dev/null
+++ b/ports/opencv/usage
@@ -0,0 +1,5 @@
+The package opencv provides CMake integration:
+
+ find_package(OpenCV REQUIRED)
+ target_include_directories(main PRIVATE ${OpenCV_INCLUDE_DIRS})
+ target_link_libraries(main PRIVATE ${OpenCV_LIBS})
diff --git a/ports/openexr/CMakeLists.txt.patch b/ports/openexr/CMakeLists.txt.patch
new file mode 100644
index 000000000..0ee0110d5
--- /dev/null
+++ b/ports/openexr/CMakeLists.txt.patch
@@ -0,0 +1,86 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8c0a385..887ddf5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -157,8 +157,8 @@ IF (HAVE_SYSCONF_NPROCESSORS_ONLN)
+ FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_HAVE_SYSCONF_NPROCESSORS_ONLN 1\n" )
+ ENDIF()
+
+-SET (OPENEXR_LIBSUFFIX "")
+-SET (ILMBASE_LIBSUFFIX "")
++SET (OPENEXR_LIBSUFFIX "" CACHE STRING "Default suffix for OpenEXR")
++SET (ILMBASE_LIBSUFFIX "" CACHE STRING "Default suffix for ILMBase")
+ IF (NAMESPACE_VERSIONING)
+ SET ( OPENEXR_LIBSUFFIX "-${OPENEXR_VERSION_API}" )
+ # assume same NAMESPACE_VERSION setting for IlmBase for now
+@@ -188,32 +188,6 @@ SET_TARGET_PROPERTIES ( IlmImfUtil
+ SOVERSION 23
+ OUTPUT_NAME "IlmImfUtil${OPENEXR_LIBSUFFIX}"
+ )
+-
+-##########################
+-# Example Code
+-##########################
+-ADD_SUBDIRECTORY ( IlmImfExamples )
+-
+-
+-##########################
+-# Tests
+-##########################
+-ADD_SUBDIRECTORY ( IlmImfTest )
+-ADD_SUBDIRECTORY ( IlmImfUtilTest )
+-ADD_SUBDIRECTORY ( IlmImfFuzzTest )
+-
+-
+-##########################
+-# Binaries / Utilities
+-##########################
+-ADD_SUBDIRECTORY ( exrheader )
+-ADD_SUBDIRECTORY ( exrmaketiled )
+-ADD_SUBDIRECTORY ( exrstdattr )
+-ADD_SUBDIRECTORY ( exrmakepreview )
+-ADD_SUBDIRECTORY ( exrenvmap )
+-ADD_SUBDIRECTORY ( exrmultiview )
+-ADD_SUBDIRECTORY ( exrmultipart )
+-
+
+ ##########################
+ # Installation
+@@ -224,37 +198,3 @@ INSTALL ( FILES
+ DESTINATION
+ ${CMAKE_INSTALL_PREFIX}/include/OpenEXR
+ )
+-
+-# Documentation
+-INSTALL ( FILES
+- doc/TechnicalIntroduction.pdf
+- doc/ReadingAndWritingImageFiles.pdf
+- doc/OpenEXRFileLayout.pdf
+- doc/MultiViewOpenEXR.pdf
+- doc/InterpretingDeepPixels.pdf
+- doc/TheoryDeepPixels.pdf
+- DESTINATION
+- ${CMAKE_INSTALL_PREFIX}/share/doc/OpenEXR-${OPENEXR_VERSION}
+- )
+-
+-# Examples
+-INSTALL ( FILES
+- IlmImfExamples/main.cpp
+- IlmImfExamples/drawImage.cpp
+- IlmImfExamples/rgbaInterfaceExamples.cpp
+- IlmImfExamples/rgbaInterfaceTiledExamples.cpp
+- IlmImfExamples/generalInterfaceExamples.cpp
+- IlmImfExamples/lowLevelIoExamples.cpp
+- IlmImfExamples/previewImageExamples.cpp
+- IlmImfExamples/generalInterfaceTiledExamples.cpp
+- IlmImfExamples/generalInterfaceTiledExamples.h
+- IlmImfExamples/drawImage.h
+- IlmImfExamples/rgbaInterfaceExamples.h
+- IlmImfExamples/generalInterfaceExamples.h
+- IlmImfExamples/rgbaInterfaceTiledExamples.h
+- IlmImfExamples/lowLevelIoExamples.h
+- IlmImfExamples/previewImageExamples.h
+- IlmImfExamples/namespaceAlias.h
+- DESTINATION
+- ${CMAKE_INSTALL_PREFIX}/share/doc/OpenEXR-${OPENEXR_VERSION}/examples
+- )
diff --git a/ports/openexr/CONTROL b/ports/openexr/CONTROL
new file mode 100644
index 000000000..752dafc6d
--- /dev/null
+++ b/ports/openexr/CONTROL
@@ -0,0 +1,4 @@
+Source: openexr
+Version: 2.2.1-1
+Description: OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic for use in computer imaging applications
+Build-Depends: zlib, ilmbase
diff --git a/ports/openexr/FindOpenEXR.cmake b/ports/openexr/FindOpenEXR.cmake
new file mode 100644
index 000000000..cfff7824c
--- /dev/null
+++ b/ports/openexr/FindOpenEXR.cmake
@@ -0,0 +1,13 @@
+include(FindPackageHandleStandardArgs)
+
+find_path(OPENEXR_INCLUDE_PATHS NAMES ImfRgbaFile.h PATH_SUFFIXES OpenEXR)
+
+find_library(OPENEXR_HALF_LIBRARY NAMES Half)
+find_library(OPENEXR_IEX_LIBRARY NAMES Iex-2_2)
+find_library(OPENEXR_IMATH_LIBRARY NAMES Imath-2_2)
+find_library(OPENEXR_ILMIMF_LIBRARY NAMES IlmImf-2_2)
+find_library(OPENEXR_ILMTHREAD_LIBRARY NAMES IlmThread-2_2)
+
+set(OPENEXR_LIBRARIES ${OPENEXR_HALF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_ILMTHREAD_LIBRARY})
+
+find_package_handle_standard_args(OPENEXR REQUIRED_VARS OPENEXR_LIBRARIES OPENEXR_INCLUDE_PATHS)
diff --git a/ports/openexr/add-missing-export.patch b/ports/openexr/add-missing-export.patch
new file mode 100644
index 000000000..c78842d18
--- /dev/null
+++ b/ports/openexr/add-missing-export.patch
@@ -0,0 +1,13 @@
+diff --git a/IlmImf/ImfHeader.h b/IlmImf/ImfHeader.h
+index 756a62e..dd71e0e 100644
+--- a/IlmImf/ImfHeader.h
++++ b/IlmImf/ImfHeader.h
+@@ -493,7 +493,7 @@ class Header::ConstIterator
+ //
+ //------------------------------------------------------------------------
+
+-void staticInitialize ();
++IMF_EXPORT void staticInitialize ();
+
+
+ //-----------------
diff --git a/ports/openexr/fix-static-linking.patch b/ports/openexr/fix-static-linking.patch
new file mode 100644
index 000000000..af2f067f1
--- /dev/null
+++ b/ports/openexr/fix-static-linking.patch
@@ -0,0 +1,14 @@
+diff --git a/IlmImf/CMakeLists.txt b/IlmImf/CMakeLists.txt
+index 18d90edc..21bbaa27 100644
+--- a/IlmImf/CMakeLists.txt
++++ b/IlmImf/CMakeLists.txt
+@@ -25,8 +25,8 @@ ADD_EXECUTABLE ( dwaLookups
+
+ TARGET_LINK_LIBRARIES ( dwaLookups
+ Half
+- Iex${ILMBASE_LIBSUFFIX}
+ IlmThread${ILMBASE_LIBSUFFIX}
++ Iex${ILMBASE_LIBSUFFIX}
+ ${PTHREAD_LIB}
+ )
+
diff --git a/ports/openexr/portfile.cmake b/ports/openexr/portfile.cmake
new file mode 100644
index 000000000..b02a487a9
--- /dev/null
+++ b/ports/openexr/portfile.cmake
@@ -0,0 +1,63 @@
+set(OPENEXR_VERSION 2.2.1)
+set(OPENEXR_HASH 192100c6ac47534f3a93c55327d2ab90b07a8265156855086b326184328c257dcde12991b3f3f1831e2df4226fe884adcfe481c2f02a157c715aee665e89a480)
+
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openexr-${OPENEXR_VERSION})
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://download.savannah.nongnu.org/releases/openexr/openexr-${OPENEXR_VERSION}.tar.gz"
+ FILENAME "openexr-${OPENEXR_VERSION}.tar.gz"
+ SHA512 ${OPENEXR_HASH})
+
+vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/add-missing-export.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/fix-static-linking.patch"
+)
+
+# Ensure helper executables can run during build
+set(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin")
+
+# In debug build buildsystem cannot locate IlmBase headers
+set(VCPKG_C_FLAGS_DEBUG "${VCPKG_C_FLAGS_DEBUG}")
+set(VCPKG_CXX_FLAGS_DEBUG "${VCPKG_CXX_FLAGS_DEBUG} -I\"${CURRENT_INSTALLED_DIR}/include/OpenEXR\"")
+
+vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DILMBASE_PACKAGE_PREFIX=${CURRENT_INSTALLED_DIR}/debug
+ OPTIONS_RELEASE
+ -DILMBASE_PACKAGE_PREFIX=${CURRENT_INSTALLED_DIR})
+
+vcpkg_install_cmake()
+
+# if you need to have OpenEXR tools, edit CMakeLists.txt.patch and remove the part that disables building executables,
+# then remove the following line which deletes them and finally use vcpkg_copy_tool_dependencies() to save them
+# (may require additional patching to the OpenEXR toolchain which is really broken)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ foreach(SUBDIR "" "/debug")
+ file(GLOB DLLS ${CURRENT_PACKAGES_DIR}${SUBDIR}/lib/*.dll)
+ file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}${SUBDIR}/bin)
+ file(REMOVE ${DLLS})
+ endforeach()
+endif()
+
+vcpkg_copy_pdbs()
+
+file(READ ${CURRENT_PACKAGES_DIR}/include/OpenEXR/ImfExport.h HEADER_FILE)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ string(REPLACE "defined(OPENEXR_DLL)" "1" HEADER_FILE "${HEADER_FILE}")
+else()
+ string(REPLACE "defined(OPENEXR_DLL)" "0" HEADER_FILE "${HEADER_FILE}")
+endif()
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/OpenEXR/ImfExport.h "${HEADER_FILE}")
+
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openexr)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/openexr/LICENSE ${CURRENT_PACKAGES_DIR}/share/openexr/copyright)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindOpenEXR.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/openexr)
diff --git a/ports/opengl/CONTROL b/ports/opengl/CONTROL
index e2db823cf..365b908cf 100644
--- a/ports/opengl/CONTROL
+++ b/ports/opengl/CONTROL
@@ -1,3 +1,3 @@
Source: opengl
-Version: 0.0-3
-Description: Open Graphics Library (OpenGL)[3][4][5] is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. \ No newline at end of file
+Version: 0.0-5
+Description: Open Graphics Library (OpenGL)[3][4][5] is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics.
diff --git a/ports/opengl/portfile.cmake b/ports/opengl/portfile.cmake
index 2af9e6e3b..80df4ae74 100644
--- a/ports/opengl/portfile.cmake
+++ b/ports/opengl/portfile.cmake
@@ -1,41 +1,51 @@
include(vcpkg_common_functions)
-vcpkg_get_program_files_32_bit(PROGRAM_FILES_32_BIT)
-vcpkg_get_windows_sdk(WINDOWS_SDK)
+if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ vcpkg_get_program_files_32_bit(PROGRAM_FILES_32_BIT)
+ vcpkg_get_windows_sdk(WINDOWS_SDK)
-if (WINDOWS_SDK MATCHES "10.")
- set(OPENGLPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib")
- set(LICENSEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Licenses\\${WINDOWS_SDK}\\sdk_license.rtf")
- set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Include\\${WINDOWS_SDK}\\um")
-elseif(WINDOWS_SDK MATCHES "8.")
- set(OPENGLPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib")
- set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Include\\um")
-else()
- message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}")
-endif()
+ if (WINDOWS_SDK MATCHES "10.")
+ set(LIBGLFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib")
+ set(LIBGLUFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\GlU32.Lib")
+ set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Include\\${WINDOWS_SDK}\\um")
+ elseif(WINDOWS_SDK MATCHES "8.")
+ set(LIBGLFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib")
+ set(LIBGLUFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\GlU32.Lib")
+ set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Include\\um")
+ else()
+ message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}")
+ endif()
-if (NOT EXISTS "${OPENGLPATH}")
- message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${OPENGLPATH}")
-endif()
+ if (NOT EXISTS "${LIBGLFILEPATH}")
+ message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${LIBGLFILEPATH}")
+ endif()
-file(MAKE_DIRECTORY
- ${CURRENT_PACKAGES_DIR}/include/gl
- ${CURRENT_PACKAGES_DIR}/lib
- ${CURRENT_PACKAGES_DIR}/debug/lib
- ${CURRENT_PACKAGES_DIR}/share/opengl
-)
+ if (NOT EXISTS "${LIBGLUFILEPATH}")
+ message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${LIBGLUFILEPATH}")
+ endif()
-file(COPY
- "${HEADERSPATH}\\gl\\GL.h"
- "${HEADERSPATH}\\gl\\GLU.h"
- DESTINATION ${CURRENT_PACKAGES_DIR}/include/gl
+ file(MAKE_DIRECTORY
+ ${CURRENT_PACKAGES_DIR}/include/gl
+ ${CURRENT_PACKAGES_DIR}/lib
+ ${CURRENT_PACKAGES_DIR}/debug/lib
+ ${CURRENT_PACKAGES_DIR}/share/opengl
)
-file(COPY ${OPENGLPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
-file(COPY ${OPENGLPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
-if (DEFINED LICENSEPATH)
- file(COPY ${LICENSEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/opengl)
- file(WRITE ${CURRENT_PACKAGES_DIR}/share/opengl/copyright "See the accompanying sdk_license.rtf")
+ file(COPY
+ "${HEADERSPATH}\\gl\\GL.h"
+ "${HEADERSPATH}\\gl\\GLU.h"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include/gl
+ )
+ file(COPY ${LIBGLFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+ file(COPY ${LIBGLUFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+ file(COPY ${LIBGLFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+ file(COPY ${LIBGLUFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+
+ if (WINDOWS_SDK MATCHES "10.")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/opengl/copyright "See https://developer.microsoft.com/windows/downloads/windows-10-sdk for the Windows 10 SDK license")
+ elseif(WINDOWS_SDK MATCHES "8.")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/opengl/copyright "See https://developer.microsoft.com/windows/downloads/windows-8-1-sdk for the Windows 8.1 SDK license")
+ endif()
else()
- file(WRITE ${CURRENT_PACKAGES_DIR}/share/opengl/copyright "See https://developer.microsoft.com/en-us/windows/downloads/windows-8-1-sdk for the Windows 8.1 SDK license")
-endif() \ No newline at end of file
+ set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+endif()
diff --git a/ports/openimageio/CONTROL b/ports/openimageio/CONTROL
new file mode 100644
index 000000000..2639d87e9
--- /dev/null
+++ b/ports/openimageio/CONTROL
@@ -0,0 +1,4 @@
+Source: openimageio
+Version: Release-1.9.2dev
+Description: A library for reading and writing images, and a bunch of related classes, utilities, and application
+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, robin-map
diff --git a/ports/openimageio/portfile.cmake b/ports/openimageio/portfile.cmake
new file mode 100644
index 000000000..83d139f03
--- /dev/null
+++ b/ports/openimageio/portfile.cmake
@@ -0,0 +1,60 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO OpenImageIO/oiio
+ REF Release-1.9.2dev
+ SHA512 11293f09189f26a68e2e899e15081644c17f6ad1be070d090d9df133b98f7f30a09344a2b599c8b82dc8daba64847a9dfa278f9857bc110e975e9e06c3a2fa6f
+ HEAD_REF master
+)
+
+file(REMOVE_RECURSE "${SOURCE_PATH}/ext")
+file(MAKE_DIRECTORY "${SOURCE_PATH}/ext/robin-map/tsl")
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(BUILDSTATIC ON)
+ set(LINKSTATIC ON)
+else()
+ set(BUILDSTATIC OFF)
+ set(LINKSTATIC OFF)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DOIIO_BUILD_TOOLS=OFF
+ -DOIIO_BUILD_TESTS=OFF
+ -DHIDE_SYMBOLS=ON
+ -DUSE_FFMPEG=OFF
+ -DUSE_FIELD3D=OFF
+ -DUSE_FREETYPE=OFF
+ -DUSE_GIF=OFF
+ -DUSE_LIBRAW=OFF
+ -DUSE_NUKE=OFF
+ -DUSE_OCIO=OFF
+ -DUSE_OPENCV=OFF
+ -DUSE_OPENJPEG=OFF
+ -DUSE_PTEX=OFF
+ -DUSE_PYTHON=OFF
+ -DUSE_QT=OFF
+ -DBUILDSTATIC=${BUILDSTATIC}
+ -DLINKSTATIC=${LINKSTATIC}
+ -DBUILD_MISSING_PYBIND11=OFF
+ -DBUILD_MISSING_DEPS=OFF
+ -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+# Clean
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/doc)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/doc)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openimageio)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/openimageio/LICENSE ${CURRENT_PACKAGES_DIR}/share/openimageio/copyright)
diff --git a/ports/openjpeg/CONTROL b/ports/openjpeg/CONTROL
index cd2f0aaa8..1b7a3697d 100644
--- a/ports/openjpeg/CONTROL
+++ b/ports/openjpeg/CONTROL
@@ -1,3 +1,3 @@
Source: openjpeg
-Version: 2.1.2-1
+Version: 2.3.0
Description: JPEG 2000 image library
diff --git a/ports/openjpeg/portfile.cmake b/ports/openjpeg/portfile.cmake
index f48395997..de683a089 100644
--- a/ports/openjpeg/portfile.cmake
+++ b/ports/openjpeg/portfile.cmake
@@ -1,28 +1,34 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openjpeg-2.1.2)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/uclouvain/openjpeg/archive/v2.1.2.zip"
- FILENAME "openjpeg-2.1.2.zip"
- SHA512 45518b92b2a8e7218ab3efdebe1acf0437c01ab2e4d5769da17103a76ba38a7305fb36d0ceeca0576d53c071a3482d2d3f01d6e48a569191290bfba9274ef7b4
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO uclouvain/openjpeg
+ REF v2.3.0
+ SHA512 0a9d427be4a820b1d759fca4b50e293721b45fe4885aa61ca1ae09e099f75ed93520448090c780d62f51076d575cc03618cd6d5181bdb6b34e4fc07b4cfdd568
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS -DBUILD_CODEC:BOOL=OFF
-DOPENJPEG_INSTALL_PACKAGE_DIR=share/openjpeg
+ -DOPENJPEG_INSTALL_INCLUDE_DIR=include
)
vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-# Handle debug cmake config files (see https://github.com/Microsoft/vcpkg/issues/77)
-file(READ ${CURRENT_PACKAGES_DIR}/debug/share/openjpeg/OpenJPEGTargets-debug.cmake OPENJPEG_DEBUG_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" OPENJPEG_DEBUG_MODULE "${OPENJPEG_DEBUG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/openjpeg/OpenJPEGTargets-debug.cmake "${OPENJPEG_DEBUG_MODULE}")
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+vcpkg_fixup_cmake_targets()
+
+file(READ ${CURRENT_PACKAGES_DIR}/include/openjpeg.h OPENJPEG_H)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ string(REPLACE "defined(OPJ_STATIC)" "1" OPENJPEG_H "${OPENJPEG_H}")
+else()
+ string(REPLACE "defined(OPJ_STATIC)" "0" OPENJPEG_H "${OPENJPEG_H}")
+endif()
+string(REPLACE "defined(DLL_EXPORT)" "0" OPENJPEG_H "${OPENJPEG_H}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/openjpeg.h "${OPENJPEG_H}")
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openjpeg)
diff --git a/ports/openmama/CONTROL b/ports/openmama/CONTROL
new file mode 100644
index 000000000..fff50fb8a
--- /dev/null
+++ b/ports/openmama/CONTROL
@@ -0,0 +1,4 @@
+Source: openmama
+Version: 6.2.1-a5a93a24d2f89a0def0145552c8cd4a53c69e2de
+Build-Depends: libevent, apr, qpid-proton
+Description: OpenMAMA is a high performance vendor neutral lightweight wrapper that provides a common API interface to different middleware and messaging solutions across a variety of platforms and languages.
diff --git a/ports/openmama/portfile.cmake b/ports/openmama/portfile.cmake
new file mode 100644
index 000000000..2b7aedd49
--- /dev/null
+++ b/ports/openmama/portfile.cmake
@@ -0,0 +1,84 @@
+include(vcpkg_common_functions)
+
+vcpkg_find_acquire_program(FLEX)
+vcpkg_find_acquire_program(SCONS)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO OpenMAMA/OpenMAMA
+ REF 24bc69c07e3fdaf95351baea64a5fa87c15de6c9
+ SHA512 d660910fec772bad2ad2668066e5a03cb29cd40b6b443895967bb3b8ae12bbbdb8aa379a347bde7ecff81dad42e8149d2694cc542e41af17245d6ce227278afc
+ HEAD_REF next
+)
+
+set(OPENMAMA_TARGET_ARCH ${TRIPLET_SYSTEM_ARCH})
+if(${TRIPLET_SYSTEM_ARCH} STREQUAL x64)
+ set(OPENMAMA_TARGET_ARCH x86_64)
+endif()
+
+# Clean from any previous builds
+vcpkg_execute_required_process(
+ COMMAND ${SCONS}
+ -c
+ target_arch=${OPENMAMA_TARGET_ARCH}
+ libevent_home=${CURRENT_INSTALLED_DIR}
+ apr_home=${CURRENT_INSTALLED_DIR}
+ qpid_home=${CURRENT_INSTALLED_DIR}
+ vcpkg_build=y
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME clean-${TARGET_TRIPLET}.log
+)
+
+# This build
+vcpkg_execute_required_process(
+ COMMAND ${SCONS}
+ with_unittest=False
+ with_examples=False
+ product=mamda
+ lex=${FLEX}
+ middleware=qpid
+ buildtype=dynamic,dynamic-debug
+ prefix=\#install
+ with_dependency_runtimes=False
+ target_arch=${OPENMAMA_TARGET_ARCH}
+ libevent_home=${CURRENT_INSTALLED_DIR}
+ apr_home=${CURRENT_INSTALLED_DIR}
+ qpid_home=${CURRENT_INSTALLED_DIR}
+ vcpkg_build=y
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME build-${TARGET_TRIPLET}.log
+)
+
+# Remove dependency files which build system creates for convenience
+file(REMOVE ${SOURCE_PATH}/install/bin/dynamic/libapr-1.dll)
+file(REMOVE ${SOURCE_PATH}/install/bin/dynamic/libapr-1.pdb)
+file(REMOVE ${SOURCE_PATH}/install/bin/dynamic-debug/libapr-1.dll)
+file(REMOVE ${SOURCE_PATH}/install/bin/dynamic-debug/libapr-1.pdb)
+file(REMOVE ${SOURCE_PATH}/install/bin/dynamic/qpid-proton.dll)
+file(REMOVE ${SOURCE_PATH}/install/bin/dynamic-debug/qpid-protond.dll)
+
+# Custom install target - the build system doesn't really
+# do prefixes properly and it has a different directory
+# structure than vcpkg expects so reorganizing here
+file(COPY ${SOURCE_PATH}/install/include
+ DESTINATION ${CURRENT_PACKAGES_DIR})
+file(COPY ${SOURCE_PATH}/install/lib/dynamic/
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+file(COPY ${SOURCE_PATH}/install/lib/dynamic-debug/
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+file(COPY ${SOURCE_PATH}/install/bin/dynamic/
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+ FILES_MATCHING PATTERN "*.dll")
+file(COPY ${SOURCE_PATH}/install/bin/dynamic-debug/
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ FILES_MATCHING PATTERN "*.dll")
+
+# Copy across license files and copyright
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/openmama)
+file(COPY ${SOURCE_PATH}/install/LICENSE.md
+ ${SOURCE_PATH}/install/LICENSE-3RD-PARTY.txt
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/openmama/)
+file(COPY ${SOURCE_PATH}/install/LICENSE.md
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/openmama/copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/openmesh/CONTROL b/ports/openmesh/CONTROL
new file mode 100644
index 000000000..b803484eb
--- /dev/null
+++ b/ports/openmesh/CONTROL
@@ -0,0 +1,3 @@
+Source: openmesh
+Version: 6.3
+Description: A generic and efficient polygon mesh data structure
diff --git a/ports/openmesh/portfile.cmake b/ports/openmesh/portfile.cmake
new file mode 100644
index 000000000..f70773ceb
--- /dev/null
+++ b/ports/openmesh/portfile.cmake
@@ -0,0 +1,38 @@
+# 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/openmesh-6.3)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://www.openmesh.org/media/Releases/6.3/OpenMesh-6.3.tar.gz"
+ FILENAME "openmesh-6.3.tar.gz"
+ SHA512 2ef2dcd2e0abcb0c36a3a9abac433ef4d3430115498ff1134525b27a0f023d7e3bb0d80550f0c8b9658c87651594bce29138bdca05db57f02a5e99e2275c2c07
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS -DBUILD_APPS=OFF # [TODO]: add apps as feature, requires qt5 and freeglut
+ # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
+ # OPTIONS_RELEASE -DOPTIMIZE=1
+ # OPTIONS_DEBUG -DDEBUGGABLE=1
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/OpenMesh/Tools/VDPM/xpm)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openmesh RENAME copyright)
diff --git a/ports/openni2/CONTROL b/ports/openni2/CONTROL
new file mode 100644
index 000000000..26fcebaba
--- /dev/null
+++ b/ports/openni2/CONTROL
@@ -0,0 +1,4 @@
+Source: openni2
+Version: 2.2.0.33-7
+Build-Depends: kinectsdk1
+Description: OpenNI is open source library for access to Natural Interaction (NI) devices such as RGB-D camera.
diff --git a/ports/openni2/disable_kinect.patch b/ports/openni2/disable_kinect.patch
new file mode 100644
index 000000000..593ca079a
--- /dev/null
+++ b/ports/openni2/disable_kinect.patch
@@ -0,0 +1,40 @@
+diff --git a/OpenNI.sln b/OpenNI.sln
+index 9af176a..3786850 100644
+--- a/OpenNI.sln
++++ b/OpenNI.sln
+@@ -86,12 +86,6 @@ Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Install", "Packaging\Instal
+ {5B74F010-8B79-46B5-B906-C2B56CDB3386} = {5B74F010-8B79-46B5-B906-C2B56CDB3386}
+ {D5709FB9-909D-415F-8F86-2F25BEF6CE23} = {D5709FB9-909D-415F-8F86-2F25BEF6CE23}
+ {1723CBBA-8EE7-439A-93FB-2E94B4DB2E63} = {1723CBBA-8EE7-439A-93FB-2E94B4DB2E63}
+- {E636BACA-795F-41CF-BC52-14C727BF014E} = {E636BACA-795F-41CF-BC52-14C727BF014E}
+- EndProjectSection
+-EndProject
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Kinect", "Source\Drivers\Kinect\Kinect.vcxproj", "{E636BACA-795F-41CF-BC52-14C727BF014E}"
+- ProjectSection(ProjectDependencies) = postProject
+- {72D595BB-8C52-449B-91DB-0E9F6AEAF5BB} = {72D595BB-8C52-449B-91DB-0E9F6AEAF5BB}
+ EndProjectSection
+ EndProject
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DepthUtils", "Source\DepthUtils\DepthUtils.vcxproj", "{72D595BB-8C52-449B-91DB-0E9F6AEABBBB}"
+@@ -252,14 +246,6 @@ Global
+ {BAEB9C48-562C-4D56-A6CD-18932265480A}.Debug|x86.ActiveCfg = Debug|x86
+ {BAEB9C48-562C-4D56-A6CD-18932265480A}.Release|x64.ActiveCfg = Release|x64
+ {BAEB9C48-562C-4D56-A6CD-18932265480A}.Release|x86.ActiveCfg = Release|x86
+- {E636BACA-795F-41CF-BC52-14C727BF014E}.Debug|x64.ActiveCfg = Debug|x64
+- {E636BACA-795F-41CF-BC52-14C727BF014E}.Debug|x64.Build.0 = Debug|x64
+- {E636BACA-795F-41CF-BC52-14C727BF014E}.Debug|x86.ActiveCfg = Debug|Win32
+- {E636BACA-795F-41CF-BC52-14C727BF014E}.Debug|x86.Build.0 = Debug|Win32
+- {E636BACA-795F-41CF-BC52-14C727BF014E}.Release|x64.ActiveCfg = Release|x64
+- {E636BACA-795F-41CF-BC52-14C727BF014E}.Release|x64.Build.0 = Release|x64
+- {E636BACA-795F-41CF-BC52-14C727BF014E}.Release|x86.ActiveCfg = Release|Win32
+- {E636BACA-795F-41CF-BC52-14C727BF014E}.Release|x86.Build.0 = Release|Win32
+ {72D595BB-8C52-449B-91DB-0E9F6AEABBBB}.Debug|x64.ActiveCfg = Debug|x64
+ {72D595BB-8C52-449B-91DB-0E9F6AEABBBB}.Debug|x64.Build.0 = Debug|x64
+ {72D595BB-8C52-449B-91DB-0E9F6AEABBBB}.Debug|x86.ActiveCfg = Debug|Win32
+@@ -317,7 +303,6 @@ Global
+ {9F6652AF-35F2-452E-A2D3-08D05F5C075E} = {238D091D-1A85-4A61-9DCD-483768C51804}
+ {31F0F25B-A84A-48AC-9716-5DF9137F3855} = {238D091D-1A85-4A61-9DCD-483768C51804}
+ {15ECC029-90DE-4D1D-B00A-4A8E647D8C24} = {238D091D-1A85-4A61-9DCD-483768C51804}
+- {E636BACA-795F-41CF-BC52-14C727BF014E} = {238D091D-1A85-4A61-9DCD-483768C51804}
+ {5B74F010-8B79-46B5-B906-C2B56CDB3386} = {238D091D-1A85-4A61-9DCD-483768C51804}
+ {BDA3BF24-550A-4BF9-83E5-0056134EED40} = {20285393-1DB1-4300-8AD3-30AEAE3C5DA6}
+ {D39A4248-3985-41DE-AFD5-AEC58D29291F} = {20285393-1DB1-4300-8AD3-30AEAE3C5DA6}
diff --git a/ports/openni2/inherit_from_parent_or_project_defaults.patch b/ports/openni2/inherit_from_parent_or_project_defaults.patch
new file mode 100644
index 000000000..73893f3b9
--- /dev/null
+++ b/ports/openni2/inherit_from_parent_or_project_defaults.patch
@@ -0,0 +1,41 @@
+diff --git a/Source/Drivers/Kinect/Kinect.vcxproj b/Source/Drivers/Kinect/Kinect.vcxproj
+index 7f54d04..08a49fe 100644
+--- a/Source/Drivers/Kinect/Kinect.vcxproj
++++ b/Source/Drivers/Kinect/Kinect.vcxproj
+@@ -72,28 +72,29 @@
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)Bin\$(Platform)-$(Configuration)\OpenNI2\Drivers\</OutDir>
+ <IntDir>$(SolutionDir)Bin\Intermediate\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
+- <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include</IncludePath>
+- <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;</LibraryPath>
++ <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(IncludePath)</IncludePath>
++ <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(LibraryPath)</LibraryPath>
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)Bin\$(Platform)-$(Configuration)\OpenNI2\Drivers\</OutDir>
+ <IntDir>$(SolutionDir)Bin\Intermediate\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
+- <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath>
+- <LibraryPath>$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;</LibraryPath>
++ <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(IncludePath)</IncludePath>
++ <LibraryPath>$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;$(LibraryPath)</LibraryPath>
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)Bin\$(Platform)-$(Configuration)\OpenNI2\Drivers\</OutDir>
+ <IntDir>$(SolutionDir)Bin\Intermediate\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
+- <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath>
+- <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;</LibraryPath>
++ <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(IncludePath)</IncludePath>
++ <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(LibraryPath)</LibraryPath>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)Bin\$(Platform)-$(Configuration)\OpenNI2\Drivers\</OutDir>
+ <IntDir>$(SolutionDir)Bin\Intermediate\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
+- <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include</IncludePath>
++ <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(IncludePath)</IncludePath>
++ <LibraryPath>$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;$(LibraryPath)</LibraryPath>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
diff --git a/ports/openni2/openni2deploy.ps1 b/ports/openni2/openni2deploy.ps1
new file mode 100644
index 000000000..f420014cf
--- /dev/null
+++ b/ports/openni2/openni2deploy.ps1
@@ -0,0 +1,18 @@
+# Note: This function signature and behavior is depended upon by applocal.ps1
+
+function deployOpenNI2([string]$targetBinaryDir, [string]$installedDir, [string]$targetBinaryName) {
+ if ($targetBinaryName -like "OpenNI2.dll") {
+ if(Test-Path "$installedDir\bin\OpenNI2\OpenNI.ini") {
+ Write-Verbose " Deploying OpenNI2 Initialization"
+ deployBinary "$targetBinaryDir" "$installedDir\bin\OpenNI2" "OpenNI.ini"
+ }
+ if(Test-Path "$installedDir\bin\OpenNI2\Drivers") {
+ Write-Verbose " Deploying OpenNI2 Drivers"
+ New-Item "$targetBinaryDir\OpenNI2\Drivers" -ItemType Directory -ErrorAction SilentlyContinue | Out-Null
+ Get-ChildItem "$installedDir\bin\OpenNI2\Drivers\*.*" -include "*.dll","*.ini" | % {
+ deployBinary "$targetBinaryDir\OpenNI2\Drivers" "$installedDir\bin\OpenNI2\Drivers" $_.Name
+ }
+ }
+ }
+}
+
diff --git a/ports/openni2/portfile.cmake b/ports/openni2/portfile.cmake
new file mode 100644
index 000000000..fb7eeade6
--- /dev/null
+++ b/ports/openni2/portfile.cmake
@@ -0,0 +1,226 @@
+# UWP Not Support
+if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "Error: UWP builds are currently not supported.")
+endif()
+
+# Static Build Not Support
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message(STATUS "Warning: Static building not supported. Building dynamic.")
+ set(VCPKG_LIBRARY_LINKAGE "dynamic")
+endif()
+
+# Static CRT linkage not supported
+if (VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "Warning: Static CRT linkage is not supported.")
+endif()
+
+# Download Source Code
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO OpenNI/OpenNI2
+ REF 2.2-beta2
+ SHA512 60a3a3043679f3069aea869e92dc5881328ce4393d4140ea8d089027321ac501ae27d283657214e2834d216d0d49bf4f29a4b3d3e43df27a6ed21f889cd0083f
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/upgrade_projects.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/inherit_from_parent_or_project_defaults.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/replace_environment_variable.patch"
+)
+
+file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+file(COPY ${SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+get_filename_component(SOURCE_DIR_NAME "${SOURCE_PATH}" NAME)
+
+# Use fresh copy of sources for building and modification
+set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${SOURCE_DIR_NAME}")
+
+file(TO_NATIVE_PATH ${CURRENT_INSTALLED_DIR} NATIVE_INSTALLED_DIR)
+configure_file("${SOURCE_PATH}/Source/Drivers/Kinect/Kinect.vcxproj" "${SOURCE_PATH}/Source/Drivers/Kinect/Kinect.vcxproj" @ONLY)
+
+# Build OpenNI2
+vcpkg_build_msbuild(
+ PROJECT_PATH "${SOURCE_PATH}/OpenNI.sln"
+)
+
+# Install OpenNI2
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(PLATFORM Win32)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(PLATFORM x64)
+endif()
+
+set(SOURCE_INCLUDE_PATH "${SOURCE_PATH}/Include")
+set(SOURCE_BIN_PATH_RELEASE "${SOURCE_PATH}/Bin/${PLATFORM}-Release")
+set(SOURCE_BIN_PATH_DEBUG "${SOURCE_PATH}/Bin/${PLATFORM}-Debug")
+set(SOURCE_CONFIG_PATH "${SOURCE_PATH}/Config")
+set(SOURCE_THIRDPARTY_PATH "${SOURCE_PATH}/ThirdParty")
+
+file(
+ INSTALL
+ "${SOURCE_INCLUDE_PATH}/Android-Arm/OniPlatformAndroid-Arm.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include/openni2/Android-Arm
+)
+
+file(
+ INSTALL
+ "${SOURCE_INCLUDE_PATH}/Driver/OniDriverAPI.h"
+ "${SOURCE_INCLUDE_PATH}/Driver/OniDriverTypes.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include/openni2/Driver
+)
+
+file(
+ INSTALL
+ "${SOURCE_INCLUDE_PATH}/Linux-Arm/OniPlatformLinux-Arm.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include/openni2/Linux-Arm
+)
+
+file(
+ INSTALL
+ "${SOURCE_INCLUDE_PATH}/Linux-x86/OniPlatformLinux-x86.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include/openni2/Linux-x86
+)
+
+file(
+ INSTALL
+ "${SOURCE_INCLUDE_PATH}/MacOSX/OniPlatformMacOSX.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include/openni2/MacOSX
+)
+
+file(
+ INSTALL
+ "${SOURCE_INCLUDE_PATH}/Win32/OniPlatformWin32.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include/openni2/Win32
+)
+
+file(
+ INSTALL
+ "${SOURCE_INCLUDE_PATH}/OniCAPI.h"
+ "${SOURCE_INCLUDE_PATH}/OniCEnums.h"
+ "${SOURCE_INCLUDE_PATH}/OniCProperties.h"
+ "${SOURCE_INCLUDE_PATH}/OniCTypes.h"
+ "${SOURCE_INCLUDE_PATH}/OniEnums.h"
+ "${SOURCE_INCLUDE_PATH}/OniPlatform.h"
+ "${SOURCE_INCLUDE_PATH}/OniProperties.h"
+ "${SOURCE_INCLUDE_PATH}/OniVersion.h"
+ "${SOURCE_INCLUDE_PATH}/OpenNI.h"
+ "${SOURCE_INCLUDE_PATH}/PrimeSense.h"
+ "${SOURCE_INCLUDE_PATH}/PS1080.h"
+ "${SOURCE_INCLUDE_PATH}/PSLink.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include/openni2
+)
+
+file(
+ INSTALL
+ "${SOURCE_BIN_PATH_RELEASE}/OpenNI2.lib"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/lib
+)
+
+file(
+ INSTALL
+ "${SOURCE_BIN_PATH_DEBUG}/OpenNI2.lib"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+file(
+ INSTALL
+ "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/Kinect.dll"
+ "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/OniFile.dll"
+ "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/PS1080.dll"
+ "${SOURCE_CONFIG_PATH}/OpenNI2/Drivers/PS1080.ini"
+ "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/PSLink.dll"
+ "${SOURCE_CONFIG_PATH}/OpenNI2/Drivers/PSLink.ini"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/bin/OpenNI2/Drivers
+)
+
+file(
+ INSTALL
+ "${SOURCE_CONFIG_PATH}/OpenNI.ini"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/bin/OpenNI2
+)
+
+file(
+ INSTALL
+ "${SOURCE_BIN_PATH_RELEASE}/OpenNI2.dll"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/bin
+)
+
+file(
+ INSTALL
+ "${SOURCE_BIN_PATH_DEBUG}/OpenNI2/Drivers/Kinect.dll"
+ "${SOURCE_BIN_PATH_DEBUG}/OpenNI2/Drivers/OniFile.dll"
+ "${SOURCE_BIN_PATH_DEBUG}/OpenNI2/Drivers/PS1080.dll"
+ "${SOURCE_CONFIG_PATH}/OpenNI2/Drivers/PS1080.ini"
+ "${SOURCE_BIN_PATH_DEBUG}/OpenNI2/Drivers/PSLink.dll"
+ "${SOURCE_CONFIG_PATH}/OpenNI2/Drivers/PSLink.ini"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/debug/bin/OpenNI2/Drivers
+)
+
+file(
+ INSTALL
+ "${SOURCE_CONFIG_PATH}/OpenNI.ini"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/debug/bin/OpenNI2
+)
+
+file(
+ INSTALL
+ "${SOURCE_BIN_PATH_DEBUG}/OpenNI2.dll"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/debug/bin
+)
+
+file(
+ INSTALL
+ "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/Kinect.dll"
+ "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/OniFile.dll"
+ "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/PS1080.dll"
+ "${SOURCE_CONFIG_PATH}/OpenNI2/Drivers/PS1080.ini"
+ "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/PSLink.dll"
+ "${SOURCE_CONFIG_PATH}/OpenNI2/Drivers/PSLink.ini"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/tools/openni2/OpenNI2/Drivers
+)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(NUMBEROFBIT 32)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(NUMBEROFBIT 64)
+endif()
+
+file(
+ INSTALL
+ "${SOURCE_THIRDPARTY_PATH}/GL/glut${NUMBEROFBIT}.dll"
+ "${SOURCE_BIN_PATH_RELEASE}/NiViewer.exe"
+ "${SOURCE_CONFIG_PATH}/OpenNI.ini"
+ "${SOURCE_BIN_PATH_RELEASE}/OpenNI2.dll"
+ "${SOURCE_BIN_PATH_RELEASE}/PS1080Console.exe"
+ "${SOURCE_BIN_PATH_RELEASE}/PSLinkConsole.exe"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/tools/openni2
+)
+
+# Deploy Script
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/openni2deploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/bin/OpenNI2)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/openni2deploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin/OpenNI2)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openni2)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/openni2/LICENSE ${CURRENT_PACKAGES_DIR}/share/openni2/copyright) \ No newline at end of file
diff --git a/ports/openni2/replace_environment_variable.patch b/ports/openni2/replace_environment_variable.patch
new file mode 100644
index 000000000..48978e869
--- /dev/null
+++ b/ports/openni2/replace_environment_variable.patch
@@ -0,0 +1,76 @@
+diff --git a/Source/Drivers/Kinect/Kinect.vcxproj b/Source/Drivers/Kinect/Kinect.vcxproj
+index 08a49fe..7fd8620 100644
+--- a/Source/Drivers/Kinect/Kinect.vcxproj
++++ b/Source/Drivers/Kinect/Kinect.vcxproj
+@@ -101,7 +101,7 @@
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+- <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc;</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);_WINDOWS</PreprocessorDefinitions>
+ <DisableLanguageExtensions>false</DisableLanguageExtensions>
+ <TreatWarningAsError>false</TreatWarningAsError>
+@@ -109,7 +109,7 @@
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalDependencies>Kinect10.lib;XnLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+- <AdditionalLibraryDirectories>$(SolutionDir)Bin\$(Platform)-$(Configuration)\;$(KINECTSDK10_DIR)\lib\x86;</AdditionalLibraryDirectories>
++ <AdditionalLibraryDirectories>$(SolutionDir)Bin\$(Platform)-$(Configuration)\;@NATIVE_INSTALLED_DIR@\debug\lib</AdditionalLibraryDirectories>
+ <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
+ </Link>
+ </ItemDefinitionGroup>
+@@ -117,7 +117,7 @@
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+- <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc;</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);_WINDOWS</PreprocessorDefinitions>
+ <DisableLanguageExtensions>false</DisableLanguageExtensions>
+ <TreatWarningAsError>false</TreatWarningAsError>
+@@ -125,7 +125,7 @@
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalDependencies>Kinect10.lib;XnLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+- <AdditionalLibraryDirectories>$(SolutionDir)Bin\$(Platform)-$(Configuration)\;$(KINECTSDK10_DIR)\lib\amd64;</AdditionalLibraryDirectories>
++ <AdditionalLibraryDirectories>$(SolutionDir)Bin\$(Platform)-$(Configuration)\;@NATIVE_INSTALLED_DIR@\debug\lib</AdditionalLibraryDirectories>
+ <IgnoreSpecificDefaultLibraries>
+ </IgnoreSpecificDefaultLibraries>
+ <IgnoreAllDefaultLibraries>
+@@ -139,7 +139,7 @@
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+- <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc;</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories>
+ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+@@ -147,7 +147,7 @@
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <AdditionalDependencies>Kinect10.lib;XnLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+- <AdditionalLibraryDirectories>$(SolutionDir)Bin\$(Platform)-$(Configuration)\;$(KINECTSDK10_DIR)\lib\x86;</AdditionalLibraryDirectories>
++ <AdditionalLibraryDirectories>$(SolutionDir)Bin\$(Platform)-$(Configuration)\;@NATIVE_INSTALLED_DIR@\lib</AdditionalLibraryDirectories>
+ <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
+ </Link>
+ </ItemDefinitionGroup>
+@@ -157,7 +157,7 @@
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+- <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc;</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;@NATIVE_INSTALLED_DIR@\include</AdditionalIncludeDirectories>
+ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+@@ -165,7 +165,7 @@
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <AdditionalDependencies>Kinect10.lib;XnLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+- <AdditionalLibraryDirectories>$(SolutionDir)Bin\$(Platform)-$(Configuration)\;$(KINECTSDK10_DIR)\lib\amd64;</AdditionalLibraryDirectories>
++ <AdditionalLibraryDirectories>$(SolutionDir)Bin\$(Platform)-$(Configuration)\;@NATIVE_INSTALLED_DIR@\lib</AdditionalLibraryDirectories>
+ <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
+ </Link>
+ </ItemDefinitionGroup>
diff --git a/ports/openni2/upgrade_projects.patch b/ports/openni2/upgrade_projects.patch
new file mode 100644
index 000000000..86dee5794
--- /dev/null
+++ b/ports/openni2/upgrade_projects.patch
@@ -0,0 +1,1572 @@
+diff --git a/Samples/ClosestPointViewer/ClosestPointViewer.vcxproj b/Samples/ClosestPointViewer/ClosestPointViewer.vcxproj
+index fe63dbf..6050e8f 100644
+--- a/Samples/ClosestPointViewer/ClosestPointViewer.vcxproj
++++ b/Samples/ClosestPointViewer/ClosestPointViewer.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -27,23 +27,27 @@
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -84,7 +88,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MinimalRebuild>
+ </MinimalRebuild>
+ </ClCompile>
+@@ -105,7 +109,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MinimalRebuild>
+ </MinimalRebuild>
+ </ClCompile>
+@@ -133,7 +137,7 @@
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FloatingPointModel>Fast</FloatingPointModel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -142,6 +146,7 @@
+ <AdditionalDependencies>glut32.lib;OpenNI2.lib;MWClosestPoint.lib</AdditionalDependencies>
+ <AdditionalLibraryDirectories>$(OutDir);..\..\ThirdParty\GL</AdditionalLibraryDirectories>
+ <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
++ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>..\..\Include</AdditionalIncludeDirectories>
+@@ -161,7 +166,7 @@
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FloatingPointModel>Fast</FloatingPointModel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+diff --git a/Samples/EventBasedRead/EventBasedRead.vcxproj b/Samples/EventBasedRead/EventBasedRead.vcxproj
+index f67db7a..ffe19ac 100644
+--- a/Samples/EventBasedRead/EventBasedRead.vcxproj
++++ b/Samples/EventBasedRead/EventBasedRead.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -27,23 +27,27 @@
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -83,7 +87,7 @@
+ <AdditionalIncludeDirectories>..\..\Include;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -101,7 +105,7 @@
+ <AdditionalIncludeDirectories>..\..\Include;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -119,7 +123,7 @@
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>..\..\Include;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+@@ -144,7 +148,7 @@
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>..\..\Include;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+diff --git a/Samples/MWClosestPoint/MWClosestPoint.vcxproj b/Samples/MWClosestPoint/MWClosestPoint.vcxproj
+index 74cafe7..5844506 100644
+--- a/Samples/MWClosestPoint/MWClosestPoint.vcxproj
++++ b/Samples/MWClosestPoint/MWClosestPoint.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -27,23 +27,27 @@
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -84,7 +88,7 @@
+ <AdditionalIncludeDirectories>..\..\Include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CLOSEST_POINT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MinimalRebuild>
+ </MinimalRebuild>
+ </ClCompile>
+@@ -105,7 +109,7 @@
+ <AdditionalIncludeDirectories>..\..\Include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CLOSEST_POINT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MinimalRebuild>
+ </MinimalRebuild>
+ </ClCompile>
+@@ -134,7 +138,7 @@
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FloatingPointModel>Fast</FloatingPointModel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -163,7 +167,7 @@
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FloatingPointModel>Fast</FloatingPointModel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+diff --git a/Samples/MWClosestPointApp/MWClosestPointApp.vcxproj b/Samples/MWClosestPointApp/MWClosestPointApp.vcxproj
+index 063ec37..deb7c17 100644
+--- a/Samples/MWClosestPointApp/MWClosestPointApp.vcxproj
++++ b/Samples/MWClosestPointApp/MWClosestPointApp.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -27,23 +27,27 @@
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -83,7 +87,7 @@
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\MWClosestPoint;..\..\Include</AdditionalIncludeDirectories>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MinimalRebuild>
+ </MinimalRebuild>
+ </ClCompile>
+@@ -103,7 +107,7 @@
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\MWClosestPoint;..\..\Include</AdditionalIncludeDirectories>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MinimalRebuild>
+ </MinimalRebuild>
+ </ClCompile>
+@@ -131,7 +135,7 @@
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FloatingPointModel>Fast</FloatingPointModel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -159,7 +163,7 @@
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FloatingPointModel>Fast</FloatingPointModel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+diff --git a/Samples/MultiDepthViewer/MultiDepthViewer.vcxproj b/Samples/MultiDepthViewer/MultiDepthViewer.vcxproj
+index d021c0d..85a0d4f 100644
+--- a/Samples/MultiDepthViewer/MultiDepthViewer.vcxproj
++++ b/Samples/MultiDepthViewer/MultiDepthViewer.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -27,23 +27,27 @@
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -84,7 +88,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MinimalRebuild>
+ </MinimalRebuild>
+ </ClCompile>
+@@ -102,7 +106,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MinimalRebuild>
+ </MinimalRebuild>
+ </ClCompile>
+@@ -127,7 +131,7 @@
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FloatingPointModel>Fast</FloatingPointModel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -136,6 +140,7 @@
+ <AdditionalDependencies>glut32.lib;OpenNI2.lib</AdditionalDependencies>
+ <AdditionalLibraryDirectories>$(OutDir);..\..\ThirdParty\GL</AdditionalLibraryDirectories>
+ <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
++ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+@@ -152,7 +157,7 @@
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FloatingPointModel>Fast</FloatingPointModel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+diff --git a/Samples/MultipleStreamRead/MultipleStreamRead.vcxproj b/Samples/MultipleStreamRead/MultipleStreamRead.vcxproj
+index 15887ec..5fa8202 100644
+--- a/Samples/MultipleStreamRead/MultipleStreamRead.vcxproj
++++ b/Samples/MultipleStreamRead/MultipleStreamRead.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -27,23 +27,27 @@
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -83,7 +87,7 @@
+ <AdditionalIncludeDirectories>..\..\Include;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -101,7 +105,7 @@
+ <AdditionalIncludeDirectories>..\..\Include;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -119,7 +123,7 @@
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>..\..\Include;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+@@ -144,7 +148,7 @@
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>..\..\Include;..\Common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+diff --git a/Samples/SimpleRead/SimpleRead.vcxproj b/Samples/SimpleRead/SimpleRead.vcxproj
+index de3942f..6ce41e3 100644
+--- a/Samples/SimpleRead/SimpleRead.vcxproj
++++ b/Samples/SimpleRead/SimpleRead.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -27,23 +27,27 @@
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -83,7 +87,7 @@
+ <AdditionalIncludeDirectories>..\Common;..\..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -101,7 +105,7 @@
+ <AdditionalIncludeDirectories>..\Common;..\..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -119,7 +123,7 @@
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>..\Common;..\..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+@@ -144,7 +148,7 @@
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>..\Common;..\..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+diff --git a/Samples/SimpleViewer/SimpleViewer.vcxproj b/Samples/SimpleViewer/SimpleViewer.vcxproj
+index d693a1d..40621e1 100644
+--- a/Samples/SimpleViewer/SimpleViewer.vcxproj
++++ b/Samples/SimpleViewer/SimpleViewer.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -27,23 +27,27 @@
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -84,7 +88,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MinimalRebuild>
+ </MinimalRebuild>
+ </ClCompile>
+@@ -102,7 +106,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MinimalRebuild>
+ </MinimalRebuild>
+ </ClCompile>
+@@ -127,7 +131,7 @@
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FloatingPointModel>Fast</FloatingPointModel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -136,6 +140,7 @@
+ <AdditionalDependencies>glut32.lib;OpenNI2.lib</AdditionalDependencies>
+ <AdditionalLibraryDirectories>$(OutDir);..\..\ThirdParty\GL</AdditionalLibraryDirectories>
+ <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
++ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+@@ -152,7 +157,7 @@
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FloatingPointModel>Fast</FloatingPointModel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+diff --git a/Source/Core/OpenNI.vcxproj b/Source/Core/OpenNI.vcxproj
+index 12189de..f176682 100644
+--- a/Source/Core/OpenNI.vcxproj
++++ b/Source/Core/OpenNI.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -27,23 +27,27 @@
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -88,7 +92,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);OPENNI2_EXPORT</PreprocessorDefinitions>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -110,7 +114,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);OPENNI2_EXPORT</PreprocessorDefinitions>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -132,7 +136,7 @@
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);OPENNI2_EXPORT</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\Include;..\Drivers\OniFile\Formats;..\..\ThirdParty\PSCommon\XnLib\Include;..\..\ThirdParty\LibJPEG;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+@@ -161,7 +165,7 @@
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);OPENNI2_EXPORT</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\Include;..\Drivers\OniFile\Formats;..\..\ThirdParty\PSCommon\XnLib\Include;..\..\ThirdParty\LibJPEG;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+diff --git a/Source/DepthUtils/DepthUtils.vcxproj b/Source/DepthUtils/DepthUtils.vcxproj
+index dcab0b7..e474661 100644
+--- a/Source/DepthUtils/DepthUtils.vcxproj
++++ b/Source/DepthUtils/DepthUtils.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -35,23 +35,27 @@
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -94,7 +98,7 @@
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);DepthUtils_EXPORT</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -114,7 +118,7 @@
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);DepthUtils_EXPORT</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -134,7 +138,7 @@
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);DepthUtils_EXPORT</PreprocessorDefinitions>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+@@ -160,7 +164,7 @@
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);DepthUtils_EXPORT</PreprocessorDefinitions>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+diff --git a/Source/Drivers/DummyDevice/DummyDevice.vcxproj b/Source/Drivers/DummyDevice/DummyDevice.vcxproj
+index 56c5944..0401f3d 100644
+--- a/Source/Drivers/DummyDevice/DummyDevice.vcxproj
++++ b/Source/Drivers/DummyDevice/DummyDevice.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -27,23 +27,27 @@
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -84,7 +88,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);DummyDevice2_EXPORT</PreprocessorDefinitions>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+@@ -104,7 +108,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);DummyDevice2_EXPORT</PreprocessorDefinitions>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+@@ -124,7 +128,7 @@
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);DummyDevice2_EXPORT</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+@@ -153,7 +157,7 @@
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);DummyDevice2_EXPORT</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+diff --git a/Source/Drivers/Kinect/Kinect.vcxproj b/Source/Drivers/Kinect/Kinect.vcxproj
+index f54e8b2..6ea2656 100644
+--- a/Source/Drivers/Kinect/Kinect.vcxproj
++++ b/Source/Drivers/Kinect/Kinect.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -28,12 +28,14 @@
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ <CLRSupport>true</CLRSupport>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ <CLRSupport>true</CLRSupport>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+@@ -41,6 +43,7 @@
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ <CLRSupport>true</CLRSupport>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+@@ -48,6 +51,7 @@
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ <CLRSupport>true</CLRSupport>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -99,7 +103,7 @@
+ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc;</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);_WINDOWS</PreprocessorDefinitions>
+ <DisableLanguageExtensions>false</DisableLanguageExtensions>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -115,7 +119,7 @@
+ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc;</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);_WINDOWS</PreprocessorDefinitions>
+ <DisableLanguageExtensions>false</DisableLanguageExtensions>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -125,7 +129,7 @@
+ </IgnoreSpecificDefaultLibraries>
+ <IgnoreAllDefaultLibraries>
+ </IgnoreAllDefaultLibraries>
+- <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
++ <TreatLinkerWarningAsErrors>false</TreatLinkerWarningAsErrors>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+@@ -135,7 +139,7 @@
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc;</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -153,7 +157,7 @@
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc;</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+diff --git a/Source/Drivers/OniFile/OniFile.vcxproj b/Source/Drivers/OniFile/OniFile.vcxproj
+index 9b173f7..e2f4391 100644
+--- a/Source/Drivers/OniFile/OniFile.vcxproj
++++ b/Source/Drivers/OniFile/OniFile.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -28,23 +28,27 @@
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -98,7 +102,7 @@
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;ONIFILESPLAYER_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -133,7 +137,7 @@
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;ONIFILESPLAYER_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -169,7 +173,7 @@
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;ONIFILESPLAYER_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+@@ -212,7 +216,7 @@
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;ONIFILESPLAYER_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+diff --git a/Source/Drivers/PS1080/PS1080.vcxproj b/Source/Drivers/PS1080/PS1080.vcxproj
+index 2a1154d..8495c28 100644
+--- a/Source/Drivers/PS1080/PS1080.vcxproj
++++ b/Source/Drivers/PS1080/PS1080.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -525,23 +525,27 @@
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -587,7 +591,7 @@
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;PS1080_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>.\Include;.\;..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG;..\..\DepthUtils</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+@@ -612,7 +616,7 @@
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;PS1080_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>.\Include;.\;..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG;..\..\DepthUtils</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+@@ -638,7 +642,7 @@
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PS1080_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>.\Include;.\;..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG;..\..\DepthUtils</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+@@ -670,7 +674,7 @@
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PS1080_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>.\Include;.\;..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG;..\..\DepthUtils</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+diff --git a/Source/Drivers/PS1080/PS1080Console/PS1080Console.vcxproj b/Source/Drivers/PS1080/PS1080Console/PS1080Console.vcxproj
+index b9adfea..7446d5a 100644
+--- a/Source/Drivers/PS1080/PS1080Console/PS1080Console.vcxproj
++++ b/Source/Drivers/PS1080/PS1080Console/PS1080Console.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -28,19 +28,23 @@
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -87,7 +91,7 @@
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <DisableSpecificWarnings>4250;4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>XnLib.lib;OpenNI2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+@@ -95,7 +99,7 @@
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+- <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
++ <TreatLinkerWarningAsErrors>false</TreatLinkerWarningAsErrors>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+@@ -114,7 +118,7 @@
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4250;4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>XnLib.lib;OpenNI2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+@@ -139,7 +143,7 @@
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4250;4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>XnLib.lib;OpenNI2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+@@ -169,7 +173,7 @@
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4250;4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>XnLib.lib;OpenNI2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+diff --git a/Source/Drivers/PSLink/PSLink.vcxproj b/Source/Drivers/PSLink/PSLink.vcxproj
+index 8915163..68a7e96 100644
+--- a/Source/Drivers/PSLink/PSLink.vcxproj
++++ b/Source/Drivers/PSLink/PSLink.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -28,19 +28,23 @@
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -87,7 +91,7 @@
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <DisableSpecificWarnings>4250;4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>XnLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+@@ -95,7 +99,7 @@
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+- <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
++ <TreatLinkerWarningAsErrors>false</TreatLinkerWarningAsErrors>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+@@ -115,7 +119,7 @@
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4250;4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>XnLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+@@ -140,7 +144,7 @@
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4250;4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>XnLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+@@ -170,7 +174,7 @@
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4250;4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>XnLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+diff --git a/Source/Drivers/PSLink/PSLinkConsole/PSLinkConsole.vcxproj b/Source/Drivers/PSLink/PSLinkConsole/PSLinkConsole.vcxproj
+index e6c7c8c..26ff9c8 100644
+--- a/Source/Drivers/PSLink/PSLinkConsole/PSLinkConsole.vcxproj
++++ b/Source/Drivers/PSLink/PSLinkConsole/PSLinkConsole.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -28,19 +28,23 @@
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -87,7 +91,7 @@
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <DisableSpecificWarnings>4250;4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>OpenNI2.lib;XnLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+@@ -95,7 +99,7 @@
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+- <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
++ <TreatLinkerWarningAsErrors>false</TreatLinkerWarningAsErrors>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+@@ -114,7 +118,7 @@
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4250;4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>OpenNI2.lib;XnLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+@@ -139,7 +143,7 @@
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4250;4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>OpenNI2.lib;XnLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+@@ -169,7 +173,7 @@
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4250;4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>OpenNI2.lib;XnLib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+diff --git a/Source/Drivers/TestDevice/TestDevice.vcxproj b/Source/Drivers/TestDevice/TestDevice.vcxproj
+index e20a074..3777b2e 100644
+--- a/Source/Drivers/TestDevice/TestDevice.vcxproj
++++ b/Source/Drivers/TestDevice/TestDevice.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -27,23 +27,27 @@
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -84,7 +88,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);TestDevice2_EXPORT</PreprocessorDefinitions>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+@@ -101,7 +105,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);TestDevice2_EXPORT</PreprocessorDefinitions>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+@@ -118,7 +122,7 @@
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);TestDevice2_EXPORT</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+@@ -144,7 +148,7 @@
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);TestDevice2_EXPORT</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+diff --git a/Source/Tools/NiViewer/NiViewer.vcxproj b/Source/Tools/NiViewer/NiViewer.vcxproj
+index 0a4c392..e331009 100644
+--- a/Source/Tools/NiViewer/NiViewer.vcxproj
++++ b/Source/Tools/NiViewer/NiViewer.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -27,23 +27,27 @@
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -84,7 +88,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MinimalRebuild>
+ </MinimalRebuild>
+ </ClCompile>
+@@ -105,7 +109,7 @@
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MinimalRebuild>
+ </MinimalRebuild>
+ </ClCompile>
+@@ -133,7 +137,7 @@
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FloatingPointModel>Fast</FloatingPointModel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+@@ -142,6 +146,7 @@
+ <AdditionalDependencies>Comdlg32.lib;OpenNI2.lib;XnLib.lib;glut32.lib</AdditionalDependencies>
+ <AdditionalLibraryDirectories>$(OutDir);..\..\..\ThirdParty\GL</AdditionalLibraryDirectories>
+ <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
++ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>..\..\..\Include</AdditionalIncludeDirectories>
+@@ -161,7 +166,7 @@
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FloatingPointModel>Fast</FloatingPointModel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+diff --git a/ThirdParty/PSCommon/XnLib/Source/XnLib.vcxproj b/ThirdParty/PSCommon/XnLib/Source/XnLib.vcxproj
+index 2761222..f2094b3 100644
+--- a/ThirdParty/PSCommon/XnLib/Source/XnLib.vcxproj
++++ b/ThirdParty/PSCommon/XnLib/Source/XnLib.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -116,23 +116,27 @@
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+@@ -176,7 +180,7 @@
+ <AdditionalIncludeDirectories>..\Include;..\Driver\Win32\Build\sys;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);XnLib_EXPORT</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -198,7 +202,7 @@
+ <AdditionalIncludeDirectories>..\Include;..\Driver\Win32\Build\sys;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_WINDLL;%(PreprocessorDefinitions);XnLib_EXPORT</PreprocessorDefinitions>
+ <WarningLevel>Level4</WarningLevel>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <MinimalRebuild>
+ </MinimalRebuild>
+@@ -220,7 +224,7 @@
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);XnLib_EXPORT</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\Include;..\Driver\Win32\Build\sys;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+@@ -248,7 +252,7 @@
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions);XnLib_EXPORT</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\Include;..\Driver\Win32\Build\sys;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <TreatWarningAsError>true</TreatWarningAsError>
++ <TreatWarningAsError>false</TreatWarningAsError>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+diff --git a/Wrappers/java/OpenNI.jni/OpenNI.jni.vcxproj b/Wrappers/java/OpenNI.jni/OpenNI.jni.vcxproj
+index b95c484..bfd0503 100644
+--- a/Wrappers/java/OpenNI.jni/OpenNI.jni.vcxproj
++++ b/Wrappers/java/OpenNI.jni/OpenNI.jni.vcxproj
+@@ -2,4 +2,4 @@
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+@@ -28,18 +28,22 @@
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
++ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
diff --git a/ports/openssl/CMakeLists.txt b/ports/openssl/CMakeLists.txt
new file mode 100644
index 000000000..a2d863452
--- /dev/null
+++ b/ports/openssl/CMakeLists.txt
@@ -0,0 +1,130 @@
+cmake_minimum_required(VERSION 3.9)
+project(openssl C)
+
+if(NOT SOURCE_PATH)
+ message(FATAL_ERROR "Requires SOURCE_PATH")
+endif()
+
+if(CMAKE_SYSTEM_NAME STREQUAL "Android")
+ set(PLATFORM android)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64")
+ set(PLATFORM linux-generic64)
+ else()
+ set(PLATFORM linux-generic32)
+ endif()
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ set(PLATFORM darwin64-x86_64-cc)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ set(PLATFORM BSD-generic64)
+else()
+ message(FATAL_ERROR "Unknown platform")
+endif()
+
+get_filename_component(COMPILER_ROOT "${CMAKE_C_COMPILER}" DIRECTORY)
+
+message("CMAKE_C_COMPILER=${CMAKE_C_COMPILER}")
+message("COMPILER_ROOT=${COMPILER_ROOT}")
+message("CMAKE_SYSROOT=${CMAKE_SYSROOT}")
+message("CMAKE_C_FLAGS=${CMAKE_C_FLAGS}")
+message("CMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}")
+message("CMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}")
+message("CMAKE_INCLUDE_SYSTEM_FLAG_C=${CMAKE_INCLUDE_SYSTEM_FLAG_C}")
+
+set(CFLAGS "${CMAKE_C_FLAGS}")
+if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+ set(CFLAGS "-Wno-error=unused-command-line-argument ${CMAKE_C_FLAGS}")
+endif()
+if(CMAKE_C_COMPILER_TARGET)
+ set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_TARGET} ${CMAKE_C_COMPILER_TARGET}")
+endif()
+if(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN)
+ set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}")
+endif()
+if(CMAKE_SYSROOT AND CMAKE_C_COMPILE_OPTIONS_SYSROOT)
+ set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}")
+endif()
+
+file(TO_NATIVE_PATH ENV_PATH "${COMPILER_ROOT};$ENV{PATH}")
+set(ENV{ANDROID_DEV} "${CMAKE_SYSROOT}/usr")
+set(ENV{CC} "${CMAKE_C_COMPILER}")
+
+message("ENV{ANDROID_DEV}=$ENV{ANDROID_DEV}")
+
+get_filename_component(SOURCE_PATH_NAME "${SOURCE_PATH}" NAME)
+set(BUILDDIR "${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_PATH_NAME}")
+
+if(NOT EXISTS "${BUILDDIR}")
+ file(COPY ${SOURCE_PATH} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+endif()
+
+get_filename_component(MSYS_BIN_DIR "${MAKE}" DIRECTORY)
+
+
+file(READ "${BUILDDIR}/Configure" _contents)
+string(REPLACE "-mandroid" "" _contents "${_contents}")
+file(WRITE "${BUILDDIR}/Configure" "${_contents}")
+
+if(BUILD_SHARED_LIBS)
+ set(SHARED shared)
+else()
+ set(SHARED no-shared)
+endif()
+
+if(CMAKE_HOST_WIN32)
+ set(ENV_COMMAND set)
+ set(PATH_VAR ";%PATH%")
+else()
+ set(ENV_COMMAND export)
+ set(PATH_VAR ":$ENV{PATH}")
+endif()
+
+add_custom_command(
+ OUTPUT "${BUILDDIR}/Makefile"
+ COMMAND ${ENV_COMMAND} CC=${CMAKE_C_COMPILER}
+ COMMAND ${ENV_COMMAND} AR=${CMAKE_AR}
+ COMMAND ${ENV_COMMAND} LD=${CMAKE_LINKER}
+ COMMAND ${ENV_COMMAND} RANLIB=${CMAKE_RANLIB}
+ COMMAND ${ENV_COMMAND} MAKE=${MAKE}
+ COMMAND ${ENV_COMMAND} MAKEDEPPROG=${CMAKE_C_COMPILER}
+ COMMAND ${ENV_COMMAND} "PATH=${MSYS_BIN_DIR}${PATH_VAR}"
+ COMMAND "${PERL}" Configure
+ ${SHARED}
+ enable-static-engine
+ no-ssl2
+ no-krb5
+ no-idea
+ no-bf
+ no-cast
+ no-seed
+ no-md2
+ ${PLATFORM}
+ "--prefix=${CMAKE_INSTALL_PREFIX}"
+ "--openssldir=${CMAKE_INSTALL_PREFIX}"
+ ${CFLAGS}
+ COMMAND "${CMAKE_COMMAND}" "-DDIR=${BUILDDIR}" -P "${CMAKE_CURRENT_LIST_DIR}/remove-deps.cmake"
+ VERBATIM
+ WORKING_DIRECTORY "${BUILDDIR}"
+)
+
+add_custom_target(depend
+ COMMAND ${ENV_COMMAND} "PATH=${MSYS_BIN_DIR}${PATH_VAR}"
+ COMMAND "${MAKE}" links # depend MAKEDEPPROG=${CMAKE_C_COMPILER}
+ VERBATIM
+ WORKING_DIRECTORY "${BUILDDIR}"
+ DEPENDS "${BUILDDIR}/Makefile"
+)
+add_custom_target(build_libs ALL
+ COMMAND ${ENV_COMMAND} "PATH=${MSYS_BIN_DIR}${PATH_VAR}"
+ COMMAND "${CMAKE_COMMAND}" -E touch "${BUILDDIR}/krb5.h"
+ COMMAND "${MAKE}" build_libs
+ VERBATIM
+ WORKING_DIRECTORY "${BUILDDIR}"
+ DEPENDS depend
+ BYPRODUCTS "${BUILDDIR}/libssl.a" "${BUILDDIR}/libcrypto.a"
+)
+
+install(
+ FILES "${BUILDDIR}/libssl.a" "${BUILDDIR}/libcrypto.a"
+ DESTINATION lib
+)
diff --git a/ports/openssl/CONTROL b/ports/openssl/CONTROL
index 6fb520404..fe7ea5c01 100644
--- a/ports/openssl/CONTROL
+++ b/ports/openssl/CONTROL
@@ -1,3 +1,3 @@
Source: openssl
-Version: 1.0.2k-2
+Version: 1.0.2o-2
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/EmbedSymbolsInStaticLibsZ7.patch b/ports/openssl/EmbedSymbolsInStaticLibsZ7.patch
new file mode 100644
index 000000000..1a8de2c4b
--- /dev/null
+++ b/ports/openssl/EmbedSymbolsInStaticLibsZ7.patch
@@ -0,0 +1,25 @@
+diff --git a/util/pl/VC-32.pl b/util/pl/VC-32.pl
+index dba96cb..5722f6e 100644
+--- a/util/pl/VC-32.pl
++++ b/util/pl/VC-32.pl
+@@ -154,9 +154,17 @@ else
+ $cflags=$opt_cflags.$base_cflags;
+ }
+
+-# generate symbols.pdb unconditionally
+-$app_cflag.=" /Zi /Fd\$(TMP_D)/app";
+-$lib_cflag.=" /Zi /Fd\$(TMP_D)/lib";
++# generate symbols.pdb when building dlls and embed symbols when building static libs
++if ($shlib)
++ {
++ $app_cflag.=" /Zi /Fd\$(TMP_D)/app.pdb";
++ $lib_cflag.=" /Zi /Fd\$(TMP_D)/lib.pdb";
++ }
++else
++ {
++ $app_cflag.=" /Z7";
++ $lib_cflag.=" /Z7";
++ }
+ $lflags.=" /debug";
+
+ $obj='.obj';
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/make-openssl.bat b/ports/openssl/make-openssl.bat
index 4c038094d..4f6488e8d 100644
--- a/ports/openssl/make-openssl.bat
+++ b/ports/openssl/make-openssl.bat
@@ -1,10 +1,15 @@
set build=%1
-perl Configure no-asm no-hw no-dso VC-WINUNIVERSAL
+perl Configure no-asm no-hw no-dso VC-WINUNIVERSAL -FS -FIWindows.h
+
+for /D %%f in ("%WindowsSdkDir%References\%WindowsSDKLibVersion%Windows.Foundation.FoundationContract\*") do set LibPath=%LibPath%;%%f\
+for /D %%f in ("%WindowsSdkDir%References\%WindowsSDKLibVersion%Windows.Foundation.UniversalApiContract\*") do set LibPath=%LibPath%;%%f\
call ms\do_winuniversal.bat
-call ms\setVSvars.bat universal10.0%build%
+mkdir inc32\openssl
+jom -j %NUMBER_OF_PROCESSORS% -k -f ms\ntdll.mak
+REM due to a race condition in the build, we need to have a second single-threaded pass.
nmake -f ms\ntdll.mak
diff --git a/ports/openssl/portfile-nonwindows.cmake b/ports/openssl/portfile-nonwindows.cmake
new file mode 100644
index 000000000..c324b132a
--- /dev/null
+++ b/ports/openssl/portfile-nonwindows.cmake
@@ -0,0 +1,37 @@
+if(CMAKE_HOST_WIN32)
+ vcpkg_acquire_msys(MSYS_ROOT PACKAGES make)
+ set(BASH ${MSYS_ROOT}/usr/bin/bash.exe)
+ set(MAKE ${MSYS_ROOT}/usr/bin/make.exe)
+else()
+ find_program(MAKE make)
+ if(NOT MAKE)
+ message(FATAL_ERROR "Could not find make. Please install it through your package manager.")
+ endif()
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${CMAKE_CURRENT_LIST_DIR}
+ PREFER_NINJA
+ OPTIONS
+ -DSOURCE_PATH=${MASTER_COPY_SOURCE_PATH}
+ -DPERL=${PERL}
+ -DMAKE=${MAKE}
+ OPTIONS_RELEASE
+ -DINSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(GLOB HEADERS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/include/openssl/*.h)
+set(RESOLVED_HEADERS)
+foreach(HEADER ${HEADERS})
+ get_filename_component(X "${HEADER}" REALPATH)
+ list(APPEND RESOLVED_HEADERS "${X}")
+endforeach()
+
+file(INSTALL ${RESOLVED_HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include/openssl)
+file(INSTALL ${MASTER_COPY_SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openssl RENAME copyright)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/openssl)
+endif()
diff --git a/ports/openssl/portfile-uwp.cmake b/ports/openssl/portfile-uwp.cmake
index cf2f1e7ca..0331e0f77 100644
--- a/ports/openssl/portfile-uwp.cmake
+++ b/ports/openssl/portfile-uwp.cmake
@@ -7,7 +7,8 @@
#
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- message(FATAL_ERROR "Static building not supported yet")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+ message("Static building not supported yet")
endif()
if (NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
@@ -26,16 +27,18 @@ endif()
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-OpenSSL_1_0_2k_WinRT)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-OpenSSL_1_0_2l_WinRT)
vcpkg_find_acquire_program(PERL)
+vcpkg_find_acquire_program(JOM)
+get_filename_component(JOM_EXE_PATH ${JOM} DIRECTORY)
get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
-set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH}")
+set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH};${JOM_EXE_PATH}")
vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/Microsoft/openssl/archive/OpenSSL_1_0_2k_WinRT.zip"
- FILENAME "openssl-microsoft-1.0.2k_WinRT.zip"
- SHA512 afb434ef69c399f690f7ce723fabb228f77a12428f19062c5df3b8b841a2a7881c01150fdcfd2fab23867e3963292874a08ad227b37d168907b507fb1d7fede7
+ URLS "https://github.com/Microsoft/openssl/archive/OpenSSL_1_0_2l_WinRT.zip"
+ FILENAME "openssl-microsoft-1.0.2l_WinRT.zip"
+ SHA512 238b3daad7f1a2486e09d47e6d1bd4b0aa8e8a896358c6dfe11a77c2654da1b29d3c7612f9d200d5be5a020f33d96fe39cd75b99aa35aa4129feb756f7f98ee8
)
vcpkg_extract_source_archive(${ARCHIVE})
@@ -44,66 +47,48 @@ file(REMOVE_RECURSE ${SOURCE_PATH}/tmp32dll)
file(REMOVE_RECURSE ${SOURCE_PATH}/out32dll)
file(REMOVE_RECURSE ${SOURCE_PATH}/inc32dll)
-file(COPY
-${CMAKE_CURRENT_LIST_DIR}/make-openssl.bat
-DESTINATION ${SOURCE_PATH})
+file(
+ COPY ${CMAKE_CURRENT_LIST_DIR}/make-openssl.bat
+ DESTINATION ${SOURCE_PATH}
+)
message(STATUS "Build ${TARGET_TRIPLET}")
-
vcpkg_execute_required_process(
- COMMAND ${SOURCE_PATH}/make-openssl.bat ${UWP_PLATFORM}
+ COMMAND ${SOURCE_PATH}/make-openssl.bat ${UWP_PLATFORM}
WORKING_DIRECTORY ${SOURCE_PATH}
LOGNAME make-openssl-${TARGET_TRIPLET}
)
-
-
message(STATUS "Build ${TARGET_TRIPLET} done")
-
-
file(
COPY ${SOURCE_PATH}/inc32/openssl
DESTINATION ${CURRENT_PACKAGES_DIR}/include
)
-file(INSTALL ${SOURCE_PATH}/out32dll/libeay32.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
-
-file(INSTALL ${SOURCE_PATH}/out32dll/libeay32.pdb
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
-
-file(INSTALL ${SOURCE_PATH}/out32dll/libeay32.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
-
-file(INSTALL ${SOURCE_PATH}/out32dll/ssleay32.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
-
-file(INSTALL ${SOURCE_PATH}/out32dll/ssleay32.pdb
+file(INSTALL
+ ${SOURCE_PATH}/out32dll/libeay32.dll
+ ${SOURCE_PATH}/out32dll/libeay32.pdb
+ ${SOURCE_PATH}/out32dll/ssleay32.dll
+ ${SOURCE_PATH}/out32dll/ssleay32.pdb
DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
-file(INSTALL ${SOURCE_PATH}/out32dll/ssleay32.lib
+file(INSTALL
+ ${SOURCE_PATH}/out32dll/libeay32.lib
+ ${SOURCE_PATH}/out32dll/ssleay32.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
-
-
-file(INSTALL ${SOURCE_PATH}/out32dll/libeay32.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
-
-file(INSTALL ${SOURCE_PATH}/out32dll/libeay32.pdb
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
-
-file(INSTALL ${SOURCE_PATH}/out32dll/libeay32.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
-
-file(INSTALL ${SOURCE_PATH}/out32dll/ssleay32.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
-
-file(INSTALL ${SOURCE_PATH}/out32dll/ssleay32.pdb
+file(INSTALL
+ ${SOURCE_PATH}/out32dll/libeay32.dll
+ ${SOURCE_PATH}/out32dll/libeay32.pdb
+ ${SOURCE_PATH}/out32dll/ssleay32.dll
+ ${SOURCE_PATH}/out32dll/ssleay32.pdb
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
-file(INSTALL ${SOURCE_PATH}/out32dll/ssleay32.lib
+file(INSTALL
+ ${SOURCE_PATH}/out32dll/libeay32.lib
+ ${SOURCE_PATH}/out32dll/ssleay32.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
-
-
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openssl RENAME copyright)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/openssl/portfile.cmake b/ports/openssl/portfile.cmake
index b325432b0..a6e5fd110 100644
--- a/ports/openssl/portfile.cmake
+++ b/ports/openssl/portfile.cmake
@@ -4,54 +4,72 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
endif()
include(vcpkg_common_functions)
-set(OPENSSL_VERSION 1.0.2k)
+set(OPENSSL_VERSION 1.0.2o)
set(MASTER_COPY_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-${OPENSSL_VERSION})
+
vcpkg_find_acquire_program(PERL)
-find_program(NMAKE nmake)
get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
-set(ENV{PATH} "${PERL_EXE_PATH};$ENV{PATH}")
+set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH}")
vcpkg_download_distfile(OPENSSL_SOURCE_ARCHIVE
- URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz"
+ 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 0d314b42352f4b1df2c40ca1094abc7e9ad684c5c35ea997efdd58204c70f22a1abcb17291820f0fff3769620a4e06906034203d31eb1a4d540df3e0db294016
+ SHA512 8a2c93657c85143e76785bb32ee836908c31a6f5f8db993fa9777acba6079e630cdddd03edbad65d1587199fc13a1507789eacf038b56eb99139c2091d9df7fd
)
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
)
+if(VCPKG_CMAKE_SYSTEM_NAME)
+ include(${CMAKE_CURRENT_LIST_DIR}/portfile-nonwindows.cmake)
+ return()
+endif()
+
+vcpkg_find_acquire_program(NASM)
+get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
+set(ENV{PATH} "${NASM_EXE_PATH};$ENV{PATH}")
+
+vcpkg_find_acquire_program(JOM)
+
set(CONFIGURE_COMMAND ${PERL} Configure
enable-static-engine
enable-capieng
- no-asm
no-ssl2
+ -utf-8
)
-if(TARGET_TRIPLET MATCHES "x86-windows")
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
set(OPENSSL_ARCH VC-WIN32)
- set(OPENSSL_DO "ms\\do_ms.bat")
-elseif(TARGET_TRIPLET MATCHES "x64")
+ set(OPENSSL_DO "ms\\do_nasm.bat")
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
set(OPENSSL_ARCH VC-WIN64A)
set(OPENSSL_DO "ms\\do_win64a.bat")
else()
- message(FATAL_ERROR "Unsupported target triplet: ${TARGET_TRIPLET}")
+ message(FATAL_ERROR "Unsupported target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(OPENSSL_MAKEFILE "ms\\ntdll.mak")
+else()
+ set(OPENSSL_MAKEFILE "ms\\nt.mak")
endif()
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
-message(STATUS "Build ${TARGET_TRIPLET}-rel")
+
file(COPY ${MASTER_COPY_SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
set(SOURCE_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/openssl-${OPENSSL_VERSION})
set(OPENSSLDIR_RELEASE ${CURRENT_PACKAGES_DIR})
+message(STATUS "Configure ${TARGET_TRIPLET}-rel")
vcpkg_execute_required_process(
- COMMAND ${CONFIGURE_COMMAND} ${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_RELEASE}" "--openssldir=${OPENSSLDIR_RELEASE}"
+ COMMAND ${CONFIGURE_COMMAND} ${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_RELEASE}" "--openssldir=${OPENSSLDIR_RELEASE}" -FS
WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
LOGNAME configure-perl-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-rel
)
@@ -60,27 +78,33 @@ vcpkg_execute_required_process(
WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
LOGNAME configure-do-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-rel
)
+message(STATUS "Configure ${TARGET_TRIPLET}-rel done")
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- vcpkg_execute_required_process(COMMAND ${NMAKE} -f ms\\ntdll.mak install
- WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
- LOGNAME build-${TARGET_TRIPLET}-rel)
-else()
- vcpkg_execute_required_process(COMMAND ${NMAKE} -f ms\\nt.mak install
- WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
- LOGNAME build-${TARGET_TRIPLET}-rel)
-endif()
-
+message(STATUS "Build ${TARGET_TRIPLET}-rel")
+# Openssl's buildsystem has a race condition which will cause JOM to fail at some point.
+# This is ok; we just do as much work as we can in parallel first, then follow up with a single-threaded build.
+make_directory(${SOURCE_PATH_RELEASE}/inc32/openssl)
+execute_process(
+ COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS} -f ${OPENSSL_MAKEFILE}
+ WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
+ OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-out.log
+ ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-err.log
+)
+vcpkg_execute_required_process(
+ COMMAND nmake -f ${OPENSSL_MAKEFILE} install
+ WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
+ LOGNAME build-${TARGET_TRIPLET}-rel-1)
message(STATUS "Build ${TARGET_TRIPLET}-rel done")
-message(STATUS "Build ${TARGET_TRIPLET}-dbg")
+
+message(STATUS "Configure ${TARGET_TRIPLET}-dbg")
file(COPY ${MASTER_COPY_SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
set(SOURCE_PATH_DEBUG ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/openssl-${OPENSSL_VERSION})
set(OPENSSLDIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug)
vcpkg_execute_required_process(
- COMMAND ${CONFIGURE_COMMAND} debug-${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_DEBUG}" "--openssldir=${OPENSSLDIR_DEBUG}"
+ COMMAND ${CONFIGURE_COMMAND} debug-${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_DEBUG}" "--openssldir=${OPENSSLDIR_DEBUG}" -FS
WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
LOGNAME configure-perl-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-dbg
)
@@ -89,27 +113,36 @@ vcpkg_execute_required_process(
WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
LOGNAME configure-do-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-dbg
)
+message(STATUS "Configure ${TARGET_TRIPLET}-dbg done")
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- vcpkg_execute_required_process(COMMAND ${NMAKE} -f ms\\ntdll.mak install
- WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
- LOGNAME build-${TARGET_TRIPLET}-dbg)
-else()
- vcpkg_execute_required_process(COMMAND ${NMAKE} -f ms\\nt.mak install
- WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
- LOGNAME build-${TARGET_TRIPLET}-dbg)
-endif()
+message(STATUS "Build ${TARGET_TRIPLET}-dbg")
+make_directory(${SOURCE_PATH_DEBUG}/inc32/openssl)
+execute_process(
+ COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS} -f ${OPENSSL_MAKEFILE}
+ WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
+ OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-out.log
+ ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-err.log
+)
+vcpkg_execute_required_process(
+ COMMAND nmake -f ${OPENSSL_MAKEFILE} install
+ WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
+ LOGNAME build-${TARGET_TRIPLET}-dbg-1)
message(STATUS "Build ${TARGET_TRIPLET}-dbg done")
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE
${CURRENT_PACKAGES_DIR}/debug/bin/openssl.exe
- ${CURRENT_PACKAGES_DIR}/bin/openssl.exe
${CURRENT_PACKAGES_DIR}/debug/openssl.cnf
${CURRENT_PACKAGES_DIR}/openssl.cnf
)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT}/)
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/openssl.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/openssl.exe)
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openssl RENAME copyright)
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
@@ -118,4 +151,14 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/)
endif()
-vcpkg_copy_pdbs() \ No newline at end of file
+file(READ "${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h" _contents)
+string(REPLACE "<winsock.h>" "<winsock2.h>" _contents "${_contents}")
+file(WRITE "${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h" "${_contents}")
+
+file(READ "${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" _contents)
+string(REPLACE "# include <windows.h>" "#ifndef _WINSOCKAPI_\n#define _WINSOCKAPI_\n#endif\n# include <windows.h>" _contents "${_contents}")
+file(WRITE "${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" "${_contents}")
+
+vcpkg_copy_pdbs()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/openssl/remove-deps.cmake b/ports/openssl/remove-deps.cmake
new file mode 100644
index 000000000..a57c70fe9
--- /dev/null
+++ b/ports/openssl/remove-deps.cmake
@@ -0,0 +1,7 @@
+file(GLOB_RECURSE MAKEFILES ${DIR}/*/Makefile)
+foreach(MAKEFILE ${MAKEFILES})
+ message("removing deps from ${MAKEFILE}")
+ file(READ "${MAKEFILE}" _contents)
+ string(REGEX REPLACE "\n# DO NOT DELETE THIS LINE.*" "" _contents "${_contents}")
+ file(WRITE "${MAKEFILE}" "${_contents}")
+endforeach()
diff --git a/ports/openssl/usage b/ports/openssl/usage
new file mode 100644
index 000000000..f535cb6a4
--- /dev/null
+++ b/ports/openssl/usage
@@ -0,0 +1,4 @@
+The package openssl is compatible with built-in CMake targets:
+
+ find_package(OpenSSL REQUIRED)
+ target_link_libraries(main PRIVATE OpenSSL::SSL OpenSSL::Crypto)
diff --git a/ports/openssl/vcpkg-cmake-wrapper.cmake b/ports/openssl/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..82313bdab
--- /dev/null
+++ b/ports/openssl/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,10 @@
+_find_package(${ARGS})
+if(OPENSSL_FOUND)
+ find_library(OPENSSL_DL_LIBRARY NAMES dl)
+ if(OPENSSL_DL_LIBRARY)
+ list(APPEND OPENSSL_LIBRARIES "dl")
+ if(TARGET OpenSSL::Crypto)
+ set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "dl")
+ endif()
+ endif()
+endif()
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/openvpn3/CMakeLists.txt b/ports/openvpn3/CMakeLists.txt
new file mode 100644
index 000000000..fcbe85794
--- /dev/null
+++ b/ports/openvpn3/CMakeLists.txt
@@ -0,0 +1,26 @@
+cmake_minimum_required(VERSION 3.0)
+project(openvpncli CXX)
+
+find_path(ASIO_HPP asio.hpp)
+find_library(MBEDTLS_LIB mbedtls)
+find_library(MBEDCRYPTO_LIB mbedcrypto)
+find_library(MBEDX509_LIB mbedx509)
+
+include_directories(. ${ASIO_HPP})
+
+add_definitions(-DNOMINMAX -DUSE_ASIO -DUSE_MBEDTLS)
+
+add_library(ovpncli client/ovpncli.cpp)
+target_link_libraries(ovpncli PRIVATE Iphlpapi.lib ${MBEDTLS_LIB} ${MBEDCRYPTO_LIB} ${MBEDX509_LIB})
+
+install(
+ TARGETS ovpncli
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(BUILD_TOOL)
+ add_executable(cli test/ovpncli/cli.cpp)
+ target_link_libraries(cli PRIVATE ovpncli)
+endif()
diff --git a/ports/openvpn3/CONTROL b/ports/openvpn3/CONTROL
new file mode 100644
index 000000000..09264a192
--- /dev/null
+++ b/ports/openvpn3/CONTROL
@@ -0,0 +1,4 @@
+Source: openvpn3
+Version: 2018-03-21
+Build-Depends: asio, tap-windows6 (windows), mbedtls
+Description: a C++ class library that implements the functionality of an OpenVPN client, and is protocol-compatible with the OpenVPN 2.x branch.
diff --git a/ports/openvpn3/portfile.cmake b/ports/openvpn3/portfile.cmake
new file mode 100644
index 000000000..aede361dd
--- /dev/null
+++ b/ports/openvpn3/portfile.cmake
@@ -0,0 +1,37 @@
+include(vcpkg_common_functions)
+
+set(VCPKG_LIBRARY_LINKAGE static)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO OpenVPN/openvpn3
+ REF 3d5dd9ee3b4182032044d775de5401fc6a7a63ae
+ SHA512 6a8ed20662efa576c57f38fb9579c5808f745d44e8cd6a84055bec10a58ede5d27e207a842f79ac6a2f7d986494fbd2415f9d59e2b23bd38e45c68546a227697
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(COPY ${SOURCE_PATH}/openvpn DESTINATION ${CURRENT_PACKAGES_DIR}/include/)
+file(COPY ${SOURCE_PATH}/client/ovpncli.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include/openvpn/)
+
+file(GLOB_RECURSE HEADERS ${CURRENT_PACKAGES_DIR}/include/openvpn/*)
+foreach(HEADER IN LISTS HEADERS)
+ file(READ "${HEADER}" _contents)
+ string(REPLACE "defined(USE_ASIO)" "1" _contents "${_contents}")
+ string(REPLACE "#ifdef USE_ASIO\n" "#if 1\n" _contents "${_contents}")
+ string(REPLACE "defined(USE_MBEDTLS)" "1" _contents "${_contents}")
+ string(REPLACE "#ifdef USE_MBEDTLS\n" "#if 1\n" _contents "${_contents}")
+ file(WRITE "${HEADER}" "${_contents}")
+endforeach()
+
+file(INSTALL
+ ${SOURCE_PATH}/COPYRIGHT.AGPLV3
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/openvpn3 RENAME copyright)
diff --git a/ports/openvr/CONTROL b/ports/openvr/CONTROL
index 2a2228ba2..fe619c8af 100644
--- a/ports/openvr/CONTROL
+++ b/ports/openvr/CONTROL
@@ -1,3 +1,3 @@
Source: openvr
-Version: 1.0.5
+Version: 1.0.15
Description: an API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting.
diff --git a/ports/openvr/portfile.cmake b/ports/openvr/portfile.cmake
index 94e90143d..02fa29e58 100644
--- a/ports/openvr/portfile.cmake
+++ b/ports/openvr/portfile.cmake
@@ -1,19 +1,12 @@
-# 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}
-#
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openvr-1.0.5)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/ValveSoftware/openvr/archive/v1.0.5.zip"
- FILENAME "openvr-v1.0.5.zip"
- SHA512 18c2e3f7a8754d0e9389c953d0af70788c77adf43f51d25b6664beaeb407dc8d2daa755396c45ce2b4be1b08d333b378810dbebdf3c9bb5f5a03a9d372dc97b0
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ValveSoftware/openvr
+ REF v1.0.15
+ SHA512 22ad52a659e1d2e4b52832400ac5c6766d1657cb81dfb9868bdc253120c661d41eeea68991eac44af9179d2bf6a346f038f1c444278a98b55b6b738af90ba1b5
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
set(VCPKG_LIBRARY_LINKAGE dynamic)
diff --git a/ports/opus/CONTROL b/ports/opus/CONTROL
index 7177b2199..e5c715bba 100644
--- a/ports/opus/CONTROL
+++ b/ports/opus/CONTROL
@@ -1,3 +1,3 @@
Source: opus
-Version: 1.1.4
+Version: 1.2.1-1
Description: Totally open, royalty-free, highly versatile audio codec
diff --git a/ports/opus/no-main.patch b/ports/opus/no-main.patch
new file mode 100644
index 000000000..6c373de7b
--- /dev/null
+++ b/ports/opus/no-main.patch
@@ -0,0 +1,14 @@
+diff --git a/win32/VS2015/opus.vcxproj b/win32/VS2015/opus.vcxproj
+index 33bf706..296bc79 100644
+--- a/win32/VS2015/opus.vcxproj
++++ b/win32/VS2015/opus.vcxproj
+@@ -350,9 +350,6 @@
+ <ClCompile Include="..\..\src\mlp.c" />
+ <ClCompile Include="..\..\src\mlp_data.c" />
+ <ClCompile Include="..\..\src\opus.c" />
+- <ClCompile Include="..\..\src\opus_compare.c">
+- <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+- </ClCompile>
+ <ClCompile Include="..\..\src\opus_decoder.c" />
+ <ClCompile Include="..\..\src\opus_encoder.c" />
+ <ClCompile Include="..\..\src\opus_multistream.c" />
diff --git a/ports/opus/portfile.cmake b/ports/opus/portfile.cmake
index a004f09dd..ed2ed092e 100644
--- a/ports/opus/portfile.cmake
+++ b/ports/opus/portfile.cmake
@@ -1,11 +1,27 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+ message(FATAL_ERROR "UWP builds not supported")
+endif()
+
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/opus-1.1.4)
-vcpkg_download_distfile(ARCHIVE
- URLS "http://downloads.xiph.org/releases/opus/opus-1.1.4.tar.gz"
- FILENAME "opus-1.1.4.tar.gz"
- SHA512 57f14b9e8037eaa02a4d86535d3bbcceca249310fbc9ef1a452cc19dd442d4cf338d5db241d20605c236e22549df2c8266b7486c5f1666b80c532afd52cb3585
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO xiph/opus
+ REF v1.2.1
+ SHA512 fdc64b43875dd07dc9eb1c37e9a61d1c10e3095de62ed9597d51b93445136958c9f5fee78c33ae7f90c72a20200083cdc727d8e79f2f9e580ad4e2f8c50cccb4
+ HEAD_REF master
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/no-main.patch"
)
-vcpkg_extract_source_archive(${ARCHIVE})
+
+# Ensure proper crt linkage
+file(READ ${SOURCE_PATH}/win32/VS2015/common.props OPUS_PROPS)
+if(VCPKG_CRT_LINKAGE STREQUAL dynamic)
+ string(REPLACE ">MultiThreaded<" ">MultiThreadedDLL<" OPUS_PROPS "${OPUS_PROPS}")
+ string(REPLACE ">MultiThreadedDebug<" ">MultiThreadedDebugDLL<" OPUS_PROPS "${OPUS_PROPS}")
+else()
+ string(REPLACE ">MultiThreadedDLL<" ">MultiThreaded<" OPUS_PROPS "${OPUS_PROPS}")
+ string(REPLACE ">MultiThreadedDebugDLL<" ">MultiThreadedDebug<" OPUS_PROPS "${OPUS_PROPS}")
+endif()
+file(WRITE ${SOURCE_PATH}/win32/VS2015/common.props "${OPUS_PROPS}")
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(RELEASE_CONFIGURATION "Release")
@@ -20,44 +36,21 @@ if(TARGET_TRIPLET MATCHES "x86")
elseif(TARGET_TRIPLET MATCHES "x64")
set(ARCH_DIR "x64")
else()
- message("Architecture not supported")
+ message(FATAL_ERROR "Architecture not supported")
endif()
-function(build_project PROJECT_PATH)
- vcpkg_build_msbuild(
- PROJECT_PATH ${PROJECT_PATH}
- RELEASE_CONFIGURATION ${RELEASE_CONFIGURATION}
- DEBUG_CONFIGURATION ${DEBUG_CONFIGURATION}
- )
-endfunction(build_project)
-
-
-build_project(${SOURCE_PATH}/win32/VS2015/celt.vcxproj)
-build_project(${SOURCE_PATH}/win32/VS2015/silk_common.vcxproj)
-build_project(${SOURCE_PATH}/win32/VS2015/silk_float.vcxproj)
-build_project(${SOURCE_PATH}/win32/VS2015/silk_fixed.vcxproj)
-build_project(${SOURCE_PATH}/win32/VS2015/opus.vcxproj)
-
+vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/win32/VS2015/opus.vcxproj
+ RELEASE_CONFIGURATION ${RELEASE_CONFIGURATION}
+ DEBUG_CONFIGURATION ${DEBUG_CONFIGURATION}
+)
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
# Install release build
file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${RELEASE_CONFIGURATION}/opus.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${RELEASE_CONFIGURATION}/celt.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${RELEASE_CONFIGURATION}/silk_common.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${RELEASE_CONFIGURATION}/silk_fixed.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${RELEASE_CONFIGURATION}/silk_float.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
# Install debug build
file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/opus.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/opus.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/celt.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/celt.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/silk_common.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/silk_common.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/silk_fixed.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/silk_fixed.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/silk_float.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/silk_float.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
else()
# Install release build
file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${RELEASE_CONFIGURATION}/opus.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
@@ -66,11 +59,18 @@ else()
# Install debug build
file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/opus.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/opus.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin/)
- file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/opus.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin/)
endif()
+vcpkg_copy_pdbs()
+
# Install headers
file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR}/include RENAME opus)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(READ ${CURRENT_PACKAGES_DIR}/include/opus/opus_defines.h OPUS_DEFINES)
+ string(REPLACE "define OPUS_EXPORT" "define OPUS_EXPORT __declspec(dllimport)" OPUS_DEFINES "${OPUS_DEFINES}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/opus/opus_defines.h "${OPUS_DEFINES}")
+endif()
+
# Handle copyright
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/opus RENAME copyright)
diff --git a/ports/opusfile/CMakeLists.txt b/ports/opusfile/CMakeLists.txt
new file mode 100644
index 000000000..737adee1a
--- /dev/null
+++ b/ports/opusfile/CMakeLists.txt
@@ -0,0 +1,40 @@
+cmake_minimum_required(VERSION 3.4)
+project(opusfile C)
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4267 /wd4244 /wd4090")
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+find_path(OGG_INCLUDE_DIR ogg/ogg.h)
+find_library(OGG_LIBRARY ogg)
+
+find_path(OPUS_INCLUDE_DIR opus.h PATH_SUFFIXES opus)
+find_library(OPUS_LIBRARY opus)
+
+find_package(OpenSSL MODULE REQUIRED)
+
+add_library(opusfile
+ src/info.c
+ src/internal.c
+ src/opusfile.c
+ src/stream.c)
+
+target_include_directories(opusfile PRIVATE include PUBLIC ${OGG_INCLUDE_DIR} ${OPUS_INCLUDE_DIR})
+target_link_libraries(opusfile PRIVATE ${OGG_LIBRARY} ${OPUS_LIBRARY})
+
+add_library(opusurl
+ src/http.c
+ src/wincerts.c)
+
+target_compile_definitions(opusurl PRIVATE OP_ENABLE_HTTP)
+target_include_directories(opusurl PRIVATE include)
+target_link_libraries(opusurl PRIVATE opusfile OpenSSL::SSL ws2_32.lib crypt32.lib)
+
+install(TARGETS opusfile opusurl
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
+if(NOT OPUSFILE_SKIP_HEADERS)
+ install(FILES include/opusfile.h
+ DESTINATION include/opus)
+endif()
diff --git a/ports/opusfile/CONTROL b/ports/opusfile/CONTROL
new file mode 100644
index 000000000..5489cb4b2
--- /dev/null
+++ b/ports/opusfile/CONTROL
@@ -0,0 +1,4 @@
+Source: opusfile
+Version: 0.9-1
+Description: Stand-alone decoder library for .opus streams
+Build-Depends: libogg, opus, openssl
diff --git a/ports/opusfile/portfile.cmake b/ports/opusfile/portfile.cmake
new file mode 100644
index 000000000..06c2a2196
--- /dev/null
+++ b/ports/opusfile/portfile.cmake
@@ -0,0 +1,29 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+ message(FATAL_ERROR "UWP builds not supported")
+endif()
+
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO xiph/opusfile
+ REF v0.9
+ SHA512 8bada67cf12511fd914813fe782a5bf40a5d1ecadbe77e2e8d7bf40bf09bf0e6af3dfbc9b7987496dea813d3b120897cb9117f06521eeb098105e1a795ab702b
+ HEAD_REF master)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DOPUSFILE_SKIP_HEADERS=ON)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+# make includes work with MSBuild integration
+file(READ ${CURRENT_PACKAGES_DIR}/include/opus/opusfile.h OPUSFILE_H)
+ string(REPLACE "# include <opus_multistream.h>" "# include \"opus_multistream.h\"" OPUSFILE_H "${OPUSFILE_H}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/opus/opusfile.h "${OPUSFILE_H}")
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/opusfile)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/opusfile/COPYING ${CURRENT_PACKAGES_DIR}/share/opusfile/copyright)
diff --git a/ports/osg/CONTROL b/ports/osg/CONTROL
new file mode 100644
index 000000000..4e3a308a4
--- /dev/null
+++ b/ports/osg/CONTROL
@@ -0,0 +1,4 @@
+Source: osg
+Version: 3.5.6-2
+Description: The OpenSceneGraph is an open source high performance 3D graphics toolkit.
+Build-Depends: freetype, jasper, openexr, zlib, gdal, giflib, libjpeg-turbo, libpng, tiff
diff --git a/ports/osg/portfile.cmake b/ports/osg/portfile.cmake
new file mode 100644
index 000000000..ac6f8e2ee
--- /dev/null
+++ b/ports/osg/portfile.cmake
@@ -0,0 +1,58 @@
+# 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)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(STATUS "Warning: Static building will not support load data through plugins.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/OpenSceneGraph-OpenSceneGraph-3.5.6)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/openscenegraph/OpenSceneGraph/archive/OpenSceneGraph-3.5.6.zip"
+ FILENAME "osg-3.5.6.zip"
+ SHA512 f1745748ff86243291da96a4781af9487204a82540d3cc42b33bcbf693137ab9a6a741cad18afa74f62ef66933840ac54894397f880471f6c639210fa23e7f4b
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ # PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ -DOSG_USE_UTF8_FILENAME=ON
+ # OPTIONS_RELEASE -DOPTIMIZE=1
+ # OPTIONS_DEBUG -DDEBUGGABLE=1
+)
+
+vcpkg_install_cmake()
+
+# handle osg tools and plugins
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+set(OSG_TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/osg)
+file(MAKE_DIRECTORY ${OSG_TOOL_PATH})
+
+file(GLOB OSG_TOOLS ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+file(COPY ${OSG_TOOLS} DESTINATION ${OSG_TOOL_PATH})
+file(REMOVE_RECURSE ${OSG_TOOLS})
+file(GLOB OSG_TOOLS_DBG ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+file(REMOVE_RECURSE ${OSG_TOOLS_DBG})
+
+file(GLOB OSG_PLUGINS_DBG ${CURRENT_PACKAGES_DIR}/debug/bin/osgPlugins-3.5.6/*.dll)
+file(COPY ${OSG_PLUGINS_DBG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/osg/osgPlugins-3.5.6)
+file(GLOB OSG_PLUGINS_REL ${CURRENT_PACKAGES_DIR}/bin/osgPlugins-3.5.6/*.dll)
+file(COPY ${OSG_PLUGINS_REL} DESTINATION ${OSG_TOOL_PATH}/osgPlugins-3.5.6)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/osgPlugins-3.5.6/)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/osgPlugins-3.5.6/)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/osg)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/osg/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/osg/copyright)
diff --git a/ports/osgearth/CONTROL b/ports/osgearth/CONTROL
new file mode 100644
index 000000000..34c5bad24
--- /dev/null
+++ b/ports/osgearth/CONTROL
@@ -0,0 +1,4 @@
+Source: osgearth
+Version: 2.9
+Description: osgEarth - Dynamic map generation toolkit for OpenSceneGraph Copyright 2015 Pelican Mapping.
+Build-Depends: osg
diff --git a/ports/osgearth/portfile.cmake b/ports/osgearth/portfile.cmake
new file mode 100644
index 000000000..501c38d08
--- /dev/null
+++ b/ports/osgearth/portfile.cmake
@@ -0,0 +1,64 @@
+include(vcpkg_common_functions)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(STATUS "Warning: Static building will not support load data through plugins.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+if(VCPKG_CRT_LINKAGE STREQUAL static)
+ message(FATAL_ERROR "osgearth does not support static CRT linkage")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO gwaldron/osgearth
+ REF d06e47995620674900d96eb694ff4866a29a9d4f
+ SHA512 d4b790dc2be4b6ffcd3ab5b4c1062bb56dd4503511ea3f4033a2546ce553dbd45535bfb70ba646416acebf67eba2e5d2740a05477387acad87956bf99fc4038a
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+#Release
+set(OSGEARTH_TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/osgearth)
+set(OSGEARTH_TOOL_PLUGIN_PATH ${OSGEARTH_TOOL_PATH}/osgPlugins-3.5.6)
+
+file(MAKE_DIRECTORY ${OSGEARTH_TOOL_PATH})
+file(MAKE_DIRECTORY ${OSGEARTH_TOOL_PLUGIN_PATH})
+
+file(GLOB OSGEARTH_TOOLS ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+file(GLOB OSGDB_PLUGINS ${CURRENT_PACKAGES_DIR}/bin/osgdb*.dll)
+
+file(COPY ${OSGEARTH_TOOLS} DESTINATION ${OSGEARTH_TOOL_PATH})
+file(COPY ${OSGDB_PLUGINS} DESTINATION ${OSGEARTH_TOOL_PLUGIN_PATH})
+
+file(REMOVE_RECURSE ${OSGEARTH_TOOLS})
+file(REMOVE_RECURSE ${OSGDB_PLUGINS})
+
+#Debug
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+set(OSGEARTH_DEBUG_TOOL_PATH ${CURRENT_PACKAGES_DIR}/debug/tools/osgearth)
+set(OSGEARTH_DEBUG_TOOL_PLUGIN_PATH ${OSGEARTH_DEBUG_TOOL_PATH}/osgPlugins-3.5.6)
+
+file(MAKE_DIRECTORY ${OSGEARTH_DEBUG_TOOL_PATH})
+file(MAKE_DIRECTORY ${OSGEARTH_DEBUG_TOOL_PLUGIN_PATH})
+
+file(GLOB OSGEARTH_DEBUG_TOOLS ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+file(GLOB OSGDB_DEBUG_PLUGINS ${CURRENT_PACKAGES_DIR}/debug/bin/osgdb*.dll)
+
+file(COPY ${OSGEARTH_DEBUG_TOOLS} DESTINATION ${OSGEARTH_DEBUG_TOOL_PATH})
+file(COPY ${OSGDB_DEBUG_PLUGINS} DESTINATION ${OSGEARTH_DEBUG_TOOL_PLUGIN_PATH})
+
+file(REMOVE_RECURSE ${OSGEARTH_DEBUG_TOOLS})
+file(REMOVE_RECURSE ${OSGDB_DEBUG_PLUGINS})
+
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/osgearth)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/osgearth/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/osgearth/copyright) \ No newline at end of file
diff --git a/ports/paho-mqtt/CONTROL b/ports/paho-mqtt/CONTROL
new file mode 100644
index 000000000..1acf080ff
--- /dev/null
+++ b/ports/paho-mqtt/CONTROL
@@ -0,0 +1,4 @@
+Source: paho-mqtt
+Version: 1.2.0-3
+Description: Paho project provides open-source client implementations of MQTT and MQTT-SN messaging protocols aimed at new, existing, and emerging applications for the Internet of Things
+Build-Depends: openssl
diff --git a/ports/paho-mqtt/disable_tests.patch b/ports/paho-mqtt/disable_tests.patch
new file mode 100644
index 000000000..ed9a644ff
--- /dev/null
+++ b/ports/paho-mqtt/disable_tests.patch
@@ -0,0 +1,16 @@
+diff --git "a/CMakeLists.txt" "b/CMakeLists.txt"
+index c041df0..2feb580 100644
+--- "a/CMakeLists.txt"
++++ "b/CMakeLists.txt"
+@@ -94,7 +94,10 @@ SET(CPACK_PACKAGE_VERSION_MINOR ${PAHO_VERSION_MINOR})
+ SET(CPACK_PACKAGE_VERSION_PATCH ${PAHO_VERSION_PATCH})
+ INCLUDE(CPack)
+
++if(BUILD_TESTS)
+ ENABLE_TESTING()
+
+ INCLUDE_DIRECTORIES(test src)
+ ADD_SUBDIRECTORY(test)
++
++endif()
+\ No newline at end of file
diff --git a/ports/paho-mqtt/portfile.cmake b/ports/paho-mqtt/portfile.cmake
new file mode 100644
index 000000000..19629b92c
--- /dev/null
+++ b/ports/paho-mqtt/portfile.cmake
@@ -0,0 +1,86 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO eclipse/paho.mqtt.c
+ REF v1.2.0
+ SHA512 ffad01a8f9f41049dd008e163136e4ecb8c7c51f7b49917201593b0844b15a8d2a413ddec06fa5b2d77e432f0603b71664a23afbb7c215121cebd7d419ccacfa
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PAHO_BUILD_STATIC)
+
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/disable_tests.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/remove_compiler_options.patch"
+)
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DPAHO_WITH_SSL=TRUE -DPAHO_BUILD_STATIC=${PAHO_BUILD_STATIC}
+)
+
+
+vcpkg_build_cmake()
+
+file(GLOB DLLS
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/*.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/src/*.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/src/*.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/src/*.lib"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/*.lib"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*/Debug/*.lib"
+)
+if(DLLS)
+ file(INSTALL ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+endif()
+if(LIBS)
+ file(INSTALL ${LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+if(DEBUG_LIBS)
+ file(INSTALL ${DEBUG_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+endif()
+file(COPY ${SOURCE_PATH}/src/MQTTAsync.h ${SOURCE_PATH}/src/MQTTClient.h ${SOURCE_PATH}/src/MQTTClientPersistence.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+ foreach(libname paho-mqtt3as-static paho-mqtt3cs-static paho-mqtt3a-static paho-mqtt3c-static)
+ foreach(foldername "lib" "debug/lib")
+ string(REPLACE "-static" "" outlibname ${libname})
+ file(RENAME ${CURRENT_PACKAGES_DIR}/${foldername}/${libname}.lib ${CURRENT_PACKAGES_DIR}/${foldername}/${outlibname}.lib)
+ endforeach()
+ endforeach()
+endif()
+
+foreach(libname paho-mqtt3a paho-mqtt3c)
+ foreach(root "${CURRENT_PACKAGES_DIR}" "${CURRENT_PACKAGES_DIR}/debug")
+ file(REMOVE
+ ${root}/lib/${libname}.lib
+ ${root}/bin/${libname}.dll
+ )
+ endforeach()
+endforeach()
+
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/about.html DESTINATION ${CURRENT_PACKAGES_DIR}/share/paho-mqtt RENAME copyright)
diff --git a/ports/paho-mqtt/remove_compiler_options.patch b/ports/paho-mqtt/remove_compiler_options.patch
new file mode 100644
index 000000000..256d07a8f
--- /dev/null
+++ b/ports/paho-mqtt/remove_compiler_options.patch
@@ -0,0 +1,13 @@
+diff --git "a/CMakeLists.txt" "b/CMakeLists.txt"
+index 2feb580..796d08e 100644
+--- "a/CMakeLists.txt"
++++ "b/CMakeLists.txt"
+@@ -55,7 +55,7 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ ENDIF()
+
+ IF(WIN32)
+- ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -DWIN32_LEAN_AND_MEAN -MD)
++ ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -DWIN32_LEAN_AND_MEAN)
+ ELSEIF(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
+ ADD_DEFINITIONS(-DOSX)
+ ENDIF()
diff --git a/ports/pango/CMakeLists.txt b/ports/pango/CMakeLists.txt
index 7dad7dbcf..9c7e7f182 100644
--- a/ports/pango/CMakeLists.txt
+++ b/ports/pango/CMakeLists.txt
@@ -81,6 +81,7 @@ pango_add_module(pango
pango/pango-color.c
pango/pango-context.c
pango/pango-coverage.c
+ pango/pango-emoji.c
pango/pango-engine.c
pango/pango-fontmap.c
pango/pango-fontset.c
diff --git a/ports/pango/CONTROL b/ports/pango/CONTROL
index 430243537..aa6c73e68 100644
--- a/ports/pango/CONTROL
+++ b/ports/pango/CONTROL
@@ -1,4 +1,4 @@
Source: pango
-Version: 1.40.5-2
+Version: 1.40.11-1
Description: Text and font handling library.
Build-Depends: glib, gettext, cairo, fontconfig, freetype, harfbuzz
diff --git a/ports/pango/portfile.cmake b/ports/pango/portfile.cmake
index 0f454a4e5..009953534 100644
--- a/ports/pango/portfile.cmake
+++ b/ports/pango/portfile.cmake
@@ -1,10 +1,10 @@
include(vcpkg_common_functions)
-set(PANGO_VERSION 1.40.5)
+set(PANGO_VERSION 1.40.11)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pango-${PANGO_VERSION})
vcpkg_download_distfile(ARCHIVE
URLS "http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-${PANGO_VERSION}.tar.xz"
FILENAME "pango-${PANGO_VERSION}.tar.xz"
- SHA512 40e8bf85dbb4b6fd35da3acec06a0d2b9dde95a3c5a212d243dbcbc0d00f12bd061757a04cb2f4a8db61329efd7ed9be53e3f5d6a2eb2a3defba1d12f9eed43d)
+ SHA512 e4ac40f8da9c326e1e4dfaf4b1d2070601b17f88f5a12991a9a8bbc58bb08640404e2a794a5c68c5ebb2e7e80d9c186d4b26cd417bb63a23f024ef8a38bb152a)
vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
@@ -20,7 +20,6 @@ vcpkg_configure_cmake(
OPTIONS_DEBUG
-DPANGO_SKIP_HEADERS=ON)
-vcpkg_build_cmake()
vcpkg_install_cmake()
vcpkg_copy_pdbs()
diff --git a/ports/pangolin/CONTROL b/ports/pangolin/CONTROL
new file mode 100644
index 000000000..a515ba50e
--- /dev/null
+++ b/ports/pangolin/CONTROL
@@ -0,0 +1,4 @@
+Source: pangolin
+Version: 0.5-3
+Build-Depends: eigen3, glew, libpng, libjpeg-turbo, ffmpeg
+Description: Lightweight GUI Library
diff --git a/ports/pangolin/portfile.cmake b/ports/pangolin/portfile.cmake
new file mode 100644
index 000000000..19763f0d6
--- /dev/null
+++ b/ports/pangolin/portfile.cmake
@@ -0,0 +1,57 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO stevenlovegrove/Pangolin
+ REF v0.5
+ SHA512 7ebeec108f33f1aa8b1ad08e3ca128a837b22d33e3fc580021f981784043b023a1bf563bbfa8b51d46863db770b336d24fc84ee3d836b85e0da1848281b2a5b2
+ HEAD_REF master
+)
+
+file(REMOVE ${SOURCE_PATH}/CMakeModules/FindGLEW.cmake)
+
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" MSVC_USE_STATIC_CRT)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
+ -DBUILD_EXTERN_GLEW=OFF
+ -DBUILD_EXTERN_LIBPNG=OFF
+ -DBUILD_EXTERN_LIBJPEG=OFF
+ -DMSVC_USE_STATIC_CRT=${MSVC_USE_STATIC_CRT}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/Pangolin")
+
+vcpkg_copy_pdbs()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ file(GLOB EXE ${CURRENT_PACKAGES_DIR}/lib/*.dll)
+ file(COPY ${EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${EXE})
+
+ file(GLOB DEBUG_EXE ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll)
+ file(COPY ${DEBUG_EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_EXE})
+
+ file(READ ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-debug.cmake PANGOLIN_TARGETS)
+ string(REPLACE "lib/pangolin.dll" "bin/pangolin.dll" PANGOLIN_TARGETS "${PANGOLIN_TARGETS}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-debug.cmake "${PANGOLIN_TARGETS}")
+
+ file(READ ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-release.cmake PANGOLIN_TARGETS)
+ string(REPLACE "lib/pangolin.dll" "bin/pangolin.dll" PANGOLIN_TARGETS "${PANGOLIN_TARGETS}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-release.cmake "${PANGOLIN_TARGETS}")
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Copy missing header file
+file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/include/pangolin/pangolin_export.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/pangolin)
+
+# Put the license file where vcpkg expects it
+file(COPY ${SOURCE_PATH}/LICENCE DESTINATION ${CURRENT_PACKAGES_DIR}/share/Pangolin/)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/Pangolin/LICENCE ${CURRENT_PACKAGES_DIR}/share/Pangolin/copyright)
diff --git a/ports/pangomm/CONTROL b/ports/pangomm/CONTROL
new file mode 100644
index 000000000..68860b305
--- /dev/null
+++ b/ports/pangomm/CONTROL
@@ -0,0 +1,4 @@
+Source: pangomm
+Version: 2.40.1
+Description: pangomm is the official C++ interface for the Pango font layout library. See, for instance, the Pango::Layout class.
+Build-Depends: glib, gettext, cairo, fontconfig, freetype, harfbuzz, pango, cairomm, glibmm
diff --git a/ports/pangomm/COPYING b/ports/pangomm/COPYING
new file mode 100644
index 000000000..c4792dd27
--- /dev/null
+++ b/ports/pangomm/COPYING
@@ -0,0 +1,515 @@
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations
+below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+^L
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it
+becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+^L
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control
+compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+^L
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+^L
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+^L
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+^L
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply, and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License
+may add an explicit geographical distribution limitation excluding those
+countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+^L
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+^L
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms
+of the ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library.
+It is safest to attach them to the start of each source file to most
+effectively convey the exclusion of warranty; and each file should
+have at least the "copyright" line and a pointer to where the full
+notice is found.
+
+
+ <one line to give the library's name and a brief idea of what it
+does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper
+mail.
+
+You should also get your employer (if you work as a programmer) or
+your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James
+Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/ports/pangomm/README b/ports/pangomm/README
new file mode 100644
index 000000000..37c05b4ee
--- /dev/null
+++ b/ports/pangomm/README
@@ -0,0 +1,3 @@
+This is pangomm, a C++ API for Pango.
+See http://www.gtkmm.org/
+
diff --git a/ports/pangomm/fix_charset.patch b/ports/pangomm/fix_charset.patch
new file mode 100644
index 000000000..d57063c86
--- /dev/null
+++ b/ports/pangomm/fix_charset.patch
@@ -0,0 +1,110 @@
+diff --git a/MSVC_Net2013/gendef.vcxproj b/MSVC_Net2013/gendef.vcxproj
+index ceca956..c29a2a1 100644
+--- a/MSVC_Net2013/gendef.vcxproj
++++ b/MSVC_Net2013/gendef.vcxproj
+@@ -21,26 +21,27 @@
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{07324745-C9BE-4D65-B08A-9C88188C0C28}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+diff --git a/MSVC_Net2013/install.vcxproj b/MSVC_Net2013/install.vcxproj
+index fecde32..8f97675 100644
+--- a/MSVC_Net2013/install.vcxproj
++++ b/MSVC_Net2013/install.vcxproj
+@@ -22,28 +22,29 @@
+ <ProjectGuid>{2093D218-190E-4194-9421-3BA7CBF33B10}</ProjectGuid>
+ <RootNamespace>install</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+diff --git a/MSVC_Net2013/pangomm.vcxproj b/MSVC_Net2013/pangomm.vcxproj
+index aa03fad..d63becf 100644
+--- a/MSVC_Net2013/pangomm.vcxproj
++++ b/MSVC_Net2013/pangomm.vcxproj
+@@ -23,26 +23,27 @@
+ <ProjectGuid>{A93D607A-5C37-4AEC-BA08-6A655F6DC834}</ProjectGuid>
+ <RootNamespace>pangomm</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
++ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+- <CharacterSet>MultiByte</CharacterSet>
++ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
diff --git a/ports/pangomm/fix_properties.patch b/ports/pangomm/fix_properties.patch
new file mode 100644
index 000000000..22ee67bf1
--- /dev/null
+++ b/ports/pangomm/fix_properties.patch
@@ -0,0 +1,75 @@
+diff --git a/MSVC_Net2013/pangomm-build-defines.props b/MSVC_Net2013/pangomm-build-defines.props
+index 3c3108d..f30890b 100644
+--- a/MSVC_Net2013/pangomm-build-defines.props
++++ b/MSVC_Net2013/pangomm-build-defines.props
+@@ -5,8 +5,6 @@
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros">
+ <PangoMMBuildDefs>PANGOMM_BUILD</PangoMMBuildDefs>
+- <CPPDepLibsRelease>glibmm-vc$(VSVer)0-2_4.lib;cairomm-vc$(VSVer)0-1_0.lib;sigc-vc$(VSVer)0-2_0.lib</CPPDepLibsRelease>
+- <CPPDepLibsDebug>glibmm-vc$(VSVer)0-d-2_4.lib;cairomm-vc$(VSVer)0-d-1_0.lib;sigc-vc$(VSVer)0-d-2_0.lib</CPPDepLibsDebug>
+ </PropertyGroup>
+ <PropertyGroup>
+ <_PropertySheetDisplayName>panogmmbuilddefinesprops</_PropertySheetDisplayName>
+@@ -15,14 +13,14 @@
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+ <ClCompile>
+- <AdditionalIncludeDirectories>.\pangomm;..\pango;$(GlibEtcInstallRoot)\include\glibmm-2.4;$(GlibEtcInstallRoot)\lib\glibmm-2.4\include;$(GlibEtcInstallRoot)\include\cairomm-1.0;$(GlibEtcInstallRoot)\lib\cairomm-1.0\include;$(GlibEtcInstallRoot)\include\sigc++-2.0;$(GlibEtcInstallRoot)\lib\sigc++-2.0\include;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++ <AdditionalIncludeDirectories>.\pangomm;..\pango;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <AdditionalOptions>/d2Zi+ %(AdditionalOptions)</AdditionalOptions>
+ </ClCompile>
+ <Link>
+- <AdditionalDependencies>pangocairo-1.0.lib;pango-1.0.lib;gobject-2.0.lib;gmodule-2.0.lib;glib-2.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
+- <AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
++ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+diff --git a/MSVC_Net2013/pangomm-version-paths.props b/MSVC_Net2013/pangomm-version-paths.props
+index b287629..01a267e 100644
+--- a/MSVC_Net2013/pangomm-version-paths.props
++++ b/MSVC_Net2013/pangomm-version-paths.props
+@@ -2,13 +2,9 @@
+ <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup Label="UserMacros">
+ <VSVer>12</VSVer>
+- <GlibEtcInstallRoot>$(SolutionDir)\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
+- <CopyDir>$(GlibEtcInstallRoot)</CopyDir>
+ <DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName)\</DefDir>
+ <ApiMajorVersion>1</ApiMajorVersion>
+ <ApiMinorVersion>4</ApiMinorVersion>
+- <ReleaseDllSuffix>-vc$(VSVer)0-$(ApiMajorVersion)_$(ApiMinorVersion)</ReleaseDllSuffix>
+- <DebugDllSuffix>-vc$(VSVer)0-d-$(ApiMajorVersion)_$(ApiMinorVersion)</DebugDllSuffix>
+ </PropertyGroup>
+ <PropertyGroup>
+ <_PropertySheetDisplayName>pangommversionpathsprops</_PropertySheetDisplayName>
+@@ -17,12 +13,6 @@
+ <BuildMacro Include="VSVer">
+ <Value>$(VSVer)</Value>
+ </BuildMacro>
+- <BuildMacro Include="GlibEtcInstallRoot">
+- <Value>$(GlibEtcInstallRoot)</Value>
+- </BuildMacro>
+- <BuildMacro Include="CopyDir">
+- <Value>$(CopyDir)</Value>
+- </BuildMacro>
+ <BuildMacro Include="DefDir">
+ <Value>$(DefDir)</Value>
+ </BuildMacro>
+@@ -32,11 +22,5 @@
+ <BuildMacro Include="ApiMinorVersion">
+ <Value>$(ApiMinorVersion)</Value>
+ </BuildMacro>
+- <BuildMacro Include="ReleaseDllSuffix">
+- <Value>$(ReleaseDllSuffix)</Value>
+- </BuildMacro>
+- <BuildMacro Include="DebugDllSuffix">
+- <Value>$(DebugDllSuffix)</Value>
+- </BuildMacro>
+ </ItemGroup>
+ </Project>
+\ No newline at end of file
diff --git a/ports/pangomm/msvc_recommended_pragmas.h b/ports/pangomm/msvc_recommended_pragmas.h
new file mode 100644
index 000000000..c0eb1d5ed
--- /dev/null
+++ b/ports/pangomm/msvc_recommended_pragmas.h
@@ -0,0 +1,34 @@
+#ifndef _MSC_VER
+#pragma error "This header is for Microsoft VC only."
+#endif /* _MSC_VER */
+
+/* Make MSVC more pedantic, this is a recommended pragma list
+ * from _Win32_Programming_ by Rector and Newcomer.
+ */
+#pragma warning(error:4002) /* too many actual parameters for macro */
+#pragma warning(error:4003) /* not enough actual parameters for macro */
+#pragma warning(1:4010) /* single-line comment contains line-continuation character */
+#pragma warning(error:4013) /* 'function' undefined; assuming extern returning int */
+#pragma warning(1:4016) /* no function return type; using int as default */
+#pragma warning(error:4020) /* too many actual parameters */
+#pragma warning(error:4021) /* too few actual parameters */
+#pragma warning(error:4027) /* function declared without formal parameter list */
+#pragma warning(error:4029) /* declared formal parameter list different from definition */
+#pragma warning(error:4033) /* 'function' must return a value */
+#pragma warning(error:4035) /* 'function' : no return value */
+#pragma warning(error:4045) /* array bounds overflow */
+#pragma warning(error:4047) /* different levels of indirection */
+#pragma warning(error:4049) /* terminating line number emission */
+#pragma warning(error:4053) /* An expression of type void was used as an operand */
+#pragma warning(error:4071) /* no function prototype given */
+#pragma warning(disable:4101) /* unreferenced local variable */
+#pragma warning(error:4150)
+
+#pragma warning(disable:4244) /* No possible loss of data warnings */
+#pragma warning(disable:4305) /* No truncation from int to char warnings */
+
+#pragma warning(error:4819) /* The file contains a character that cannot be represented in the current code page */
+
+/* work around Microsoft's premature attempt to deprecate the C-Library */
+#define _CRT_SECURE_NO_WARNINGS
+#define _CRT_NONSTDC_NO_WARNINGS
diff --git a/ports/pangomm/portfile.cmake b/ports/pangomm/portfile.cmake
new file mode 100644
index 000000000..e3409fe15
--- /dev/null
+++ b/ports/pangomm/portfile.cmake
@@ -0,0 +1,76 @@
+# 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/pangomm-2.40.1)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://ftp.gnome.org/pub/GNOME/sources/pangomm/2.40/pangomm-2.40.1.tar.xz"
+ FILENAME "pangomm-2.40.1.tar.xz"
+ SHA512 bed19800b76e69cc51abeb5997bdc2f687f261ebcbe36aeee51f1fbf5010a46f4b9469033c34a912502001d9985135fd5c7f7574d3de8ba33cc5832520c6aa6f
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix_properties.patch ${CMAKE_CURRENT_LIST_DIR}/fix_charset.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/msvc_recommended_pragmas.h DESTINATION ${SOURCE_PATH}/MSVC_Net2013)
+
+set(VS_PLATFORM ${VCPKG_TARGET_ARCHITECTURE})
+if(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86)
+ set(VS_PLATFORM "Win32")
+endif(${VCPKG_TARGET_ARCHITECTURE} STREQUAL x86)
+vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/MSVC_Net2013/pangomm.sln
+ TARGET pangomm
+ PLATFORM ${VS_PLATFORM}
+ USE_VCPKG_INTEGRATION
+)
+
+# Handle headers
+file(COPY ${SOURCE_PATH}/MSVC_Net2013/pangomm/pangommconfig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(COPY ${SOURCE_PATH}/pango/pangomm.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(
+ COPY
+ ${SOURCE_PATH}/pango/pangomm
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
+ FILES_MATCHING PATTERN *.h
+)
+
+# Handle libraries
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/pangomm.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+)
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Release/${VS_PLATFORM}/bin/pangomm.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+)
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/pangomm.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+)
+file(
+ COPY
+ ${SOURCE_PATH}/MSVC_Net2013/Debug/${VS_PLATFORM}/bin/pangomm.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+vcpkg_copy_pdbs()
+
+# Handle copyright and readme
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/pangomm RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/pangomm RENAME readme.txt)
diff --git a/ports/parmetis/CONTROL b/ports/parmetis/CONTROL
index 86a367cbd..bb2237654 100644
--- a/ports/parmetis/CONTROL
+++ b/ports/parmetis/CONTROL
@@ -1,4 +1,4 @@
Source: parmetis
-Version: 4.0.3
+Version: 4.0.3-1
Description: Parallel Graph Partitioning and Fill-reducing Matrix Ordering
Build-Depends: metis, msmpi
diff --git a/ports/parson/CMakeLists.txt b/ports/parson/CMakeLists.txt
new file mode 100644
index 000000000..f96ed427c
--- /dev/null
+++ b/ports/parson/CMakeLists.txt
@@ -0,0 +1,19 @@
+cmake_minimum_required(VERSION 3.5)
+project(parson C)
+
+add_library(parson parson.c)
+target_include_directories(parson PUBLIC $<INSTALL_INTERFACE:include>)
+
+install(TARGETS parson
+ EXPORT unofficial-parson-targets
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+install(
+ EXPORT unofficial-parson-targets
+ FILE unofficial-parson-config.cmake
+ NAMESPACE unofficial::parson::
+ DESTINATION share/unofficial-parson
+)
diff --git a/ports/parson/CONTROL b/ports/parson/CONTROL
new file mode 100644
index 000000000..5a6d27896
--- /dev/null
+++ b/ports/parson/CONTROL
@@ -0,0 +1,3 @@
+Source: parson
+Version: 2018-05-17
+Description: a lighweight json library written in C
diff --git a/ports/parson/portfile.cmake b/ports/parson/portfile.cmake
new file mode 100644
index 000000000..134520fbd
--- /dev/null
+++ b/ports/parson/portfile.cmake
@@ -0,0 +1,33 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("parson only supports static linkage")
+ set(VCPKG_LIBRARY_LINKAGE "static")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO kgabis/parson
+ REF 4f3eaa6849ba62404fc5756650168bb2056d0b46
+ SHA512 dd98ebdb7f39387e600d529b8c92986f20781e7ec6b2baffcdc553e834be826ada4724247750300a897cacdee8f942d3c7d540e6bb410c2854a9291a80df847f
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(COPY ${SOURCE_PATH}/parson.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-parson TARGET_PATH share/unofficial-parson)
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/parson RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/pcl/CONTROL b/ports/pcl/CONTROL
new file mode 100644
index 000000000..82f5cdea3
--- /dev/null
+++ b/ports/pcl/CONTROL
@@ -0,0 +1,24 @@
+Source: pcl
+Version: 1.8.1-10
+Description: Point Cloud Library (PCL) is open source library for 2D/3D image and point cloud processing.
+Build-Depends: eigen3, flann, qhull, vtk, libpng, 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
+Build-Depends: vtk[qt]
+
+Feature: pcap
+Description: PCAP support for PCL
+Build-Depends: winpcap
+
+Feature: tools
+Description: Build PCL utilities
+Build-Depends: boost-accumulators
+
+Feature: cuda
+Description: CUDA support for PCL
+Build-Depends: cuda \ No newline at end of file
diff --git a/ports/pcl/boost_uuid_random_generator_compat.patch b/ports/pcl/boost_uuid_random_generator_compat.patch
new file mode 100644
index 000000000..891890b46
--- /dev/null
+++ b/ports/pcl/boost_uuid_random_generator_compat.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0405dca2..00e5238e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -168,6 +168,8 @@ if(CMAKE_COMPILER_IS_MSVC)
+ endif()
+ endif()
+
++add_definitions(-DBOOST_UUID_RANDOM_GENERATOR_COMPAT)
++
+ if(CMAKE_COMPILER_IS_PATHSCALE)
+ if("${CMAKE_CXX_FLAGS}" STREQUAL "")
+ SET(CMAKE_CXX_FLAGS "-Wno-uninitialized -zerouv -pthread -mp")
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/config.patch b/ports/pcl/config.patch
new file mode 100644
index 000000000..1b46ab7ce
--- /dev/null
+++ b/ports/pcl/config.patch
@@ -0,0 +1,63 @@
+diff --git a/PCLConfig.cmake.in b/PCLConfig.cmake.in
+index f4ef6a0ff..3a2c259dc 100644
+--- a/PCLConfig.cmake.in
++++ b/PCLConfig.cmake.in
+@@ -155,7 +155,7 @@ macro(find_qhull)
+ NAMES "@QHULL_LIBRARY_DEBUG_NAME@"
+ HINTS "${QHULL_ROOT}" "$ENV{QHULL_ROOT}"
+ PATHS "$ENV{PROGRAMFILES}/qhull" "$ENV{PROGRAMW6432}/qhull"
+- PATH_SUFFIXES project build bin lib)
++ PATH_SUFFIXES project build bin lib debug/lib)
+
+ find_package_handle_standard_args(qhull DEFAULT_MSG QHULL_LIBRARY QHULL_INCLUDE_DIRS)
+
+@@ -443,7 +443,7 @@ macro(find_flann)
+ HINTS ${PC_FLANN_LIBDIR} ${PC_FLANN_LIBRARY_DIRS} "${FLANN_ROOT}" "$ENV{FLANN_ROOT}"
+ PATHS "$ENV{PROGRAMFILES}/flann 1.6.9" "$ENV{PROGRAMW6432}/flann 1.6.9"
+ "$ENV{PROGRAMFILES}/flann" "$ENV{PROGRAMW6432}/flann"
+- PATH_SUFFIXES lib)
++ PATH_SUFFIXES lib debug/lib)
+
+ find_package_handle_standard_args(Flann DEFAULT_MSG FLANN_LIBRARY FLANN_INCLUDE_DIRS)
+ if(FLANN_FOUND)
+@@ -715,25 +715,18 @@ file(TO_CMAKE_PATH "${PCL_DIR}" PCL_DIR)
+ if(WIN32 AND NOT MINGW)
+ # PCLConfig.cmake is installed to PCL_ROOT/cmake
+ get_filename_component(PCL_ROOT "${PCL_DIR}" PATH)
++ get_filename_component(PCL_ROOT "${PCL_ROOT}" PATH)
+ else(WIN32 AND NOT MINGW)
+ # PCLConfig.cmake is installed to PCL_ROOT/share/pcl-x.y
+ get_filename_component(PCL_ROOT "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE)
+ endif(WIN32 AND NOT MINGW)
+
+ # check whether PCLConfig.cmake is found into a PCL installation or in a build tree
+-if(EXISTS "${PCL_ROOT}/include/pcl-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}/pcl/pcl_config.h")
++if(EXISTS "${PCL_ROOT}/include/pcl/pcl_config.h")
+ # Found a PCL installation
+ # pcl_message("Found a PCL installation")
+- set(PCL_INCLUDE_DIRS "${PCL_ROOT}/include/pcl-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}")
+- set(PCL_LIBRARY_DIRS "${PCL_ROOT}/@LIB_INSTALL_DIR@")
+- if(EXISTS "${PCL_ROOT}/3rdParty")
+- set(PCL_ALL_IN_ONE_INSTALLER ON)
+- endif(EXISTS "${PCL_ROOT}/3rdParty")
+-elseif(EXISTS "${PCL_ROOT}/include/pcl/pcl_config.h")
+- # Found a non-standard (likely ANDROID) PCL installation
+- # pcl_message("Found a PCL installation")
+ set(PCL_INCLUDE_DIRS "${PCL_ROOT}/include")
+- set(PCL_LIBRARY_DIRS "${PCL_ROOT}/lib")
++ set(PCL_LIBRARY_DIRS "${PCL_ROOT}/@LIB_INSTALL_DIR@" "${PCL_ROOT}/debug/@LIB_INSTALL_DIR@")
+ if(EXISTS "${PCL_ROOT}/3rdParty")
+ set(PCL_ALL_IN_ONE_INSTALLER ON)
+ endif(EXISTS "${PCL_ROOT}/3rdParty")
+@@ -743,9 +736,9 @@ elseif(EXISTS "${PCL_DIR}/include/pcl/pcl_config.h")
+ set(PCL_INCLUDE_DIRS "${PCL_DIR}/include") # for pcl_config.h
+ set(PCL_LIBRARY_DIRS "${PCL_DIR}/@LIB_INSTALL_DIR@")
+ set(PCL_SOURCES_TREE "@CMAKE_SOURCE_DIR@")
+-else(EXISTS "${PCL_ROOT}/include/pcl-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}/pcl/pcl_config.h")
++else(EXISTS "${PCL_ROOT}/include/pcl/pcl_config.h")
+ pcl_report_not_found("PCL can not be found on this machine")
+-endif(EXISTS "${PCL_ROOT}/include/pcl-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}/pcl/pcl_config.h")
++endif(EXISTS "${PCL_ROOT}/include/pcl/pcl_config.h")
+
+ #set a suffix for debug libraries
+ set(PCL_DEBUG_SUFFIX "@CMAKE_DEBUG_POSTFIX@")
diff --git a/ports/pcl/config_install.patch b/ports/pcl/config_install.patch
new file mode 100644
index 000000000..ae5e8257b
--- /dev/null
+++ b/ports/pcl/config_install.patch
@@ -0,0 +1,22 @@
+diff --git a/cmake/pcl_utils.cmake b/cmake/pcl_utils.cmake
+index 69f1e76a4..37305815e 100644
+--- a/cmake/pcl_utils.cmake
++++ b/cmake/pcl_utils.cmake
+@@ -105,7 +105,7 @@ macro(SET_INSTALL_DIRS)
+ endif (NOT DEFINED LIB_INSTALL_DIR)
+ if(NOT ANDROID)
+ set(INCLUDE_INSTALL_ROOT
+- "include/${PROJECT_NAME_LOWER}-${PCL_MAJOR_VERSION}.${PCL_MINOR_VERSION}")
++ "include")
+ else(NOT ANDROID)
+ set(INCLUDE_INSTALL_ROOT "include") # Android, don't put into subdir
+ endif(NOT ANDROID)
+@@ -114,7 +114,7 @@ macro(SET_INSTALL_DIRS)
+ set(BIN_INSTALL_DIR "bin")
+ set(PKGCFG_INSTALL_DIR "${LIB_INSTALL_DIR}/pkgconfig")
+ if(WIN32 AND NOT MINGW)
+- set(PCLCONFIG_INSTALL_DIR "cmake")
++ set(PCLCONFIG_INSTALL_DIR "share/pcl")
+ else(WIN32 AND NOT MINGW)
+ set(PCLCONFIG_INSTALL_DIR "share/${PROJECT_NAME_LOWER}-${PCL_MAJOR_VERSION}.${PCL_MINOR_VERSION}")
+ endif(WIN32 AND NOT MINGW)
diff --git a/ports/pcl/find_cuda.patch b/ports/pcl/find_cuda.patch
new file mode 100644
index 000000000..6e872cdab
--- /dev/null
+++ b/ports/pcl/find_cuda.patch
@@ -0,0 +1,15 @@
+diff --git a/cmake/pcl_find_cuda.cmake b/cmake/pcl_find_cuda.cmake
+index fd9cfa9..ae9e612 100644
+--- a/cmake/pcl_find_cuda.cmake
++++ b/cmake/pcl_find_cuda.cmake
+@@ -43,7 +43,9 @@ if(CUDA_FOUND)
+
+ # Find a complete list for CUDA compute capabilities at http://developer.nvidia.com/cuda-gpus
+
+- if(NOT ${CUDA_VERSION_STRING} VERSION_LESS "8.0")
++ if(NOT ${CUDA_VERSION_STRING} VERSION_LESS "9.0")
++ set(__cuda_arch_bin "3.0 3.5 5.0 5.2 5.3 6.0 6.1 7.0")
++ elseif(NOT ${CUDA_VERSION_STRING} VERSION_LESS "8.0")
+ set(__cuda_arch_bin "2.0 2.1(2.0) 3.0 3.5 5.0 5.2 5.3 6.0 6.1")
+ elseif(NOT ${CUDA_VERSION_STRING} VERSION_LESS "6.5")
+ set(__cuda_arch_bin "2.0 2.1(2.0) 3.0 3.5 5.0 5.2")
diff --git a/ports/pcl/find_flann.patch b/ports/pcl/find_flann.patch
new file mode 100644
index 000000000..e9760e502
--- /dev/null
+++ b/ports/pcl/find_flann.patch
@@ -0,0 +1,24 @@
+diff --git a/cmake/Modules/FindFLANN.cmake b/cmake/Modules/FindFLANN.cmake
+index b5739dc95..d2c3fd07e 100644
+--- a/cmake/Modules/FindFLANN.cmake
++++ b/cmake/Modules/FindFLANN.cmake
+@@ -10,8 +10,8 @@
+ # look for shared ones
+
+ if(FLANN_USE_STATIC)
+- set(FLANN_RELEASE_NAME flann_cpp_s)
+- set(FLANN_DEBUG_NAME flann_cpp_s-gd)
++ set(FLANN_RELEASE_NAME flann_cpp)
++ set(FLANN_DEBUG_NAME flann_cpp-gd)
+ else(FLANN_USE_STATIC)
+ set(FLANN_RELEASE_NAME flann_cpp)
+ set(FLANN_DEBUG_NAME flann_cpp-gd)
+@@ -41,7 +41,7 @@ find_library(FLANN_LIBRARY_DEBUG
+ NAMES ${FLANN_DEBUG_NAME} ${FLANN_RELEASE_NAME}
+ HINTS ${PC_FLANN_LIBDIR} ${PC_FLANN_LIBRARY_DIRS} "${FLANN_ROOT}" "$ENV{FLANN_ROOT}"
+ PATHS "$ENV{PROGRAMFILES}/Flann" "$ENV{PROGRAMW6432}/Flann"
+- PATH_SUFFIXES lib)
++ PATH_SUFFIXES lib debug/lib)
+
+ if(NOT FLANN_LIBRARY_DEBUG)
+ set(FLANN_LIBRARY_DEBUG ${FLANN_LIBRARY})
diff --git a/ports/pcl/find_openni2.patch b/ports/pcl/find_openni2.patch
new file mode 100644
index 000000000..4bd3e0799
--- /dev/null
+++ b/ports/pcl/find_openni2.patch
@@ -0,0 +1,12 @@
+diff --git a/cmake/Modules/FindOpenNI2.cmake b/cmake/Modules/FindOpenNI2.cmake
+index 713099a14..f31de96a6 100644
+--- a/cmake/Modules/FindOpenNI2.cmake
++++ b/cmake/Modules/FindOpenNI2.cmake
+@@ -51,6 +51,7 @@ find_path(OPENNI2_INCLUDE_DIRS OpenNI.h
+ PATHS
+ "$ENV{OPENNI2_INCLUDE${OPENNI2_SUFFIX}}" # Win64 needs '64' suffix
+ /usr/include/openni2 # common path for deb packages
++ PATH_SUFFIXES include/openni2
+ )
+
+ find_library(OPENNI2_LIBRARY
diff --git a/ports/pcl/find_qhull.patch b/ports/pcl/find_qhull.patch
new file mode 100644
index 000000000..e845293be
--- /dev/null
+++ b/ports/pcl/find_qhull.patch
@@ -0,0 +1,13 @@
+diff --git a/cmake/Modules/FindQhull.cmake b/cmake/Modules/FindQhull.cmake
+index 698bd151b..44c1d5d8d 100644
+--- a/cmake/Modules/FindQhull.cmake
++++ b/cmake/Modules/FindQhull.cmake
+@@ -55,7 +55,7 @@ find_library(QHULL_LIBRARY_DEBUG
+ NAMES ${QHULL_DEBUG_NAME} ${QHULL_RELEASE_NAME}
+ HINTS "${QHULL_ROOT}" "$ENV{QHULL_ROOT}"
+ PATHS "$ENV{PROGRAMFILES}/QHull" "$ENV{PROGRAMW6432}/QHull"
+- PATH_SUFFIXES project build bin lib)
++ PATH_SUFFIXES project build bin lib debug/lib)
+
+ if(NOT QHULL_LIBRARY_DEBUG)
+ set(QHULL_LIBRARY_DEBUG ${QHULL_LIBRARY})
diff --git a/ports/pcl/portfile.cmake b/ports/pcl/portfile.cmake
new file mode 100644
index 000000000..12c9ec398
--- /dev/null
+++ b/ports/pcl/portfile.cmake
@@ -0,0 +1,91 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO PointCloudLibrary/pcl
+ REF pcl-1.8.1
+ SHA512 9e7c87fb750a176712f08d215a906012c9e8174b687bbc8c08fa65de083b4468951bd8017b10409015d5eff0fc343885d2aae5c340346118b1a251af7bdd5cd7
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ 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"
+ "${CMAKE_CURRENT_LIST_DIR}/find_openni2.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/find_cuda.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/vs2017-15.4-workaround.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/boost_uuid_random_generator_compat.patch"
+)
+
+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)
+endif()
+
+set(WITH_PCAP OFF)
+if("pcap" IN_LIST FEATURES)
+ set(WITH_PCAP ON)
+endif()
+
+set(WITH_CUDA OFF)
+if("cuda" IN_LIST FEATURES)
+ set(WITH_CUDA ON)
+endif()
+
+set(BUILD_TOOLS OFF)
+if("tools" IN_LIST FEATURES)
+ set(BUILD_TOOLS ON)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ # BUILD
+ -DBUILD_surface_on_nurbs=ON
+ -DBUILD_tools=${BUILD_TOOLS}
+ -DBUILD_CUDA=${WITH_CUDA}
+ -DBUILD_GPU=${WITH_CUDA} # build GPU when use CUDA
+ # PCL
+ -DPCL_BUILD_WITH_BOOST_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS}
+ -DPCL_BUILD_WITH_FLANN_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS}
+ -DPCL_SHARED_LIBS=${PCL_SHARED_LIBS}
+ # WITH
+ -DWITH_CUDA=${WITH_CUDA}
+ -DWITH_LIBUSB=OFF
+ -DWITH_OPENNI2=${WITH_OPENNI2}
+ -DWITH_PCAP=${WITH_PCAP}
+ -DWITH_PNG=ON
+ -DWITH_QHULL=ON
+ -DWITH_QT=${WITH_QT}
+ -DWITH_VTK=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/pcl)
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+if(BUILD_TOOLS)
+ file(GLOB EXEFILES_RELEASE ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+ file(GLOB EXEFILES_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+ file(COPY ${EXEFILES_RELEASE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/pcl)
+ file(REMOVE ${EXEFILES_RELEASE} ${EXEFILES_DEBUG})
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/pcl)
+endif()
+
+file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/pcl)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/pcl/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/pcl/copyright)
diff --git a/ports/pcl/vs2017-15.4-workaround.patch b/ports/pcl/vs2017-15.4-workaround.patch
new file mode 100644
index 000000000..5600c9dc8
--- /dev/null
+++ b/ports/pcl/vs2017-15.4-workaround.patch
@@ -0,0 +1,41 @@
+diff --git a/io/include/pcl/io/ply/ply_parser.h b/io/include/pcl/io/ply/ply_parser.h
+index 649d19a..45709a8 100644
+--- a/io/include/pcl/io/ply/ply_parser.h
++++ b/io/include/pcl/io/ply/ply_parser.h
+@@ -115,7 +115,7 @@ namespace pcl
+
+ class scalar_property_definition_callbacks_type
+ {
+- private:
++ public:
+ template <typename T>
+ struct callbacks_element
+ {
+@@ -123,7 +123,8 @@ namespace pcl
+ typedef T scalar_type;
+ typename scalar_property_definition_callback_type<scalar_type>::type callback;
+ };
+-
++
++ private:
+ typedef boost::mpl::inherit_linearly<
+ scalar_types,
+ boost::mpl::inherit<
+@@ -218,6 +219,7 @@ namespace pcl
+ boost::mpl::_1,boost::mpl::transform<Sequence2, pair_with<boost::mpl::_2> > > >
+ {};
+
++ public:
+ template <typename T>
+ struct callbacks_element
+ {
+@@ -225,7 +227,8 @@ namespace pcl
+ typedef typename T::second scalar_type;
+ typename list_property_definition_callback_type<size_type, scalar_type>::type callback;
+ };
+-
++
++ private:
+ typedef boost::mpl::inherit_linearly<sequence_product<size_types, scalar_types>::type, boost::mpl::inherit<boost::mpl::_1, callbacks_element<boost::mpl::_2> > >::type callbacks;
+ callbacks callbacks_;
+
diff --git a/ports/pcre/CONTROL b/ports/pcre/CONTROL
index f1b583592..b230a2909 100644
--- a/ports/pcre/CONTROL
+++ b/ports/pcre/CONTROL
@@ -1,3 +1,3 @@
Source: pcre
-Version: 8.40
+Version: 8.41-1
Description: Perl Compatible Regular Expresions
diff --git a/ports/pcre/fix-arm-config-define.patch b/ports/pcre/fix-arm-config-define.patch
new file mode 100644
index 000000000..eb136a8cd
--- /dev/null
+++ b/ports/pcre/fix-arm-config-define.patch
@@ -0,0 +1,60 @@
+diff --git a/sljit/sljitConfigInternal.h b/sljit/sljitConfigInternal.h
+index 4dc452f..5a9827d 100644
+--- "a/sljit/sljitConfigInternal.h"
++++ "b/sljit/sljitConfigInternal.h"
+@@ -149,7 +149,7 @@
+
+ #if defined(_M_X64) || defined(__x86_64__)
+ #define SLJIT_CONFIG_X86_64 1
+-#elif defined(_ARM_)
++#elif defined(_M_ARM)
+ #define SLJIT_CONFIG_ARM_V5 1
+ #else
+ #define SLJIT_CONFIG_X86_32 1
+@@ -332,9 +332,16 @@
+
+ #else
+
++#if defined(__linux__)
+ /* Calls __ARM_NR_cacheflush on ARM-Linux. */
+ #define SLJIT_CACHE_FLUSH(from, to) \
+ __clear_cache((char*)(from), (char*)(to))
++#elif(_WIN32)
++#pragma comment(lib, "kernel32.lib")
++uint32_t FlushInstructionCache(void *hProcess, void *lpBaseAddress, uintptr_t dwSize);
++#define SLJIT_CACHE_FLUSH(from, to) \
++ FlushInstructionCache(GetCurrentProcess(), (void*)(from), (uintptr_t)(to - from));
++#endif
+
+ #endif
+
+diff --git a/sljit/sljitNativeARM_32.c b/sljit/sljitNativeARM_32.c
+index 745da99..83942b0 100644
+--- a/sljit/sljitNativeARM_32.c
++++ b/sljit/sljitNativeARM_32.c
+@@ -1573,12 +1573,8 @@ static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s3
+ extern "C" {
+ #endif
+
+-#if defined(__GNUC__)
+ extern unsigned int __aeabi_uidivmod(unsigned int numerator, unsigned int denominator);
+ extern int __aeabi_idivmod(int numerator, int denominator);
+-#else
+-#error "Software divmod functions are needed"
+-#endif
+
+ #ifdef __cplusplus
+ }
+@@ -1635,12 +1631,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compile
+ }
+ }
+
+-#if defined(__GNUC__)
+ FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM,
+ ((op | 0x2) == SLJIT_DIV_UW ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod))));
+-#else
+-#error "Software divmod functions are needed"
+-#endif
+
+ if (saved_reg_count > 0) {
+ if (saved_reg_count >= 3) {
diff --git a/ports/pcre/fix-option-2.patch b/ports/pcre/fix-option-2.patch
new file mode 100644
index 000000000..de78c5f16
--- /dev/null
+++ b/ports/pcre/fix-option-2.patch
@@ -0,0 +1,24 @@
+diff --git b/CMakeLists.txt a/CMakeLists.txt
+index 858a34bd..d1a64570 100644
+--- b/CMakeLists.txt
++++ a/CMakeLists.txt
+@@ -74,7 +74,6 @@ PROJECT(PCRE C CXX)
+ # CMP0026 to avoid warnings for the use of LOCATION in GET_TARGET_PROPERTY.
+
+ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0)
+-CMAKE_POLICY(SET CMP0026 OLD)
+
+ SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # for FindReadline.cmake
+
+@@ -191,9 +190,8 @@ IF (MINGW)
+ ENDIF(MINGW)
+
+ IF(MSVC)
+- OPTION(PCRE_STATIC_RUNTIME
+- "ON=Compile against the static runtime (/MT)."
+- OFF)
++ add_definitions(/wd4703 /wd4146 /wd4308)
++ OPTION(PCRE_STATIC_RUNTIME "ON=Compile against the static runtime (/MT)." OFF)
+ OPTION(INSTALL_MSVC_PDB
+ "ON=Install .pdb files built by MSVC, if generated"
+ OFF)
diff --git a/ports/pcre/fix-option.patch b/ports/pcre/fix-option.patch
deleted file mode 100644
index d1a2b13eb..000000000
--- a/ports/pcre/fix-option.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 42451ad..858a34b 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -191,7 +191,7 @@ IF (MINGW)
- ENDIF(MINGW)
-
- IF(MSVC)
-- OPTION(PCRE_STATIC_RUNTIME OFF CACHE BOOL
-+ OPTION(PCRE_STATIC_RUNTIME
- "ON=Compile against the static runtime (/MT)."
- OFF)
- OPTION(INSTALL_MSVC_PDB
diff --git a/ports/pcre/portfile.cmake b/ports/pcre/portfile.cmake
index 3b310b7ea..5e9009ace 100644
--- a/ports/pcre/portfile.cmake
+++ b/ports/pcre/portfile.cmake
@@ -6,19 +6,20 @@
# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
#
-set(PCRE_VERSION 8.40)
+set(PCRE_VERSION 8.41)
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pcre-${PCRE_VERSION})
vcpkg_download_distfile(ARCHIVE
URLS "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${PCRE_VERSION}.zip"
"https://downloads.sourceforge.net/project/pcre/pcre/${PCRE_VERSION}/pcre-${PCRE_VERSION}.zip"
FILENAME "pcre-${PCRE_VERSION}.zip"
- SHA512 121c0389a739a2a1d7d5d87e5f15167601739ddfab9eed66a1f55b5bbadadb58730208430f5ad069f9342c9a84ee1817dfa07efc802c29c84f86147714ee8eff
+ SHA512 a3fd57090a5d9ce9d608aeecd59f42f04deea5b86a5c5899bdb25b18d8ec3a89b2b52b62e325c6485a87411eb65f1421604f80c3eaa653bd7dbab05ad22795ea
)
vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
- PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-option.patch)
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-option-2.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-arm-config-define.patch)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
diff --git a/ports/pcre2/CONTROL b/ports/pcre2/CONTROL
index 8a118b3e7..79982525a 100644
--- a/ports/pcre2/CONTROL
+++ b/ports/pcre2/CONTROL
@@ -1,3 +1,3 @@
Source: pcre2
-Version: 10.23
+Version: 10.30-2
Description: PCRE2 is a re-working of the original Perl Compatible Regular Expressions library
diff --git a/ports/pcre2/fix-space.patch b/ports/pcre2/fix-space.patch
new file mode 100644
index 000000000..70f88021a
--- /dev/null
+++ b/ports/pcre2/fix-space.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fbc37fe..54e25f2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -91,7 +91,7 @@ CMAKE_POLICY(SET CMP0026 OLD)
+
+ SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # for FindReadline.cmake
+
+-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${PROJECT_SOURCE_DIR}/src")
++SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I\"${PROJECT_SOURCE_DIR}/src\"")
+
+ # external packages
+ FIND_PACKAGE( BZip2 )
diff --git a/ports/pcre2/portfile.cmake b/ports/pcre2/portfile.cmake
index fa7bbcf4b..34e4cf726 100644
--- a/ports/pcre2/portfile.cmake
+++ b/ports/pcre2/portfile.cmake
@@ -1,9 +1,10 @@
+set(PCRE2_VERSION 10.30)
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pcre2-10.23)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pcre2-${PCRE2_VERSION})
vcpkg_download_distfile(ARCHIVE
- URLS "https://sourceforge.net/projects/pcre/files/pcre2/10.23/pcre2-10.23.zip/download"
- FILENAME "pcre2-10.23.zip"
- SHA512 0f0638ce28ce17e18425d499cc516a30dabbfa868180ea320361ffeaa26d4f6f6975f12bc20024f7457fe3c6eed686976a9e5c66c2785d1ea63bee38131ea0d2)
+ URLS "https://ftp.pcre.org/pub/pcre/pcre2-${PCRE2_VERSION}.zip" "https://sourceforge.net/projects/pcre/files/pcre2/${PCRE2_VERSION}/pcre2-${PCRE2_VERSION}.zip/download"
+ FILENAME "pcre2-${PCRE2_VERSION}.zip"
+ SHA512 03e570b946ac29498a114b27e715a0fcf25702bfc9623f9fc085ee8a3214ab3c303baccb9c0af55da6916e8ce40d931d97f1ee9628690563041a943f0aa2bc54)
vcpkg_extract_source_archive(${ARCHIVE})
@@ -19,6 +20,9 @@ vcpkg_configure_cmake(
-DPCRE2_BUILD_TESTS=OFF
-DPCRE2_BUILD_PCRE2GREP=OFF)
+vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-space.patch)
+
vcpkg_install_cmake()
file(READ ${CURRENT_PACKAGES_DIR}/include/pcre2.h PCRE2_H)
diff --git a/ports/pdal/0001-win32_compiler_options.cmake.patch b/ports/pdal/0001-win32_compiler_options.cmake.patch
new file mode 100644
index 000000000..8486cc1cd
--- /dev/null
+++ b/ports/pdal/0001-win32_compiler_options.cmake.patch
@@ -0,0 +1,14 @@
+diff -Nuar a/cmake/win32_compiler_options.cmake b/cmake/win32_compiler_options.cmake
+--- a/cmake/win32_compiler_options.cmake 2018-04-06 20:24:17.000000000 +0200
++++ b/cmake/win32_compiler_options.cmake 2018-04-28 19:40:54.534593200 +0200
+@@ -67,10 +67,6 @@
+ endif()
+ endif()
+
+-set(CMAKE_INCLUDE_PATH "c:/OSGeo4W64/include;$ENV{CMAKE_INCLUDE_PATH}")
+-set(CMAKE_LIBRARY_PATH "c:/OSGeo4W64/lib;$ENV{CMAKE_LIBRARY_PATH}")
+-set(CMAKE_PREFIX_PATH "c:/OSGeo4W64/cmake;$ENV{CMAKE_LIBRARY_PATH}")
+-
+ #ABELL (& gadomski) - WHY?
+ set(PDAL_PLATFORM_WIN32 1)
+ set(WINSOCK_LIBRARY ws2_32)
diff --git a/ports/pdal/CONTROL b/ports/pdal/CONTROL
new file mode 100644
index 000000000..1065a5c2d
--- /dev/null
+++ b/ports/pdal/CONTROL
@@ -0,0 +1,4 @@
+Source: pdal
+Version: 1.7.1-2
+Description: PDAL - Point Data Abstraction Library is a library for manipulating point cloud data.
+Build-Depends: gdal, geos, jsoncpp, libgeotiff
diff --git a/ports/pdal/FindGDAL.cmake b/ports/pdal/FindGDAL.cmake
new file mode 100644
index 000000000..9683cb0e5
--- /dev/null
+++ b/ports/pdal/FindGDAL.cmake
@@ -0,0 +1,13 @@
+find_path(GDAL_INCLUDE_DIR gdal.h)
+
+find_library(GDAL_LIBRARY_DEBUG NAMES gdald)
+find_library(GDAL_LIBRARY_RELEASE NAMES gdal)
+
+include(SelectLibraryConfigurations)
+select_library_configurations(GDAL)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(
+ GDAL DEFAULT_MSG
+ GDAL_LIBRARY GDAL_INCLUDE_DIR
+)
diff --git a/ports/pdal/FindGEOS.cmake b/ports/pdal/FindGEOS.cmake
new file mode 100644
index 000000000..88d17b073
--- /dev/null
+++ b/ports/pdal/FindGEOS.cmake
@@ -0,0 +1,13 @@
+find_path(GEOS_INCLUDE_DIR geos_c.h)
+
+find_library(GEOS_LIBRARY_DEBUG NAMES geos_cd)
+find_library(GEOS_LIBRARY_RELEASE NAMES geos_c)
+
+include(SelectLibraryConfigurations)
+select_library_configurations(GEOS)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(
+ GEOS DEFAULT_MSG
+ GEOS_LIBRARY GEOS_INCLUDE_DIR
+)
diff --git a/ports/pdal/FindGeoTIFF.cmake b/ports/pdal/FindGeoTIFF.cmake
new file mode 100644
index 000000000..51a5fb2d8
--- /dev/null
+++ b/ports/pdal/FindGeoTIFF.cmake
@@ -0,0 +1,13 @@
+find_path(GEOTIFF_INCLUDE_DIR geotiff.h)
+
+find_library(GEOTIFF_LIBRARY_DEBUG NAMES geotiff_d)
+find_library(GEOTIFF_LIBRARY_RELEASE NAMES geotiff)
+
+include(SelectLibraryConfigurations)
+select_library_configurations(GEOTIFF)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(
+ GEOTIFF DEFAULT_MSG
+ GEOTIFF_LIBRARY GEOTIFF_INCLUDE_DIR
+)
diff --git a/ports/pdal/no-source-dir-writes.patch b/ports/pdal/no-source-dir-writes.patch
new file mode 100644
index 000000000..f7ec12f6b
--- /dev/null
+++ b/ports/pdal/no-source-dir-writes.patch
@@ -0,0 +1,49 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index dc146d1..9b82544 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -140,7 +140,7 @@ get_git_head_revision(GIT_REFSPEC GIT_SHA1)
+
+ configure_file(
+ "${PROJECT_SOURCE_DIR}/gitsha.cpp.in"
+- "${PROJECT_SOURCE_DIR}/pdal/gitsha.cpp")
++ "${PROJECT_BINARY_DIR}/pdal/gitsha.cpp")
+
+ # needs to come before configuration of pdal_features
+ if(APPLE)
+@@ -201,6 +201,7 @@ file(GLOB BASE_SRCS
+ ${PDAL_IO_DIR}/*.cpp
+ ${PDAL_KERNELS_DIR}/*.cpp
+ ${PDAL_SRC_DIR}/*.cpp
++ ${PROJECT_BINARY_DIR}/pdal/gitsha.cpp
+ ${PDAL_SRC_DIR}/compression/*.cpp)
+ file(GLOB_RECURSE PRIVATE_SRCS
+ ${PDAL_FILTERS_DIR}/private/*.cpp
+diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
+index b02aa4a..d60b041 100644
+--- a/apps/CMakeLists.txt
++++ b/apps/CMakeLists.txt
+@@ -66,9 +66,9 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pdal.pc
+ if(UNIX OR APPLE)
+ # Autoconf compatibility variables to use the same script source.
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pdal-config.in"
+- "${CMAKE_CURRENT_SOURCE_DIR}/pdal-config" @ONLY)
++ "${CMAKE_CURRENT_BINARY_DIR}/pdal-config" @ONLY)
+
+- file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/pdal-config"
++ file(COPY "${CMAKE_CURRENT_BINARY_DIR}/pdal-config"
+ DESTINATION
+ "${PDAL_OUTPUT_BIN_DIR}/"
+ FILE_PERMISSIONS
+@@ -85,9 +85,9 @@ if(UNIX OR APPLE)
+ elseif(WIN32)
+ # Autoconf compatibility variables to use the same script source.
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pdal-config-bat.in"
+- "${CMAKE_CURRENT_SOURCE_DIR}/pdal-config.bat" @ONLY)
++ "${CMAKE_CURRENT_BINARY_DIR}/pdal-config.bat" @ONLY)
+
+- file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/pdal-config.bat"
++ file(COPY "${CMAKE_CURRENT_BINARY_DIR}/pdal-config.bat"
+ DESTINATION
+ "${PDAL_OUTPUT_BIN_DIR}/"
+ FILE_PERMISSIONS
diff --git a/ports/pdal/portfile.cmake b/ports/pdal/portfile.cmake
new file mode 100644
index 000000000..cbcb97ced
--- /dev/null
+++ b/ports/pdal/portfile.cmake
@@ -0,0 +1,82 @@
+# vcpkg portfile.cmake for PDAL
+#
+# NOTE: update the version string for new PDAL release
+set(PDAL_VERSION_STR "1.7.1")
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/PDAL-${PDAL_VERSION_STR}-src)
+
+include(vcpkg_common_functions)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://download.osgeo.org/pdal/PDAL-${PDAL_VERSION_STR}-src.tar.gz"
+ FILENAME "PDAL-${PDAL_VERSION_STR}-src.tar.gz"
+ SHA512 e3e63bb05930c1a28c4f46c7edfaa8e9ea20484f1888d845b660a29a76f1dd1daea3db30a98607be0c2eeb86930ec8bfd0965d5d7d84b07a4fe4cb4512da9b09
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001-win32_compiler_options.cmake.patch
+ ${CMAKE_CURRENT_LIST_DIR}/no-source-dir-writes.patch
+)
+
+file(REMOVE "${SOURCE_PATH}/pdal/gitsha.cpp")
+
+# Deploy custom CMake modules to enforce expected dependencies look-up
+foreach(_module IN ITEMS FindGDAL FindGEOS FindGeoTIFF)
+ file(REMOVE "${SOURCE_PATH}/cmake/modules/${_module}.cmake")
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/${_module}.cmake
+ DESTINATION ${SOURCE_PATH}/cmake/modules/
+ )
+endforeach()
+
+# NOTE: CMake native BUILD_SHARED_LIBS option will be set by vcpkg_configure_cmake
+# TODO: Remove this as soon as PDAL switches to use BUILD_SHARED_LIBS
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(PDAL_BUILD_STATIC OFF)
+else()
+ set(PDAL_BUILD_STATIC ON)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DPDAL_BUILD_STATIC:BOOL=${PDAL_BUILD_STATIC}
+ -DWITH_TESTS:BOOL=OFF
+ -DWITH_COMPLETION:BOOL=OFF
+)
+
+vcpkg_install_cmake(ADD_BIN_TO_PATH)
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/pdal/cmake)
+vcpkg_copy_pdbs()
+
+# Install copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/pdal RENAME copyright
+)
+
+# Install PDAL executable
+file(GLOB _pdal_apps ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+file(COPY ${_pdal_apps} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/pdal)
+file(REMOVE ${_pdal_apps})
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+
+# Post-install clean-up
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/lib/pdal
+ ${CURRENT_PACKAGES_DIR}/debug/lib/pdal
+ ${CURRENT_PACKAGES_DIR}/debug/include
+ ${CURRENT_PACKAGES_DIR}/debug/share
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/bin)
+else()
+ file(GLOB _pdal_bats ${CURRENT_PACKAGES_DIR}/bin/*.bat)
+ file(REMOVE ${_pdal_bats})
+ file(GLOB _pdal_bats ${CURRENT_PACKAGES_DIR}/debug/bin/*.bat)
+ file(REMOVE ${_pdal_bats})
+ file(GLOB _pdal_apps ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+ file(REMOVE ${_pdal_apps})
+endif()
diff --git a/ports/pdcurses/CONTROL b/ports/pdcurses/CONTROL
index 66f0f4535..befa5c2fc 100644
--- a/ports/pdcurses/CONTROL
+++ b/ports/pdcurses/CONTROL
@@ -1,3 +1,3 @@
Source: pdcurses
-Version: 3.4
+Version: 3.4-1
Description: Public Domain Curses - a curses library for environments that don't fit the termcap/terminfo model.
diff --git a/ports/pdcurses/portfile.cmake b/ports/pdcurses/portfile.cmake
index 4c43e68d2..f9db020b9 100644
--- a/ports/pdcurses/portfile.cmake
+++ b/ports/pdcurses/portfile.cmake
@@ -1,24 +1,47 @@
+if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ message(FATAL_ERROR "PDCurses only supports dynamic CRT linkage")
+endif()
+
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src)
find_program(NMAKE nmake)
-vcpkg_download_distfile(ARCHIVE
- URLS "http://downloads.sourceforge.net/project/pdcurses/pdcurses/3.4/pdcurs34.zip"
- FILENAME "pdcurs34.zip"
- SHA512 0b916bfe37517abb80df7313608cc4e1ed7659a41ce82763000dfdfa5b8311ffd439193c74fc84a591f343147212bf1caf89e7db71f1f7e4fa70f534834cb039
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO wmcbrine/PDCurses
+ REF PDCurses_3_4
+ SHA512 a05065c2e43771bf769f25f229b6058c4dc6add65d993f2e304e98bded8a8af88e674638c7385383451fddc45cf3bd8c9a95febffc7abcbcce0e6384e4f397b3
+ HEAD_REF master
+)
+
+file(REMOVE_RECURSE
+ ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}
)
-vcpkg_extract_source_archive(${ARCHIVE})
-set(PDC_NMAKE_CMD ${NMAKE} /A -f vcpkg.mak WIDE=Y UTF8=Y)
+file(GLOB SOURCES ${SOURCE_PATH}/*)
+
+file(COPY ${SOURCES} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+
+set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}")
+
+file(READ ${SOURCE_PATH}/win32/vcwin32.mak PDC_MAK_ORIG)
+string(REPLACE " -pdb:none" "" PDC_MAK_ORIG ${PDC_MAK_ORIG})
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ string(REPLACE "/MACHINE:IX86 " "/MACHINE:X64 " PDC_MAK_X64 ${PDC_MAK_ORIG})
+ file(WRITE ${SOURCE_PATH}/win32/vcpkg_x64.mak ${PDC_MAK_X64})
+ set(PDC_NMAKE_CMD ${NMAKE} /A -f vcpkg_x64.mak WIDE=Y UTF8=Y)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ string(REPLACE "/MACHINE:IX86 " "/MACHINE:X86 " PDC_MAK_X86 ${PDC_MAK_ORIG})
+ file(WRITE ${SOURCE_PATH}/win32/vcpkg_x86.mak ${PDC_MAK_X86})
+ set(PDC_NMAKE_CMD ${NMAKE} /A -f vcpkg_x86.mak WIDE=Y UTF8=Y)
+else()
+ message(FATAL_ERROR "Unsupported target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
+endif()
+
set(PDC_NMAKE_CWD ${SOURCE_PATH}/win32)
set(PDC_PDCLIB ${SOURCE_PATH}/win32/pdcurses)
-file(READ ${SOURCE_PATH}/win32/vcwin32.mak PDC_MAK)
-string(REPLACE " -pdb:none" "" PDC_MAK ${PDC_MAK})
-string(REPLACE "/MACHINE:IX86 " "" PDC_MAK ${PDC_MAK})
-file(WRITE ${SOURCE_PATH}/win32/vcpkg.mak ${PDC_MAK})
-
if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
set(PDC_NMAKE_CMD ${PDC_NMAKE_CMD} DLL=Y)
endif()
diff --git a/ports/physfs/CONTROL b/ports/physfs/CONTROL
index 3e502435f..a937d38bf 100644
--- a/ports/physfs/CONTROL
+++ b/ports/physfs/CONTROL
@@ -1,3 +1,4 @@
Source: physfs
-Version: 2.0.3
+Version: 3.0.1
Description: a library to provide abstract access to various archives
+Build-Depends: zlib
diff --git a/ports/physfs/portfile.cmake b/ports/physfs/portfile.cmake
index 082cc7740..08b49e69f 100644
--- a/ports/physfs/portfile.cmake
+++ b/ports/physfs/portfile.cmake
@@ -1,32 +1,29 @@
-# 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 static)
- message(STATUS "Warning: Static building not supported yet. Building dynamic.")
- set(VCPKG_LIBRARY_LINKAGE dynamic)
-endif()
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/physfs-2.0.3)
+set(PHYSFS_VERSION 3.0.1)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/physfs-${PHYSFS_VERSION})
vcpkg_download_distfile(ARCHIVE
- URLS "https://icculus.org/physfs/downloads/physfs-2.0.3.tar.bz2"
- FILENAME "physfs-2.0.3.tar.bz2"
- SHA512 47eff0c81b8dc3bb526766b0a8ad2437d2951867880116d6e6e8f2ec1490e263541fb741867fed6517cc3fa8a9c5651b36e3e02a499f19cfdc5c7261c9707e80
+ URLS "https://icculus.org/physfs/downloads/physfs-${PHYSFS_VERSION}.tar.bz2"
+ FILENAME "physfs-${PHYSFS_VERSION}.tar.bz2"
+ SHA512 ddf3b075ccb506da5e9a1ce96001be402752b9b777c2e816a85d48aff3626ff0886ea43eb07bd300fe3a9f59b9a002f54d822c51d483a4ee94b38378534c1879
)
vcpkg_extract_source_archive(${ARCHIVE})
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PHYSFS_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PHYSFS_SHARED)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DPHYSFS_BUILD_STATIC=${PHYSFS_STATIC}
+ -DPHYSFS_BUILD_SHARED=${PHYSFS_SHARED}
+ -DPHYSFS_BUILD_TEST=OFF
)
vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/test_physfs.exe)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/test_physfs.exe)
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/physfs)
diff --git a/ports/picosha2/CONTROL b/ports/picosha2/CONTROL
new file mode 100644
index 000000000..468daffce
--- /dev/null
+++ b/ports/picosha2/CONTROL
@@ -0,0 +1,3 @@
+Source: picosha2
+Version: 2018-02-25
+Description: PicoSHA2 - a C++ SHA256 hash generator
diff --git a/ports/picosha2/portfile.cmake b/ports/picosha2/portfile.cmake
new file mode 100644
index 000000000..093707258
--- /dev/null
+++ b/ports/picosha2/portfile.cmake
@@ -0,0 +1,11 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO okdshin/PicoSHA2
+ REF 77b1e29e94b3a131f202e69d35eafe709ae8e587
+ SHA512 b3b11f56bc31734c899d417f10f9d44ea7f384191e147973269f9518fe1d5139f8c580d6c3d70ff5376ae80025c9dbf0956bbcd3b3455d87d26fa17174a2dbe2
+ HEAD_REF master
+)
+
+file(INSTALL ${SOURCE_PATH}/picosha2.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/picosha2 RENAME copyright)
diff --git a/ports/piex/CMakeLists.txt b/ports/piex/CMakeLists.txt
new file mode 100644
index 000000000..35a881055
--- /dev/null
+++ b/ports/piex/CMakeLists.txt
@@ -0,0 +1,43 @@
+cmake_minimum_required(VERSION 3.8.0)
+project(piex)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+include_directories(".")
+
+add_library(binary_parse
+ src/binary_parse/cached_paged_byte_array.cc
+ src/binary_parse/range_checked_byte_ptr.cc
+)
+
+add_library(image_type_recognition
+ src/image_type_recognition/image_type_recognition_lite.cc
+)
+
+target_link_libraries(image_type_recognition binary_parse)
+
+add_library(tiff_directory
+ src/tiff_directory/tiff_directory.cc
+)
+
+target_link_libraries(tiff_directory binary_parse)
+
+add_library(piex
+ src/piex.cc
+ src/tiff_parser.cc
+)
+
+target_link_libraries(piex tiff_directory image_type_recognition binary_parse)
+
+install(
+ TARGETS piex
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES src/piex.h src/piex_types.h DESTINATION include/src)
+endif()
diff --git a/ports/piex/CONTROL b/ports/piex/CONTROL
new file mode 100644
index 000000000..43411e564
--- /dev/null
+++ b/ports/piex/CONTROL
@@ -0,0 +1,3 @@
+Source: piex
+Version: 2018-03-13
+Description: The Preview Image Extractor (PIEX) is designed to find and extract the largest
diff --git a/ports/piex/portfile.cmake b/ports/piex/portfile.cmake
new file mode 100644
index 000000000..039c2c41d
--- /dev/null
+++ b/ports/piex/portfile.cmake
@@ -0,0 +1,28 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "Dynamic not supported building static")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/piex
+ REF 2aa74c2dd295758ef4562906a5525300972821fc
+ SHA512 4fbea41e8f21c2f4a75d899aa28e2d2e92201d429eb8504515466187befc1eac6c9b31d91b039f2aebe2101bbde6b87adce9bae578a536f264d207fe29e4bd8f
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/piex RENAME copyright)
diff --git a/ports/pixman/CMakeLists.txt b/ports/pixman/CMakeLists.txt
index aad6ec778..322c08a9c 100644
--- a/ports/pixman/CMakeLists.txt
+++ b/ports/pixman/CMakeLists.txt
@@ -1,4 +1,64 @@
cmake_minimum_required(VERSION 3.0)
-project(pixman VERSION 0.32.0 LANGUAGES C CXX)
+project(pixman VERSION 0.32.0 LANGUAGES C)
-add_subdirectory(pixman) \ No newline at end of file
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+set(CMAKE_DEBUG_POSTFIX "d")
+
+include_directories(".")
+
+file(GLOB SOURCES
+"pixman.c"
+"pixman-access.c"
+"pixman-access-accessors.c"
+"pixman-bits-image.c"
+"pixman-combine32.c"
+"pixman-combine-float.c"
+"pixman-conical-gradient.c"
+"pixman-filter.c"
+"pixman-x86.c"
+"pixman-mips.c"
+"pixman-arm.c"
+"pixman-ppc.c"
+"pixman-edge.c"
+"pixman-edge-accessors.c"
+"pixman-fast-path.c"
+"pixman-glyph.c"
+"pixman-general.c"
+"pixman-gradient-walker.c"
+"pixman-image.c"
+"pixman-implementation.c"
+"pixman-linear-gradient.c"
+"pixman-matrix.c"
+"pixman-noop.c"
+"pixman-radial-gradient.c"
+"pixman-region16.c"
+"pixman-region32.c"
+"pixman-solid-fill.c"
+"pixman-timer.c"
+"pixman-trap.c"
+"pixman-utils.c"
+"pixman-sse2.c"
+)
+
+add_library(pixman-1 ${SOURCES})
+
+# pixman requires the three PACKAGE* definitions in order to compile. The USE_SSE2 definition lets it use SSE2 instructions for speed. Every target machine should have SSE2 these days.
+target_compile_definitions(pixman-1
+ PUBLIC
+ PACKAGE="pixman-1"
+ PACKAGE_VERSION="0.34.0"
+ PACKAGE_BUGREPORT=""
+ PRIVATE
+ USE_SSE2
+)
+
+# pixman produces a lot of warnings which are disabled here because they otherwise fill up the log files
+if(MSVC)
+ target_compile_options(pixman-1 PRIVATE "/wd4244" "/wd4146" "/wd4996") # PUBLIC "/D_CRT_SECURE_NO_WARNINGS"
+endif()
+
+install(TARGETS pixman-1
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
diff --git a/ports/pixman/CMakeLists_pixman.txt b/ports/pixman/CMakeLists_pixman.txt
deleted file mode 100644
index c8030bcd6..000000000
--- a/ports/pixman/CMakeLists_pixman.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-# Add include directories
-include_directories(".")
-
-FILE(GLOB SOURCES
-"pixman.c"
-"pixman-access.c"
-"pixman-access-accessors.c"
-"pixman-bits-image.c"
-"pixman-combine32.c"
-"pixman-combine-float.c"
-"pixman-conical-gradient.c"
-"pixman-filter.c"
-"pixman-x86.c"
-"pixman-mips.c"
-"pixman-arm.c"
-"pixman-ppc.c"
-"pixman-edge.c"
-"pixman-edge-accessors.c"
-"pixman-fast-path.c"
-"pixman-glyph.c"
-"pixman-general.c"
-"pixman-gradient-walker.c"
-"pixman-image.c"
-"pixman-implementation.c"
-"pixman-linear-gradient.c"
-"pixman-matrix.c"
-"pixman-noop.c"
-"pixman-radial-gradient.c"
-"pixman-region16.c"
-"pixman-region32.c"
-"pixman-solid-fill.c"
-"pixman-timer.c"
-"pixman-trap.c"
-"pixman-utils.c"
-"pixman-sse2.c"
-)
-
-set(CMAKE_DEBUG_POSTFIX "d")
-
-add_library(pixman-1 ${SOURCES})
-
-# pixman requires the three PACKAGE* definitions in order to compile. The USE_SSE2 definition lets it use SSE2 instructions for speed. Every target machine should have SSE2 these days.
-target_compile_definitions(pixman-1 PUBLIC PACKAGE="pixman-1" PUBLIC PACKAGE_VERSION="0.34.0" PUBLIC PACKAGE_BUGREPORT="" PUBLIC USE_SSE2)
-
-# pixman produces a lot of warnings which are disabled here because they otherwise fill up the log files
-target_compile_options(pixman-1 PUBLIC "/wd4244" PUBLIC "/wd4146" PUBLIC "/wd4996") # PUBLIC "/D_CRT_SECURE_NO_WARNINGS"
-
-# The LIBRARY DESTINATION here is lib rather than bin because pixman must always be compiled as a static library since it has no exports.
-install(TARGETS pixman-1
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib
-)
diff --git a/ports/pixman/CONTROL b/ports/pixman/CONTROL
index 3603242d0..940c30cc2 100644
--- a/ports/pixman/CONTROL
+++ b/ports/pixman/CONTROL
@@ -1,3 +1,3 @@
Source: pixman
-Version: 0.34.0-1
+Version: 0.34.0-2
Description: Pixman is a low-level software library for pixel manipulation, providing features such as image compositing and trapezoid rasterization.
diff --git a/ports/pixman/portfile.cmake b/ports/pixman/portfile.cmake
index ac6de80f0..4fb37f6d9 100644
--- a/ports/pixman/portfile.cmake
+++ b/ports/pixman/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}
-#
-
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pixman-0.34.0)
@@ -17,29 +9,26 @@ 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}/CMakeLists_pixman.txt DESTINATION ${SOURCE_PATH}/pixman)
-file(RENAME ${SOURCE_PATH}/pixman/CMakeLists_pixman.txt ${SOURCE_PATH}/pixman/CMakeLists.txt)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/pixman)
vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
+ SOURCE_PATH ${SOURCE_PATH}/pixman
+ PREFER_NINJA
)
vcpkg_install_cmake()
# Copy the appropriate header files.
file(COPY
-"${SOURCE_PATH}/pixman/pixman.h"
-"${SOURCE_PATH}/pixman/pixman-accessor.h"
-"${SOURCE_PATH}/pixman/pixman-combine32.h"
-"${SOURCE_PATH}/pixman/pixman-compiler.h"
-"${SOURCE_PATH}/pixman/pixman-edge-imp.h"
-"${SOURCE_PATH}/pixman/pixman-inlines.h"
-"${SOURCE_PATH}/pixman/pixman-private.h"
-"${SOURCE_PATH}/pixman/pixman-version.h"
-DESTINATION
-${CURRENT_PACKAGES_DIR}/include
+ "${SOURCE_PATH}/pixman/pixman.h"
+ "${SOURCE_PATH}/pixman/pixman-accessor.h"
+ "${SOURCE_PATH}/pixman/pixman-combine32.h"
+ "${SOURCE_PATH}/pixman/pixman-compiler.h"
+ "${SOURCE_PATH}/pixman/pixman-edge-imp.h"
+ "${SOURCE_PATH}/pixman/pixman-inlines.h"
+ "${SOURCE_PATH}/pixman/pixman-private.h"
+ "${SOURCE_PATH}/pixman/pixman-version.h"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
)
# Handle copyright
diff --git a/ports/plibsys/CONTROL b/ports/plibsys/CONTROL
new file mode 100644
index 000000000..92d57ca47
--- /dev/null
+++ b/ports/plibsys/CONTROL
@@ -0,0 +1,3 @@
+Source: plibsys
+Version: 0.0.3-1
+Description: Highly portable C system library: threads and synchronization, sockets, IPC, data structures and more.
diff --git a/ports/plibsys/portfile.cmake b/ports/plibsys/portfile.cmake
new file mode 100644
index 000000000..b70fe771d
--- /dev/null
+++ b/ports/plibsys/portfile.cmake
@@ -0,0 +1,69 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO saprykin/plibsys
+ REF 0.0.3
+ SHA512 e2393fecb3e5feae81a4d60cd03e2ca17bc58453efaa5598beacdc5acedbc7c90374f9f851301fee08ace8dace843a2dff8c1c449cd457302363c98dd24e0415
+ HEAD_REF master
+)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ SET(PLIBSYS_STATIC OFF)
+else()
+ SET(PLIBSYS_STATIC ON)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DPLIBSYS_TESTS=OFF
+ -DPLIBSYS_COVERAGE=OFF
+ -DPLIBSYS_BUILD_STATIC=${PLIBSYS_STATIC}
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/plibsys RENAME copyright)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(PLIBSYS_FILENAME plibsys)
+
+ # Put shared libraries into the proper directory
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
+
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/plibsys.dll ${CURRENT_PACKAGES_DIR}/bin/plibsys.dll)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/plibsys.dll ${CURRENT_PACKAGES_DIR}/debug/bin/plibsys.dll)
+else()
+ set(PLIBSYS_FILENAME plibsysstatic)
+
+ # For static build remove dynamic libraries
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/plibsys.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/plibsys.dll)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/plibsys.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/plibsys.dll)
+endif()
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tmp)
+
+# Save library files
+file(RENAME ${CURRENT_PACKAGES_DIR}/lib/${PLIBSYS_FILENAME}.lib ${CURRENT_PACKAGES_DIR}/tmp/plibsys.lib)
+file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/${PLIBSYS_FILENAME}.lib ${CURRENT_PACKAGES_DIR}/tmp/plibsys_debug.lib)
+
+# Remove unused shared libraries
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib)
+
+# Re-install library files
+file(RENAME ${CURRENT_PACKAGES_DIR}/tmp/plibsys.lib ${CURRENT_PACKAGES_DIR}/lib/plibsys.lib)
+file(RENAME ${CURRENT_PACKAGES_DIR}/tmp/plibsys_debug.lib ${CURRENT_PACKAGES_DIR}/debug/lib/plibsys.lib)
+
+# Remove duplicate library files (already installed)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tmp)
+
+vcpkg_copy_pdbs()
diff --git a/ports/plog/CONTROL b/ports/plog/CONTROL
new file mode 100644
index 000000000..d1abd52a6
--- /dev/null
+++ b/ports/plog/CONTROL
@@ -0,0 +1,3 @@
+Source: plog
+Version: 1.1.4
+Description: Portable, simple and extensible C++ logging library.
diff --git a/ports/plog/portfile.cmake b/ports/plog/portfile.cmake
new file mode 100644
index 000000000..847f2bd37
--- /dev/null
+++ b/ports/plog/portfile.cmake
@@ -0,0 +1,17 @@
+# Header-only library
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO SergiusTheBest/plog
+ REF 1.1.4
+ SHA512 7af75af8343460d62e04cc0c27d4cf86373b136df73d2312d19a2e57fa309e916cef8625b8eed1b7270b93aa5d1ff27aee6edb74beb138e3a21c06a3c3debb41
+ HEAD_REF master
+)
+
+# Put the licence file where vcpkg expects it
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/plog)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/plog/LICENSE ${CURRENT_PACKAGES_DIR}/share/plog/copyright)
+
+# Copy header files
+file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.h")
diff --git a/ports/plplot/CONTROL b/ports/plplot/CONTROL
new file mode 100644
index 000000000..c278778b0
--- /dev/null
+++ b/ports/plplot/CONTROL
@@ -0,0 +1,8 @@
+Source: plplot
+Version: 5.13.0-1
+Build-Depends: freetype, zlib, libpng, bzip2
+Description: PLplot is a cross-platform software package for creating scientific plots whose (UTF-8) plot symbols and text are limited in practice only by what Unicode-aware system fonts are installed on a user's computer.
+
+Feature: wxwidgets
+Build-Depends: wxwidgets
+Description: plplot wxwidgets module \ No newline at end of file
diff --git a/ports/plplot/install-interface-include-directories.patch b/ports/plplot/install-interface-include-directories.patch
new file mode 100644
index 000000000..3e124b5d0
--- /dev/null
+++ b/ports/plplot/install-interface-include-directories.patch
@@ -0,0 +1,13 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index d81b6a7..6b51809 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -181,6 +181,8 @@ include_directories(
+ add_library(plplot ${plplot_LIB_SRCS})
+ add_dependencies(plplot plhershey-unicode.h_built)
+
++target_include_directories(plplot INTERFACE $<INSTALL_INTERFACE:include>)
++
+ # Deal with external libraries.
+ set(LIB_INSTALL_RPATH ${LIB_DIR})
+ set(libplplot_LINK_LIBRARIES)
diff --git a/ports/plplot/portfile.cmake b/ports/plplot/portfile.cmake
new file mode 100644
index 000000000..7b35f0a15
--- /dev/null
+++ b/ports/plplot/portfile.cmake
@@ -0,0 +1,79 @@
+include(vcpkg_common_functions)
+
+set(PLPLOT_VERSION 5.13.0)
+set(PLPLOT_HASH 1d5cb5da17d4bde6d675585bff1f8dcb581719249a0b2687867e767703f8dab0870e7ea44b9549a497f4ac0141a3cabf6761c49520c0e2b26ffe581468512cbb)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/plplot-${PLPLOT_VERSION})
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://sourceforge.net/projects/plplot/files/plplot/${PLPLOT_VERSION}%20Source/plplot-${PLPLOT_VERSION}.tar.gz/download"
+ FILENAME "plplot-${PLPLOT_VERSION}.tar.gz"
+ SHA512 ${PLPLOT_HASH}
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+set(BUILD_with_wxwidgets OFF)
+if("wxwidgets" IN_LIST FEATURES)
+ set(BUILD_with_wxwidgets ON)
+endif()
+
+# Patch build scripts
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/install-interface-include-directories.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DENABLE_tcl=OFF
+ -DPL_HAVE_QHULL=OFF
+ -DENABLE_qt=OFF
+ -DPLPLOT_USE_QT5=OFF
+ -DENABLE_ocaml=OFF
+ -DPL_DOUBLE=ON
+ -DENABLE_wxwidgets=${ENABLE_wxwidgets}
+ -DPLD_wxpng=${ENABLE_wxwidgets}
+ -DPLD_wxwidgets=${ENABLE_wxwidgets}
+ -DENABLE_DYNDRIVERS=OFF
+ -DDATA_DIR=${CURRENT_PACKAGES_DIR}/share/plplot
+ OPTIONS_DEBUG
+ -DDRV_DIR=${CURRENT_PACKAGES_DIR}/debug/bin
+ OPTIONS_RELEASE
+ -DDRV_DIR=${CURRENT_PACKAGES_DIR}/bin
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/plplot)
+
+# Remove unnecessary tool
+file(REMOVE
+ ${CURRENT_PACKAGES_DIR}/debug/bin/pltek.exe
+ ${CURRENT_PACKAGES_DIR}/bin/pltek.exe
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message(STATUS "Static build: Removing the full bin directory.")
+ file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/bin
+ ${CURRENT_PACKAGES_DIR}/bin
+ )
+endif()
+
+# Remove unwanted and duplicate directories
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/include
+)
+
+file(INSTALL
+ ${SOURCE_PATH}/Copyright
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/plplot
+ RENAME copyright
+)
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/share
+)
diff --git a/ports/pmdk/CONTROL b/ports/pmdk/CONTROL
new file mode 100644
index 000000000..c8346d105
--- /dev/null
+++ b/ports/pmdk/CONTROL
@@ -0,0 +1,3 @@
+Source: pmdk
+Version: 1.4-2
+Description: Persistent Memory Development Kit \ No newline at end of file
diff --git a/ports/pmdk/addPowerShellExecutionPolicy.patch b/ports/pmdk/addPowerShellExecutionPolicy.patch
new file mode 100644
index 000000000..692ff176a
--- /dev/null
+++ b/ports/pmdk/addPowerShellExecutionPolicy.patch
@@ -0,0 +1,22 @@
+diff --git a/src/windows/srcversion/srcversion.vcxproj b/src/windows/srcversion/srcversion.vcxproj
+index 8761197..795d1a7 100644
+--- a/src/windows/srcversion/srcversion.vcxproj
++++ b/src/windows/srcversion/srcversion.vcxproj
+@@ -72,7 +72,7 @@
+ </Command>
+ </PreBuildEvent>
+ <CustomBuildStep>
+- <Command>powershell.exe -file "$(SolutionDir)..\utils\SRCVERSION.ps1" $(SRCVERSION)</Command>
++ <Command>powershell.exe -ExecutionPolicy Bypass -file "$(SolutionDir)..\utils\SRCVERSION.ps1" $(SRCVERSION)</Command>
+ <Outputs>__NON_EXISTENT_FILE__</Outputs>
+ <Message>generate srcversion.h</Message>
+ </CustomBuildStep>
+@@ -99,7 +99,7 @@
+ </Command>
+ </PreBuildEvent>
+ <CustomBuildStep>
+- <Command>powershell.exe -file "$(SolutionDir)..\utils\SRCVERSION.ps1" $(SRCVERSION)</Command>
++ <Command>powershell.exe -ExecutionPolicy Bypass -file "$(SolutionDir)..\utils\SRCVERSION.ps1" $(SRCVERSION)</Command>
+ <Outputs>__NON_EXISTENT_FILE__</Outputs>
+ <Message>generate srcversion.h</Message>
+ </CustomBuildStep>
diff --git a/ports/pmdk/portfile.cmake b/ports/pmdk/portfile.cmake
new file mode 100644
index 000000000..215de2963
--- /dev/null
+++ b/ports/pmdk/portfile.cmake
@@ -0,0 +1,77 @@
+include(vcpkg_common_functions)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(STATUS "Static building not supported. Building dynamic.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "Static CRT linkage is not supported")
+endif()
+
+if (TRIPLET_SYSTEM_ARCH MATCHES "arm")
+ message(FATAL_ERROR "ARM is currently not supported")
+elseif (TRIPLET_SYSTEM_ARCH MATCHES "x86")
+ message(FATAL_ERROR "x86 is not supported. Please use pmdk:x64-windows instead.")
+endif()
+
+# Download source
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO pmem/pmdk
+ REF 1.4
+ SHA512 95dbea9acfea4a6cb433a25f56f7484946a93fbce1c5e0e1d6ff36e0824e3e0e9f28f37024918998358f8ff12e69d0902fcf88357b9ad12695f32e06e86ffac8
+ HEAD_REF master
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/addPowerShellExecutionPolicy.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/v141.patch"
+)
+
+get_filename_component(PMDK_VERSION "${SOURCE_PATH}" NAME)
+string(REPLACE "pmdk-" "" PMDK_VERSION "${PMDK_VERSION}")
+
+# Build only the selected projects
+vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/src/PMDK.sln
+ TARGET "Solution Items\\libpmem,Solution Items\\libpmemlog,Solution Items\\libpmemblk,Solution Items\\libpmemobj,Solution Items\\libpmemcto,Solution Items\\libpmempool,Solution Items\\libvmem,Solution Items\\Tools\\pmempool"
+ OPTIONS /p:SRCVERSION=${PMDK_VERSION}
+)
+
+set(DEBUG_ARTIFACTS_PATH ${SOURCE_PATH}/src/x64/Debug)
+set(RELEASE_ARTIFACTS_PATH ${SOURCE_PATH}/src/x64/Release)
+
+# Install header files
+file(GLOB HEADER_FILES ${SOURCE_PATH}/src/include/*.h)
+file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(GLOB HEADER_FILES ${SOURCE_PATH}/src/include/libpmemobj/*.h)
+file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/libpmemobj)
+file(GLOB HEADER_FILES ${SOURCE_PATH}/src/include/libpmemobj++/*.hpp)
+file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/libpmemobj++)
+
+# Remove unneeded header files
+file(REMOVE ${CURRENT_PACKAGES_DIR}/include/libvmmalloc.h)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/include/librpmem.h)
+
+# Install libraries (debug)
+file(GLOB LIB_DEBUG_FILES ${DEBUG_ARTIFACTS_PATH}/lib[pv]mem*.lib ${DEBUG_ARTIFACTS_PATH}/lib[pv]mem*.exp)
+file(INSTALL ${LIB_DEBUG_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/libpmemcommon.lib)
+file(GLOB LIB_DEBUG_FILES ${DEBUG_ARTIFACTS_PATH}/lib[pv]mem*.dll)
+file(INSTALL ${LIB_DEBUG_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+
+# Install libraries (release)
+file(GLOB LIB_RELEASE_FILES ${RELEASE_ARTIFACTS_PATH}/lib[pv]mem*.lib ${RELEASE_ARTIFACTS_PATH}/lib[pv]mem*.exp)
+file(INSTALL ${LIB_RELEASE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/libpmemcommon.lib)
+file(GLOB LIB_RELEASE_FILES ${RELEASE_ARTIFACTS_PATH}/lib[pv]mem*.dll)
+file(INSTALL ${LIB_RELEASE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+
+# Install tools (release only)
+file(INSTALL ${RELEASE_ARTIFACTS_PATH}/pmempool.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/pmdk)
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/pmdk)
+
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/pmdk)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/pmdk/LICENSE ${CURRENT_PACKAGES_DIR}/share/pmdk/copyright)
diff --git a/ports/pmdk/v141.patch b/ports/pmdk/v141.patch
new file mode 100644
index 000000000..f77abe93f
--- /dev/null
+++ b/ports/pmdk/v141.patch
@@ -0,0 +1,13 @@
+diff --git a/src/common/util.h b/src/common/util.h
+index 04b098f..33a64c2 100644
+--- a/src/common/util.h
++++ b/src/common/util.h
+@@ -284,7 +284,7 @@ typedef enum {
+ #error MSVC ports of util_atomic_ only work on X86_64
+ #endif
+
+-#if _MSC_VER > 1911
++#if _MSC_VER >= 2000
+ #error util_atomic_ utility functions not tested with this version of VC++
+ #error These utility functions are not future proof, as they are not
+ #error based on publicly available documentation.
diff --git a/ports/poco/CONTROL b/ports/poco/CONTROL
index 2762c6248..9656723bb 100644
--- a/ports/poco/CONTROL
+++ b/ports/poco/CONTROL
@@ -1,4 +1,8 @@
Source: poco
-Version: 1.7.8
+Version: 1.9.0
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.
+
+Feature: mysql
+Build-Depends: libmysql
+Description: Mysql support for POCO
diff --git a/ports/poco/fix-static-internal-pcre.patch b/ports/poco/fix-static-internal-pcre.patch
new file mode 100644
index 000000000..970f9e246
--- /dev/null
+++ b/ports/poco/fix-static-internal-pcre.patch
@@ -0,0 +1,27 @@
+diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt
+index d47ced2..ddead59 100644
+--- a/Foundation/CMakeLists.txt
++++ b/Foundation/CMakeLists.txt
+@@ -48,6 +48,22 @@ if (POCO_UNBUNDLED)
+
+ add_definitions(-DPOCO_UNBUNDLED)
+
++ add_definitions(
++ -D_pcre_utf8_table1=_poco_pcre_utf8_table1
++ -D_pcre_utf8_table1_size=_poco_pcre_utf8_table1_size
++ -D_pcre_utf8_table2=_poco_pcre_utf8_table2
++ -D_pcre_utf8_table3=_poco_pcre_utf8_table3
++ -D_pcre_utf8_table4=_poco_pcre_utf8_table4
++ -D_pcre_utt_names=_poco_pcre_utt_names
++ -D_pcre_utt=_poco_pcre_utt
++ -D_pcre_utt_size=_poco_pcre_utt_size
++ -D_pcre_OP_lengths=_poco_pcre_OP_lengths
++ -D_pcre_hspace_list=_poco_pcre_hspace_list
++ -D_pcre_vspace_list=_poco_pcre_vspace_list
++ -D_pcre_ucp_gentype=_poco_pcre_ucp_gentype
++ -D_pcre_ucp_gbtable=_poco_pcre_ucp_gbtable
++ )
++
+ else()
+ # pcre
+ POCO_SOURCES( SRCS pcre
diff --git a/ports/poco/portfile.cmake b/ports/poco/portfile.cmake
index 3ef0af921..271e223f8 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.9.0-release
+ SHA512 de2346d62b2e89ba04abe62a83f6ede7a496e80bcbe53a880a1aa8e87a8ebd9a430dd70fdc6aada836bb1021c6df21375fd0cbcf62dbb6e29a2f65d6d90cf2b9
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
@@ -14,12 +14,17 @@ vcpkg_apply_patches(
${CMAKE_CURRENT_LIST_DIR}/config_h.patch
${CMAKE_CURRENT_LIST_DIR}/find_pcre.patch
${CMAKE_CURRENT_LIST_DIR}/foundation-public-include-pcre.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-static-internal-pcre.patch
)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
- set(POCO_STATIC ON)
-else()
- set(POCO_STATIC OFF)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" POCO_STATIC)
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" POCO_MT)
+
+if("mysql" IN_LIST FEATURES)
+ # enabling MySQL support
+ set(MYSQL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include/mysql")
+ set(MYSQL_LIB "${CURRENT_INSTALLED_DIR}/lib/libmysql.lib")
+ set(MYSQL_LIB_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib/libmysql.lib")
endif()
vcpkg_configure_cmake(
@@ -27,9 +32,15 @@ vcpkg_configure_cmake(
PREFER_NINJA
OPTIONS
-DPOCO_STATIC=${POCO_STATIC}
+ -DPOCO_MT=${POCO_MT}
-DENABLE_SEVENZIP=ON
-DENABLE_TESTS=OFF
-DPOCO_UNBUNDLED=ON # OFF means: using internal copy of sqlite, libz, pcre, expat, ...
+ -DMYSQL_INCLUDE_DIR=${MYSQL_INCLUDE_DIR}
+ OPTIONS_RELEASE
+ -DMYSQL_LIB=${MYSQL_LIB}
+ OPTIONS_DEBUG
+ -DMYSQL_LIB=${MYSQL_LIB_DEBUG}
)
vcpkg_install_cmake()
@@ -53,8 +64,7 @@ else()
endif()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/poco)
# copy license
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/poco)
diff --git a/ports/podofo/CONTROL b/ports/podofo/CONTROL
index dfb5446d1..2e36ace2f 100644
--- a/ports/podofo/CONTROL
+++ b/ports/podofo/CONTROL
@@ -1,4 +1,8 @@
Source: podofo
-Version: 0.9.5
+Version: 0.9.5-2
Description: PoDoFo is a library to work with the PDF file format
-Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openssl, freetype, fontconfig \ No newline at end of file
+Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openssl (!windows&!uwp), freetype
+
+Feature: fontconfig
+Description: Enable font manager support on Unix platforms.
+Build-Depends: fontconfig
diff --git a/ports/podofo/portfile.cmake b/ports/podofo/portfile.cmake
index 7c62ea07a..c49534329 100644
--- a/ports/podofo/portfile.cmake
+++ b/ports/podofo/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)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/podofo-0.9.5)
vcpkg_download_distfile(ARCHIVE
@@ -19,18 +7,31 @@ vcpkg_download_distfile(ARCHIVE
)
vcpkg_extract_source_archive(${ARCHIVE})
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS -DPODOFO_BUILD_LIB_ONLY=1 -DPODOFO_BUILD_SHARED=1
- )
-elseif (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS -DPODOFO_BUILD_LIB_ONLY=1 -DPODOFO_BUILD_STATIC=1
- )
+set(PODOFO_NO_FONTMANAGER ON)
+if("fontconfig" IN_LIST FEATURES)
+ set(PODOFO_NO_FONTMANAGER OFF)
+endif()
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PODOFO_BUILD_SHARED)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PODOFO_BUILD_STATIC)
+
+set(IS_WIN32 OFF)
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR NOT VCPKG_CMAKE_SYSTEM_NAME)
+ set(IS_WIN32 ON)
endif()
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DPODOFO_BUILD_LIB_ONLY=1
+ -DPODOFO_BUILD_SHARED=${PODOFO_BUILD_SHARED}
+ -DPODOFO_BUILD_STATIC=${PODOFO_BUILD_STATIC}
+ -DPODOFO_NO_FONTMANAGER=${PODOFO_NO_FONTMANAGER}
+ -DCMAKE_DISABLE_FIND_PACKAGE_FONTCONFIG=${PODOFO_NO_FONTMANAGER}
+ -DCMAKE_DISABLE_FIND_PACKAGE_LIBCRYPTO=${IS_WIN32}
+ -DCMAKE_DISABLE_FIND_PACKAGE_LIBIDN=ON
+)
+
vcpkg_install_cmake()
# Handle copyright
diff --git a/ports/portaudio/CONTROL b/ports/portaudio/CONTROL
index b2fb68b84..829a87026 100644
--- a/ports/portaudio/CONTROL
+++ b/ports/portaudio/CONTROL
@@ -1,3 +1,3 @@
Source: portaudio
-Version: 19.0.6.00
+Version: 19.0.6.00-2
Description: PortAudio Portable Cross-platform Audio I/O API PortAudio is a free, cross-platform, open-source, audio I/O library. It lets you write simple audio programs in 'C' or C++ that will compile and run on many platforms including Windows, Macintosh OS X, and Unix (OSS/ALSA). It is intended to promote the exchange of audio software between developers on different platforms. Many applications use PortAudio for Audio I/O.
diff --git a/ports/portaudio/crt_linkage_build_config.patch b/ports/portaudio/crt_linkage_build_config.patch
new file mode 100644
index 000000000..b1cef3014
--- /dev/null
+++ b/ports/portaudio/crt_linkage_build_config.patch
@@ -0,0 +1,61 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -10,32 +10,32 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+ # project. If this is part of a larger project (i.e. the CMakeLists.txt has
+ # been imported by some other CMakeLists.txt), we don't want to trump over
+ # the top of that project's global settings.
+-IF(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_LIST_DIR})
+- IF(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+- MESSAGE(STATUS "Setting CMAKE_BUILD_TYPE type to 'Debug' as none was specified.")
+- SET(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build." FORCE)
+- SET_PROPERTY(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release")
+- ENDIF()
+-
+- PROJECT(portaudio)
+-
+- SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
+-
+- IF(WIN32 AND MSVC)
+- OPTION(PA_DLL_LINK_WITH_STATIC_RUNTIME "Link with static runtime libraries (minimizes runtime dependencies)" ON)
+- IF(PA_DLL_LINK_WITH_STATIC_RUNTIME)
+- FOREACH(flag_var
+- CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
+- CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
+- CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
+- CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
+- IF(${flag_var} MATCHES "/MD")
+- STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
+- ENDIF()
+- ENDFOREACH()
+- ENDIF()
+- ENDIF()
+-ENDIF()
++# IF(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_LIST_DIR})
++ # IF(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
++ # MESSAGE(STATUS "Setting CMAKE_BUILD_TYPE type to 'Debug' as none was specified.")
++ # SET(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build." FORCE)
++ # SET_PROPERTY(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release")
++ # ENDIF()
++
++ # PROJECT(portaudio)
++
++ # SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
++
++ # IF(WIN32 AND MSVC)
++ # OPTION(PA_DLL_LINK_WITH_STATIC_RUNTIME "Link with static runtime libraries (minimizes runtime dependencies)" ON)
++ # IF(PA_DLL_LINK_WITH_STATIC_RUNTIME)
++ # FOREACH(flag_var
++ # CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
++ # CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
++ # CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
++ # CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
++ # IF(${flag_var} MATCHES "/MD")
++ # STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
++ # ENDIF()
++ # ENDFOREACH()
++ # ENDIF()
++ # ENDIF()
++# ENDIF()
+
+ SET(PA_PKGCONFIG_VERSION 19)
+
diff --git a/ports/portaudio/find_dsound.patch b/ports/portaudio/find_dsound.patch
new file mode 100644
index 000000000..be82b5641
--- /dev/null
+++ b/ports/portaudio/find_dsound.patch
@@ -0,0 +1,114 @@
+--- a/cmake_support/FindDXSDK.cmake
++++ b/cmake_support/FindDXSDK.cmake
+@@ -16,44 +16,70 @@ else(WIN32)
+ message(FATAL_ERROR "FindDXSDK.cmake: Unsupported platform ${CMAKE_SYSTEM_NAME}" )
+ endif(WIN32)
+
+-find_path(DXSDK_ROOT_DIR
+- include/dxsdkver.h
+- HINTS
+- $ENV{DXSDK_DIR}
+-)
+-
+-find_path(DXSDK_INCLUDE_DIR
+- dxsdkver.h
+- PATHS
+- ${DXSDK_ROOT_DIR}/include
+-)
+-
+-IF(CMAKE_CL_64)
+-find_path(DXSDK_LIBRARY_DIR
+- dsound.lib
+- PATHS
+- ${DXSDK_ROOT_DIR}/lib/x64
+-)
+-ELSE(CMAKE_CL_64)
+-find_path(DXSDK_LIBRARY_DIR
+- dsound.lib
+- PATHS
+- ${DXSDK_ROOT_DIR}/lib/x86
+-)
+-ENDIF(CMAKE_CL_64)
+-
+-find_library(DXSDK_DSOUND_LIBRARY
+- dsound.lib
+- PATHS
+- ${DXSDK_LIBRARY_DIR}
+-)
+-
+-# handle the QUIETLY and REQUIRED arguments and set DXSDK_FOUND to TRUE if
+-# all listed variables are TRUE
+-INCLUDE(FindPackageHandleStandardArgs)
+-FIND_PACKAGE_HANDLE_STANDARD_ARGS(DXSDK DEFAULT_MSG DXSDK_ROOT_DIR DXSDK_INCLUDE_DIR)
+-
+-MARK_AS_ADVANCED(
+- DXSDK_ROOT_DIR DXSDK_INCLUDE_DIR
+- DXSDK_LIBRARY_DIR DXSDK_DSOUND_LIBRARY
+-)
++# Dsound.lib is statically linked (i.e. dsound.dll not required) and DXSDK_LIBRARY_DIR not used.
++# In the environments supported by VCPKG we may as well avoid looking out for DX9 to avoid version
++# mismatch in find.
++
++if(MSVC AND MSVC_VERSION GREATER_EQUAL 1900)
++
++ # if the environment is set up properly, matching lib and header will be found
++
++ find_path(DXSDK_INCLUDE_DIR
++ dsound.h
++ )
++ find_library(DXSDK_DSOUND_LIBRARY
++ dsound.lib
++ )
++
++ INCLUDE(FindPackageHandleStandardArgs)
++ FIND_PACKAGE_HANDLE_STANDARD_ARGS(DXSDK DEFAULT_MSG DXSDK_INCLUDE_DIR DXSDK_DSOUND_LIBRARY)
++
++ MARK_AS_ADVANCED(
++ DXSDK_INCLUDE_DIR DXSDK_DSOUND_LIBRARY
++ )
++
++else()
++
++ find_path(DXSDK_ROOT_DIR
++ include/dxsdkver.h
++ HINTS
++ $ENV{DXSDK_DIR}
++ )
++
++ find_path(DXSDK_INCLUDE_DIR
++ dxsdkver.h
++ HINTS
++ ${DXSDK_ROOT_DIR}/include
++ )
++
++ IF(CMAKE_CL_64)
++ find_path(DXSDK_LIBRARY_DIR
++ dsound.lib
++ HINTS
++ ${DXSDK_ROOT_DIR}/lib/x64
++ )
++ ELSE(CMAKE_CL_64)
++ find_path(DXSDK_LIBRARY_DIR
++ dsound.lib
++ HINTS
++ ${DXSDK_ROOT_DIR}/lib/x86
++ )
++ ENDIF(CMAKE_CL_64)
++
++ find_library(DXSDK_DSOUND_LIBRARY
++ dsound.lib
++ HINTS
++ ${DXSDK_LIBRARY_DIR}
++ )
++
++ # handle the QUIETLY and REQUIRED arguments and set DXSDK_FOUND to TRUE if
++ # all listed variables are TRUE
++ INCLUDE(FindPackageHandleStandardArgs)
++ FIND_PACKAGE_HANDLE_STANDARD_ARGS(DXSDK DEFAULT_MSG DXSDK_ROOT_DIR DXSDK_INCLUDE_DIR)
++
++ MARK_AS_ADVANCED(
++ DXSDK_ROOT_DIR DXSDK_INCLUDE_DIR
++ DXSDK_LIBRARY_DIR DXSDK_DSOUND_LIBRARY
++ )
++
++endif()
diff --git a/ports/portaudio/portfile.cmake b/ports/portaudio/portfile.cmake
index b243d5a6d..74a9cdcf6 100644
--- a/ports/portaudio/portfile.cmake
+++ b/ports/portaudio/portfile.cmake
@@ -18,18 +18,27 @@ vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/cmakelists-install.patch)
+ ${CMAKE_CURRENT_LIST_DIR}/cmakelists-install.patch
+ ${CMAKE_CURRENT_LIST_DIR}/find_dsound.patch
+ ${CMAKE_CURRENT_LIST_DIR}/crt_linkage_build_config.patch)
+# NOTE: the ASIO backend will be built automatically if the ASIO-SDK is provided
+# in a sibling folder of the portaudio source in vcpkg/buildtrees/portaudio/src
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
+ OPTIONS
+ -DPA_USE_DS=ON
+ -DPA_USE_WASAPI=ON
+ -DPA_USE_WDMKS=ON
+ -DPA_USE_WMME=ON
)
vcpkg_install_cmake()
# Remove static builds from dynamic builds and otherwise
# Remove x86 and x64 from resulting files
-if (VCPKG_CRT_LINKAGE STREQUAL dynamic)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
file (REMOVE ${CURRENT_PACKAGES_DIR}/lib/portaudio_static_${VCPKG_TARGET_ARCHITECTURE}.lib)
file (REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/portaudio_static_${VCPKG_TARGET_ARCHITECTURE}.lib)
diff --git a/ports/portmidi/CONTROL b/ports/portmidi/CONTROL
new file mode 100644
index 000000000..3534c1856
--- /dev/null
+++ b/ports/portmidi/CONTROL
@@ -0,0 +1,3 @@
+Source: portmidi
+Version: 0.217.1
+Description: Free, cross-platform, open-source I/O library for MIDI
diff --git a/ports/portmidi/portfile.cmake b/ports/portmidi/portfile.cmake
new file mode 100644
index 000000000..557f4a1ca
--- /dev/null
+++ b/ports/portmidi/portfile.cmake
@@ -0,0 +1,49 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "WindowsStore not supported")
+endif()
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/portmidi)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://downloads.sourceforge.net/project/portmedia/portmidi/217/portmidi-src-217.zip"
+ FILENAME "portmidi-src-217.zip"
+ SHA512 d08d4d57429d26d292b5fe6868b7c7a32f2f1d2428f6695cd403a697e2d91629bd4380242ab2720e8f21c895bb75cb56b709fb663a20e8e623120e50bfc5d90b
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+# Mark portmidi-static as static, disable pmjni library depending on the Java SDK
+
+file(READ "${SOURCE_PATH}/pm_common/CMakeLists.txt" PM_CMAKE)
+string(REPLACE "add_library(portmidi-static \${LIBSRC})" "add_library(portmidi-static STATIC \${LIBSRC})" PM_CMAKE "${PM_CMAKE}")
+string(REPLACE "add_library(pmjni SHARED \${JNISRC})" "# Removed pmjni" PM_CMAKE "${PM_CMAKE}")
+string(REPLACE "target_link_libraries(pmjni \${JNI_EXTRA_LIBS})" "# Removed pmjni" PM_CMAKE "${PM_CMAKE}")
+string(REPLACE "set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION \"jnilib\")" "# Removed pmjni" PM_CMAKE "${PM_CMAKE}")
+file(WRITE "${SOURCE_PATH}/pm_common/CMakeLists.txt" "${PM_CMAKE}")
+
+# Run cmake configure step
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DJAVA_INCLUDE_PATH=
+ -DJAVA_INCLUDE_PATH2=
+ -DJAVA_JVM_LIBRARY=
+)
+
+# Run cmake build step, nothing is installed on Windows
+vcpkg_build_cmake()
+
+file(INSTALL ${SOURCE_PATH}/pm_common/portmidi.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/porttime/porttime.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/portmidi_s.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+ file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/portmidi_s.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+else()
+ file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/portmidi.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/portmidi.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+ file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/portmidi.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/portmidi.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+endif()
+
+file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/portmidi RENAME copyright)
diff --git a/ports/pqp/CONTROL b/ports/pqp/CONTROL
index 8b9882631..69a72c33e 100644
--- a/ports/pqp/CONTROL
+++ b/ports/pqp/CONTROL
@@ -1,3 +1,3 @@
Source: pqp
-Version: 1.3-1
+Version: 1.3-2
Description: a proximity query package
diff --git a/ports/proj/CONTROL b/ports/proj/CONTROL
index b706ca11a..d6c204fda 100644
--- a/ports/proj/CONTROL
+++ b/ports/proj/CONTROL
@@ -1,3 +1,4 @@
Source: proj
-Version: 4.9.3
-Description: PROJ.4 library for cartographic projections
+Version: 0
+Description: a stub package that pulls in proj4. Do not depend on this package.
+Build-Depends: proj4
diff --git a/ports/proj/portfile.cmake b/ports/proj/portfile.cmake
index 6007ab62a..cc6e26fcb 100644
--- a/ports/proj/portfile.cmake
+++ b/ports/proj/portfile.cmake
@@ -1,57 +1 @@
-include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/proj-4.9.3)
-vcpkg_download_distfile(ARCHIVE
- URLS "http://download.osgeo.org/proj/proj-4.9.3.zip"
- FILENAME "proj-4.9.3.zip"
- SHA512 c9703008cd1f75fe1239b180158e560b9b88ae2ffd900b72923c716908eb86d1abbc4230647af5e3131f8c34481bdc66b03826d669620161ffcfbe67801cb631
-)
-vcpkg_extract_source_archive(${ARCHIVE})
-
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}/
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/0001-CMake-add-detection-of-recent-visual-studio-versions.patch
- ${CMAKE_CURRENT_LIST_DIR}/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch
- ${CMAKE_CURRENT_LIST_DIR}/0003-CMake-configurable-cmake-config-install-location.patch
-)
-
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- list(APPEND CMAKE_OPTIONS "-DBUILD_LIBPROJ_SHARED=YES")
-else()
- list(APPEND CMAKE_OPTIONS "-DBUILD_LIBPROJ_SHARED=NO")
-endif()
-
-vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS ${CMAKE_OPTIONS}
- -DPROJ_LIB_SUBDIR=lib
- -DPROJ_INCLUDE_SUBDIR=include
- -DPROJ_DATA_SUBDIR=share/proj
- -DPROJ_CMAKE_CONFIG_SUBDIR=share/proj
- -DBUILD_CS2CS=NO
- -DBUILD_PROJ=NO
- -DBUILD_GEOD=NO
- -DBUILD_NAD2BIN=NO
- -DPROJ4_TESTS=NO
-)
-
-vcpkg_install_cmake()
-
-
-# Rename library and adapt cmake configuration
-# N.B. debug cmake export is not copied, as it's not relocatable
-file(READ ${CURRENT_PACKAGES_DIR}/share/proj/proj4-targets-release.cmake PROJ4_TARGETS_RELEASE)
-string(REPLACE "proj_4_9.lib" "proj.lib" PROJ4_TARGETS_RELEASE ${PROJ4_TARGETS_RELEASE})
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/proj/proj4-targets-release.cmake ${PROJ4_TARGETS_RELEASE})
-
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/proj_4_9.lib ${CURRENT_PACKAGES_DIR}/lib/proj.lib)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/proj_4_9_d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/projd.lib)
-
-# Remove duplicate headers installed from debug build
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-# Remove data installed from debug build
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-
-# Handle copyright
-file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/proj)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/proj/COPYING ${CURRENT_PACKAGES_DIR}/share/proj/copyright)
+SET(VCPKG_POLICY_EMPTY_PACKAGE enabled)
diff --git a/ports/proj/0001-CMake-add-detection-of-recent-visual-studio-versions.patch b/ports/proj4/0001-CMake-add-detection-of-recent-visual-studio-versions.patch
index 9be5438aa..9be5438aa 100644
--- a/ports/proj/0001-CMake-add-detection-of-recent-visual-studio-versions.patch
+++ b/ports/proj4/0001-CMake-add-detection-of-recent-visual-studio-versions.patch
diff --git a/ports/proj/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch b/ports/proj4/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch
index 2c470570e..2c470570e 100644
--- a/ports/proj/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch
+++ b/ports/proj4/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch
diff --git a/ports/proj/0003-CMake-configurable-cmake-config-install-location.patch b/ports/proj4/0003-CMake-configurable-cmake-config-install-location.patch
index 5870e12ea..5870e12ea 100644
--- a/ports/proj/0003-CMake-configurable-cmake-config-install-location.patch
+++ b/ports/proj4/0003-CMake-configurable-cmake-config-install-location.patch
diff --git a/ports/proj4/CONTROL b/ports/proj4/CONTROL
new file mode 100644
index 000000000..cf2519b12
--- /dev/null
+++ b/ports/proj4/CONTROL
@@ -0,0 +1,3 @@
+Source: proj4
+Version: 4.9.3-1
+Description: PROJ.4 library for cartographic projections
diff --git a/ports/proj4/portfile.cmake b/ports/proj4/portfile.cmake
new file mode 100644
index 000000000..bc4e66fcd
--- /dev/null
+++ b/ports/proj4/portfile.cmake
@@ -0,0 +1,76 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/proj-4.9.3)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://download.osgeo.org/proj/proj-4.9.3.zip"
+ FILENAME "proj-4.9.3.zip"
+ SHA512 c9703008cd1f75fe1239b180158e560b9b88ae2ffd900b72923c716908eb86d1abbc4230647af5e3131f8c34481bdc66b03826d669620161ffcfbe67801cb631
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}/
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001-CMake-add-detection-of-recent-visual-studio-versions.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0003-CMake-configurable-cmake-config-install-location.patch
+)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ list(APPEND CMAKE_OPTIONS "-DBUILD_LIBPROJ_SHARED=YES")
+else()
+ list(APPEND CMAKE_OPTIONS "-DBUILD_LIBPROJ_SHARED=NO")
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS ${CMAKE_OPTIONS}
+ -DPROJ_LIB_SUBDIR=lib
+ -DPROJ_INCLUDE_SUBDIR=include
+ -DPROJ_DATA_SUBDIR=share/proj4
+ -DPROJ_CMAKE_CONFIG_SUBDIR=share/proj4
+ -DBUILD_CS2CS=NO
+ -DBUILD_PROJ=NO
+ -DBUILD_GEOD=NO
+ -DBUILD_NAD2BIN=NO
+ -DPROJ4_TESTS=NO
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/proj4)
+
+# Rename library and adapt cmake configuration
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(READ ${CURRENT_PACKAGES_DIR}/share/proj4/proj4-targets-release.cmake _contents)
+ string(REPLACE "proj_4_9.lib" "proj.lib" _contents "${_contents}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/proj4/proj4-targets-release.cmake "${_contents}")
+endif()
+
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(READ ${CURRENT_PACKAGES_DIR}/share/proj4/proj4-targets-debug.cmake _contents)
+ string(REPLACE "proj_4_9_d.lib" "projd.lib" _contents "${_contents}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/proj4/proj4-targets-debug.cmake "${_contents}")
+endif()
+
+file(READ ${CURRENT_PACKAGES_DIR}/share/proj4/proj4-targets.cmake _contents)
+string(REPLACE "set(_IMPORT_PREFIX \"${CURRENT_PACKAGES_DIR}\")"
+ "set(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_DIR}\")\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)"
+ _contents "${_contents}"
+)
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/proj4/proj4-targets.cmake "${_contents}")
+
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/proj_4_9.lib ${CURRENT_PACKAGES_DIR}/lib/proj.lib)
+endif()
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/proj_4_9_d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/projd.lib)
+endif()
+
+# Remove duplicate headers installed from debug build
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+# Remove data installed from debug build
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/proj4)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/proj4/COPYING ${CURRENT_PACKAGES_DIR}/share/proj4/copyright)
diff --git a/ports/protobuf/001-add-compiler-flag.patch b/ports/protobuf/001-add-compiler-flag.patch
new file mode 100644
index 000000000..ad545cad3
--- /dev/null
+++ b/ports/protobuf/001-add-compiler-flag.patch
@@ -0,0 +1,70 @@
+diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
+index 7618ba2..d282a60 100644
+--- a/cmake/CMakeLists.txt
++++ b/cmake/CMakeLists.txt
+@@ -165,8 +165,10 @@ endif (protobuf_UNICODE)
+
+ include(libprotobuf-lite.cmake)
+ include(libprotobuf.cmake)
+-include(libprotoc.cmake)
+-include(protoc.cmake)
++if(protobuf_BUILD_COMPILER)
++ include(libprotoc.cmake)
++ include(protoc.cmake)
++endif()
+
+ if (protobuf_BUILD_TESTS)
+ include(tests.cmake)
+
+diff --git a/cmake/install.cmake b/cmake/install.cmake
+index 441bf55..20b3aa0 100644
+--- a/cmake/install.cmake
++++ b/cmake/install.cmake
+@@ -1,14 +1,17 @@
+ include(GNUInstallDirs)
+
++set(LIBRARIES_TO_SET_DEST libprotobuf-lite libprotobuf)
++if(protobuf_BUILD_COMPILER)
++ list(APPEND LIBRARIES_TO_SET_DEST libprotoc)
++endif()
++
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/protobuf.pc.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/protobuf.pc @ONLY)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/protobuf-lite.pc.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/protobuf-lite.pc @ONLY)
+
+ foreach(_library
+- libprotobuf-lite
+- libprotobuf
+- libprotoc)
++ ${LIBRARIES_TO_SET_DEST})
+ set_property(TARGET ${_library}
+ PROPERTY INTERFACE_INCLUDE_DIRECTORIES
+ $<BUILD_INTERFACE:${protobuf_source_dir}/src>
+@@ -19,8 +22,10 @@ foreach(_library
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${_library})
+ endforeach()
+
+-install(TARGETS protoc EXPORT protobuf-targets
+- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT protoc)
++if(protobuf_BUILD_COMPILER)
++ install(TARGETS protoc EXPORT protobuf-targets
++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT protoc)
++endif()
+
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/protobuf.pc ${CMAKE_CURRENT_BINARY_DIR}/protobuf-lite.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
+
+@@ -101,7 +106,12 @@ configure_file(protobuf-options.cmake
+ ${CMAKE_INSTALL_CMAKEDIR}/protobuf-options.cmake @ONLY)
+
+ # Allows the build directory to be used as a find directory.
+-export(TARGETS libprotobuf-lite libprotobuf libprotoc protoc
++set(FIND_DIRS libprotobuf-lite libprotobuf)
++if(protobuf_BUILD_COMPILER)
++ list(APPEND FIND_DIRS libprotoc protoc)
++endif()
++
++export(TARGETS ${FIND_DIRS}
+ NAMESPACE protobuf::
+ FILE ${CMAKE_INSTALL_CMAKEDIR}/protobuf-targets.cmake
+ )
diff --git a/ports/protobuf/CONTROL b/ports/protobuf/CONTROL
index 757d39d6b..8b149b051 100644
--- a/ports/protobuf/CONTROL
+++ b/ports/protobuf/CONTROL
@@ -1,4 +1,7 @@
Source: protobuf
-Version: 3.3.0
+Version: 3.5.1-4
+Description: Protocol Buffers - Google's data interchange format
+
+Feature: zlib
+Description: ZLib based features like Gzip streams
Build-Depends: zlib
-Description: Protocol Buffers - Google's data interchange format \ No newline at end of file
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/fix-uwp.patch b/ports/protobuf/fix-uwp.patch
new file mode 100644
index 000000000..ba09d5913
--- /dev/null
+++ b/ports/protobuf/fix-uwp.patch
@@ -0,0 +1,12 @@
+diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
+index 3afe376..1a0b6a7 100644
+--- a/cmake/CMakeLists.txt
++++ b/cmake/CMakeLists.txt
+@@ -151,6 +151,7 @@ if (MSVC)
+ /wd4506 # no definition for inline function 'function'
+ /wd4800 # 'type' : forcing value to bool 'true' or 'false' (performance warning)
+ /wd4996 # The compiler encountered a deprecated declaration.
++ /wd4703 # Potentially uninitialized local pointer variable 'name' used.
+ )
+ # Allow big object
+ add_definitions(/bigobj)
diff --git a/ports/protobuf/js-embed.patch b/ports/protobuf/js-embed.patch
new file mode 100644
index 000000000..df20fe030
--- /dev/null
+++ b/ports/protobuf/js-embed.patch
@@ -0,0 +1,25 @@
+diff --git a/cmake/libprotoc.cmake b/cmake/libprotoc.cmake
+index 107c1c5..233bcf6 100644
+--- a/cmake/libprotoc.cmake
++++ b/cmake/libprotoc.cmake
+@@ -73,7 +73,7 @@ set(libprotoc_files
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_message_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_primitive_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/js/js_generator.cc
+- ${protobuf_source_dir}/src/google/protobuf/compiler/js/well_known_types_embed.cc
++ ${CMAKE_CURRENT_BINARY_DIR}/well_known_types_embed.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_enum.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_extension.cc
+@@ -210,9 +210,9 @@ set(js_well_known_types_sources
+ )
+ add_executable(js_embed ${protobuf_source_dir}/src/google/protobuf/compiler/js/embed.cc)
+ add_custom_command(
+- OUTPUT ${protobuf_source_dir}/src/google/protobuf/compiler/js/well_known_types_embed.cc
++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/well_known_types_embed.cc
+ DEPENDS js_embed ${js_well_known_types_sources}
+- COMMAND js_embed ${js_well_known_types_sources} > ${protobuf_source_dir}/src/google/protobuf/compiler/js/well_known_types_embed.cc
++ COMMAND "$<TARGET_FILE:js_embed>" ${js_well_known_types_sources} > ${CMAKE_CURRENT_BINARY_DIR}/well_known_types_embed.cc
+ )
+
+ add_library(libprotoc ${protobuf_SHARED_OR_STATIC}
diff --git a/ports/protobuf/portfile.cmake b/ports/protobuf/portfile.cmake
index c053e1bb5..f96b5240b 100644
--- a/ports/protobuf/portfile.cmake
+++ b/ports/protobuf/portfile.cmake
@@ -1,25 +1,47 @@
include(vcpkg_common_functions)
-set(PROTOBUF_VERSION 3.3.0)
+set(PROTOBUF_VERSION 3.5.1)
+set(PROTOC_VERSION 3.5.1)
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 ef01300bdda4a1a33a6056aea1d55e9d66ab1ca644aa2d9d5633cfc0bccfe4c24fdfa1015889b2c1c568e89ad053c701de1aca45196a6439130b7bb8f461595f
+ SHA512 195ccb210229e0a1080dcdb0a1d87b2e421ad55f6b036c56db3183bd50a942c75b4cc84e6af8a10ad88022a247781a06f609a145a461dfbb8f04051b7dd714b3
)
-vcpkg_download_distfile(TOOL_ARCHIVE_FILE
- URLS "https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/protoc-${PROTOBUF_VERSION}-win32.zip"
- FILENAME "protoc-${PROTOBUF_VERSION}-win32.zip"
- SHA512 9b4902b3187fb978a8153aaf050314a3ca9ca161b0712a3672ccdfabb7f5a57035e71c2dfde9a0b99f9417e159dcbdedaf9a2b1917d712dc3d9d554bba0d4ee8
-)
-
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION})
-set(TOOL_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION}-win32)
vcpkg_extract_source_archive(${ARCHIVE_FILE})
-vcpkg_extract_source_archive(${TOOL_ARCHIVE_FILE} ${TOOL_PATH})
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+# 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"
+ "${CMAKE_CURRENT_LIST_DIR}/export-ParseGeneratorParameter.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/js-embed.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/fix-uwp.patch"
+)
+
+if(CMAKE_HOST_WIN32)
+ set(TOOL_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION}-win32)
+ 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 27b1b82e92d82c35158362435a29f590961b91f68cda21bffe46e52271340ea4587c4e3177668809af0d053b61e6efa69f0f62156ea11393cd9e6eb4474a3049
+ )
+
+ vcpkg_extract_source_archive(${TOOL_ARCHIVE_FILE} ${TOOL_PATH})
+endif()
+
+
+# Disable the protobuf compiler when targeting UWP
+if(CMAKE_HOST_WIN32 AND VCPKG_CMAKE_SYSTEM_NAME)
+ set(protobuf_BUILD_COMPILER OFF)
+else()
+ set(protobuf_BUILD_COMPILER ON)
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
set(protobuf_BUILD_SHARED_LIBS ON)
else()
set(protobuf_BUILD_SHARED_LIBS OFF)
@@ -31,18 +53,25 @@ else()
set(protobuf_MSVC_STATIC_RUNTIME OFF)
endif()
+if("zlib" IN_LIST FEATURES)
+ set(protobuf_WITH_ZLIB ON)
+else()
+ set(protobuf_WITH_ZLIB OFF)
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}/cmake
+ PREFER_NINJA
OPTIONS
-Dprotobuf_BUILD_SHARED_LIBS=${protobuf_BUILD_SHARED_LIBS}
-Dprotobuf_MSVC_STATIC_RUNTIME=${protobuf_MSVC_STATIC_RUNTIME}
- -Dprotobuf_WITH_ZLIB=ON
+ -Dprotobuf_WITH_ZLIB=${protobuf_WITH_ZLIB}
-Dprotobuf_BUILD_TESTS=OFF
+ -Dprotobuf_BUILD_COMPILER=${protobuf_BUILD_COMPILER}
-DCMAKE_INSTALL_CMAKEDIR=share/protobuf
)
-# Using 64-bit toolset to avoid occassional Linker Out-of-Memory issues.
-vcpkg_install_cmake(MSVC_64_TOOLSET)
+vcpkg_install_cmake()
# It appears that at this point the build hasn't actually finished. There is probably
# a process spawned by the build, therefore we need to wait a bit.
@@ -57,25 +86,44 @@ endfunction()
protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/debug/include)
-file(READ ${CURRENT_PACKAGES_DIR}/share/protobuf/protobuf-targets-release.cmake RELEASE_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}/bin/protoc.exe" "\${_IMPORT_PREFIX}/tools/protoc.exe" RELEASE_MODULE "${RELEASE_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/protobuf/protobuf-targets-release.cmake "${RELEASE_MODULE}")
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(READ ${CURRENT_PACKAGES_DIR}/share/protobuf/protobuf-targets-release.cmake RELEASE_MODULE)
+ string(REPLACE "\${_IMPORT_PREFIX}/bin/protoc${CMAKE_EXECUTABLE_SUFFIX}" "\${_IMPORT_PREFIX}/tools/protoc${CMAKE_EXECUTABLE_SUFFIX}" RELEASE_MODULE "${RELEASE_MODULE}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/protobuf/protobuf-targets-release.cmake "${RELEASE_MODULE}")
+endif()
-file(READ ${CURRENT_PACKAGES_DIR}/debug/share/protobuf/protobuf-targets-debug.cmake DEBUG_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" DEBUG_MODULE "${DEBUG_MODULE}")
-string(REPLACE "\${_IMPORT_PREFIX}/debug/bin/protoc.exe" "\${_IMPORT_PREFIX}/tools/protoc.exe" DEBUG_MODULE "${DEBUG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/protobuf/protobuf-targets-debug.cmake "${DEBUG_MODULE}")
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(READ ${CURRENT_PACKAGES_DIR}/debug/share/protobuf/protobuf-targets-debug.cmake DEBUG_MODULE)
+ string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" DEBUG_MODULE "${DEBUG_MODULE}")
+ string(REPLACE "\${_IMPORT_PREFIX}/debug/bin/protoc${CMAKE_EXECUTABLE_SUFFIX}" "\${_IMPORT_PREFIX}/tools/protoc${CMAKE_EXECUTABLE_SUFFIX}" DEBUG_MODULE "${DEBUG_MODULE}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/protobuf/protobuf-targets-debug.cmake "${DEBUG_MODULE}")
+endif()
protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/debug/share)
-if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
- protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/bin)
- protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/debug/bin)
+if(CMAKE_HOST_WIN32)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/bin)
+ protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/debug/bin)
+ else()
+ protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/bin/protoc.exe)
+ protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/debug/bin/protoc.exe)
+ endif()
else()
- protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/bin/protoc.exe)
- protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/debug/bin/protoc.exe)
+ protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(INSTALL ${CURRENT_PACKAGES_DIR}/bin/protoc DESTINATION ${CURRENT_PACKAGES_DIR}/tools
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ)
+ protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/bin)
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(READ ${CURRENT_PACKAGES_DIR}/include/google/protobuf/stubs/platform_macros.h _contents)
+ string(REPLACE "\#endif // GOOGLE_PROTOBUF_PLATFORM_MACROS_H_" "\#define PROTOBUF_USE_DLLS\n\#endif // GOOGLE_PROTOBUF_PLATFORM_MACROS_H_" _contents "${_contents}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/google/protobuf/stubs/platform_macros.h "${_contents}")
endif()
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/protobuf RENAME copyright)
-file(INSTALL ${TOOL_PATH}/bin/protoc.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools)
+if(CMAKE_HOST_WIN32)
+ file(INSTALL ${TOOL_PATH}/bin/protoc.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools)
+endif()
vcpkg_copy_pdbs()
diff --git a/ports/ptex/CONTROL b/ports/ptex/CONTROL
new file mode 100644
index 000000000..e41db7678
--- /dev/null
+++ b/ports/ptex/CONTROL
@@ -0,0 +1,4 @@
+Source: ptex
+Version: 2.1.28-1
+Description: Per-Face Texture Mapping for Production Rendering.
+Build-Depends: zlib
diff --git a/ports/ptex/fix-build.patch b/ports/ptex/fix-build.patch
new file mode 100644
index 000000000..6d6484d60
--- /dev/null
+++ b/ports/ptex/fix-build.patch
@@ -0,0 +1,65 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index dd327d0..5043452 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,15 +6,6 @@ include(CTest)
+ include(FindZLIB)
+ include(FindThreads)
+
+-enable_testing()
+-
+-# Detect the build type from the $FLAVOR environment variable
+-if ("$ENV{FLAVOR}" MATCHES "debug")
+- set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "type of build" FORCE)
+-else ()
+- set(CMAKE_BUILD_TYPE "Release" CACHE STRING "type of build" FORCE)
+-endif ()
+-
+ if (NOT WIN32)
+ set(CMAKE_CXX_FLAGS "-std=c++98 -Wall -Wextra -pedantic")
+ endif ()
+@@ -40,6 +31,6 @@ include_directories(src/ptex)
+ include_directories(${ZLIB_INCLUDE_DIR})
+
+ add_subdirectory(src/ptex)
+-add_subdirectory(src/utils)
+-add_subdirectory(src/tests)
+-add_subdirectory(src/doc)
++#add_subdirectory(src/utils)
++#add_subdirectory(src/tests)
++#add_subdirectory(src/doc)
+diff --git a/src/ptex/CMakeLists.txt b/src/ptex/CMakeLists.txt
+index c926d98..ac2c71d 100644
+--- a/src/ptex/CMakeLists.txt
++++ b/src/ptex/CMakeLists.txt
+@@ -1,6 +1,8 @@
+-if (WIN32)
+- add_definitions(/DPTEX_EXPORTS)
+-endif (WIN32)
++if (BUILD_SHARED_LIBS)
++ add_definitions(-DPTEX_EXPORTS)
++else ()
++ add_definitions(-DPTEX_STATIC)
++endif ()
+
+ set(SRCS
+ PtexCache.cpp
+@@ -14,15 +16,11 @@ set(SRCS
+ PtexUtils.cpp
+ PtexWriter.cpp)
+
+-add_library(Ptex_static STATIC ${SRCS})
+-set_target_properties(Ptex_static PROPERTIES OUTPUT_NAME Ptex)
++add_library(Ptex ${SRCS})
+
+-add_library(Ptex_dynamic SHARED ${SRCS})
+-set_target_properties(Ptex_dynamic PROPERTIES OUTPUT_NAME Ptex)
++target_link_libraries(Ptex ${CMAKE_THREAD_LIBS_INIT} ${ZLIB_LIBRARIES})
+
+-target_link_libraries(Ptex_dynamic ${CMAKE_THREAD_LIBS_INIT} ${ZLIB_LIBRARIES})
+-
+-install(TARGETS Ptex_static Ptex_dynamic DESTINATION ${CMAKE_INSTALL_LIBDIR})
++install(TARGETS Ptex RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+ install(FILES
+ PtexHalf.h
diff --git a/ports/ptex/portfile.cmake b/ports/ptex/portfile.cmake
new file mode 100644
index 000000000..52d77096b
--- /dev/null
+++ b/ports/ptex/portfile.cmake
@@ -0,0 +1,35 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+ message(FATAL_ERROR "UWP build not supported")
+endif()
+
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO wdas/ptex
+ REF v2.1.28
+ SHA512 ddce3c79f14d196e550c1e8a5b371482f88190cd667a2e2aa84601de1639f7cabb8571c1b3a49b48df46ce550d27088a00a67b1403c3bfec2ed73437c3dca3e8
+ HEAD_REF master)
+
+vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-build.patch)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+foreach(HEADER PtexHalf.h Ptexture.h)
+ file(READ ${CURRENT_PACKAGES_DIR}/include/${HEADER} PTEX_HEADER)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ string(REPLACE "ifndef PTEX_STATIC" "if 1" PTEX_HEADER "${PTEX_HEADER}")
+ else()
+ string(REPLACE "ifndef PTEX_STATIC" "if 0" PTEX_HEADER "${PTEX_HEADER}")
+ endif()
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/${HEADER} "${PTEX_HEADER}")
+endforeach()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(COPY ${SOURCE_PATH}/src/doc/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/ptex)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/ptex/license.txt ${CURRENT_PACKAGES_DIR}/share/ptex/copyright)
diff --git a/ports/pthreads/CMakeLists.txt b/ports/pthreads/CMakeLists.txt
new file mode 100644
index 000000000..7ae6bcc34
--- /dev/null
+++ b/ports/pthreads/CMakeLists.txt
@@ -0,0 +1,213 @@
+cmake_minimum_required(VERSION 3.9.0)
+
+project(pthreads)
+
+set(PTHREAD_PUBLIC_HEADERS pthread.h sched.h semaphore.h)
+
+set(PTHREAD_SHARED_SOURCES
+ autostatic.c
+ barrier.c
+ cancel.c
+ cleanup.c
+ condvar.c
+ create.c
+ dll.c
+ errno.c
+ exit.c
+ fork.c
+ global.c
+ misc.c
+ mutex.c
+ nonportable.c
+ private.c
+ rwlock.c
+ sched.c
+ semaphore.c
+ signal.c
+ spin.c
+ sync.c
+ tsd.c
+ attr.C
+)
+set(PTHREAD_STATIC_SOURCES
+ autostatic.c
+ cleanup.c
+ create.c
+ dll.c
+ errno.c
+ fork.c
+ global.c
+ pthread_attr_destroy.c
+ pthread_attr_getdetachstate.c
+ pthread_attr_getinheritsched.c
+ pthread_attr_getschedparam.c
+ pthread_attr_getschedpolicy.c
+ pthread_attr_getscope.c
+ pthread_attr_getstackaddr.c
+ pthread_attr_getstacksize.c
+ pthread_attr_init.c
+ pthread_attr_setdetachstate.c
+ pthread_attr_setinheritsched.c
+ pthread_attr_setschedparam.c
+ pthread_attr_setschedpolicy.c
+ pthread_attr_setscope.c
+ pthread_attr_setstackaddr.c
+ pthread_attr_setstacksize.c
+ pthread_barrier_destroy.c
+ pthread_barrier_init.c
+ pthread_barrier_wait.c
+ pthread_barrierattr_destroy.c
+ pthread_barrierattr_getpshared.c
+ pthread_barrierattr_init.c
+ pthread_barrierattr_setpshared.c
+ pthread_cancel.c
+ pthread_cond_destroy.c
+ pthread_cond_init.c
+ pthread_cond_signal.c
+ pthread_cond_wait.c
+ pthread_condattr_destroy.c
+ pthread_condattr_getpshared.c
+ pthread_condattr_init.c
+ pthread_condattr_setpshared.c
+ pthread_delay_np.c
+ pthread_detach.c
+ pthread_equal.c
+ pthread_exit.c
+ pthread_getconcurrency.c
+ pthread_getschedparam.c
+ pthread_getspecific.c
+ pthread_getunique_np.c
+ pthread_getw32threadhandle_np.c
+ pthread_join.c
+ pthread_key_create.c
+ pthread_key_delete.c
+ pthread_kill.c
+ pthread_mutex_consistent.c
+ pthread_mutex_destroy.c
+ pthread_mutex_init.c
+ pthread_mutex_lock.c
+ pthread_mutex_timedlock.c
+ pthread_mutex_trylock.c
+ pthread_mutex_unlock.c
+ pthread_mutexattr_destroy.c
+ pthread_mutexattr_getkind_np.c
+ pthread_mutexattr_getpshared.c
+ pthread_mutexattr_getrobust.c
+ pthread_mutexattr_gettype.c
+ pthread_mutexattr_init.c
+ pthread_mutexattr_setkind_np.c
+ pthread_mutexattr_setpshared.c
+ pthread_mutexattr_setrobust.c
+ pthread_mutexattr_settype.c
+ pthread_num_processors_np.c
+ pthread_once.c
+ pthread_rwlock_destroy.c
+ pthread_rwlock_init.c
+ pthread_rwlock_rdlock.c
+ pthread_rwlock_tryrdlock.c
+ pthread_rwlock_trywrlock.c
+ pthread_rwlock_unlock.c
+ pthread_rwlock_wrlock.c
+ pthread_rwlockattr_destroy.c
+ pthread_rwlockattr_getpshared.c
+ pthread_rwlockattr_init.c
+ pthread_rwlockattr_setpshared.c
+ pthread_self.c
+ pthread_setcancelstate.c
+ pthread_setcanceltype.c
+ pthread_setconcurrency.c
+ pthread_setschedparam.c
+ pthread_setspecific.c
+ pthread_spin_destroy.c
+ pthread_spin_init.c
+ pthread_spin_lock.c
+ pthread_spin_trylock.c
+ pthread_spin_unlock.c
+ pthread_testcancel.c
+ pthread_timechange_handler_np.c
+ pthread_win32_attach_detach_np.c
+ ptw32_calloc.c
+ ptw32_callUserDestroyRoutines.c
+ ptw32_cond_check_need_init.c
+ ptw32_getprocessors.c
+ ptw32_is_attr.c
+ ptw32_MCS_lock.c
+ ptw32_mutex_check_need_init.c
+ ptw32_new.c
+ ptw32_processInitialize.c
+ ptw32_processTerminate.c
+ ptw32_relmillisecs.c
+ ptw32_reuse.c
+ ptw32_rwlock_check_need_init.c
+ ptw32_semwait.c
+ ptw32_spinlock_check_need_init.c
+ ptw32_threadDestroy.c
+ ptw32_threadStart.c
+ ptw32_throw.c
+ ptw32_timespec.c
+ ptw32_tkAssocCreate.c
+ ptw32_tkAssocDestroy.c
+ sched_get_priority_max.c
+ sched_get_priority_min.c
+ sched_getscheduler.c
+ sched_setscheduler.c
+ sched_yield.c
+ sem_close.c
+ sem_destroy.c
+ sem_getvalue.c
+ sem_init.c
+ sem_open.c
+ sem_post_multiple.c
+ sem_post.c
+ sem_timedwait.c
+ sem_trywait.c
+ sem_unlink.c
+ sem_wait.c
+ signal.c
+ w32_CancelableWait.c
+)
+
+
+
+option(PTW32_ARCH "x32")
+add_definitions(-DPTW32_ARCH=${PTW32_ARCH} -DPTW32_RC_MSC -DHAVE_PTW32_CONFIG_H -D_TIMESPEC_DEFINED)
+
+if(BUILD_SHARED_LIBS)
+ set(PTHREAD_SOURCES ${PTHREAD_SHARED_SOURCES})
+ add_definitions(-DPTW32_BUILD)
+else()
+ set(PTHREAD_SOURCES ${PTHREAD_STATIC_SOURCES})
+ add_definitions(-DPTW32_STATIC_LIB)
+endif()
+
+
+if(PTHREADS_BUILD_CPP)
+ set(PTHREADS_EXCEPTION_SCHEME CE)
+ add_definitions(/__CLEANUP_CXX)
+elseif(PTHREADS_BUILD_SEH)
+ set(PTHREADS_EXCEPTION_SCHEME SE)
+ add_definitions(/__CLEANUP_SEH)
+else()
+ set(PTHREADS_EXCEPTION_SCHEME C)
+endif()
+
+set(PTHREADS_COMPATIBILITY_VERSION 2)
+set(CMAKE_DEBUG_POSTFIX d)
+set(PTHREADS_COMPILER V)
+
+set(PTHREADS_LIBRARY "pthreads${PTHREADS_COMPILER}${PTHREADS_EXCEPTION_SCHEME}${PTHREADS_COMPATIBILITY_VERSION}")
+
+include_directories(.)
+
+add_library(${PTHREADS_LIBRARY} ${PTHREAD_SOURCES})
+
+install(
+ TARGETS ${PTHREADS_LIBRARY}
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES ${PTHREAD_PUBLIC_HEADERS} DESTINATION include)
+endif()
diff --git a/ports/pthreads/CONTROL b/ports/pthreads/CONTROL
new file mode 100644
index 000000000..ab02fb415
--- /dev/null
+++ b/ports/pthreads/CONTROL
@@ -0,0 +1,3 @@
+Source: pthreads
+Version: 2.9.1-2
+Description: pthreads for windows
diff --git a/ports/pthreads/portfile.cmake b/ports/pthreads/portfile.cmake
new file mode 100644
index 000000000..3fb715aec
--- /dev/null
+++ b/ports/pthreads/portfile.cmake
@@ -0,0 +1,52 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+if(VCPKG_CMAKE_SYSTEM_NAME)
+ set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+ return()
+endif()
+
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pthreads-w32-2-9-1-release)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://www.mirrorservice.org/sites/sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.tar.gz"
+ FILENAME "pthreads-w32-2-9-1-release.tar.gz"
+ SHA512 9c06e85310766834370c3dceb83faafd397da18a32411ca7645c8eb6b9495fea54ca2872f4a3e8d83cb5fdc5dea7f3f0464be5bb9af3222a6534574a184bd551
+)
+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 -DPTW32_ARCH=${VCPKG_TARGET_ARCHITECTURE}
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+file(GLOB HEADERS "${CURRENT_PACKAGES_DIR}/include/*.h")
+foreach(HEADER ${HEADERS})
+ file(READ "${HEADER}" _contents)
+ string(REPLACE "defined(_TIMESPEC_DEFINED)" "1" _contents "${_contents}")
+ string(REPLACE "defined(PTW32_RC_MSC)" "1" _contents "${_contents}")
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ string(REPLACE "!defined(PTW32_STATIC_LIB)" "0" _contents "${_contents}")
+ endif()
+ file(WRITE "${HEADER}" "${_contents}")
+endforeach()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/pthreads RENAME copyright)
+file(INSTALL
+ ${CURRENT_PACKAGES_DIR}/lib/pthreadsVC2.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link
+ RENAME pthreads.lib
+)
+file(INSTALL
+ ${CURRENT_PACKAGES_DIR}/debug/lib/pthreadsVC2d.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link
+ RENAME pthreads.lib
+)
diff --git a/ports/pugixml/CONTROL b/ports/pugixml/CONTROL
index 298d433b2..5e2dad599 100644
--- a/ports/pugixml/CONTROL
+++ b/ports/pugixml/CONTROL
@@ -1,3 +1,3 @@
Source: pugixml
-Version: 1.8.1
+Version: 1.9-1
Description: C++ XML processing library
diff --git a/ports/pugixml/portfile.cmake b/ports/pugixml/portfile.cmake
index 4fcbec84b..b0ec2cc58 100644
--- a/ports/pugixml/portfile.cmake
+++ b/ports/pugixml/portfile.cmake
@@ -1,28 +1,33 @@
+# 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/pugixml-1.8)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/zeux/pugixml/releases/download/v1.8.1/pugixml-1.8.1.zip"
- FILENAME "pugixml-1.8.1.zip"
- SHA512 683fe224a9bcac032d78cb44d03915a3766d2faa588f3a8486b5719f26eeba3e17d447edf70e1907f51f8649ffb4607b6badd1365e4c15cf24279bf577dc853e
-)
-vcpkg_extract_source_archive(${ARCHIVE})
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/pugixmlapi.patch
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO zeux/pugixml
+ REF v1.9
+ SHA512 f97941941d98a1a056087edc0dde6376bf2cc12ce4523b67a2f2ec5ae0895c2a2e55da32fcca6a997f1a0d918c5f39564167da0a07ce0d7da92880ad8631c31e
+ HEAD_REF master
)
vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS
- -DBUILD_DEFINES="PUGIXML_API=__declspec\(dllexport\)"
+ SOURCE_PATH ${SOURCE_PATH}
)
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
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/readme.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/pugixml RENAME copyright)
diff --git a/ports/pugixml/pugixmlapi.patch b/ports/pugixml/pugixmlapi.patch
deleted file mode 100644
index 177664dbe..000000000
--- a/ports/pugixml/pugixmlapi.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/pugixml.hpp b/src/pugixml.hpp
-index 4d76bfa..75a4f8a 100644
---- a/src/pugixml.hpp
-+++ b/src/pugixml.hpp
-@@ -50,7 +50,7 @@
-
- // If no API is defined, assume default
- #ifndef PUGIXML_API
--# define PUGIXML_API
-+# define PUGIXML_API __declspec(dllimport)
- #endif
-
- // If no API for classes is defined, assume default
diff --git a/ports/pybind11/CONTROL b/ports/pybind11/CONTROL
index a51fd173c..66157db1d 100644
--- a/ports/pybind11/CONTROL
+++ b/ports/pybind11/CONTROL
@@ -1,3 +1,4 @@
Source: pybind11
-Version: 2.1.0
-Description: pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code. \ No newline at end of file
+Version: 2.2.1
+Description: pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code.
+Build-Depends: python3
diff --git a/ports/pybind11/portfile.cmake b/ports/pybind11/portfile.cmake
index 933efbd19..9425baae6 100644
--- a/ports/pybind11/portfile.cmake
+++ b/ports/pybind11/portfile.cmake
@@ -1,17 +1,32 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pybind11-2.1.0)
-
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/pybind/pybind11/archive/v2.1.0.tar.gz"
- FILENAME "pybind11-2.1.0.tar.gz"
- SHA512 2f74dcd2b82d8e41da7db36351284fe04511038bec66bdde820da9c0fce92f6d2c5aeb2e48264058a91a775a1a6a99bc757d26ebf001de3df4183d700d46efa1
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO pybind/pybind11
+ REF v2.2.1
+ SHA512 1bc0646862fabef1111c05403a7238965ce5661a6f53945a1b7c4faad33f039d2ea278de64190099a8ae4fd66487a070de59334a7f32e187060bbbc7e0c3060e
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_find_acquire_program(PYTHON3)
+
+get_filename_component(PYPATH ${PYTHON3} PATH)
+set(ENV{PATH} "$ENV{PATH};${PYPATH}")
vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS -DPYBIND11_TEST=OFF
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DPYBIND11_TEST=OFF
+ -DPYTHONLIBS_FOUND=ON
+ -DPYTHON_INCLUDE_DIRS=${CURRENT_INSTALLED_DIR}/include
+ -DPYTHON_MODULE_EXTENSION=.dll
+ OPTIONS_RELEASE
+ -DPYTHON_IS_DEBUG=OFF
+ -DPYTHON_LIBRARIES=${CURRENT_INSTALLED_DIR}/lib/python36.lib
+ OPTIONS_DEBUG
+ -DPYTHON_IS_DEBUG=ON
+ -DPYTHON_LIBRARIES=${CURRENT_INSTALLED_DIR}/debug/lib/python36_d.lib
)
vcpkg_install_cmake()
diff --git a/ports/pystring/CMakeLists.txt b/ports/pystring/CMakeLists.txt
new file mode 100644
index 000000000..6fccf78d9
--- /dev/null
+++ b/ports/pystring/CMakeLists.txt
@@ -0,0 +1,23 @@
+cmake_minimum_required(VERSION 3.5.1)
+project(libpystring C CXX)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+if(BUILD_SHARED_LIBS)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif()
+
+add_library(libpystring pystring.cpp)
+
+install(
+ TARGETS libpystring
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES pystring.h DESTINATION include)
+endif()
diff --git a/ports/pystring/CONTROL b/ports/pystring/CONTROL
new file mode 100644
index 000000000..6b4f14035
--- /dev/null
+++ b/ports/pystring/CONTROL
@@ -0,0 +1,3 @@
+Source: pystring
+Version: 1.1.3-1
+Description: Pystring is a collection of C++ functions which match the interface and behavior of python's string class methods using std::string
diff --git a/ports/pystring/portfile.cmake b/ports/pystring/portfile.cmake
new file mode 100644
index 000000000..d6e9700f8
--- /dev/null
+++ b/ports/pystring/portfile.cmake
@@ -0,0 +1,22 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO imageworks/pystring
+ REF v1.1.3
+ SHA512 a46bb2e96d6eb351a4a8097cde46ac2877d28e88f9e57e0ac36c42e8fc8543517c4be70306a01e2f88a891fc53c612494aeb37f47a200d94b8e1b050ed16eff6
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/pystring RENAME copyright)
diff --git a/ports/python3/0001-Static-library.patch b/ports/python3/0001-Static-library.patch
new file mode 100644
index 000000000..b5666ba40
--- /dev/null
+++ b/ports/python3/0001-Static-library.patch
@@ -0,0 +1,39 @@
+--- a/PCbuild/pythoncore.vcxproj
++++ b/PCbuild/pythoncore.vcxproj
+@@ -41,7 +41,7 @@
+ <Import Project="python.props" />
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Label="Configuration">
+- <ConfigurationType>DynamicLibrary</ConfigurationType>
++ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+@@ -67,13 +67,25 @@
+ <ClCompile>
+ <AdditionalOptions>/Zm200 %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalIncludeDirectories>$(PySourcePath)Python;$(PySourcePath)Modules\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+- <PreprocessorDefinitions>_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <PreprocessorDefinitions>_USRDLL;Py_BUILD_CORE;Py_NO_ENABLE_SHARED;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>version.lib;shlwapi.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(PySourcePath)PC\external\$(PlatformToolset)\$(ArchName)</AdditionalLibraryDirectories>
+ <BaseAddress>0x1e000000</BaseAddress>
+ </Link>
++ <Lib>
++ <TargetMachine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MachineX86</TargetMachine>
++ </Lib>
++ <Lib>
++ <TargetMachine Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'">MachineX86</TargetMachine>
++ </Lib>
++ <Lib>
++ <TargetMachine Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'">MachineX86</TargetMachine>
++ </Lib>
++ <Lib>
++ <TargetMachine Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MachineX86</TargetMachine>
++ </Lib>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClInclude Include="..\Include\abstract.h" />
+--
diff --git a/ports/python3/0002-Static-CRT.patch b/ports/python3/0002-Static-CRT.patch
new file mode 100644
index 000000000..8f63aa092
--- /dev/null
+++ b/ports/python3/0002-Static-CRT.patch
@@ -0,0 +1,15 @@
+--- a/PCbuild/pythoncore.vcxproj
++++ b/PCbuild/pythoncore.vcxproj
+@@ -68,6 +68,10 @@
+ <AdditionalOptions>/Zm200 %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalIncludeDirectories>$(PySourcePath)Python;$(PySourcePath)Modules\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_USRDLL;Py_BUILD_CORE;Py_NO_ENABLE_SHARED;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions)</PreprocessorDefinitions>
++ <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MultiThreadedDebug</RuntimeLibrary>
++ <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">MultiThreadedDebug</RuntimeLibrary>
++ <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MultiThreaded</RuntimeLibrary>
++ <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MultiThreaded</RuntimeLibrary>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>version.lib;shlwapi.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+--
+
diff --git a/ports/python3/0003-Fix-header-for-static-linkage.patch b/ports/python3/0003-Fix-header-for-static-linkage.patch
new file mode 100644
index 000000000..99e56d29c
--- /dev/null
+++ b/ports/python3/0003-Fix-header-for-static-linkage.patch
@@ -0,0 +1,14 @@
+diff --git a/PC/pyconfig.h b/PC/pyconfig.h
+index 64e7aec..aa36745 100644
+--- a/PC/pyconfig.h
++++ b/PC/pyconfig.h
+@@ -274,6 +274,7 @@ typedef int pid_t;
+
+ /* For Windows the Python core is in a DLL by default. Test
+ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
++#define Py_NO_ENABLE_SHARED
+ #if !defined(MS_NO_COREDLL) && !defined(Py_NO_ENABLE_SHARED)
+ # define Py_ENABLE_SHARED 1 /* standard symbol for shared library */
+ # define MS_COREDLL /* deprecated old symbol */
+--
+
diff --git a/ports/python3/0004-Fix-iomodule-for-RS4-SDK.patch b/ports/python3/0004-Fix-iomodule-for-RS4-SDK.patch
new file mode 100644
index 000000000..a0efc8d1c
--- /dev/null
+++ b/ports/python3/0004-Fix-iomodule-for-RS4-SDK.patch
@@ -0,0 +1,12 @@
+diff --git a/Modules/_io/_iomodule.c b/Modules/_io/_iomodule.c
+--- a/Modules/_io/_iomodule.c
++++ b/Modules/_io/_iomodule.c
+@@ -21,7 +21,7 @@
+ #endif /* HAVE_SYS_STAT_H */
+
+ #ifdef MS_WINDOWS
+-#include <consoleapi.h>
++#include <windows.h>
+ #endif
+
+ /* Various interned strings */
diff --git a/ports/python3/CONTROL b/ports/python3/CONTROL
new file mode 100644
index 000000000..c8331f8cf
--- /dev/null
+++ b/ports/python3/CONTROL
@@ -0,0 +1,3 @@
+Source: python3
+Version: 3.6.4-1
+Description: The Python programming language as an embeddable library \ No newline at end of file
diff --git a/ports/python3/portfile.cmake b/ports/python3/portfile.cmake
new file mode 100644
index 000000000..16b3a3db3
--- /dev/null
+++ b/ports/python3/portfile.cmake
@@ -0,0 +1,86 @@
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic AND VCPKG_CRT_LINKAGE STREQUAL static)
+ message(STATUS "Warning: Dynamic library with static CRT is not supported. Building static library.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+set(PYTHON_VERSION_MAJOR 3)
+set(PYTHON_VERSION_MINOR 6)
+set(PYTHON_VERSION_PATCH 4)
+set(PYTHON_VERSION ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.${PYTHON_VERSION_PATCH})
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH TEMP_SOURCE_PATH
+ REPO python/cpython
+ REF v${PYTHON_VERSION}
+ SHA512 32cca5e344ee66f08712ab5533e5518f724f978ec98d985f7612d0bd8d7f5cac25625363c9eead192faf1806d4ea3393515f72ba962a2a0bed26261e56d8c637
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${TEMP_SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0004-Fix-iomodule-for-RS4-SDK.patch
+)
+
+# We need per-triplet directories because we need to patch the project files differently based on the linkage
+# Because the patches patch the same file, they have to be applied in the correct order
+set(SOURCE_PATH "${TEMP_SOURCE_PATH}-Lib-${VCPKG_LIBRARY_LINKAGE}-crt-${VCPKG_CRT_LINKAGE}")
+file(REMOVE_RECURSE ${SOURCE_PATH})
+file(RENAME "${TEMP_SOURCE_PATH}" ${SOURCE_PATH})
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001-Static-library.patch
+ )
+endif()
+if (VCPKG_CRT_LINKAGE STREQUAL static)
+ vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0002-Static-CRT.patch
+ )
+endif()
+
+if (VCPKG_TARGET_ARCHITECTURE MATCHES "x86")
+ set(BUILD_ARCH "Win32")
+ set(OUT_DIR "win32")
+elseif (VCPKG_TARGET_ARCHITECTURE MATCHES "x64")
+ set(BUILD_ARCH "x64")
+ set(OUT_DIR "amd64")
+else()
+ message(FATAL_ERROR "Unsupported architecture: ${VCPKG_TARGET_ARCHITECTURE}")
+endif()
+
+vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/PCBuild/pythoncore.vcxproj
+ PLATFORM ${BUILD_ARCH})
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0003-Fix-header-for-static-linkage.patch
+ )
+endif()
+
+file(GLOB HEADERS ${SOURCE_PATH}/Include/*.h)
+file(COPY ${HEADERS} ${SOURCE_PATH}/PC/pyconfig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
+
+file(COPY ${SOURCE_PATH}/Lib DESTINATION ${CURRENT_PACKAGES_DIR}/share/python${PYTHON_VERSION_MAJOR})
+
+file(COPY ${SOURCE_PATH}/PCBuild/${OUT_DIR}/python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+file(COPY ${SOURCE_PATH}/PCBuild/${OUT_DIR}/python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}_d.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(COPY ${SOURCE_PATH}/PCBuild/${OUT_DIR}/python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(COPY ${SOURCE_PATH}/PCBuild/${OUT_DIR}/python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}_d.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/python${PYTHON_VERSION_MAJOR})
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/python${PYTHON_VERSION_MAJOR}/LICENSE ${CURRENT_PACKAGES_DIR}/share/python${PYTHON_VERSION_MAJOR}/copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/qca/CONTROL b/ports/qca/CONTROL
index cbe923bb4..4f484666f 100644
--- a/ports/qca/CONTROL
+++ b/ports/qca/CONTROL
@@ -1,4 +1,4 @@
Source: qca
-Version: 2.2.0
+Version: 2.2.0-2
Description: Qt Cryptographic Architecture (QCA). Sources: https://cgit.kde.org/qca.git/
-Build-Depends: qt5
+Build-Depends: qt5-base
diff --git a/ports/qhull/CONTROL b/ports/qhull/CONTROL
new file mode 100644
index 000000000..8eb3f8772
--- /dev/null
+++ b/ports/qhull/CONTROL
@@ -0,0 +1,3 @@
+Source: qhull
+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
new file mode 100644
index 000000000..25ee8f0d1
--- /dev/null
+++ b/ports/qhull/portfile.cmake
@@ -0,0 +1,49 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO qhull/qhull
+ REF 5a79a0009454c86e9848646b3c296009125231bf # Qhull 2015.2
+ SHA512 ebcbf452eff420c62f92b734e5359b275493930b3e6798801eb1a81aa4fbf631b41e298a6071698c3b18c0939c55ddbc1b66b7019091bb4988dcfc7deb25e287
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DINCLUDE_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/include
+ -DMAN_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/doc/qhull
+ -DDOC_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/doc/qhull
+ OPTIONS_RELEASE
+ -DLIB_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/lib
+ OPTIONS_DEBUG
+ -DLIB_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(GLOB_RECURSE HTMFILES ${CURRENT_PACKAGES_DIR}/include/*.htm)
+file(REMOVE ${HTMFILES})
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/doc)
+
+file(GLOB EXEFILES_RELEASE ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+file(GLOB EXEFILES_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+file(COPY ${EXEFILES_RELEASE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qhull)
+file(COPY ${EXEFILES_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/qhull)
+file(REMOVE ${EXEFILES_RELEASE} ${EXEFILES_DEBUG})
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+ 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()
+
+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..65189c496
--- /dev/null
+++ b/ports/qpid-proton/portfile.cmake
@@ -0,0 +1,48 @@
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message("qpid-proton does not support static linkage. Building dynamically.")
+ set(VCPKG_LIBRARY_LINKAGE "dynamic")
+endif()
+
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "qpid-proton does not support static CRT linkage.")
+endif()
+
+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/qscintilla/CONTROL b/ports/qscintilla/CONTROL
new file mode 100644
index 000000000..6453ad643
--- /dev/null
+++ b/ports/qscintilla/CONTROL
@@ -0,0 +1,4 @@
+Source: qscintilla
+Version: 2.10-4
+Description: QScintilla is a port to Qt of the Scintilla editing component. Features syntax highlighting, code-completion and much more (Barebone build without python bindings (missing dependeny PyQt) and without QtDesigner plugin)
+Build-Depends: qt5-base
diff --git a/ports/qscintilla/portfile.cmake b/ports/qscintilla/portfile.cmake
new file mode 100644
index 000000000..18ff18a97
--- /dev/null
+++ b/ports/qscintilla/portfile.cmake
@@ -0,0 +1,71 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/QScintilla_gpl-2.10)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.10/QScintilla_gpl-2.10.zip"
+ FILENAME "QScintilla_gpl-2.10.zip"
+ SHA512 7c580cfee03af1056f530af756a0ff9cc2396a5419fa23aecc66a6bc8809a4fb154788956220bb0b068a5c214d571c053271c3906d6d541196fbbf7c6dbec917
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_find_acquire_program(PYTHON3)
+
+# Add python3 to path
+get_filename_component(PYTHON_PATH ${PYTHON3} DIRECTORY)
+SET(ENV{PATH} "${PYTHON_PATH};$ENV{PATH}")
+
+set(BUILD_OPTIONS
+ "${SOURCE_PATH}/Qt4Qt5/qscintilla.pro"
+ CONFIG+=build_all
+ CONFIG-=hide_symbols
+)
+
+SET(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/debug/bin")
+
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+vcpkg_configure_qmake(
+ SOURCE_PATH ${SOURCE_PATH}/Qt4Qt5
+ OPTIONS
+ CONFIG+=build_all
+ CONFIG-=hide_symbols
+)
+
+vcpkg_build_qmake(
+ RELEASE_TARGETS release
+ DEBUG_TARGETS debug
+)
+
+file(GLOB HEADER_FILES ${SOURCE_PATH}/Qt4Qt5/Qsci/*)
+file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/Qsci)
+
+file(INSTALL
+ ${RELEASE_DIR}/release/qscintilla2_qt5.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+ RENAME qscintilla2.lib
+)
+
+file(INSTALL
+ ${DEBUG_DIR}/debug/qscintilla2_qt5.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+ RENAME qscintilla2.lib
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(INSTALL
+ ${RELEASE_DIR}/release/qscintilla2_qt5.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+ )
+
+ file(INSTALL
+ ${DEBUG_DIR}/debug/qscintilla2_qt5.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ )
+endif()
+
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/qscintilla)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/qscintilla/LICENSE ${CURRENT_PACKAGES_DIR}/share/qscintilla/copyright)
diff --git a/ports/qt5-3d/CONTROL b/ports/qt5-3d/CONTROL
new file mode 100644
index 000000000..9213e0356
--- /dev/null
+++ b/ports/qt5-3d/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-3d
+Version: 5.9.2-0
+Description: Qt5 3d Module - Functionality for near-realtime simulation systems with support for 2D and 3D rendering
+Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-3d/portfile.cmake b/ports/qt5-3d/portfile.cmake
new file mode 100644
index 000000000..7de7bb5d5
--- /dev/null
+++ b/ports/qt5-3d/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qt3d 1c7dbd4e557cdd183ec6e929aae5727ce2ffcb519517942b588594bb81a78cb3d732cde4dae58085a70ec2968a8c2443eae96536125c25938222ff7c89f4f9a2)
diff --git a/ports/qt5-base/CONTROL b/ports/qt5-base/CONTROL
new file mode 100644
index 000000000..e0b9e0e15
--- /dev/null
+++ b/ports/qt5-base/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-base
+Version: 5.9.2-6
+Description: Qt5 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.
+Build-Depends: zlib, libjpeg-turbo, libpng, freetype, pcre2, harfbuzz, sqlite3, libpq, double-conversion, openssl
diff --git a/ports/qt5/configure_qt.cmake b/ports/qt5-base/configure_qt.cmake
index 21e3384c1..356361a9b 100644
--- a/ports/qt5/configure_qt.cmake
+++ b/ports/qt5-base/configure_qt.cmake
@@ -1,12 +1,8 @@
function(configure_qt)
cmake_parse_arguments(_csc "" "SOURCE_PATH;PLATFORM" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" ${ARGN})
- if (_csc_PLATFORM)
- set(PLATFORM ${_csc_PLATFORM})
- elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v140")
- set(PLATFORM "win32-msvc2015")
- elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
- set(PLATFORM "win32-msvc2017")
+ if(NOT _csc_PLATFORM)
+ message(FATAL_ERROR "configure_qt requires a PLATFORM argument.")
endif()
vcpkg_find_acquire_program(PERL)
@@ -15,17 +11,44 @@ function(configure_qt)
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH}")
- if(DEFINED VCPKG_CRT_LINKAGE AND VCPKG_CRT_LINKAGE STREQUAL static)
- list(APPEND _csc_OPTIONS
- "-static"
- "-static-runtime"
- )
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ list(APPEND _csc_OPTIONS "-static")
endif()
+ if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ list(APPEND _csc_OPTIONS "-static-runtime")
+ endif()
+
+ if(CMAKE_HOST_WIN32)
+ set(CONFIGURE_BAT "configure.bat")
+ else()
+ set(CONFIGURE_BAT "configure")
+ endif()
+
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+ vcpkg_execute_required_process(
+ COMMAND "${_csc_SOURCE_PATH}/${CONFIGURE_BAT}" ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG}
+ -debug
+ -prefix ${CURRENT_PACKAGES_DIR}/debug
+ -hostbindir ${CURRENT_PACKAGES_DIR}/debug/tools/qt5
+ -archdatadir ${CURRENT_PACKAGES_DIR}/share/qt5/debug
+ -datadir ${CURRENT_PACKAGES_DIR}/share/qt5/debug
+ -plugindir ${CURRENT_PACKAGES_DIR}/debug/plugins
+ -qmldir ${CURRENT_PACKAGES_DIR}/debug/qml
+ -headerdir ${CURRENT_PACKAGES_DIR}/include
+ -I ${CURRENT_INSTALLED_DIR}/include
+ -L ${CURRENT_INSTALLED_DIR}/debug/lib
+ -platform ${_csc_PLATFORM}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME config-${TARGET_TRIPLET}-dbg
+ )
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
+
message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
vcpkg_execute_required_process(
- COMMAND "${_csc_SOURCE_PATH}/configure.bat" ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE}
+ COMMAND "${_csc_SOURCE_PATH}/${CONFIGURE_BAT}" ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE}
-release
-prefix ${CURRENT_PACKAGES_DIR}
-hostbindir ${CURRENT_PACKAGES_DIR}/tools/qt5
@@ -35,28 +58,10 @@ function(configure_qt)
-qmldir ${CURRENT_PACKAGES_DIR}/qml
-I ${CURRENT_INSTALLED_DIR}/include
-L ${CURRENT_INSTALLED_DIR}/lib
- -platform ${PLATFORM}
+ -platform ${_csc_PLATFORM}
WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
LOGNAME config-${TARGET_TRIPLET}-rel
)
message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
- message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
- vcpkg_execute_required_process(
- COMMAND "${_csc_SOURCE_PATH}/configure.bat" ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG}
- -debug
- -prefix ${CURRENT_PACKAGES_DIR}/debug
- -hostbindir ${CURRENT_PACKAGES_DIR}/debug/tools/qt5
- -archdatadir ${CURRENT_PACKAGES_DIR}/debug/share/qt5
- -datadir ${CURRENT_PACKAGES_DIR}/debug/share/qt5
- -plugindir ${CURRENT_PACKAGES_DIR}/debug/plugins
- -qmldir ${CURRENT_PACKAGES_DIR}/debug/qml
- -I ${CURRENT_INSTALLED_DIR}/include
- -L ${CURRENT_INSTALLED_DIR}/debug/lib
- -platform ${PLATFORM}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- LOGNAME config-${TARGET_TRIPLET}-dbg
- )
- message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
endfunction() \ No newline at end of file
diff --git a/ports/qt5-base/fix-system-freetype.patch b/ports/qt5-base/fix-system-freetype.patch
new file mode 100644
index 000000000..88211bc68
--- /dev/null
+++ b/ports/qt5-base/fix-system-freetype.patch
@@ -0,0 +1,13 @@
+diff --git a/src/gui/configure.json b/src/gui/configure.json
+index 28c8034..4c7c0a7 100644
+--- a/src/gui/configure.json
++++ b/src/gui/configure.json
+@@ -157,7 +157,7 @@
+ },
+ "sources": [
+ { "type": "pkgConfig", "args": "freetype2" },
+- { "type": "freetype", "libs": "-lfreetype" }
++ { "libs": "-lfreetype" }
+ ]
+ },
+ "fontconfig": {
diff --git a/ports/qt5-base/fix-system-pcre2-linux.patch b/ports/qt5-base/fix-system-pcre2-linux.patch
new file mode 100644
index 000000000..c5669a4c9
--- /dev/null
+++ b/ports/qt5-base/fix-system-pcre2-linux.patch
@@ -0,0 +1,17 @@
+diff --git a/src/corelib/configure.json b/src/corelib/configure.json
+index a5a1b66..5a48a05 100644
+--- a/src/corelib/configure.json
++++ b/src/corelib/configure.json
+@@ -163,8 +163,10 @@
+ "builds": {
+ "debug": "-lpcre2-16d",
+ "release": "-lpcre2-16"
+- }
+- }
++ },
++ "condition": "config.win32"
++ },
++ { "libs": "-lpcre2-16", "condition": "!config.win32" }
+ ]
+ },
+ "pps": {
diff --git a/ports/qt5-base/fix-system-pcre2.patch b/ports/qt5-base/fix-system-pcre2.patch
new file mode 100644
index 000000000..be401d448
--- /dev/null
+++ b/ports/qt5-base/fix-system-pcre2.patch
@@ -0,0 +1,18 @@
+diff --git a/src/corelib/configure.json b/src/corelib/configure.json
+index a5b69a2..01c5cde 100644
+--- a/src/corelib/configure.json
++++ b/src/corelib/configure.json
+@@ -159,7 +159,12 @@
+ ]
+ },
+ "sources": [
+- "-lpcre2-16"
++ {
++ "builds": {
++ "debug": "-lpcre2-16d",
++ "release": "-lpcre2-16"
++ }
++ }
+ ]
+ },
+ "pps": {
diff --git a/ports/qt5/fixcmake.py b/ports/qt5-base/fixcmake.py
index 93a535fa2..bcfb12ac5 100644
--- a/ports/qt5/fixcmake.py
+++ b/ports/qt5-base/fixcmake.py
@@ -10,8 +10,15 @@ for f in files:
dllpattern = re.compile("_install_prefix}/bin/Qt5.*d.dll")
libpattern = re.compile("_install_prefix}/lib/Qt5.*d.lib")
exepattern = re.compile("_install_prefix}/bin/[a-z]+.exe")
+ tooldllpattern = re.compile("_install_prefix}/tools/qt5/Qt5.*d.dll")
for line in openedfile:
- if "_install_prefix}/bin/${LIB_LOCATION}" in line:
+ if "_install_prefix}/tools/qt5/${LIB_LOCATION}" in line:
+ builder += " if (${Configuration} STREQUAL \"RELEASE\")"
+ builder += "\n " + line.replace("/tools/qt5/", "/bin/")
+ builder += " else()"
+ builder += "\n " + line.replace("/tools/qt5/", "/debug/bin/")
+ builder += " endif()\n"
+ elif "_install_prefix}/bin/${LIB_LOCATION}" in line:
builder += " if (${Configuration} STREQUAL \"RELEASE\")"
builder += "\n " + line
builder += " else()"
@@ -29,17 +36,19 @@ for f in files:
builder += " else()"
builder += "\n " + line.replace("/lib/", "/debug/lib/")
builder += " endif()\n"
- elif "_install_prefix}/lib/qtmaind.lib" in line:
- builder += line.replace("/lib/", "/debug/lib/")
elif "_install_prefix}/plugins/${PLUGIN_LOCATION}" in line:
builder += " if (${Configuration} STREQUAL \"RELEASE\")"
builder += "\n " + line
builder += " else()"
builder += "\n " + line.replace("/plugins/", "/debug/plugins/")
builder += " endif()\n"
+ elif "_install_prefix}/lib/qtmaind.lib" in line:
+ # qtmaind.lib has been moved to manual-link:
+ builder += line.replace("/lib/", "/debug/lib/manual-link/")
elif "_install_prefix}/lib/qtmain.lib" in line:
- builder += line
- builder += " set(imported_location_debug \"${_qt5Core_install_prefix}/debug/lib/qtmaind.lib\")\n"
+ # qtmain(d).lib has been moved to manual-link:
+ builder += line.replace("/lib/", "/lib/manual-link/")
+ builder += " set(imported_location_debug \"${_qt5Core_install_prefix}/debug/lib/manual-link/qtmaind.lib\")\n"
builder += "\n"
builder += " set_target_properties(Qt5::WinMain PROPERTIES\n"
builder += " IMPORTED_LOCATION_DEBUG ${imported_location_debug}\n"
@@ -48,6 +57,8 @@ for f in files:
builder += line.replace("/bin/", "/debug/bin/")
elif libpattern.search(line) != None:
builder += line.replace("/lib/", "/debug/lib/")
+ elif tooldllpattern.search(line) != None:
+ builder += line.replace("/tools/qt5/", "/debug/bin/")
elif exepattern.search(line) != None:
builder += line.replace("/bin/", "/tools/qt5/")
else:
diff --git a/ports/qt5/install_qt.cmake b/ports/qt5-base/install_qt.cmake
index 1b0bec935..482802f38 100644
--- a/ports/qt5/install_qt.cmake
+++ b/ports/qt5-base/install_qt.cmake
@@ -2,44 +2,60 @@ function(install_qt)
cmake_parse_arguments(_bc "DISABLE_PARALLEL" "" "" ${ARGN})
if (_bc_DISABLE_PARALLEL)
- set(JOBS "1")
+ set(NUMBER_OF_PROCESSORS "1")
else()
- set(JOBS "$ENV{NUMBER_OF_PROCESSORS}")
+ if(DEFINED ENV{NUMBER_OF_PROCESSORS})
+ set(NUMBER_OF_PROCESSORS $ENV{NUMBER_OF_PROCESSORS})
+ else()
+ execute_process(
+ COMMAND nproc
+ OUTPUT_VARIABLE NUMBER_OF_PROCESSORS
+ )
+ string(REPLACE "\n" "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}")
+ string(REPLACE " " "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}")
+ endif()
endif()
- vcpkg_find_acquire_program(JOM)
+ if(CMAKE_HOST_WIN32)
+ vcpkg_find_acquire_program(JOM)
+ set(INVOKE "${JOM}" /J ${NUMBER_OF_PROCESSORS})
+ else()
+ find_program(MAKE make)
+ set(INVOKE "${MAKE}" -j${NUMBER_OF_PROCESSORS})
+ endif()
vcpkg_find_acquire_program(PYTHON3)
get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-
set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
set(_path "$ENV{PATH}")
+ message(STATUS "Package ${TARGET_TRIPLET}-dbg")
+ set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/debug/bin;${_path}")
+ vcpkg_execute_required_process(
+ COMMAND ${INVOKE}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME build-${TARGET_TRIPLET}-dbg
+ )
+ vcpkg_execute_required_process(
+ COMMAND ${INVOKE} install
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME package-${TARGET_TRIPLET}-dbg
+ )
+ message(STATUS "Package ${TARGET_TRIPLET}-dbg done")
+
message(STATUS "Package ${TARGET_TRIPLET}-rel")
set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/bin;${_path}")
vcpkg_execute_required_process(
- COMMAND ${JOM} /J ${JOBS}
+ COMMAND ${INVOKE}
WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
LOGNAME build-${TARGET_TRIPLET}-rel
)
vcpkg_execute_required_process(
- COMMAND ${JOM} /J ${JOBS} install
+ COMMAND ${INVOKE} install
WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
LOGNAME package-${TARGET_TRIPLET}-rel
)
message(STATUS "Package ${TARGET_TRIPLET}-rel done")
-
- message(STATUS "Package ${TARGET_TRIPLET}-dbg")
- set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/debug/bin;${_path}")
- vcpkg_execute_required_process(
- COMMAND ${JOM} /J ${JOBS}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- LOGNAME build-${TARGET_TRIPLET}-dbg
- )
- vcpkg_execute_required_process(
- COMMAND ${JOM} /J ${JOBS} install
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- LOGNAME package-${TARGET_TRIPLET}-dbg
- )
+
set(ENV{PATH} "${_path}")
- message(STATUS "Package ${TARGET_TRIPLET}-dbg done")
+
endfunction() \ No newline at end of file
diff --git a/ports/qt5-base/portfile.cmake b/ports/qt5-base/portfile.cmake
new file mode 100644
index 000000000..569540213
--- /dev/null
+++ b/ports/qt5-base/portfile.cmake
@@ -0,0 +1,185 @@
+include(vcpkg_common_functions)
+
+string(LENGTH "${CURRENT_BUILDTREES_DIR}" BUILDTREES_PATH_LENGTH)
+if(BUILDTREES_PATH_LENGTH GREATER 37 AND CMAKE_HOST_WIN32)
+ message(WARNING "Qt5's buildsystem uses very long paths and may fail on your system.\n"
+ "We recommend moving vcpkg to a short path such as 'C:\\src\\vcpkg' or using the subst command."
+ )
+endif()
+
+if((NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") AND VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(FATAL_ERROR "Qt5 doesn't currently support static builds. Please use a dynamic triplet instead.")
+endif()
+
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+include(configure_qt)
+include(install_qt)
+
+set(SRCDIR_NAME "qtbase-5.9.2")
+set(ARCHIVE_NAME "qtbase-opensource-src-5.9.2")
+set(ARCHIVE_EXTENSION ".tar.xz")
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME})
+vcpkg_download_distfile(ARCHIVE_FILE
+ URLS "http://download.qt.io/official_releases/qt/5.9/5.9.2/submodules/${ARCHIVE_NAME}${ARCHIVE_EXTENSION}"
+ FILENAME ${SRCDIR_NAME}${ARCHIVE_EXTENSION}
+ SHA512 a2f965871645256f3d019f71f3febb875455a29d03fccc7a3371ddfeb193b0af12394e779df05adf69fd10fe7b0d966f3915a24528ec7eb3bc36c2db6af2b6e7
+)
+vcpkg_extract_source_archive(${ARCHIVE_FILE})
+if (EXISTS ${CURRENT_BUILDTREES_DIR}/src/${ARCHIVE_NAME})
+ file(RENAME ${CURRENT_BUILDTREES_DIR}/src/${ARCHIVE_NAME} ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME})
+endif()
+
+# Remove vendored dependencies to ensure they are not picked up by the build
+foreach(DEPENDENCY freetype zlib harfbuzzng libjpeg libpng double-conversion)
+ if(EXISTS ${SOURCE_PATH}/src/3rdparty/${DEPENDENCY})
+ file(REMOVE_RECURSE ${SOURCE_PATH}/src/3rdparty/${DEPENDENCY})
+ endif()
+endforeach()
+
+file(REMOVE_RECURSE ${SOURCE_PATH}/include/QtZlib)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/fix-system-pcre2.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/fix-system-freetype.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/fix-system-pcre2-linux.patch"
+)
+
+# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
+set(ENV{_CL_} "/utf-8")
+
+set(CORE_OPTIONS
+ -confirm-license
+ -opensource
+ -system-zlib
+ -system-libjpeg
+ -system-libpng
+ -system-freetype
+ -system-pcre
+ -system-harfbuzz
+ -system-doubleconversion
+ -no-fontconfig
+ -nomake examples -nomake tests
+)
+
+if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ if(VCPKG_PLATFORM_TOOLSET MATCHES "v140")
+ set(PLATFORM "win32-msvc2015")
+ elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
+ set(PLATFORM "win32-msvc2017")
+ elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v120")
+ set(PLATFORM "win32-msvc2013")
+ endif()
+ configure_qt(
+ SOURCE_PATH ${SOURCE_PATH}
+ PLATFORM ${PLATFORM}
+ OPTIONS
+ ${CORE_OPTIONS}
+ -sql-sqlite
+ -sql-psql
+ -system-sqlite
+ -mp
+ -opengl desktop # other options are "-no-opengl", "-opengl angle", and "-opengl desktop"
+ LIBJPEG_LIBS="-ljpeg"
+ OPTIONS_RELEASE
+ ZLIB_LIBS="-lzlib"
+ LIBPNG_LIBS="-llibpng16"
+ FREETYPE_LIBS="-lfreetype"
+ OPTIONS_DEBUG
+ ZLIB_LIBS="-lzlibd"
+ LIBPNG_LIBS="-llibpng16d"
+ PSQL_LIBS="-llibpqd"
+ FREETYPE_LIBS="-lfreetyped"
+ )
+elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ configure_qt(
+ SOURCE_PATH ${SOURCE_PATH}
+ PLATFORM "linux-g++"
+ OPTIONS
+ ${CORE_OPTIONS}
+ -no-sqlite
+ -no-opengl # other options are "-no-opengl", "-opengl angle", and "-opengl desktop"
+ LIBJPEG_LIBS="-ljpeg"
+ OPTIONS_RELEASE
+ "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libpng16.a"
+ "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libz.a"
+ "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/lib/libz.a"
+ "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpng16.a"
+ "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/lib/libfreetype.a"
+ "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpq.a ${CURRENT_INSTALLED_DIR}/lib/libssl.a ${CURRENT_INSTALLED_DIR}/lib/libcrypto.a"
+ OPTIONS_DEBUG
+ "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a"
+ "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a"
+ "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a"
+ "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a"
+ "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libfreetyped.a"
+ "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpqd.a ${CURRENT_INSTALLED_DIR}/debug/lib/libssl.a ${CURRENT_INSTALLED_DIR}/debug/lib/libcrypto.a"
+ )
+endif()
+
+install_qt()
+
+file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+
+file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/bin/*")
+list(FILTER BINARY_TOOLS EXCLUDE REGEX "\\.dll\$")
+file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5)
+file(REMOVE ${BINARY_TOOLS})
+file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/debug/bin/*")
+list(FILTER BINARY_TOOLS EXCLUDE REGEX "\\.dll\$")
+file(REMOVE ${BINARY_TOOLS})
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/tools")
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
+endif()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/qt_debug.conf ${CMAKE_CURRENT_LIST_DIR}/qt_release.conf DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5)
+
+vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/cmake
+ LOGNAME fix-cmake
+)
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/qt5)
+
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib)
+ #---------------------------------------------------------------------------
+ # qtmain(d) vs. Qt5AxServer(d)
+ #---------------------------------------------------------------------------
+ # Qt applications have to either link to qtmain(d) or to Qt5AxServer(d),
+ # never both. See http://doc.qt.io/qt-5/activeqt-server.html for more info.
+ #
+ # Create manual-link folders:
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ #
+ # Either have users explicitly link against qtmain.lib, qtmaind.lib:
+ file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+ file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl)
+ file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl)
+endif()
+
+file(GLOB_RECURSE PRL_FILES "${CURRENT_PACKAGES_DIR}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/debug/lib/*.prl")
+file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/lib" CMAKE_RELEASE_LIB_PATH)
+file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib" CMAKE_DEBUG_LIB_PATH)
+foreach(PRL_FILE IN LISTS PRL_FILES)
+ file(READ "${PRL_FILE}" _contents)
+ string(REPLACE "${CMAKE_RELEASE_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}")
+ string(REPLACE "${CMAKE_DEBUG_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}")
+ file(WRITE "${PRL_FILE}" "${_contents}")
+endforeach()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/plugins)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/debug/plugins)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/qt5-base/qt_debug.conf b/ports/qt5-base/qt_debug.conf
new file mode 100644
index 000000000..45cac7a4b
--- /dev/null
+++ b/ports/qt5-base/qt_debug.conf
@@ -0,0 +1,13 @@
+[Paths]
+Prefix = ${CURRENT_INSTALLED_DIR}
+Documentation = share/qt5/doc
+Headers = include
+Libraries = debug/lib
+Binaries = debug/tools/qt5
+LibraryExecutables = debug/tools/qt5
+Plugins = debug/plugins
+Qml2Imports = qml
+Data = share/qt5/debug
+ArchData = share/qt5/debug
+HostData = share/qt5/debug
+HostBinaries = tools/qt5 \ No newline at end of file
diff --git a/ports/qt5-base/qt_release.conf b/ports/qt5-base/qt_release.conf
new file mode 100644
index 000000000..a04aef525
--- /dev/null
+++ b/ports/qt5-base/qt_release.conf
@@ -0,0 +1,13 @@
+[Paths]
+Prefix = ${CURRENT_INSTALLED_DIR}
+Documentation = share/qt5/doc
+Headers = include
+Libraries = lib
+Binaries = tools/qt5
+LibraryExecutables = tools/qt5
+Plugins = plugins
+Qml2Imports = qml
+Data = share/qt5
+ArchData = share/qt5
+HostData = share/qt5
+HostBinaries = tools/qt5 \ No newline at end of file
diff --git a/ports/qt5/qtdeploy.ps1 b/ports/qt5-base/qtdeploy.ps1
index 9d514e411..26bd10257 100644
--- a/ports/qt5/qtdeploy.ps1
+++ b/ports/qt5-base/qtdeploy.ps1
@@ -10,12 +10,16 @@
# Note: this function signature and behavior is depended upon by applocal.ps1
function deployPluginsIfQt([string]$targetBinaryDir, [string]$QtPluginsDir, [string]$targetBinaryName) {
+ $baseDir = Split-Path $QtPluginsDir -parent
+ $binDir = "$baseDir\bin"
+
function deployPlugins([string]$pluginSubdirName) {
if (Test-Path "$QtPluginsDir\$pluginSubdirName") {
Write-Verbose " Deploying plugins directory '$pluginSubdirName'"
New-Item "$targetBinaryDir\$pluginSubdirName" -ItemType Directory -ErrorAction SilentlyContinue | Out-Null
Get-ChildItem "$QtPluginsDir\$pluginSubdirName\*.dll" | % {
deployBinary "$targetBinaryDir\$pluginSubdirName" "$QtPluginsDir\$pluginSubdirName" $_.Name
+ resolve $_
}
} else {
Write-Verbose " Skipping plugins directory '$pluginSubdirName': doesn't exist"
@@ -36,6 +40,11 @@ function deployPluginsIfQt([string]$targetBinaryDir, [string]$QtPluginsDir, [str
deployPlugins "platforminputcontexts"
} elseif ($targetBinaryName -like "Qt5Network*.dll") {
deployPlugins "bearer"
+ if (Test-Path "$binDir\libeay32.dll")
+ {
+ deployBinary "$targetBinaryDir" "$binDir" "libeay32.dll"
+ deployBinary "$targetBinaryDir" "$binDir" "ssleay32.dll"
+ }
} elseif ($targetBinaryName -like "Qt5Sql*.dll") {
deployPlugins "sqldrivers"
} elseif ($targetBinaryName -like "Qt5Multimedia*.dll") {
diff --git a/ports/qt5-charts/CONTROL b/ports/qt5-charts/CONTROL
new file mode 100644
index 000000000..6f71277b6
--- /dev/null
+++ b/ports/qt5-charts/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-charts
+Version: 5.9.2-0
+Description: Qt5 Charts Module - UI components for displaying charts, driven by static or dynamic data models
+Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-charts/portfile.cmake b/ports/qt5-charts/portfile.cmake
new file mode 100644
index 000000000..45a53b63d
--- /dev/null
+++ b/ports/qt5-charts/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtcharts 297547b565dd71b05237bb05ecc1abf1a774a4909668417e78bd65e805c1e47a456a5a06898fe06d4c4614118e4129e19893d4c77598667a9354ab969307a293)
diff --git a/ports/qt5-datavis3d/CONTROL b/ports/qt5-datavis3d/CONTROL
new file mode 100644
index 000000000..cb4d7e393
--- /dev/null
+++ b/ports/qt5-datavis3d/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-datavis3d
+Version: 5.9.2-0
+Description: Qt5 Data Visualization 3d Module - UI Components for creating 3D data visualizations
+Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-datavis3d/portfile.cmake b/ports/qt5-datavis3d/portfile.cmake
new file mode 100644
index 000000000..d7a552cba
--- /dev/null
+++ b/ports/qt5-datavis3d/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtdatavis3d 5f173401ba2f0ebb4bbb1ff65053f1ece44a97a8bf1d9fc8d81540709c588e140c533d5f317d6a9109d538e38aa742d42bf00906f63d433811bc1c8526788dc3)
diff --git a/ports/qt5-declarative/CONTROL b/ports/qt5-declarative/CONTROL
new file mode 100644
index 000000000..ad3ebf978
--- /dev/null
+++ b/ports/qt5-declarative/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-declarative
+Version: 5.9.2-0
+Description: Qt5 Declarative (Quick 2) Module. Includes QtQuick, QtQuickParticles, QtQuickWidgets, QtQml, and QtPacketProtocol.
+Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-declarative/portfile.cmake b/ports/qt5-declarative/portfile.cmake
new file mode 100644
index 000000000..1075c9c72
--- /dev/null
+++ b/ports/qt5-declarative/portfile.cmake
@@ -0,0 +1,7 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtdeclarative 49b8b50932b73ea39da14ac3425044193dfd64eabceadba379aa01cf2fc141177f9870c387caf1cf93ce09e8b197828a54b8d9fcefc4d9cdf400a6c6dd9a9e90)
+
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools/qt5-declarative/platforminputcontexts) \ No newline at end of file
diff --git a/ports/qt5-gamepad/CONTROL b/ports/qt5-gamepad/CONTROL
new file mode 100644
index 000000000..977b48a8e
--- /dev/null
+++ b/ports/qt5-gamepad/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-gamepad
+Version: 5.9.2-0
+Description: Qt5 Gamepad Module - Enables Qt applications to support the use of gamepad hardware
+Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-gamepad/portfile.cmake b/ports/qt5-gamepad/portfile.cmake
new file mode 100644
index 000000000..f4b81f4fd
--- /dev/null
+++ b/ports/qt5-gamepad/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtgamepad 398d6ff0268460358584a4ea8ba0588881970dcc1dff6c5aa91d1630065ba112c86d7a1fe96dceb8ff301b350aef7f74ad1ee6212048a4cdfb26ff5d944d6222)
diff --git a/ports/qt5-graphicaleffects/CONTROL b/ports/qt5-graphicaleffects/CONTROL
new file mode 100644
index 000000000..caecc6599
--- /dev/null
+++ b/ports/qt5-graphicaleffects/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-graphicaleffects
+Version: 5.9.2-0
+Description: Qt5 GraphicalEffects Module.
+Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-graphicaleffects/portfile.cmake b/ports/qt5-graphicaleffects/portfile.cmake
new file mode 100644
index 000000000..372d62b6a
--- /dev/null
+++ b/ports/qt5-graphicaleffects/portfile.cmake
@@ -0,0 +1,7 @@
+SET(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
+
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtgraphicaleffects 66464c26c9cc78763fda18898cd9c424bc4c0a5cbffc83d68d388e53327aeb77ae0e3c2c4cea947c3b6b7ec5af7bf5124492fc9642ff3c4ba75b06b9fa3883a4)
diff --git a/ports/qt5-imageformats/CONTROL b/ports/qt5-imageformats/CONTROL
new file mode 100644
index 000000000..0406f0027
--- /dev/null
+++ b/ports/qt5-imageformats/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-imageformats
+Version: 5.9.2-0
+Description: Qt5 Image Formats Module - Plugins for additional image formats: TIFF, MNG, TGA, WBMP
+Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-imageformats/portfile.cmake b/ports/qt5-imageformats/portfile.cmake
new file mode 100644
index 000000000..ae3025b51
--- /dev/null
+++ b/ports/qt5-imageformats/portfile.cmake
@@ -0,0 +1,7 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtimageformats 5f1b93c0e5fffa4c2c063d14c12ad97114a452b16814ca9ac45f00ec36308a09770b3b4d137cb5d19bd3aa3a6f576724084df5d0dad75236d49868af9243c9d2)
+
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
diff --git a/ports/qt5-modularscripts/CONTROL b/ports/qt5-modularscripts/CONTROL
new file mode 100644
index 000000000..fd3f72392
--- /dev/null
+++ b/ports/qt5-modularscripts/CONTROL
@@ -0,0 +1,3 @@
+Source: qt5-modularscripts
+Version: 3
+Description: Vcpkg helpers to package qt5 modules
diff --git a/ports/qt5-modularscripts/fixcmake.py b/ports/qt5-modularscripts/fixcmake.py
new file mode 100644
index 000000000..83a40ec6c
--- /dev/null
+++ b/ports/qt5-modularscripts/fixcmake.py
@@ -0,0 +1,66 @@
+import os
+import re
+import sys
+from glob import glob
+
+port="qt5"
+if len(sys.argv) > 1:
+ port=sys.argv[1]
+
+files = [y for x in os.walk('.') for y in glob(os.path.join(x[0], '*.cmake'))]
+tooldir="/tools/"+port+"/"
+
+for f in files:
+ openedfile = open(f, "r")
+ builder = ""
+ dllpattern = re.compile("_install_prefix}/bin/Qt5.*d.dll")
+ libpattern = re.compile("_install_prefix}/lib/Qt5.*d.lib")
+ exepattern = re.compile("_install_prefix}/bin/[a-z]+.exe")
+ toolexepattern = re.compile("_install_prefix}/tools/qt5/[a-z]+.exe")
+ tooldllpattern = re.compile("_install_prefix}/tools/qt5/Qt5.*d.dll")
+ for line in openedfile:
+ if "_install_prefix}/tools/qt5/${LIB_LOCATION}" in line:
+ builder += " if (${Configuration} STREQUAL \"RELEASE\")"
+ builder += "\n " + line.replace("/tools/qt5/", "/bin/")
+ builder += " else()"
+ builder += "\n " + line.replace("/tools/qt5/", "/debug/bin/")
+ builder += " endif()\n"
+ elif "_install_prefix}/bin/${LIB_LOCATION}" in line:
+ builder += " if (${Configuration} STREQUAL \"RELEASE\")"
+ builder += "\n " + line
+ builder += " else()"
+ builder += "\n " + line.replace("/bin/", "/debug/bin/")
+ builder += " endif()\n"
+ elif "_install_prefix}/lib/${LIB_LOCATION}" in line:
+ builder += " if (${Configuration} STREQUAL \"RELEASE\")"
+ builder += "\n " + line
+ builder += " else()"
+ builder += "\n " + line.replace("/lib/", "/debug/lib/")
+ builder += " endif()\n"
+ elif "_install_prefix}/lib/${IMPLIB_LOCATION}" in line:
+ builder += " if (${Configuration} STREQUAL \"RELEASE\")"
+ builder += "\n " + line
+ builder += " else()"
+ builder += "\n " + line.replace("/lib/", "/debug/lib/")
+ builder += " endif()\n"
+ elif "_install_prefix}/plugins/${PLUGIN_LOCATION}" in line:
+ builder += " if (${Configuration} STREQUAL \"RELEASE\")"
+ builder += "\n " + line
+ builder += " else()"
+ builder += "\n " + line.replace("/plugins/", "/debug/plugins/")
+ builder += " endif()\n"
+ elif dllpattern.search(line) != None:
+ builder += line.replace("/bin/", "/debug/bin/")
+ elif libpattern.search(line) != None:
+ builder += line.replace("/lib/", "/debug/lib/")
+ elif tooldllpattern.search(line) != None:
+ builder += line.replace("/tools/qt5/", "/debug/bin/")
+ elif exepattern.search(line) != None:
+ builder += line.replace("/bin/", tooldir)
+ elif toolexepattern.search(line) != None:
+ builder += line.replace("/tools/qt5/",tooldir)
+ else:
+ builder += line
+ new_file = open(f, "w")
+ new_file.write(builder)
+ new_file.close()
diff --git a/ports/qt5-modularscripts/portfile.cmake b/ports/qt5-modularscripts/portfile.cmake
new file mode 100644
index 000000000..e7149adfc
--- /dev/null
+++ b/ports/qt5-modularscripts/portfile.cmake
@@ -0,0 +1,9 @@
+file(COPY
+ ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ ${CMAKE_CURRENT_LIST_DIR}/qt_modular_library.cmake
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/share/qt5modularscripts
+)
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/qt5modularscripts/copyright "")
+
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
diff --git a/ports/qt5-modularscripts/qt_modular_library.cmake b/ports/qt5-modularscripts/qt_modular_library.cmake
new file mode 100644
index 000000000..1ead66d83
--- /dev/null
+++ b/ports/qt5-modularscripts/qt_modular_library.cmake
@@ -0,0 +1,138 @@
+set(_qt5base_port_dir "${CMAKE_CURRENT_LIST_DIR}")
+
+function(qt_modular_library NAME HASH)
+ string(LENGTH "${CURRENT_BUILDTREES_DIR}" BUILDTREES_PATH_LENGTH)
+ if(BUILDTREES_PATH_LENGTH GREATER 45)
+ message(WARNING "Qt5's buildsystem uses very long paths and may fail on your system.\n"
+ "We recommend moving vcpkg to a short path such as 'C:\\src\\vcpkg' or using the subst command."
+ )
+ endif()
+
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(FATAL_ERROR "Qt5 doesn't currently support static builds. Please use a dynamic triplet instead.")
+ endif()
+
+ set(SRCDIR_NAME "${NAME}-5.9.2")
+ set(ARCHIVE_NAME "${NAME}-opensource-src-5.9.2")
+ set(ARCHIVE_EXTENSION ".tar.xz")
+
+ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME})
+ vcpkg_download_distfile(ARCHIVE_FILE
+ URLS "http://download.qt.io/official_releases/qt/5.9/5.9.2/submodules/${ARCHIVE_NAME}${ARCHIVE_EXTENSION}"
+ FILENAME ${SRCDIR_NAME}${ARCHIVE_EXTENSION}
+ SHA512 ${HASH}
+ )
+ vcpkg_extract_source_archive(${ARCHIVE_FILE})
+ if (EXISTS ${CURRENT_BUILDTREES_DIR}/src/${ARCHIVE_NAME})
+ file(RENAME ${CURRENT_BUILDTREES_DIR}/src/${ARCHIVE_NAME} ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME})
+ endif()
+
+ # This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
+ set(ENV{_CL_} "/utf-8")
+
+ #Store build paths
+ set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+ set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+ #Find Python and add it to the path
+ vcpkg_find_acquire_program(PYTHON2)
+ get_filename_component(PYTHON2_EXE_PATH ${PYTHON2} DIRECTORY)
+ set(ENV{PATH} "${PYTHON2_EXE_PATH};$ENV{PATH}")
+
+ file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" NATIVE_INSTALLED_DIR)
+ file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" NATIVE_PACKAGES_DIR)
+
+ string(SUBSTRING "${NATIVE_INSTALLED_DIR}" 2 -1 INSTALLED_DIR_WITHOUT_DRIVE)
+ string(SUBSTRING "${NATIVE_PACKAGES_DIR}" 2 -1 PACKAGES_DIR_WITHOUT_DRIVE)
+
+ #Configure debug+release
+ vcpkg_configure_qmake(SOURCE_PATH ${SOURCE_PATH})
+
+ vcpkg_build_qmake()
+
+ #Fix the cmake files if they exist
+ if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON2} ${_qt5base_port_dir}/fixcmake.py ${PORT}
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+ endif()
+
+ file(GLOB_RECURSE MAKEFILES ${DEBUG_DIR}/*Makefile* ${RELEASE_DIR}/*Makefile*)
+
+ #Set the correct install directory to packages
+ foreach(MAKEFILE ${MAKEFILES})
+ vcpkg_replace_string(${MAKEFILE} "(INSTALL_ROOT)${INSTALLED_DIR_WITHOUT_DRIVE}" "(INSTALL_ROOT)${PACKAGES_DIR_WITHOUT_DRIVE}")
+ endforeach()
+
+ #Install the module files
+ vcpkg_build_qmake(TARGETS install SKIP_MAKEFILES BUILD_LOGNAME install)
+
+ #Remove extra cmake files
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ endif()
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ endif()
+
+ file(GLOB_RECURSE PRL_FILES "${CURRENT_PACKAGES_DIR}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/debug/lib/*.prl")
+ file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/lib" CMAKE_RELEASE_LIB_PATH)
+ file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib" CMAKE_DEBUG_LIB_PATH)
+ foreach(PRL_FILE IN LISTS PRL_FILES)
+ file(READ "${PRL_FILE}" _contents)
+ string(REPLACE "${CMAKE_RELEASE_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}")
+ string(REPLACE "${CMAKE_DEBUG_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}")
+ file(WRITE "${PRL_FILE}" "${_contents}")
+ endforeach()
+
+ file(GLOB RELEASE_LIBS "${CURRENT_PACKAGES_DIR}/lib/*")
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+ file(GLOB DEBUG_FILES "${CURRENT_PACKAGES_DIR}/debug/lib/*")
+ if(NOT DEBUG_FILES)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+
+ #Move release and debug dlls to the correct directory
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/tools/qt5)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/tools/qt5 ${CURRENT_PACKAGES_DIR}/tools/${PORT})
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/tools/qt5 ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT})
+ endif()
+
+ file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/${PORT}/*.dll)
+ file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/*.dll)
+ if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/${PORT}/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+ endif()
+ if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/qt5/debug/include)
+
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+
+ #Find the relevant license file and install it
+ if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+ elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+ elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+ elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+ endif()
+ file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+
+endfunction() \ No newline at end of file
diff --git a/ports/qt5-multimedia/CONTROL b/ports/qt5-multimedia/CONTROL
new file mode 100644
index 000000000..6e68c399d
--- /dev/null
+++ b/ports/qt5-multimedia/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-multimedia
+Version: 5.9.2-0
+Description: Qt5 Multimedia Module - Classes and widgets for audio, video, radio and camera functionality
+Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-multimedia/portfile.cmake b/ports/qt5-multimedia/portfile.cmake
new file mode 100644
index 000000000..878c2b150
--- /dev/null
+++ b/ports/qt5-multimedia/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtmultimedia b9fab874706440e97185475bfd0ad769c23d5ddbff5086cc0da9783777e81ed8140fb06fa0e7536ebfb67f2c9db39e1b9f3c2241834e74a9e1fb6ffd5cb7af11)
diff --git a/ports/qt5-networkauth/CONTROL b/ports/qt5-networkauth/CONTROL
new file mode 100644
index 000000000..97cdfd865
--- /dev/null
+++ b/ports/qt5-networkauth/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-networkauth
+Version: 5.9.2-0
+Description: Qt5 Network Authorization Module
+Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-networkauth/portfile.cmake b/ports/qt5-networkauth/portfile.cmake
new file mode 100644
index 000000000..c9b9db47c
--- /dev/null
+++ b/ports/qt5-networkauth/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtnetworkauth 2e83eefd5db62aa1cdbe451b432ba1937541e435dcc35205d3bb9b947f2ac7e31663dc069a6cfad5bbf34e1fa799d519820f7ed61b9c247016611a533385bebf) \ No newline at end of file
diff --git a/ports/qt5-quickcontrols/CONTROL b/ports/qt5-quickcontrols/CONTROL
new file mode 100644
index 000000000..1d77861b6
--- /dev/null
+++ b/ports/qt5-quickcontrols/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-quickcontrols
+Version: 5.9.2-1
+Description: Qt5 QuickControls Module.
+Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-quickcontrols/portfile.cmake b/ports/qt5-quickcontrols/portfile.cmake
new file mode 100644
index 000000000..98e491a23
--- /dev/null
+++ b/ports/qt5-quickcontrols/portfile.cmake
@@ -0,0 +1,7 @@
+SET(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
+
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtquickcontrols fd5833bd3823e3a53b54ac542857af5bb109952035869ad0a151e807abc9d304ef5d3fa04b75df3b59faf0b95412f593d86b56198f96734f3a75b1620688ba4f)
diff --git a/ports/qt5-quickcontrols2/CONTROL b/ports/qt5-quickcontrols2/CONTROL
new file mode 100644
index 000000000..b46022a10
--- /dev/null
+++ b/ports/qt5-quickcontrols2/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-quickcontrols2
+Version: 5.9.2-1
+Description: Qt5 QuickControls2 Module.
+Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-quickcontrols2/portfile.cmake b/ports/qt5-quickcontrols2/portfile.cmake
new file mode 100644
index 000000000..05a7dd616
--- /dev/null
+++ b/ports/qt5-quickcontrols2/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtquickcontrols2 e283320aabbaa153067c909804cb34bbcbf6fcb7246bb214957b6092ceb0f01c4fae2efd9d7a6cb011274deafff4aaf0a45dbda06a3fdce1154622e48740048c)
diff --git a/ports/qt5-scxml/CONTROL b/ports/qt5-scxml/CONTROL
new file mode 100644
index 000000000..ed3f93812
--- /dev/null
+++ b/ports/qt5-scxml/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-scxml
+Version: 5.9.2-0
+Description: Qt5 SCXML Module - Provides classes and tools for creating state machines from SCXML files and embedding them in applications
+Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-scxml/portfile.cmake b/ports/qt5-scxml/portfile.cmake
new file mode 100644
index 000000000..b0827216e
--- /dev/null
+++ b/ports/qt5-scxml/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtscxml c33db992ab456e5dd8b9be65c5619c503048106bbb1839b0930f2d4df36eed0780dfa1fc2912d7758aa72195269e59cbe8826cbaa414c2f339ca66c565809c88)
diff --git a/ports/qt5-serialport/CONTROL b/ports/qt5-serialport/CONTROL
new file mode 100644
index 000000000..5887105d8
--- /dev/null
+++ b/ports/qt5-serialport/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-serialport
+Version: 5.9.2-0
+Description: Qt5 Serial Port - provides access to hardware and virtual serial ports
+Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-serialport/portfile.cmake b/ports/qt5-serialport/portfile.cmake
new file mode 100644
index 000000000..f4a42f38f
--- /dev/null
+++ b/ports/qt5-serialport/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtserialport cc8899c1ae2ed9fd8cf1c213ab7efaec12b3b16836006fdbf74cb7ea457705505a13e82c2f2873ee9426ae66473ec42259f4e728de64576ee44420f116cc433d)
diff --git a/ports/qt5-speech/CONTROL b/ports/qt5-speech/CONTROL
new file mode 100644
index 000000000..44b8324f5
--- /dev/null
+++ b/ports/qt5-speech/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-speech
+Version: 5.9.2-0
+Description: Qt5 Speech Module
+Build-Depends: qt5-modularscripts, qt5-base, atlmfc
diff --git a/ports/qt5-speech/portfile.cmake b/ports/qt5-speech/portfile.cmake
new file mode 100644
index 000000000..8a271b289
--- /dev/null
+++ b/ports/qt5-speech/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtspeech 8213ad13d33732fee3fc5b5e408b870970a3003d461be24195222e1d1209210039d1d0cd2f3c537a0db62629fb297d88b33ed4734ecb6c8d74f5406a87e7e0c0)
diff --git a/ports/qt5-svg/CONTROL b/ports/qt5-svg/CONTROL
new file mode 100644
index 000000000..71abad30c
--- /dev/null
+++ b/ports/qt5-svg/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-svg
+Version: 5.9.2-0
+Description: Qt5 SVG Module - provides classes for displaying the contents of SVG files
+Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-svg/portfile.cmake b/ports/qt5-svg/portfile.cmake
new file mode 100644
index 000000000..83283d376
--- /dev/null
+++ b/ports/qt5-svg/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtsvg c21c5a12fa10ff9f91deda88c99c995ee2138bdffa21c793b0c42f25155f01f87ede5206624b9d82713649f8cf1cfdb95f1d5b7e792de62f3848d3a9ec665fdd)
diff --git a/ports/qt5-tools/CONTROL b/ports/qt5-tools/CONTROL
new file mode 100644
index 000000000..9f3bdaf6d
--- /dev/null
+++ b/ports/qt5-tools/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-tools
+Version: 5.9.2-0
+Description: Qt5 Tools Module; Includes deployment tools and helpers, Qt Designer, Assistant, and other applications
+Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
diff --git a/ports/qt5-tools/portfile.cmake b/ports/qt5-tools/portfile.cmake
new file mode 100644
index 000000000..a79a1b134
--- /dev/null
+++ b/ports/qt5-tools/portfile.cmake
@@ -0,0 +1,7 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qttools afce063e167de96dfa264cfd27dc8d80c23ef091a30f4f8119575cae83f39716c3b332427630b340f518b82d6396cca1893f28e00f3c667ba201d7e4fc2aefe1)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}//tools/qt5-tools/platforminputcontexts) \ No newline at end of file
diff --git a/ports/qt5-virtualkeyboard/CONTROL b/ports/qt5-virtualkeyboard/CONTROL
new file mode 100644
index 000000000..6fff91b58
--- /dev/null
+++ b/ports/qt5-virtualkeyboard/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-virtualkeyboard
+Version: 5.9.2-0
+Description: Qt5 Virtual Keyboard Module - A framework for implementing different input methods. Supports localized keyboard layouts and custom visual themes
+Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-virtualkeyboard/portfile.cmake b/ports/qt5-virtualkeyboard/portfile.cmake
new file mode 100644
index 000000000..cceed3894
--- /dev/null
+++ b/ports/qt5-virtualkeyboard/portfile.cmake
@@ -0,0 +1,7 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtvirtualkeyboard f8c39b789e877e60389ee9aab4a5c17e6018093f72fc57f526ce2584183135206306d4d5a7c7551a6de45969aa6f55444bb39f4ea3324cdf10611533f0bc2b22)
+
+set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
diff --git a/ports/qt5-websockets/CONTROL b/ports/qt5-websockets/CONTROL
new file mode 100644
index 000000000..2f43b9d2c
--- /dev/null
+++ b/ports/qt5-websockets/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-websockets
+Version: 5.9.2-0
+Description: Qt5 Web Sockets Module - provides WebSocket communication compliant with RFC 6455
+Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-websockets/portfile.cmake b/ports/qt5-websockets/portfile.cmake
new file mode 100644
index 000000000..98442f4c0
--- /dev/null
+++ b/ports/qt5-websockets/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtwebsockets 9330d6806251bc77d4c2a497a31b1b0e42a1e6bfe3ea7c00cee123052e9e1f9080e33cf4dfcd6ee6e4732c62f41257a77ec25ad607528f4e8ebe61ccaee3e159)
diff --git a/ports/qt5-winextras/CONTROL b/ports/qt5-winextras/CONTROL
new file mode 100644
index 000000000..d00ad7a0c
--- /dev/null
+++ b/ports/qt5-winextras/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-winextras
+Version: 5.9.2-0
+Description: Qt5 Windows Extras Module. Provides platform-specific APIs for Windows.
+Build-Depends: qt5-modularscripts, qt5-base, atlmfc
diff --git a/ports/qt5-winextras/portfile.cmake b/ports/qt5-winextras/portfile.cmake
new file mode 100644
index 000000000..692683adf
--- /dev/null
+++ b/ports/qt5-winextras/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtwinextras dbfb89833cc291fade8e9fe2ad9c7b7a78c2032de8dcbca1049d637f829811b99e1852ae39ca73a6eac2960df168765bee28023bb723e69c87e2f3bb50b7ef02)
diff --git a/ports/qt5-xmlpatterns/CONTROL b/ports/qt5-xmlpatterns/CONTROL
new file mode 100644
index 000000000..5fcec19be
--- /dev/null
+++ b/ports/qt5-xmlpatterns/CONTROL
@@ -0,0 +1,4 @@
+Source: qt5-xmlpatterns
+Version: 5.9.2-0
+Description: Qt5 XML Patterns Module - Support for XPath, XQuery, XSLT and XML schema validation
+Build-Depends: qt5-modularscripts, qt5-base
diff --git a/ports/qt5-xmlpatterns/portfile.cmake b/ports/qt5-xmlpatterns/portfile.cmake
new file mode 100644
index 000000000..6fbc69538
--- /dev/null
+++ b/ports/qt5-xmlpatterns/portfile.cmake
@@ -0,0 +1,5 @@
+include(vcpkg_common_functions)
+
+include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)
+
+qt_modular_library(qtxmlpatterns c14dbd97988473ba73b4e21352c5560278aa4dbfdf2be1d12e9119c0b5dbe8a0e4eff9a682052024a01bb21dcf52d40ba00da98947901fb91518af92a225da83)
diff --git a/ports/qt5/CONTROL b/ports/qt5/CONTROL
index 8d95c691e..dc34eee95 100644
--- a/ports/qt5/CONTROL
+++ b/ports/qt5/CONTROL
@@ -1,4 +1,4 @@
Source: qt5
-Version: 5.8-2
-Description: Qt5 application framework main components. Webengine, examples and tests not included.
-Build-Depends: zlib, libjpeg-turbo, libpng, freetype, pcre, harfbuzz, sqlite3, libpq, double-conversion
+Version: 5.9.2-1
+Description: Qt5 Application Framework
+Build-Depends: qt5-base, qt5-charts, qt5-datavis3d, qt5-declarative, qt5-gamepad, qt5-graphicaleffects, qt5-imageformats, qt5-multimedia, qt5-networkauth, qt5-quickcontrols, qt5-quickcontrols2, qt5-scxml, qt5-serialport, qt5-speech, qt5-svg, qt5-tools, qt5-virtualkeyboard, qt5-websockets, qt5-3d, qt5-winextras, qt5-xmlpatterns \ No newline at end of file
diff --git a/ports/qt5/fix-commandline-overrides.patch b/ports/qt5/fix-commandline-overrides.patch
deleted file mode 100644
index 08f627740..000000000
--- a/ports/qt5/fix-commandline-overrides.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-diff --git a/qtbase/configure.json b/qtbase/configure.json
-index f774291..8903df0 100644
---- a/qtbase/configure.json
-+++ b/qtbase/configure.json
-@@ -19,8 +19,7 @@
- "commandline": {
- "assignments": {
- "DBUS_HOST_PATH": "host_dbus.prefix",
-- "DBUS_PATH": "dbus.prefix",
-- "ZLIB_LIBS": "zlib.libs"
-+ "DBUS_PATH": "dbus.prefix"
- },
- "custom": "qmakeArgs",
- "options": {
-diff --git a/qtbase/mkspecs/features/qt_configure.prf b/qtbase/mkspecs/features/qt_configure.prf
-index eaaa161..fdec8ea 100644
---- a/qtbase/mkspecs/features/qt_configure.prf
-+++ b/qtbase/mkspecs/features/qt_configure.prf
-@@ -401,6 +401,7 @@ defineReplace(qtConfPrepareArgs) {
- }
-
- defineTest(qtConfSetupLibraries) {
-+ asspfx = $${currentConfig}.commandline.assignments
- for (l, $${currentConfig}.libraries._KEYS_) {
- lpfx = $${currentConfig}.libraries.$${l}
- # 'export' may be omitted, in which case it falls back to the library's name
-@@ -408,6 +409,15 @@ defineTest(qtConfSetupLibraries) {
- $${lpfx}.export = $$l
- export($${lpfx}.export)
- }
-+ # 'export' may also be empty, but we need a derived identifier
-+ alias = $$eval($${lpfx}.export)
-+ isEmpty(alias): alias = $$l
-+ $${lpfx}.alias = $$alias
-+ export($${lpfx}.alias)
-+ # make it easy to refer to the library by its export name.
-+ $${currentConfig}.exports._KEYS_ += $$alias
-+ $${currentConfig}.exports.$$alias += $$l
-+ export($${currentConfig}.exports.$$alias)
- isEmpty($${lpfx}.sources._KEYS_): \
- error("Library $$l defines no sources")
- for (s, $${lpfx}.sources._KEYS_) {
-@@ -427,10 +437,35 @@ defineTest(qtConfSetupLibraries) {
- }
- }
- }
-+
-+ $${currentConfig}.exports._KEYS_ = $$unique($${currentConfig}.exports._KEYS_)
-+ export($${currentConfig}.exports._KEYS_)
-+
-+ for (alias, $${currentConfig}.exports._KEYS_) {
-+ ua = $$upper($$alias)
-+ $${asspfx}._KEYS_ += \
-+ $${ua}_PREFIX $${ua}_INCDIR $${ua}_LIBDIR \
-+ $${ua}_LIBS $${ua}_LIBS_DEBUG $${ua}_LIBS_RELEASE
-+ uapfx = $${asspfx}.$${ua}
-+ $${uapfx}_PREFIX = $${alias}.prefix
-+ $${uapfx}_INCDIR = $${alias}.incdir
-+ $${uapfx}_LIBDIR = $${alias}.libdir
-+ $${uapfx}_LIBS = $${alias}.libs
-+ $${uapfx}_LIBS_DEBUG = $${alias}.libs.debug
-+ $${uapfx}_LIBS_RELEASE = $${alias}.libs.release
-+ export($${uapfx}_PREFIX)
-+ export($${uapfx}_INCDIR)
-+ export($${uapfx}_LIBDIR)
-+ export($${uapfx}_LIBS)
-+ export($${uapfx}_LIBS_DEBUG)
-+ export($${uapfx}_LIBS_RELEASE)
-+ }
-+ export($${asspfx}._KEYS_)
-+
-
- # reverse mapping for assignments on command line.
-- for (a, $${currentConfig}.commandline.assignments._KEYS_) {
-- apfx = $${currentConfig}.commandline.assignments.$${a}
-+ for (a, $${asspfx}._KEYS_) {
-+ apfx = $${asspfx}.$${a}
- ra = config.commandline.rev_assignments.$$eval($$apfx)
- $$ra = $$a
- export($$ra)
-@@ -479,6 +514,18 @@ defineTest(qtConfLibrary_inline) {
- export($${1}.libs)
- }
-
-+ incdir = $$val_escape(config.input.$${input}.incdir)
-+ !isEmpty(incdir) {
-+ $${1}.includedir = $$incdir
-+ export($${1}.includedir)
-+ }
-+
-+ libdir = $$val_escape(config.input.$${input}.libdir)
-+ !isEmpty(libdir) {
-+ $${1}.libs = "-L$$libdir $$eval($${1}.libs)"
-+ export($${1}.libs)
-+ }
-+
- return(true)
- }
-
-diff --git a/qtbase/src/gui/configure.json b/qtbase/src/gui/configure.json
-index 1f50116..af03362 100644
---- a/qtbase/src/gui/configure.json
-+++ b/qtbase/src/gui/configure.json
-@@ -100,7 +100,7 @@
- "test": "unix/freetype",
- "sources": [
- { "type": "pkgConfig", "args": "freetype2" },
-- { "type": "freetype", "libs": "-lfreetype" }
-+ { "libs": "-lfreetype" }
- ]
- },
- "fontconfig": {
-diff --git a/qtbase/src/network/configure.json b/qtbase/src/network/configure.json
-index 1e08aa7..314970e 100644
---- a/qtbase/src/network/configure.json
-+++ b/qtbase/src/network/configure.json
-@@ -7,9 +7,6 @@
-
- "commandline": {
- "assignments": {
-- "OPENSSL_LIBS": "openssl.libs",
-- "OPENSSL_LIBS_DEBUG": "openssl.libs.debug",
-- "OPENSSL_LIBS_RELEASE": "openssl.libs.release",
- "OPENSSL_PATH": "openssl.prefix"
- },
- "options": {
-diff --git a/qtbase/src/sql/configure.json b/qtbase/src/sql/configure.json
-index 96c82e8..51a7e51 100644
---- a/qtbase/src/sql/configure.json
-+++ b/qtbase/src/sql/configure.json
-@@ -8,7 +8,6 @@
- "commandline": {
- "assignments": {
- "MYSQL_PATH": "mysql.prefix",
-- "PSQL_LIBS": "psql.libs",
- "SYBASE": "tds.prefix",
- "SYBASE_LIBS": "tds.libs"
- },
-@@ -71,8 +70,8 @@
- "sources": [
- { "type": "pkgConfig", "args": "libpq" },
- { "type": "psqlConfig" },
-- { "type": "psqlEnv", "libs": "-llibpq -lws2_32 -ladvapi32", "condition": "config.win32" },
-- { "type": "psqlEnv", "libs": "-lpq", "condition": "!config.win32" }
-+ { "libs": "-llibpq -lws2_32 -ladvapi32", "condition": "config.win32" },
-+ { "libs": "-lpq", "condition": "!config.win32" }
- ]
- },
- "tds": {
diff --git a/ports/qt5/fix-qalgorithms-vs2017.patch b/ports/qt5/fix-qalgorithms-vs2017.patch
deleted file mode 100644
index eab41c0c3..000000000
--- a/ports/qt5/fix-qalgorithms-vs2017.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-diff --git a/qtbase/src/corelib/tools/qalgorithms.h b/qtbase/src/corelib/tools/qalgorithms.h
-index 303374b..7e84695 100644
---- a/qtbase/src/corelib/tools/qalgorithms.h
-+++ b/qtbase/src/corelib/tools/qalgorithms.h
-@@ -589,15 +589,16 @@ Q_DECL_CONSTEXPR Q_ALWAYS_INLINE uint qt_builtin_popcountll(quint64 v) Q_DECL_NO
- return __builtin_popcountll(v);
- }
- #elif defined(Q_CC_MSVC) && !defined(Q_OS_WINCE) && !defined(Q_PROCESSOR_ARM)
-+#define QT_POPCOUNT_CONSTEXPR
- #define QT_HAS_BUILTIN_CTZ
--Q_DECL_CONSTEXPR Q_ALWAYS_INLINE unsigned long qt_builtin_ctz(quint32 val)
-+Q_ALWAYS_INLINE unsigned long qt_builtin_ctz(quint32 val)
- {
- unsigned long result;
- _BitScanForward(&result, val);
- return result;
- }
- #define QT_HAS_BUILTIN_CLZ
--Q_DECL_CONSTEXPR Q_ALWAYS_INLINE unsigned long qt_builtin_clz(quint32 val)
-+Q_ALWAYS_INLINE unsigned long qt_builtin_clz(quint32 val)
- {
- unsigned long result;
- _BitScanReverse(&result, val);
-@@ -610,7 +611,7 @@ Q_DECL_CONSTEXPR Q_ALWAYS_INLINE unsigned long qt_builtin_clz(quint32 val)
- #if Q_PROCESSOR_WORDSIZE == 8
- // These are only defined for 64bit builds.
- #define QT_HAS_BUILTIN_CTZLL
--Q_DECL_CONSTEXPR Q_ALWAYS_INLINE unsigned long qt_builtin_ctzll(quint64 val)
-+Q_ALWAYS_INLINE unsigned long qt_builtin_ctzll(quint64 val)
- {
- unsigned long result;
- _BitScanForward64(&result, val);
-@@ -618,7 +619,7 @@ Q_DECL_CONSTEXPR Q_ALWAYS_INLINE unsigned long qt_builtin_ctzll(quint64 val)
- }
- // MSVC calls it _BitScanReverse and returns the carry flag, which we don't need
- #define QT_HAS_BUILTIN_CLZLL
--Q_DECL_CONSTEXPR Q_ALWAYS_INLINE unsigned long qt_builtin_clzll(quint64 val)
-+Q_ALWAYS_INLINE unsigned long qt_builtin_clzll(quint64 val)
- {
- unsigned long result;
- _BitScanReverse64(&result, val);
-@@ -628,31 +629,31 @@ Q_DECL_CONSTEXPR Q_ALWAYS_INLINE unsigned long qt_builtin_clzll(quint64 val)
- }
- #endif // MSVC 64bit
- # define QT_HAS_BUILTIN_CTZS
--Q_DECL_CONSTEXPR Q_ALWAYS_INLINE uint qt_builtin_ctzs(quint16 v) Q_DECL_NOTHROW
-+Q_ALWAYS_INLINE uint qt_builtin_ctzs(quint16 v) Q_DECL_NOTHROW
- {
- return qt_builtin_ctz(v);
- }
- #define QT_HAS_BUILTIN_CLZS
--Q_DECL_CONSTEXPR Q_ALWAYS_INLINE uint qt_builtin_clzs(quint16 v) Q_DECL_NOTHROW
-+Q_ALWAYS_INLINE uint qt_builtin_clzs(quint16 v) Q_DECL_NOTHROW
- {
- return qt_builtin_clz(v) - 16U;
- }
- #define QALGORITHMS_USE_BUILTIN_POPCOUNT
--Q_DECL_CONSTEXPR Q_ALWAYS_INLINE uint qt_builtin_popcount(quint32 v) Q_DECL_NOTHROW
-+Q_ALWAYS_INLINE uint qt_builtin_popcount(quint32 v) Q_DECL_NOTHROW
- {
- return __popcnt(v);
- }
--Q_DECL_CONSTEXPR Q_ALWAYS_INLINE uint qt_builtin_popcount(quint8 v) Q_DECL_NOTHROW
-+Q_ALWAYS_INLINE uint qt_builtin_popcount(quint8 v) Q_DECL_NOTHROW
- {
- return __popcnt16(v);
- }
--Q_DECL_CONSTEXPR Q_ALWAYS_INLINE uint qt_builtin_popcount(quint16 v) Q_DECL_NOTHROW
-+Q_ALWAYS_INLINE uint qt_builtin_popcount(quint16 v) Q_DECL_NOTHROW
- {
- return __popcnt16(v);
- }
- #if Q_PROCESSOR_WORDSIZE == 8
- #define QALGORITHMS_USE_BUILTIN_POPCOUNTLL
--Q_DECL_CONSTEXPR Q_ALWAYS_INLINE uint qt_builtin_popcountll(quint64 v) Q_DECL_NOTHROW
-+Q_ALWAYS_INLINE uint qt_builtin_popcountll(quint64 v) Q_DECL_NOTHROW
- {
- return __popcnt64(v);
- }
-@@ -660,9 +661,13 @@ Q_DECL_CONSTEXPR Q_ALWAYS_INLINE uint qt_builtin_popcountll(quint64 v) Q_DECL_NO
- #endif // MSVC
- #endif // QT_HAS_CONSTEXPR_BUILTINS
-
-+#ifndef QT_POPCOUNT_CONSTEXPR
-+#define QT_POPCOUNT_CONSTEXPR Q_DECL_CONSTEXPR
-+#endif
-+
- } //namespace QAlgorithmsPrivate
-
--Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint32 v) Q_DECL_NOTHROW
-+Q_DECL_CONST_FUNCTION QT_POPCOUNT_CONSTEXPR inline uint qPopulationCount(quint32 v) Q_DECL_NOTHROW
- {
- #ifdef QALGORITHMS_USE_BUILTIN_POPCOUNT
- return QAlgorithmsPrivate::qt_builtin_popcount(v);
-@@ -675,7 +680,7 @@ Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint32 v) Q
- #endif
- }
-
--Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint8 v) Q_DECL_NOTHROW
-+Q_DECL_CONST_FUNCTION QT_POPCOUNT_CONSTEXPR inline uint qPopulationCount(quint8 v) Q_DECL_NOTHROW
- {
- #ifdef QALGORITHMS_USE_BUILTIN_POPCOUNT
- return QAlgorithmsPrivate::qt_builtin_popcount(v);
-@@ -685,7 +690,7 @@ Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint8 v) Q_
- #endif
- }
-
--Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint16 v) Q_DECL_NOTHROW
-+Q_DECL_CONST_FUNCTION QT_POPCOUNT_CONSTEXPR inline uint qPopulationCount(quint16 v) Q_DECL_NOTHROW
- {
- #ifdef QALGORITHMS_USE_BUILTIN_POPCOUNT
- return QAlgorithmsPrivate::qt_builtin_popcount(v);
-@@ -696,7 +701,7 @@ Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint16 v) Q
- #endif
- }
-
--Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint64 v) Q_DECL_NOTHROW
-+Q_DECL_CONST_FUNCTION QT_POPCOUNT_CONSTEXPR inline uint qPopulationCount(quint64 v) Q_DECL_NOTHROW
- {
- #ifdef QALGORITHMS_USE_BUILTIN_POPCOUNTLL
- return QAlgorithmsPrivate::qt_builtin_popcountll(v);
-@@ -711,7 +716,7 @@ Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(quint64 v) Q
- #endif
- }
-
--Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(long unsigned int v) Q_DECL_NOTHROW
-+Q_DECL_CONST_FUNCTION QT_POPCOUNT_CONSTEXPR inline uint qPopulationCount(long unsigned int v) Q_DECL_NOTHROW
- {
- return qPopulationCount(static_cast<quint64>(v));
- }
-@@ -719,6 +724,7 @@ Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(long unsigne
- #if defined(Q_CC_GNU) && !defined(Q_CC_CLANG)
- #undef QALGORITHMS_USE_BUILTIN_POPCOUNT
- #endif
-+#undef QT_POPCOUNT_CONSTEXPR
-
- Q_DECL_RELAXED_CONSTEXPR inline uint qCountTrailingZeroBits(quint32 v) Q_DECL_NOTHROW
- {
diff --git a/ports/qt5/portfile.cmake b/ports/qt5/portfile.cmake
index ee871b155..cc6e26fcb 100644
--- a/ports/qt5/portfile.cmake
+++ b/ports/qt5/portfile.cmake
@@ -1,82 +1 @@
-include(${CMAKE_TRIPLET_FILE})
-include(vcpkg_common_functions)
-
-list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
-include(configure_qt)
-include(install_qt)
-
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/qt-5.8.0)
-vcpkg_download_distfile(ARCHIVE_FILE
- URLS "http://download.qt.io/official_releases/qt/5.8/5.8.0/single/qt-everywhere-opensource-src-5.8.0.7z"
- FILENAME "qt-5.8.0.7z"
- SHA512 4c8e7931f0c48318871242c12c2d6f5406be40e037f18690017198a79ef40a72d4319ecb1b8fb5f97c080dbe30174ceb5fd604b3fab22489f977cbeee3e8abe7
-)
-vcpkg_extract_source_archive(${ARCHIVE_FILE})
-if (EXISTS ${CURRENT_BUILDTREES_DIR}/src/qt-everywhere-opensource-src-5.8.0)
- file(RENAME ${CURRENT_BUILDTREES_DIR}/src/qt-everywhere-opensource-src-5.8.0 ${CURRENT_BUILDTREES_DIR}/src/qt-5.8.0)
-endif()
-
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-qalgorithms-vs2017.patch" "${CMAKE_CURRENT_LIST_DIR}/fix-commandline-overrides.patch"
-)
-
-# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
-set(ENV{_CL_} "/utf-8")
-
-configure_qt(
- SOURCE_PATH ${SOURCE_PATH}
- OPTIONS
- -confirm-license
- -opensource
- -system-zlib
- -system-libjpeg
- -system-libpng
- -system-freetype
- -system-pcre
- -system-harfbuzz
- -system-doubleconversion
- -system-sqlite
- -sql-sqlite
- -sql-psql
- -nomake examples -nomake tests
- -skip webengine
- -opengl desktop # other options are "-no-opengl" and "-opengl angle"
- -mp
- LIBJPEG_LIBS="-ljpeg"
- OPTIONS_RELEASE
- ZLIB_LIBS="-lzlib"
- LIBPNG_LIBS="-llibpng16"
- OPTIONS_DEBUG
- ZLIB_LIBS="-lzlibd"
- LIBPNG_LIBS="-llibpng16d"
- PCRE_LIBS="-lpcre16d"
- PSQL_LIBS="-llibpqd"
- FREETYPE_LIBS="-lfreetyped"
-)
-install_qt()
-
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-
-file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/bin/*.exe")
-file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5)
-file(REMOVE ${BINARY_TOOLS})
-file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe")
-file(REMOVE ${BINARY_TOOLS})
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/cmake
- LOGNAME fix-cmake
-)
-
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5 RENAME copyright)
-if(EXISTS ${CURRENT_PACKAGES_DIR}/plugins)
- file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/plugins)
-endif()
-if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/plugins)
- file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/debug/plugins)
-endif()
+SET(VCPKG_POLICY_EMPTY_PACKAGE enabled)
diff --git a/ports/quirc/CMakeLists.txt b/ports/quirc/CMakeLists.txt
new file mode 100644
index 000000000..8af398bb8
--- /dev/null
+++ b/ports/quirc/CMakeLists.txt
@@ -0,0 +1,19 @@
+cmake_minimum_required(VERSION 2.8)
+
+project(quirc C)
+
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+add_library(quirc
+ lib/decode.c
+ lib/identify.c
+ lib/quirc.c
+ lib/version_db.c
+)
+
+install(TARGETS quirc
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib)
+
+install(FILES ${PROJECT_SOURCE_DIR}/lib/quirc.h DESTINATION include)
diff --git a/ports/quirc/CONTROL b/ports/quirc/CONTROL
new file mode 100644
index 000000000..d86ea00ae
--- /dev/null
+++ b/ports/quirc/CONTROL
@@ -0,0 +1,3 @@
+Source: quirc
+Version: 1.0-2
+Description: quirc is one of the C library available for scanning QR Codes
diff --git a/ports/quirc/patch-for-msvc.patch b/ports/quirc/patch-for-msvc.patch
new file mode 100644
index 000000000..c755d04a7
--- /dev/null
+++ b/ports/quirc/patch-for-msvc.patch
@@ -0,0 +1,36 @@
+From 1c1ceecb70ad76751f0b573937380525d7643a87 Mon Sep 17 00:00:00 2001
+From: reyzal <reyzal@163.com>
+Date: Sun, 4 Mar 2018 12:09:34 +0800
+Subject: [PATCH] for msvc
+
+---
+ lib/identify.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/lib/identify.c b/lib/identify.c
+index bf7bd94..cd16b0a 100644
+--- a/lib/identify.c
++++ b/lib/identify.c
+@@ -196,9 +196,9 @@ static void threshold(struct quirc *q)
+ threshold_s = THRESHOLD_S_MIN;
+
+ for (y = 0; y < q->h; y++) {
+- int row_average[q->w];
++ int *row_average = malloc(q->w * sizeof(int));
+
+- memset(row_average, 0, sizeof(row_average));
++ memset(row_average, 0, q->w * sizeof(int));
+
+ for (x = 0; x < q->w; x++) {
+ int w, u;
+@@ -229,6 +229,7 @@ static void threshold(struct quirc *q)
+ }
+
+ row += q->w;
++ free(row_average);
+ }
+ }
+
+--
+2.7.3.windows.1
+
diff --git a/ports/quirc/portfile.cmake b/ports/quirc/portfile.cmake
new file mode 100644
index 000000000..fd05c3db4
--- /dev/null
+++ b/ports/quirc/portfile.cmake
@@ -0,0 +1,31 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO dlbeer/quirc
+ REF v1.0
+ SHA512 a556b08f2e2c710648b342fd06a855aa577b2b8c047c45a1c47cf54cde9963faf612978afba80bfd60a6f4f63156566f549ea303f09ed6e5348c1c30f5d77c13
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/patch-for-msvc.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/license DESTINATION ${CURRENT_PACKAGES_DIR}/share/quirc)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/quirc/license ${CURRENT_PACKAGES_DIR}/share/quirc/copyright)
diff --git a/ports/qwt/CONTROL b/ports/qwt/CONTROL
index 7564c1c7b..383ac11ce 100644
--- a/ports/qwt/CONTROL
+++ b/ports/qwt/CONTROL
@@ -1,4 +1,4 @@
Source: qwt
-Version: 6.1.3-1
+Version: 6.1.3-5
Description: Qt widgets library for technical applications
-Build-Depends: qt5
+Build-Depends: qt5-base, qt5-svg, qt5-tools
diff --git a/ports/qwt/portfile.cmake b/ports/qwt/portfile.cmake
index 109c0bc7c..918914a01 100644
--- a/ports/qwt/portfile.cmake
+++ b/ports/qwt/portfile.cmake
@@ -21,41 +21,50 @@ else()
)
endif()
-vcpkg_configure_qmake(
- SOURCE_PATH ${SOURCE_PATH}
-)
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+vcpkg_configure_qmake(SOURCE_PATH ${SOURCE_PATH})
-vcpkg_build_qmake()
+vcpkg_build_qmake(
+ RELEASE_TARGETS sub-src-release_ordered
+ DEBUG_TARGETS sub-src-debug_ordered
+)
-# Install following vcpkg conventions
-set(BUILD_DIR ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+#Set the correct install directory to packages
+foreach(MAKEFILE ${RELEASE_MAKEFILES} ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${MAKEFILE} "(INSTALL_ROOT)${INSTALLED_DIR_WITHOUT_DRIVE}" "(INSTALL_ROOT)${PACKAGES_DIR_WITHOUT_DRIVE}")
+endforeach()
+#Install the header files
file(GLOB HEADER_FILES ${SOURCE_PATH}/src/*.h)
file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/qwt)
+#Install the module files
file(INSTALL
- ${BUILD_DIR}/lib/qwt.lib
+ ${RELEASE_DIR}/lib/qwt.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib
)
file(INSTALL
- ${BUILD_DIR}/lib/qwtd.lib
+ ${DEBUG_DIR}/lib/qwtd.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
file(INSTALL
- ${BUILD_DIR}/lib/qwt.dll
+ ${RELEASE_DIR}/lib/qwt.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/bin
)
file(INSTALL
- ${BUILD_DIR}/lib/qwtd.dll
- ${BUILD_DIR}/lib/qwtd.pdb
+ ${DEBUG_DIR}/lib/qwtd.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
)
endif()
+vcpkg_copy_pdbs()
+
# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/qwt)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/qwt/COPYING ${CURRENT_PACKAGES_DIR}/share/qwt/copyright)
diff --git a/ports/ragel/CONTROL b/ports/ragel/CONTROL
index bb83fa72f..bb6595ac5 100644
--- a/ports/ragel/CONTROL
+++ b/ports/ragel/CONTROL
@@ -1,3 +1,3 @@
Source: ragel
-Version: 6.10
+Version: 6.10-1
Description: Ragel State Machine Compiler
diff --git a/ports/ragel/portfile.cmake b/ports/ragel/portfile.cmake
index bad1efaaf..00082e4bd 100644
--- a/ports/ragel/portfile.cmake
+++ b/ports/ragel/portfile.cmake
@@ -23,7 +23,8 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
-file(WRITE ${CURRENT_PACKAGES_DIR}/include/ragel.txt)
+# Allow empty include directory
+set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/ragel)
diff --git a/ports/range-v3-vs2015/CONTROL b/ports/range-v3-vs2015/CONTROL
new file mode 100644
index 000000000..62c9f63ce
--- /dev/null
+++ b/ports/range-v3-vs2015/CONTROL
@@ -0,0 +1,3 @@
+Source: range-v3-vs2015
+Version: 20151130-vcpkg5
+Description: Range library for C++11/14/17.
diff --git a/ports/range-v3-vs2015/portfile.cmake b/ports/range-v3-vs2015/portfile.cmake
new file mode 100644
index 000000000..bc7153a53
--- /dev/null
+++ b/ports/range-v3-vs2015/portfile.cmake
@@ -0,0 +1,14 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Microsoft/Range-V3-VS2015
+ REF 423bcae5cf18948591361329784d3b12ef41711b
+ SHA512 c6756bc6b5131c4c0ffb96550fb40decf734fc8c30e3d51c5c2bf03aae4d7426de36e896a1abf0a200a49a3906d4b60c1cf52f43504554b64d89c91de3e92746
+ HEAD_REF master
+)
+
+file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/range-v3-vs2015)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/range-v3-vs2015/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/range-v3-vs2015/copyright)
+file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.hpp")
+vcpkg_copy_pdbs()
diff --git a/ports/range-v3/CONTROL b/ports/range-v3/CONTROL
index 942851b42..ee21c16c9 100644
--- a/ports/range-v3/CONTROL
+++ b/ports/range-v3/CONTROL
@@ -1,3 +1,4 @@
Source: range-v3
-Version: 20150729-vcpkg3
+Version: 0.3.5
+Build-Depends: range-v3-vs2015 (windows), range-v3-vs2015 (uwp)
Description: Range library for C++11/14/17.
diff --git a/ports/range-v3/portfile.cmake b/ports/range-v3/portfile.cmake
index 639e8fcef..cbeb38bf0 100644
--- a/ports/range-v3/portfile.cmake
+++ b/ports/range-v3/portfile.cmake
@@ -1,21 +1,36 @@
-#header-only library
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/range-v3-6eb5c831ffe12cd5cb96390dbe917ca1b248772d)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/ericniebler/range-v3/archive/6eb5c831ffe12cd5cb96390dbe917ca1b248772d.zip"
- FILENAME "range-v3-6eb5c831ffe12cd5cb96390dbe917ca1b248772d.zip"
- SHA512 2605af46c2c049f66dc982b1c4e506a8f115d47cc6c61a80f08921c667e52ad3097c485280ee43711c84b84a1490929e085b89cf9ad4c83b93222315210e92aa
-)
-vcpkg_download_distfile(DIFF
- URLS "https://github.com/Microsoft/Range-V3-VS2015/compare/fork_base...00ed689bac7a9dcd8601dbde382758675516799d.diff"
- FILENAME "range-v3-fork_base_to_00ed689bac7a9dcd8601dbde382758675516799d.diff"
- SHA512 615a53ebac22df03e865bdcc86580914c4505ec5fc691b6a2f864f7bf63690b99d0da0db2d5b1026e34b0a3f7557f30dfa0cad65643bae0b53c0ec066af9eb8e
-)
-vcpkg_extract_source_archive(${ARCHIVE})
-vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} PATCHES ${DIFF})
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR NOT VCPKG_CMAKE_SYSTEM_NAME)
+ message("The current range-v3 releases are not compatible with the current MSVC releases.")
+ message("The latest available range-v3 fork compatible with MSVC will be used instead.")
+ set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+else()
+ vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ericniebler/range-v3
+ REF 0.3.5
+ SHA512 0b8b97c32760f19e7a3f35b0f28b0c15c7735fbd1aa54f685c58faf50bf2cf112aed4ac7cfa9154b9caf7047400a6c7fd5c33d978f2e3cec6bc392a758aeabad
+ HEAD_REF master
+ )
-file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/range-v3)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/range-v3/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/range-v3/copyright)
-file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.hpp")
-vcpkg_copy_pdbs()
+ vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DRANGE_V3_NO_TESTING=ON
+ -DRANGE_V3_NO_EXAMPLE=ON
+ -DRANGE_V3_NO_PERF=ON
+ -DRANGE_V3_NO_HEADER_CHECK=ON
+ )
+
+ vcpkg_install_cmake()
+
+ vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/range-v3)
+
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/lib)
+
+ vcpkg_copy_pdbs()
+
+ file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/range-v3)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/share/range-v3/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/range-v3/copyright)
+endif()
diff --git a/ports/rapidjson/CONTROL b/ports/rapidjson/CONTROL
index 0dd6333cf..7646755a5 100644
--- a/ports/rapidjson/CONTROL
+++ b/ports/rapidjson/CONTROL
@@ -1,3 +1,3 @@
Source: rapidjson
-Version: 1.1.0
+Version: 1.1.0-1
Description: A fast JSON parser/generator for C++ with both SAX/DOM style API <http://rapidjson.org/>
diff --git a/ports/rapidjson/portfile.cmake b/ports/rapidjson/portfile.cmake
index 80dc14f5d..4f87ed6f4 100644
--- a/ports/rapidjson/portfile.cmake
+++ b/ports/rapidjson/portfile.cmake
@@ -1,17 +1,31 @@
#header-only library
include(vcpkg_common_functions)
-SET(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/rapidjson-1.1.0)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/miloyip/rapidjson/archive/v1.1.0.zip"
- FILENAME "rapidjson-v1.1.0.zip"
- SHA512 4ddbf6dc5d943eb971e7a62910dd78d1cc5cc3016066a443f351d4276d2be3375ed97796e672c2aecd6990f0b332826f8c8ddc7d367193d7b82f0037f4e4012c
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Tencent/rapidjson
+ REF v1.1.0
+ SHA512 2e82a4bddcd6c4669541f5945c2d240fb1b4fdd6e239200246d3dd50ce98733f0a4f6d3daa56f865d8c88779c036099c52a9ae85d47ad263686b68a88d832dff
+ HEAD_REF master
+)
+
+# Use RapidJSON's own build process, skipping examples and tests
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DRAPIDJSON_BUILD_DOC:BOOL=OFF
+ -DRAPIDJSON_BUILD_EXAMPLES:BOOL=OFF
+ -DRAPIDJSON_BUILD_TESTS:BOOL=OFF
+ -DCMAKE_INSTALL_DIR:STRING=cmake
)
-vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_install_cmake()
+
+# Move CMake config files to the right place
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake)
+
+# Delete redundant directories
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/share/doc)
# Put the licence file where vcpkg expects it
-file(COPY ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/rapidjson)
+file(COPY ${SOURCE_PATH}/license.txt ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/rapidjson)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/rapidjson/license.txt ${CURRENT_PACKAGES_DIR}/share/rapidjson/copyright)
-
-# Copy the rapidjson header files
-file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.h")
-vcpkg_copy_pdbs()
diff --git a/ports/rapidjson/usage b/ports/rapidjson/usage
new file mode 100644
index 000000000..81e541e17
--- /dev/null
+++ b/ports/rapidjson/usage
@@ -0,0 +1,4 @@
+The package rapidjson provides CMake integration:
+
+ find_package(RapidJSON REQUIRED)
+ target_include_directories(main PRIVATE ${RAPIDJSON_INCLUDE_DIRS})
diff --git a/ports/re2/CONTROL b/ports/re2/CONTROL
new file mode 100644
index 000000000..9da837955
--- /dev/null
+++ b/ports/re2/CONTROL
@@ -0,0 +1,3 @@
+Source: re2
+Version: 2018-05-17
+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..f92a24bf2
--- /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 6cf8ccd82dbaab2668e9b13596c68183c9ecd13f
+ SHA512 3a088cd94516ff4410de63d6fcaff999161e75be8014713177cbd030c95a8802712219b032ad651ac4781011db5e385b6d6e8b4a665196637edc4033b41a2c3c
+ 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/readosm/CONTROL b/ports/readosm/CONTROL
new file mode 100644
index 000000000..08e696e6d
--- /dev/null
+++ b/ports/readosm/CONTROL
@@ -0,0 +1,4 @@
+Source: readosm
+Version: 1.1.0-1
+Description: ReadOSM is an open source library to extract valid data from within an Open Street Map input file (.osm or .osm.pbf)
+Build-Depends: expat, zlib
diff --git a/ports/readosm/fix-makefiles.patch b/ports/readosm/fix-makefiles.patch
new file mode 100644
index 000000000..3904b5136
--- /dev/null
+++ b/ports/readosm/fix-makefiles.patch
@@ -0,0 +1,49 @@
+diff --git a/makefile.vc b/makefile.vc
+index 791aedf..d294548 100644
+--- a/makefile.vc
++++ b/makefile.vc
+@@ -8,7 +8,7 @@ LIBOBJ = src\readosm.obj src\osmxml.obj \
+ src\protobuf.obj src\osm_objects.obj
+ READOSM_DLL = readosm$(VERSION).dll
+
+-CFLAGS = /nologo -IC:\OSGeo4W\include -Iheaders $(OPTFLAGS)
++CFLAGS = /nologo -I$(INSTALLED_ROOT)\include -Iheaders $(OPTFLAGS)
+
+ default: all
+
+@@ -21,9 +21,9 @@ readosm.lib: $(LIBOBJ)
+ $(READOSM_DLL): readosm_i.lib
+
+ readosm_i.lib: $(LIBOBJ)
+- link /debug /dll /out:$(READOSM_DLL) \
++ link $(LINK_FLAGS) /dll /out:$(READOSM_DLL) \
+ /implib:readosm_i.lib $(LIBOBJ) \
+- C:\OSGeo4w\lib\libexpat.lib C:\OSGeo4w\lib\zlib.lib
++ $(LIBS_ALL)
+ if exist $(READOSM_DLL).manifest mt -manifest \
+ $(READOSM_DLL).manifest -outputresource:$(READOSM_DLL);2
+
+@@ -35,7 +35,7 @@ clean:
+ del *.exp
+ del *.manifest
+ del *.lib
+- del *.obj
++ del src\*.obj
+ del *.pdb
+
+ install: all
+diff --git a/nmake.opt b/nmake.opt
+index 5e45c0e..61c44f9 100644
+--- a/nmake.opt
++++ b/nmake.opt
+@@ -1,8 +1,8 @@
+ # Directory tree where ReadOSM will be installed.
+-INSTDIR=C:\OSGeo4W
++INSTDIR=$(INST_DIR)
+
+ # Uncomment the first for an optimized build, or the second for debug.
+-OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \
++OPTFLAGS= /nologo /fp:precise /W3 $(CL_FLAGS) /D_CRT_SECURE_NO_WARNINGS \
+ /DDLL_EXPORT
+ #OPTFLAGS= /nologo /Zi /MD /Fdreadosm.pdb /DDLL_EXPORT
+
diff --git a/ports/readosm/fix-version-macro.patch b/ports/readosm/fix-version-macro.patch
new file mode 100644
index 000000000..b091b3359
--- /dev/null
+++ b/ports/readosm/fix-version-macro.patch
@@ -0,0 +1,13 @@
+diff --git a/src/readosm.c b/src/readosm.c
+index e1dda27..7977339 100644
+--- a/src/readosm.c
++++ b/src/readosm.c
+@@ -50,7 +50,7 @@
+
+ #if defined(_WIN32) && !defined(__MINGW32__)
+ /* MSVC: avoiding to include at all config.h */
+-#define VERSION 1.1.0
++#define VERSION "1.1.0"
+ #else
+ #include "config.h"
+ #endif
diff --git a/ports/readosm/portfile.cmake b/ports/readosm/portfile.cmake
new file mode 100644
index 000000000..5bd5a134f
--- /dev/null
+++ b/ports/readosm/portfile.cmake
@@ -0,0 +1,86 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/readosm-1.1.0)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.gaia-gis.it/gaia-sins/readosm-sources/readosm-1.1.0.tar.gz"
+ FILENAME "readosm-1.1.0.tar.gz"
+ SHA512 d3581f564c4461c6a1a3d5fd7d18a262c884b2ac935530064bfaebd6c05d692fb92cc600fb40e87e03f7160ebf0eeeb05f51a0e257935d056b233fe28fc01a11
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-version-macro.patch
+)
+
+find_program(NMAKE nmake)
+
+set(LIBS_ALL_DBG "\"${CURRENT_INSTALLED_DIR}/debug/lib/expat.lib\" \"${CURRENT_INSTALLED_DIR}/debug/lib/zlibd.lib\"")
+set(LIBS_ALL_REL "\"${CURRENT_INSTALLED_DIR}/lib/expat.lib\" \"${CURRENT_INSTALLED_DIR}/lib/zlib.lib\"")
+
+if(VCPKG_CRT_LINKAGE STREQUAL dynamic)
+ set(CL_FLAGS_DBG "/MDd /Zi")
+ set(CL_FLAGS_REL "/MD /Ox")
+else()
+ set(CL_FLAGS_DBG "/MTd /Zi")
+ set(CL_FLAGS_REL "/MT /Ox")
+endif()
+
+################
+# Debug build
+################
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg")
+
+ file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/debug" INST_DIR_DBG)
+
+ vcpkg_execute_required_process(
+ COMMAND ${NMAKE} -f makefile.vc clean install
+ INST_DIR="${INST_DIR_DBG}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=/debug" "CL_FLAGS=${CL_FLAGS_DBG}"
+ "LIBS_ALL=${LIBS_ALL_DBG}"
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME nmake-build-${TARGET_TRIPLET}-debug
+ )
+ vcpkg_copy_pdbs()
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg done")
+endif()
+
+################
+# Release build
+################
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ message(STATUS "Building ${TARGET_TRIPLET}-rel")
+
+ file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR_REL)
+ vcpkg_execute_required_process(
+ COMMAND ${NMAKE} -f makefile.vc clean install
+ INST_DIR="${INST_DIR_REL}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=" "CL_FLAGS=${CL_FLAGS_REL}"
+ "LIBS_ALL=${LIBS_ALL_REL}"
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME nmake-build-${TARGET_TRIPLET}-release
+ )
+ message(STATUS "Building ${TARGET_TRIPLET}-rel done")
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/readosm RENAME copyright)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/readosm_i.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/readosm_i.lib)
+else()
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/readosm.lib)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/readosm.lib)
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/readosm_i.lib ${CURRENT_PACKAGES_DIR}/lib/readosm.lib)
+ endif()
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/readosm_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/readosm.lib)
+ endif()
+endif()
+
+
+message(STATUS "Packaging ${TARGET_TRIPLET} done")
diff --git a/ports/realsense2/CONTROL b/ports/realsense2/CONTROL
new file mode 100644
index 000000000..ffceb5722
--- /dev/null
+++ b/ports/realsense2/CONTROL
@@ -0,0 +1,7 @@
+Source: realsense2
+Version: 2.11.1
+Description: Intel® RealSense™ SDK 2.0 is a cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300).
+
+Feature: tools
+Build-Depends: opengl
+Description: Build Intel® RealSense™ examples and tools
diff --git a/ports/realsense2/portfile.cmake b/ports/realsense2/portfile.cmake
new file mode 100644
index 000000000..8c80de5d6
--- /dev/null
+++ b/ports/realsense2/portfile.cmake
@@ -0,0 +1,58 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO IntelRealSense/librealsense
+ REF v2.11.1
+ SHA512 fa7d2e6262f0c90783a937a88aa32d89f4f36e96ead7356bde455f8eabbd09e798ce1736bccb07ecfa2f2d32c43cad2fff7f441d246856869c09ae3e06ad43f1
+ HEAD_REF development
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_LIBRARY_LINKAGE)
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_CRT_LINKAGE)
+
+set(BUILD_EXAMPLES OFF)
+set(BUILD_GRAPHICAL_EXAMPLES OFF)
+if("tools" IN_LIST FEATURES)
+ set(BUILD_EXAMPLES ON)
+ set(BUILD_GRAPHICAL_EXAMPLES ON)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ #Ungrouped Entries
+ -DENFORCE_METADATA=ON
+ # BUILD
+ -DBUILD_EXAMPLES=${BUILD_EXAMPLES}
+ -DBUILD_GRAPHICAL_EXAMPLES=${BUILD_GRAPHICAL_EXAMPLES}
+ -DBUILD_SHARED_LIBS=${BUILD_LIBRARY_LINKAGE}
+ -DBUILD_UNIT_TESTS=OFF
+ -DBUILD_WITH_OPENMP=OFF
+ -DBUILD_WITH_STATIC_CRT=${BUILD_CRT_LINKAGE}
+ OPTIONS_DEBUG
+ # BUILD
+ -DBUILD_EXAMPLES=OFF
+ -DBUILD_GRAPHICAL_EXAMPLES=OFF
+ # CMAKE
+ "-DCMAKE_PDB_OUTPUT_DIRECTORY=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg"
+ -DCMAKE_DEBUG_POSTFIX="_d"
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/realsense2)
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+if(BUILD_EXAMPLES)
+ file(GLOB EXEFILES_RELEASE ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+ file(GLOB EXEFILES_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+ file(COPY ${EXEFILES_RELEASE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/realsense2)
+ file(REMOVE ${EXEFILES_RELEASE} ${EXEFILES_DEBUG})
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/realsense2)
+endif()
+
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/realsense2)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/realsense2/COPYING ${CURRENT_PACKAGES_DIR}/share/realsense2/copyright)
diff --git a/ports/recast/CMakeLists.txt b/ports/recast/CMakeLists.txt
new file mode 100644
index 000000000..5b54f6e20
--- /dev/null
+++ b/ports/recast/CMakeLists.txt
@@ -0,0 +1,57 @@
+cmake_minimum_required(VERSION 3.8)
+project(recast)
+
+include_directories(
+ DebugUtils/Include
+ Detour/Include
+ DetourCrowd/Include
+ DetourTileCache/Include
+ Recast/Include
+)
+
+set(SRC
+ DebugUtils/Source/DebugDraw.cpp
+ DebugUtils/Source/DetourDebugDraw.cpp
+ DebugUtils/Source/RecastDebugDraw.cpp
+ DebugUtils/Source/RecastDump.cpp
+ Detour/Source/DetourAlloc.cpp
+ Detour/Source/DetourCommon.cpp
+ Detour/Source/DetourNavMesh.cpp
+ Detour/Source/DetourNavMeshBuilder.cpp
+ Detour/Source/DetourNavMeshQuery.cpp
+ Detour/Source/DetourNode.cpp
+ DetourCrowd/Source/DetourCrowd.cpp
+ DetourCrowd/Source/DetourLocalBoundary.cpp
+ DetourCrowd/Source/DetourObstacleAvoidance.cpp
+ DetourCrowd/Source/DetourPathCorridor.cpp
+ DetourCrowd/Source/DetourPathQueue.cpp
+ DetourCrowd/Source/DetourProximityGrid.cpp
+ DetourTileCache/Source/DetourTileCache.cpp
+ DetourTileCache/Source/DetourTileCacheBuilder.cpp
+ Recast/Source/Recast.cpp
+ Recast/Source/RecastAlloc.cpp
+ Recast/Source/RecastArea.cpp
+ Recast/Source/RecastContour.cpp
+ Recast/Source/RecastFilter.cpp
+ Recast/Source/RecastLayers.cpp
+ Recast/Source/RecastMesh.cpp
+ Recast/Source/RecastMeshDetail.cpp
+ Recast/Source/RecastRasterization.cpp
+ Recast/Source/RecastRegion.cpp
+)
+
+add_library(recast ${SRC})
+
+install(
+ TARGETS recast
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(DIRECTORY DebugUtils/Include/ DESTINATION include/recast/DebugUtils)
+ install(DIRECTORY Detour/Include/ DESTINATION include/recast/Detour)
+ install(DIRECTORY DetourCrowd/Include/ DESTINATION include/recast/DetourCrowd)
+ install(DIRECTORY DetourTileCache/Include/ DESTINATION include/recast/DetourTileCache)
+ install(DIRECTORY Recast/Include/ DESTINATION include/recast/Recast)
+endif()
diff --git a/ports/recast/CONTROL b/ports/recast/CONTROL
new file mode 100644
index 000000000..4cc61e30d
--- /dev/null
+++ b/ports/recast/CONTROL
@@ -0,0 +1,3 @@
+Source: recast
+Version: 1.5.1-1
+Description: Navigation-mesh Toolset for Games
diff --git a/ports/recast/portfile.cmake b/ports/recast/portfile.cmake
new file mode 100644
index 000000000..7d9f08f93
--- /dev/null
+++ b/ports/recast/portfile.cmake
@@ -0,0 +1,27 @@
+include(vcpkg_common_functions)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "Dynamic not supported, building static")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO recastnavigation/recastnavigation
+ REF 1.5.1
+ SHA512 09900d8893e0c633a79e6188d15e68d1047040a0f2bceb2542f486dded64e69b918eaae159def81416a014fae26a46502783a2a712462bee4be2a3edf7bef47f
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/recast RENAME copyright)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+vcpkg_copy_pdbs()
diff --git a/ports/redshell/CONTROL b/ports/redshell/CONTROL
new file mode 100644
index 000000000..adb34e490
--- /dev/null
+++ b/ports/redshell/CONTROL
@@ -0,0 +1,4 @@
+Source: redshell
+Version: 1.1.2
+Description: RedShell C++ SDK. Steam attribution tracking, www.redshell.io
+# Built-Using: openssl (= 1.0.2m), cpprestsdk (= 2.10.0), boost (= 1.65.1-3), websocketpp (= 0.7.0-1), zlib (= 1.2.11-3), bzip2 (= 1.0.6-2)
diff --git a/ports/redshell/portfile.cmake b/ports/redshell/portfile.cmake
new file mode 100644
index 000000000..52d5c105e
--- /dev/null
+++ b/ports/redshell/portfile.cmake
@@ -0,0 +1,64 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL arm)
+ message(FATAL_ERROR "Error: redshell does not support the ARM architecture.")
+endif()
+
+if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+ message(FATAL_ERROR "Error: redshell does not support UWP builds.")
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message("Redshell only supports dynamic library linkage")
+ set(VCPKG_LIBRARY_LINKAGE "dynamic")
+endif()
+
+if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ message(FATAL_ERROR "Redshell only supports dynamic CRT linkage")
+endif()
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/redshell)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Innervate/red-shell-cpp
+ REF 1.1.2
+ SHA512 9e0705508928efed5ae5c216316cb0429090cd7131ca7993f585eaf26bccd1e18b93dfeaff0406c64921b06c8312c0d147024af1c29e6003ff35556cda36e57c
+ HEAD_REF master
+)
+
+# Header .h
+file(COPY
+ "${SOURCE_PATH}/include/RedShell.h"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include/redshell
+)
+
+# Debug .lib
+file(COPY
+ "${SOURCE_PATH}/lib/${VCPKG_TARGET_ARCHITECTURE}/debug/RedShell.lib"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+# Release .lib
+file(COPY
+ "${SOURCE_PATH}/lib/${VCPKG_TARGET_ARCHITECTURE}/RedShell.lib"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+)
+
+# Debug .dll
+file(COPY
+ "${SOURCE_PATH}/bin/${VCPKG_TARGET_ARCHITECTURE}/debug/RedShell.dll"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+)
+
+# Release .dll
+file(COPY
+ "${SOURCE_PATH}/bin/${VCPKG_TARGET_ARCHITECTURE}/RedShell.dll"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+)
+
+# Copyright
+file(COPY
+ "${SOURCE_PATH}/LICENSE.txt"
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/redshell/copyright
+)
diff --git a/ports/refprop-headers/CONTROL b/ports/refprop-headers/CONTROL
new file mode 100644
index 000000000..00b78cc55
--- /dev/null
+++ b/ports/refprop-headers/CONTROL
@@ -0,0 +1,3 @@
+Source: refprop-headers
+Version: 2017-11-7-882aec454b2bc3d5323b8691736ff09c288f4ed6
+Description: The REFPROP Headers
diff --git a/ports/refprop-headers/portfile.cmake b/ports/refprop-headers/portfile.cmake
new file mode 100644
index 000000000..4b6274e12
--- /dev/null
+++ b/ports/refprop-headers/portfile.cmake
@@ -0,0 +1,19 @@
+include(vcpkg_common_functions)
+set(PORT_COMMIT 882aec454b2bc3d5323b8691736ff09c288f4ed6)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO CoolProp/REFPROP-headers
+ REF ${PORT_COMMIT}
+ SHA512 23ee3df4ffe21b2d790efa27a1b8ea5fa4fce0a274d78e493a2d71043670420e19216f925d23d04f6139ca084a21b97028bd2547f3dbd00ffbb33d0c0bbfece5
+ HEAD_REF master
+)
+
+file(INSTALL ${SOURCE_PATH}/REFPROP_lib.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+# Handle copyright
+file(
+ INSTALL ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/refprop-headers
+ RENAME copyright
+)
diff --git a/ports/restinio/CONTROL b/ports/restinio/CONTROL
new file mode 100644
index 000000000..eed60e4c3
--- /dev/null
+++ b/ports/restinio/CONTROL
@@ -0,0 +1,4 @@
+Source: restinio
+Version: 0.4.5.1
+Description: A header-only C++14 library that gives you an embedded HTTP/Websocket server targeted primarily for asynchronous processing of HTTP-requests.
+Build-Depends: asio, fmt, http-parser
diff --git a/ports/restinio/portfile.cmake b/ports/restinio/portfile.cmake
new file mode 100644
index 000000000..b2c496dfb
--- /dev/null
+++ b/ports/restinio/portfile.cmake
@@ -0,0 +1,27 @@
+include(vcpkg_common_functions)
+
+set(RESTINIO_VERSION 0.4.5.1)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/restinio-${RESTINIO_VERSION}-vcpkg)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://bitbucket.org/sobjectizerteam/restinio-0.4/downloads/restinio-${RESTINIO_VERSION}-vcpkg.zip"
+ FILENAME "restinio-${RESTINIO_VERSION}-vcpkg.zip"
+ SHA512 198153f9b8d866c2aa57932720b31ff1f8e523d9640ad0c8becb911afed1fa12caa636847234cfc83d584a15bdc4b05fb98cbc4730af2520b453c5de468eb7fa
+)
+
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/vcpkg
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/restinio")
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib ${CURRENT_PACKAGES_DIR}/debug)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/restinio)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/restinio/LICENSE ${CURRENT_PACKAGES_DIR}/share/restinio/copyright)
diff --git a/ports/rhash/CMakeLists.txt b/ports/rhash/CMakeLists.txt
new file mode 100644
index 000000000..b395b5c9a
--- /dev/null
+++ b/ports/rhash/CMakeLists.txt
@@ -0,0 +1,15 @@
+cmake_minimum_required(VERSION 3.5)
+project(rhash C)
+
+file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/Makefile RHASH_SOURCES REGEX "^SOURCES = .*$")
+string(REPLACE "SOURCES = " "" RHASH_SOURCES "${RHASH_SOURCES}")
+string(REPLACE " " ";" RHASH_SOURCES "${RHASH_SOURCES}")
+
+add_library(rhash ${RHASH_SOURCES})
+set_target_properties(rhash PROPERTIES COMPILE_DEFINITIONS "IN_RHASH" DEFINE_SYMBOL "RHASH_EXPORTS")
+
+install(TARGETS rhash RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
+
+if(NOT RHASH_SKIP_HEADERS)
+ install(FILES rhash.h rhash_torrent.h DESTINATION include)
+endif()
diff --git a/ports/rhash/CONTROL b/ports/rhash/CONTROL
new file mode 100644
index 000000000..14b8768d4
--- /dev/null
+++ b/ports/rhash/CONTROL
@@ -0,0 +1,3 @@
+Source: rhash
+Version: 1.3.6
+Description: C library for computing a wide variety of hash sums
diff --git a/ports/rhash/portfile.cmake b/ports/rhash/portfile.cmake
new file mode 100644
index 000000000..cc1188c38
--- /dev/null
+++ b/ports/rhash/portfile.cmake
@@ -0,0 +1,25 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "UWP builds not supported")
+endif()
+
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO rhash/RHash
+ REF v1.3.6
+ SHA512 54f7f238ed1fdc01c29cc1338fa86be90b69beff0df8f20d24ce9cb3c48c7f4668b84a3fe0d4d8b04b54bc8145485d493435edf3219de3a637af0f9c007c85c6
+ HEAD_REF master)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/librhash)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/librhash
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DRHASH_SKIP_HEADERS=ON)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/rhash)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/rhash/COPYING ${CURRENT_PACKAGES_DIR}/share/rhash/copyright)
diff --git a/ports/robin-map/CONTROL b/ports/robin-map/CONTROL
new file mode 100644
index 000000000..f24dc8337
--- /dev/null
+++ b/ports/robin-map/CONTROL
@@ -0,0 +1,3 @@
+Source: robin-map
+Version: 0.2.0
+Description: A C++ implementation of a fast hash map and hash set using robin hood hashing
diff --git a/ports/robin-map/portfile.cmake b/ports/robin-map/portfile.cmake
new file mode 100644
index 000000000..6436f6194
--- /dev/null
+++ b/ports/robin-map/portfile.cmake
@@ -0,0 +1,17 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Tessil/robin-map
+ REF v0.2.0
+ SHA512 6d16c612a0d646fd08857f2f6ee2909fb607ff05fa9c7733a2b618d662f63bba2f99677b75a09870a1582b7b37f255c4ff1f9171c897c3cfa73dd8879de1ec18
+ HEAD_REF master
+)
+
+file(COPY ${SOURCE_PATH}/tsl DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/robin-map
+ RENAME copyright
+)
diff --git a/ports/rocksdb/0002-disable-gtest.patch b/ports/rocksdb/0002-disable-gtest.patch
new file mode 100644
index 000000000..8d42bbaf1
--- /dev/null
+++ b/ports/rocksdb/0002-disable-gtest.patch
@@ -0,0 +1,25 @@
+From f1ecf23b8a10ab5a917da4a39fba343a00cab1a9 Mon Sep 17 00:00:00 2001
+From: Robert Schumacher <roschuma@microsoft.com>
+Date: Fri, 23 Feb 2018 01:44:57 -0800
+Subject: [PATCH 2/3] disable gtest
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5fb551a..faffc91 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -393,7 +393,7 @@ include_directories(${PROJECT_SOURCE_DIR}/include)
+ include_directories(SYSTEM ${PROJECT_SOURCE_DIR}/third-party/gtest-1.7.0/fused-src)
+ find_package(Threads REQUIRED)
+
+-add_subdirectory(third-party/gtest-1.7.0/fused-src/gtest)
++#add_subdirectory(third-party/gtest-1.7.0/fused-src/gtest)
+
+ # Main library source code
+
+--
+2.16.2.windows.1
+
diff --git a/ports/rocksdb/0003-only-build-one-flavor.patch b/ports/rocksdb/0003-only-build-one-flavor.patch
new file mode 100644
index 000000000..d9b4cf6e5
--- /dev/null
+++ b/ports/rocksdb/0003-only-build-one-flavor.patch
@@ -0,0 +1,48 @@
+From f77366e2bf8c136990b89ab235af8e0cf0e566f4 Mon Sep 17 00:00:00 2001
+From: Robert Schumacher <roschuma@microsoft.com>
+Date: Fri, 23 Feb 2018 01:45:18 -0800
+Subject: [PATCH 3/3] only build one flavor
+
+---
+ CMakeLists.txt | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index faffc91..89dc537 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -723,6 +723,7 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
+
+ install(DIRECTORY include/rocksdb COMPONENT devel DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
+
++ if(NOT ROCKSDB_DISABLE_INSTALL_STATIC_LIB)
+ install(
+ TARGETS ${ROCKSDB_STATIC_LIB}
+ EXPORT RocksDBTargets
+@@ -730,15 +731,23 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
+ )
++ else()
++ set_target_properties(${ROCKSDB_STATIC_LIB} PROPERTIES EXCLUDE_FROM_ALL TRUE)
++ endif()
+
++ if(NOT ROCKSDB_DISABLE_INSTALL_SHARED_LIB)
+ install(
+ TARGETS ${ROCKSDB_SHARED_LIB}
+ EXPORT RocksDBTargets
+ COMPONENT runtime
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
+ )
++ else()
++ set_target_properties(${ROCKSDB_SHARED_LIB} PROPERTIES EXCLUDE_FROM_ALL TRUE)
++ endif()
+
+ install(
+ EXPORT RocksDBTargets
+--
+2.16.2.windows.1
+
diff --git a/ports/rocksdb/0004-zlib-findpackage.patch b/ports/rocksdb/0004-zlib-findpackage.patch
new file mode 100644
index 000000000..25182760d
--- /dev/null
+++ b/ports/rocksdb/0004-zlib-findpackage.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fb3b126..45ca7b6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -86,7 +86,7 @@ else()
+ endif()
+
+ if(WITH_ZLIB)
+- find_package(zlib REQUIRED)
++ find_package(ZLIB REQUIRED)
+ add_definitions(-DZLIB)
+ include_directories(${ZLIB_INCLUDE_DIR})
+ list(APPEND THIRDPARTY_LIBS ${ZLIB_LIBRARIES})
diff --git a/ports/rocksdb/CONTROL b/ports/rocksdb/CONTROL
new file mode 100644
index 000000000..a2747e3f5
--- /dev/null
+++ b/ports/rocksdb/CONTROL
@@ -0,0 +1,16 @@
+Source: rocksdb
+Version: 5.13.1
+Description: A library that provides an embeddable, persistent key-value store for fast storage
+Default-Features: zlib
+
+Feature: lz4
+Build-Depends: lz4
+Description: lz4 support in rocksdb
+
+Feature: snappy
+Build-Depends: snappy
+Description: snappy support in rocksdb
+
+Feature: zlib
+Build-Depends: zlib
+Description: zlib support in rocksdb
diff --git a/ports/rocksdb/Findlz4.cmake b/ports/rocksdb/Findlz4.cmake
new file mode 100644
index 000000000..f80962c66
--- /dev/null
+++ b/ports/rocksdb/Findlz4.cmake
@@ -0,0 +1,13 @@
+find_path(LZ4_INCLUDE_DIR lz4.h)
+
+find_library(LZ4_LIBRARY_DEBUG NAMES lz4d)
+find_library(LZ4_LIBRARY_RELEASE NAMES lz4)
+
+include(SelectLibraryConfigurations)
+select_library_configurations(LZ4)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(
+ LZ4 DEFAULT_MSG
+ LZ4_LIBRARY LZ4_INCLUDE_DIR
+)
diff --git a/ports/rocksdb/Findsnappy.cmake b/ports/rocksdb/Findsnappy.cmake
new file mode 100644
index 000000000..253d0d84c
--- /dev/null
+++ b/ports/rocksdb/Findsnappy.cmake
@@ -0,0 +1,13 @@
+find_path(SNAPPY_INCLUDE_DIR snappy.h)
+
+find_library(SNAPPY_LIBRARY_DEBUG NAMES snappyd)
+find_library(SNAPPY_LIBRARY_RELEASE NAMES snappy)
+
+include(SelectLibraryConfigurations)
+select_library_configurations(SNAPPY)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(
+ SNAPPY DEFAULT_MSG
+ SNAPPY_LIBRARY SNAPPY_INCLUDE_DIR
+)
diff --git a/ports/rocksdb/pass-major-version.patch b/ports/rocksdb/pass-major-version.patch
new file mode 100644
index 000000000..1cc3f2d13
--- /dev/null
+++ b/ports/rocksdb/pass-major-version.patch
@@ -0,0 +1,20 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d6bfbf2..ea6a884 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -132,6 +132,7 @@ endif()
+
+ string(REGEX REPLACE "[^0-9a-f]+" "" GIT_SHA "${GIT_SHA}")
+
++if(NOT DEFINED ROCKSDB_VERSION OR NOT DEFINED ROCKSDB_VERSION_MAJOR)
+ set(SH_CMD "sh")
+ execute_process(COMMAND
+ ${SH_CMD} -c "build_tools/version.sh full"
+@@ -145,6 +146,7 @@ execute_process(COMMAND
+ OUTPUT_VARIABLE ROCKSDB_VERSION_MAJOR
+ )
+ string(STRIP "${ROCKSDB_VERSION_MAJOR}" ROCKSDB_VERSION_MAJOR)
++endif()
+
+ option(WITH_MD_LIBRARY "build with MD" ON)
+ if(WIN32 AND MSVC)
diff --git a/ports/rocksdb/portfile.cmake b/ports/rocksdb/portfile.cmake
new file mode 100644
index 000000000..1e2720b51
--- /dev/null
+++ b/ports/rocksdb/portfile.cmake
@@ -0,0 +1,89 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO facebook/rocksdb
+ REF v5.13.1
+ SHA512 70942aecb4decbe79a92cf3122c4d5d3232572084e2b018a911ce7149783c8047dbd338911644b7f3b6fc795fdd5f2971f75a8c5e4502f0765d6de0045bc970c
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/0002-disable-gtest.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/0003-only-build-one-flavor.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/0004-zlib-findpackage.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/use-find-package.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/pass-major-version.patch"
+)
+
+file(REMOVE "${SOURCE_PATH}/cmake/modules/Findzlib.cmake")
+file(COPY
+ "${CMAKE_CURRENT_LIST_DIR}/Findlz4.cmake"
+ "${CMAKE_CURRENT_LIST_DIR}/Findsnappy.cmake"
+ DESTINATION "${SOURCE_PATH}/cmake/modules"
+)
+
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ set(WITH_MD_LIBRARY OFF)
+else()
+ set(WITH_MD_LIBRARY ON)
+endif()
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ROCKSDB_DISABLE_INSTALL_SHARED_LIB)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ROCKSDB_DISABLE_INSTALL_STATIC_LIB)
+
+set(WITH_LZ4 OFF)
+if("lz4" IN_LIST FEATURES)
+ set(WITH_LZ4 ON)
+endif()
+
+set(WITH_SNAPPY OFF)
+if("snappy" IN_LIST FEATURES)
+ set(WITH_SNAPPY ON)
+endif()
+
+set(WITH_ZLIB OFF)
+if("zlib" IN_LIST FEATURES)
+ set(WITH_ZLIB ON)
+endif()
+
+get_filename_component(ROCKSDB_VERSION "${SOURCE_PATH}" NAME)
+string(REPLACE "rocksdb-" "" ROCKSDB_VERSION "${ROCKSDB_VERSION}")
+string(REGEX REPLACE "^([0-9]+)." "\\1" ROCKSDB_MAJOR_VERSION "${ROCKSDB_VERSION}")
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DWITH_GFLAGS=0
+ -DWITH_SNAPPY=${WITH_SNAPPY}
+ -DWITH_LZ4=${WITH_LZ4}
+ -DWITH_ZLIB=${WITH_ZLIB}
+ -DWITH_TESTS=OFF
+ -DROCKSDB_INSTALL_ON_WINDOWS=ON
+ -DFAIL_ON_WARNINGS=OFF
+ -DWITH_MD_LIBRARY=${WITH_MD_LIBRARY}
+ -DPORTABLE=ON
+ -DCMAKE_DEBUG_POSTFIX=d
+ -DROCKSDB_DISABLE_INSTALL_SHARED_LIB=${ROCKSDB_DISABLE_INSTALL_SHARED_LIB}
+ -DROCKSDB_DISABLE_INSTALL_STATIC_LIB=${ROCKSDB_DISABLE_INSTALL_STATIC_LIB}
+ -DROCKSDB_VERSION=${ROCKSDB_VERSION}
+ -DROCKSDB_VERSION_MAJOR=${ROCKSDB_MAJOR_VERSION}
+ -DCMAKE_DISABLE_FIND_PACKAGE_TBB=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_NUMA=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_gtest=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/rocksdb)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE.Apache DESTINATION ${CURRENT_PACKAGES_DIR}/share/rocksdb RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/LICENSE.leveldb DESTINATION ${CURRENT_PACKAGES_DIR}/share/rocksdb)
+
+vcpkg_copy_pdbs()
diff --git a/ports/rocksdb/use-find-package.patch b/ports/rocksdb/use-find-package.patch
new file mode 100644
index 000000000..1a79c2286
--- /dev/null
+++ b/ports/rocksdb/use-find-package.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f3ac9ce..931e9f2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -45,7 +45,7 @@ option(WITH_JEMALLOC "build with JeMalloc" OFF)
+ option(WITH_SNAPPY "build with SNAPPY" OFF)
+ option(WITH_LZ4 "build with lz4" OFF)
+ option(WITH_ZLIB "build with zlib" OFF)
+-if(MSVC)
++if(MSVC AND NOT VCPKG_TOOLCHAIN)
+ # Defaults currently different for GFLAGS.
+ # We will address find_package work a little later
+ option(WITH_GFLAGS "build with GFlags" OFF)
diff --git a/ports/rpclib/CONTROL b/ports/rpclib/CONTROL
new file mode 100644
index 000000000..160f4651c
--- /dev/null
+++ b/ports/rpclib/CONTROL
@@ -0,0 +1,3 @@
+Source: rpclib
+Version: 2.2.0
+Description: a RPC library for C++, providing both a client and server implementation. It is built using modern C++14.
diff --git a/ports/rpclib/portfile.cmake b/ports/rpclib/portfile.cmake
new file mode 100644
index 000000000..5f4ac6a57
--- /dev/null
+++ b/ports/rpclib/portfile.cmake
@@ -0,0 +1,30 @@
+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 rpclib/rpclib
+ REF v2.2.0
+ SHA512 73d2344debb3a6ced6a045ba3bf8839a6f91d8f43dfac8760c65d19d1fc7960e778457a20fddbd771d7dd4b12e32d8a925f1fc008d11ccc5654dbeb08ba0f50a
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/rpclib)
+
+vcpkg_copy_pdbs()
+
+file(COPY ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/rpclib)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/rpclib/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/rpclib/copyright)
diff --git a/ports/rs-core-lib/CONTROL b/ports/rs-core-lib/CONTROL
new file mode 100644
index 000000000..c20b05efb
--- /dev/null
+++ b/ports/rs-core-lib/CONTROL
@@ -0,0 +1,4 @@
+Source: rs-core-lib
+Version: 2018-05-17
+Description: Minimal common utilities by Ross Smith
+
diff --git a/ports/rs-core-lib/portfile.cmake b/ports/rs-core-lib/portfile.cmake
new file mode 100644
index 000000000..0fc091504
--- /dev/null
+++ b/ports/rs-core-lib/portfile.cmake
@@ -0,0 +1,14 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO CaptainCrowbar/rs-core-lib
+ REF eb5c851f4e82d31692d7c45225b41fdc374134aa
+ SHA512 e1a3a8cd16f069c8c58858dfe516df0aa2dd07f4e415a2ef7539104024910383217f75c16481347ef0a92a17faad98aa051320ec9e4693426ad9cd297983d923
+ HEAD_REF master
+)
+
+file(INSTALL ${SOURCE_PATH}/rs-core DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN "*.hpp")
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/rs-core-lib RENAME copyright) \ No newline at end of file
diff --git a/ports/rtmidi/CMakeLists.txt b/ports/rtmidi/CMakeLists.txt
new file mode 100644
index 000000000..91782fd18
--- /dev/null
+++ b/ports/rtmidi/CMakeLists.txt
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.8)
+project(rtmidi CXX)
+
+add_library(rtmidi RtMidi.cpp rtmidi_c.cpp)
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(rtmidi PRIVATE -DRTMIDI_EXPORT)
+endif()
+
+file(READ "${PROJECT_SOURCE_DIR}/rtmidi_c.h" RTMIDI_EXPORT)
+if (BUILD_SHARED_LIBS)
+ string(REPLACE "if defined(RTMIDI_EXPORT)" "if 1" RTMIDI_EXPORT "${RTMIDI_EXPORT}")
+else()
+ string(REPLACE "if defined(RTMIDI_EXPORT)" "if 0" RTMIDI_EXPORT "${RTMIDI_EXPORT}")
+endif()
+file(WRITE "${PROJECT_BINARY_DIR}/rtmidi_c.h" "${RTMIDI_EXPORT}")
+
+install(
+ TARGETS rtmidi
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES "RtMidi.h" DESTINATION include)
+ install(FILES "${PROJECT_BINARY_DIR}/rtmidi_c.h" DESTINATION include)
+endif()
diff --git a/ports/rtmidi/CONTROL b/ports/rtmidi/CONTROL
new file mode 100644
index 000000000..9eaad9735
--- /dev/null
+++ b/ports/rtmidi/CONTROL
@@ -0,0 +1,3 @@
+Source: rtmidi
+Version: 2.1.1-2
+Description: A set of C++ classes that provide a common API for realtime MIDI input/output across Linux (ALSA & JACK), Macintosh OS X (CoreMidi & JACK) and Windows (Multimedia)
diff --git a/ports/rtmidi/portfile.cmake b/ports/rtmidi/portfile.cmake
new file mode 100644
index 000000000..cee6e1a73
--- /dev/null
+++ b/ports/rtmidi/portfile.cmake
@@ -0,0 +1,20 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO thestk/rtmidi
+ REF 2.1.1
+ SHA512 4d378720dd0f7c0e1a87741c088756839878ed56465b053040f70a1e039828fe221a6b1669b77b2fdd146cb192934c5719cc934c2c6a6304f44dbee2972c68e8
+ HEAD_REF master
+)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/readme DESTINATION ${CURRENT_PACKAGES_DIR}/share/rtmidi RENAME copyright)
diff --git a/ports/rttr/CONTROL b/ports/rttr/CONTROL
new file mode 100644
index 000000000..80cff00bd
--- /dev/null
+++ b/ports/rttr/CONTROL
@@ -0,0 +1,3 @@
+Source: rttr
+Version: 0.9.5-2
+Description: an easy and intuitive way to use reflection in C++
diff --git a/ports/rttr/disable-unit-tests.patch b/ports/rttr/disable-unit-tests.patch
new file mode 100644
index 000000000..b27f01661
--- /dev/null
+++ b/ports/rttr/disable-unit-tests.patch
@@ -0,0 +1,14 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index b9fd698..bcaebfe 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -31,7 +31,9 @@
+ #############################################
+
+ add_subdirectory (rttr)
++if(UNIT_TESTS)
+ add_subdirectory (unit_tests)
++endif()
+
+ if (${BUILD_BENCHMARKS})
+ add_subdirectory (benchmarks)
diff --git a/ports/rttr/fix-directory-output.patch b/ports/rttr/fix-directory-output.patch
new file mode 100644
index 000000000..b83fc455c
--- /dev/null
+++ b/ports/rttr/fix-directory-output.patch
@@ -0,0 +1,10 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d64ee41..e33e7bf 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -76,4 +76,4 @@ add_subdirectory(src)
+ add_subdirectory(doc)
+
+ # here we specify the installation directory
+-set(CMAKE_INSTALL_PREFIX ${RTTR_INSTALL_DIR} CACHE PATH "RTTR install prefix" FORCE)
++set(CMAKE_INSTALL_PREFIX ${RTTR_INSTALL_DIR} CACHE PATH "RTTR install prefix")
diff --git a/ports/rttr/portfile.cmake b/ports/rttr/portfile.cmake
new file mode 100644
index 000000000..bfb1d23ad
--- /dev/null
+++ b/ports/rttr/portfile.cmake
@@ -0,0 +1,55 @@
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message("Rttr only supports dynamic library linkage")
+ set(VCPKG_LIBRARY_LINKAGE "dynamic")
+endif()
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "Rttr only supports dynamic library linkage, so cannot be built with static CRT")
+endif()
+
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO rttrorg/rttr
+ REF v0.9.5
+ SHA512 b451f24fd4bdc4b7d9ecabdb6fd261744852e68357ec36573109354a25f2bf494908b9d4174602b59dd5005c42ba8edc3b35ec1d1386384db421805ac9994608
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ "${CMAKE_CURRENT_LIST_DIR}/fix-directory-output.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/disable-unit-tests.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/remove-owner-read-perms.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake)
+
+file(GLOB REL_EXES ${CURRENT_PACKAGES_DIR}/bin/*.exe)
+file(GLOB DBG_EXES ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+if(REL_EXES)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/rttr)
+ file(COPY ${REL_EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/rttr)
+endif()
+file(REMOVE ${REL_EXES} ${DBG_EXES})
+
+#Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/rttr)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/rttr/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/rttr/copyright)
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/include
+ ${CURRENT_PACKAGES_DIR}/debug/share
+ ${CURRENT_PACKAGES_DIR}/debug/README.md
+ ${CURRENT_PACKAGES_DIR}/debug/LICENSE.txt
+ ${CURRENT_PACKAGES_DIR}/LICENSE.txt
+ ${CURRENT_PACKAGES_DIR}/README.md
+)
+
+
diff --git a/ports/rttr/remove-owner-read-perms.patch b/ports/rttr/remove-owner-read-perms.patch
new file mode 100644
index 000000000..918de14cc
--- /dev/null
+++ b/ports/rttr/remove-owner-read-perms.patch
@@ -0,0 +1,41 @@
+diff --git a/CMake/config.cmake b/CMake/config.cmake
+index 1d753b3..393e3d0 100644
+--- a/CMake/config.cmake
++++ b/CMake/config.cmake
+@@ -131,4 +131,4 @@ install(
+
+ install(FILES "${LICENSE_FILE}" "${README_FILE}"
+ DESTINATION "."
+- PERMISSIONS OWNER_READ)
++ )
+diff --git a/CMake/utility.cmake b/CMake/utility.cmake
+index 9dbc172..c37671e 100644
+--- a/CMake/utility.cmake
++++ b/CMake/utility.cmake
+@@ -165,7 +165,7 @@ function(loadFolder FOLDER _HEADER_FILES _SOURCE_FILES)
+ # we don't want to install header files which are marked as private
+ if (${shouldInstall})
+ if (NOT ${FULL_HEADER_PATH} MATCHES ".*_p.h$")
+- install(FILES ${FULL_HEADER_PATH} DESTINATION "include/${DIRNAME}/${REL_PATH}" PERMISSIONS OWNER_READ)
++ install(FILES ${FULL_HEADER_PATH} DESTINATION "include/${DIRNAME}/${REL_PATH}")
+ endif()
+ endif()
+ endforeach()
+diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
+index ec10eaf..454c41e 100644
+--- a/doc/CMakeLists.txt
++++ b/doc/CMakeLists.txt
+@@ -127,11 +127,11 @@ add_custom_target(doc ALL
+ install(DIRECTORY "${DOXYGEN_OUTPUT_DIRECTORY}/${DOXYGEN_CUSTOM_HTML_DIR}"
+ DESTINATION "${DOXYGEN_DOC_INSTALL_DIR}"
+ PATTERN "*.*"
+- PERMISSIONS OWNER_READ)
++ )
+
+ install(FILES "${DOXYGEN_OUTPUT_DIRECTORY}/${DOXYGEN_INDEX_FILE}"
+ DESTINATION "${DOXYGEN_DOC_INSTALL_DIR}"
+- PERMISSIONS OWNER_READ)
++ )
+
+ #########################################################################################
+
diff --git a/ports/scintilla/CONTROL b/ports/scintilla/CONTROL
new file mode 100644
index 000000000..7cf89dfd2
--- /dev/null
+++ b/ports/scintilla/CONTROL
@@ -0,0 +1,3 @@
+Source: scintilla
+Version: 4.0.3
+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..ecf554abd
--- /dev/null
+++ b/ports/scintilla/portfile.cmake
@@ -0,0 +1,55 @@
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "scintilla only supports dynamic linkage")
+endif()
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "scintilla only supports dynamic crt")
+endif()
+
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/scintilla)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.scintilla.org/scintilla403.zip"
+ FILENAME "scintilla403.zip"
+ SHA512 51704651e99a6b51afff9957676afcf71fa1cc289c1713402c6e50c44a12ec956d5216751ebbbe6f251a23fa8c974510e7c9f37cb66f25f69c30e500e426baad
+)
+file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+vcpkg_extract_source_archive(${ARCHIVE} ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+
+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()
+
+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)
+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 62cc3309d..9bce21511 100644
--- a/ports/sciter/CONTROL
+++ b/ports/sciter/CONTROL
@@ -1,4 +1,4 @@
Source: sciter
-Version: 4.0.0.9-2
+Version: 4.1.8
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 5c7c7c5c6..b2f0f8f37 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.0.9)
-set(SCITER_REVISION 43565156c373f9635cc491551b870a948d4d6f37)
-set(SCITER_SHA 6c50822c46784a8b2114973dffa8ec4041c69f84303507fdcde425dbac8d698dd6241a209cdc0ae0663751ed0f78d92f7b0c26794417f374978bfb3e33bf004c)
+set(SCITER_REVISION e7f7663ad85ec41223c4888e679df72e1d7c4835)
+set(SCITER_SHA d76cd7e59d0768fa3ab61c04d1a73c0ea893ad420f672aa974e8038c6e2ca713cae625e3c0ea5d866ee229408bd5707deb5226ee4d7b93a270866c8a79de64ec)
if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64)
set(SCITER_ARCH 64)
@@ -22,7 +21,9 @@ 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
@@ -39,15 +40,15 @@ vcpkg_apply_patches(
# install include directory
file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/sciter
FILES_MATCHING
- PATTERN "sciter-gtk-main.cpp" EXCLUDE
- PATTERN "sciter-osx-main.mm" EXCLUDE
PATTERN "*.cpp"
+ PATTERN "*.mm"
PATTERN "*.h"
PATTERN "*.hpp"
)
set(SCITER_SHARE ${CURRENT_PACKAGES_DIR}/share/sciter)
set(SCITER_TOOLS ${CURRENT_PACKAGES_DIR}/tools/sciter)
+set(TOOL_PERMS FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
# license
file(COPY ${SOURCE_PATH}/logfile.htm DESTINATION ${SCITER_SHARE})
@@ -59,16 +60,42 @@ file(COPY ${SOURCE_PATH}/samples DESTINATION ${SCITER_SHARE})
file(COPY ${SOURCE_PATH}/widgets DESTINATION ${SCITER_SHARE})
# tools
-file(INSTALL ${SOURCE_PATH}/bin/packfolder.exe DESTINATION ${SCITER_TOOLS})
-file(INSTALL ${SOURCE_PATH}/bin/tiscript.exe DESTINATION ${SCITER_TOOLS})
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL Linux AND VCPKG_TARGET_ARCHITECTURE STREQUAL x64)
+ set(SCITER_BIN ${SOURCE_PATH}/bin.gtk/x64)
+
+ file(INSTALL ${SCITER_BIN}/packfolder DESTINATION ${SCITER_TOOLS} ${TOOL_PERMS})
+ file(INSTALL ${SCITER_BIN}/usciter DESTINATION ${SCITER_TOOLS} ${TOOL_PERMS})
+ file(INSTALL ${SCITER_BIN}/inspector DESTINATION ${SCITER_TOOLS} ${TOOL_PERMS})
+ file(INSTALL ${SCITER_BIN}/libsciter-gtk.so DESTINATION ${SCITER_TOOLS})
+
+ file(INSTALL ${SCITER_BIN}/libsciter-gtk.so DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(INSTALL ${SCITER_BIN}/libsciter-gtk.so DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+
+elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL Darwin)
+ set(SCITER_BIN ${SOURCE_PATH}/bin.osx)
+
+ file(INSTALL ${SCITER_BIN}/packfolder DESTINATION ${SCITER_TOOLS} ${TOOL_PERMS})
+ file(INSTALL ${SCITER_BIN}/inspector.app DESTINATION ${SCITER_TOOLS})
+ file(INSTALL ${SCITER_BIN}/sciter.app DESTINATION ${SCITER_TOOLS})
+ file(INSTALL ${SCITER_BIN}/sciter-osx-64.dylib DESTINATION ${SCITER_TOOLS})
-file(INSTALL ${SOURCE_PATH}/bin/${SCITER_ARCH}/sciter.exe DESTINATION ${SCITER_TOOLS})
-file(INSTALL ${SOURCE_PATH}/bin/${SCITER_ARCH}/inspector.exe DESTINATION ${SCITER_TOOLS})
-file(INSTALL ${SOURCE_PATH}/bin/${SCITER_ARCH}/sciter.dll DESTINATION ${SCITER_TOOLS})
+ file(INSTALL ${SCITER_BIN}/sciter-osx-64.dylib DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(INSTALL ${SCITER_BIN}/sciter-osx-64.dylib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
-file(INSTALL ${SOURCE_PATH}/bin/${SCITER_ARCH}/sciter.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
-file(INSTALL ${SOURCE_PATH}/bin/${SCITER_ARCH}/sciter.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
-file(INSTALL ${SOURCE_PATH}/bin/${SCITER_ARCH}/tiscript-sqlite.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
-file(INSTALL ${SOURCE_PATH}/bin/${SCITER_ARCH}/tiscript-sqlite.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+else()
+ set(SCITER_BIN ${SOURCE_PATH}/bin/${SCITER_ARCH})
+
+ file(INSTALL ${SOURCE_PATH}/bin/packfolder.exe DESTINATION ${SCITER_TOOLS})
+ file(INSTALL ${SOURCE_PATH}/bin/tiscript.exe DESTINATION ${SCITER_TOOLS})
+
+ file(INSTALL ${SCITER_BIN}/sciter.exe DESTINATION ${SCITER_TOOLS})
+ file(INSTALL ${SCITER_BIN}/inspector.exe DESTINATION ${SCITER_TOOLS})
+ file(INSTALL ${SCITER_BIN}/sciter.dll DESTINATION ${SCITER_TOOLS})
+
+ file(INSTALL ${SCITER_BIN}/sciter.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(INSTALL ${SCITER_BIN}/sciter.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(INSTALL ${SCITER_BIN}/tiscript-sqlite.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(INSTALL ${SCITER_BIN}/tiscript-sqlite.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
message(STATUS "Warning: Sciter requires manual deployment of the correct DLL files.")
diff --git a/ports/sdl2-gfx/CMakeLists.txt b/ports/sdl2-gfx/CMakeLists.txt
new file mode 100644
index 000000000..6a0ecf24e
--- /dev/null
+++ b/ports/sdl2-gfx/CMakeLists.txt
@@ -0,0 +1,30 @@
+cmake_minimum_required(VERSION 3.0)
+project(SDL2_GFX C)
+
+find_path(SDL_INCLUDE_DIR SDL2/SDL.h)
+find_library(SDL_LIBRARY NAMES SDL2d SDL2)
+
+# builtin formats
+set(SDL_GFX_DEFINES WIN32)
+if(BUILD_SHARED_LIBS)
+ list(APPEND SDL_GFX_DEFINES DLL_EXPORT)
+endif()
+
+add_library(SDL2_gfx
+ SDL2_framerate.c
+ SDL2_gfxPrimitives.c
+ SDL2_imageFilter.c
+ SDL2_rotozoom.c)
+
+target_compile_definitions(SDL2_gfx PRIVATE ${SDL_GFX_DEFINES})
+target_include_directories(SDL2_gfx PRIVATE ${SDL_INCLUDE_DIR}/SDL2)
+target_link_libraries(SDL2_gfx PRIVATE ${SDL_LIBRARY})
+
+install(TARGETS SDL2_gfx
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib)
+
+if(NOT SDL_GFX_SKIP_HEADERS)
+ install(FILES SDL2_framerate.h SDL2_gfxPrimitives.h SDL2_imageFilter.h SDL2_rotozoom.h SDL2_gfxPrimitives_font.h DESTINATION include/SDL2)
+endif()
diff --git a/ports/sdl2-gfx/CONTROL b/ports/sdl2-gfx/CONTROL
new file mode 100644
index 000000000..a06c8abcb
--- /dev/null
+++ b/ports/sdl2-gfx/CONTROL
@@ -0,0 +1,4 @@
+Source: sdl2-gfx
+Version: 1.0.3-3
+Build-Depends: sdl2
+Description: Graphics primitives (line, circle, rectangle etc.) with AA support, rotozoomer and other drawing related support functions wrapped up in a C based add-on library for the Simple Direct Media (SDL) cross-platform API layer.
diff --git a/ports/sdl2-gfx/portfile.cmake b/ports/sdl2-gfx/portfile.cmake
new file mode 100644
index 000000000..f7c2d63f6
--- /dev/null
+++ b/ports/sdl2-gfx/portfile.cmake
@@ -0,0 +1,22 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SDL2_gfx-1.0.3)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-1.0.3.zip"
+ FILENAME "SDL2_gfx-1.0.3.zip"
+ SHA512 f68485f71acf979aba68f3575f260fbc95a59496a9639498bcff80ffbfdb157c82a44bb5a0b0e3b1e157376ea4ff2f196f50466e6f24d850f94cfe7c24b1a497
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS_DEBUG -DSDL_GFX_SKIP_HEADERS=1
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/sdl2-gfx)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/sdl2-gfx/COPYING ${CURRENT_PACKAGES_DIR}/share/sdl2-gfx/copyright)
+
+vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/sdl2-image/CMakeLists.txt b/ports/sdl2-image/CMakeLists.txt
index e742a408d..0df7e7d36 100644
--- a/ports/sdl2-image/CMakeLists.txt
+++ b/ports/sdl2-image/CMakeLists.txt
@@ -1,11 +1,11 @@
cmake_minimum_required(VERSION 2.6)
-project(SDL2_image)
+project(SDL2_image C)
### configuration ###
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
# enable all file formats which are supported natively
-set(SUPPORTED_FORMATS BMP GIF LBM PCX PNM TGA XPM XCF XV)
+set(SUPPORTED_FORMATS BMP GIF LBM PCX PNM TGA XPM XCF XV SVG)
# enable all file formats which are supported through external dependencies
# first try to load them statically (lib file in vcpkg installation)
@@ -27,29 +27,33 @@ set(WEBP_DYNAMIC \"libwebp-4.dll\")
add_library(SDL2_image
IMG.c
- IMG_bmp.c
- IMG_gif.c
- IMG_jpg.c
- IMG_lbm.c
- IMG_pcx.c
- IMG_png.c
- IMG_pnm.c
- IMG_tga.c
- IMG_tif.c
- IMG_webp.c
- IMG_xcf.c
- IMG_xpm.c
- IMG_xv.c
- IMG_xxx.c
- )
+ IMG_bmp.c
+ IMG_gif.c
+ IMG_jpg.c
+ IMG_lbm.c
+ IMG_pcx.c
+ IMG_png.c
+ IMG_pnm.c
+ IMG_svg.c
+ IMG_tga.c
+ IMG_tif.c
+ IMG_webp.c
+ IMG_xcf.c
+ IMG_xpm.c
+ IMG_xv.c
+ IMG_xxx.c
+ version.rc
+ )
+
+set_target_properties(SDL2_image PROPERTIES DEFINE_SYMBOL SDL2_EXPORTS)
foreach(FORMAT ${SUPPORTED_FORMATS})
- add_definitions(-DLOAD_${FORMAT})
+ add_definitions(-DLOAD_${FORMAT})
endforeach(FORMAT)
# SDL
find_path(SDL_INCLUDE_DIR SDL2/SDL.h)
-find_library(SDL_LIBRARY SDL2)
+find_library(SDL_LIBRARY NAMES SDL2d SDL2)
include_directories(${SDL_INCLUDE_DIR})
include_directories(${SDL_INCLUDE_DIR}/SDL2)
@@ -59,27 +63,27 @@ target_link_libraries(SDL2_image ${SDL_LIBRARY})
# external dependencies
foreach(DEPENDENCY ${DEPENDENCIES})
- find_package(${DEPENDENCY})
-
- if(NOT DEFINED ${DEPENDENCY}_FLAG)
- set(${DEPENDENCY}_FLAG ${DEPENDENCY})
- endif()
-
- add_definitions(-DLOAD_${${DEPENDENCY}_FLAG})
- if(${DEPENDENCY}_FOUND)
- message(STATUS " --> linking statically.")
- target_link_libraries(SDL2_image ${${DEPENDENCY}_LIBRARIES})
- elseif(DEFINED ${DEPENDENCY}_DYNAMIC)
- message(STATUS " --> linking dynamically.")
- add_definitions(-DLOAD_${${DEPENDENCY}_FLAG}_DYNAMIC=${${DEPENDENCY}_DYNAMIC})
- set(RUNTIME_DEPENDENCIES ON)
- else()
- message(STATUS " --> skipping.")
- endif()
+ find_package(${DEPENDENCY})
+
+ if(NOT DEFINED ${DEPENDENCY}_FLAG)
+ set(${DEPENDENCY}_FLAG ${DEPENDENCY})
+ endif()
+
+ add_definitions(-DLOAD_${${DEPENDENCY}_FLAG})
+ if(${DEPENDENCY}_FOUND)
+ message(STATUS " --> linking statically.")
+ target_link_libraries(SDL2_image ${${DEPENDENCY}_LIBRARIES})
+ elseif(DEFINED ${DEPENDENCY}_DYNAMIC)
+ message(STATUS " --> linking dynamically.")
+ add_definitions(-DLOAD_${${DEPENDENCY}_FLAG}_DYNAMIC=${${DEPENDENCY}_DYNAMIC})
+ set(RUNTIME_DEPENDENCIES ON)
+ else()
+ message(STATUS " --> skipping.")
+ endif()
endforeach(DEPENDENCY)
if(DEFINED RUNTIME_DEPENDENCIES)
- include_directories(VisualC/external/include)
+ include_directories(VisualC/external/include)
endif()
@@ -94,16 +98,16 @@ install(FILES SDL_image.h DESTINATION include/SDL2 CONFIGURATIONS Release)
message(STATUS "Link-time dependencies:")
message(STATUS " " ${SDL_LIBRARY})
foreach(DEPENDENCY ${DEPENDENCIES})
- if(${DEPENDENCY}_FOUND)
- message(STATUS " " ${DEPENDENCY})
- endif()
+ if(${DEPENDENCY}_FOUND)
+ message(STATUS " " ${DEPENDENCY})
+ endif()
endforeach(DEPENDENCY)
if(DEFINED RUNTIME_DEPENDENCIES)
- message(STATUS "Run-time dependencies:")
- foreach(DEPENDENCY ${DEPENDENCIES})
- if(NOT ${DEPENDENCY}_FOUND AND DEFINED ${DEPENDENCY}_DYNAMIC)
- message(STATUS " " ${${DEPENDENCY}_DYNAMIC})
- endif()
- endforeach(DEPENDENCY)
-endif() \ No newline at end of file
+ message(STATUS "Run-time dependencies:")
+ foreach(DEPENDENCY ${DEPENDENCIES})
+ if(NOT ${DEPENDENCY}_FOUND AND DEFINED ${DEPENDENCY}_DYNAMIC)
+ message(STATUS " " ${${DEPENDENCY}_DYNAMIC})
+ endif()
+ endforeach(DEPENDENCY)
+endif()
diff --git a/ports/sdl2-image/CONTROL b/ports/sdl2-image/CONTROL
index 04c9f77bb..f9d5e14ed 100644
--- a/ports/sdl2-image/CONTROL
+++ b/ports/sdl2-image/CONTROL
@@ -1,5 +1,5 @@
Source: sdl2-image
-Version: 2.0.1
+Version: 2.0.2-1
Build-Depends: sdl2, libpng, libjpeg-turbo, tiff, libwebp
Description: SDL_image is an image file loading library. It loads images as SDL surfaces and textures, and supports the following formats: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF, WEBP, XCF, XPM, XV
diff --git a/ports/sdl2-image/correct-sdl-headers-dir.patch b/ports/sdl2-image/correct-sdl-headers-dir.patch
deleted file mode 100644
index 4addc155d..000000000
--- a/ports/sdl2-image/correct-sdl-headers-dir.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git "a/SDL_image.h" "b/SDL_image.h"
-index f654483..1bd4f62 100644
---- "a/SDL_image.h"
-+++ "b/SDL_image.h"
-@@ -24,9 +24,9 @@
- #ifndef _SDL_IMAGE_H
- #define _SDL_IMAGE_H
-
--#include "SDL.h"
--#include "SDL_version.h"
--#include "begin_code.h"
-+#include <SDL2/SDL.h>
-+#include <SDL2/SDL_version.h>
-+#include <SDL2/begin_code.h>
-
- /* Set up for C function definitions, even when using C++ */
- #ifdef __cplusplus
-@@ -140,6 +140,6 @@ extern DECLSPEC int SDLCALL IMG_SavePNG_RW(SDL_Surface *surface, SDL_RWops *dst,
- #ifdef __cplusplus
- }
- #endif
--#include "close_code.h"
-+#include <SDL2/close_code.h>
-
- #endif /* _SDL_IMAGE_H */
diff --git a/ports/sdl2-image/portfile.cmake b/ports/sdl2-image/portfile.cmake
index 4cc6ce74a..10567a131 100644
--- a/ports/sdl2-image/portfile.cmake
+++ b/ports/sdl2-image/portfile.cmake
@@ -7,24 +7,21 @@
#
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SDL2_image-2.0.1)
+set(SDL2_IMAGE_VERSION "2.0.2")
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SDL2_image-${SDL2_IMAGE_VERSION})
vcpkg_download_distfile(ARCHIVE
- URLS "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.1.zip"
- FILENAME "SDL2_image-2.0.1.zip"
- SHA512 37d12f4fae71c586bec73262bddb9207ab2f9a2ca6001d2cbfde646e268a950ba5cd4cff53d75e2da8959ae6da6e9cadc6eca88fa7bd9aa2758395d64c84a307
+ URLS "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-${SDL2_IMAGE_VERSION}.zip"
+ FILENAME "SDL2_image-${SDL2_IMAGE_VERSION}.zip"
+ SHA512 bf143bdbd3cb7cfad61b8dcc35950584304deac802bad6c0c8144e914401a5ddef01f674d2dc1214371d0f371f76e87a45873e2655947e8e1da83fb44d8285f4
)
vcpkg_extract_source_archive(${ARCHIVE})
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/correct-sdl-headers-dir.patch)
-
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindWEBP.cmake DESTINATION ${SOURCE_PATH}/cmake)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
# OPTIONS
# OPTIONS_RELEASE -DOPTIMIZE=1
# OPTIONS_DEBUG -DDEBUGGABLE=1
diff --git a/ports/sdl2-mixer/CMakeLists.txt b/ports/sdl2-mixer/CMakeLists.txt
index 094912b48..6992521b1 100644
--- a/ports/sdl2-mixer/CMakeLists.txt
+++ b/ports/sdl2-mixer/CMakeLists.txt
@@ -2,23 +2,22 @@ cmake_minimum_required(VERSION 3.0)
project(SDL2_MIXER C)
find_path(SDL_INCLUDE_DIR SDL.h PATH_SUFFIXES SDL2)
-find_library(SDL_LIBRARY SDL2)
+find_library(SDL_LIBRARY NAMES SDL2d SDL2)
set(SDL_MIXER_INCLUDES ${SDL_INCLUDE_DIR})
set(SDL_MIXER_LIBRARIES ${SDL_LIBRARY})
# builtin formats
-set(SDL_MIXER_DEFINES
- WAV_MUSIC
- MID_MUSIC
- USE_NATIVE_MIDI)
+set(SDL_MIXER_DEFINES
+ MUSIC_WAV
+ MUSIC_MID_NATIVE)
# MP3 support
if(SDL_MIXER_ENABLE_MP3)
- find_path(SMPEG_INCLUDE_DIR smpeg.h)
- find_library(SMPEG_LIBRARY smpeg2)
- list(APPEND SDL_MIXER_INCLUDES ${SMPEG_INCLUDE_DIR})
- list(APPEND SDL_MIXER_LIBRARIES ${SMPEG_LIBRARY})
- list(APPEND SDL_MIXER_DEFINES MP3_MUSIC)
+ find_path(MPG123_INCLUDE_DIR mpg123.h)
+ find_library(MPG123_LIBRARY NAMES libmpg123 mpg123)
+ list(APPEND SDL_MIXER_INCLUDES ${MPG123_INCLUDE_DIR})
+ list(APPEND SDL_MIXER_LIBRARIES ${MPG123_LIBRARY})
+ list(APPEND SDL_MIXER_DEFINES MUSIC_MP3_MPG123)
endif()
# FLAC support
@@ -27,7 +26,7 @@ if(SDL_MIXER_ENABLE_FLAC)
find_library(FLAC_LIBRARY flac)
list(APPEND SDL_MIXER_INCLUDES ${FLAC_INCLUDE_DIR})
list(APPEND SDL_MIXER_LIBRARIES ${FLAC_LIBRARY})
- list(APPEND SDL_MIXER_DEFINES FLAC_MUSIC)
+ list(APPEND SDL_MIXER_DEFINES MUSIC_FLAC)
endif()
# MOD support
@@ -36,7 +35,7 @@ if(SDL_MIXER_ENABLE_MOD)
find_library(MODPLUG_LIBRARY modplug)
list(APPEND SDL_MIXER_INCLUDES ${MODPLUG_INCLUDE_DIR})
list(APPEND SDL_MIXER_LIBRARIES ${MODPLUG_LIBRARY})
- list(APPEND SDL_MIXER_DEFINES MODPLUG_MUSIC)
+ list(APPEND SDL_MIXER_DEFINES MUSIC_MOD_MODPLUG)
endif()
# Ogg-Vorbis support
@@ -45,37 +44,34 @@ if(SDL_MIXER_ENABLE_OGGVORBIS)
find_library(VORBISFILE_LIBRARY vorbisfile)
list(APPEND SDL_MIXER_INCLUDES ${VORBIS_INCLUDE_DIR})
list(APPEND SDL_MIXER_LIBRARIES ${VORBISFILE_LIBRARY})
- list(APPEND SDL_MIXER_DEFINES OGG_MUSIC)
+ list(APPEND SDL_MIXER_DEFINES MUSIC_OGG)
endif()
-add_library(SDL2_mixer
- dynamic_flac.c
- dynamic_fluidsynth.c
- dynamic_mod.c
- dynamic_modplug.c
- dynamic_mp3.c
- dynamic_ogg.c
+add_library(SDL2_mixer
effect_position.c
effect_stereoreverse.c
effects_internal.c
- fluidsynth.c
load_aiff.c
- load_flac.c
- load_mp3.c
- load_ogg.c
load_voc.c
mixer.c
music.c
music_cmd.c
music_flac.c
+ music_fluidsynth.c
music_mad.c
- music_mod.c
+ music_mikmod.c
music_modplug.c
+ music_mpg123.c
+ music_nativemidi.c
music_ogg.c
- wavestream.c
+ music_smpeg.c
+ music_timidity.c
+ music_wav.c
native_midi/native_midi_common.c
- native_midi/native_midi_win32.c)
+ native_midi/native_midi_win32.c
+ version.rc)
+set_target_properties(SDL2_mixer PROPERTIES DEFINE_SYMBOL SDL2_EXPORTS)
target_compile_definitions(SDL2_mixer PRIVATE ${SDL_MIXER_DEFINES})
target_include_directories(SDL2_mixer PRIVATE ${SDL_MIXER_INCLUDES} ./native_midi)
target_link_libraries(SDL2_mixer ${SDL_MIXER_LIBRARIES} Winmm)
diff --git a/ports/sdl2-mixer/CONTROL b/ports/sdl2-mixer/CONTROL
index b5d51aecd..7f953a2f9 100644
--- a/ports/sdl2-mixer/CONTROL
+++ b/ports/sdl2-mixer/CONTROL
@@ -1,4 +1,4 @@
Source: sdl2-mixer
-Version: 2.0.1
+Version: 2.0.2-4
Description: Multi-channel audio mixer library for SDL.
-Build-Depends: sdl2, libflac, smpeg2, libmodplug, libvorbis
+Build-Depends: sdl2, libflac, mpg123, libmodplug, libvorbis
diff --git a/ports/sdl2-mixer/portfile.cmake b/ports/sdl2-mixer/portfile.cmake
index 574e6a1e0..9f6240bcf 100644
--- a/ports/sdl2-mixer/portfile.cmake
+++ b/ports/sdl2-mixer/portfile.cmake
@@ -1,9 +1,9 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SDL2_mixer-2.0.1)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SDL2_mixer-2.0.2)
vcpkg_download_distfile(ARCHIVE
- URLS "https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.1.zip"
- FILENAME "SDL2_mixer-2.0.1.zip"
- SHA512 7399f08c5b091698c90d49fcc2996677eae8a36f05a65b4470807c9cf2c04730669e0ca395893cfa49177a929f8c5b2b10b6c541ba2fe2646300dcdad4ec1d9e)
+ URLS "https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.2.zip"
+ FILENAME "SDL2_mixer-2.0.2.zip"
+ SHA512 da0c27c560a153d57d69a1b6c58a288f017762afc654749957072900a904d3dac19a0efcb68516cb166546d29ff570462385016e0041dae6f393ccb4bbd2ffbc)
vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
@@ -12,7 +12,7 @@ vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
- -DSDL_MIXER_ENABLE_MP3=ON # smpeg2
+ -DSDL_MIXER_ENABLE_MP3=ON # mpg123
-DSDL_MIXER_ENABLE_FLAC=ON # libflac
-DSDL_MIXER_ENABLE_MOD=ON # libmodplug
-DSDL_MIXER_ENABLE_OGGVORBIS=ON # libvorbis
diff --git a/ports/sdl2-net/CMakeLists.txt b/ports/sdl2-net/CMakeLists.txt
index d87b88c89..5ee86e9bd 100644
--- a/ports/sdl2-net/CMakeLists.txt
+++ b/ports/sdl2-net/CMakeLists.txt
@@ -1,13 +1,16 @@
cmake_minimum_required(VERSION 3.0)
project(SDL2_NET C)
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4244 /wd4996")
+if (MSVC)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4244 /wd4996")
+endif()
find_path(SDL_INCLUDE_DIR SDL2/SDL.h)
-find_library(SDL_LIBRARY SDL2)
+find_library(SDL_LIBRARY NAMES SDL2d SDL2)
-add_library(SDL2_net SDLnet.c SDLnetselect.c SDLnetTCP.c SDLnetUDP.c)
+add_library(SDL2_net SDLnet.c SDLnetselect.c SDLnetTCP.c SDLnetUDP.c version.rc)
+set_target_properties(SDL2_net PROPERTIES DEFINE_SYMBOL SDL2_EXPORTS)
target_compile_definitions(SDL2_net PRIVATE _WINSOCK_DEPRECATED_NO_WARNINGS)
target_include_directories(SDL2_net PRIVATE ${SDL_INCLUDE_DIR}/SDL2)
target_link_libraries(SDL2_net ${SDL_LIBRARY} ws2_32 iphlpapi)
diff --git a/ports/sdl2-net/CONTROL b/ports/sdl2-net/CONTROL
index 850cc9163..ff239d5a4 100644
--- a/ports/sdl2-net/CONTROL
+++ b/ports/sdl2-net/CONTROL
@@ -1,4 +1,4 @@
Source: sdl2-net
-Version: 2.0.1
+Version: 2.0.1-4
Description: Networking library for SDL
Build-Depends: sdl2
diff --git a/ports/sdl2-ttf/CMakeLists.txt b/ports/sdl2-ttf/CMakeLists.txt
index f2e677483..7c3e8fc77 100644
--- a/ports/sdl2-ttf/CMakeLists.txt
+++ b/ports/sdl2-ttf/CMakeLists.txt
@@ -2,11 +2,12 @@ cmake_minimum_required(VERSION 3.0)
project(SDL2_TTF C)
find_path(SDL_INCLUDE_DIR SDL2/SDL.h)
-find_library(SDL_LIBRARY SDL2)
+find_library(SDL_LIBRARY NAMES SDL2d SDL2)
find_package(FreeType REQUIRED)
-add_library(SDL2_ttf SDL_ttf.c)
+add_library(SDL2_ttf SDL_ttf.c version.rc)
+set_target_properties(SDL2_ttf PROPERTIES DEFINE_SYMBOL SDL2_EXPORTS)
target_include_directories(SDL2_ttf PRIVATE ${SDL_INCLUDE_DIR}/SDL2 ${FREETYPE_INCLUDE_DIR_ft2build})
target_link_libraries(SDL2_ttf ${SDL_LIBRARY} ${FREETYPE_LIBRARY})
diff --git a/ports/sdl2-ttf/CONTROL b/ports/sdl2-ttf/CONTROL
index de0385428..362daf221 100644
--- a/ports/sdl2-ttf/CONTROL
+++ b/ports/sdl2-ttf/CONTROL
@@ -1,4 +1,4 @@
Source: sdl2-ttf
-Version: 2.0.14
+Version: 2.0.14-4
Description: A library for rendering TrueType fonts with SDL
Build-Depends: sdl2, freetype
diff --git a/ports/sdl2/CONTROL b/ports/sdl2/CONTROL
index c0d747691..6f39484dd 100644
--- a/ports/sdl2/CONTROL
+++ b/ports/sdl2/CONTROL
@@ -1,3 +1,3 @@
Source: sdl2
-Version: 2.0.5-2
+Version: 2.0.8-1
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/dont-ignore-default-libs.patch b/ports/sdl2/dont-ignore-default-libs.patch
deleted file mode 100644
index c9f4c6079..000000000
--- a/ports/sdl2/dont-ignore-default-libs.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 54a23f0..91c5736 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1549,7 +1549,7 @@ if(SDL_SHARED)
- SOVERSION ${LT_REVISION}
- OUTPUT_NAME "SDL2")
- endif()
-- if(MSVC)
-+ if(MSVC AND NOT LIBC)
- # Don't try to link with the default set of libraries.
- set_target_properties(SDL2 PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB")
- set_target_properties(SDL2 PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB")
-@@ -1564,7 +1564,7 @@ if(SDL_STATIC)
- add_library(SDL2-static STATIC ${SOURCE_FILES})
- set_target_properties(SDL2-static PROPERTIES OUTPUT_NAME "SDL2")
- set_target_properties(SDL2-static PROPERTIES POSITION_INDEPENDENT_CODE ${SDL_STATIC_PIC})
-- if(MSVC)
-+ if(MSVC AND NOT LIBC)
- set_target_properties(SDL2-static PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB")
- set_target_properties(SDL2-static PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB")
- set_target_properties(SDL2-static PROPERTIES STATIC_LIBRARY_FLAGS "/NODEFAULTLIB")
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/export-symbols-only-in-shared-build.patch b/ports/sdl2/export-symbols-only-in-shared-build.patch
new file mode 100644
index 000000000..7e6d503e2
--- /dev/null
+++ b/ports/sdl2/export-symbols-only-in-shared-build.patch
@@ -0,0 +1,24 @@
+# HG changeset patch
+# User Mikhail Paulyshka <me@mixaill.tk>
+# Date 1506252750 -10800
+# Sun Sep 24 14:32:30 2017 +0300
+# Branch SDL2-WIN-SYMBOLS_LEACKAGE
+# Node ID 46ec9baae30cd4e0c584de125cae4a3cce2864ad
+# Parent 8df7a59b55283aa09889522369a2b32674c048de
+win32: fix symbols leakage for static libraries
+
+diff -r 8df7a59b5528 -r 46ec9baae30c include/begin_code.h
+--- a/include/begin_code.h Fri Sep 22 11:25:52 2017 -0700
++++ b/include/begin_code.h Sun Sep 24 14:32:30 2017 +0300
+@@ -58,8 +58,10 @@
+ # else
+ # define DECLSPEC __declspec(dllimport)
+ # endif
++# elif defined(_DLL)
++# define DECLSPEC __declspec(dllexport)
+ # else
+-# define DECLSPEC __declspec(dllexport)
++# define DECLSPEC
+ # endif
+ # elif defined(__OS2__)
+ # ifdef BUILD_SDL
diff --git a/ports/sdl2/portfile.cmake b/ports/sdl2/portfile.cmake
index 185e39665..5d7ac5314 100644
--- a/ports/sdl2/portfile.cmake
+++ b/ports/sdl2/portfile.cmake
@@ -1,70 +1,79 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SDL2-2.0.5)
-vcpkg_download_distfile(ARCHIVE_FILE
- URLS "http://libsdl.org/release/SDL2-2.0.5.tar.gz"
- FILENAME "SDL2-2.0.5.tar.gz"
- SHA512 6401f5df08c08316c09bc6ac5b28345c5184bb25770baa5c94c0a582ae130ddf73bb736e44bb31f4e427c1ddbbeec4755a6a5f530b6b4c3d0f13ebc78ddc1750
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO SDL-Mirror/SDL
+ REF release-2.0.8
+ SHA512 5922dbeb14bb22991160251664b417d3f846867c18b5ecc1bd19c328ffd69b16252b7d45b9a317bafd1207fdb66d93a022dfb239e02447db9babd941956b6b37
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE_FILE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/dont-ignore-default-libs.patch
+ ${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
+)
- 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_install_cmake()
- vcpkg_install_cmake()
+if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake")
+ vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake")
+elseif(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/SDL2")
+ vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/SDL2")
+elseif(EXISTS "${CURRENT_PACKAGES_DIR}/SDL2.framework/Resources")
+ vcpkg_fixup_cmake_targets(CONFIG_PATH "SDL2.framework/Resources")
+endif()
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/include
+ ${CURRENT_PACKAGES_DIR}/debug/share
+ ${CURRENT_PACKAGES_DIR}/bin/sdl2-config
+ ${CURRENT_PACKAGES_DIR}/debug/bin/sdl2-config
+ ${CURRENT_PACKAGES_DIR}/SDL2.framework
+ ${CURRENT_PACKAGES_DIR}/debug/SDL2.framework
+)
+
+file(GLOB BINS ${CURRENT_PACKAGES_DIR}/debug/bin/* ${CURRENT_PACKAGES_DIR}/bin/*)
+if(NOT BINS)
+ file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/bin
+ ${CURRENT_PACKAGES_DIR}/debug/bin
+ )
endif()
-file(COPY ${CURRENT_PACKAGES_DIR}/lib/SDL2main.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link)
-file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/SDL2main.lib)
-file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/SDL2main.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
-file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/SDL2main.lib)
+if(NOT VCPKG_CMAKE_SYSTEM_NAME)
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/SDL2main.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/SDL2main.lib)
+ endif()
+ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/SDL2maind.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/SDL2maind.lib)
+ endif()
+
+ 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)
vcpkg_copy_pdbs()
diff --git a/ports/sdl2pp/CONTROL b/ports/sdl2pp/CONTROL
new file mode 100644
index 000000000..19fecb092
--- /dev/null
+++ b/ports/sdl2pp/CONTROL
@@ -0,0 +1,4 @@
+Source: sdl2pp
+Version: 0.16.0-1
+Description: C++11 bindings/wrapper for SDL2 https://sdl2pp.amdmi3.ru
+Build-Depends: sdl2, sdl2-mixer, sdl2-image, sdl2-ttf
diff --git a/ports/sdl2pp/find-debug-libs.patch b/ports/sdl2pp/find-debug-libs.patch
new file mode 100644
index 000000000..282324345
--- /dev/null
+++ b/ports/sdl2pp/find-debug-libs.patch
@@ -0,0 +1,54 @@
+diff --git a/cmake/FindSDL2.cmake b/cmake/FindSDL2.cmake
+index 8b2addb..4def5f3 100644
+--- a/cmake/FindSDL2.cmake
++++ b/cmake/FindSDL2.cmake
+@@ -8,8 +8,8 @@
+
+ FIND_PATH(SDL2_INCLUDE_DIR NAMES SDL.h PATH_SUFFIXES SDL2)
+
+-FIND_LIBRARY(SDL2_LIBRARY NAMES SDL2)
+-FIND_LIBRARY(SDL2MAIN_LIBRARY NAMES SDL2main)
++FIND_LIBRARY(SDL2_LIBRARY NAMES SDL2d SDL2)
++FIND_LIBRARY(SDL2MAIN_LIBRARY NAMES SDL2maind SDL2main)
+
+ INCLUDE(FindPackageHandleStandardArgs)
+
+diff --git a/cmake/FindSDL2_image.cmake b/cmake/FindSDL2_image.cmake
+index 88adb3f..d6e829d 100644
+--- a/cmake/FindSDL2_image.cmake
++++ b/cmake/FindSDL2_image.cmake
+@@ -8,7 +8,7 @@
+
+ FIND_PATH(SDL2_IMAGE_INCLUDE_DIR NAMES SDL_image.h PATH_SUFFIXES SDL2)
+
+-FIND_LIBRARY(SDL2_IMAGE_LIBRARY NAMES SDL2_image)
++FIND_LIBRARY(SDL2_IMAGE_LIBRARY NAMES SDL2_imaged SDL2_image)
+
+ INCLUDE(FindPackageHandleStandardArgs)
+
+diff --git a/cmake/FindSDL2_mixer.cmake b/cmake/FindSDL2_mixer.cmake
+index ef5748b..c2dbbde 100644
+--- a/cmake/FindSDL2_mixer.cmake
++++ b/cmake/FindSDL2_mixer.cmake
+@@ -8,7 +8,7 @@
+
+ FIND_PATH(SDL2_MIXER_INCLUDE_DIR NAMES SDL_mixer.h PATH_SUFFIXES SDL2)
+
+-FIND_LIBRARY(SDL2_MIXER_LIBRARY NAMES SDL2_mixer)
++FIND_LIBRARY(SDL2_MIXER_LIBRARY NAMES SDL2_mixerd SDL2_mixer)
+
+ INCLUDE(FindPackageHandleStandardArgs)
+
+diff --git a/cmake/FindSDL2_ttf.cmake b/cmake/FindSDL2_ttf.cmake
+index b480d55..9fb65b9 100644
+--- a/cmake/FindSDL2_ttf.cmake
++++ b/cmake/FindSDL2_ttf.cmake
+@@ -8,7 +8,7 @@
+
+ FIND_PATH(SDL2_TTF_INCLUDE_DIR NAMES SDL_ttf.h PATH_SUFFIXES SDL2)
+
+-FIND_LIBRARY(SDL2_TTF_LIBRARY NAMES SDL2_ttf)
++FIND_LIBRARY(SDL2_TTF_LIBRARY NAMES SDL2_ttfd SDL2_ttf)
+
+ INCLUDE(FindPackageHandleStandardArgs)
+
diff --git a/ports/sdl2pp/portfile.cmake b/ports/sdl2pp/portfile.cmake
new file mode 100644
index 000000000..7fbaf9c69
--- /dev/null
+++ b/ports/sdl2pp/portfile.cmake
@@ -0,0 +1,28 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libSDL2pp/libSDL2pp
+ REF 0.16.0
+ SHA512 36603a0b1c3ba9294fffa5368357866e5689ceed9743352ff52c096d8b0070cc3f8708a5e837c10c871b410b6bda3ed7e8e3b95cb9afc136d91afb035cde6361
+ HEAD_REF master
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/find-debug-libs.patch"
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SDL2PP_STATIC)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DSDL2PP_WITH_EXAMPLES=OFF
+ -DSDL2PP_WITH_TESTS=OFF
+ -DSDL2PP_STATIC=${SDL2PP_STATIC}
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/COPYING.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sdl2pp RENAME copyright)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
diff --git a/ports/secp256k1/CMakeLists.txt b/ports/secp256k1/CMakeLists.txt
new file mode 100644
index 000000000..2e6b46198
--- /dev/null
+++ b/ports/secp256k1/CMakeLists.txt
@@ -0,0 +1,26 @@
+cmake_minimum_required(VERSION 3.8)
+project(secp256k1 C)
+
+option(INSTALL_HEADERS "Install header files" ON)
+
+add_definitions(
+ -DENABLE_MODULE_ECDH
+ -DENABLE_MODULE_RECOVERY
+ -DHAVE_CONFIG_H
+)
+
+file(GLOB SOURCES src/secp256k1.c)
+add_library(secp256k1 ${SOURCES})
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+
+install(TARGETS secp256k1
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
+
+if(INSTALL_HEADERS)
+ file(GLOB HEADERS include/*.h)
+ install(FILES ${HEADERS} DESTINATION include)
+endif() \ No newline at end of file
diff --git a/ports/secp256k1/CONTROL b/ports/secp256k1/CONTROL
new file mode 100644
index 000000000..be37f1693
--- /dev/null
+++ b/ports/secp256k1/CONTROL
@@ -0,0 +1,3 @@
+Source: secp256k1
+Version: 2017-19-10-0b7024185045a49a1a6a4c5615bf31c94f63d9c4-1
+Description: Optimized C library for EC operations on curve
diff --git a/ports/secp256k1/libsecp256k1-config.h b/ports/secp256k1/libsecp256k1-config.h
new file mode 100644
index 000000000..693d3ed25
--- /dev/null
+++ b/ports/secp256k1/libsecp256k1-config.h
@@ -0,0 +1,29 @@
+/**********************************************************************
+ * Copyright (c) 2013, 2014 Pieter Wuille *
+ * Distributed under the MIT software license, see the accompanying *
+ * file COPYING or http://www.opensource.org/licenses/mit-license.php.*
+ **********************************************************************/
+
+#ifndef SECP256K1_BASIC_CONFIG_H
+#define SECP256K1_BASIC_CONFIG_H
+
+#undef USE_ASM_X86_64
+#undef USE_ENDOMORPHISM
+#undef USE_FIELD_10X26
+#undef USE_FIELD_5X52
+#undef USE_FIELD_INV_BUILTIN
+#undef USE_FIELD_INV_NUM
+#undef USE_NUM_GMP
+#undef USE_NUM_NONE
+#undef USE_SCALAR_4X64
+#undef USE_SCALAR_8X32
+#undef USE_SCALAR_INV_BUILTIN
+#undef USE_SCALAR_INV_NUM
+
+#define USE_NUM_NONE 1
+#define USE_FIELD_INV_BUILTIN 1
+#define USE_SCALAR_INV_BUILTIN 1
+#define USE_FIELD_10X26 1
+#define USE_SCALAR_8X32 1
+
+#endif /* SECP256K1_BASIC_CONFIG_H */
diff --git a/ports/secp256k1/portfile.cmake b/ports/secp256k1/portfile.cmake
new file mode 100644
index 000000000..2012c4827
--- /dev/null
+++ b/ports/secp256k1/portfile.cmake
@@ -0,0 +1,28 @@
+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 "bitcoin-core/secp256k1"
+ REF "0b7024185045a49a1a6a4c5615bf31c94f63d9c4"
+ SHA512 54e0c446ae63105800dfaf23dc934734f196c91f275db0455e58a36926c29ecc51a13d9b1eb2e45bc86199120c3c472ec7b39086787a49ce388a4df462a870bc
+)
+
+file(COPY ${CURRENT_PORT_DIR}/libsecp256k1-config.h DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DINSTALL_HEADERS=OFF
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/secp256k1 RENAME copyright)
diff --git a/ports/selene/CONTROL b/ports/selene/CONTROL
new file mode 100644
index 000000000..6b90431a8
--- /dev/null
+++ b/ports/selene/CONTROL
@@ -0,0 +1,4 @@
+Source: selene
+Version: 0.1.0
+Description: A C++14 image representation, processing and I/O library.
+Build-Depends: zlib, libpng, libjpeg-turbo
diff --git a/ports/selene/portfile.cmake b/ports/selene/portfile.cmake
new file mode 100644
index 000000000..dcc263635
--- /dev/null
+++ b/ports/selene/portfile.cmake
@@ -0,0 +1,34 @@
+include(vcpkg_common_functions)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/selene-0.1.0)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(SELENE_EXPORT_SYMBOLS TRUE)
+else()
+ set(SELENE_EXPORT_SYMBOLS FALSE)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO kmhofmann/selene
+ REF v0.1.0
+ SHA512 59b136cc92a2a6e09d5260fa642f3c7405d89f0505adda4693652f866d51464dfe0380e05a0b20e2cb22b091b9d142a2082e8d1c96164d8821ebebd0df78c4ad
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=${SELENE_EXPORT_SYMBOLS}
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/${PORT}")
+vcpkg_copy_pdbs()
+
+# Include files should not be duplicated into the /debug/include directory.
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/selene RENAME copyright) \ No newline at end of file
diff --git a/ports/sery/CONTROL b/ports/sery/CONTROL
index 782452b2a..1a771771b 100644
--- a/ports/sery/CONTROL
+++ b/ports/sery/CONTROL
@@ -1,3 +1,3 @@
Source: sery
-Version: 1.0.0
+Version: 1.0.0-1
Description: Simple binary (de)serialization library
diff --git a/ports/sfgui/CONTROL b/ports/sfgui/CONTROL
new file mode 100644
index 000000000..39962e0e5
--- /dev/null
+++ b/ports/sfgui/CONTROL
@@ -0,0 +1,4 @@
+Source: sfgui
+Version: 0.3.2-1
+Description: simple and fast graphical user interface library
+Build-Depends: sfml
diff --git a/ports/sfgui/portfile.cmake b/ports/sfgui/portfile.cmake
new file mode 100644
index 000000000..7764a60a1
--- /dev/null
+++ b/ports/sfgui/portfile.cmake
@@ -0,0 +1,43 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO TankOs/SFGUI
+ REF 0.3.2
+ SHA512 cd97e421695f6189995c1b7a4180e3738bf785abae37d3eb51ac6d687a88a26a1f088863b37e065edaff6ba43eea379e423b31118324c4daa65dba0b3e904869
+ HEAD_REF master
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(SFGUI_BUILD_SHARED_LIBS ON)
+ set(SFML_STATIC_LIBRARIES OFF)
+else()
+ set(SFGUI_BUILD_SHARED_LIBS OFF)
+ set(SFML_STATIC_LIBRARIES ON)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DSFGUI_BUILD_DOC=OFF
+ -DSFGUI_BUILD_EXAMPLES=OFF
+ -DSFGUI_BUILD_SHARED_LIBS=${SFGUI_BUILD_SHARED_LIBS}
+ -DSFML_STATIC_LIBRARIES=${SFML_STATIC_LIBRARIES}
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfgui RENAME copyright)
+
+file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/Modules/FindSFGUI.cmake ${CURRENT_PACKAGES_DIR}/share/sfgui/FindSFGUI.cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake/Modules)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake)
+
+file(GLOB_RECURSE SFGUI_DOC_RELEASE ${CURRENT_PACKAGES_DIR}/*.md)
+file(GLOB_RECURSE SFGUI_DOC_DEBUG ${CURRENT_PACKAGES_DIR}/debug/*.md)
+file(REMOVE ${SFGUI_DOC_RELEASE} ${SFGUI_DOC_DEBUG})
diff --git a/ports/sfml/CMakeLists.txt b/ports/sfml/CMakeLists.txt
deleted file mode 100644
index e8e16edec..000000000
--- a/ports/sfml/CMakeLists.txt
+++ /dev/null
@@ -1,122 +0,0 @@
-cmake_minimum_required(VERSION 2.6)
-project(SFML)
-
-include_directories(${PROJECT_SOURCE_DIR}/include)
-include_directories(${PROJECT_SOURCE_DIR}/src)
-
-if(NOT BUILD_SHARED_LIBS)
- add_definitions(-DSFML_STATIC)
-endif()
-add_definitions(-DUNICODE -D_UNICODE)
-add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS)
-
-# import SFML's 'sfml_add_library' macro and find_package utils
-
-set(VERSION_MAJOR 2)
-set(SFML_OS_WINDOWS ON)
-set(SFML_GENERATE_PDB ON)
-include(cmake/macros.cmake)
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules/)
-
-# system module
-
-file(GLOB SFML_SYSTEM_SOURCES
- ${PROJECT_SOURCE_DIR}/src/SFML/System/*.cpp
- ${PROJECT_SOURCE_DIR}/src/SFML/System/Win32/*cpp)
-
-sfml_add_library(sfml-system
- SOURCES ${SFML_SYSTEM_SOURCES}
- EXTERNAL_LIBS winmm)
-
-# window module
-
-file(GLOB SFML_WINDOW_SOURCES
- ${PROJECT_SOURCE_DIR}/src/SFML/Window/*.cpp
- ${PROJECT_SOURCE_DIR}/src/SFML/Window/Win32/*cpp)
-
-list(REMOVE_ITEM SFML_WINDOW_SOURCES
- ${PROJECT_SOURCE_DIR}/src/SFML/Window/EGLCheck.cpp
- ${PROJECT_SOURCE_DIR}/src/SFML/Window/EglContext.cpp)
-
-sfml_add_library(sfml-window
- SOURCES ${SFML_WINDOW_SOURCES}
- DEPENDS sfml-system
- EXTERNAL_LIBS winmm gdi32 opengl32)
-
-# network module
-
-file(GLOB SFML_NETWORK_SOURCES
- ${PROJECT_SOURCE_DIR}/src/SFML/Network/*.cpp
- ${PROJECT_SOURCE_DIR}/src/SFML/Network/Win32/*cpp)
-
-sfml_add_library(sfml-network
- SOURCES ${SFML_NETWORK_SOURCES}
- DEPENDS sfml-system
- EXTERNAL_LIBS ws2_32)
-
-# audio module
-
-file(GLOB SFML_AUDIO_SOURCES
- ${PROJECT_SOURCE_DIR}/src/SFML/Audio/*.cpp)
-
-find_package(OpenAL REQUIRED)
-find_package(Vorbis REQUIRED)
-find_package(FLAC REQUIRED)
-
-sfml_add_library(sfml-audio
- SOURCES ${SFML_AUDIO_SOURCES}
- DEPENDS sfml-system
- EXTERNAL_LIBS ${OPENAL_LIBRARY} ${VORBIS_LIBRARIES} ${FLAC_LIBRARY})
-
-target_include_directories(sfml-audio SYSTEM PRIVATE ${OPENAL_INCLUDE_DIR})
-target_include_directories(sfml-audio SYSTEM PRIVATE ${VORBIS_INCLUDE_DIRS})
-target_include_directories(sfml-audio SYSTEM PRIVATE ${FLAC_INCLUDE_DIR})
-
-# graphics module
-
-file(GLOB SFML_GRAPHICS_SOURCES
- ${PROJECT_SOURCE_DIR}/src/SFML/Graphics/*.cpp)
-
-find_package(JPEG REQUIRED)
-find_package(Freetype REQUIRED) # fails to find debug lib
-if(CMAKE_BUILD_TYPE MATCHES Debug)
- find_library(FREETYPE_DEBUG_LIBRARY freetyped)
- set(FREETYPE_ACTUAL_LIBRARY ${FREETYPE_DEBUG_LIBRARY})
-else()
- set(FREETYPE_ACTUAL_LIBRARY ${FREETYPE_LIBRARY})
-endif()
-find_path(STB_HEADERS stb_image.h)
-
-sfml_add_library(sfml-graphics
- SOURCES ${SFML_GRAPHICS_SOURCES}
- DEPENDS sfml-system sfml-window
- EXTERNAL_LIBS ${FREETYPE_ACTUAL_LIBRARY} ${JPEG_LIBRARY} opengl32)
-
-target_include_directories(sfml-graphics SYSTEM PRIVATE ${STB_HEADERS})
-target_include_directories(sfml-graphics SYSTEM PRIVATE ${FREETYPE_INCLUDE_DIRS})
-target_include_directories(sfml-graphics SYSTEM PRIVATE ${JPEG_INCLUDE_DIR})
-set_target_properties(sfml-graphics PROPERTIES COMPILE_FLAGS -DSTBI_FAILURE_USERMSG)
-
-# main module
-
-add_library(sfml-main STATIC ${PROJECT_SOURCE_DIR}/src/SFML/Main/MainWin32.cpp)
-set_target_properties(sfml-main PROPERTIES DEBUG_POSTFIX -d)
-install(TARGETS sfml-main ARCHIVE DESTINATION lib)
-
-# headers
-
-if(NOT DEFINED SFML_SKIP_HEADERS)
- install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/ DESTINATION include)
-endif()
-
-# log linked libraries
-
-message(STATUS "Link-time dependencies:")
-message(STATUS " " ${VORBIS_LIBRARY})
-message(STATUS " " ${VORBISFILE_LIBRARY})
-message(STATUS " " ${VORBISENC_LIBRARY})
-message(STATUS " " ${OGG_LIBRARY})
-message(STATUS " " ${OPENAL_LIBRARY})
-message(STATUS " " ${FLAC_LIBRARY})
-message(STATUS " " ${FREETYPE_ACTUAL_LIBRARY})
-message(STATUS " " ${JPEG_LIBRARY})
diff --git a/ports/sfml/CONTROL b/ports/sfml/CONTROL
index e7fb08ecd..dbc86b29b 100644
--- a/ports/sfml/CONTROL
+++ b/ports/sfml/CONTROL
@@ -1,4 +1,4 @@
Source: sfml
-Version: 2.4.2
+Version: 2.5.0
Description: Simple and fast multimedia library
-Build-Depends: freetype, libflac, libjpeg-turbo, libogg, libvorbis, openal-soft, stb
+Build-Depends: freetype, libflac, libogg, libvorbis, openal-soft, stb, freeglut (!uwp&&!windows)
diff --git a/ports/sfml/portfile.cmake b/ports/sfml/portfile.cmake
index 69f114ca5..f07a199e6 100644
--- a/ports/sfml/portfile.cmake
+++ b/ports/sfml/portfile.cmake
@@ -1,22 +1,33 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SFML-2.4.2)
-vcpkg_download_distfile(ARCHIVE
- URLS "http://www.sfml-dev.org/files/SFML-2.4.2-sources.zip"
- FILENAME "SFML-2.4.2-sources.zip"
- SHA512 14f2b9f244bbff681d1992581f20012f3073456e4baed0fb2bf2cf82538e9c5ddd8ce01b0cfb3874af47091ec19654aa23c426df04fe1ffcfa209623dc362f85)
-
-vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH
+ REPO SFML/SFML
+ REF 2.5.0
+ HEAD_REF master
+ SHA512 94306dcbed7d68bb7e226cd91e25950a07bcf393988c4bb79f9de3555c18c78cae4573e911235f712e711a7c02a614bf370df32b8d85240d2f08142327e05076
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/portfile.cmake"
+)
file(REMOVE_RECURSE ${SOURCE_PATH}/extlibs)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+# Without this, we get error: list sub-command REMOVE_DUPLICATES requires list to be present.
+file(MAKE_DIRECTORY ${SOURCE_PATH}/extlibs/libs)
+file(WRITE ${SOURCE_PATH}/extlibs/libs/x "")
+
+if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message("SFML currently requires the following libraries from the system package manager:\n libudev\n libx11\n libxrandr\n opengl\n\nThese can be installed on Ubuntu systems via apt-get install libx11-dev libxrandr-dev libxi-dev libudev-dev mesa-common-dev")
+endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS_DEBUG
- -DSFML_SKIP_HEADERS=ON)
+ OPTIONS
+ -DSFML_BUILD_FRAMEWORKS=OFF
+ -DSFML_USE_SYSTEM_DEPS=ON
+ -DSFML_MISC_INSTALL_PREFIX=share/sfml
+ -DSFML_GENERATE_PDB=OFF
+)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/SFML)
vcpkg_copy_pdbs()
# don't force users to define SFML_STATIC while using static library
@@ -25,10 +36,19 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
endif()
# move sfml-main to manual link dir
-file(COPY ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link)
-file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib)
-file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
-file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib)
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib)
+ file(COPY ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib)
+ file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib)
+ file(GLOB FILES "${CURRENT_PACKAGES_DIR}/share/sfml/SFML*Targets-*.cmake")
+ foreach(FILE ${FILES})
+ file(READ "${FILE}" _contents)
+ string(REPLACE "/lib/sfml-main" "/lib/manual-link/sfml-main" _contents "${_contents}")
+ file(WRITE "${FILE}" "${_contents}")
+ endforeach()
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
-file(COPY ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfml)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/sfml/license.txt ${CURRENT_PACKAGES_DIR}/share/sfml/copyright)
+file(INSTALL ${SOURCE_PATH}/license.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfml RENAME copyright)
diff --git a/ports/shaderc/CMakeLists.txt b/ports/shaderc/CMakeLists.txt
index 3dc7be973..580ffa1d1 100644
--- a/ports/shaderc/CMakeLists.txt
+++ b/ports/shaderc/CMakeLists.txt
@@ -1,29 +1,31 @@
-option(SUFFIX_D "Add d Suffix to lib" ${SUFFIX_D})
-if(NOT ${SUFFIX_D})
- find_library(GLSLANG glslang)
- find_library(OSDEPENDENT OSDependent)
- find_library(OGLCOMPILER OGLCompiler)
- find_library(HLSLLIB HLSL)
- find_library(SPIRVLIB SPIRV)
-ELSE()
- find_library(GLSLANG glslangd)
- find_library(OSDEPENDENT OSDependentd)
- find_library(OGLCOMPILER OGLCompilerd)
- find_library(HLSLLIB HLSLd)
- find_library(SPIRVLIB SPIRVd)
-ENDIF()
-
-add_library(glslang STATIC IMPORTED GLOBAL)
-set_property(TARGET glslang PROPERTY IMPORTED_LOCATION "${GLSLANG}")
-
-add_library(OSDependent STATIC IMPORTED GLOBAL)
-set_property(TARGET OSDependent PROPERTY IMPORTED_LOCATION "${OSDEPENDENT}")
-
-add_library(OGLCompiler STATIC IMPORTED GLOBAL)
-set_property(TARGET OGLCompiler PROPERTY IMPORTED_LOCATION "${OGLCOMPILER}")
-
-add_library(HLSL STATIC IMPORTED GLOBAL)
-set_property(TARGET HLSL PROPERTY IMPORTED_LOCATION "${HLSLLIB}")
-
-add_library(SPIRV STATIC IMPORTED GLOBAL)
-set_property(TARGET SPIRV PROPERTY IMPORTED_LOCATION "${SPIRVLIB}")
+option(SUFFIX_D "Add d Suffix to lib" ${SUFFIX_D})
+if(NOT SUFFIX_D)
+ find_library(GLSLANG glslang)
+ find_library(OSDEPENDENT OSDependent)
+ find_library(OGLCOMPILER OGLCompiler)
+ find_library(HLSLLIB HLSL)
+ find_library(SPIRVLIB SPIRV)
+ELSE()
+ find_library(GLSLANG glslangd)
+ find_library(OSDEPENDENT OSDependentd)
+ find_library(OGLCOMPILER OGLCompilerd)
+ find_library(HLSLLIB HLSLd)
+ find_library(SPIRVLIB SPIRVd)
+ENDIF()
+
+add_library(glslang STATIC IMPORTED GLOBAL)
+set_property(TARGET glslang PROPERTY IMPORTED_LOCATION "${GLSLANG}")
+set(glslang_SOURCE_DIR "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" CACHE STRING "glslang source dir")
+set_property(TARGET glslang APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include")
+
+add_library(OSDependent STATIC IMPORTED GLOBAL)
+set_property(TARGET OSDependent PROPERTY IMPORTED_LOCATION "${OSDEPENDENT}")
+
+add_library(OGLCompiler STATIC IMPORTED GLOBAL)
+set_property(TARGET OGLCompiler PROPERTY IMPORTED_LOCATION "${OGLCOMPILER}")
+
+add_library(HLSL STATIC IMPORTED GLOBAL)
+set_property(TARGET HLSL PROPERTY IMPORTED_LOCATION "${HLSLLIB}")
+
+add_library(SPIRV STATIC IMPORTED GLOBAL)
+set_property(TARGET SPIRV PROPERTY IMPORTED_LOCATION "${SPIRVLIB}")
diff --git a/ports/shaderc/CMakeLists_spirv.txt b/ports/shaderc/CMakeLists_spirv.txt
index 6aa738b1f..618177fa6 100644
--- a/ports/shaderc/CMakeLists_spirv.txt
+++ b/ports/shaderc/CMakeLists_spirv.txt
@@ -1,5 +1,5 @@
option(SUFFIX_D "Add d Suffix to lib" ${SUFFIX_D})
-if(NOT ${SUFFIX_D})
+if(NOT SUFFIX_D)
find_library(SPIRVTOOLSOPT spirv-tools-opt)
find_library(SPIRVTOOLS spirv-tools)
ELSE()
diff --git a/ports/shaderc/CONTROL b/ports/shaderc/CONTROL
index 6cab280a6..5a5c2c580 100644
--- a/ports/shaderc/CONTROL
+++ b/ports/shaderc/CONTROL
@@ -1,4 +1,4 @@
Source: shaderc
-Version: 2df47b51d83ad83cbc2e7f8ff2b56776293e8958
+Version: 12fb656ab20ea9aa06e7084a74e5ff832b7ce2da-1
Description: A collection of tools, libraries and tests for shader compilation.
Build-Depends: glslang, spirv-tools
diff --git a/ports/shaderc/portfile.cmake b/ports/shaderc/portfile.cmake
index eb17aa827..2b925455b 100644
--- a/ports/shaderc/portfile.cmake
+++ b/ports/shaderc/portfile.cmake
@@ -7,35 +7,19 @@
#
include(vcpkg_common_functions)
-find_program(GIT git)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/shaderc
+ REF 12fb656ab20ea9aa06e7084a74e5ff832b7ce2da
+ SHA512 6fb45a0b01e6709c44a11658648b9271fe06bd94023dcc5042c47b5f2a04889c2efb0ab4c166f18728594ac9b9aa9f8b354af46d88eb7f7c39c7246f52f5a933
+ HEAD_REF master
+)
-set(SHADERC_GIT_URL "https://github.com/google/shaderc.git")
-set(SHADERC_GIT_REF "2df47b51d83ad83cbc2e7f8ff2b56776293e8958")
-if(NOT EXISTS "${DOWNLOADS}/shaderc.git")
- message(STATUS "Cloning")
- vcpkg_execute_required_process(
- COMMAND ${GIT} clone --bare ${SHADERC_GIT_URL} ${DOWNLOADS}/shaderc.git
- WORKING_DIRECTORY ${DOWNLOADS}
- LOGNAME clone
- )
-endif()
-if(NOT EXISTS "${SOURCE_PATH}/.git")
- message(STATUS "Adding worktree and patching")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR})
- vcpkg_execute_required_process(
- COMMAND ${GIT} worktree add -f --detach ${SOURCE_PATH} ${SHADERC_GIT_REF}
- WORKING_DIRECTORY ${DOWNLOADS}/shaderc.git
- LOGNAME worktree
- )
- message(STATUS "Patching")
- vcpkg_execute_required_process(
- COMMAND ${GIT} apply ${CMAKE_CURRENT_LIST_DIR}/0001-Do-not-generate-build-version.inc.patch --ignore-whitespace --whitespace=fix
- WORKING_DIRECTORY ${SOURCE_PATH}
- LOGNAME patch
- )
-endif()
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-Do-not-generate-build-version.inc.patch
+)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/third_party/glslang)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_spirv.txt DESTINATION ${SOURCE_PATH}/third_party/spirv-tools)
@@ -69,10 +53,7 @@ file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools)
#Safe to remove as libs are static
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug)
-
-
-file(WRITE ${CURRENT_PACKAGES_DIR}/include/shaderc.txt)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/shaderc)
diff --git a/ports/shapelib/CONTROL b/ports/shapelib/CONTROL
new file mode 100644
index 000000000..57fbecb53
--- /dev/null
+++ b/ports/shapelib/CONTROL
@@ -0,0 +1,3 @@
+Source: shapelib
+Version: 1.4.1-1
+Description: Shapefile C Library is simple C API for reading and writing ESRI Shapefiles
diff --git a/ports/shapelib/option-build-test.patch b/ports/shapelib/option-build-test.patch
new file mode 100644
index 000000000..c91410f38
--- /dev/null
+++ b/ports/shapelib/option-build-test.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c3ef935..845ec06 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -148,7 +148,7 @@ set(executables
+ find_program(BASH_EXECUTABLE bash)
+ find_program(SED_EXECUTABLE sed)
+ if(BASH_EXECUTABLE AND SED_EXECUTABLE)
+- set(BUILD_TEST ON)
++ option(BUILD_TEST "" ON)
+ else(BASH_EXECUTABLE AND SED_EXECUTABLE)
+ message(STATUS "WARNING: sed or bash not available so disabling testing")
+ endif(BASH_EXECUTABLE AND SED_EXECUTABLE)
diff --git a/ports/shapelib/portfile.cmake b/ports/shapelib/portfile.cmake
new file mode 100644
index 000000000..eed76736f
--- /dev/null
+++ b/ports/shapelib/portfile.cmake
@@ -0,0 +1,52 @@
+include(vcpkg_common_functions)
+
+set(SHAPELIB_VERSION 1.4.1)
+set(SHAPELIB_HASH e3e02dde8006773fed25d630896e79fd79d2008a029cc86b157fe0d92c143a9fab930fdb93d9700d4e1397c3b23ae4b86e91db1dbaca1c5388d4e3aea0309341)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/shapelib-${SHAPELIB_VERSION})
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://download.osgeo.org/shapelib/shapelib-${SHAPELIB_VERSION}.zip"
+ FILENAME "shapelib-${SHAPELIB_VERSION}.zip"
+ SHA512 ${SHAPELIB_HASH}
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/option-build-test.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_TEST=OFF
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(GLOB EXES "${CURRENT_PACKAGES_DIR}/bin/*.exe")
+if(EXES)
+ file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/shapelib)
+ file(REMOVE ${EXES})
+endif()
+
+file(GLOB DEBUG_EXES "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe")
+if(DEBUG_EXES)
+ file(REMOVE ${DEBUG_EXES})
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/shapelib)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/shapelib/COPYING ${CURRENT_PACKAGES_DIR}/share/shapelib/copyright)
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/shapelib)
+
+vcpkg_copy_pdbs()
diff --git a/ports/shogun/CONTROL b/ports/shogun/CONTROL
new file mode 100644
index 000000000..56b6250d6
--- /dev/null
+++ b/ports/shogun/CONTROL
@@ -0,0 +1,4 @@
+Source: shogun
+Version: 6.1.3
+Build-Depends: bzip2, eigen3, liblzma, libxml2, openblas (x64), nlopt, rxcpp, snappy, zlib, protobuf, curl, lzo, dirent
+Description: Unified and efficient Machine Learning
diff --git a/ports/shogun/MSDirent.cmake b/ports/shogun/MSDirent.cmake
new file mode 100644
index 000000000..dd895f970
--- /dev/null
+++ b/ports/shogun/MSDirent.cmake
@@ -0,0 +1 @@
+find_path(MSDIRENT_INCLUDE_DIR NAMES dirent.h)
diff --git a/ports/shogun/cmake.patch b/ports/shogun/cmake.patch
new file mode 100644
index 000000000..16f1c3ad4
--- /dev/null
+++ b/ports/shogun/cmake.patch
@@ -0,0 +1,73 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6c48bed..6f97c8b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -60,8 +60,8 @@ SET(SYSTEM_C_FLAGS "${CMAKE_C_FLAGS}")
+ SET(SYSTEM_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+ STRING(TOUPPER "${CMAKE_BUILD_TYPE}" BUILD_TYPE_UC)
+ IF(NOT ("${BUILD_TYPE_UC}" STREQUAL "DISTRIBUTION"))
+- SET(CMAKE_C_FLAGS "")
+- SET(CMAKE_CXX_FLAGS "")
++# SET(CMAKE_C_FLAGS "")
++# SET(CMAKE_CXX_FLAGS "")
+ ENDIF(NOT ("${BUILD_TYPE_UC}" STREQUAL "DISTRIBUTION"))
+
+ # CCACHE
+@@ -184,12 +184,12 @@ SET(SWIG_CXX_COMPILER_FLAGS "-O0 -g")
+ SET(CMAKE_C_FLAGS "${COMPILER_WARNINGS} ${CMAKE_C_FLAGS}")
+ SET(CMAKE_CXX_FLAGS "${COMPILER_WARNINGS} ${CMAKE_CXX_FLAGS}")
+ IF(MSVC)
+- SET(CMAKE_C_FLAGS_RELEASE "/O2 ${RELEASE_COMPILER_FLAGS}")
+- SET(CMAKE_CXX_FLAGS_RELEASE "/O2 ${RELEASE_COMPILER_FLAGS}")
+- SET(CMAKE_C_FLAGS_DISTRIBUTION "/Ot")
+- SET(CMAKE_CXX_FLAGS_DISTRIBUTION "/Ot")
+- SET(CMAKE_C_FLAGS_DEBUG "/DEBUG /Od /Zi")
+- SET(CMAKE_CXX_FLAGS_DEBUG "/DEBUG /Od /Zi")
++ # SET(CMAKE_C_FLAGS_RELEASE "/O2 ${RELEASE_COMPILER_FLAGS}")
++ # SET(CMAKE_CXX_FLAGS_RELEASE "/O2 ${RELEASE_COMPILER_FLAGS}")
++ # SET(CMAKE_C_FLAGS_DISTRIBUTION "/Ot")
++ # SET(CMAKE_CXX_FLAGS_DISTRIBUTION "/Ot")
++ # SET(CMAKE_C_FLAGS_DEBUG "/DEBUG /Od /Zi")
++ # SET(CMAKE_CXX_FLAGS_DEBUG "/DEBUG /Od /Zi")
+ add_compile_options("/bigobj")
+ ELSE()
+ SET(CMAKE_C_FLAGS_RELEASE "-O3 ${RELEASE_COMPILER_FLAGS}")
+diff --git a/cmake/version.cmake b/cmake/version.cmake
+index fbca111..f6847f7 100644
+--- a/cmake/version.cmake
++++ b/cmake/version.cmake
+@@ -5,7 +5,7 @@ SET(MAINVERSION ${VERSION})
+
+ SET(EXTRA "")
+
+-IF(EXISTS "${ROOT_DIR}/.git/")
++IF(EXISTS "${ROOT_DIR}/.git/" AND FALSE)
+ FIND_PACKAGE(Git QUIET)
+ IF (NOT GIT_FOUND)
+ MESSAGE(FATAL_ERROR "The source is checked out from a git repository, but cannot find git executable!")
+diff --git a/src/shogun/CMakeLists.txt b/src/shogun/CMakeLists.txt
+index 9e79786..fd76961 100644
+--- a/src/shogun/CMakeLists.txt
++++ b/src/shogun/CMakeLists.txt
+@@ -145,7 +145,7 @@ endif()
+ # add target for static library if enabled
+ if (LIBSHOGUN_BUILD_STATIC)
+ add_library(shogun-static STATIC $<TARGET_OBJECTS:libshogun> ${CMAKE_CURRENT_BINARY_DIR}/lib/config.h)
+- set_property(TARGET shogun-static PROPERTY OUTPUT_NAME shogun)
++ set_property(TARGET shogun-static PROPERTY OUTPUT_NAME libshogun)
+ target_include_directories(shogun-static PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src>
+ $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src>
+@@ -492,10 +492,12 @@ ELSE()
+ ENDIF()
+
+ # set the desidered targets to be installed
++if(NOT INSTALL_TARGETS)
+ set(INSTALL_TARGETS shogun)
+ if (LIBSHOGUN_BUILD_STATIC)
+ LIST(APPEND INSTALL_TARGETS shogun-static)
+ endif()
++endif()
+
+ INSTALL(
+ TARGETS ${INSTALL_TARGETS}
diff --git a/ports/shogun/portfile.cmake b/ports/shogun/portfile.cmake
new file mode 100644
index 000000000..e002ead4a
--- /dev/null
+++ b/ports/shogun/portfile.cmake
@@ -0,0 +1,78 @@
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("shogun only supports static library linkage")
+ set(VCPKG_LIBRARY_LINKAGE "static")
+endif()
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO shogun-toolbox/shogun
+ REF shogun_6.1.3
+ SHA512 11aeed456b13720099ca820ab9742c90ce4af2dc049602a425f8c44d2fa155327c7f1d3af2ec840666f600a91e75902d914ffe784d76ed35810da4f3a5815673
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/cmake.patch
+)
+
+file(REMOVE_RECURSE ${SOURCE_PATH}/cmake/external)
+file(MAKE_DIRECTORY ${SOURCE_PATH}/cmake/external)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/MSDirent.cmake DESTINATION ${SOURCE_PATH}/cmake/external)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(CMAKE_DISABLE_FIND_PACKAGE_BLAS 0)
+else()
+ set(CMAKE_DISABLE_FIND_PACKAGE_BLAS 1)
+endif()
+
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY)
+set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}")
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_META_EXAMPLES=OFF
+ -DBUILD_EXAMPLES=OFF
+ -DUSE_SVMLIGHT=OFF
+ -DENABLE_TESTING=OFF
+ -DLICENSE_GPL_SHOGUN=OFF
+ # Conflicting definitions in OpenBLAS and Eigen
+ -DENABLE_EIGEN_LAPACK=OFF
+
+ -DCMAKE_DISABLE_FIND_PACKAGE_JSON=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_ViennaCL=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_TFLogger=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_GLPK=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_CPLEX=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_ARPACK=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_Mosek=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_LpSolve=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_ColPack=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_ARPREC=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_Ctags=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_CCache=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_BLAS=${CMAKE_DISABLE_FIND_PACKAGE_BLAS}
+
+ -DINSTALL_TARGETS=shogun-static
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/shogun)
+
+file(REMOVE_RECURSE
+ # This directory is empty given the settings above
+ ${CURRENT_PACKAGES_DIR}/include/shogun/mathematics/linalg/backend
+ ${CURRENT_PACKAGES_DIR}/debug/include
+ ${CURRENT_PACKAGES_DIR}/debug/share
+)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/shogun)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/shogun/COPYING ${CURRENT_PACKAGES_DIR}/share/shogun/copyright)
diff --git a/ports/signalrclient/CONTROL b/ports/signalrclient/CONTROL
index a5673e964..fe8aa7dc5 100644
--- a/ports/signalrclient/CONTROL
+++ b/ports/signalrclient/CONTROL
@@ -1,4 +1,4 @@
Source: signalrclient
-Version: 1.0.0-beta1
+Version: 1.0.0-beta1-3
Build-Depends: cpprestsdk
-Description: C++ client for SignalR. \ No newline at end of file
+Description: C++ client for SignalR.
diff --git a/ports/signalrclient/portfile.cmake b/ports/signalrclient/portfile.cmake
index 22e91acab..50f6b0b89 100644
--- a/ports/signalrclient/portfile.cmake
+++ b/ports/signalrclient/portfile.cmake
@@ -1,27 +1,29 @@
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SignalR-Client-Cpp-1.0.0-beta1)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/aspnet/SignalR-Client-Cpp/archive/1.0.0-beta1.tar.gz"
- FILENAME "SignalR-Client-Cpp-1.0.0-beta1.tar.gz"
- SHA512 e0090415aa724087dbe2a317a4642d6359b134e00e836ea70c71bc9186dc8d6bba097666711ab18d9b0a390e1e5f59be2f55279b6859ac20d558b901bf5fe2f2
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO SignalR/SignalR-Client-Cpp
+ REF 1.0.0-beta1
+ SHA512 b38f6f946f1499080071949cbcf574405118f9acfb469441e5b5b0df3e5f0d277a83b30e0d613dc5e54732b9071e3273dac1ee65129f994d5a60eef0e45bdf6c
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch
)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS_DEBUG
- -DCPPREST_SO=${CURRENT_INSTALLED_DIR}/debug/lib/cpprest_2_9.lib
- OPTIONS_RELEASE
- -DCPPREST_SO=${CURRENT_INSTALLED_DIR}/lib/cpprest_2_9.lib
+ OPTIONS_DEBUG
+ -DCPPREST_SO=${CURRENT_INSTALLED_DIR}/debug/lib/cpprest_2_10.lib
+ OPTIONS_RELEASE
+ -DCPPREST_SO=${CURRENT_INSTALLED_DIR}/lib/cpprest_2_10.lib
OPTIONS
- -DCPPREST_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include
+ -DCPPREST_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include
-DDISABLE_TESTS=ON
)
@@ -31,4 +33,4 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
# copy license
file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/signalrclient)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/signalrclient/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/signalrclient/copyright) \ No newline at end of file
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/signalrclient/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/signalrclient/copyright)
diff --git a/ports/smpeg2/CMakeLists.txt b/ports/smpeg2/CMakeLists.txt
index 9f061cfb8..aa36bbb21 100644
--- a/ports/smpeg2/CMakeLists.txt
+++ b/ports/smpeg2/CMakeLists.txt
@@ -1,8 +1,8 @@
cmake_minimum_required(VERSION 2.6)
-project(SMPEG2)
+project(SMPEG2 CXX)
find_path(SDL_INCLUDE_DIR SDL2/SDL.h)
-find_library(SDL_LIBRARY SDL2)
+find_library(SDL_LIBRARY NAMES SDL2d SDL2)
include_directories(${SDL_INCLUDE_DIR})
include_directories(${SDL_INCLUDE_DIR}/SDL2)
@@ -42,6 +42,7 @@ add_library(smpeg2
MPEGsystem.cpp
smpeg.cpp)
+set_target_properties(smpeg2 PROPERTIES DEFINE_SYMBOL SDL2_EXPORTS)
target_link_libraries(smpeg2 ${SDL_LIBRARY})
install(TARGETS smpeg2
diff --git a/ports/smpeg2/CONTROL b/ports/smpeg2/CONTROL
index 8465a6446..0b0bee21e 100644
--- a/ports/smpeg2/CONTROL
+++ b/ports/smpeg2/CONTROL
@@ -1,4 +1,4 @@
Source: smpeg2
-Version: 2.0.0
+Version: 2.0.0-3
Description: SDL MPEG Player Library
Build-Depends: sdl2
diff --git a/ports/smpeg2/portfile.cmake b/ports/smpeg2/portfile.cmake
index 43e6e623e..7639ca264 100644
--- a/ports/smpeg2/portfile.cmake
+++ b/ports/smpeg2/portfile.cmake
@@ -17,6 +17,7 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS_DEBUG
-DSMPEG_SKIP_HEADERS=ON)
diff --git a/ports/snappy/CMakeLists.txt b/ports/snappy/CMakeLists.txt
deleted file mode 100644
index ea613019d..000000000
--- a/ports/snappy/CMakeLists.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-# https://github.com/google/snappy/pull/29
-CMAKE_MINIMUM_REQUIRED(VERSION 3.4)
-PROJECT(snappy VERSION 1.1.4 LANGUAGES C CXX)
-
-option(SNAPPY_BUILD_TESTS "Build snappy tests" OFF)
-
-SET(CMAKE_INCLUDE_CURRENT_DIR ON)
-
-INCLUDE(CheckIncludeFiles)
-INCLUDE(CheckLibraryExists)
-INCLUDE(CheckCXXSourceCompiles)
-INCLUDE(CMakePackageConfigHelpers)
-
-CHECK_INCLUDE_FILES("byteswap.h" HAVE_BYTESWAP_H)
-CHECK_INCLUDE_FILES("dlfcn.h" HAVE_DLFCN_H)
-CHECK_INCLUDE_FILES("inttypes.h" HAVE_INTTYPES_H)
-CHECK_INCLUDE_FILES("memory.h" HAVE_MEMORY_H)
-CHECK_INCLUDE_FILES("stddef.h" HAVE_STDDEF_H)
-CHECK_INCLUDE_FILES("stdint.h" HAVE_STDINT_H)
-CHECK_INCLUDE_FILES("stdlib.h" HAVE_STDLIB_H)
-CHECK_INCLUDE_FILES("strings.h" HAVE_STRINGS_H)
-CHECK_INCLUDE_FILES("string.h" HAVE_STRING_H)
-CHECK_INCLUDE_FILES("sys/byteswap.h" HAVE_SYS_BYTESWAP_H)
-CHECK_INCLUDE_FILES("sys/endian.h" HAVE_SYS_ENDIAN_H)
-CHECK_INCLUDE_FILES("sys/mman.h" HAVE_SYS_MMAN_H)
-CHECK_INCLUDE_FILES("sys/resource.h" HAVE_SYS_RESOURCE_H)
-CHECK_INCLUDE_FILES("sys/stat.h" HAVE_SYS_STAT_H)
-CHECK_INCLUDE_FILES("sys/time.h" HAVE_SYS_TIME_H)
-CHECK_INCLUDE_FILES("sys/types.h" HAVE_SYS_TYPES_H)
-CHECK_INCLUDE_FILES("sys/uio.h" HAVE_SYS_UIO_H)
-CHECK_INCLUDE_FILES("unistd.h" HAVE_UNISTD_H)
-CHECK_INCLUDE_FILES("windows.h" HAVE_WINDOWS_H)
-
-IF (NOT HAVE_SYS_UIO_H)
- SET(HAVE_SYS_UIO_H 0)
-ENDIF (NOT HAVE_SYS_UIO_H)
-
-IF (NOT HAVE_STDINT_H)
- SET(HAVE_STDINT_H 0)
-ENDIF (NOT HAVE_STDINT_H)
-
-IF (NOT HAVE_STDDEF_H)
- SET(HAVE_STDDEF_H 0)
-ENDIF (NOT HAVE_STDDEF_H)
-
-CHECK_CXX_SOURCE_COMPILES("int main(void) { return __builtin_expect(0, 1); }"
- HAVE_BUILTIN_EXPECT)
-
-CHECK_CXX_SOURCE_COMPILES("int main(void) { return __builtin_ctzll(0); }"
- HAVE_BUILTIN_CTZ)
-
-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in config.h)
-
-# Configure snappy-stubs-public.h.in
-SET(ac_cv_have_stdint_h ${HAVE_STDINT_H})
-SET(ac_cv_have_stddef_h ${HAVE_STDDEF_H})
-SET(ac_cv_have_sys_uio_h ${HAVE_SYS_UIO_H})
-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/snappy-stubs-public.h.in
- snappy-stubs-public.h)
-
-IF (MSVC AND (CMAKE_SIZEOF_VOID_P EQUAL 8))
- ADD_DEFINITIONS(-D__SSE2__)
-ENDIF (MSVC AND (CMAKE_SIZEOF_VOID_P EQUAL 8))
-
-IF (WIN32)
- ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
-ENDIF (WIN32)
-
-# Define the main library.
-ADD_LIBRARY(snappy
- snappy-c.cc
- snappy-c.h
- snappy-sinksource.cc
- snappy-sinksource.h
- snappy-stubs-internal.cc
- snappy-stubs-public.h
- snappy.cc
- snappy.h)
-
-TARGET_COMPILE_DEFINITIONS(snappy PRIVATE -DHAVE_CONFIG_H)
-
-SET_TARGET_PROPERTIES(snappy PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
-
-INSTALL(FILES snappy.h
- snappy-c.h
- snappy-sinksource.h
- ${CMAKE_CURRENT_BINARY_DIR}/snappy-stubs-public.h
- DESTINATION include)
-
-INSTALL(TARGETS snappy
- EXPORT SnappyTargets
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib)
-INSTALL(EXPORT SnappyTargets NAMESPACE Snappy:: DESTINATION share/snappy)
-
-SET(INCLUDE_INSTALL_DIR include)
-SET(LIBRARY_INSTALL_DIR lib)
-SET(BINARY_INSTALL_DIR bin)
-
-WRITE_BASIC_PACKAGE_VERSION_FILE(${CMAKE_CURRENT_BINARY_DIR}/SnappyConfigVersion.cmake
- COMPATIBILITY SameMajorVersion)
-CONFIGURE_PACKAGE_CONFIG_FILE(SnappyConfig.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/SnappyConfig.cmake
- INSTALL_DESTINATION share/snappy
- PATH_VARS INCLUDE_INSTALL_DIR LIBRARY_INSTALL_DIR BINARY_INSTALL_DIR
- )
-
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/SnappyConfig.cmake
- ${CMAKE_CURRENT_BINARY_DIR}/SnappyConfigVersion.cmake
- DESTINATION share/snappy)
-
-if (SNAPPY_BUILD_TESTS)
- FIND_PACKAGE(zlib QUIET)
- if (NOT ZLIB_FOUND)
- CHECK_LIBRARY_EXISTS(zlib zlibVersion "" HAVE_LIBZ)
- ENDIF (NOT ZLIB_FOUND)
- CHECK_LIBRARY_EXISTS(lzo2 lzo1x_1_15_compress "" HAVE_LIBLZO2)
- CHECK_LIBRARY_EXISTS(lzf lzf_compress "" HAVE_LIBLZF)
- CHECK_LIBRARY_EXISTS(fastlz fastlz_compress "" HAVE_LIBFASTLZ)
- CHECK_LIBRARY_EXISTS(quicklz qlz_compress "" HAVE_LIBQUICKLZ)
-
- FIND_PACKAGE(GTest REQUIRED)
- SET(HAVE_GTEST 1)
-
- FIND_PACKAGE(Gflags REQUIRED)
- SET(HAVE_GFLAGS 1)
-
- ENABLE_TESTING()
-
- IF (ZLIB_FOUND)
- set(HAVE_LIBZ 1)
- LIST(APPEND COMPRESSION_LIBS ${ZLIB_LIBRARIES})
- ELSE()
- LIST(APPEND COMPRESSION_LIBS zlib)
- ENDIF (ZLIB_FOUND)
-
- IF (HAVE_LIBLZO2)
- LIST(APPEND COMPRESSION_LIBS lzo2)
- ENDIF (HAVE_LIBLZO2)
-
- IF (HAVE_LIBLZF)
- LIST(APPEND COMPRESSION_LIBS lzf)
- ENDIF (HAVE_LIBLZF)
-
- IF (HAVE_LIBFASTLZ)
- LIST(APPEND COMPRESSION_LIBS fastlz)
- ENDIF (HAVE_LIBFASTLZ)
-
- IF (HAVE_LIBQUICKLZ)
- LIST(APPEND COMPRESSION_LIBS quicklz)
- ENDIF (HAVE_LIBQUICKLZ)
-
- ADD_EXECUTABLE(snappy-unittest snappy_unittest.cc snappy-test.cc)
- TARGET_COMPILE_DEFINITIONS(snappy-unittest PRIVATE -DHAVE_CONFIG_H)
- TARGET_LINK_LIBRARIES(snappy-unittest snappy ${COMPRESSION_LIBS}
- ${GFLAGS_LIBRARIES})
- TARGET_INCLUDE_DIRECTORIES(snappy-unittest BEFORE PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
- ${GTEST_INCLUDE_DIRS} ${GFLAGS_INCLUDE_DIRS})
-
- ADD_TEST(NAME snappy-unittest
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- COMMAND ${CMAKE_CURRENT_BINARY_DIR}/snappy-unittest)
-endif (SNAPPY_BUILD_TESTS)
diff --git a/ports/snappy/CONTROL b/ports/snappy/CONTROL
index 7d09402bf..d90f5039c 100644
--- a/ports/snappy/CONTROL
+++ b/ports/snappy/CONTROL
@@ -1,3 +1,3 @@
Source: snappy
-Version: 1.1.4-1
+Version: 1.1.7-2
Description: A fast compressor/decompressor.
diff --git a/ports/snappy/SnappyConfig.cmake.in b/ports/snappy/SnappyConfig.cmake.in
deleted file mode 100644
index 80387748c..000000000
--- a/ports/snappy/SnappyConfig.cmake.in
+++ /dev/null
@@ -1,9 +0,0 @@
-set(SNAPPY_VERSION @SNAPPY_MAJOR@.@SNAPPY_MINOR@.@SNAPPY_PATCHLEVEL@)
-
-@PACKAGE_INIT@
-
-set_and_check(SNAPPY_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
-set_and_check(SNAPPY_LIBRARY_DIR "@PACKAGE_LIBRARY_INSTALL_DIR@")
-set_and_check(SNAPPY_BINARY_DIR "@PACKAGE_BINARY_INSTALL_DIR@")
-
-check_required_components(SNAPPY)
diff --git a/ports/snappy/config.h.in b/ports/snappy/config.h.in
deleted file mode 100644
index 32297cd4f..000000000
--- a/ports/snappy/config.h.in
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef SNAPPY_CONFIG_H
-#define SNAPPY_CONFIG_H 1
-
-/* Define to 1 if the compiler supports __builtin_ctz and friends. */
-#cmakedefine HAVE_BUILTIN_CTZ ${HAVE_BUILTIN_CTZ}
-
-/* Define to 1 if the compiler supports __builtin_expect. */
-#cmakedefine HAVE_BUILTIN_EXPECT ${HAVE_BUILTIN_EXPECT}
-
-/* Define to 1 if you have the <byteswap.h> header file. */
-#cmakedefine HAVE_BYTESWAP_H ${HAVE_BYTESWAP_H}
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#cmakedefine HAVE_DLFCN_H ${HAVE_DLFCN_H}
-
-/* Use the gflags package for command-line parsing. */
-#cmakedefine HAVE_GFLAGS ${HAVE_GFLAGS}
-
-/* Defined when Google Test is available. */
-#cmakedefine HAVE_GTEST ${HAVE_GTEST}
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#cmakedefine HAVE_INTTYPES_H ${HAVE_INTTYPES_H}
-
-/* Define to 1 if you have the `fastlz' library (-lfastlz). */
-#cmakedefine HAVE_LIBFASTLZ ${HAVE_LIBFASTLZ}
-
-/* Define to 1 if you have the `lzf' library (-llzf). */
-#cmakedefine HAVE_LIBLZF ${HAVE_LIBLZF}
-
-/* Define to 1 if you have the `lzo2' library (-llzo2). */
-#cmakedefine HAVE_LIBLZO2 ${HAVE_LIBLZO2}
-
-/* Define to 1 if you have the `quicklz' library (-lquicklz). */
-#cmakedefine HAVE_LIBQUICKLZ ${HAVE_LIBQUICKLZ}
-
-/* Define to 1 if you have the `z' library (-lz). */
-#cmakedefine HAVE_LIBZ ${HAVE_LIBZ}
-
-/* Define to 1 if you have the <sys/uio.h> header file. */
-#cmakedefine HAVE_SYS_UIO_H ${HAVE_SYS_UIO_H}
-
-/* Define to 1 if you have the <memory.h> header file. */
-#cmakedefine HAVE_MEMORY_H ${HAVE_MEMORY_H}
-
-/* Define to 1 if you have the <stddef.h> header file. */
-#cmakedefine HAVE_STDDEF_H ${HAVE_STDDEF_H}
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#cmakedefine HAVE_STDINT_H ${HAVE_STDINT_H}
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#cmakedefine HAVE_STDLIB_H ${HAVE_STDLIB_H}
-
-/* Define to 1 if you have the <strings.h> header file. */
-#cmakedefine HAVE_STRINGS_H ${HAVE_STRINGS_H}
-
-/* Define to 1 if you have the <string.h> header file. */
-#cmakedefine HAVE_STRING_H ${HAVE_STRING_H}
-
-/* Define to 1 if you have the <sys/byteswap.h> header file. */
-#cmakedefine HAVE_SYS_BYTESWAP_H ${HAVE_SYS_BYTESWAP_H}
-
-/* Define to 1 if you have the <sys/endian.h> header file. */
-#cmakedefine HAVE_SYS_ENDIAN_H ${HAVE_SYS_ENDIAN_H}
-
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#cmakedefine HAVE_SYS_MMAN_H ${HAVE_SYS_MMAN_H}
-
-/* Define to 1 if you have the <sys/resource.h> header file. */
-#cmakedefine HAVE_SYS_RESOURCE_H ${HAVE_SYS_RESOURCE_H}
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#cmakedefine HAVE_SYS_STAT_H ${HAVE_SYS_STAT_H}
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#cmakedefine HAVE_SYS_TIME_H ${HAVE_SYS_TIME_H}
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#cmakedefine HAVE_SYS_TYPES_H ${HAVE_SYS_TYPES}
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#cmakedefine HAVE_UNISTD_H ${HAVE_UNISTD_H}
-
-/* Define to 1 if you have the <windows.h> header file. */
-#cmakedefine HAVE_WINDOWS_H ${HAVE_WINDOWS_H}
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
- significant byte first (like Motorola and SPARC, unlike Intel and VAX). */
-#cmakedefine WORDS_BIGENDIAN
-
-#endif
diff --git a/ports/snappy/portfile.cmake b/ports/snappy/portfile.cmake
index d4bb7bb20..c88ff60eb 100644
--- a/ports/snappy/portfile.cmake
+++ b/ports/snappy/portfile.cmake
@@ -3,24 +3,22 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO google/snappy
- REF 1.1.4
- SHA512 873f655713611f4bdfc13ab2a6d09245681f427fbd4f6a7a880a49b8c526875dbdd623e203905450268f542be24a2dc9dae50e6acc1516af1d2ffff3f96553da
+ REF 1.1.7
+ SHA512 32046f532606ba545a4e4825c0c66a19be449f2ca2ff760a6fa170a3603731479a7deadb683546e5f8b5033414c50f4a9a29f6d23b7a41f047e566e69eca7caf
HEAD_REF master
)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/SnappyConfig.cmake.in DESTINATION ${SOURCE_PATH})
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h.in DESTINATION ${SOURCE_PATH})
-
vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH})
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DSNAPPY_BUILD_TESTS=OFF
+ -DCMAKE_DEBUG_POSTFIX=d)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/Snappy)
vcpkg_copy_pdbs()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/share/snappy/SnappyConfigVersion.cmake)
-vcpkg_fixup_cmake_targets()
-
-file(COPY ${CURRENT_BUILDTREES_DIR}/src/snappy-1.1.4/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/snappy)
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/snappy)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/snappy/COPYING ${CURRENT_PACKAGES_DIR}/share/snappy/copyright)
diff --git a/ports/sobjectizer/CONTROL b/ports/sobjectizer/CONTROL
new file mode 100644
index 000000000..839c2ed42
--- /dev/null
+++ b/ports/sobjectizer/CONTROL
@@ -0,0 +1,3 @@
+Source: sobjectizer
+Version: 5.5.22
+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
new file mode 100644
index 000000000..ed6b3f844
--- /dev/null
+++ b/ports/sobjectizer/portfile.cmake
@@ -0,0 +1,36 @@
+include(vcpkg_common_functions)
+
+set(VERSION 5.5.22)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/so-${VERSION}/dev)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://sourceforge.net/projects/sobjectizer/files/sobjectizer/SObjectizer%20Core%20v.5.5/so-${VERSION}.zip"
+ FILENAME "so-${VERSION}.zip"
+ SHA512 0f7c109a890fc4271a4f45ff009811d5d7479cec86ce8f6a312979bfd07a55e46069511d7868e1c7bf29e5ff6495d22d71fd3ba2b1253b2fb9299657d7b0384d
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(SOBJECTIZER_BUILD_STATIC ON)
+ set(SOBJECTIZER_BUILD_SHARED OFF)
+else()
+ set(SOBJECTIZER_BUILD_STATIC OFF)
+ set(SOBJECTIZER_BUILD_SHARED ON)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DSOBJECTIZER_BUILD_STATIC=${SOBJECTIZER_BUILD_STATIC}
+ -DSOBJECTIZER_BUILD_SHARED=${SOBJECTIZER_BUILD_SHARED}
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/sobjectizer")
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/../LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/sobjectizer)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/sobjectizer/LICENSE ${CURRENT_PACKAGES_DIR}/share/sobjectizer/copyright)
diff --git a/ports/soci/CONTROL b/ports/soci/CONTROL
index 5480bb712..41b3d4190 100644
--- a/ports/soci/CONTROL
+++ b/ports/soci/CONTROL
@@ -1,3 +1,4 @@
Source: soci
-Version: 2016.10.22
+Version: 3.2.3-1
+Build-Depends: sqlite3
Description: SOCI database access library
diff --git a/ports/soci/no-define-snprintf.patch b/ports/soci/no-define-snprintf.patch
new file mode 100644
index 000000000..ab6db0d1a
--- /dev/null
+++ b/ports/soci/no-define-snprintf.patch
@@ -0,0 +1,14 @@
+diff --git a/src/core/soci-platform.h b/src/core/soci-platform.h
+index aa5e4b1..2d8c5c7 100644
+--- a/src/core/soci-platform.h
++++ b/src/core/soci-platform.h
+@@ -24,7 +24,9 @@
+ #endif
+
+ // Define if you have the snprintf variants.
++#if _MSC_VER < 1900
+ #define snprintf _snprintf
++#endif
+
+ // Define if you have the strtoll and strtoull variants.
+ #if _MSC_VER < 1300
diff --git a/ports/soci/portfile.cmake b/ports/soci/portfile.cmake
index 0358297c5..b26355293 100644
--- a/ports/soci/portfile.cmake
+++ b/ports/soci/portfile.cmake
@@ -1,53 +1,44 @@
-# 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}
-#
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/soci-6eb1a3e9775ab7cdbf0f7f5aa5891792313cd8d9)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/SOCI/soci/archive/6eb1a3e9775ab7cdbf0f7f5aa5891792313cd8d9.zip"
- FILENAME "soci-master-2016.10.22.zip"
- SHA512 6bb0f7d3442de627089760485d3e663f12873b4871c4b4b4dfac5d380bad014865ac8382f7356e02514e9140f187dea8dcf8d6c25ac9c3e827e9fa69e9ed13b5
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO SOCI/soci
+ REF 3.2.3
+ SHA512 8c597b37efe82c85e6d951f66cb0f818d2c12cb673914bc7b322bc0a9da676e6c02f221c9104fb06d1b4b02fed4e5a4fb872dd3370b9117f248c3b948faf4fb3
+ HEAD_REF master
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/no-define-snprintf.patch"
)
-vcpkg_extract_source_archive(${ARCHIVE})
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- set(SOCI_STATIC OFF)
- set(SOCI_DYNAMIC ON)
-elseif(VCPKG_LIBRARY_LINKAGE STREQUAL static)
- set(SOCI_STATIC ON)
- set(SOCI_DYNAMIC OFF)
-endif()
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SOCI_DYNAMIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SOCI_STATIC)
vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
+ SOURCE_PATH ${SOURCE_PATH}/src
+ PREFER_NINJA
OPTIONS
-DSOCI_TESTS=OFF
-DSOCI_CXX_C11=ON
- -DSOCI_LIBDIR=lib # This is to always have output in the lib folder and not lib64 for 64-bit builds
+ -DSOCI_LIBDIR:STRING=lib # This is to always have output in the lib folder and not lib64 for 64-bit builds
+ -DLIBDIR:STRING=lib
-DSOCI_STATIC=${SOCI_STATIC}
-DSOCI_SHARED=${SOCI_DYNAMIC}
+
+ -DWITH_SQLITE3=ON
+
+ -DWITH_BOOST=OFF
+ -DWITH_MYSQL=OFF
+ -DWITH_ODBC=OFF
+ -DWITH_ORACLE=OFF
+ -DWITH_POSTGRESQL=OFF
+ -DWITH_FIREBIRD=OFF
+ -DWITH_DB2=OFF
)
vcpkg_install_cmake()
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/soci)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/SOCI.cmake ${CURRENT_PACKAGES_DIR}/share/soci/SOCIConfig.cmake)
-file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/SOCI-release.cmake ${CURRENT_PACKAGES_DIR}/share/soci/SOCI-release.cmake)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/cmake/SOCI-debug.cmake ${CURRENT_PACKAGES_DIR}/share/soci/SOCI-debug.cmake)
-file(READ ${CURRENT_PACKAGES_DIR}/share/soci/SOCIConfig.cmake CONFIG_FILE)
-set(pattern "get_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)\n")
-string(REPLACE "${pattern}" "${pattern}${pattern}" CONFIG_FILE ${CONFIG_FILE})
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/soci/SOCIConfig.cmake ${CONFIG_FILE})
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
# Handle copyright
-file(COPY ${SOURCE_PATH}/LICENSE_1_0.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/soci)
+file(COPY ${SOURCE_PATH}/src/LICENSE_1_0.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/soci)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/soci/LICENSE_1_0.txt ${CURRENT_PACKAGES_DIR}/share/soci/copyright)
vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/soil/CMakeLists.txt b/ports/soil/CMakeLists.txt
new file mode 100644
index 000000000..5cee52a60
--- /dev/null
+++ b/ports/soil/CMakeLists.txt
@@ -0,0 +1,50 @@
+cmake_minimum_required(VERSION 3.8)
+
+project(SOIL C)
+
+option(INSTALL_HEADERS "Install header files" ON)
+
+set(INSTALL_CMAKE_DIR share/soil)
+
+add_library(SOIL STATIC
+ src/image_helper.c
+ src/stb_image_aug.c
+ src/image_DXT.c
+ src/SOIL.c)
+
+target_include_directories(SOIL INTERFACE $<INSTALL_INTERFACE:include>)
+
+if(INSTALL_HEADERS)
+ install(TARGETS SOIL
+ EXPORT SOILTargets
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib)
+
+ install(FILES src/SOIL.h
+ DESTINATION include/SOIL/)
+
+ # Prepare and install package files
+ set(SOIL_VERSION "2018.7.7")
+
+ export(TARGETS SOIL FILE "${PROJECT_BINARY_DIR}/SOILTargets.cmake")
+
+ export(PACKAGE SOIL)
+
+ # Create the SOILConfig.cmake and SOILConfigVersion files
+ configure_file(SOILConfig.cmake.in "${PROJECT_BINARY_DIR}/SOILConfig.cmake" @ONLY)
+ configure_file(SOILConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/SOILConfigVersion.cmake" @ONLY)
+
+ # Install the SOILConfig.cmake and SOILConfigVersion.cmake
+ install(FILES
+ "${PROJECT_BINARY_DIR}/SOILConfig.cmake"
+ "${PROJECT_BINARY_DIR}/SOILConfigVersion.cmake"
+ DESTINATION "${INSTALL_CMAKE_DIR}")
+
+ # Install the export set for use with the install-tree
+ install(EXPORT SOILTargets DESTINATION
+ "${INSTALL_CMAKE_DIR}")
+else()
+ install(TARGETS SOIL
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib)
+endif()
diff --git a/ports/soil/CONTROL b/ports/soil/CONTROL
new file mode 100644
index 000000000..412857025
--- /dev/null
+++ b/ports/soil/CONTROL
@@ -0,0 +1,3 @@
+Source: soil
+Version: 2008.07.07-1
+Description: Simple OpenGL Image Library
diff --git a/ports/soil/LICENSE b/ports/soil/LICENSE
new file mode 100644
index 000000000..22f05fdf9
--- /dev/null
+++ b/ports/soil/LICENSE
@@ -0,0 +1,6 @@
+https://www.lonesock.net/soil.html
+
+Simple OpenGL Image Library
+
+License:
+Public Domain
diff --git a/ports/soil/SOILConfig.cmake.in b/ports/soil/SOILConfig.cmake.in
new file mode 100644
index 000000000..730e8879f
--- /dev/null
+++ b/ports/soil/SOILConfig.cmake.in
@@ -0,0 +1,13 @@
+# - Config file for the SOIL package
+# It defines the following variables
+# SOIL_INCLUDE_DIRS - include directories for SOIL
+# SOIL_LIBRARIES - libraries to link against
+
+# Load targets
+get_filename_component(SOIL_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+include("${SOIL_CMAKE_DIR}/SOILTargets.cmake")
+
+# Set properties
+get_target_property(SOIL_INCLUDE_DIRS SOIL INTERFACE_INCLUDE_DIRECTORIES)
+set(SOIL_LIBRARIES SOIL)
+mark_as_advanced(SOIL_INCLUDE_DIRS SOIL_LIBRARIES)
diff --git a/ports/soil/SOILConfigVersion.cmake.in b/ports/soil/SOILConfigVersion.cmake.in
new file mode 100644
index 000000000..1e3e04965
--- /dev/null
+++ b/ports/soil/SOILConfigVersion.cmake.in
@@ -0,0 +1,11 @@
+set(PACKAGE_VERSION "@SOIL_VERSION@")
+
+# Check whether the requested PACKAGE_FIND_VERSION is compatible
+if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else()
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif()
+endif()
diff --git a/ports/soil/portfile.cmake b/ports/soil/portfile.cmake
new file mode 100644
index 000000000..69073e22d
--- /dev/null
+++ b/ports/soil/portfile.cmake
@@ -0,0 +1,29 @@
+include(vcpkg_common_functions)
+
+set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/Simple OpenGL Image Library")
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.lonesock.net/files/soil.zip"
+ FILENAME "soil-2008.07.07.zip"
+ SHA512 a575a84aa65b7556320779d635561341f5cf156418d0462473e5d1eb082829be3bcb30600b4887af75aeddd3715de16bdb3ca1668ebaa93eea62bacf22b79548
+)
+
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY
+ ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt
+ ${CMAKE_CURRENT_LIST_DIR}/SOILConfig.cmake.in
+ ${CMAKE_CURRENT_LIST_DIR}/SOILConfigVersion.cmake.in
+ ${CMAKE_CURRENT_LIST_DIR}/LICENSE
+ DESTINATION ${SOURCE_PATH}
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DINSTALL_HEADERS=OFF
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/soil RENAME copyright)
diff --git a/ports/sol/CONTROL b/ports/sol/CONTROL
new file mode 100644
index 000000000..aa276b1f2
--- /dev/null
+++ b/ports/sol/CONTROL
@@ -0,0 +1,3 @@
+Source: sol
+Version: 2.20.0-1
+Description: Sol v2.0 - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great
diff --git a/ports/sol/portfile.cmake b/ports/sol/portfile.cmake
new file mode 100644
index 000000000..8e6516d9a
--- /dev/null
+++ b/ports/sol/portfile.cmake
@@ -0,0 +1,14 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ThePhD/sol2
+ REF f8ee7abe527a9e8414fc4965e5cbd0f8395fbeae
+ SHA512 6bf090deb3b664e9585672b8f85275b76c53eddc7fe206ceec943522195bb726e976c946b59cc23863bc7e0feab36f4fe1a6a7a5dae3f9c2ec5c64060014afbf
+ HEAD_REF develop
+)
+
+file(INSTALL ${SOURCE_PATH}/single/sol/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sol RENAME copyright)
diff --git a/ports/sophus/CONTROL b/ports/sophus/CONTROL
new file mode 100644
index 000000000..f6433e410
--- /dev/null
+++ b/ports/sophus/CONTROL
@@ -0,0 +1,4 @@
+Source: sophus
+Version: 1.0.0-1
+Build-Depends: eigen3, ceres
+Description: Lie group library for C++
diff --git a/ports/sophus/portfile.cmake b/ports/sophus/portfile.cmake
new file mode 100644
index 000000000..9a45e62b8
--- /dev/null
+++ b/ports/sophus/portfile.cmake
@@ -0,0 +1,27 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO strasdat/Sophus
+ REF v1.0.0
+ SHA512 569634a8be9237d2240cf30c01e2677ece75d55f1196030f1228baca62fa22460e8ceb2a63bd46afdf7f02d8eb79c59d6ed666228b852da78590de897b278fab
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/Sophus")
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+
+# Put the license file where vcpkg expects it
+file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/Sophus/)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/Sophus/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/Sophus/copyright)
diff --git a/ports/soundtouch/CMakeLists.txt b/ports/soundtouch/CMakeLists.txt
new file mode 100644
index 000000000..a15daefe4
--- /dev/null
+++ b/ports/soundtouch/CMakeLists.txt
@@ -0,0 +1,32 @@
+cmake_minimum_required(VERSION 3.5)
+project(soundtouch CXX)
+
+if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(ARCH_SUFFIX _x64)
+else()
+ set(ARCH_SUFFIX)
+endif()
+
+if(BUILD_SHARED_LIBS)
+ set(TYPE_SUFFIX Dll)
+else()
+ set(TYPE_SUFFIX $<$<Config:Debug>:D>)
+endif()
+
+file(GLOB SOUNDTOUCH_SOURCES source/SoundTouch/*.cpp)
+add_library(libsoundtouch ${SOUNDTOUCH_SOURCES})
+target_include_directories(libsoundtouch PUBLIC include)
+set_target_properties(libsoundtouch PROPERTIES OUTPUT_NAME SoundTouch${TYPE_SUFFIX}${ARCH_SUFFIX})
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(libsoundtouch PRIVATE -DDLL_EXPORTS)
+ target_sources(libsoundtouch PRIVATE
+ source/SoundTouchDLL/SoundTouchDLL.cpp
+ source/SoundTouchDLL/SoundTouchDLL.rc
+ )
+endif()
+
+install(TARGETS libsoundtouch
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
diff --git a/ports/soundtouch/CONTROL b/ports/soundtouch/CONTROL
new file mode 100644
index 000000000..7ae158b88
--- /dev/null
+++ b/ports/soundtouch/CONTROL
@@ -0,0 +1,4 @@
+Source: soundtouch
+Version: 2.0.0-1
+Description: SoundTouch is an open-source audio processing library for changing the Tempo, Pitch and Playback Rates of audio streams or audio files.
+Build-Depends: atlmfc
diff --git a/ports/soundtouch/portfile.cmake b/ports/soundtouch/portfile.cmake
new file mode 100644
index 000000000..b7fb1fb45
--- /dev/null
+++ b/ports/soundtouch/portfile.cmake
@@ -0,0 +1,39 @@
+include(vcpkg_common_functions)
+
+# NOTE: SoundTouch has a static c++ version too, but entirely different headers, api, etc
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message(STATUS "Warning: Static building not supported. Building dynamic.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "Refusing to build DLL with static CRT linkage.")
+endif()
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "WindowsStore not supported")
+endif()
+
+set(VERSION 2.0.0)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/soundtouch)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://www.surina.net/soundtouch/soundtouch-${VERSION}.zip"
+ FILENAME "soundtouch-${VERSION}.zip"
+ SHA512 50ef36b6cd21c16e235b908c5518e29b159b11f658a014c47fe767d3d8acebaefefec0ce253b4ed322cbd26387c69c0ed464ddace0c098e61d56d55c198117a5
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/source/SoundTouchDLL/SoundTouchDLL.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+file(COPY ${SOURCE_PATH}/COPYING.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/soundtouch)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/soundtouch/COPYING.TXT ${CURRENT_PACKAGES_DIR}/share/soundtouch/copyright)
diff --git a/ports/spaceland/CONTROL b/ports/spaceland/CONTROL
new file mode 100644
index 000000000..2baf34633
--- /dev/null
+++ b/ports/spaceland/CONTROL
@@ -0,0 +1,4 @@
+Source: spaceland
+Version: 7.8.2-0
+Description: Spaceland Lib (sl) is a suite for geometric computation, specifically adapted to OpenGL.
+Build-Depends: zlib
diff --git a/ports/spaceland/portfile.cmake b/ports/spaceland/portfile.cmake
new file mode 100644
index 000000000..d22276d60
--- /dev/null
+++ b/ports/spaceland/portfile.cmake
@@ -0,0 +1,37 @@
+include(vcpkg_common_functions)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message(STATUS "WARNING: Dynamic building not supported. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sl-7.8.2-Source)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://vic.crs4.it/vic/download/pkgs/sl-7.8.2-Source.tar.gz"
+ FILENAME "sl-7.8.2-Source.tar.gz"
+ SHA512 1391dac1474ddb47d0cf0eb7baeb7db68d6356c2116f732dd57b8a050739523282ded0643cc466640f2b22f25dd6bfced00ede4e041b7ff83754a99ae6725d7d
+)
+
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DSL_TEST=OFF
+ -DSL_INSTALL_SLFIND_MODULE=OFF
+ OPTIONS_DEBUG
+ -DSL_TEST=OFF
+ -DSL_INSTALL_SLFIND_MODULE=OFF
+)
+
+vcpkg_install_cmake()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle license
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/spaceland)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/spaceland/COPYING ${CURRENT_PACKAGES_DIR}/share/spaceland/license)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/copyright.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/spaceland)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/spaceland/copyright.txt ${CURRENT_PACKAGES_DIR}/share/spaceland/copyright)
diff --git a/ports/spatialite-tools/CONTROL b/ports/spatialite-tools/CONTROL
new file mode 100644
index 000000000..19b2aafbb
--- /dev/null
+++ b/ports/spatialite-tools/CONTROL
@@ -0,0 +1,4 @@
+Source: spatialite-tools
+Version: 4.3.0-1
+Description: Contains spatialite.exe and other command line tools to work with SpatiaLite databases (import, export, SQL queries)
+Build-Depends: sqlite3, libspatialite, geos, readosm, proj4, zlib, libiconv, expat
diff --git a/ports/spatialite-tools/fix-makefiles.patch b/ports/spatialite-tools/fix-makefiles.patch
new file mode 100644
index 000000000..ff6e0ad0d
--- /dev/null
+++ b/ports/spatialite-tools/fix-makefiles.patch
@@ -0,0 +1,128 @@
+diff --git a/makefile.vc b/makefile.vc
+index 33c85d2..c811e7d 100644
+--- a/makefile.vc
++++ b/makefile.vc
+@@ -15,7 +15,7 @@ SPATIALITE_OSM_RAW_EXE = spatialite_osm_raw.exe
+ SPATIALITE_OSM_FILTER_EXE = spatialite_osm_filter.exe
+ SPATIALITE_GML_EXE = spatialite_gml.exe
+
+-CFLAGS = /nologo -IC:\OSGeo4W\include $(OPTFLAGS)
++CFLAGS = /nologo -I$(INSTALLED_ROOT)\include $(OPTFLAGS)
+
+ default: all
+
+@@ -26,89 +26,58 @@ all: $(SPATIALITE_EXE) $(SHP_DOCTOR_EXE) $(SPATIALITE_TOOL_EXE) \
+ $(SPATIALITE_OSM_FILTER_EXE)
+
+ $(SPATIALITE_EXE): shell.obj
+- cl shell.obj C:\OSGeo4W\lib\proj_i.lib \
+- C:\OSGeo4W\lib\iconv.lib C:\OSGeo4W\lib\geos_c.lib \
+- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib \
+- /Fe$(SPATIALITE_EXE)
++ cl shell.obj $(LIBS_ALL) /Fe$(SPATIALITE_EXE)
+ if exist $(SPATIALITE_EXE).manifest mt -manifest \
+ $(SPATIALITE_EXE).manifest -outputresource:$(SPATIALITE_EXE);1
+
+ $(EXIF_LOADER_EXE): exif_loader.obj
+- cl exif_loader.obj C:\OSGeo4W\lib\proj_i.lib \
+- C:\OSGeo4W\lib\iconv.lib C:\OSGeo4W\lib\geos_c.lib \
+- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
++ cl exif_loader.obj $(LIBS_ALL)
+ if exist $(EXIF_LOADER_EXE).manifest mt -manifest \
+ $(EXIF_LOADER_EXE).manifest -outputresource:$(EXIF_LOADER_EXE);1
+
+ $(SHP_DOCTOR_EXE): shp_doctor.obj
+- cl shp_doctor.obj C:\OSGeo4W\lib\proj_i.lib \
+- C:\OSGeo4W\lib\iconv.lib C:\OSGeo4W\lib\geos_c.lib \
+- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
++ cl shp_doctor.obj $(LIBS_ALL)
+ if exist $(SHP_DOCTOR_EXE).manifest mt -manifest \
+ $(SHP_DOCTOR_EXE).manifest -outputresource:$(SHP_DOCTOR_EXE);1
+
+ $(SPATIALITE_NETWORK_EXE): spatialite_network.obj
+- cl spatialite_network.obj C:\OSGeo4W\lib\proj_i.lib \
+- C:\OSGeo4W\lib\iconv.lib \
+- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
++ cl spatialite_network.obj $(LIBS_ALL)
+ if exist $(SPATIALITE_NETWORK_EXE).manifest mt -manifest \
+ $(SPATIALITE_TOOL_EXE).manifest \
+ -outputresource:$(SPATIALITE_TOOL_EXE);1
+
+ $(SPATIALITE_TOOL_EXE): spatialite_tool.obj
+- cl spatialite_tool.obj C:\OSGeo4W\lib\proj_i.lib \
+- C:\OSGeo4W\lib\iconv.lib C:\OSGeo4W\lib\geos_c.lib \
+- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
++ cl spatialite_tool.obj $(LIBS_ALL)
+ if exist $(SPATIALITE_TOOL_EXE).manifest mt -manifest \
+ $(SPATIALITE_TOOL_EXE).manifest \
+ -outputresource:$(SPATIALITE_TOOL_EXE);1
+
+ $(SPATIALITE_OSM_NET_EXE): spatialite_osm_net.obj
+- cl spatialite_osm_net.obj C:\OSGeo4W\lib\proj_i.lib \
+- C:\OSGeo4W\lib\iconv.lib \
+- C:\OSGeo4W\lib\readosm_i.lib \
+- C:\OSGeo4W\lib\libexpat.lib \
+- C:\OSGeo4W\lib\zlib.lib \
+- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
++ cl spatialite_osm_net.obj $(LIBS_ALL)
+ if exist $(SPATIALITE_OSM_EXE).manifest mt -manifest \
+ $(SPATIALITE_OSM_EXE).manifest \
+ -outputresource:$(SPATIALITE_OSM_NET_EXE);1
+
+ $(SPATIALITE_OSM_MAP_EXE): spatialite_osm_map.obj
+- cl spatialite_osm_map.obj C:\OSGeo4W\lib\proj_i.lib \
+- C:\OSGeo4W\lib\iconv.lib \
+- C:\OSGeo4W\lib\readosm_i.lib \
+- C:\OSGeo4W\lib\libexpat.lib \
+- C:\OSGeo4W\lib\zlib.lib \
+- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
++ cl spatialite_osm_map.obj $(LIBS_ALL)
+ if exist $(SPATIALITE_OSM_MAP_EXE).manifest mt -manifest \
+ $(SPATIALITE_OSM_MAP_EXE).manifest \
+ -outputresource:$(SPATIALITE_OSM_MAP_EXE);1
+
+ $(SPATIALITE_GML_EXE): spatialite_gml.obj
+- cl spatialite_gml.obj C:\OSGeo4W\lib\proj_i.lib \
+- C:\OSGeo4W\lib\iconv.lib \
+- C:\OSGeo4W\lib\libexpat.lib \
+- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
++ cl spatialite_gml.obj $(LIBS_ALL)
+ if exist $(SPATIALITE_GML_EXE).manifest mt -manifest \
+ $(SPATIALITE_GML_EXE).manifest \
+ -outputresource:$(SPATIALITE_GML_EXE);1
+
+ $(SPATIALITE_OSM_RAW_EXE): spatialite_osm_raw.obj
+- cl spatialite_osm_raw.obj C:\OSGeo4W\lib\proj_i.lib \
+- C:\OSGeo4W\lib\iconv.lib \
+- C:\OSGeo4W\lib\readosm_i.lib \
+- C:\OSGeo4W\lib\libexpat.lib \
+- C:\OSGeo4W\lib\zlib.lib \
+- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
++ cl spatialite_osm_raw.obj $(LIBS_ALL)
+ if exist $(SPATIALITE_OSM_RAW_EXE).manifest mt -manifest \
+ $(SPATIALITE_OSM_RAW_EXE).manifest \
+ -outputresource:$(SPATIALITE_OSM_RAW_EXE);1
+
+ $(SPATIALITE_OSM_FILTER_EXE): spatialite_osm_filter.obj
+- cl spatialite_osm_filter.obj C:\OSGeo4W\lib\proj_i.lib \
+- C:\OSGeo4W\lib\iconv.lib \
+- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
++ cl spatialite_osm_filter.obj $(LIBS_ALL)
+ if exist $(SPATIALITE_OSM_FILTER_EXE).manifest mt -manifest \
+ $(SPATIALITE_OSM_FILTER_EXE).manifest \
+ -outputresource:$(SPATIALITE_OSM_FILTER_EXE);1
+diff --git a/nmake.opt b/nmake.opt
+index 4f4a953..d9efecf 100644
+--- a/nmake.opt
++++ b/nmake.opt
+@@ -1,8 +1,8 @@
+ # Directory tree where SpatiaLite will be installed.
+-INSTDIR=C:\OSGeo4W
++INSTDIR=$(INST_DIR)
+
+ # Uncomment the first for an optimized build, or the second for debug.
+-OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \
++OPTFLAGS= /nologo /fp:precise /W3 $(CL_FLAGS) /D_CRT_SECURE_NO_WARNINGS \
+ /D_LARGE_FILE=1 /D_FILE_OFFSET_BITS=64 /D_LARGEFILE_SOURCE=1
+ #OPTFLAGS= /nologo /Zi /MD /Fdspatialite.pdb
+
diff --git a/ports/spatialite-tools/portfile.cmake b/ports/spatialite-tools/portfile.cmake
new file mode 100644
index 000000000..25de070ee
--- /dev/null
+++ b/ports/spatialite-tools/portfile.cmake
@@ -0,0 +1,118 @@
+include(vcpkg_common_functions)
+
+option(BUILD_DEBUG_TOOLS "Build debug version of tools" OFF)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/spatialite-tools-4.3.0)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.gaia-gis.it/gaia-sins/spatialite-tools-sources/spatialite-tools-4.3.0.tar.gz"
+ FILENAME "spatialite-tools-4.3.0.tar.gz"
+ SHA512 e1de27c1c65ff2ff0b08583113517bea74edf33fff59ad6e9c77492ea3ae87d9c0f17d7670ee6602b32eea73ad3678bb5410ef2c6fac6e213bf2e341a907db88
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+find_program(NMAKE nmake)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch
+)
+
+set(LDIR "\"${CURRENT_INSTALLED_DIR}\"")
+
+if(VCPKG_CRT_LINKAGE STREQUAL dynamic)
+ set(CL_FLAGS_DBG "/MDd /Zi")
+ set(CL_FLAGS_REL "/MD /Ox")
+ set(GEOS_LIBS_REL "${LDIR}/lib/geos_c.lib")
+ set(GEOS_LIBS_DBG "${LDIR}/debug/lib/geos_cd.lib")
+ set(LIBXML2_LIBS_REL "${LDIR}/lib/libxml2.lib")
+ set(LIBXML2_LIBS_DBG "${LDIR}/debug/lib/libxml2.lib")
+ set(SPATIALITE_LIBS_REL "${LDIR}/lib/spatialite.lib")
+ set(SPATIALITE_LIBS_DBG "${LDIR}/debug/lib/spatialite.lib")
+ set(ICONV_LIBS_REL "${LDIR}/lib/libiconv.lib")
+ set(ICONV_LIBS_DBG "${LDIR}/debug/lib/libiconv.lib")
+else()
+ set(CL_FLAGS_DBG "/MTd /Zi")
+ set(CL_FLAGS_REL "/MT /Ox")
+ set(GEOS_LIBS_REL "${LDIR}/lib/libgeos_c.lib ${LDIR}/lib/libgeos.lib")
+ set(GEOS_LIBS_DBG "${LDIR}/debug/lib/libgeos_c.lib ${LDIR}/debug/lib/libgeos.lib")
+ set(LIBXML2_LIBS_REL "${LDIR}/lib/libxml2.lib ${LDIR}/lib/lzma.lib ws2_32.lib")
+ set(LIBXML2_LIBS_DBG "${LDIR}/debug/lib/libxml2.lib ${LDIR}/debug/lib/lzma.lib ws2_32.lib")
+ set(SPATIALITE_LIBS_REL "${LDIR}/lib/spatialite.lib ${LDIR}/lib/freexl.lib")
+ set(SPATIALITE_LIBS_DBG "${LDIR}/debug/lib/spatialite.lib ${LDIR}/debug/lib/freexl.lib")
+ set(ICONV_LIBS_REL "${LDIR}/lib/libiconv.lib ${LDIR}/lib/libcharset.lib")
+ set(ICONV_LIBS_DBG "${LDIR}/debug/lib/libiconv.lib ${LDIR}/debug/lib/libcharset.lib ")
+endif()
+
+set(LIBS_ALL_DBG
+ "${ICONV_LIBS_DBG} \
+ ${LDIR}/debug/lib/sqlite3.lib \
+ ${SPATIALITE_LIBS_DBG} \
+ ${LIBXML2_LIBS_DBG} \
+ ${GEOS_LIBS_DBG} \
+ ${LDIR}/debug/lib/readosm.lib \
+ ${LDIR}/debug/lib/expat.lib \
+ ${LDIR}/debug/lib/zlibd.lib \
+ ${LDIR}/debug/lib/projd.lib"
+ )
+set(LIBS_ALL_REL
+ "${ICONV_LIBS_REL} \
+ ${LDIR}/lib/sqlite3.lib \
+ ${SPATIALITE_LIBS_REL} \
+ ${LIBXML2_LIBS_REL} \
+ ${GEOS_LIBS_REL} \
+ ${LDIR}/lib/readosm.lib \
+ ${LDIR}/lib/expat.lib \
+ ${LDIR}/lib/zlib.lib \
+ ${LDIR}/lib/proj.lib"
+ )
+
+if(BUILD_DEBUG_TOOLS)
+ ################
+ # Debug build
+ ################
+ message(STATUS "Building ${TARGET_TRIPLET}-dgb")
+
+ file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR_REL)
+ vcpkg_execute_required_process(
+ COMMAND ${NMAKE} -f makefile.vc clean install
+ "INST_DIR=\"${INST_DIR_REL}\"" "INSTALLED_ROOT=${LDIR}" "CL_FLAGS=${CL_FLAGS_DBG}" "LIBS_ALL=${LIBS_ALL_DBG}"
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME nmake-build-${TARGET_TRIPLET}-debug
+ )
+ message(STATUS "Building ${TARGET_TRIPLET}-dbg done")
+ set(EXE_FOLDER ${CURRENT_PACKAGES_DIR}/bin/)
+else()
+ ################
+ # Release build
+ ################
+ message(STATUS "Building ${TARGET_TRIPLET}-rel")
+
+ file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR_REL)
+ vcpkg_execute_required_process(
+ COMMAND ${NMAKE} -f makefile.vc clean install
+ "INST_DIR=\"${INST_DIR_REL}\"" "INSTALLED_ROOT=${LDIR}" "CL_FLAGS=${CL_FLAGS_REL}" "LIBS_ALL=${LIBS_ALL_REL}"
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME nmake-build-${TARGET_TRIPLET}-release
+ )
+ message(STATUS "Building ${TARGET_TRIPLET}-rel done")
+ set(EXE_FOLDER ${CURRENT_PACKAGES_DIR}/bin/)
+endif()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT}/)
+file(GLOB EXES "${EXE_FOLDER}/*.exe")
+file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
+file(REMOVE ${EXES})
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include)
+
+if(NOT BUILD_DEBUG_TOOLS AND VCPKG_CRT_LINKAGE STREQUAL dynamic)
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+endif()
+
+message(STATUS "Packaging ${TARGET_TRIPLET} done")
+
+# Allow empty include directory
+set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
diff --git a/ports/spdlog/CONTROL b/ports/spdlog/CONTROL
index 540e4eb5e..1bb6b3ebf 100644
--- a/ports/spdlog/CONTROL
+++ b/ports/spdlog/CONTROL
@@ -1,4 +1,4 @@
Source: spdlog
-Version: 0.13.0
+Version: 0.16.3
Description: Very fast, header only, C++ logging library
Build-Depends: fmt
diff --git a/ports/spdlog/portfile.cmake b/ports/spdlog/portfile.cmake
index c0adbf457..a7d13527e 100644
--- a/ports/spdlog/portfile.cmake
+++ b/ports/spdlog/portfile.cmake
@@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO gabime/spdlog
- REF v0.13.0
- SHA512 5bb89cbeb17a054832ce70f6013d54e7641c1aa36cbad08388b4a2e63f4851943edfe292551ff01de6de1ed6325617384325a67f3e1024f346c6d22a1148c80c
+ REF v0.16.3
+ SHA512 6e08473825cf97dfb10b0e919b77996c1023bbfb583d851e961ec4a95094e4afffd1fc6f6e7e728ce8c2c69c9fb280c59f8d6494b50224bdf8cc68914ffd21e8
HEAD_REF master
)
diff --git a/ports/speex/CMakeLists.txt b/ports/speex/CMakeLists.txt
new file mode 100644
index 000000000..bdce0b3c3
--- /dev/null
+++ b/ports/speex/CMakeLists.txt
@@ -0,0 +1,80 @@
+cmake_minimum_required (VERSION 3.8.0)
+project (libspeex C)
+
+option(USE_SSE "USE_SSE used Note: USE_SSE and FIXED_POINT are mutually exclusive." ON)
+if(MSVC)
+ add_definitions(-DHAVE_CONFIG_H)
+ if(USE_SSE)
+ add_definitions(-DUSE_SSE -DFLOATING_POINT)
+ else()
+ add_definitions(-DFIXED_POINT)
+ endif()
+endif()
+
+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"
+ "libspeex/exc_10_16_table.c"
+ "libspeex/exc_10_32_table.c"
+ "libspeex/exc_20_32_table.c"
+ "libspeex/exc_5_256_table.c"
+ "libspeex/exc_5_64_table.c"
+ "libspeex/exc_8_128_table.c"
+ "libspeex/fftwrap.c"
+ "libspeex/filters.c"
+ "libspeex/gain_table.c"
+ "libspeex/gain_table_lbr.c"
+ "libspeex/hexc_10_32_table.c"
+ "libspeex/hexc_table.c"
+ "libspeex/high_lsp_tables.c"
+ "libspeex/kiss_fft.c"
+ "libspeex/kiss_fftr.c"
+ "libspeex/lpc.c"
+ "libspeex/lsp.c"
+ "libspeex/lsp_tables_nb.c"
+ "libspeex/ltp.c"
+ "libspeex/modes.c"
+ "libspeex/modes_wb.c"
+ "libspeex/nb_celp.c"
+ "libspeex/quant_lsp.c"
+ "libspeex/sb_celp.c"
+ "libspeex/smallft.c"
+ "libspeex/speex.c"
+ "libspeex/speex_callbacks.c"
+ "libspeex/speex_header.c"
+ "libspeex/stereo.c"
+ "libspeex/vbr.c"
+ "libspeex/vq.c"
+ "libspeex/window.c"
+ "${CMAKE_CURRENT_BINARY_DIR}/libspeex.def"
+)
+
+add_library(libspeex ${SRC})
+
+install(
+ TARGETS libspeex
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(DIRECTORY include/ DESTINATION include FILES_MATCHING PATTERN "*.h")
+endif()
diff --git a/ports/speex/CONTROL b/ports/speex/CONTROL
new file mode 100644
index 000000000..6fcda84be
--- /dev/null
+++ b/ports/speex/CONTROL
@@ -0,0 +1,3 @@
+Source: speex
+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
new file mode 100644
index 000000000..271c2bc88
--- /dev/null
+++ b/ports/speex/portfile.cmake
@@ -0,0 +1,27 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO xiph/speex
+ REF Speex-1.2.0
+ SHA512 612dfd67a9089f929b7f2a613ed3a1d2fda3d3ec0a4adafe27e2c1f4542de1870b42b8042f0dcb16d52e08313d686cc35b76940776419c775417f5bad18b448f
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+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
new file mode 100644
index 000000000..0708faa2d
--- /dev/null
+++ b/ports/speexdsp/CMakeLists.txt
@@ -0,0 +1,37 @@
+# CMAKE project for libspeexdsp
+cmake_minimum_required(VERSION 3.1)
+option(SOURCE_PATH "Root directory.")
+option(USE_SSE "Use SSE")
+project (libspeexdsp)
+
+file(GLOB_RECURSE LIBSPEEXDSP_SOURCES "${SOURCE_PATH}/libspeexdsp/*.c")
+list(REMOVE_ITEM LIBSPEEXDSP_SOURCES "${SOURCE_PATH}/libspeexdsp/testdenoise.c"
+ "${SOURCE_PATH}/libspeexdsp/testecho.c"
+ "${SOURCE_PATH}/libspeexdsp/testjitter.c"
+ "${SOURCE_PATH}/libspeexdsp/testresample.c")
+file(GLOB_RECURSE LIBSPEEXDSP_HEADERS "${SOURCE_PATH}/libspeexdsp/*.h")
+file(GLOB_RECURSE LIBSPEEXDSP_HEADERS_PUBLIC "${SOURCE_PATH}/include/**/*.h")
+
+if (BUILD_SHARED_LIBS)
+ add_definitions(-D_WINDOWS -D_USRDLL)
+ list(APPEND LIBSPEEXDSP_SOURCES "${SOURCE_PATH}/win32/libspeexdsp.def")
+else ()
+ add_definitions(-D_LIB)
+endif ()
+
+add_definitions(-DHAVE_CONFIG_H -D_WIN32)
+
+if (USE_SSE)
+ add_definitions(-D_USE_SSE -D_USE_SSE2)
+endif()
+
+include_directories("${SOURCE_PATH}/include"
+ "${SOURCE_PATH}/win32")
+add_library(libspeexdsp ${LIBSPEEXDSP_SOURCES} ${LIBSPEEXDSP_HEADERS})
+
+set_target_properties(libspeexdsp PROPERTIES PUBLIC_HEADER "${LIBSPEEXDSP_HEADERS_PUBLIC}")
+
+install(TARGETS libspeexdsp
+ ARCHIVE DESTINATION "lib"
+ RUNTIME DESTINATION "bin"
+ PUBLIC_HEADER DESTINATION "include/speex")
diff --git a/ports/speexdsp/CONTROL b/ports/speexdsp/CONTROL
new file mode 100644
index 000000000..d7e8bac98
--- /dev/null
+++ b/ports/speexdsp/CONTROL
@@ -0,0 +1,4 @@
+Source: speexdsp
+Version: 1.2rc3-2
+Description: A patent-free, Open Source/Free Software DSP library.
+Build-Depends:
diff --git a/ports/speexdsp/portfile.cmake b/ports/speexdsp/portfile.cmake
new file mode 100644
index 000000000..72bc313d7
--- /dev/null
+++ b/ports/speexdsp/portfile.cmake
@@ -0,0 +1,30 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/speexdsp-1.2rc3)
+set(CMAKE_PATH ${CMAKE_CURRENT_LIST_DIR})
+vcpkg_download_distfile(ARCHIVE_FILE
+ URLS "http://downloads.xiph.org/releases/speex/speexdsp-1.2rc3.tar.gz"
+ FILENAME "speexdsp-1.2rc3.tar.xz"
+ SHA512 29dfa8345df025eeb076561648a9b5c0485692be699b6da3c2a3734b4329187a1c2eb181252f4df12b21f1309ecdf59797437dfb123d160fd723491ab216e858
+)
+vcpkg_extract_source_archive(${ARCHIVE_FILE})
+
+set(USE_SSE OFF)
+set(USE_NEON OFF)
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(USE_SSE ON)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${CMAKE_PATH}
+ OPTIONS -DSOURCE_PATH=${SOURCE_PATH} -DUSE_SSE=${USE_SSE}
+)
+
+vcpkg_install_cmake()
+
+# Remove debug include
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Copy copright information
+file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/speexdsp" RENAME "copyright")
+
+vcpkg_copy_pdbs()
diff --git a/ports/spirit-po/CONTROL b/ports/spirit-po/CONTROL
new file mode 100644
index 000000000..b9857cea0
--- /dev/null
+++ b/ports/spirit-po/CONTROL
@@ -0,0 +1,4 @@
+Source: spirit-po
+Version: 1.1.2
+Description: A header-only C++ library for localization using GNU gettext po files, based on Boost.Spirit.
+Build-Depends: boost
diff --git a/ports/spirit-po/portfile.cmake b/ports/spirit-po/portfile.cmake
new file mode 100644
index 000000000..3fa1cb23b
--- /dev/null
+++ b/ports/spirit-po/portfile.cmake
@@ -0,0 +1,16 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/spirit-po-1.1.2)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/cbeck88/spirit-po/archive/v1.1.2.zip"
+ FILENAME "spirit-po-1.1.2.zip"
+ SHA512 8a33126c199765b91e832c64e546f240d532858e051b217189778ad01ef584c67f0f4b2f9674cb7b4a877ec2a2b21b5eda35dc24a12da8eb7a7990bf63a4a774
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(INSTALL ${SOURCE_PATH}/include/spirit_po
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+# spirit-po is header-only, so no vcpkg_{configure,install}_cmake
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/spirit-po RENAME copyright)
diff --git a/ports/spirv-tools/CONTROL b/ports/spirv-tools/CONTROL
index eacc40ff9..fb75a1280 100644
--- a/ports/spirv-tools/CONTROL
+++ b/ports/spirv-tools/CONTROL
@@ -1,3 +1,3 @@
-Source: spirv-tools
-Version: 1.1-f72189c249ba143c6a89a4cf1e7d53337b2ddd40
-Description: API and commands for processing SPIR-V modules
+Source: spirv-tools
+Version: 2018.1-1
+Description: API and commands for processing SPIR-V modules
diff --git a/ports/spirv-tools/portfile.cmake b/ports/spirv-tools/portfile.cmake
index c9bb5f85f..5120dc4f1 100644
--- a/ports/spirv-tools/portfile.cmake
+++ b/ports/spirv-tools/portfile.cmake
@@ -1,68 +1,34 @@
-# 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}
-#
-
include(vcpkg_common_functions)
-find_program(GIT git)
-
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src)
-
-set(GIT_URL "https://github.com/KhronosGroup/SPIRV-Tools.git")
-set(GIT_REF "f72189c249ba143c6a89a4cf1e7d53337b2ddd40")
-
-if(NOT EXISTS "${DOWNLOADS}/spirv-tools.git")
- message(STATUS "Cloning")
- vcpkg_execute_required_process(
- COMMAND ${GIT} clone --bare ${GIT_URL} ${DOWNLOADS}/spirv-tools.git
- WORKING_DIRECTORY ${DOWNLOADS}
- LOGNAME clone
- )
-endif()
-if(NOT EXISTS "${SOURCE_PATH}/.git")
- message(STATUS "Adding worktree and patching")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR})
- vcpkg_execute_required_process(
- COMMAND ${GIT} worktree add -f --detach ${SOURCE_PATH} ${GIT_REF}
- WORKING_DIRECTORY ${DOWNLOADS}/spirv-tools.git
- LOGNAME worktree
- )
- message(STATUS "Patching")
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "Dynamic not supported. Building static")
+ set(VCPKG_LIBRARY_LINKAGE "static")
endif()
-set(SPIRVHEADERS_GIT_URL "https://github.com/KhronosGroup/SPIRV-Headers.git")
-set(SPIRVHEADERS_GIT_REF "bd47a9abaefac00be692eae677daed1b977e625c")
-
-if(NOT EXISTS "${DOWNLOADS}/SPIRV-Headers.git")
- message(STATUS "Cloning")
- vcpkg_execute_required_process(
- COMMAND ${GIT} clone --bare ${SPIRVHEADERS_GIT_URL} ${DOWNLOADS}/SPIRV-Headers.git
- WORKING_DIRECTORY ${DOWNLOADS}
- LOGNAME clone
- )
-endif()
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO KhronosGroup/SPIRV-Tools
+ REF v2018.1
+ SHA512 0637c413dafd931e8222f9bf70a024f8b64116f0300c7732b86bcaff321188a0e746f79c1385ae23a7692e83194586b57692960d5be607fb2d7960731b6cd63f
+ HEAD_REF master
+)
-if(NOT EXISTS "${SOURCE_PATH}/external/spirv-headers/.git")
- message(STATUS "Adding worktree and patching")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR})
- vcpkg_execute_required_process(
- COMMAND ${GIT} worktree add -f --detach ${SOURCE_PATH}/external/spirv-headers ${SPIRVHEADERS_GIT_REF}
- WORKING_DIRECTORY ${DOWNLOADS}/SPIRV-Headers.git
- LOGNAME worktree
- )
-endif()
+vcpkg_from_github(
+ OUT_SOURCE_PATH SPIRV_HEADERS_PATH
+ REPO KhronosGroup/SPIRV-Headers
+ REF bd4c092be34081d88ec8342b1a4d9f77bcce4cac
+ SHA512 e0bc7b8ea73bef762eff60d83104ca93c70e06c7b6e66f73c931eb9ec51227e0b64c3169fcccbffa311acf714138300104dd5e51cdfc846ed7961debc1f9cceb
+ HEAD_REF master
+)
-set(VCPKG_LIBRARY_LINKAGE "static")
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY)
+set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}")
vcpkg_configure_cmake(
- SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src"
- # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
- # OPTIONS_RELEASE -DOPTIMIZE=1
- # OPTIONS_DEBUG -DDEBUGGABLE=1
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS -DSPIRV-Headers_SOURCE_DIR=${SPIRV_HEADERS_PATH}
)
vcpkg_install_cmake()
diff --git a/ports/sqlite-modern-cpp/CONTROL b/ports/sqlite-modern-cpp/CONTROL
index 641b3229c..a70a64a21 100644
--- a/ports/sqlite-modern-cpp/CONTROL
+++ b/ports/sqlite-modern-cpp/CONTROL
@@ -1,4 +1,4 @@
Source: sqlite-modern-cpp
-Version: 2.4
+Version: 3.2
Build-Depends: sqlite3
Description: The C++14 wrapper around sqlite library
diff --git a/ports/sqlite-modern-cpp/portfile.cmake b/ports/sqlite-modern-cpp/portfile.cmake
index 3171b5550..7d6c20308 100644
--- a/ports/sqlite-modern-cpp/portfile.cmake
+++ b/ports/sqlite-modern-cpp/portfile.cmake
@@ -1,20 +1,14 @@
# header only
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sqlite_modern_cpp-2.4)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sqlite_modern_cpp-3.2)
vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/aminroosta/sqlite_modern_cpp/archive/v2.4.tar.gz"
- FILENAME "sqlite_modern_cpp-2.4.tar.gz"
- SHA512 99d8220c9dcbf7383c75ef8061bc792a4ea0b7e6e1290992f1604f66e77fcb5055af8c54c2d82b6a8d331359e2829d987b7528208f032f32699e1349296792db
+ URLS "https://github.com/aminroosta/sqlite_modern_cpp/archive/v3.2.tar.gz"
+ FILENAME "sqlite_modern_cpp-3.2.tar.gz"
+ SHA512 7e54cc41713247c9f6373a441854e8dace8e334e6ee29f870f11bc3fd3b53b5cff4e1a6d4c7e3cda33509b70a3f9a47363922a589b9a6d0730ce6dc0c884d878
)
vcpkg_extract_source_archive(${ARCHIVE})
file(INSTALL ${SOURCE_PATH}/hdr/ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
-# Handle copyright
-vcpkg_download_distfile(LICENSE
- URLS https://raw.githubusercontent.com/aminroosta/sqlite_modern_cpp/1d7747fcbb16325ec6673477b06f0c780de24a27/License.txt
- FILENAME "sqlite_modern_cpp-2.4-license-mit.txt"
- SHA512 4ffc41d14902b37841463b9e9274537cb48523a7ab7e5fbbbd14a01820d141e367851b0496aa18546ddab96100e7381db7fc35621c795a97c3290b618e18a8bd
-)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/sqlite-modern-cpp)
-file(INSTALL ${LICENSE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/sqlite-modern-cpp RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sqlite-modern-cpp RENAME copyright)
diff --git a/ports/sqlite-orm/CONTROL b/ports/sqlite-orm/CONTROL
new file mode 100644
index 000000000..893a0dfe9
--- /dev/null
+++ b/ports/sqlite-orm/CONTROL
@@ -0,0 +1,4 @@
+Source: sqlite-orm
+Version: 1.1
+Build-Depends: sqlite3
+Description: SQLite ORM light header only library for modern C++
diff --git a/ports/sqlite-orm/portfile.cmake b/ports/sqlite-orm/portfile.cmake
new file mode 100644
index 000000000..876bbd0e3
--- /dev/null
+++ b/ports/sqlite-orm/portfile.cmake
@@ -0,0 +1,15 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO fnc12/sqlite_orm
+ REF v1.1
+ SHA512 ebd3c956660b90b1ea64420374db009c68cbab1edd3694d15e953c968190c066e084934327dcf674bcea31e23b14d32c54af7e9ba54f7c6036c3e7cb7cdc6c8d
+ HEAD_REF master
+)
+
+file(COPY ${SOURCE_PATH}/include/sqlite_orm DESTINATION ${CURRENT_PACKAGES_DIR}/include/)
+
+file(INSTALL
+ ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/sqlite-orm RENAME copyright)
diff --git a/ports/sqlite3/CMakeLists.txt b/ports/sqlite3/CMakeLists.txt
index dbe636b79..b4b105a65 100644
--- a/ports/sqlite3/CMakeLists.txt
+++ b/ports/sqlite3/CMakeLists.txt
@@ -1,31 +1,42 @@
cmake_minimum_required(VERSION 3.0)
project(sqlite3 C)
-include_directories(${SOURCE})
+include_directories(.)
if(BUILD_SHARED_LIBS)
set(API "-DSQLITE_API=__declspec(dllexport)")
else()
set(API "-DSQLITE_API=extern")
endif()
-add_library(sqlite3 ${SOURCE}/sqlite3.c)
+add_library(sqlite3 sqlite3.c)
-
-target_compile_definitions(sqlite3 PRIVATE
- $<$<CONFIG:Debug>:-DSQLITE_DEBUG>
+target_compile_definitions(sqlite3 PRIVATE
+ $<$<CONFIG:Debug>:SQLITE_DEBUG>
${API}
-DSQLITE_ENABLE_RTREE
-DSQLITE_ENABLE_UNLOCK_NOTIFY
)
target_include_directories(sqlite3 INTERFACE $<INSTALL_INTERFACE:include>)
-if(VCPKG_CMAKE_SYSTEM_NAME MATCHES "WindowsStore")
+if(CMAKE_SYSTEM_NAME MATCHES "WindowsStore")
target_compile_definitions(sqlite3 PRIVATE -DSQLITE_OS_WINRT=1)
endif()
-install(TARGETS sqlite3 EXPORT sqlite3Config
+if(NOT SQLITE3_SKIP_TOOLS)
+ add_executable(sqlite3-bin shell.c)
+ set_target_properties(sqlite3-bin PROPERTIES OUTPUT_NAME sqlite3)
+ target_link_libraries(sqlite3-bin PRIVATE sqlite3)
+ install(TARGETS sqlite3-bin sqlite3
+ RUNTIME DESTINATION tools
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ )
+endif()
+
+install(TARGETS sqlite3 EXPORT sqlite3Config
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
-install(FILES ${SOURCE}/sqlite3.h ${SOURCE}/sqlite3ext.h DESTINATION include CONFIGURATIONS Release)
-install(EXPORT sqlite3Config DESTINATION share/sqlite3) \ No newline at end of file
+
+install(FILES sqlite3.h sqlite3ext.h DESTINATION include CONFIGURATIONS Release)
+install(EXPORT sqlite3Config DESTINATION share/sqlite3)
diff --git a/ports/sqlite3/CONTROL b/ports/sqlite3/CONTROL
index f1d9bde16..74d70909b 100644
--- a/ports/sqlite3/CONTROL
+++ b/ports/sqlite3/CONTROL
@@ -1,3 +1,6 @@
-Source: sqlite3
-Version: 3.18.0-1
-Description: SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. \ No newline at end of file
+Source: sqlite3
+Version: 3.23.1-1
+Description: SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine.
+
+Feature: tool
+Description: sqlite3 executable
diff --git a/ports/sqlite3/portfile.cmake b/ports/sqlite3/portfile.cmake
index 1b906fba5..bd7bcc15c 100644
--- a/ports/sqlite3/portfile.cmake
+++ b/ports/sqlite3/portfile.cmake
@@ -1,30 +1,38 @@
include(vcpkg_common_functions)
-set(SQLITE_VERSION 3180000)
-set(SQLITE_HASH d390c1d83afc27ec184ea6ab392477647cc80eb97ca177797cd494409c5646435c7a84502cc74ded1b654af13e65d2eef444bb0255a127e59d2cf40d5d0c1192)
+set(SQLITE_VERSION 3230100)
+set(SQLITE_HASH 5784f4dea7f14d7dcf5dd07f0e111c8f0b64ff55c68b32a23fba7a36baf1f095c7a35573fc3b57b84822878218b78f9b0187c4e3f0439d4215471ee5f556eee1)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sqlite-amalgamation-${SQLITE_VERSION})
vcpkg_download_distfile(ARCHIVE
- URLS "https://sqlite.org/2017/sqlite-amalgamation-${SQLITE_VERSION}.zip"
+ URLS "https://sqlite.org/2018/sqlite-amalgamation-${SQLITE_VERSION}.zip"
FILENAME "sqlite-amalgamation-${SQLITE_VERSION}.zip"
SHA512 ${SQLITE_HASH})
vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+set(SQLITE3_SKIP_TOOLS ON)
+if("tool" IN_LIST FEATURES)
+ set(SQLITE3_SKIP_TOOLS OFF)
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
- -DSOURCE=${SOURCE_PATH}
- -DVCPKG_CMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}
+ -DSQLITE3_SKIP_TOOLS=${SQLITE3_SKIP_TOOLS}
+ OPTIONS_DEBUG
+ -DSQLITE3_SKIP_TOOLS=ON
)
-vcpkg_build_cmake()
+
vcpkg_install_cmake()
-file(READ ${CURRENT_PACKAGES_DIR}/debug/share/sqlite3/sqlite3Config-debug.cmake SQLITE3_DEBUG_CONFIG)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" SQLITE3_DEBUG_CONFIG "${SQLITE3_DEBUG_CONFIG}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/sqlite3/sqlite3Config-debug.cmake "${SQLITE3_DEBUG_CONFIG}")
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(READ ${CURRENT_PACKAGES_DIR}/debug/share/sqlite3/sqlite3Config-debug.cmake SQLITE3_DEBUG_CONFIG)
+ string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" SQLITE3_DEBUG_CONFIG "${SQLITE3_DEBUG_CONFIG}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/sqlite3/sqlite3Config-debug.cmake "${SQLITE3_DEBUG_CONFIG}")
+endif()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
diff --git a/ports/sqlitecpp/0001-Find-external-sqlite3.patch b/ports/sqlitecpp/0001-Find-external-sqlite3.patch
new file mode 100644
index 000000000..ef6700e14
--- /dev/null
+++ b/ports/sqlitecpp/0001-Find-external-sqlite3.patch
@@ -0,0 +1,26 @@
+From 495f0f8bf2caf158ffed78e479d68359f51289a2 Mon Sep 17 00:00:00 2001
+From: Stanislav Ershov <digital.stream.of.mind@gmail.com>
+Date: Sat, 6 Jan 2018 11:26:55 +0300
+Subject: [PATCH] Find external sqlite3
+
+---
+ CMakeLists.txt | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4a3e492..f7e22a5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -193,7 +193,8 @@ install(EXPORT ${PROJECT_NAME}Config DESTINATION lib/cmake/${PROJECT_NAME})
+ ## Build provided copy of SQLite3 C library ##
+
+ # TODO NOCOMMIT
+-#find_package(sqlite3)
++find_package(sqlite3 REQUIRED)
++target_link_libraries(SQLiteCpp PRIVATE sqlite3)
+ #if(sqlite3_VERSION VERSION_LESS "3.19")
+ # set_target_properties(SQLiteCpp PROPERTIES COMPILE_FLAGS "-DSQLITECPP_HAS_MEM_STRUCT")
+ #endif()
+--
+2.15.0.windows.1
+
diff --git a/ports/sqlitecpp/CONTROL b/ports/sqlitecpp/CONTROL
new file mode 100644
index 000000000..133ac6703
--- /dev/null
+++ b/ports/sqlitecpp/CONTROL
@@ -0,0 +1,4 @@
+Source: sqlitecpp
+Version: 2.2
+Build-Depends: sqlite3
+Description: SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
diff --git a/ports/sqlitecpp/portfile.cmake b/ports/sqlitecpp/portfile.cmake
new file mode 100644
index 000000000..2af9c8cfa
--- /dev/null
+++ b/ports/sqlitecpp/portfile.cmake
@@ -0,0 +1,33 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH
+ REPO "SRombauts/SQLiteCpp"
+ REF "2.2.0"
+ HEAD_REF master
+ SHA512 769857c50cc24596cbd7c6f057ca1e158a3bfecf00d7865d6ef0b90a2ff8ecb9ccb9e1d0e660bb9df8ecd50075a94a9bc9e3a71b96f2ef1c30780c6da9446cf0)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001-Find-external-sqlite3.patch)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "Warning: Dynamic building not supported yet. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DSQLITECPP_RUN_CPPLINT=OFF
+ -DSQLITECPP_RUN_CPPCHECK=OFF
+ -DSQLITECPP_INTERNAL_SQLITE=OFF
+ -DSQLITE_ENABLE_COLUMN_METADATA=OFF
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/SQLiteCpp)
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sqlitecpp RENAME copyright)
diff --git a/ports/stb/CONTROL b/ports/stb/CONTROL
index 136f8e57e..b5e306f27 100644
--- a/ports/stb/CONTROL
+++ b/ports/stb/CONTROL
@@ -1,3 +1,3 @@
Source: stb
-Version: 1.0
+Version: 2018-03-02
Description: stb single-file public domain libraries for C/C++
diff --git a/ports/stb/portfile.cmake b/ports/stb/portfile.cmake
index 1c00e99db..bd6587328 100644
--- a/ports/stb/portfile.cmake
+++ b/ports/stb/portfile.cmake
@@ -1,12 +1,12 @@
#header-only library
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/stb-e713a69f1ea6ee1e0d55725ed0731520045a5993)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/nothings/stb/archive/e713a69f1ea6ee1e0d55725ed0731520045a5993.zip"
- FILENAME "stb-e713a69f1ea6ee1e0d55725ed0731520045a5993.zip"
- SHA512 28d73905e626bf286bc42e30bc50e8449912a9db5e421e09bfbd17790de1909fe9df19c96d6ad3125a6ae0947d45b11b83ee5965dab68d1eadd0c332e391400e
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO nothings/stb
+ REF e6afb9cbae4064da8c3e69af3ff5c4629579c1d2
+ SHA512 232ef301d4d6c82c7c5f0e4234b9160cc815f3b6bcc35d341cdf8738646f2f0887ee9838680699f4c9f4274b1390036b2c4fb3ebc2d663af8ff888114dc9f04b
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
# Put the licence file where vcpkg expects it
file(COPY ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/stb/README.md)
diff --git a/ports/string-theory/CONTROL b/ports/string-theory/CONTROL
new file mode 100644
index 000000000..04384f8fb
--- /dev/null
+++ b/ports/string-theory/CONTROL
@@ -0,0 +1,3 @@
+Source: string-theory
+Version: 1.7
+Description: Flexible C++11 string library with type-safe formatting.
diff --git a/ports/string-theory/portfile.cmake b/ports/string-theory/portfile.cmake
new file mode 100644
index 000000000..c986839e1
--- /dev/null
+++ b/ports/string-theory/portfile.cmake
@@ -0,0 +1,42 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO zrax/string_theory
+ REF 1.7
+ SHA512 59b367542a0dde727bf58791a94eed1b0f7007d1c661a8e728f3668bb284cadd98a03379cb96dc832e5230b6e991b66b9c8522e3525ed168505d9b930af5d239
+ HEAD_REF master
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(ST_BUILD_STATIC ON)
+else()
+ set(ST_BUILD_STATIC OFF)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DST_BUILD_STATIC=${ST_BUILD_STATIC}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/string_theory")
+
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/string-theory ${CURRENT_PACKAGES_DIR}/share/string_theory)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/string-theory)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/string-theory/LICENSE ${CURRENT_PACKAGES_DIR}/share/string-theory/copyright)
+file(COPY ${CURRENT_PACKAGES_DIR}/share/string-theory/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/string_theory/copyright)
diff --git a/ports/strtk/CONTROL b/ports/strtk/CONTROL
new file mode 100644
index 000000000..0c9cf1720
--- /dev/null
+++ b/ports/strtk/CONTROL
@@ -0,0 +1,4 @@
+Source: strtk
+Version: 2018.05.07-48c9554
+Description: robust, optimized and portable string processing algorithms for the C++ language
+Build-Depends: boost
diff --git a/ports/strtk/copyright b/ports/strtk/copyright
new file mode 100644
index 000000000..e732a0a9a
--- /dev/null
+++ b/ports/strtk/copyright
@@ -0,0 +1,8 @@
+Copyright 2002-2018 Arash Partow
+http://www.partow.net/programming/strtk/index.html
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/ports/strtk/portfile.cmake b/ports/strtk/portfile.cmake
new file mode 100644
index 000000000..f98f06930
--- /dev/null
+++ b/ports/strtk/portfile.cmake
@@ -0,0 +1,11 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ArashPartow/strtk
+ REF 48c9554b3f079e34205c0af661c81c6f75f1da05
+ SHA512 92a1b34808f20489d9b8c94aed384b08fcf2586967185c23a0027ee6d7170d5998e255d6aedc1fbb68327f48c0b106b8efd39f476e4041d6bcc5685c73fc1015
+)
+
+file(COPY ${SOURCE_PATH}/strtk.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/strtk)
diff --git a/ports/suitesparse/CONTROL b/ports/suitesparse/CONTROL
new file mode 100644
index 000000000..702692497
--- /dev/null
+++ b/ports/suitesparse/CONTROL
@@ -0,0 +1,8 @@
+Source: suitesparse
+Version: 4.5.5-4
+Build-Depends: clapack
+Description: algebra library
+
+Feature: metis
+Build-Depends: metis
+Description: Use metis in SuiteSparse
diff --git a/ports/suitesparse/fix-install-suitesparse.patch b/ports/suitesparse/fix-install-suitesparse.patch
new file mode 100644
index 000000000..a5b5400fa
--- /dev/null
+++ b/ports/suitesparse/fix-install-suitesparse.patch
@@ -0,0 +1,29 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8227298..c0eb354 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -222,7 +222,7 @@ ELSE()
+ ENDIF()
+ ENDIF()
+
+-IF(BUILD_METIS)
++IF(BUILD_METIS OR USE_VCPKG_METIS)
+ set(SuiteSparse_LINKER_METIS_LIBS "metis")
+ else()
+ set(SuiteSparse_LINKER_METIS_LIBS "")
+diff --git a/SuiteSparse/CMakeLists.txt b/SuiteSparse/CMakeLists.txt
+index 7361363..8a48cf3 100644
+--- a/SuiteSparse/CMakeLists.txt
++++ b/SuiteSparse/CMakeLists.txt
+@@ -10,7 +10,11 @@ ENDIF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug")
+ IF (BUILD_METIS)
+ INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include")
+ ELSE (BUILD_METIS)
++ IF(USE_VCPKG_METIS)
++ INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include")
++ ELSE (USE_VCPKG_METIS)
+ ADD_DEFINITIONS(-DNPARTITION)
++ ENDIF(USE_VCPKG_METIS)
+ ENDIF ( BUILD_METIS)
+
+ # Disable COMPLEX numbers: disable it by default, since it causes problems in some platforms.
diff --git a/ports/suitesparse/portfile.cmake b/ports/suitesparse/portfile.cmake
new file mode 100644
index 000000000..75399609e
--- /dev/null
+++ b/ports/suitesparse/portfile.cmake
@@ -0,0 +1,92 @@
+# 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)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "Warning: Dynamic building not supported yet. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+set(SUITESPARSE_VER SuiteSparse-4.5.5) #if you change the version, becarefull of changing the SHA512 checksum accordingly
+set(SUITESPARSEWIN_PATH ${CURRENT_BUILDTREES_DIR}/src/suitesparse-metis-for-windows-1.3.1)
+set(SUITESPARSE_PATH ${SUITESPARSEWIN_PATH}/Suitesparse)
+
+#download suitesparse libary
+vcpkg_download_distfile(SUITESPARSE
+ URLS "http://faculty.cse.tamu.edu/davis/SuiteSparse/${SUITESPARSE_VER}.tar.gz"
+ FILENAME "${SUITESPARSE_VER}.tar.gz"
+ SHA512 4337c683027efca6c0800815587409db14db7d70df673451e307eb3ece5538815d06d90f3a831fa45071372f70b6f37eaa68fe951f69dbb52a5bfd84d2dc4913
+)
+
+#download suitesparse-metis-for-windows scripts, suitesparse does not have CMake build system, jlblancoc has made one for it
+vcpkg_download_distfile(SUITESPARSEWIN
+ URLS "https://github.com/jlblancoc/suitesparse-metis-for-windows/archive/v1.3.1.zip"
+ FILENAME "suitesparse-metis-for-windows-1.3.1.zip"
+ SHA512 f8b9377420432f1c0a05bf884fe9e72f1f4eaf7e05663c66a383b5d8ddbd4fbfaa7d433727b4dc3e66b41dbb96b1327d380b68a51a424276465512666e63393d
+)
+
+#extract suitesparse-metis-for-windows first and merge with suitesparse library
+vcpkg_extract_source_archive(${SUITESPARSEWIN})
+vcpkg_extract_source_archive(${SUITESPARSE} ${SUITESPARSEWIN_PATH})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SUITESPARSEWIN_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-install-suitesparse.patch"
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/remove-debug-postfix.patch"
+)
+
+set(USE_VCPKG_METIS OFF)
+if("metis" IN_LIST FEATURES)
+ set(USE_VCPKG_METIS ON)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SUITESPARSEWIN_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_METIS=OFF #Disable the option to build metis from source
+ -DUSE_VCPKG_METIS=${USE_VCPKG_METIS} #Force using vcpckg metis library
+ -DMETIS_SOURCE_DIR=${CURRENT_INSTALLED_DIR}
+ -DLIB_POSTFIX=
+ -DSUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS=ON
+ -DSUITESPARSE_CUSTOM_BLAS_LIB=${CURRENT_INSTALLED_DIR}/lib/openblas.lib
+ -DSUITESPARSE_CUSTOM_LAPACK_LIB=${CURRENT_INSTALLED_DIR}/lib/lapack.lib
+ OPTIONS_DEBUG
+ -DSUITESPARSE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug
+ OPTIONS_RELEASE
+ -DSUITESPARSE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake")
+
+file(RENAME ${CURRENT_PACKAGES_DIR}/UseSuiteSparse.cmake ${CURRENT_PACKAGES_DIR}/share/suitesparse/UseSuiteSparse.cmake)
+file(RENAME ${CURRENT_PACKAGES_DIR}/SuiteSparseConfig.cmake ${CURRENT_PACKAGES_DIR}/share/suitesparse/SuiteSparseConfig.cmake)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/UseSuiteSparse.cmake)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/SuiteSparseConfig.cmake)
+
+# Update paths in SuiteSparseConfig.cmake
+file(READ ${CURRENT_PACKAGES_DIR}/share/suitesparse/SuiteSparseConfig.cmake _contents)
+string(REPLACE "set(SuiteSparse_LIB_POSTFIX \"64\")" "set(SuiteSparse_LIB_POSTFIX \"\")" _contents "${_contents}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/suitesparse/SuiteSparseConfig.cmake "${_contents}")
+
+#clean folders
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright of suitesparse and suitesparse-metis-for-windows
+file(COPY ${SUITESPARSE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/suitesparse)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/suitesparse/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/suitesparse/copyright)
+
+file(COPY ${SUITESPARSEWIN_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/suitesparse)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/suitesparse/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/suitesparse/copyright_suitesparse-metis-for-windows)
diff --git a/ports/suitesparse/remove-debug-postfix.patch b/ports/suitesparse/remove-debug-postfix.patch
new file mode 100644
index 000000000..1b41139da
--- /dev/null
+++ b/ports/suitesparse/remove-debug-postfix.patch
@@ -0,0 +1,11 @@
+--- CMakeLists.txt Mon Feb 22 22:18:25 2016
++++ CMakeLists.txt Wed Jul 05 14:14:21 2017
+@@ -35,7 +35,7 @@
+
+ # We want libraries to be named "libXXX" and "libXXXd" in all compilers:
+ # ------------------------------------------------------------------------
+-set(CMAKE_DEBUG_POSTFIX "d")
++#set(CMAKE_DEBUG_POSTFIX "d")
+ IF(MSVC)
+ set(SP_LIB_PREFIX "lib") # Libs are: "libXXX"
+ ENDIF(MSVC)
diff --git a/ports/sundials/CONTROL b/ports/sundials/CONTROL
new file mode 100644
index 000000000..376a430fc
--- /dev/null
+++ b/ports/sundials/CONTROL
@@ -0,0 +1,3 @@
+Source: sundials
+Version: 2.7.0-1
+Description: SUNDIALS (SUite of Nonlinear and DIfferential/ALgebraic equation Solvers)
diff --git a/ports/sundials/portfile.cmake b/ports/sundials/portfile.cmake
new file mode 100644
index 000000000..141cb3b11
--- /dev/null
+++ b/ports/sundials/portfile.cmake
@@ -0,0 +1,49 @@
+include(vcpkg_common_functions)
+
+set(ARCHIVE_NAME "sundials-2.7.0")
+set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/${ARCHIVE_NAME}")
+
+vcpkg_download_distfile(ARCHIVE_FILE
+ URLS "https://computation.llnl.gov/projects/sundials/download/${ARCHIVE_NAME}.tar.gz"
+ FILENAME "${ARCHIVE_NAME}.tar.gz"
+ SHA512 c86c167538065a4109b36ae7c8f60f3d92184133cfa661b5acfccee052c38f40be865412a1746bb57907b61602c212c0f15e1e30ef29e8a49db6d46a75a28e69
+)
+vcpkg_extract_source_archive(${ARCHIVE_FILE})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS -DEXAMPLES_ENABLE=OFF
+)
+
+vcpkg_install_cmake(DISABLE_PARALLEL)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(GLOB REMOVE_DLLS
+ "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll"
+ "${CURRENT_PACKAGES_DIR}/lib/*.dll"
+)
+
+file(GLOB DEBUG_DLLS
+ "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll"
+)
+
+file(GLOB DLLS
+ "${CURRENT_PACKAGES_DIR}/lib/*.dll"
+)
+
+if(DLLS)
+ file(INSTALL ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+endif()
+
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/sundials RENAME copyright)
+
+if(REMOVE_DLLS)
+ file(REMOVE ${REMOVE_DLLS})
+endif()
+
+vcpkg_copy_pdbs()
diff --git a/ports/szip/CONTROL b/ports/szip/CONTROL
index acc364810..ca2093d66 100644
--- a/ports/szip/CONTROL
+++ b/ports/szip/CONTROL
@@ -1,3 +1,3 @@
Source: szip
-Version: 2.1-1
+Version: 2.1.1-1
Description: Szip compression software, providing lossless compression of scientific data
diff --git a/ports/szip/disable-static-lib-in-shared-build.patch b/ports/szip/disable-static-lib-in-shared-build.patch
index f06e6dcf6..02110cb2a 100644
--- a/ports/szip/disable-static-lib-in-shared-build.patch
+++ b/ports/szip/disable-static-lib-in-shared-build.patch
@@ -1,5 +1,5 @@
---- a/src/CMakeLists.txt Mon Aug 03 17:10:33 2015
-+++ b/src/CMakeLists.txt Fri Jan 13 09:38:07 2017
+--- a/src/CMakeLists.txt Fri Feb 03 20:42:43 2017
++++ b/src/CMakeLists.txt Wed Jan 03 11:42:51 2018
@@ -22,20 +22,22 @@
${SZIP_SRC_SOURCE_DIR}/szlib.h
)
@@ -37,3 +37,14 @@
if (BUILD_SHARED_LIBS)
add_library (${SZIP_LIBSH_TARGET} SHARED ${SZIP_SRCS} ${SZIP_PUBLIC_HEADERS})
+@@ -62,8 +64,9 @@
+ if (SZIP_EXPORTED_TARGETS)
+ if (BUILD_SHARED_LIBS)
+ INSTALL_TARGET_PDB (${SZIP_LIBSH_TARGET} ${SZIP_INSTALL_BIN_DIR} libraries)
++ else()
++ INSTALL_TARGET_PDB (${SZIP_LIB_TARGET} ${SZIP_INSTALL_BIN_DIR} libraries)
+ endif (BUILD_SHARED_LIBS)
+- INSTALL_TARGET_PDB (${SZIP_LIB_TARGET} ${SZIP_INSTALL_BIN_DIR} libraries)
+
+ install (
+ TARGETS
diff --git a/ports/szip/fix-szip-config-to-set-szip-found.patch b/ports/szip/fix-szip-config-to-set-szip-found.patch
new file mode 100644
index 000000000..f662916f9
--- /dev/null
+++ b/ports/szip/fix-szip-config-to-set-szip-found.patch
@@ -0,0 +1,11 @@
+diff -urN szip-2.1.1-a/config/cmake/szip-config.cmake.in szip-2.1.1-b/config/cmake/szip-config.cmake.in
+--- szip-2.1.1-a/config/cmake/szip-config.cmake.in 2018-02-10 11:06:46.890685077 +0900
++++ szip-2.1.1-b/config/cmake/szip-config.cmake.in 2018-02-10 11:11:25.369274127 +0900
+@@ -51,6 +51,7 @@
+ set (${SZIP_PACKAGE_NAME}_${comp}_FOUND 0)
+ else ()
+ set (${SZIP_PACKAGE_NAME}_${comp}_FOUND 1)
++ set (${SZIP_PACKAGE_NAME}_FOUND 1)
+ string(TOUPPER ${SZIP_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY)
+ set (${COMP_LIBRARY} ${${COMP_LIBRARY}} @SZIP_LIB_CORENAME@-${comp})
+ endif ()
diff --git a/ports/szip/portfile.cmake b/ports/szip/portfile.cmake
index 957d91ea1..c98f0e025 100644
--- a/ports/szip/portfile.cmake
+++ b/ports/szip/portfile.cmake
@@ -1,31 +1,19 @@
include(vcpkg_common_functions)
-# set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/szip-2.1)
-# vcpkg_download_distfile(ARCHIVE
-# URLS "https://support.hdfgroup.org/ftp/lib-external/szip/2.1/src/szip-2.1.tar.gz"
-# FILENAME "szip-2.1.tar.gz"
-# SHA512 ea91b877bb061fe6c96988a3c4b705e101a6950e34e9be53d6a57455c6a625be0afa60f4a3cfdd09649205b9f8586cc25ea60fe07a8131579acf3826b35fb749
-# )
-# vcpkg_extract_source_archive(${ARCHIVE})
-
-# NOTE: We use Szip from the HDF5 cmake package dir, because it includes a lot of fixes for the CMake build files
-
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/CMake-hdf5-1.10.0-patch1)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/szip-2.1.1)
vcpkg_download_distfile(ARCHIVE
- URLS "http://hdf4.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.0-patch1/src/CMake-hdf5-1.10.0-patch1.zip"
- FILENAME "CMake-hdf5-1.10.0-patch1.zip"
- SHA512 ec2edb43438661323be5998ecf64c4dd537ddc7451e31f89390260d16883e60a1ccc1bf745bcb809af22f2bf7157d50331a33910b8ebf5c59cd50693dfb2ef8f
+ URLS "https://support.hdfgroup.org/ftp/lib-external/szip/2.1.1/src/szip-2.1.1.tar.gz"
+ FILENAME "szip-2.1.1.tar.gz"
+ SHA512 ada6406efb096cd8a2daf8f9217fe9111a96dcae87e29d1c31f58ddd2ad2aa7bac03f23c7205dc9360f3b62d259461759330c7189ef0c2fe559704b1ea9d40dd
)
vcpkg_extract_source_archive(${ARCHIVE})
-set(ARCHIVE ${SOURCE_PATH}/SZip.tar.gz)
-vcpkg_extract_source_archive(${ARCHIVE})
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/Szip)
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
${CMAKE_CURRENT_LIST_DIR}/disable-static-lib-in-shared-build.patch
${CMAKE_CURRENT_LIST_DIR}/default-component-shared.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-szip-config-to-set-szip-found.patch
)
vcpkg_configure_cmake(
@@ -38,11 +26,9 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
vcpkg_copy_pdbs()
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/szip/data/COPYING ${CURRENT_PACKAGES_DIR}/share/szip/copyright)
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/szip)
-file(READ ${CURRENT_PACKAGES_DIR}/debug/share/szip/szip-targets-debug.cmake SZIP_TARGETS_DEBUG_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" SZIP_TARGETS_DEBUG_MODULE "${SZIP_TARGETS_DEBUG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/szip/szip-targets-debug.cmake "${SZIP_TARGETS_DEBUG_MODULE}")
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/szip/data/COPYING ${CURRENT_PACKAGES_DIR}/share/szip/copyright)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/tacopie/CONTROL b/ports/tacopie/CONTROL
new file mode 100644
index 000000000..ae46741d5
--- /dev/null
+++ b/ports/tacopie/CONTROL
@@ -0,0 +1,3 @@
+Source: tacopie
+Version: 3.2.0
+Description: Tacopie is a TCP Client & Server C++11 library
diff --git a/ports/tacopie/fix-cmakelists.patch b/ports/tacopie/fix-cmakelists.patch
new file mode 100644
index 000000000..48ba317bd
--- /dev/null
+++ b/ports/tacopie/fix-cmakelists.patch
@@ -0,0 +1,27 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -26,6 +26,7 @@
+ cmake_minimum_required(VERSION 2.8.7)
+ set(CMAKE_MACOSX_RPATH 1)
+ include(${CMAKE_ROOT}/Modules/ExternalProject.cmake)
++include(${CMAKE_ROOT}/Modules/GenerateExportHeader.cmake)
+
+
+ ###
+@@ -153,6 +154,8 @@ IF (SELECT_TIMEOUT)
+ set_target_properties(${PROJECT} PROPERTIES COMPILE_DEFINITIONS "__TACOPIE_TIMEOUT=${SELECT_TIMEOUT}")
+ ENDIF(SELECT_TIMEOUT)
+
++generate_export_header(${PROJECT} EXPORT_FILE_NAME ${CMAKE_BINARY_DIR}/tacopie/utils/${PROJECT}_export.hpp)
++target_include_directories(${PROJECT} PUBLIC ${CMAKE_BINARY_DIR})
+
+ ###
+ # install
+@@ -164,6 +167,7 @@ install(DIRECTORY DESTINATION ${CMAKE_BINARY_DIR}/bin/)
+ install (DIRECTORY ${CMAKE_BINARY_DIR}/lib/ DESTINATION lib USE_SOURCE_PERMISSIONS)
+ install (DIRECTORY ${CMAKE_BINARY_DIR}/bin/ DESTINATION bin USE_SOURCE_PERMISSIONS)
+ install (DIRECTORY ${TACOPIE_INCLUDES}/ DESTINATION include USE_SOURCE_PERMISSIONS)
++install (FILES ${CMAKE_BINARY_DIR}/tacopie/utils/${PROJECT}_export.hpp DESTINATION include/tacopie/utils)
+
+
+ ###
diff --git a/ports/tacopie/fix-export.patch b/ports/tacopie/fix-export.patch
new file mode 100644
index 000000000..d971b8338
--- /dev/null
+++ b/ports/tacopie/fix-export.patch
@@ -0,0 +1,20 @@
+--- a/includes/tacopie/utils/logger.hpp
++++ b/includes/tacopie/utils/logger.hpp
+@@ -26,6 +26,8 @@
+ #include <mutex>
+ #include <string>
+
++#include <tacopie/utils/tacopie_export.hpp>
++
+ namespace tacopie {
+
+ //!
+@@ -161,7 +163,7 @@ private:
+ //! variable containing the current logger
+ //! by default, not set (no logs)
+ //!
+-extern std::unique_ptr<logger_iface> active_logger;
++extern TACOPIE_EXPORT std::unique_ptr<logger_iface> active_logger;
+
+ //!
+ //! debug logging
diff --git a/ports/tacopie/portfile.cmake b/ports/tacopie/portfile.cmake
new file mode 100644
index 000000000..d1e30e67e
--- /dev/null
+++ b/ports/tacopie/portfile.cmake
@@ -0,0 +1,46 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Cylix/tacopie
+ REF 3.2.0
+ SHA512 079b294b537aaffe3bcf43a485c3be5b15f633c3f7c70140032d60cb010d35b76e76ef4ddd7596f6bfaf3f7edca7cb086c67552efffbf65846e725d7be54ce72
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-export.patch
+)
+
+if(VCPKG_CRT_LINKAGE STREQUAL dynamic)
+ set(MSVC_RUNTIME_LIBRARY_CONFIG "/MD")
+else()
+ set(MSVC_RUNTIME_LIBRARY_CONFIG "/MT")
+endif()
+
+# tacopie forcibly removes "/RTC1" in its cmake file. Because this is an ABI-sensitive flag, we need to re-add it in a form that won't be detected.
+set(VCPKG_CXX_FLAGS_DEBUG "${VCPKG_CXX_FLAGS_DEBUG} -RTC1")
+set(VCPKG_C_FLAGS_DEBUG "${VCPKG_C_FLAGS_DEBUG} -RTC1")
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DMSVC_RUNTIME_LIBRARY_CONFIG=${MSVC_RUNTIME_LIBRARY_CONFIG}
+ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/tacopie RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/taglib/CONTROL b/ports/taglib/CONTROL
index dbf00d6a2..cc5fdb0f7 100644
--- a/ports/taglib/CONTROL
+++ b/ports/taglib/CONTROL
@@ -1,4 +1,4 @@
Source: taglib
-Version: 1.11.1-2
+Version: 1.11.1-4
Description: TagLib Audio Meta-Data Library
-Build-Depends: zlib \ No newline at end of file
+Build-Depends: zlib
diff --git a/ports/taglib/dont-assume-latin-1.patch b/ports/taglib/dont-assume-latin-1.patch
deleted file mode 100644
index 39557f74d..000000000
--- a/ports/taglib/dont-assume-latin-1.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/taglib/toolkit/tfilestream.cpp b/taglib/toolkit/tfilestream.cpp
-index b267aaa..3db0521 100644
---- a/taglib/toolkit/tfilestream.cpp
-+++ b/taglib/toolkit/tfilestream.cpp
-@@ -54,7 +54,12 @@ namespace
- if(!path.wstr().empty())
- return CreateFile2(path.wstr().c_str(), access, FILE_SHARE_READ, OPEN_EXISTING, NULL);
- else if(!path.str().empty())
-- return CreateFile2(std::wstring(path.str().cbegin(), path.str().end()).c_str(), access, FILE_SHARE_READ, OPEN_EXISTING, NULL);
-+ {
-+ auto size = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, path.str().data(), path.str().size(), NULL, 0);
-+ std::wstring tmp(size, L'\0');
-+ MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, path.str().data(), path.str().size(), &tmp[0], tmp.size());
-+ return CreateFile2(tmp.c_str(), access, FILE_SHARE_READ, OPEN_EXISTING, NULL);
-+ }
- else
- return InvalidFileHandle;
- }
diff --git a/ports/taglib/portfile.cmake b/ports/taglib/portfile.cmake
index edc11c5b1..c90d16ca8 100644
--- a/ports/taglib/portfile.cmake
+++ b/ports/taglib/portfile.cmake
@@ -1,29 +1,21 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/taglib-1.11.1)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO taglib/taglib
- REF v1.11.1
- SHA512 7846775c4954ea948fe4383e514ba7c11f55d038ee06b6ea5a0a1c1069044b348026e76b27aa4ba1c71539aa8143e1401fab39184cc6e915ba0ae2c06133cb98
+ REF 662f340f933077a926de443c9882f483973570e3
+ SHA512 34087f77bb099f1f8ec82926a212a562bf589fc13f54eac50a56730c4411af2f4dbf1b7d09877087899048c3070325aea02297c6a94d0ad43fbf6742363dd2b6
HEAD_REF master
)
-if(NOT VCPKG_USE_HEAD_VERSION) # these have been fixed upstream after 1.11.1
- # patches for UWP
- vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/replace_non-uwp_functions.patch
- ${CMAKE_CURRENT_LIST_DIR}/dont-assume-latin-1.patch
- )
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(WINRT_OPTIONS -DHAVE_VSNPRINTF=1 -DPLATFORM_WINRT=1)
endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
- OPTIONS
- -DHAVE_VSNPRINTF=1 # taglib/ConfigureChecks.cmake doesn't properly detect MSVC vsnprintf() on UWP
+ OPTIONS ${WINRT_OPTIONS}
)
vcpkg_install_cmake()
diff --git a/ports/taglib/replace_non-uwp_functions.patch b/ports/taglib/replace_non-uwp_functions.patch
deleted file mode 100644
index 5f01672d5..000000000
--- a/ports/taglib/replace_non-uwp_functions.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/taglib/toolkit/tfilestream.cpp b/taglib/toolkit/tfilestream.cpp
-index 5205bae..b267aaa 100644
---- a/taglib/toolkit/tfilestream.cpp
-+++ b/taglib/toolkit/tfilestream.cpp
-@@ -52,9 +52,9 @@ namespace
- const DWORD access = readOnly ? GENERIC_READ : (GENERIC_READ | GENERIC_WRITE);
-
- if(!path.wstr().empty())
-- return CreateFileW(path.wstr().c_str(), access, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
-+ return CreateFile2(path.wstr().c_str(), access, FILE_SHARE_READ, OPEN_EXISTING, NULL);
- else if(!path.str().empty())
-- return CreateFileA(path.str().c_str(), access, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
-+ return CreateFile2(std::wstring(path.str().cbegin(), path.str().end()).c_str(), access, FILE_SHARE_READ, OPEN_EXISTING, NULL);
- else
- return InvalidFileHandle;
- }
-@@ -437,9 +437,10 @@ long FileStream::length()
- #ifdef _WIN32
-
- SetLastError(NO_ERROR);
-- const DWORD fileSize = GetFileSize(d->file, NULL);
-+ LARGE_INTEGER fileSize;
-+ GetFileSizeEx(d->file, &fileSize);
- if(GetLastError() == NO_ERROR) {
-- return static_cast<long>(fileSize);
-+ return fileSize.QuadPart;
- }
- else {
- debug("FileStream::length() -- Failed to get the file size.");
diff --git a/ports/tap-windows6/CONTROL b/ports/tap-windows6/CONTROL
new file mode 100644
index 000000000..744247c32
--- /dev/null
+++ b/ports/tap-windows6/CONTROL
@@ -0,0 +1,3 @@
+Source: tap-windows6
+Version: 9.21.2-0e30f5c
+Description: an NDIS 6 implementation of the TAP-Windows driver, used by OpenVPN and other apps. Note: This package only contains the headers for the driver. \ No newline at end of file
diff --git a/ports/tap-windows6/portfile.cmake b/ports/tap-windows6/portfile.cmake
new file mode 100644
index 000000000..4e2725d1e
--- /dev/null
+++ b/ports/tap-windows6/portfile.cmake
@@ -0,0 +1,15 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO OpenVPN/tap-windows6
+ REF 0e30f5c13b3c7b0bdd60da915350f653e4c14d92
+ SHA512 88edecccd4818091f7d70b66f3dfa07146f010a064829dc971abdd0c180ce1f72db9d8f3a1c9f5b4fb3f31e7afe3eadbd7d6f7d711f698e723441d30beaf9e30
+ HEAD_REF master
+)
+
+file(COPY ${SOURCE_PATH}/src/tap-windows.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/)
+
+file(INSTALL
+ ${SOURCE_PATH}/COPYRIGHT.MIT
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/tap-windows6 RENAME copyright)
diff --git a/ports/tbb/CONTROL b/ports/tbb/CONTROL
index b82b70555..0e19d650b 100644
--- a/ports/tbb/CONTROL
+++ b/ports/tbb/CONTROL
@@ -1,3 +1,3 @@
Source: tbb
-Version: 20160916
+Version: 2018_U3
Description: Intel's Threading Building Blocks.
diff --git a/ports/tbb/portfile.cmake b/ports/tbb/portfile.cmake
index fc761f113..4a0b80ec4 100644
--- a/ports/tbb/portfile.cmake
+++ b/ports/tbb/portfile.cmake
@@ -1,24 +1,28 @@
-# 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 static)
message(STATUS "Warning: Static building not supported yet. Building dynamic.")
set(VCPKG_LIBRARY_LINKAGE dynamic)
endif()
+if (VCPKG_CRT_LINKAGE STREQUAL static)
+ message(FATAL_ERROR "TBB does not currently support static crt linkage")
+endif()
+
include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO 01org/tbb
+ REF 633b01ad27e012e1dc4e392c3230250d1f4967a4
+ SHA512 5576b5e1efa0c7938dc08a1a9503ea19234b20f6a742f3d13a8de19b47f5bdafa1bb855e4de022a4b096a429e66739599a198fdf687c167c659f7556235fa01f
+ HEAD_REF tbb_2018)
+
+if(TRIPLET_SYSTEM_ARCH STREQUAL x86)
+ set(BUILD_ARCH Win32)
+else()
+ set(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH})
+endif()
+
+set(TBB_MSBUILD_PROJECT_DIR ${SOURCE_PATH}/build/vs2013)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/tbb2017_20160916oss)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://www.threadingbuildingblocks.org/sites/default/files/software_releases/windows/tbb2017_20160916oss_win_1.zip"
- FILENAME "tbb2017_20160916oss_win_1.zip"
- SHA512 14bbc54aa0c4506bab6e6fdb7e9e562cbc88881cb683a8bd690e3101177e55433f25a2143e7af1ed52edacb44dc92fab354e1f2101bc13b33b3ea137def8bdd1
-)
-vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_build_msbuild(PROJECT_PATH ${TBB_MSBUILD_PROJECT_DIR}/makefile.sln PLATFORM ${BUILD_ARCH})
# Installation
message(STATUS "Installing")
@@ -27,54 +31,59 @@ file(COPY
${SOURCE_PATH}/include/serial
DESTINATION ${CURRENT_PACKAGES_DIR}/include)
-if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
- set(BIN_PATH ${SOURCE_PATH}/bin/intel64/vc14)
- set(LIB_PATH ${SOURCE_PATH}/lib/intel64/vc14)
-elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
- set(BIN_PATH ${SOURCE_PATH}/bin/ia32/vc14)
- set(LIB_PATH ${SOURCE_PATH}/lib/ia32/vc14)
-else()
- message(FATAL_ERROR "Unsupported architecture")
-endif()
+set(DEBUG_OUTPUT_PATH ${TBB_MSBUILD_PROJECT_DIR}/${BUILD_ARCH}/Debug)
+set(RELEASE_OUTPUT_PATH ${TBB_MSBUILD_PROJECT_DIR}/${BUILD_ARCH}/Release)
file(COPY
- ${LIB_PATH}/tbb.lib
- ${LIB_PATH}/tbb_preview.lib
- ${LIB_PATH}/tbbmalloc.lib
- ${LIB_PATH}/tbbmalloc_proxy.lib
- ${LIB_PATH}/tbbproxy.lib
- ${LIB_PATH}/tbbproxy.pdb
+ ${RELEASE_OUTPUT_PATH}/tbb.lib
+ ${RELEASE_OUTPUT_PATH}/tbbmalloc.lib
+ ${RELEASE_OUTPUT_PATH}/tbbmalloc_proxy.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(COPY
- ${LIB_PATH}/tbb_debug.lib
- ${LIB_PATH}/tbb_preview_debug.lib
- ${LIB_PATH}/tbbmalloc_debug.lib
- ${LIB_PATH}/tbbmalloc_proxy_debug.lib
- ${LIB_PATH}/tbbproxy_debug.lib
- ${LIB_PATH}/tbbproxy_debug.pdb
+ ${DEBUG_OUTPUT_PATH}/tbb_debug.lib
+ ${DEBUG_OUTPUT_PATH}/tbbmalloc_debug.lib
+ ${DEBUG_OUTPUT_PATH}/tbbmalloc_proxy_debug.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(COPY
- ${BIN_PATH}/tbb.dll
- ${BIN_PATH}/tbb_preview.dll
- ${BIN_PATH}/tbbmalloc.dll
- ${BIN_PATH}/tbbmalloc_proxy.dll
- ${BIN_PATH}/tbb.pdb
- ${BIN_PATH}/tbb_preview.pdb
- ${BIN_PATH}/tbbmalloc.pdb
- ${BIN_PATH}/tbbmalloc_proxy.pdb
+ ${RELEASE_OUTPUT_PATH}/tbb.dll
+ ${RELEASE_OUTPUT_PATH}/tbbmalloc.dll
+ ${RELEASE_OUTPUT_PATH}/tbbmalloc_proxy.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(COPY
- ${BIN_PATH}/tbb_debug.dll
- ${BIN_PATH}/tbb_preview_debug.dll
- ${BIN_PATH}/tbbmalloc_debug.dll
- ${BIN_PATH}/tbbmalloc_proxy_debug.dll
- ${BIN_PATH}/tbb_debug.pdb
- ${BIN_PATH}/tbb_preview_debug.pdb
- ${BIN_PATH}/tbbmalloc_debug.pdb
- ${BIN_PATH}/tbbmalloc_proxy_debug.pdb
+ ${DEBUG_OUTPUT_PATH}/tbb_debug.dll
+ ${DEBUG_OUTPUT_PATH}/tbbmalloc_debug.dll
+ ${DEBUG_OUTPUT_PATH}/tbbmalloc_proxy_debug.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+vcpkg_copy_pdbs()
+
+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
+ SYSTEM_NAME "Windows"
+ CONFIG_FOR_SOURCE
+ TBB_RELEASE_DIR "\${_tbb_root}/bin"
+ TBB_DEBUG_DIR "\${_tbb_root}/debug/bin")
+
+file(COPY ${TBB_CONFIG_DIR}/TBBConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/tbb)
+file(COPY ${TBB_CONFIG_DIR}/TBBConfigVersion.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/tbb)
+file(REMOVE_RECURSE ${TBB_CONFIG_DIR})
+
+# make it work with our installation layout
+file(READ ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake TBB_CONFIG_CMAKE)
+string(REPLACE
+"get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)"
+"get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)
+get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)" TBB_CONFIG_CMAKE "${TBB_CONFIG_CMAKE}")
+string(REPLACE
+"\${_tbb_root}/bin/\${_tbb_component}.lib"
+"\${_tbb_root}/lib/\${_tbb_component}.lib" TBB_CONFIG_CMAKE "${TBB_CONFIG_CMAKE}")
+string(REPLACE
+"\${_tbb_root}/debug/bin/\${_tbb_component}_debug.lib"
+"\${_tbb_root}/debug/lib/\${_tbb_component}_debug.lib" TBB_CONFIG_CMAKE "${TBB_CONFIG_CMAKE}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake "${TBB_CONFIG_CMAKE}")
+
message(STATUS "Installing done")
# Handle copyright
diff --git a/ports/tclap/CONTROL b/ports/tclap/CONTROL
index 1e086a845..e4276ca03 100644
--- a/ports/tclap/CONTROL
+++ b/ports/tclap/CONTROL
@@ -1,3 +1,3 @@
Source: tclap
-Version: 1.2.1
+Version: 1.2.2
Description: Templatized command-line argument parser for C++
diff --git a/ports/tclap/portfile.cmake b/ports/tclap/portfile.cmake
index 8f41d076f..96337418a 100644
--- a/ports/tclap/portfile.cmake
+++ b/ports/tclap/portfile.cmake
@@ -1,10 +1,10 @@
#header-only library
include(vcpkg_common_functions)
-set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/tclap-1.2.1")
+set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/tclap-1.2.2")
vcpkg_download_distfile(ARCHIVE
- URLS "http://downloads.sourceforge.net/project/tclap/tclap-1.2.1.tar.gz"
- FILENAME "tclap-1.2.1.tar.gz"
- SHA512 8bd6ee724600880840048c7b36f02d31b1aa4910b17f80fb04aef89b1f1917856d9979ec488edbd457b66d9d689aea97540abb842a8b902bbd75c66a6e07b9b1
+ URLS "http://downloads.sourceforge.net/project/tclap/tclap-1.2.2.tar.gz"
+ FILENAME "tclap-1.2.2.tar.gz"
+ SHA512 516ec17f82a61277922bc8c0ed66973300bf42a738847fbbd2912c6405c34f94a13e47dc964854a5b26a9a9f1f518cce682ca54e769d6016851656c647866107
)
vcpkg_extract_source_archive(${ARCHIVE})
diff --git a/ports/telnetpp/CONTROL b/ports/telnetpp/CONTROL
new file mode 100644
index 000000000..595e1cd88
--- /dev/null
+++ b/ports/telnetpp/CONTROL
@@ -0,0 +1,4 @@
+Source: telnetpp
+Version: 1.2.4
+Description: Telnet++ is an implementation of the Telnet Session Layer protocol using C++14
+Build-Depends: boost, gtest, zlib
diff --git a/ports/telnetpp/portfile.cmake b/ports/telnetpp/portfile.cmake
new file mode 100644
index 000000000..1859ad4a2
--- /dev/null
+++ b/ports/telnetpp/portfile.cmake
@@ -0,0 +1,47 @@
+if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+ message(FATAL_ERROR "Telnetpp does not currently support UWP")
+endif()
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO KazDragon/telnetpp
+ REF v1.2.4
+ SHA512 16879fd377a7d13aac497bc9989c026acc1ed5b4eb9338d151d3d827c7c4c44fab84dd06c5fe55be4efe49a98ea46e62e80bbc51c8503d6ba1bf5534fee16c84
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+# Remove duplicate header files and CMake input file
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/include/telnetpp/version.hpp.in)
+
+# The install target in the upstream package does not install the binary output
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/telnetpp.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/telnetpp.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+# Move CMake installed configuration files and adjust for vcpkg debug location
+file(COPY ${CURRENT_PACKAGES_DIR}/lib/telnetpp/telnetpp-config.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/telnetpp)
+file(COPY ${CURRENT_PACKAGES_DIR}/lib/telnetpp/telnetpp-config-release.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/telnetpp)
+file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/telnetpp/telnetpp-config-debug.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/telnetpp)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/telnetpp)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/telnetpp)
+
+file(READ ${CURRENT_PACKAGES_DIR}/share/telnetpp/telnetpp-config-debug.cmake DEBUG_CONFIG)
+string(REPLACE "\${_IMPORT_PREFIX}/lib/telnetpp.lib"
+ "\${_IMPORT_PREFIX}/debug/lib/telnetpp.lib" DEBUG_CONFIG ${DEBUG_CONFIG})
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/telnetpp/telnetpp-config-debug.cmake "${DEBUG_CONFIG}")
+
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/telnetpp RENAME copyright)
diff --git a/ports/tesseract/CONTROL b/ports/tesseract/CONTROL
new file mode 100644
index 000000000..264a09584
--- /dev/null
+++ b/ports/tesseract/CONTROL
@@ -0,0 +1,4 @@
+Source: tesseract
+Version: 3.05.01-3
+Description: An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google.
+Build-Depends: leptonica, icu
diff --git a/ports/tesseract/portfile.cmake b/ports/tesseract/portfile.cmake
new file mode 100644
index 000000000..cebf4316b
--- /dev/null
+++ b/ports/tesseract/portfile.cmake
@@ -0,0 +1,53 @@
+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 tesseract-ocr/tesseract
+ REF 3.05.01
+ SHA512 a49c20c98386684cd89582e57b772811204fad8e5ff18214fb0da109f73629c70845054985e31e8deeb49107fbcf56e546aff661f08eb5dd60fbf83dbe976e81
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/use-vcpkg-icu.patch
+ ${CMAKE_CURRENT_LIST_DIR}/ws2-32.patch
+)
+
+# The built-in cmake FindICU is better
+file(REMOVE ${SOURCE_PATH}/cmake/FindICU.cmake)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DSTATIC=ON
+ -DUSE_SYSTEM_ICU=True
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake")
+
+# Install tool
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/tesseract)
+file(COPY ${CURRENT_PACKAGES_DIR}/bin/tesseract.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/tesseract)
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/tesseract)
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/tesseract)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/tesseract/LICENSE ${CURRENT_PACKAGES_DIR}/share/tesseract/copyright)
diff --git a/ports/tesseract/use-vcpkg-icu.patch b/ports/tesseract/use-vcpkg-icu.patch
new file mode 100644
index 000000000..9c75726e1
--- /dev/null
+++ b/ports/tesseract/use-vcpkg-icu.patch
@@ -0,0 +1,11 @@
+--- a/training/CMakeLists.txt Thu Aug 17 02:46:15 2017
++++ b/training/CMakeLists.txt Thu Aug 17 02:46:15 2017
+@@ -11,7 +11,7 @@
+ endif()
+
+ # experimental
+-if (MSVC AND NOT CPPAN_BUILD)
++if (MSVC AND NOT CPPAN_BUILD AND NOT USE_SYSTEM_ICU)
+
+ include(CheckTypeSize)
+ check_type_size("void *" SIZEOF_VOID_P)
diff --git a/ports/tesseract/ws2-32.patch b/ports/tesseract/ws2-32.patch
new file mode 100644
index 000000000..1d3be8189
--- /dev/null
+++ b/ports/tesseract/ws2-32.patch
@@ -0,0 +1,12 @@
+diff --git a/viewer/svutil.cpp b/viewer/svutil.cpp
+index 34a2286..bc2a7e1 100644
+--- a/viewer/svutil.cpp
++++ b/viewer/svutil.cpp
+@@ -23,6 +23,7 @@
+ #include <stdio.h>
+ #ifdef _WIN32
+ #include <windows.h>
++#pragma comment(lib, "Ws2_32.lib")
+ struct addrinfo {
+ struct sockaddr* ai_addr;
+ int ai_addrlen;
diff --git a/ports/theia/CONTROL b/ports/theia/CONTROL
new file mode 100644
index 000000000..83d6c2c53
--- /dev/null
+++ b/ports/theia/CONTROL
@@ -0,0 +1,4 @@
+Source: theia
+Version: 0.7-d15154a-3
+Build-Depends: flann, cereal, ceres[suitesparse] (!x86&!uwp&!arm&!linux&!osx), openimageio, glew, freeglut
+Description: An open source library for multiview geometry and structure from motion
diff --git a/ports/theia/fix-cmakelists.patch b/ports/theia/fix-cmakelists.patch
new file mode 100644
index 000000000..674543c68
--- /dev/null
+++ b/ports/theia/fix-cmakelists.patch
@@ -0,0 +1,310 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9c1b150..367fbbc 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -218,24 +218,71 @@ include_directories(
+ # as system headers.
+ include_directories(SYSTEM ${EIGEN_INCLUDE_DIRS})
+
++
++set(THEIA_USE_EXTERNAL_CEREAL OFF CACHE BOOL "Use a system Cereal library")
++set(THEIA_USE_EXTERNAL_FLANN OFF CACHE BOOL "Use a system Flann library")
++
+ # build Third party libraries included in distro.
+-add_subdirectory(libraries)
+-include_directories(
+- libraries
+- libraries/spectra
+- ${akaze_SOURCE_DIR}
+- ${akaze_INCLUDE_DIR}
+- ${cereal_SOURCE_DIR}
+- ${cereal_SOURCE_DIR}/include
+- ${flann_SOURCE_DIR}
+- ${flann_SOURCE_DIR}/src/cpp
+- ${gtest_SOURCE_DIR}/include
+- ${gtest_SOURCE_DIR}
+- ${optimo_SOURCE_DIR}
+- ${statx_SOURCE_DIR}
+- ${stlplus3_SOURCE_DIR}
+- ${vlfeat_SOURCE_DIR}
+- ${visual_sfm_SOURCE_DIR})
++if (BUILD_TESTING)
++ add_subdirectory(libraries/gtest)
++endif (BUILD_TESTING)
++
++# AKAZE feature extractor.
++add_subdirectory(libraries/akaze)
++
++include_directories(${akaze_SOURCE_DIR} ${akaze_INCLUDE_DIR})
++
++# Cereal for portable IO.
++if(NOT THEIA_USE_EXTERNAL_CEREAL)
++ add_subdirectory(libraries/cereal)
++
++ include_directories(${cereal_SOURCE_DIR} ${cereal_SOURCE_DIR}/include)
++ set(THEIA_INTERNAL_CEREAL_LIB ${THEIA_INTERNAL_LIB_PREFIX}/cereal ${THEIA_INTERNAL_LIB_PREFIX}/cereal/include)
++else()
++ find_package(cereal REQUIRED)
++
++ set(_THEIA_CEREAL_LIBRARIES cereal)
++endif()
++
++# Flann for fast approximate nearest neighbor searches.
++if(NOT THEIA_USE_EXTERNAL_FLANN)
++ add_subdirectory(libraries/flann)
++
++ include_directories(${flann_SOURCE_DIR} ${flann_SOURCE_DIR}/src/cpp)
++ set(_THEIA_FLANN_LIBRARIES flann_cpp)
++ set(THEIA_INTERNAL_FLANN_LIB ${THEIA_INTERNAL_LIB_PREFIX}/flann)
++else()
++ find_package(Flann REQUIRED)
++
++ include_directories(${FLANN_INCLUDE_DIR})
++ set(_THEIA_FLANN_LIBRARIES ${FLANN_LIBRARY})
++endif()
++
++# Add Optimo.
++add_subdirectory(libraries/optimo)
++include_directories(${optimo_SOURCE_DIR})
++
++# Add Spectra.
++include_directories(libraries/spectra)
++
++# Add Statx.
++add_subdirectory(libraries/statx)
++include_directories(${statx_SOURCE_DIR})
++
++# STLPlus for filepath tools.
++add_subdirectory(libraries/stlplus3)
++include_directories(${stlplus3_SOURCE_DIR})
++
++# Add VLFeat.
++add_subdirectory(libraries/vlfeat)
++include_directories(${vlfeat_SOURCE_DIR})
++
++# Add VisualSfM files.
++add_subdirectory(libraries/visual_sfm)
++include_directories(${visual_sfm_SOURCE_DIR})
++
++include_directories(libraries)
++
+
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
+ include(OptimizeTheiaCompilerFlags)
+@@ -260,7 +307,19 @@ install(FILES ${THEIA_HDRS} DESTINATION include/theia)
+ file(GLOB_RECURSE THEIA_INTERNAL_HDRS ${CMAKE_SOURCE_DIR}/src/theia/*.h)
+ install(DIRECTORY src/theia/ DESTINATION include/theia FILES_MATCHING PATTERN "*.h")
+
+-install(DIRECTORY libraries/ DESTINATION include/theia/libraries FILES_MATCHING PATTERN "*.h*")
++install(DIRECTORY libraries/akaze/ DESTINATION include/theia/libraries/akaze FILES_MATCHING PATTERN "*.h*")
++if(NOT THEIA_USE_EXTERNAL_CEREAL)
++ install(DIRECTORY libraries/cereal/ DESTINATION include/theia/libraries/cereal FILES_MATCHING PATTERN "*.h*")
++endif()
++if(NOT THEIA_USE_EXTERNAL_FLANN)
++ install(DIRECTORY libraries/flann/ DESTINATION include/theia/libraries/flann FILES_MATCHING PATTERN "*.h*")
++endif()
++install(DIRECTORY libraries/optimo/ DESTINATION include/theia/libraries/optimo FILES_MATCHING PATTERN "*.h*")
++install(DIRECTORY libraries/spectra/ DESTINATION include/theia/libraries/spectra FILES_MATCHING PATTERN "*.h*")
++install(DIRECTORY libraries/statx/ DESTINATION include/theia/libraries/statx FILES_MATCHING PATTERN "*.h*")
++install(DIRECTORY libraries/stlplus3/ DESTINATION include/theia/libraries/stlplus3 FILES_MATCHING PATTERN "*.h*")
++install(DIRECTORY libraries/visual_sfm/ DESTINATION include/theia/libraries/visual_sfm FILES_MATCHING PATTERN "*.h*")
++install(DIRECTORY libraries/vlfeat/ DESTINATION include/theia/libraries/vlfeat FILES_MATCHING PATTERN "*.h*")
+
+ # Add an uninstall target to remove all installed files.
+ configure_file("${CMAKE_SOURCE_DIR}/cmake/uninstall.cmake.in"
+@@ -320,8 +379,9 @@ configure_file("${CMAKE_SOURCE_DIR}/cmake/TheiaConfigVersion.cmake.in"
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/TheiaConfig.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/TheiaConfigVersion.cmake"
+ "${CMAKE_SOURCE_DIR}/cmake/FindEigen.cmake"
+- "${CMAKE_SOURCE_DIR}/cmake/FindGlog.cmake"
++ "${CMAKE_SOURCE_DIR}/cmake/FindFlann.cmake"
+ "${CMAKE_SOURCE_DIR}/cmake/FindGflags.cmake"
+- "${CMAKE_SOURCE_DIR}/cmake/FindOpenImageIO.cmake"
++ "${CMAKE_SOURCE_DIR}/cmake/FindGlog.cmake"
++ "${CMAKE_SOURCE_DIR}/cmake/FindOpenImageIO.cmake"
+ "${CMAKE_SOURCE_DIR}/cmake/FindSuiteSparse.cmake"
+ DESTINATION ${CMAKECONFIG_INSTALL_DIR})
+diff --git a/cmake/FindFlann.cmake b/cmake/FindFlann.cmake
+new file mode 100644
+index 0000000..5d19ef7
+--- /dev/null
++++ b/cmake/FindFlann.cmake
+@@ -0,0 +1,63 @@
++###############################################################################
++# Find FLANN
++#
++# This sets the following variables:
++# FLANN_FOUND - True if FLANN was found.
++# FLANN_INCLUDE_DIRS - Directories containing the FLANN include files.
++# FLANN_LIBRARIES - Libraries needed to use FLANN.
++# FLANN_DEFINITIONS - Compiler flags for FLANN.
++# If FLANN_USE_STATIC is specified and then look for static libraries ONLY else
++# look for shared ones
++
++if(FLANN_USE_STATIC)
++ set(FLANN_RELEASE_NAME flann_cpp_s flann_cpp)
++ set(FLANN_DEBUG_NAME flann_cpp_s-gd flann_cpp-gd)
++else(FLANN_USE_STATIC)
++ set(FLANN_RELEASE_NAME flann_cpp)
++ set(FLANN_DEBUG_NAME flann_cpp-gd)
++endif(FLANN_USE_STATIC)
++
++find_package(PkgConfig QUIET)
++if (FLANN_FIND_VERSION)
++ pkg_check_modules(PC_FLANN flann>=${FLANN_FIND_VERSION})
++else(FLANN_FIND_VERSION)
++ pkg_check_modules(PC_FLANN flann)
++endif(FLANN_FIND_VERSION)
++
++set(FLANN_DEFINITIONS ${PC_FLANN_CFLAGS_OTHER})
++
++find_path(FLANN_INCLUDE_DIR flann/flann.hpp
++ HINTS ${PC_FLANN_INCLUDEDIR} ${PC_FLANN_INCLUDE_DIRS} "${FLANN_ROOT}" "$ENV{FLANN_ROOT}"
++ PATHS "$ENV{PROGRAMFILES}/Flann" "$ENV{PROGRAMW6432}/Flann"
++ PATH_SUFFIXES include)
++
++find_library(FLANN_LIBRARY
++ NAMES ${FLANN_RELEASE_NAME}
++ HINTS ${PC_FLANN_LIBDIR} ${PC_FLANN_LIBRARY_DIRS} "${FLANN_ROOT}" "$ENV{FLANN_ROOT}"
++ PATHS "$ENV{PROGRAMFILES}/Flann" "$ENV{PROGRAMW6432}/Flann"
++ PATH_SUFFIXES lib)
++
++find_library(FLANN_LIBRARY_DEBUG
++ NAMES ${FLANN_DEBUG_NAME} ${FLANN_RELEASE_NAME}
++ HINTS ${PC_FLANN_LIBDIR} ${PC_FLANN_LIBRARY_DIRS} "${FLANN_ROOT}" "$ENV{FLANN_ROOT}"
++ PATHS "$ENV{PROGRAMFILES}/Flann" "$ENV{PROGRAMW6432}/Flann"
++ PATH_SUFFIXES lib)
++
++if(NOT FLANN_LIBRARY_DEBUG)
++ set(FLANN_LIBRARY_DEBUG ${FLANN_LIBRARY})
++endif(NOT FLANN_LIBRARY_DEBUG)
++
++set(FLANN_INCLUDE_DIRS ${FLANN_INCLUDE_DIR})
++set(FLANN_LIBRARIES optimized ${FLANN_LIBRARY} debug ${FLANN_LIBRARY_DEBUG})
++
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(FLANN DEFAULT_MSG FLANN_LIBRARY FLANN_INCLUDE_DIR)
++
++mark_as_advanced(FLANN_LIBRARY FLANN_LIBRARY_DEBUG FLANN_INCLUDE_DIR)
++
++if(FLANN_FOUND)
++ message(STATUS "Flann found (include: ${FLANN_INCLUDE_DIRS}, lib: ${FLANN_LIBRARIES})")
++ if(FLANN_USE_STATIC)
++ add_definitions(-DFLANN_STATIC)
++ endif(FLANN_USE_STATIC)
++endif(FLANN_FOUND)
+diff --git a/cmake/TheiaConfig.cmake.in b/cmake/TheiaConfig.cmake.in
+index a3ea187..9195da1 100644
+--- a/cmake/TheiaConfig.cmake.in
++++ b/cmake/TheiaConfig.cmake.in
+@@ -207,22 +207,47 @@ endif (NOT TARGET theia AND NOT Theia_BINARY_DIR)
+ # Set the expected XX_LIBRARIES variable for FindPackage().
+ set(THEIA_LIBRARIES theia)
+
++set(THEIA_USE_EXTERNAL_CEREAL @THEIA_USE_EXTERNAL_CEREAL@)
++set(THEIA_USE_EXTERNAL_FLANN @THEIA_USE_EXTERNAL_FLANN@)
++
++# Cereal.
++if (THEIA_USE_EXTERNAL_CEREAL)
++ find_package(cereal QUIET)
++ if (TARGET cereal)
++ message(STATUS "Found required Theia dependency: Cereal")
++ else (TARGET cereal)
++ theia_report_not_found("Missing required Theia dependency: Cereal.")
++ endif (TARGET cereal)
++ list(APPEND THEIA_LIBRARIES cereal)
++endif (THEIA_USE_EXTERNAL_CEREAL)
++
++# Flann.
++if (THEIA_USE_EXTERNAL_FLANN)
++ find_package(Flann QUIET)
++ if (FLANN_FOUND)
++ message(STATUS "Found required Theia dependency: Flann")
++ else (FLANN_FOUND)
++ theia_report_not_found("Missing required Theia dependency: Flann.")
++ endif (FLANN_FOUND)
++ list(APPEND THEIA_INCLUDE_DIRS ${FLANN_INCLUDE_DIR})
++ list(APPEND THEIA_LIBRARIES ${FLANN_LIBRARY})
++endif (THEIA_USE_EXTERNAL_FLANN)
++
+ # Add the libraries included with the distribution.
+ set(THEIA_INTERNAL_LIB_PREFIX ${THEIA_INCLUDE_DIR}/theia/libraries)
+ set(THEIA_INTERNAL_LIBS_INCLUDES
+ ${THEIA_INTERNAL_LIB_PREFIX}
+ ${THEIA_INTERNAL_LIB_PREFIX}/akaze
+- ${THEIA_INTERNAL_LIB_PREFIX}/cereal
+- ${THEIA_INTERNAL_LIB_PREFIX}/cereal/include
+- ${THEIA_INTERNAL_LIB_PREFIX}/flann
++ @THEIA_INTERNAL_CEREAL_LIB@
++ @THEIA_INTERNAL_FLANN_LIB@
+ ${THEIA_INTERNAL_LIB_PREFIX}/gtest
+ ${THEIA_INTERNAL_LIB_PREFIX}/gtest/include
+ ${THEIA_INTERNAL_LIB_PREFIX}/optimo
+ ${THEIA_INTERNAL_LIB_PREFIX}/spectra
+ ${THEIA_INTERNAL_LIB_PREFIX}/statx
+ ${THEIA_INTERNAL_LIB_PREFIX}/stlplus3
+- ${THEIA_INTERNAL_LIB_PREFIX}/vlfeat
+- ${THEIA_INTERNAL_LIB_PREFIX}/visual_sfm)
++ ${THEIA_INTERNAL_LIB_PREFIX}/visual_sfm
++ ${THEIA_INTERNAL_LIB_PREFIX}/vlfeat)
+
+ list(APPEND THEIA_INCLUDE_DIRS ${THEIA_INTERNAL_LIBS_INCLUDES})
+
+diff --git a/libraries/CMakeLists.txt b/libraries/CMakeLists.txt
+deleted file mode 100644
+index 84f3829..0000000
+--- a/libraries/CMakeLists.txt
++++ /dev/null
+@@ -1,27 +0,0 @@
+-if (${BUILD_TESTING})
+- add_subdirectory(gtest)
+-endif (${BUILD_TESTING})
+-
+-# AKAZE feature extractor.
+-add_subdirectory(akaze)
+-
+-# Cereal for portable IO.
+-add_subdirectory(cereal)
+-
+-# Flann for fast approximate nearest neighbor searches.
+-add_subdirectory(flann)
+-
+-# Add Optimo.
+-add_subdirectory(optimo)
+-
+-# Add Statx.
+-add_subdirectory(statx)
+-
+-# STLPlus for filepath tools.
+-add_subdirectory(stlplus3)
+-
+-# Add VLFeat.
+-add_subdirectory(vlfeat)
+-
+-# Add VisualSfM files.
+-add_subdirectory(visual_sfm)
+\ No newline at end of file
+diff --git a/src/theia/CMakeLists.txt b/src/theia/CMakeLists.txt
+index 65787eb..07c54a4 100644
+--- a/src/theia/CMakeLists.txt
++++ b/src/theia/CMakeLists.txt
+@@ -174,14 +174,15 @@ set(THEIA_LIBRARY_DEPENDENCIES
+ ${CERES_LIBRARIES}
+ ${GFLAGS_LIBRARIES}
+ ${GLOG_LIBRARIES}
+- ${SUITESPARSE_LIBRARIES}
+ ${OPENIMAGEIO_LIBRARIES}
++ ${SUITESPARSE_LIBRARIES}
++ ${_THEIA_CEREAL_LIBRARIES}
++ ${_THEIA_FLANN_LIBRARIES}
+ akaze
+- flann_cpp
+ statx
+ stlplus3
+- vlfeat
+- visual_sfm)
++ visual_sfm
++ vlfeat)
+
+ set(THEIA_LIBRARY_SOURCE
+ ${THEIA_SRC}
diff --git a/ports/theia/fix-find-suitesparse.patch b/ports/theia/fix-find-suitesparse.patch
new file mode 100644
index 000000000..f7de44aa0
--- /dev/null
+++ b/ports/theia/fix-find-suitesparse.patch
@@ -0,0 +1,227 @@
+--- a/cmake/FindSuiteSparse.cmake Mon Feb 06 18:05:05 2017
++++ b/cmake/FindSuiteSparse.cmake Fri Jul 07 02:13:31 2017
+@@ -152,6 +152,12 @@
+ # the first.
+ endmacro(SUITESPARSE_REPORT_NOT_FOUND)
+
++# Protect against any alternative find_package scripts for this library having
++# been called previously (in a client project) which set SUITESPARSE_FOUND, but
++# not the other variables we require / set here which could cause the search
++# logic here to fail.
++unset(SUITESPARSE_FOUND)
++
+ # Handle possible presence of lib prefix for libraries on MSVC, see
+ # also SUITESPARSE_RESET_FIND_LIBRARY_PREFIX().
+ if (MSVC)
+@@ -173,8 +179,6 @@
+ /opt/local/include/ufsparse # Mac OS X
+ /usr/local/homebrew/include # Mac OS X
+ /usr/local/include
+- /usr/local/include/suitesparse
+- /usr/include/suitesparse # Ubuntu
+ /usr/include)
+ list(APPEND SUITESPARSE_CHECK_LIBRARY_DIRS
+ ${SUITESPARSE_LIBRARY_DIR_HINTS}
+@@ -182,9 +186,10 @@
+ /opt/local/lib/ufsparse # Mac OS X
+ /usr/local/homebrew/lib # Mac OS X
+ /usr/local/lib
+- /usr/local/lib/suitesparse
+- /usr/lib/suitesparse # Ubuntu
+ /usr/lib)
++# Additional suffixes to try appending to each search path.
++list(APPEND SUITESPARSE_CHECK_PATH_SUFFIXES
++ suitesparse) # Windows/Ubuntu
+
+ # Given the number of components of SuiteSparse, and to ensure that the
+ # automatic failure message generated by FindPackageHandleStandardArgs()
+@@ -212,7 +217,8 @@
+ set(AMD_FOUND TRUE)
+ list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS AMD_FOUND)
+ find_library(AMD_LIBRARY NAMES amd
+- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
++ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${AMD_LIBRARY})
+ message(STATUS "Found AMD library: ${AMD_LIBRARY}")
+ else (EXISTS ${AMD_LIBRARY})
+@@ -223,7 +229,8 @@
+ mark_as_advanced(AMD_LIBRARY)
+
+ find_path(AMD_INCLUDE_DIR NAMES amd.h
+- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
++ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${AMD_INCLUDE_DIR})
+ message(STATUS "Found AMD header in: ${AMD_INCLUDE_DIR}")
+ else (EXISTS ${AMD_INCLUDE_DIR})
+@@ -237,7 +244,8 @@
+ set(CAMD_FOUND TRUE)
+ list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS CAMD_FOUND)
+ find_library(CAMD_LIBRARY NAMES camd
+- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
++ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${CAMD_LIBRARY})
+ message(STATUS "Found CAMD library: ${CAMD_LIBRARY}")
+ else (EXISTS ${CAMD_LIBRARY})
+@@ -248,7 +256,8 @@
+ mark_as_advanced(CAMD_LIBRARY)
+
+ find_path(CAMD_INCLUDE_DIR NAMES camd.h
+- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
++ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${CAMD_INCLUDE_DIR})
+ message(STATUS "Found CAMD header in: ${CAMD_INCLUDE_DIR}")
+ else (EXISTS ${CAMD_INCLUDE_DIR})
+@@ -262,7 +271,8 @@
+ set(COLAMD_FOUND TRUE)
+ list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS COLAMD_FOUND)
+ find_library(COLAMD_LIBRARY NAMES colamd
+- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
++ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${COLAMD_LIBRARY})
+ message(STATUS "Found COLAMD library: ${COLAMD_LIBRARY}")
+ else (EXISTS ${COLAMD_LIBRARY})
+@@ -273,7 +283,8 @@
+ mark_as_advanced(COLAMD_LIBRARY)
+
+ find_path(COLAMD_INCLUDE_DIR NAMES colamd.h
+- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
++ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${COLAMD_INCLUDE_DIR})
+ message(STATUS "Found COLAMD header in: ${COLAMD_INCLUDE_DIR}")
+ else (EXISTS ${COLAMD_INCLUDE_DIR})
+@@ -287,7 +298,8 @@
+ set(CCOLAMD_FOUND TRUE)
+ list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS CCOLAMD_FOUND)
+ find_library(CCOLAMD_LIBRARY NAMES ccolamd
+- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
++ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${CCOLAMD_LIBRARY})
+ message(STATUS "Found CCOLAMD library: ${CCOLAMD_LIBRARY}")
+ else (EXISTS ${CCOLAMD_LIBRARY})
+@@ -298,7 +310,8 @@
+ mark_as_advanced(CCOLAMD_LIBRARY)
+
+ find_path(CCOLAMD_INCLUDE_DIR NAMES ccolamd.h
+- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
++ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${CCOLAMD_INCLUDE_DIR})
+ message(STATUS "Found CCOLAMD header in: ${CCOLAMD_INCLUDE_DIR}")
+ else (EXISTS ${CCOLAMD_INCLUDE_DIR})
+@@ -312,7 +325,8 @@
+ set(CHOLMOD_FOUND TRUE)
+ list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS CHOLMOD_FOUND)
+ find_library(CHOLMOD_LIBRARY NAMES cholmod
+- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
++ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${CHOLMOD_LIBRARY})
+ message(STATUS "Found CHOLMOD library: ${CHOLMOD_LIBRARY}")
+ else (EXISTS ${CHOLMOD_LIBRARY})
+@@ -323,7 +337,8 @@
+ mark_as_advanced(CHOLMOD_LIBRARY)
+
+ find_path(CHOLMOD_INCLUDE_DIR NAMES cholmod.h
+- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
++ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${CHOLMOD_INCLUDE_DIR})
+ message(STATUS "Found CHOLMOD header in: ${CHOLMOD_INCLUDE_DIR}")
+ else (EXISTS ${CHOLMOD_INCLUDE_DIR})
+@@ -337,7 +352,8 @@
+ set(SUITESPARSEQR_FOUND TRUE)
+ list(APPEND SUITESPARSE_FOUND_REQUIRED_VARS SUITESPARSEQR_FOUND)
+ find_library(SUITESPARSEQR_LIBRARY NAMES spqr
+- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
++ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${SUITESPARSEQR_LIBRARY})
+ message(STATUS "Found SuiteSparseQR library: ${SUITESPARSEQR_LIBRARY}")
+ else (EXISTS ${SUITESPARSEQR_LIBRARY})
+@@ -348,7 +364,8 @@
+ mark_as_advanced(SUITESPARSEQR_LIBRARY)
+
+ find_path(SUITESPARSEQR_INCLUDE_DIR NAMES SuiteSparseQR.hpp
+- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
++ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${SUITESPARSEQR_INCLUDE_DIR})
+ message(STATUS "Found SuiteSparseQR header in: ${SUITESPARSEQR_INCLUDE_DIR}")
+ else (EXISTS ${SUITESPARSEQR_INCLUDE_DIR})
+@@ -364,7 +381,8 @@
+ # support for it, this will do no harm if it wasn't.
+ set(TBB_FOUND TRUE)
+ find_library(TBB_LIBRARIES NAMES tbb
+- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
++ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${TBB_LIBRARIES})
+ message(STATUS "Found Intel Thread Building Blocks (TBB) library: "
+ "${TBB_LIBRARIES}, assuming SuiteSparseQR was compiled with TBB.")
+@@ -377,7 +395,8 @@
+
+ if (TBB_FOUND)
+ find_library(TBB_MALLOC_LIB NAMES tbbmalloc
+- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
++ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${TBB_MALLOC_LIB})
+ message(STATUS "Found Intel Thread Building Blocks (TBB) Malloc library: "
+ "${TBB_MALLOC_LIB}")
+@@ -407,7 +426,8 @@
+ # If SuiteSparse version is >= 4 then SuiteSparse_config is required.
+ # For SuiteSparse 3, UFconfig.h is required.
+ find_library(SUITESPARSE_CONFIG_LIBRARY NAMES suitesparseconfig
+- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
++ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${SUITESPARSE_CONFIG_LIBRARY})
+ message(STATUS "Found SuiteSparse_config library: "
+ "${SUITESPARSE_CONFIG_LIBRARY}")
+@@ -415,7 +435,8 @@
+ mark_as_advanced(SUITESPARSE_CONFIG_LIBRARY)
+
+ find_path(SUITESPARSE_CONFIG_INCLUDE_DIR NAMES SuiteSparse_config.h
+- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
++ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${SUITESPARSE_CONFIG_INCLUDE_DIR})
+ message(STATUS "Found SuiteSparse_config header in: "
+ "${SUITESPARSE_CONFIG_INCLUDE_DIR}")
+@@ -433,7 +454,8 @@
+ # does not have librt).
+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" OR UNIX AND NOT APPLE)
+ find_library(LIBRT_LIBRARY NAMES rt
+- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
++ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (LIBRT_LIBRARY)
+ message(STATUS "Adding librt: ${LIBRT_LIBRARY} to "
+ "SuiteSparse_config libraries (required on Linux & Unix [not OSX] if "
+@@ -452,7 +474,8 @@
+ # UFconfig header which should be present in < v4 installs.
+ set(SUITESPARSE_CONFIG_FOUND FALSE)
+ find_path(UFCONFIG_INCLUDE_DIR NAMES UFconfig.h
+- PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
++ PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${UFCONFIG_INCLUDE_DIR})
+ message(STATUS "Found UFconfig header in: ${UFCONFIG_INCLUDE_DIR}")
+ set(UFCONFIG_FOUND TRUE)
+@@ -543,7 +566,8 @@
+
+ # METIS (Optional dependency).
+ find_library(METIS_LIBRARY NAMES metis
+- PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
++ PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS}
++ PATH_SUFFIXES ${SUITESPARSE_CHECK_PATH_SUFFIXES})
+ if (EXISTS ${METIS_LIBRARY})
+ message(STATUS "Found METIS library: ${METIS_LIBRARY}.")
+ set(METIS_FOUND TRUE)
diff --git a/ports/theia/fix-glog-error.patch b/ports/theia/fix-glog-error.patch
new file mode 100644
index 000000000..1e72c9f35
--- /dev/null
+++ b/ports/theia/fix-glog-error.patch
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9c1b150..6518e6a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -146,6 +146,7 @@ else (GLOG_FOUND)
+ message(FATAL_ERROR "Can't find Google Logging. Please set GLOG_INCLUDE_DIR & "
+ "GLOG_LIBRARY")
+ endif (GLOG_FOUND)
++add_definitions(-DGLOG_NO_ABBREVIATED_SEVERITIES)
+
+ # Ceres
+ message("-- Check for Ceres")
diff --git a/ports/theia/fix-oiio.patch b/ports/theia/fix-oiio.patch
new file mode 100644
index 000000000..7cba45db7
--- /dev/null
+++ b/ports/theia/fix-oiio.patch
@@ -0,0 +1,391 @@
+diff --git a/src/theia/image/image.cc b/src/theia/image/image.cc
+index df6aba4..5e2b8dc 100644
+--- a/src/theia/image/image.cc
++++ b/src/theia/image/image.cc
+@@ -60,18 +60,18 @@ FloatImage::FloatImage(const FloatImage& image_to_copy) {
+ }
+
+ FloatImage::FloatImage(const int width, const int height, const int channels) {
+- OpenImageIO::ImageSpec image_spec(width, height, channels,
+- OpenImageIO::TypeDesc::FLOAT);
++ OIIO_NAMESPACE::ImageSpec image_spec(width, height, channels,
++ OIIO_NAMESPACE::TypeDesc::FLOAT);
+ image_.reset(image_spec);
+ }
+
+ FloatImage::FloatImage(const int width, const int height, const int channels,
+ float* buffer)
+- : image_(OpenImageIO::ImageSpec(width, height, channels,
+- OpenImageIO::TypeDesc::FLOAT),
++ : image_(OIIO_NAMESPACE::ImageSpec(width, height, channels,
++ OIIO_NAMESPACE::TypeDesc::FLOAT),
+ reinterpret_cast<void*>(buffer)) {}
+
+-FloatImage::FloatImage(const OpenImageIO::ImageBuf& image) {
++FloatImage::FloatImage(const OIIO_NAMESPACE::ImageBuf& image) {
+ image_.copy(image);
+ }
+
+@@ -80,11 +80,11 @@ FloatImage& FloatImage::operator=(const FloatImage& image2) {
+ return *this;
+ }
+
+-OpenImageIO::ImageBuf& FloatImage::GetOpenImageIOImageBuf() {
++OIIO_NAMESPACE::ImageBuf& FloatImage::GetOpenImageIOImageBuf() {
+ return image_;
+ }
+
+-const OpenImageIO::ImageBuf& FloatImage::GetOpenImageIOImageBuf() const {
++const OIIO_NAMESPACE::ImageBuf& FloatImage::GetOpenImageIOImageBuf() const {
+ return image_;
+ }
+
+@@ -110,7 +110,7 @@ void FloatImage::SetXY(const int x,
+ DCHECK_LT(c, Channels());
+
+ // Set the ROI to be the precise pixel location in the correct channel.
+- OpenImageIO::ImageBuf::Iterator<float> it(image_, x, y, 0);
++ OIIO_NAMESPACE::ImageBuf::Iterator<float> it(image_, x, y, 0);
+ it[c] = value;
+ }
+
+@@ -195,9 +195,9 @@ void FloatImage::ConvertToGrayscaleImage() {
+ // Compute luminance via a weighted sum of R,G,B (assuming Rec709 primaries
+ // and a linear scale)
+ const float luma_weights[3] = {.2126, .7152, .0722};
+- OpenImageIO::ImageBuf source = image_;
++ OIIO_NAMESPACE::ImageBuf source = image_;
+ image_.clear();
+- OpenImageIO::ImageBufAlgo::channel_sum(image_, source, luma_weights);
++ OIIO_NAMESPACE::ImageBufAlgo::channel_sum(image_, source, luma_weights);
+ }
+
+ void FloatImage::ConvertToRGBImage() {
+@@ -207,13 +207,13 @@ void FloatImage::ConvertToRGBImage() {
+ }
+
+ // Copy the single grayscale channel into r, g, and b.
+- const OpenImageIO::ImageBuf source(image_);
+- OpenImageIO::ImageSpec image_spec(Width(), Height(), 3,
+- OpenImageIO::TypeDesc::FLOAT);
++ const OIIO_NAMESPACE::ImageBuf source(image_);
++ OIIO_NAMESPACE::ImageSpec image_spec(Width(), Height(), 3,
++ OIIO_NAMESPACE::TypeDesc::FLOAT);
+ image_.reset(image_spec);
+- OpenImageIO::ImageBufAlgo::paste(image_, 0, 0, 0, 0, source);
+- OpenImageIO::ImageBufAlgo::paste(image_, 0, 0, 0, 1, source);
+- OpenImageIO::ImageBufAlgo::paste(image_, 0, 0, 0, 2, source);
++ OIIO_NAMESPACE::ImageBufAlgo::paste(image_, 0, 0, 0, 0, source);
++ OIIO_NAMESPACE::ImageBufAlgo::paste(image_, 0, 0, 0, 1, source);
++ OIIO_NAMESPACE::ImageBufAlgo::paste(image_, 0, 0, 0, 2, source);
+ }
+
+ FloatImage FloatImage::AsGrayscaleImage() const {
+@@ -238,12 +238,12 @@ FloatImage FloatImage::AsRGBImage() const {
+ }
+
+ void FloatImage::ScalePixels(float scale) {
+- OpenImageIO::ImageBufAlgo::mul(image_, image_, scale);
++ OIIO_NAMESPACE::ImageBufAlgo::mul(image_, image_, scale);
+ }
+
+ void FloatImage::Read(const std::string& filename) {
+ image_.reset(filename);
+- image_.read(0, 0, true, OpenImageIO::TypeDesc::FLOAT);
++ image_.read(0, 0, true, OIIO_NAMESPACE::TypeDesc::FLOAT);
+ }
+
+ void FloatImage::Write(const std::string& filename) const {
+@@ -259,19 +259,19 @@ const float* FloatImage::Data() const {
+
+ FloatImage FloatImage::ComputeGradientX() const {
+ float sobel_filter_x[9] = {-.125, 0, .125, -.25, 0, .25, -.125, 0, .125};
+- OpenImageIO::ImageSpec spec(3, 3, 1, OpenImageIO::TypeDesc::FLOAT);
+- OpenImageIO::ImageBuf kernel_x(spec, sobel_filter_x);
+- OpenImageIO::ImageBuf gradient_x;
+- OpenImageIO::ImageBufAlgo::convolve(gradient_x, image_, kernel_x, false);
++ OIIO_NAMESPACE::ImageSpec spec(3, 3, 1, OIIO_NAMESPACE::TypeDesc::FLOAT);
++ OIIO_NAMESPACE::ImageBuf kernel_x(spec, sobel_filter_x);
++ OIIO_NAMESPACE::ImageBuf gradient_x;
++ OIIO_NAMESPACE::ImageBufAlgo::convolve(gradient_x, image_, kernel_x, false);
+ return FloatImage(gradient_x);
+ }
+
+ FloatImage FloatImage::ComputeGradientY() const {
+ float sobel_filter_y[9] = {-.125, -.25, -.125, 0, 0, 0, .125, .25, .125};
+- OpenImageIO::ImageSpec spec(3, 3, 1, OpenImageIO::TypeDesc::FLOAT);
+- OpenImageIO::ImageBuf kernel_y(spec, sobel_filter_y);
+- OpenImageIO::ImageBuf gradient_y;
+- OpenImageIO::ImageBufAlgo::convolve(gradient_y, image_, kernel_y, false);
++ OIIO_NAMESPACE::ImageSpec spec(3, 3, 1, OIIO_NAMESPACE::TypeDesc::FLOAT);
++ OIIO_NAMESPACE::ImageBuf kernel_y(spec, sobel_filter_y);
++ OIIO_NAMESPACE::ImageBuf gradient_y;
++ OIIO_NAMESPACE::ImageBufAlgo::convolve(gradient_y, image_, kernel_y, false);
+ return FloatImage(gradient_y);
+ }
+
+@@ -280,28 +280,28 @@ FloatImage FloatImage::ComputeGradient() const {
+ float sobel_filter_x[9] = {-.125, 0, .125, -.25, 0, .25, -.125, 0, .125};
+ float sobel_filter_y[9] = {-.125, -.25, -.125, 0, 0, 0, .125, .25, .125};
+
+- OpenImageIO::ImageSpec spec(3, 3, 1, OpenImageIO::TypeDesc::FLOAT);
+- OpenImageIO::ImageBuf kernel_x(spec, sobel_filter_x);
+- OpenImageIO::ImageBuf kernel_y(spec, sobel_filter_y);
++ OIIO_NAMESPACE::ImageSpec spec(3, 3, 1, OIIO_NAMESPACE::TypeDesc::FLOAT);
++ OIIO_NAMESPACE::ImageBuf kernel_x(spec, sobel_filter_x);
++ OIIO_NAMESPACE::ImageBuf kernel_y(spec, sobel_filter_y);
+
+- OpenImageIO::ImageBuf gradient, gradient_x, gradient_y;
+- OpenImageIO::ImageBufAlgo::convolve(gradient_x, image_, kernel_x, false);
+- OpenImageIO::ImageBufAlgo::abs(gradient_x, gradient_x);
+- OpenImageIO::ImageBufAlgo::convolve(gradient_y, image_, kernel_y, false);
+- OpenImageIO::ImageBufAlgo::abs(gradient_y, gradient_y);
+- OpenImageIO::ImageBufAlgo::add(gradient, gradient_x, gradient_y);
++ OIIO_NAMESPACE::ImageBuf gradient, gradient_x, gradient_y;
++ OIIO_NAMESPACE::ImageBufAlgo::convolve(gradient_x, image_, kernel_x, false);
++ OIIO_NAMESPACE::ImageBufAlgo::abs(gradient_x, gradient_x);
++ OIIO_NAMESPACE::ImageBufAlgo::convolve(gradient_y, image_, kernel_y, false);
++ OIIO_NAMESPACE::ImageBufAlgo::abs(gradient_y, gradient_y);
++ OIIO_NAMESPACE::ImageBufAlgo::add(gradient, gradient_x, gradient_y);
+
+ return FloatImage(gradient);
+ }
+
+ void FloatImage::ApproximateGaussianBlur(const double sigma) {
+- OpenImageIO::ImageBuf kernel;
+- OpenImageIO::ImageBufAlgo::make_kernel(kernel, "gaussian", 5.0f, 5.0f);
+- OpenImageIO::ImageBufAlgo::convolve(image_, image_, kernel);
++ OIIO_NAMESPACE::ImageBuf kernel;
++ OIIO_NAMESPACE::ImageBufAlgo::make_kernel(kernel, "gaussian", 5.0f, 5.0f);
++ OIIO_NAMESPACE::ImageBufAlgo::convolve(image_, image_, kernel);
+ }
+
+ void FloatImage::MedianFilter(const int patch_width) {
+- CHECK(OpenImageIO::ImageBufAlgo::median_filter(image_, image_, patch_width));
++ CHECK(OIIO_NAMESPACE::ImageBufAlgo::median_filter(image_, image_, patch_width));
+ }
+
+ void FloatImage::Integrate(FloatImage* integral) const {
+@@ -327,14 +327,14 @@ void FloatImage::Resize(int new_width, int new_height) {
+ // If the image has not been initialized then initialize it with the image
+ // spec. Otherwise resize the image and interpolate pixels accordingly.
+ if (!image_.initialized()) {
+- OpenImageIO::ImageSpec image_spec(new_width, new_height, Channels(),
+- OpenImageIO::TypeDesc::FLOAT);
++ OIIO_NAMESPACE::ImageSpec image_spec(new_width, new_height, Channels(),
++ OIIO_NAMESPACE::TypeDesc::FLOAT);
+ image_.reset(image_spec);
+ } else {
+- OpenImageIO::ROI roi(0, new_width, 0, new_height, 0, 1, 0, Channels());
+- OpenImageIO::ImageBuf dst;
+- CHECK(OpenImageIO::ImageBufAlgo::resize(dst, image_, nullptr, roi))
+- << OpenImageIO::geterror();
++ OIIO_NAMESPACE::ROI roi(0, new_width, 0, new_height, 0, 1, 0, Channels());
++ OIIO_NAMESPACE::ImageBuf dst;
++ CHECK(OIIO_NAMESPACE::ImageBufAlgo::resize(dst, image_, nullptr, roi))
++ << OIIO_NAMESPACE::geterror();
+ image_.copy(dst);
+ }
+ }
+diff --git a/src/theia/image/image.h b/src/theia/image/image.h
+index e4f22cc..29122d2 100644
+--- a/src/theia/image/image.h
++++ b/src/theia/image/image.h
+@@ -64,7 +64,7 @@ class FloatImage {
+
+ // Copy function. This is a deep copy of the image.
+ FloatImage(const FloatImage& image_to_copy);
+- explicit FloatImage(const OpenImageIO::ImageBuf& image);
++ explicit FloatImage(const OIIO_NAMESPACE::ImageBuf& image);
+ FloatImage& operator=(const FloatImage& image2);
+ ~FloatImage() {}
+
+@@ -74,8 +74,8 @@ class FloatImage {
+ // wrapper for all algorithms. Getting a reference to the ImageBuf provides
+ // efficient access to the image data so that the image processing algorithms
+ // or other manipulations may be executed on the pixels.
+- OpenImageIO::ImageBuf& GetOpenImageIOImageBuf();
+- const OpenImageIO::ImageBuf& GetOpenImageIOImageBuf() const;
++ OIIO_NAMESPACE::ImageBuf& GetOpenImageIOImageBuf();
++ const OIIO_NAMESPACE::ImageBuf& GetOpenImageIOImageBuf() const;
+
+ // Image information
+ int Rows() const;
+@@ -171,7 +171,7 @@ class FloatImage {
+ void Resize(double scale);
+
+ protected:
+- OpenImageIO::ImageBuf image_;
++ OIIO_NAMESPACE::ImageBuf image_;
+ };
+ } // namespace theia
+
+diff --git a/src/theia/image/image_test.cc b/src/theia/image/image_test.cc
+index 894dc30..340488d 100644
+--- a/src/theia/image/image_test.cc
++++ b/src/theia/image/image_test.cc
+@@ -53,11 +53,11 @@ RandomNumberGenerator rng(51);
+ std::string img_filename = THEIA_DATA_DIR + std::string("/") + FLAGS_test_img;
+
+ #define ASSERT_IMG_EQ(oiio_img, theia_img, rows, cols) \
+- oiio_img.read(0, 0, true, OpenImageIO::TypeDesc::FLOAT); \
++ oiio_img.read(0, 0, true, OIIO_NAMESPACE::TypeDesc::FLOAT); \
+ ASSERT_EQ(oiio_img.oriented_width(), theia_img.Cols()); \
+ ASSERT_EQ(oiio_img.oriented_height(), theia_img.Rows()); \
+ ASSERT_EQ(oiio_img.nchannels(), theia_img.Channels()); \
+- OpenImageIO::ImageBuf::ConstIterator<float> it(oiio_img); \
++ OIIO_NAMESPACE::ImageBuf::ConstIterator<float> it(oiio_img); \
+ for (; !it.done(); ++it) { \
+ for (int c = 0; c < oiio_img.nchannels(); c++) { \
+ ASSERT_EQ(it[c], theia_img.GetXY(it.x(), it.y(), c)); \
+@@ -89,7 +89,7 @@ float Interpolate(const FloatImage& image,
+
+ // Test that inputting the old fashioned way is the same as through our class.
+ TEST(Image, RGBInput) {
+- OpenImageIO::ImageBuf oiio_img(img_filename.c_str());
++ OIIO_NAMESPACE::ImageBuf oiio_img(img_filename.c_str());
+ oiio_img.read();
+ FloatImage theia_img(img_filename);
+
+@@ -102,7 +102,7 @@ TEST(Image, RGBInput) {
+
+ // Test that width and height methods work.
+ TEST(Image, RGBColsRows) {
+- OpenImageIO::ImageBuf oiio_img(img_filename.c_str());
++ OIIO_NAMESPACE::ImageBuf oiio_img(img_filename.c_str());
+ FloatImage theia_img(img_filename);
+
+ int true_height = oiio_img.oriented_height();
+@@ -114,10 +114,10 @@ TEST(Image, RGBColsRows) {
+
+ // Test that inputting the old fashioned way is the same as through our class.
+ TEST(Image, ConvertToGrayscaleImage) {
+- OpenImageIO::ImageBuf oiio_img(img_filename.c_str());
+- OpenImageIO::ImageBuf gray_img;
++ OIIO_NAMESPACE::ImageBuf oiio_img(img_filename.c_str());
++ OIIO_NAMESPACE::ImageBuf gray_img;
+ const float luma_weights[3] = {.2126, .7152, .0722};
+- OpenImageIO::ImageBufAlgo::channel_sum(gray_img, oiio_img, luma_weights);
++ OIIO_NAMESPACE::ImageBufAlgo::channel_sum(gray_img, oiio_img, luma_weights);
+
+ FloatImage theia_img(img_filename);
+ theia_img.ConvertToGrayscaleImage();
+@@ -131,10 +131,10 @@ TEST(Image, ConvertToGrayscaleImage) {
+ }
+
+ TEST(Image, ConvertToRGBImage) {
+- OpenImageIO::ImageBuf oiio_img(img_filename.c_str());
+- OpenImageIO::ImageBuf gray_img;
++ OIIO_NAMESPACE::ImageBuf oiio_img(img_filename.c_str());
++ OIIO_NAMESPACE::ImageBuf gray_img;
+ const float luma_weights[3] = {.2126, .7152, .0722};
+- OpenImageIO::ImageBufAlgo::channel_sum(gray_img, oiio_img, luma_weights);
++ OIIO_NAMESPACE::ImageBufAlgo::channel_sum(gray_img, oiio_img, luma_weights);
+
+ // This should result in an image with the grayscale image copied in each
+ // channel.
+@@ -148,7 +148,7 @@ TEST(Image, ConvertToRGBImage) {
+
+ // Check that all channels have equal value and that the value is equal to the
+ // grayscale image.
+- for (OpenImageIO::ImageBuf::ConstIterator<float> it(gray_img);
++ for (OIIO_NAMESPACE::ImageBuf::ConstIterator<float> it(gray_img);
+ !it.done();
+ ++it) {
+ ASSERT_EQ(it[0], rgb_img.GetXY(it.x(), it.y(), 0));
+diff --git a/src/theia/sfm/exif_reader.cc b/src/theia/sfm/exif_reader.cc
+index 48c049a..fea884d 100644
+--- a/src/theia/sfm/exif_reader.cc
++++ b/src/theia/sfm/exif_reader.cc
+@@ -127,8 +127,8 @@ bool ExifReader::ExtractEXIFMetadata(
+ CameraIntrinsicsPrior* camera_intrinsics_prior) const {
+ CHECK_NOTNULL(camera_intrinsics_prior);
+
+- OpenImageIO::ImageBuf image(image_file);
+- OpenImageIO::ImageSpec image_spec = image.spec();
++ OIIO_NAMESPACE::ImageBuf image(image_file);
++ OIIO_NAMESPACE::ImageSpec image_spec = image.spec();
+
+ // Set the image dimensions.
+ camera_intrinsics_prior->image_width = image_spec.width;
+@@ -154,7 +154,7 @@ bool ExifReader::ExtractEXIFMetadata(
+ camera_intrinsics_prior->focal_length.is_set = true;
+
+ // Set GPS latitude.
+- const OpenImageIO::ImageIOParameter* latitude =
++ const OIIO_NAMESPACE::ImageIOParameter* latitude =
+ image_spec.find_attribute("GPS:Latitude");
+ if (latitude != nullptr) {
+ camera_intrinsics_prior->latitude.is_set = true;
+@@ -173,7 +173,7 @@ bool ExifReader::ExtractEXIFMetadata(
+ }
+
+ // Set GPS longitude.
+- const OpenImageIO::ImageIOParameter* longitude =
++ const OIIO_NAMESPACE::ImageIOParameter* longitude =
+ image_spec.find_attribute("GPS:Longitude");
+ if (longitude != nullptr) {
+ camera_intrinsics_prior->longitude.is_set = true;
+@@ -193,7 +193,7 @@ bool ExifReader::ExtractEXIFMetadata(
+
+
+ // Set GSP altitude.
+- const OpenImageIO::ImageIOParameter* altitude =
++ const OIIO_NAMESPACE::ImageIOParameter* altitude =
+ image_spec.find_attribute("GPS:Altitude");
+ if (altitude != nullptr) {
+ camera_intrinsics_prior->altitude.is_set = true;
+@@ -205,7 +205,7 @@ bool ExifReader::ExtractEXIFMetadata(
+ }
+
+ bool ExifReader::SetFocalLengthFromExif(
+- const OpenImageIO::ImageSpec& image_spec,
++ const OIIO_NAMESPACE::ImageSpec& image_spec,
+ CameraIntrinsicsPrior* camera_intrinsics_prior) const {
+ static const float kMinFocalLength = 1e-2;
+
+@@ -268,7 +268,7 @@ bool ExifReader::SetFocalLengthFromExif(
+ }
+
+ bool ExifReader::SetFocalLengthFromSensorDatabase(
+- const OpenImageIO::ImageSpec& image_spec,
++ const OIIO_NAMESPACE::ImageSpec& image_spec,
+ CameraIntrinsicsPrior* camera_intrinsics_prior) const {
+ const int max_image_dimension = std::max(image_spec.width, image_spec.height);
+ const float exif_focal_length =
+diff --git a/src/theia/sfm/exif_reader.h b/src/theia/sfm/exif_reader.h
+index 3049cf4..d9d3108 100644
+--- a/src/theia/sfm/exif_reader.h
++++ b/src/theia/sfm/exif_reader.h
+@@ -74,13 +74,13 @@ class ExifReader {
+ // Sets the focal length from the focal plane resolution. Returns true if a
+ // valid focal length is found and false otherwise.
+ bool SetFocalLengthFromExif(
+- const OpenImageIO::ImageSpec& image_spec,
++ const OIIO_NAMESPACE::ImageSpec& image_spec,
+ CameraIntrinsicsPrior* camera_intrinsics_prior) const;
+
+ // Sets the focal length from a look up in the sensor width database. Returns
+ // true if a valid focal length is found and false otherwise.
+ bool SetFocalLengthFromSensorDatabase(
+- const OpenImageIO::ImageSpec& image_spec,
++ const OIIO_NAMESPACE::ImageSpec& image_spec,
+ CameraIntrinsicsPrior* camera_intrinsics_prior) const;
+
+ std::unordered_map<std::string, double> sensor_width_database_;
+diff --git a/src/theia/sfm/undistort_image.cc b/src/theia/sfm/undistort_image.cc
+index 95a061d..ae0690e 100644
+--- a/src/theia/sfm/undistort_image.cc
++++ b/src/theia/sfm/undistort_image.cc
+@@ -160,9 +160,9 @@ void RemoveImageLensDistortion(const Camera& distorted_camera,
+ // For each pixel in the undistorted image, find the coordinate in the
+ // distorted image and set the pixel color accordingly.
+ const int num_channels = distorted_image.Channels();
+- OpenImageIO::ImageBuf& undistorted_img =
++ OIIO_NAMESPACE::ImageBuf& undistorted_img =
+ undistorted_image->GetOpenImageIOImageBuf();
+- OpenImageIO::ImageBuf::Iterator<float> undistorted_it(undistorted_img);
++ OIIO_NAMESPACE::ImageBuf::Iterator<float> undistorted_it(undistorted_img);
+ for (; !undistorted_it.done(); ++undistorted_it) {
+ Eigen::Vector2d image_point(undistorted_it.x() + 0.5,
+ undistorted_it.y() + 0.5);
diff --git a/ports/theia/fix-vlfeat-static.patch b/ports/theia/fix-vlfeat-static.patch
new file mode 100644
index 000000000..cbade039f
--- /dev/null
+++ b/ports/theia/fix-vlfeat-static.patch
@@ -0,0 +1,49 @@
+diff --git a/libraries/vlfeat/CMakeLists.txt b/libraries/vlfeat/CMakeLists.txt
+index d248bcf..24469c9 100644
+--- a/libraries/vlfeat/CMakeLists.txt
++++ b/libraries/vlfeat/CMakeLists.txt
+@@ -16,11 +16,11 @@ set(vl_sources
+ set_source_files_properties(${vl_sources} PROPERTIES LANGUAGE C)
+
+ if (MSVC)
+- add_definitions(-DVL_BUILD_DLL)
++ #add_definitions(-DVL_BUILD_DLL)
+ add_definitions(-DVL_DISABLE_SSE2)
+ endif (MSVC)
+
+-add_library(vlfeat SHARED ${vl_sources})
++add_library(vlfeat ${vl_sources})
+ install(TARGETS vlfeat
+ EXPORT TheiaExport
+ RUNTIME DESTINATION bin
+diff --git a/libraries/vlfeat/vl/host.h b/libraries/vlfeat/vl/host.h
+index 4fdb86c..01c1134 100644
+--- a/libraries/vlfeat/vl/host.h
++++ b/libraries/vlfeat/vl/host.h
+@@ -316,18 +316,24 @@ defined(__DOXYGEN__)
+ # define snprintf _snprintf
+ # define isnan _isnan
+ #endif
+-# ifdef VL_BUILD_DLL
++# if defined(VL_BUILD_DLL)
+ # ifdef __cplusplus
+ # define VL_EXPORT extern "C" __declspec(dllexport)
+ # else
+ # define VL_EXPORT extern __declspec(dllexport)
+ # endif
+-# else
++# elif defined(VL_DLL)
+ # ifdef __cplusplus
+ # define VL_EXPORT extern "C" __declspec(dllimport)
+ # else
+ # define VL_EXPORT extern __declspec(dllimport)
+ # endif
++# else
++# ifdef __cplusplus
++# define VL_EXPORT extern "C"
++# else
++# define VL_EXPORT extern
++# endif
+ # endif
+ #endif
+
diff --git a/ports/theia/portfile.cmake b/ports/theia/portfile.cmake
new file mode 100644
index 000000000..b2e61fae1
--- /dev/null
+++ b/ports/theia/portfile.cmake
@@ -0,0 +1,63 @@
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "Warning: Dynamic building not supported yet. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+if(VCPKG_TARGET_ARCHIECTURE STREQUAL "x86")
+ message(FATAL_ERROR "theia requires ceres[suitesparse] which depends on suitesparse which depends on openblas which is unavailable on x86.")
+endif()
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO sweeneychris/TheiaSfM
+ REF d15154a6c30ea48e7d135be126e2936802e476ad
+ SHA512 aaf6e9737d04499f0ffd453952380f2e1aa3aab2a75487d6806bfab60aa972719d7349730eab3d1b37088e99cf6c9076ae1cdea276f48532698226c69ac48977
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-vlfeat-static.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-glog-error.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-find-suitesparse.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-oiio.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DBUILD_TESTING=OFF
+ -DTHEIA_USE_EXTERNAL_CEREAL=ON
+ -DTHEIA_USE_EXTERNAL_FLANN=ON
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake")
+
+# Changes target search path
+file(READ ${CURRENT_PACKAGES_DIR}/share/theia/TheiaConfig.cmake THEIA_TARGETS)
+string(REPLACE "get_filename_component(CURRENT_ROOT_INSTALL_DIR\n \${THEIA_CURRENT_CONFIG_INSTALL_DIR}/../ ABSOLUTE)"
+ "get_filename_component(CURRENT_ROOT_INSTALL_DIR\n \${THEIA_CURRENT_CONFIG_INSTALL_DIR}/../../ ABSOLUTE)" THEIA_TARGETS "${THEIA_TARGETS}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/theia/TheiaConfig.cmake "${THEIA_TARGETS}")
+
+vcpkg_copy_pdbs()
+
+# Clean
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/optimo)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/theia/libraries/akaze/cimg/cmake-modules)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/theia/libraries/akaze/cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/theia/libraries/akaze/datasets)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/theia/libraries/spectra/doxygen)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/optimo)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/theia)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/theia/license.txt ${CURRENT_PACKAGES_DIR}/share/theia/copyright)
+file(COPY ${SOURCE_PATH}/data/camera_sensor_database_license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/theia)
diff --git a/ports/think-cell-range/CONTROL b/ports/think-cell-range/CONTROL
index 3b5872232..b7d53af12 100644
--- a/ports/think-cell-range/CONTROL
+++ b/ports/think-cell-range/CONTROL
@@ -1,5 +1,5 @@
Source: think-cell-range
Maintainer: jfrederich@gmail.com
-Version: e2d3018
+Version: 498839d
Description: think-cell's range library <https://think-cell.com>, <https://github.com/think-cell/range>, <https://www.think-cell.com/en/career/talks/ranges/#1>
Build-Depends: boost
diff --git a/ports/think-cell-range/portfile.cmake b/ports/think-cell-range/portfile.cmake
index 858461e36..56d01a55e 100644
--- a/ports/think-cell-range/portfile.cmake
+++ b/ports/think-cell-range/portfile.cmake
@@ -1,9 +1,9 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/range-e2d3018c3a797e7328dea005e72b34cace8b1fc6)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/range-498839d41519d38bb81089f7d0f517026bd042cc)
vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/think-cell/range/archive/e2d3018c3a797e7328dea005e72b34cace8b1fc6.zip"
- FILENAME "think-cell_range-e2d3018.zip"
- SHA512 13c74aba4950a84fdf446c976564030b18a740c5ce42b7650116a0559ba9e9a59471ff0f80132c626bc442402b3717805d3615b9ea70751e2dd1e648fd9f7916
+ URLS "https://github.com/think-cell/range/archive/498839d41519d38bb81089f7d0f517026bd042cc.zip"
+ FILENAME "think-cell_range-498839d.zip"
+ SHA512 801e987c828c954cb50f9a6f9f2feee2ce05f7232d531ecce7394800ecc5a750992795da173fb72b6efcabd6978015a650730682b7db3f874fb8aaac28869711
)
vcpkg_extract_source_archive(${ARCHIVE})
diff --git a/ports/thor/CONTROL b/ports/thor/CONTROL
new file mode 100644
index 000000000..cdb393f38
--- /dev/null
+++ b/ports/thor/CONTROL
@@ -0,0 +1,4 @@
+Source: thor
+Version: 2.0-1
+Description: Extends the multimedia library SFML with higher-level features
+Build-Depends: sfml, aurora
diff --git a/ports/thor/portfile.cmake b/ports/thor/portfile.cmake
new file mode 100644
index 000000000..c96df4728
--- /dev/null
+++ b/ports/thor/portfile.cmake
@@ -0,0 +1,70 @@
+include(vcpkg_common_functions)
+
+
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/tests)
+vcpkg_from_github(ARCHIVE
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Bromeon/Thor
+ REF v2.0
+ SHA512 634fa5286405d9a8a837c082ace98bbb02e609521418935855b9e2fcad57003dbe35088bd771cf6a9292e55d3787f7e463d7a4cca0d0f007509de2520d9a8cf9
+ HEAD_REF master
+)
+
+file(COPY ${CURRENT_INSTALLED_DIR}/include/Aurora DESTINATION ${SOURCE_PATH}/extlibs/aurora/include)
+
+
+set(ENV{SFML_ROOT} ${CURRENT_INSTALLED_DIR})
+
+if(VCPKG_CRT_LINKAGE STREQUAL static)
+ set(THOR_STATIC_STD_LIBS ON)
+else()
+ set(THOR_STATIC_STD_LIBS OFF)
+endif()
+
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(THOR_SHARED_LIBS ON)
+else()
+ set(THOR_SHARED_LIBS OFF)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DTHOR_SHARED_LIBS=${THOR_SHARED_LIBS}
+ -DTHOR_STATIC_STD_LIBS=${THOR_STATIC_STD_LIBS}
+)
+
+vcpkg_install_cmake()
+
+
+set(CONFIG_FILE "${CURRENT_PACKAGES_DIR}/include/Thor/Config.hpp")
+
+file(READ ${CONFIG_FILE} CONFIG_H)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ string(REPLACE "defined(SFML_STATIC)" "1" CONFIG_H "${CONFIG_H}")
+ else()
+ string(REPLACE "defined(SFML_STATIC)" "0" CONFIG_H "${CONFIG_H}")
+ endif()
+
+file(WRITE ${CONFIG_FILE} "${CONFIG_H}")
+
+file(GLOB LICENSE
+ "${CURRENT_PACKAGES_DIR}/debug/LicenseThor.txt"
+ "${CURRENT_PACKAGES_DIR}/debug/LicenseAurora.txt"
+ "${CURRENT_PACKAGES_DIR}/LicenseThor.txt"
+ "${CURRENT_PACKAGES_DIR}/LicenseAurora.txt"
+)
+
+if(LICENSE)
+ file(REMOVE ${LICENSE})
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/Aurora)
+
+file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/thor RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/ports/thrift/CONTROL b/ports/thrift/CONTROL
new file mode 100644
index 000000000..87cb4fa05
--- /dev/null
+++ b/ports/thrift/CONTROL
@@ -0,0 +1,4 @@
+Source: thrift
+Version: 2018-05-17
+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
new file mode 100644
index 000000000..f951c2bd5
--- /dev/null
+++ b/ports/thrift/portfile.cmake
@@ -0,0 +1,55 @@
+include(vcpkg_common_functions)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "Warning: Dynamic building not supported. Building static.") # See note below
+ set(VCPKG_LIBRARY_LINKAGE static)
+
+ # As per Ben Craig thrift comment see https://issues.apache.org/jira/browse/THRIFT-1834
+ # Currently, Thrift is designed to be packaged as a static library. As a static library, the consuming program / dll will only pull in the object files that it needs, so the per-binary size increase should be pretty small.
+ # Thrift isn't a very good candidate to become a dynamic library. No attempts are made to preserve binary compatibility, or to provide a C / COM-like interface to make binary compatibility easy.
+endif()
+
+vcpkg_find_acquire_program(FLEX)
+vcpkg_find_acquire_program(BISON)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO apache/thrift
+ REF 88591e32e710a0524327153c8b629d5b461e35e0
+ SHA512 372e323c4b2163247353a63d127ec69e3448269bb465b7fdf4e14c06a152602ac412649d04da4e191ec79bada467cb4b217e70f4874f9059e2ae984334f54ff8
+ HEAD_REF master
+)
+
+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
+ -DBUILD_PYTHON=off
+ -DBUILD_CPP=on
+ -DBUILD_HASKELL=off
+ -DBUILD_TUTORIALS=off
+ -DFLEX_EXECUTABLE=${FLEX}
+ -DBISON_EXECUTABLE=${BISON}
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/thrift RENAME copyright)
+
+file(GLOB EXES "${CURRENT_PACKAGES_DIR}/bin/*.exe")
+if(EXES)
+ file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/thrift)
+ file(REMOVE ${EXES})
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/thrift)
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+vcpkg_copy_pdbs()
diff --git a/ports/tidy-html5/CONTROL b/ports/tidy-html5/CONTROL
new file mode 100644
index 000000000..377e47f13
--- /dev/null
+++ b/ports/tidy-html5/CONTROL
@@ -0,0 +1,3 @@
+Source: tidy-html5
+Version: 5.4.0-1
+Description: Tidy tidies HTML and XML. It can tidy your documents by itself, and developers can easily integrate its features into even more powerful tools.
diff --git a/ports/tidy-html5/portfile.cmake b/ports/tidy-html5/portfile.cmake
new file mode 100644
index 000000000..da0ba45ca
--- /dev/null
+++ b/ports/tidy-html5/portfile.cmake
@@ -0,0 +1,40 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO htacg/tidy-html5
+ REF 5.4.0
+ SHA512 d92c89f2ef371499f9c3de6f9389783d2449433b4da1f5a29e2eb81b7a7db8dd9f68e220cdde092d446e9bd779bcbc30f84bda79013526540f29d00f438cb402
+ HEAD_REF master)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/remove_execution_character_set.patch
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIB)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
+ -DBUILD_SHARED_LIB=${BUILD_SHARED_LIB}
+ -DTIDY_CONSOLE_SHARED=${BUILD_SHARED_LIB}
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/tidyd.exe)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/tidy-html5)
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/tidy.exe ${CURRENT_PACKAGES_DIR}/tools/tidy-html5/tidy.exe)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+
+file(INSTALL ${SOURCE_PATH}/README/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/tidy-html5 RENAME copyright)
diff --git a/ports/tidy-html5/remove_execution_character_set.patch b/ports/tidy-html5/remove_execution_character_set.patch
new file mode 100644
index 000000000..9f5ebf3e7
--- /dev/null
+++ b/ports/tidy-html5/remove_execution_character_set.patch
@@ -0,0 +1,90 @@
+diff --git a/src/language_en.h b/src/language_en.h
+index ab191e0..e1cd96b 100644
+--- a/src/language_en.h
++++ b/src/language_en.h
+@@ -18,10 +18,6 @@
+ * Created by Jim Derry on 11/28/15.
+ */
+
+-#ifdef _MSC_VER
+-#pragma execution_character_set("utf-8")
+-#endif
+-
+ #include "language.h"
+ #include "access.h"
+ #include "message.h"
+diff --git a/src/language_en_gb.h b/src/language_en_gb.h
+index a89f0fe..7b14d6f 100644
+--- a/src/language_en_gb.h
++++ b/src/language_en_gb.h
+@@ -31,10 +31,6 @@
+ * PO_REVISION_DATE=2016-03-24 10:59:55
+ */
+
+-#ifdef _MSC_VER
+-#pragma execution_character_set("utf-8")
+-#endif
+-
+ #include "language.h"
+ #include "access.h"
+ #include "message.h"
+diff --git a/src/language_es.h b/src/language_es.h
+index db09f2a..1e474b5 100644
+--- a/src/language_es.h
++++ b/src/language_es.h
+@@ -31,10 +31,6 @@
+ * PO_REVISION_DATE=2016-03-24 10:59:55
+ */
+
+-#ifdef _MSC_VER
+-#pragma execution_character_set("utf-8")
+-#endif
+-
+ #include "language.h"
+ #include "access.h"
+ #include "message.h"
+diff --git a/src/language_es_mx.h b/src/language_es_mx.h
+index 5574b3b..530c9f1 100644
+--- a/src/language_es_mx.h
++++ b/src/language_es_mx.h
+@@ -31,10 +31,6 @@
+ * PO_REVISION_DATE=2016-03-24 10:59:55
+ */
+
+-#ifdef _MSC_VER
+-#pragma execution_character_set("utf-8")
+-#endif
+-
+ #include "language.h"
+ #include "access.h"
+ #include "message.h"
+diff --git a/src/language_fr.h b/src/language_fr.h
+index c87ae7b..91baa5e 100644
+--- a/src/language_fr.h
++++ b/src/language_fr.h
+@@ -31,10 +31,6 @@
+ * PO_REVISION_DATE=
+ */
+
+-#ifdef _MSC_VER
+-#pragma execution_character_set("utf-8")
+-#endif
+-
+ #include "language.h"
+ #include "access.h"
+ #include "message.h"
+diff --git a/src/language_zh_cn.h b/src/language_zh_cn.h
+index 1c35fef..218203d 100644
+--- a/src/language_zh_cn.h
++++ b/src/language_zh_cn.h
+@@ -31,10 +31,6 @@
+ * PO_REVISION_DATE=2016-03-24 10:59:55
+ */
+
+-#ifdef _MSC_VER
+-#pragma execution_character_set("utf-8")
+-#endif
+-
+ #include "language.h"
+ #include "access.h"
+ #include "message.h"
diff --git a/ports/tiff/CONTROL b/ports/tiff/CONTROL
index dfebf3cc8..7a91d1d5b 100644
--- a/ports/tiff/CONTROL
+++ b/ports/tiff/CONTROL
@@ -1,4 +1,4 @@
Source: tiff
-Version: 4.0.7-1
-Build-Depends: zlib, libjpeg-turbo, liblzma [windows], freeglut [windows]
+Version: 4.0.9
+Build-Depends: zlib, libjpeg-turbo, liblzma (windows)
Description: A library that supports the manipulation of TIFF image files
diff --git a/ports/tiff/portfile.cmake b/ports/tiff/portfile.cmake
index 708fb70ad..e14079c31 100644
--- a/ports/tiff/portfile.cmake
+++ b/ports/tiff/portfile.cmake
@@ -1,7 +1,7 @@
include(vcpkg_common_functions)
-set(LIBTIFF_VERSION 4.0.7)
-set(LIBTIFF_HASH 941357bdd5f947cdca41a1d31ae14b3fadc174ae5dce7b7981dbe58f61995f575ac2e97a7cc4fcc435184012017bec0920278263490464644f2cdfad9a6c5ddc)
+set(LIBTIFF_VERSION 4.0.9)
+set(LIBTIFF_HASH 04f3d5eefccf9c1a0393659fe27f3dddd31108c401ba0dc587bca152a1c1f6bc844ba41622ff5572da8cc278593eff8c402b44e7af0a0090e91d326c2d79f6cd)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/tiff-${LIBTIFF_VERSION})
vcpkg_download_distfile(ARCHIVE
@@ -18,6 +18,10 @@ vcpkg_apply_patches(
${CMAKE_CURRENT_LIST_DIR}/crt-secure-no-deprecate.patch
)
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ set (TIFF_CXX_TARGET -Dcxx=OFF)
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
@@ -28,6 +32,7 @@ vcpkg_configure_cmake(
-DBUILD_TESTS=OFF
-Djbig=OFF # This is disabled by default due to GPL/Proprietary licensing.
-Djpeg12=OFF
+ ${TIFF_CXX_TARGET}
)
vcpkg_install_cmake()
diff --git a/ports/tiny-dnn/CONTROL b/ports/tiny-dnn/CONTROL
new file mode 100644
index 000000000..6468f2473
--- /dev/null
+++ b/ports/tiny-dnn/CONTROL
@@ -0,0 +1,3 @@
+Source: tiny-dnn
+Version: 2018-03-13
+Description: A C++14 implementation of deep learning. It is suitable for deep learning on limited computational resource.
diff --git a/ports/tiny-dnn/portfile.cmake b/ports/tiny-dnn/portfile.cmake
new file mode 100644
index 000000000..151f5dbee
--- /dev/null
+++ b/ports/tiny-dnn/portfile.cmake
@@ -0,0 +1,14 @@
+#header-only library
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO tiny-dnn/tiny-dnn
+ REF 1c5259477b8b4eab376cc19fd1d55ae965ef5e5a
+ SHA512 756b8e3d5d00b44973bbae2c0bedbe15206bce479dc70ae5fc89f455772deadc05503afd7abcae2048aeabefd7a45cba0fae38555df7e0d9eb33e9feed21b099
+ HEAD_REF master
+)
+
+file(COPY ${SOURCE_PATH}/tiny_dnn DESTINATION ${CURRENT_PACKAGES_DIR}/include/)
+
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/tiny-dnn)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/tiny-dnn/LICENSE ${CURRENT_PACKAGES_DIR}/share/tiny-dnn/copyright)
diff --git a/ports/tinydir/CONTROL b/ports/tinydir/CONTROL
new file mode 100644
index 000000000..5f4f52d9a
--- /dev/null
+++ b/ports/tinydir/CONTROL
@@ -0,0 +1,3 @@
+Source: tinydir
+Version: 1.2.3
+Description: Lightweight, portable and easy to integrate C directory and file reader
diff --git a/ports/tinydir/portfile.cmake b/ports/tinydir/portfile.cmake
new file mode 100644
index 000000000..19e9a7f48
--- /dev/null
+++ b/ports/tinydir/portfile.cmake
@@ -0,0 +1,11 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO cxong/tinydir
+ REF 1.2.3
+ SHA512 fa366525558b0932994f93bab7a9edafdc7fe297fc65c2ce8af5b4b05c33c4af4b1fdf72292a7a89dcea4276cf419e3569e41ff1122e0048ad467ed6e33836a2
+ HEAD_REF master
+)
+file(INSTALL ${SOURCE_PATH}/tinydir.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/tinydir RENAME copyright)
+vcpkg_copy_pdbs()
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/tinyexr/CONTROL b/ports/tinyexr/CONTROL
index 8ac085f68..54b459b49 100644
--- a/ports/tinyexr/CONTROL
+++ b/ports/tinyexr/CONTROL
@@ -1,3 +1,3 @@
Source: tinyexr
-Version: v0.9.5-d16ea6
+Version: 0.9.5-d16ea6
Description: Library to load and save OpenEXR(.exr) images
diff --git a/ports/tinyexr/portfile.cmake b/ports/tinyexr/portfile.cmake
index bf725cddd..6ef6439d5 100644
--- a/ports/tinyexr/portfile.cmake
+++ b/ports/tinyexr/portfile.cmake
@@ -4,7 +4,7 @@ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/tinyexr-d16ea6347ae78bcee984fb57ca
vcpkg_download_distfile(ARCHIVE
URLS "https://github.com/syoyo/tinyexr/archive/d16ea6347ae78bcee984fb57cab1f023aeda4fb0.tar.gz"
FILENAME "tinyexr-v0.9.5-d16ea6.tar.gz"
- SHA512 189ab04f6c5fb50c20ac0515a83ee16cba4b0f1bca004db2926281077868d1384e0c54f81768a54b76286a17c1b0c45a0b82acaf22b7ee843dc87c654b09e950
+ SHA512 63399688d7894f9ac4b893b2142202b36108b5029b11c40c3f9ad0f0135625fb0c8e0d54cec88d92c016774648dc829a946d9575c5f19afea56542c00759546e
)
vcpkg_extract_source_archive(${ARCHIVE})
diff --git a/ports/tinythread/CMakeLists.txt b/ports/tinythread/CMakeLists.txt
new file mode 100644
index 000000000..ec8b3634c
--- /dev/null
+++ b/ports/tinythread/CMakeLists.txt
@@ -0,0 +1,25 @@
+cmake_minimum_required(VERSION 3.8.0)
+
+project(tinythread)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+if(BUILD_SHARED_LIBS)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif()
+
+include_directories(source)
+
+add_library(tinythread source/tinythread.cpp)
+
+install(
+ TARGETS tinythread
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES source/tinythread.h source/fast_mutex.h DESTINATION include)
+endif()
diff --git a/ports/tinythread/CONTROL b/ports/tinythread/CONTROL
new file mode 100644
index 000000000..d438e8721
--- /dev/null
+++ b/ports/tinythread/CONTROL
@@ -0,0 +1,3 @@
+Source: tinythread
+Version: 1.1-1
+Description: Implements a fairly compatible subset of the C++11 thread management classes
diff --git a/ports/tinythread/portfile.cmake b/ports/tinythread/portfile.cmake
new file mode 100644
index 000000000..23903e30e
--- /dev/null
+++ b/ports/tinythread/portfile.cmake
@@ -0,0 +1,21 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/TinyThread++-1.1")
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://tinythreadpp.bitsnbites.eu/files/TinyThread%2B%2B-1.1-src.tar.bz2"
+ FILENAME "TinyThread++-1.1.tar.bz2"
+ SHA512 407f54fcf3f68dd7fec25e9e0749a1803dffa5d52d606905155714d29f519b5eae64ff654b11768fecc32c0123a78c48be37c47993e0caf157a63349a2f869c6
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL "${SOURCE_PATH}/README.txt" DESTINATION ${CURRENT_PACKAGES_DIR}/share/tinythread RENAME copyright)
diff --git a/ports/tinytoml/CONTROL b/ports/tinytoml/CONTROL
new file mode 100644
index 000000000..b656fccc4
--- /dev/null
+++ b/ports/tinytoml/CONTROL
@@ -0,0 +1,3 @@
+Source: tinytoml
+Version: 20180219-1
+Description: A header only C++11 library for parsing TOML.
diff --git a/ports/tinytoml/portfile.cmake b/ports/tinytoml/portfile.cmake
new file mode 100644
index 000000000..9d7275cf2
--- /dev/null
+++ b/ports/tinytoml/portfile.cmake
@@ -0,0 +1,16 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mayah/tinytoml
+
+ REF 8fe890978b3390de1fc1f26c2d6bf1711c700c5a
+ SHA512 c7302950c94001b5376009a08181589c7fb040d7c23343e3dbbdcf37caa0ce8f4319adb1899d946ecee3bfb7079dbe46689d6016d94fc08b610ed56fb1113b81
+
+ HEAD_REF master
+)
+
+file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.h")
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/tinytoml RENAME copyright)
diff --git a/ports/tinyxml/0001_use_stl.patch b/ports/tinyxml/0001_use_stl.patch
new file mode 100644
index 000000000..a36f930ee
--- /dev/null
+++ b/ports/tinyxml/0001_use_stl.patch
@@ -0,0 +1,27 @@
+From 5ca492fee93015411a0f10e0b2f1d3503bf962a1 Mon Sep 17 00:00:00 2001
+From: Mikhail Paulyshka <me@mixaill.tk>
+Date: Sun, 3 Sep 2017 21:43:36 +0300
+Subject: [PATCH] enforce STL usage
+
+---
+ tinyxml.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/tinyxml.h b/tinyxml.h
+index a3589e5..7195033 100644
+--- a/tinyxml.h
++++ b/tinyxml.h
+@@ -43,6 +43,10 @@ distribution.
+ #define DEBUG
+ #endif
+
++#ifndef TIXML_USE_STL
++#define TIXML_USE_STL
++#endif
++
+ #ifdef TIXML_USE_STL
+ #include <string>
+ #include <iostream>
+--
+2.12.2.windows.2
+
diff --git a/ports/tinyxml/CMakeLists.txt b/ports/tinyxml/CMakeLists.txt
new file mode 100644
index 000000000..9b55aa717
--- /dev/null
+++ b/ports/tinyxml/CMakeLists.txt
@@ -0,0 +1,25 @@
+cmake_minimum_required(VERSION 3.4)
+project(tinyxml)
+
+set(HEADERS "tinyxml.h")
+
+set(SOURCES "tinyxml.cpp"
+ "tinyxmlerror.cpp"
+ "tinyxmlparser.cpp"
+)
+
+option(BUILD_SHARED_LIBS "Build shared libs" OFF)
+
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+add_library(tinyxml ${SOURCES})
+target_compile_definitions(tinyxml PRIVATE "-DTIXML_USE_STL")
+
+install(
+ TARGETS tinyxml
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+ RUNTIME DESTINATION bin
+)
+
+install(FILES ${HEADERS} DESTINATION include)
diff --git a/ports/tinyxml/CONTROL b/ports/tinyxml/CONTROL
new file mode 100644
index 000000000..3d97a3312
--- /dev/null
+++ b/ports/tinyxml/CONTROL
@@ -0,0 +1,3 @@
+Source: tinyxml
+Version: 2.6.2-2
+Description: A simple, small, minimal, C++ XML parser that can be easily integrating into other programs.
diff --git a/ports/tinyxml/License.txt b/ports/tinyxml/License.txt
new file mode 100644
index 000000000..2987cf75f
--- /dev/null
+++ b/ports/tinyxml/License.txt
@@ -0,0 +1,20 @@
+TinyXML is released under the zlib license:
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any
+damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any
+purpose, including commercial applications, and to alter it and
+redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must
+not claim that you wrote the original software. If you use this
+software in a product, an acknowledgment in the product documentation
+would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and
+must not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+distribution. \ No newline at end of file
diff --git a/ports/tinyxml/portfile.cmake b/ports/tinyxml/portfile.cmake
new file mode 100644
index 000000000..54d462bb4
--- /dev/null
+++ b/ports/tinyxml/portfile.cmake
@@ -0,0 +1,30 @@
+include(vcpkg_common_functions)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/tinyxml)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://sourceforge.net/projects/tinyxml/files/tinyxml/2.6.2/tinyxml_2_6_2.tar.gz"
+ FILENAME "tinyxml_2_6_2.tar.gz"
+ SHA512 133b5db06131a90ad0c2b39b0063f1c8e65e67288a7e5d67e1f7d9ba32af10dc5dfa0462f9723985ee27debe8f09a10a25d4b5a5aaff2ede979b1cebe8e59d56
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001_use_stl.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/tinyxml RENAME copyright)
diff --git a/ports/tinyxml2/CONTROL b/ports/tinyxml2/CONTROL
index b8bf3d76a..185fa749c 100644
--- a/ports/tinyxml2/CONTROL
+++ b/ports/tinyxml2/CONTROL
@@ -1,3 +1,3 @@
Source: tinyxml2
-Version: 3.0.0
-Description: A simple, small, efficient, C++ XML parser \ No newline at end of file
+Version: 6.2.0
+Description: A simple, small, efficient, C++ XML parser
diff --git a/ports/tinyxml2/portfile.cmake b/ports/tinyxml2/portfile.cmake
index 656f4783f..8a28b424b 100644
--- a/ports/tinyxml2/portfile.cmake
+++ b/ports/tinyxml2/portfile.cmake
@@ -1,22 +1,37 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/tinyxml2-3.0.0)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/leethomason/tinyxml2/archive/3.0.0.zip"
- FILENAME "tinyxml2-3.0.0.zip"
- SHA512 3581e086e41ea01418fdf74e53b932c41cada9a45b73fb71c15424672182dc2a1e55110f030962ae44df6f5d9f060478c5b04373f886da843a78fcabae8b063c
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO leethomason/tinyxml2
+ REF 6.2.0
+ SHA512 ef784240aeb090ab04aad659352ad4b224c431feecf485f33aca7936bcaa0ef4ab9d0a2e0692d3cf6036ac3e8012019d65665e780a920bbad3d4820f736445b1
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(BUILD_STATIC_LIBS 1)
+else()
+ set(BUILD_STATIC_LIBS 0)
+endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1
- # OPTIONS_RELEASE -DOPTIMIZE=1
- # OPTIONS_DEBUG -DDEBUGGABLE=1
+ OPTIONS
+ -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/tinyxml2")
+
+vcpkg_copy_pdbs()
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(COPY ${SOURCE_PATH}/readme.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/tinyxml2)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(COPY
+ ${SOURCE_PATH}/readme.md
+ ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/tinyxml2
+)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/tinyxml2/readme.md ${CURRENT_PACKAGES_DIR}/share/tinyxml2/copyright)
-vcpkg_copy_pdbs()
diff --git a/ports/tinyxml2/vcpkg-cmake-wrapper.cmake b/ports/tinyxml2/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..867426f1e
--- /dev/null
+++ b/ports/tinyxml2/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,5 @@
+_find_package(${ARGS})
+if(TARGET tinyxml2_static AND NOT TARGET tinyxml2)
+ _add_library(tinyxml2 INTERFACE IMPORTED)
+ set_target_properties(tinyxml2 PROPERTIES INTERFACE_LINK_LIBRARIES "tinyxml2_static")
+endif()
diff --git a/ports/torch-th/CONTROL b/ports/torch-th/CONTROL
new file mode 100644
index 000000000..7c8f79883
--- /dev/null
+++ b/ports/torch-th/CONTROL
@@ -0,0 +1,3 @@
+Source: torch-th
+Version: 20180131-89ede3ba90c906a8ec6b9a0f4bef188ba5bb2fd8-2
+Description: Torch's TH library
diff --git a/ports/torch-th/debug.patch b/ports/torch-th/debug.patch
new file mode 100644
index 000000000..2a15e84d0
--- /dev/null
+++ b/ports/torch-th/debug.patch
@@ -0,0 +1,52 @@
+diff --git a/lib/TH/CMakeLists.txt b/lib/TH/CMakeLists.txt
+index 803dfe1..7db876b 100644
+--- a/lib/TH/CMakeLists.txt
++++ b/lib/TH/CMakeLists.txt
+@@ -221,7 +221,13 @@ ENDIF(C_AVX2_FOUND OR C_AVX_FOUND OR C_SSE4_2_FOUND OR C_SSE4_1_FOUND)
+ IF(C_SSE4_1_FOUND AND C_SSE4_2_FOUND)
+ SET(CMAKE_C_FLAGS "${C_SSE4_1_FLAGS} -DUSE_SSE4_1 ${C_SSE4_2_FLAGS} -DUSE_SSE4_2 ${CMAKE_C_FLAGS}")
+ IF(MSVC)
+- SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_sse.c PROPERTIES COMPILE_FLAGS "/Ox /fp:fast")
++ IF(CMAKE_BUILD_TYPE STREQUAL Release)
++ SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_sse.c PROPERTIES COMPILE_FLAGS "/Ox /fp:fast")
++ MESSAGE(STATUS "Release mode. Found SSE4_1 and SSE4_2.")
++ ELSE()
++ SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_sse.c PROPERTIES COMPILE_FLAGS "/fp:fast")
++ MESSAGE(STATUS "Non-release mode. Found SSE4_1 and SSE4_2.")
++ ENDIF()
+ ELSE(MSVC)
+ SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_sse.c PROPERTIES COMPILE_FLAGS "-O3 -ffast-math")
+ ENDIF(MSVC)
+@@ -231,8 +237,15 @@ ENDIF(C_SSE4_1_FOUND AND C_SSE4_2_FOUND)
+ # IF AVX FOUND
+ IF(C_AVX_FOUND)
+ IF(MSVC)
+- SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_avx.c PROPERTIES COMPILE_FLAGS "/Ox /fp:fast ${C_AVX_FLAGS}")
+- SET_SOURCE_FILES_PROPERTIES(vector/AVX.c PROPERTIES COMPILE_FLAGS "/Ox /arch:AVX ${C_AVX_FLAGS}")
++ IF(CMAKE_BUILD_TYPE STREQUAL Release)
++ SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_avx.c PROPERTIES COMPILE_FLAGS "/Ox /fp:fast ${C_AVX_FLAGS}")
++ SET_SOURCE_FILES_PROPERTIES(vector/AVX.c PROPERTIES COMPILE_FLAGS "/Ox /arch:AVX ${C_AVX_FLAGS}")
++ MESSAGE(STATUS "Release mode. Found AVX.")
++ ELSE()
++ SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_avx.c PROPERTIES COMPILE_FLAGS "/fp:fast ${C_AVX_FLAGS}")
++ SET_SOURCE_FILES_PROPERTIES(vector/AVX.c PROPERTIES COMPILE_FLAGS "/arch:AVX ${C_AVX_FLAGS}")
++ MESSAGE(STATUS "Non-release mode. Found AVX.")
++ ENDIF()
+ ELSE(MSVC)
+ SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_avx.c PROPERTIES COMPILE_FLAGS "-O3 -ffast-math ${C_AVX_FLAGS}")
+ SET_SOURCE_FILES_PROPERTIES(vector/AVX.c PROPERTIES COMPILE_FLAGS "-O3 ${C_AVX_FLAGS}")
+@@ -242,7 +255,13 @@ ENDIF(C_AVX_FOUND)
+
+ IF(C_AVX2_FOUND)
+ IF(MSVC)
+- SET_SOURCE_FILES_PROPERTIES(vector/AVX2.c PROPERTIES COMPILE_FLAGS "/Ox /arch:AVX2 ${C_AVX2_FLAGS}")
++ IF(CMAKE_BUILD_TYPE STREQUAL Release)
++ SET_SOURCE_FILES_PROPERTIES(vector/AVX2.c PROPERTIES COMPILE_FLAGS "/Ox /arch:AVX2 ${C_AVX2_FLAGS}")
++ MESSAGE(STATUS "Release mode. Found AVX2.")
++ ELSE()
++ SET_SOURCE_FILES_PROPERTIES(vector/AVX2.c PROPERTIES COMPILE_FLAGS "/arch:AVX2 ${C_AVX2_FLAGS}")
++ MESSAGE(STATUS "Non-release mode. Found AVX2.")
++ ENDIF()
+ ELSE(MSVC)
+ SET_SOURCE_FILES_PROPERTIES(vector/AVX2.c PROPERTIES COMPILE_FLAGS "-O3 ${C_AVX2_FLAGS}")
+ ENDIF(MSVC)
diff --git a/ports/torch-th/portfile.cmake b/ports/torch-th/portfile.cmake
new file mode 100644
index 000000000..7d31fccc4
--- /dev/null
+++ b/ports/torch-th/portfile.cmake
@@ -0,0 +1,36 @@
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "scintilla only supports dynamic linkage")
+endif()
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "scintilla only supports dynamic crt")
+endif()
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO torch/torch7
+ REF 89ede3ba90c906a8ec6b9a0f4bef188ba5bb2fd8
+ SHA512 0b28762768129f5e59e24d505e271418bb4513db0e99acb293f01095949700711116463b299fe42d65ca07c1f0a9f6d0d1d72e21275a2825a4a9fb0197525e72
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/debug.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/lib/TH
+ PREFER_NINJA
+ OPTIONS
+ -DWITH_OPENMP=OFF
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL ${SOURCE_PATH}/COPYRIGHT.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/torch-th RENAME copyright)
diff --git a/ports/tre/CMakeLists.txt b/ports/tre/CMakeLists.txt
new file mode 100644
index 000000000..09113fca1
--- /dev/null
+++ b/ports/tre/CMakeLists.txt
@@ -0,0 +1,37 @@
+cmake_minimum_required (VERSION 3.9)
+project (tre)
+
+set (HEADERS
+ lib/regex.h
+ include/tre/tre.h
+ include/tre/tre-config.h
+)
+
+set (SRCS
+ lib/regcomp.c
+ lib/regerror.c
+ lib/regexec.c
+ lib/tre-ast.c
+ lib/tre-compile.c
+ lib/tre-match-approx.c
+ lib/tre-match-backtrack.c
+ lib/tre-match-parallel.c
+ lib/tre-mem.c
+ lib/tre-parse.c
+ lib/tre-stack.c
+ lib/xmalloc.c
+ win32/tre.def
+)
+
+include_directories(win32 include/tre)
+add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS -DHAVE_CONFIG_H)
+add_library(tre ${SRCS})
+
+install(
+ TARGETS tre
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+install(FILES ${HEADERS} DESTINATION include/tre)
diff --git a/ports/tre/CONTROL b/ports/tre/CONTROL
new file mode 100644
index 000000000..a5df8cd11
--- /dev/null
+++ b/ports/tre/CONTROL
@@ -0,0 +1,3 @@
+Source: tre
+Version: 0.8.0-1
+Description: TRE is a lightweight, robust, and efficient POSIX compliant regexp matching library with some exciting features such as approximate (fuzzy) matching.
diff --git a/ports/tre/portfile.cmake b/ports/tre/portfile.cmake
new file mode 100644
index 000000000..0cf993082
--- /dev/null
+++ b/ports/tre/portfile.cmake
@@ -0,0 +1,26 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO laurikari/tre
+ REF 6fb7206b935b35814c5078c20046dbe065435363
+ SHA512 f1d664719eab23b665d71e34ca3d11f8ba49da23ff20dc28f46d4ce30fe155c12208ba7fd212dbeb20a7037e069909f0c2120ce1fc01074656399805e3289a90
+ HEAD_REF master
+)
+
+file(READ ${SOURCE_PATH}/win32/config.h CONFIG_H)
+string(REPLACE "#define snprintf sprintf_s" "" CONFIG_H ${CONFIG_H})
+file(WRITE ${SOURCE_PATH}/win32/config.h "${CONFIG_H}")
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/tre RENAME copyright)
diff --git a/ports/treehopper/CONTROL b/ports/treehopper/CONTROL
new file mode 100644
index 000000000..336a42250
--- /dev/null
+++ b/ports/treehopper/CONTROL
@@ -0,0 +1,3 @@
+Source: treehopper
+Version: 1.11.3-1
+Description: Treehopper connects the physical world to your computer, tablet, or smartphone. For more information, visit https://treehopper.io.
diff --git a/ports/treehopper/portfile.cmake b/ports/treehopper/portfile.cmake
new file mode 100644
index 000000000..fd90f0392
--- /dev/null
+++ b/ports/treehopper/portfile.cmake
@@ -0,0 +1,32 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message("treehopper only supports dynamic library linkage")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "treehopper does not support static crt linkage")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO treehopper-electronics/treehopper-sdk
+ REF 1.11.3
+ SHA512 65b748375b798787c8b59f9657151f340920c939c3f079105b9b78f4e3b775125598106c6dfa4feba111a64d30f007003a70110ac767802a7dd1127a25c9fb14
+ HEAD_REF master)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/C++/API/
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/treehopper)
+
+file(INSTALL ${SOURCE_PATH}/C++/API/inc/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/Treehopper/)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/treehopper RENAME copyright)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) \ No newline at end of file
diff --git a/ports/unicorn-lib/CMakeLists.txt b/ports/unicorn-lib/CMakeLists.txt
new file mode 100644
index 000000000..b34e04f23
--- /dev/null
+++ b/ports/unicorn-lib/CMakeLists.txt
@@ -0,0 +1,30 @@
+cmake_minimum_required(VERSION 3.10)
+
+project(Unicorn_Lib LANGUAGES CXX DESCRIPTION "Unicode library for C++ by Ross Smith")
+set(CMAKE_CXX_STANDARD 17)
+option(UNICORN_LIB_SKIP_HEADERS "If the headers installation is skipped or not." OFF)
+
+find_path(RS_CORE_LIB_INCLUDE_DIR rs-core/common.hpp)
+#find_library(RW_UTILITIES_LIBRARY NAMES rw_utilities)
+
+file(GLOB_RECURSE UNICORN_LIB_SOURCES ${PROJECT_SOURCE_DIR}/unicorn/*.cpp)
+foreach(ITR ${UNICORN_LIB_SOURCES})
+ if(ITR MATCHES "(.*)-test.cpp(.*)")
+ list(REMOVE_ITEM UNICORN_LIB_SOURCES ${ITR})
+ endif()
+endforeach()
+add_library(unicorn-lib ${UNICORN_LIB_SOURCES})
+target_include_directories(
+ unicorn-lib
+ PUBLIC ${PROJECT_SOURCE_DIR}
+ PUBLIC ${RS_CORE_LIB_INCLUDE_DIR}
+)
+target_compile_definitions(
+ unicorn-lib
+ PRIVATE -DUNICODE -D_UNICODE _CRT_SECURE_NO_WARNINGS
+)
+
+if(NOT UNICORN_LIB_SKIP_HEADERS)
+ install(DIRECTORY ${PROJECT_SOURCE_DIR}/unicorn DESTINATION include FILES_MATCHING PATTERN "*.hpp")
+endif()
+install(TARGETS unicorn-lib DESTINATION lib) \ No newline at end of file
diff --git a/ports/unicorn-lib/CONTROL b/ports/unicorn-lib/CONTROL
new file mode 100644
index 000000000..194e24eb8
--- /dev/null
+++ b/ports/unicorn-lib/CONTROL
@@ -0,0 +1,4 @@
+Source: unicorn-lib
+Version: 2018-05-17
+Description: Unicode library for C++ by Ross Smith
+Build-Depends: rs-core-lib, pcre, zlib, libiconv
diff --git a/ports/unicorn-lib/portfile.cmake b/ports/unicorn-lib/portfile.cmake
new file mode 100644
index 000000000..ec28ec237
--- /dev/null
+++ b/ports/unicorn-lib/portfile.cmake
@@ -0,0 +1,23 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO CaptainCrowbar/unicorn-lib
+ REF 2c8e7f8948aaf51654685e2f6fa3ea1da3fa8d24
+ SHA512 1eb3f8d8a6cbe383c4dd01c5a9883d57a024d47b2adc94c437ca815be7532d7b26a4883061ee31c16194336d095d59bce2ca3a538f100f0d05dc1ff8e0b3f7ad
+ HEAD_REF master
+)
+
+file(COPY ${CURRENT_PORT_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS_DEBUG
+ -DUNICORN_LIB_SKIP_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/unicorn-lib RENAME copyright) \ No newline at end of file
diff --git a/ports/unicorn/CONTROL b/ports/unicorn/CONTROL
new file mode 100644
index 000000000..82b42ba9c
--- /dev/null
+++ b/ports/unicorn/CONTROL
@@ -0,0 +1,3 @@
+Source: unicorn
+Version: 2018-05-17
+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..0340a0e3b
--- /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 19ffa83d4353af8834c4c55590ca2ecd357a6bbe
+ SHA512 db09f91da1f0611663200ca1add7f878e677d3df4faebdb38e68e96a795c1d2bb7bf5b4af44d9b92fc91a1c1f18a89862a0aa3f12ef8a1277d8bfdf94b0b5020
+ 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/units/CONTROL b/ports/units/CONTROL
new file mode 100644
index 000000000..b66a3b828
--- /dev/null
+++ b/ports/units/CONTROL
@@ -0,0 +1,3 @@
+Source: units
+Version: 2.3.0
+Description: A compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies.
diff --git a/ports/units/portfile.cmake b/ports/units/portfile.cmake
new file mode 100644
index 000000000..910626f6d
--- /dev/null
+++ b/ports/units/portfile.cmake
@@ -0,0 +1,25 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO nholthaus/units
+ REF v2.3.0
+ SHA512 1b9d7806e82d0f437574562e647077b6d22c0add81a19b5ec71f53ab608642db2d785a70d03d13cb2eeea2a8bc2d20f112b6bdf49acf0afce44e8e07bb6b7c39
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS -DBUILD_TESTS=OFF
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright/readme/package files
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/units RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/units)
+file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/unitsConfig.cmake ${CURRENT_PACKAGES_DIR}/share/units/unitsConfig.cmake)
+
+# remove uneeded directories
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug) \ No newline at end of file
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/unrar/CONTROL b/ports/unrar/CONTROL
new file mode 100644
index 000000000..d9c586c6a
--- /dev/null
+++ b/ports/unrar/CONTROL
@@ -0,0 +1,3 @@
+Source: unrar
+Version: 5.5.8-1
+Description: rarlab's unrar libary
diff --git a/ports/unrar/portfile.cmake b/ports/unrar/portfile.cmake
new file mode 100644
index 000000000..4ad834d15
--- /dev/null
+++ b/ports/unrar/portfile.cmake
@@ -0,0 +1,40 @@
+include(vcpkg_common_functions)
+set(UNRAR_VERSION "5.5.8")
+set(UNRAR_SHA512 9eac83707fa47a03925e5f3e8adf47889064d748304b732d12a2d379ab525b441f1aa33216377d4ef445f45c4e8ad73d2cd0b560601ceac344c60571b77fd6aa)
+set(UNRAR_FILENAME unrarsrc-${UNRAR_VERSION}.tar.gz)
+set(UNRAR_URL http://www.rarlab.com/rar/${UNRAR_FILENAME})
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/unrar)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message(STATUS "Unrar buildsystem doesn't support static building. Building dynamic instead.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+#SRC
+vcpkg_download_distfile(ARCHIVE
+ URLS ${UNRAR_URL}
+ FILENAME ${UNRAR_FILENAME}
+ SHA512 ${UNRAR_SHA512}
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_build_msbuild(
+ PROJECT_PATH "${SOURCE_PATH}/UnRARDll.vcxproj"
+ OPTIONS_DEBUG /p:OutDir=../../${TARGET_TRIPLET}-dbg/
+ OPTIONS_RELEASE /p:OutDir=../../${TARGET_TRIPLET}-rel/
+ OPTIONS /VERBOSITY:Diagnostic /DETAILEDSUMMARY
+)
+
+#INCLUDE (named dll.hpp in source, and unrar.h in all rarlabs distributions)
+file(INSTALL ${SOURCE_PATH}/dll.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include RENAME unrar.h)
+
+#DLL & LIB
+file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/unrar.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/unrar.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/unrar.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/unrar.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+
+vcpkg_copy_pdbs()
+
+#COPYRIGHT
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/unrar RENAME copyright)
diff --git a/ports/urdfdom-headers/CONTROL b/ports/urdfdom-headers/CONTROL
new file mode 100644
index 000000000..0b967f459
--- /dev/null
+++ b/ports/urdfdom-headers/CONTROL
@@ -0,0 +1,3 @@
+Source: urdfdom-headers
+Version: 1.0.0-2
+Description: The URDF (U-Robot Description Format) headers provides core data structure headers for URDF.
diff --git a/ports/urdfdom-headers/portfile.cmake b/ports/urdfdom-headers/portfile.cmake
new file mode 100644
index 000000000..eb2c9020e
--- /dev/null
+++ b/ports/urdfdom-headers/portfile.cmake
@@ -0,0 +1,25 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ros/urdfdom_headers
+ REF 1.0.0
+ SHA512 b1f63c1a13f062c987d6be4fcea5eea903577a710d44fdce077722b70d72eb65a265131beac1fdeba576bde189ebf51ac0eb19b2b06a34b0f9fb9dcbd437291a
+ HEAD_REF master
+ )
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake")
+
+# The config files for this project use underscore
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/urdfdom-headers ${CURRENT_PACKAGES_DIR}/share/urdfdom_headers)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/urdfdom-headers RENAME copyright)
diff --git a/ports/urdfdom/0001_use_math_defines.patch b/ports/urdfdom/0001_use_math_defines.patch
new file mode 100644
index 000000000..b791533aa
--- /dev/null
+++ b/ports/urdfdom/0001_use_math_defines.patch
@@ -0,0 +1,26 @@
+From a374a5b04db27fde58a11cc2ba5ea10a0d0a7dad Mon Sep 17 00:00:00 2001
+From: Mikhail Paulyshka <me@mixaill.tk>
+Date: Sun, 3 Sep 2017 23:24:55 +0300
+Subject: [PATCH] define _USE_MATH_DEFINES
+
+---
+ urdf_parser/CMakeLists.txt | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/urdf_parser/CMakeLists.txt b/urdf_parser/CMakeLists.txt
+index 333226e..2158965 100644
+--- a/urdf_parser/CMakeLists.txt
++++ b/urdf_parser/CMakeLists.txt
+@@ -1,5 +1,9 @@
+ include_directories(include)
+
++if(MSVC)
++add_definitions(-D_USE_MATH_DEFINES)
++endif()
++
+ add_library(urdfdom_world SHARED src/pose.cpp src/model.cpp src/link.cpp src/joint.cpp src/world.cpp)
+ target_link_libraries(urdfdom_world ${TinyXML_LIBRARIES} ${console_bridge_LIBRARIES})
+ set_target_properties(urdfdom_world PROPERTIES SOVERSION ${URDF_MAJOR_MINOR_VERSION})
+--
+2.12.2.windows.2
+
diff --git a/ports/urdfdom/0002_fix_exports.patch b/ports/urdfdom/0002_fix_exports.patch
new file mode 100644
index 000000000..727883f8d
--- /dev/null
+++ b/ports/urdfdom/0002_fix_exports.patch
@@ -0,0 +1,29 @@
+From 06aa5a06ee543102bf1a4057601adba3490dad60 Mon Sep 17 00:00:00 2001
+From: Mikhail Paulyshka <me@mixaill.tk>
+Date: Sun, 3 Sep 2017 23:55:11 +0300
+Subject: [PATCH] fix exports
+
+---
+ urdf_parser/CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/urdf_parser/CMakeLists.txt b/urdf_parser/CMakeLists.txt
+index 2158965..c209228 100644
+--- a/urdf_parser/CMakeLists.txt
++++ b/urdf_parser/CMakeLists.txt
+@@ -15,10 +15,12 @@ set_target_properties(urdfdom_model PROPERTIES SOVERSION ${URDF_MAJOR_MINOR_VERS
+ add_library(urdfdom_sensor SHARED src/urdf_sensor.cpp)
+ target_link_libraries(urdfdom_sensor urdfdom_model ${TinyXML_LIBRARIES} ${console_bridge_LIBRARIES})
+ set_target_properties(urdfdom_sensor PROPERTIES SOVERSION ${URDF_MAJOR_MINOR_VERSION})
++set_target_properties(urdfdom_sensor PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+ add_library(urdfdom_model_state SHARED src/urdf_model_state.cpp src/twist.cpp)
+ target_link_libraries(urdfdom_model_state ${TinyXML_LIBRARIES} ${console_bridge_LIBRARIES})
+ set_target_properties(urdfdom_model_state PROPERTIES SOVERSION ${URDF_MAJOR_MINOR_VERSION})
++set_target_properties(urdfdom_model_state PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+ # --------------------------------
+
+--
+2.12.2.windows.2
+
diff --git a/ports/urdfdom/CONTROL b/ports/urdfdom/CONTROL
new file mode 100644
index 000000000..71e036251
--- /dev/null
+++ b/ports/urdfdom/CONTROL
@@ -0,0 +1,4 @@
+Source: urdfdom
+Version: 1.0.0-2
+Description: Provides core data structures and a simple XML parsers for populating the class data structures from an URDF file.
+Build-Depends: console-bridge, tinyxml, urdfdom-headers
diff --git a/ports/urdfdom/portfile.cmake b/ports/urdfdom/portfile.cmake
new file mode 100644
index 000000000..bf0568f8c
--- /dev/null
+++ b/ports/urdfdom/portfile.cmake
@@ -0,0 +1,51 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(STATUS "urdfdom does not support static linkage. Building dynamically.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ros/urdfdom
+ REF 1.0.0
+ SHA512 50a218e596bcc0cecff904db2fa626bebc3902c4fe1f5ff8e08195e462b4d9a8c416a41f4773cabbcc71490060d3feff7e8528a76b824569dc7fdb0bda01ec3f
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001_use_math_defines.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0002_fix_exports.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake")
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/)
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/ ${CURRENT_PACKAGES_DIR}/tools/urdfdom/)
+
+file(GLOB URDFDOM_DLLS_DEBUG ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll)
+foreach(URDFDOM_DLL_DEBUG ${URDFDOM_DLLS_DEBUG})
+ file(COPY ${URDFDOM_DLL_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${URDFDOM_DLL_DEBUG})
+endforeach()
+
+file(GLOB URDFDOM_DLLS_RELEASE ${CURRENT_PACKAGES_DIR}/lib/*.dll)
+foreach(URDFDOM_DLL_RELEASE ${URDFDOM_DLLS_RELEASE})
+ file(COPY ${URDFDOM_DLL_RELEASE} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${URDFDOM_DLL_RELEASE})
+endforeach()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/urdfdom RENAME copyright)
diff --git a/ports/uriparser/CMakeLists.txt b/ports/uriparser/CMakeLists.txt
new file mode 100644
index 000000000..47a6fbac1
--- /dev/null
+++ b/ports/uriparser/CMakeLists.txt
@@ -0,0 +1,25 @@
+cmake_minimum_required(VERSION 3.8)
+project(uriparser C)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+include_directories(include)
+
+file(GLOB SRC src/*.c)
+
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+add_library(uriparser ${SRC})
+
+install(
+ TARGETS uriparser
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(DIRECTORY include/ DESTINATION include)
+endif()
diff --git a/ports/uriparser/CONTROL b/ports/uriparser/CONTROL
new file mode 100644
index 000000000..553d44de9
--- /dev/null
+++ b/ports/uriparser/CONTROL
@@ -0,0 +1,3 @@
+Source: uriparser
+Version: 0.8.5
+Description: uriparser is a strictly RFC 3986 compliant URI parsing and handling library written in C. uriparser is cross-platform, fast, supports Unicode
diff --git a/ports/uriparser/portfile.cmake b/ports/uriparser/portfile.cmake
new file mode 100644
index 000000000..cb8f1b14a
--- /dev/null
+++ b/ports/uriparser/portfile.cmake
@@ -0,0 +1,23 @@
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO uriparser/uriparser
+ REF uriparser-0.8.5
+ SHA512 b5a4eb316b96bdd5b87cac9fdd30b8988c158914e71030a45aafabd04df67a94bba9696782d98e9fa2169baf351e95ab1479bc76d8afe37968a941bc27a3ffb6
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/uriparser RENAME copyright)
diff --git a/ports/utf8h/CONTROL b/ports/utf8h/CONTROL
new file mode 100644
index 000000000..5f1acf4c0
--- /dev/null
+++ b/ports/utf8h/CONTROL
@@ -0,0 +1,3 @@
+Source: utf8h
+Version: 841cb2deb8eb806e73fff0e1f43a11fca4f5da45
+Description: Single header utf8 string functions for C and C++
diff --git a/ports/utf8h/portfile.cmake b/ports/utf8h/portfile.cmake
new file mode 100644
index 000000000..11b35c21a
--- /dev/null
+++ b/ports/utf8h/portfile.cmake
@@ -0,0 +1,15 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO sheredom/utf8.h
+ REF 841cb2deb8eb806e73fff0e1f43a11fca4f5da45
+ SHA512 cce44011abc58556c031c0de1018b83225bdbbc0e8d7374e3fd6f0b63c8e200086c49e7caac61b559f1e6d5a7ad349a58a13876a1b1341c18349a5cee59a105b
+ HEAD_REF master
+)
+
+# Copy the utf8h header files
+file(COPY ${SOURCE_PATH}/utf8.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/utf8h)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/utf8h RENAME copyright)
diff --git a/ports/utf8proc/CONTROL b/ports/utf8proc/CONTROL
new file mode 100644
index 000000000..84acd8986
--- /dev/null
+++ b/ports/utf8proc/CONTROL
@@ -0,0 +1,3 @@
+Source: utf8proc
+Version: 2.1.0-1
+Description: Clean C library for processing UTF-8 Unicode data.
diff --git a/ports/utf8proc/fix-buildsystem.patch b/ports/utf8proc/fix-buildsystem.patch
new file mode 100644
index 000000000..17af16c9b
--- /dev/null
+++ b/ports/utf8proc/fix-buildsystem.patch
@@ -0,0 +1,48 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index be676ba..7a2b6d8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -13,9 +13,9 @@ set(SO_MAJOR 2)
+ set(SO_MINOR 1)
+ set(SO_PATCH 0)
+
+-add_definitions (
+- -DUTF8PROC_EXPORTS
+-)
++if(BUILD_SHARED_LIBS)
++ add_definitions(-DUTF8PROC_EXPORTS -DUTF8PROC_SHARED)
++endif()
+
+ if (NOT MSVC)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -std=c99 -pedantic -Wall")
+@@ -31,3 +31,10 @@ set_target_properties (utf8proc PROPERTIES
+ VERSION "${SO_MAJOR}.${SO_MINOR}.${SO_PATCH}"
+ SOVERSION ${SO_MAJOR}
+ )
++
++install(TARGETS utf8proc
++ RUNTIME DESTINATION bin
++ ARCHIVE DESTINATION lib
++ LIBRARY DESTINATION lib)
++
++install(FILES utf8proc.h DESTINATION include)
+diff --git a/utf8proc.h b/utf8proc.h
+index edf46d4..7b3f11a 100644
+--- a/utf8proc.h
++++ b/utf8proc.h
+@@ -120,13 +120,13 @@ typedef bool utf8proc_bool;
+ #endif
+ #include <limits.h>
+
+-#ifdef _WIN32
++#if defined _WIN32 && defined UTF8PROC_SHARED
+ # ifdef UTF8PROC_EXPORTS
+ # define UTF8PROC_DLLEXPORT __declspec(dllexport)
+ # else
+ # define UTF8PROC_DLLEXPORT __declspec(dllimport)
+ # endif
+-#elif __GNUC__ >= 4
++#elif __GNUC__ >= 4 && defined UTF8PROC_SHARED
+ # define UTF8PROC_DLLEXPORT __attribute__ ((visibility("default")))
+ #else
+ # define UTF8PROC_DLLEXPORT
diff --git a/ports/utf8proc/portfile.cmake b/ports/utf8proc/portfile.cmake
new file mode 100644
index 000000000..64244ec03
--- /dev/null
+++ b/ports/utf8proc/portfile.cmake
@@ -0,0 +1,28 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO JuliaLang/utf8proc
+ REF v2.1.0
+ SHA512 72b7f377fa6a62018d3eeab8723a27e25db3d1f794ae0bf21fff62ec1a7439bec52e7c93d2a00c218de6ff518097fb4a7a87c56e61ba8c98e689aa8f7171c812)
+
+vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-buildsystem.patch)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(READ ${CURRENT_PACKAGES_DIR}/include/utf8proc.h UTF8PROC_H)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ string(REPLACE "defined UTF8PROC_SHARED" "0" UTF8PROC_H "${UTF8PROC_H}")
+else()
+ string(REPLACE "defined UTF8PROC_SHARED" "1" UTF8PROC_H "${UTF8PROC_H}")
+endif()
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/utf8proc.h "${UTF8PROC_H}")
+
+file(COPY ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/utf8proc)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/utf8proc/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/utf8proc/copyright)
diff --git a/ports/utfcpp/CONTROL b/ports/utfcpp/CONTROL
index 619e8b2b3..e98dd9ee4 100644
--- a/ports/utfcpp/CONTROL
+++ b/ports/utfcpp/CONTROL
@@ -1,3 +1,3 @@
Source: utfcpp
-Version: 2.3.4
+Version: 2.3.5
Description: UTF-8 with C++ in a Portable Way
diff --git a/ports/utfcpp/portfile.cmake b/ports/utfcpp/portfile.cmake
index 56599dd3a..19c062f36 100644
--- a/ports/utfcpp/portfile.cmake
+++ b/ports/utfcpp/portfile.cmake
@@ -1,10 +1,10 @@
#header-only library
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/utfcpp-2.3.4)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/utfcpp-2.3.5)
vcpkg_download_distfile(ARCHIVE_FILE
- URLS "https://github.com/nemtrif/utfcpp/archive/v2.3.4.tar.gz"
- FILENAME "utfcpp-2.3.4.tar.gz"
- SHA512 1baa67c4efb926bba97dfbc869ac057d5d6cf67e94879fc0854ec3d75a5bae7c47cb3e9fd9cbc7bed9ca5daf40f173c0349bce2f6aa34a400bdf77d01522ff2f
+ URLS "https://github.com/nemtrif/utfcpp/archive/v2.3.5.tar.gz"
+ FILENAME "utfcpp-2.3.5.tar.gz"
+ SHA512 d5e672de952b78a78a8af0c81664f15667b30558fd406a9abc72c14dc444e0869e7c02cb66fa017ec0e760c0fb23c3e923a4b171c2acb3ed7b71612783e789ee
)
vcpkg_extract_source_archive(${ARCHIVE_FILE})
diff --git a/ports/utfz/CONTROL b/ports/utfz/CONTROL
new file mode 100644
index 000000000..fd1854467
--- /dev/null
+++ b/ports/utfz/CONTROL
@@ -0,0 +1,3 @@
+Source: utfz
+Version: 1.2-1
+Description: A tiny C++ library for parsing and encoding utf-8
diff --git a/ports/utfz/portfile.cmake b/ports/utfz/portfile.cmake
new file mode 100644
index 000000000..27b5d17c4
--- /dev/null
+++ b/ports/utfz/portfile.cmake
@@ -0,0 +1,23 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO IMQS/utfz
+ REF v1.2
+ SHA512 286a7a79fe860df8c5a4e1fc75f56460026fe9fbcd2f0ea3e70ecf78e4c5de73442a008339a90c2bd4ef94d5a89c0ed2fb537b91927f11aaa1aa5876d36a628b
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+# Copy the include file
+file(COPY ${SOURCE_PATH}/utfz.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/license DESTINATION ${CURRENT_PACKAGES_DIR}/share/utfz)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/utfz/license ${CURRENT_PACKAGES_DIR}/share/utfz/copyright)
diff --git a/ports/uvatlas/portfile.cmake b/ports/uvatlas/portfile.cmake
index 22b04326c..ae7e9f285 100644
--- a/ports/uvatlas/portfile.cmake
+++ b/ports/uvatlas/portfile.cmake
@@ -1,15 +1,13 @@
-# 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(STATUS "Warning: Dynamic building not supported yet. Building static.")
set(VCPKG_LIBRARY_LINKAGE static)
endif()
+if (VCPKG_CRT_LINKAGE STREQUAL static)
+ message(FATAL_ERROR "UVAtlas does not currently support static crt linkage")
+endif()
+if(VCPKG_CMAKE_SYSTEM_NAME)
+ message(FATAL_ERROR "UVAtlas only supports Windows Desktop")
+endif()
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/UVAtlas-sept2016)
@@ -20,7 +18,7 @@ vcpkg_download_distfile(ARCHIVE
)
vcpkg_extract_source_archive(${ARCHIVE})
-IF (TRIPLET_SYSTEM_ARCH MATCHES "x86")
+IF(TRIPLET_SYSTEM_ARCH MATCHES "x86")
SET(BUILD_ARCH "Win32")
ELSE()
SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH})
diff --git a/ports/uwebsockets/CMakeLists.txt b/ports/uwebsockets/CMakeLists.txt
index 43ccd039c..c3c4f97d8 100644
--- a/ports/uwebsockets/CMakeLists.txt
+++ b/ports/uwebsockets/CMakeLists.txt
@@ -11,6 +11,7 @@ file(GLOB SOURCES src/*.cpp)
add_library(uWS ${SOURCES})
target_include_directories(uWS PUBLIC ${OPENSSL_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS})
target_link_libraries(uWS PUBLIC ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES} ${LIBUV_LIBRARY})
+target_compile_features(uWS PRIVATE cxx_range_for)
install(TARGETS uWS
RUNTIME DESTINATION bin
diff --git a/ports/uwebsockets/CONTROL b/ports/uwebsockets/CONTROL
index 39441586b..c212611de 100644
--- a/ports/uwebsockets/CONTROL
+++ b/ports/uwebsockets/CONTROL
@@ -1,4 +1,4 @@
Source: uwebsockets
-Version: 0.14.2
-Build-Depends: libuv, openssl, zlib, boost
+Version: 0.14.8-2
+Build-Depends: libuv, openssl, zlib
Description: Highly scalable cross-platform WebSocket & HTTP library for C++11 and Node.js
diff --git a/ports/uwebsockets/portfile.cmake b/ports/uwebsockets/portfile.cmake
index 1de6762d4..f9d6c43a1 100644
--- a/ports/uwebsockets/portfile.cmake
+++ b/ports/uwebsockets/portfile.cmake
@@ -1,12 +1,12 @@
include(vcpkg_common_functions)
-set(VERSION 0.14.2)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/uwebsockets-${VERSION})
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/uWebSockets/uWebSockets/archive/v${VERSION}.zip"
- FILENAME "uwebsockets-v${VERSION}.zip"
- SHA512 b6389a00a310d77ec55273c1b9499679b13f5e430c31fbc5dd5847780455115d95d5a439cd82dddc537d85c4afb5db4cacefb6db5b3f9681ff142d6ab9ef5024
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO uWebSockets/uWebSockets
+ REF v0.14.8
+ SHA512 5e78e2f10e95648ad1e7f26612f69da3bbdcdb3f17c99e3bb9775e3eb440a2741f05375dcc043b43f0f2d4de6da54e7534431c5c10c1350103a4379b55cf9081
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
diff --git a/ports/vlpp/CMakeLists.txt b/ports/vlpp/CMakeLists.txt
new file mode 100644
index 000000000..d5fec60c4
--- /dev/null
+++ b/ports/vlpp/CMakeLists.txt
@@ -0,0 +1,40 @@
+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)
+
+if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
+endif()
+
+# 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..392beec5e
--- /dev/null
+++ b/ports/vlpp/CONTROL
@@ -0,0 +1,3 @@
+Source: vlpp
+Version: 0.9.3.1-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..1ee003ffb
--- /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_PACKAGES_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/vtk-dicom/CONTROL b/ports/vtk-dicom/CONTROL
new file mode 100644
index 000000000..fdd8e04d3
--- /dev/null
+++ b/ports/vtk-dicom/CONTROL
@@ -0,0 +1,8 @@
+Source: vtk-dicom
+Version: 0.8.8-alpha-1
+Description: DICOM for VTK
+Build-Depends: vtk, zlib
+
+Feature: gdcm
+Description: Use gdcm for decompressing DICOM files.
+Build-Depends: gdcm2
diff --git a/ports/vtk-dicom/portfile.cmake b/ports/vtk-dicom/portfile.cmake
new file mode 100644
index 000000000..e7f5c65aa
--- /dev/null
+++ b/ports/vtk-dicom/portfile.cmake
@@ -0,0 +1,42 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO dgobbi/vtk-dicom
+ REF ca27801fad6356c98ba19e760b9b4b8e9128f60e
+ SHA512 d4916fa385e6f26da0a5d7eb981497c9121ff4f67b4b03e518aa4974d2b0ef207168e939e5063e705c15f627ace56e39aca5f5891d333924cbc80c9277aa7dd2
+ HEAD_REF master
+)
+
+if ("gdcm" IN_LIST FEATURES)
+ set(USE_GDCM ON )
+else()
+ set(USE_GDCM OFF )
+endif()
+
+
+if(USE_GDCM)
+ list(APPEND ADDITIONAL_OPTIONS
+ -DUSE_GDCM=ON
+ -DUSE_DCMTK=OFF
+ )
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_PROGRAMS=OFF
+ -DBUILD_EXAMPLES=OFF
+ ${ADDITIONAL_OPTIONS}
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/Copyright.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/vtk-dicom)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/vtk-dicom/Copyright.txt ${CURRENT_PACKAGES_DIR}/share/vtk-dicom/copyright)
diff --git a/ports/vtk/CONTROL b/ports/vtk/CONTROL
index d963451ce..8b9ae8f6b 100644
--- a/ports/vtk/CONTROL
+++ b/ports/vtk/CONTROL
@@ -1,4 +1,24 @@
Source: vtk
-Version: 7.1.0
+Version: 8.1.0-1
Description: Software system for 3D computer graphics, image processing, and visualization
-Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, qt5, msmpi
+Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, libjpeg-turbo, proj4, lz4, libtheora
+
+Feature: openvr
+Description: OpenVR functionality for VTK
+Build-Depends: sdl2, openvr
+
+Feature: qt
+Description: Qt functionality for VTK
+Build-Depends: qt5
+
+Feature: mpi
+Description: MPI functionality for VTK
+Build-Depends: msmpi, hdf5[parallel]
+
+Feature: python
+Description: Python functionality for VTK
+Build-Depends: python3
+
+Feature: libharu
+Description: PDF libharu functionality for VTK
+Build-Depends: libharu
diff --git a/ports/vtk/FindGDAL.cmake b/ports/vtk/FindGDAL.cmake
new file mode 100644
index 000000000..e4f2f303b
--- /dev/null
+++ b/ports/vtk/FindGDAL.cmake
@@ -0,0 +1,127 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#.rst:
+# FindGDAL
+# --------
+#
+#
+#
+# Locate gdal
+#
+# This module accepts the following environment variables:
+#
+# ::
+#
+# GDAL_DIR or GDAL_ROOT - Specify the location of GDAL
+#
+#
+#
+# This module defines the following CMake variables:
+#
+# ::
+#
+# GDAL_FOUND - True if libgdal is found
+# GDAL_LIBRARY - A variable pointing to the GDAL library
+# GDAL_INCLUDE_DIR - Where to find the headers
+
+#
+# $GDALDIR is an environment variable that would
+# correspond to the ./configure --prefix=$GDAL_DIR
+# used in building gdal.
+#
+# Created by Eric Wing. I'm not a gdal user, but OpenSceneGraph uses it
+# for osgTerrain so I whipped this module together for completeness.
+# I actually don't know the conventions or where files are typically
+# placed in distros.
+# Any real gdal users are encouraged to correct this (but please don't
+# break the OS X framework stuff when doing so which is what usually seems
+# to happen).
+
+# This makes the presumption that you are include gdal.h like
+#
+#include "gdal.h"
+
+find_path(GDAL_INCLUDE_DIR gdal.h
+ HINTS
+ ENV GDAL_DIR
+ ENV GDAL_ROOT
+ PATH_SUFFIXES
+ include/gdal
+ include/GDAL
+ include
+ PATHS
+ ~/Library/Frameworks/gdal.framework/Headers
+ /Library/Frameworks/gdal.framework/Headers
+ /sw # Fink
+ /opt/local # DarwinPorts
+ /opt/csw # Blastwave
+ /opt
+)
+
+if(UNIX)
+ # Use gdal-config to obtain the library version (this should hopefully
+ # allow us to -lgdal1.x.y where x.y are correct version)
+ # For some reason, libgdal development packages do not contain
+ # libgdal.so...
+ find_program(GDAL_CONFIG gdal-config
+ HINTS
+ ENV GDAL_DIR
+ ENV GDAL_ROOT
+ PATH_SUFFIXES bin
+ PATHS
+ /sw # Fink
+ /opt/local # DarwinPorts
+ /opt/csw # Blastwave
+ /opt
+ )
+
+ if(GDAL_CONFIG)
+ exec_program(${GDAL_CONFIG} ARGS --libs OUTPUT_VARIABLE GDAL_CONFIG_LIBS)
+ if(GDAL_CONFIG_LIBS)
+ string(REGEX MATCHALL "-l[^ ]+" _gdal_dashl ${GDAL_CONFIG_LIBS})
+ string(REPLACE "-l" "" _gdal_lib "${_gdal_dashl}")
+ string(REGEX MATCHALL "-L[^ ]+" _gdal_dashL ${GDAL_CONFIG_LIBS})
+ string(REPLACE "-L" "" _gdal_libpath "${_gdal_dashL}")
+ endif()
+ endif()
+endif()
+
+find_library(GDAL_LIBRARY_RELEASE
+ NAMES ${_gdal_lib} gdal gdal_i gdal1.5.0 gdal1.4.0 gdal1.3.2 GDAL
+ HINTS
+ ENV GDAL_DIR
+ ENV GDAL_ROOT
+ ${_gdal_libpath}
+ PATH_SUFFIXES lib
+ PATHS
+ /sw
+ /opt/local
+ /opt/csw
+ /opt
+ /usr/freeware
+)
+
+find_library(GDAL_LIBRARY_DEBUG
+ NAMES ${_gdal_lib} gdald gdald_i gdald1.5.0 gdald1.4.0 gdald1.3.2 GDALD
+ HINTS
+ ENV GDAL_DIR
+ ENV GDAL_ROOT
+ ${_gdal_libpath}
+ PATH_SUFFIXES lib
+ PATHS
+ /sw
+ /opt/local
+ /opt/csw
+ /opt
+ /usr/freeware
+)
+
+include(SelectLibraryConfigurations)
+select_library_configurations(GDAL)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GDAL DEFAULT_MSG GDAL_LIBRARY GDAL_INCLUDE_DIR)
+
+set(GDAL_LIBRARIES ${GDAL_LIBRARY})
+set(GDAL_INCLUDE_DIRS ${GDAL_INCLUDE_DIR})
diff --git a/ports/vtk/FindHDF5.cmake b/ports/vtk/FindHDF5.cmake
new file mode 100644
index 000000000..f3c6bd30f
--- /dev/null
+++ b/ports/vtk/FindHDF5.cmake
@@ -0,0 +1,31 @@
+find_package(HDF5 NO_MODULE REQUIRED)
+
+set(HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIR})
+
+if(NOT TARGET vtk::hdf5::hdf5)
+ add_library(vtk::hdf5::hdf5 INTERFACE IMPORTED GLOBAL)
+ if(TARGET hdf5::hdf5-static)
+ set_target_properties(vtk::hdf5::hdf5 PROPERTIES INTERFACE_LINK_LIBRARIES "hdf5::hdf5-static")
+ elseif(TARGET hdf5::hdf5-shared)
+ set_target_properties(vtk::hdf5::hdf5 PROPERTIES INTERFACE_LINK_LIBRARIES "hdf5::hdf5-shared")
+ else()
+ message(FATAL_ERROR "could not find target hdf5-*")
+ endif()
+endif()
+
+if(NOT TARGET vtk::hdf5::hdf5_hl)
+ add_library(vtk::hdf5::hdf5_hl INTERFACE IMPORTED GLOBAL)
+ if(TARGET hdf5::hdf5_hl-static)
+ set_target_properties(vtk::hdf5::hdf5_hl PROPERTIES INTERFACE_LINK_LIBRARIES "hdf5::hdf5_hl-static")
+ elseif(TARGET hdf5::hdf5_hl-shared)
+ set_target_properties(vtk::hdf5::hdf5_hl PROPERTIES INTERFACE_LINK_LIBRARIES "hdf5::hdf5_hl-shared")
+ else()
+ message(FATAL_ERROR "could not find target hdf5_hl-*")
+ endif()
+endif()
+
+set(HDF5_LIBRARIES "$<BUILD_INTERFACE:vtk::hdf5::hdf5>" "$<BUILD_INTERFACE:vtk::hdf5::hdf5_hl>")
+
+find_package_handle_standard_args(HDF5
+ REQUIRED_VARS HDF5_INCLUDE_DIRS HDF5_LIBRARIES
+)
diff --git a/ports/vtk/SplitLibraryConfigurations.cmake b/ports/vtk/SplitLibraryConfigurations.cmake
new file mode 100644
index 000000000..fc4d87ec8
--- /dev/null
+++ b/ports/vtk/SplitLibraryConfigurations.cmake
@@ -0,0 +1,28 @@
+
+cmake_minimum_required(VERSION 3.2.0)
+
+function(split_library_configurations LIBRARIES OPTIMIZED_OUT_VAR DEBUG_OUT_VAR GENERAL_OUT_VAR)
+ set(OPTIMIZED_LIBRARIES)
+ set(DEBUG_LIBRARIES)
+ set(GENERAL_LIBRARIES)
+
+ set(CURRENT_TYPE)
+ foreach(LIBRARY ${LIBRARIES})
+ if("${LIBRARY}" STREQUAL "optimized" OR "${LIBRARY}" STREQUAL "debug" OR "${LIBRARY}" STREQUAL "general")
+ set(CURRENT_TYPE "${LIBRARY}")
+ else()
+ if("${CURRENT_TYPE}" STREQUAL "optimized")
+ list(APPEND OPTIMIZED_LIBRARIES "${LIBRARY}")
+ elseif("${CURRENT_TYPE}" STREQUAL "debug")
+ list(APPEND DEBUG_LIBRARIES "${LIBRARY}")
+ else()
+ list(APPEND GENERAL_LIBRARIES "${LIBRARY}")
+ endif()
+ set(CURRENT_TYPE)
+ endif()
+ endforeach()
+
+ set(${OPTIMIZED_OUT_VAR} "${OPTIMIZED_LIBRARIES}" PARENT_SCOPE)
+ set(${DEBUG_OUT_VAR} "${DEBUG_LIBRARIES}" PARENT_SCOPE)
+ set(${GENERAL_OUT_VAR} "${GENERAL_LIBRARIES}" PARENT_SCOPE)
+endfunction() \ No newline at end of file
diff --git a/ports/vtk/disable-workaround-findhdf5.patch b/ports/vtk/disable-workaround-findhdf5.patch
new file mode 100644
index 000000000..004397048
--- /dev/null
+++ b/ports/vtk/disable-workaround-findhdf5.patch
@@ -0,0 +1,21 @@
+--- a/CMake/vtkModuleMacros.cmake Mon Jun 26 15:29:04 2017
++++ b/CMake/vtkModuleMacros.cmake Tue Aug 08 17:54:03 2017
+@@ -893,18 +893,6 @@
+ set(vtk${_lower}_LIBRARIES "${${_upper_pkg_name}_LIBRARIES}")
+ endif()
+
+- #a workaround for bad FindHDF5 behavior in which deb or opt can
+- #end up empty. cmake >= 2.8.12.2 makes this unnecessary
+- string(REGEX MATCH "debug;.*optimized;.*"
+- _remove_deb_opt "${vtk${_lower}_LIBRARIES}")
+- if (_remove_deb_opt)
+- set(_tmp ${vtk${_lower}_LIBRARIES})
+- list(REMOVE_ITEM _tmp "debug")
+- list(REMOVE_ITEM _tmp "optimized")
+- list(REMOVE_DUPLICATES _tmp)
+- set(vtk${_lower}_LIBRARIES ${_tmp})
+- endif()
+-
+ set(vtk${_lower}_INCLUDE_DIRS "")
+ else()
+ if(_nolibs)
diff --git a/ports/vtk/fix-find-libharu.patch b/ports/vtk/fix-find-libharu.patch
new file mode 100644
index 000000000..1c66408c6
--- /dev/null
+++ b/ports/vtk/fix-find-libharu.patch
@@ -0,0 +1,18 @@
+--- a/CMake/FindLibHaru.cmake Mon Jun 26 15:29:04 2017
++++ b/CMake/FindLibHaru.cmake Wed Aug 16 09:30:12 2017
+@@ -19,9 +19,13 @@
+
+ find_path(LIBHARU_INCLUDE_DIR hpdf.h)
+
+-find_library(LIBHARU_LIBRARY NAMES hpdf hpdfs)
++find_library(LIBHARU_LIBRARY_RELEASE NAMES hpdf libhpdf)
++find_library(LIBHARU_LIBRARY_DEBUG NAMES hpdfd libhpdfd)
+
+-# handle the QUIETLY and REQUIRED arguments and set FONTCONFIG_FOUND to TRUE if
++include(SelectLibraryConfigurations)
++select_library_configurations(LIBHARU)
++
++# handle the QUIETLY and REQUIRED arguments and set LIBHARU_FOUND to TRUE if
+ # all listed variables are TRUE
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(LibHaru DEFAULT_MSG
diff --git a/ports/vtk/fix-find-libproj4.patch b/ports/vtk/fix-find-libproj4.patch
new file mode 100644
index 000000000..4074d87a9
--- /dev/null
+++ b/ports/vtk/fix-find-libproj4.patch
@@ -0,0 +1,68 @@
+--- a/CMake/FindLIBPROJ4.cmake Thu Aug 10 21:03:55 2017
++++ b/CMake/FindLIBPROJ4.cmake Thu Aug 10 21:08:58 2017
+@@ -11,7 +11,7 @@
+ file( TO_CMAKE_PATH "$ENV{LIBPROJ4_DIR}" _LIBPROJ4_DIR )
+ endif ()
+
+- find_library( LIBPROJ4_LIBRARIES
++ find_library( LIBPROJ4_LIBRARY_RELEASE
+ NAMES proj
+ PATHS
+ ${_LIBPROJ4_DIR}/lib64
+@@ -24,7 +24,21 @@
+ ${CMAKE_INSTALL_PREFIX}/lib
+ /usr/local/lib
+ /usr/lib
+- NO_DEFAULT_PATH
++ )
++
++ find_library( LIBPROJ4_LIBRARY_DEBUG
++ NAMES projd
++ PATHS
++ ${_LIBPROJ4_DIR}/lib64
++ ${CMAKE_INSTALL_PREFIX}/lib64
++ /usr/local/lib64
++ /usr/lib64
++ ${_LIBPROJ4_DIR}
++ ${_LIBPROJ4_DIR}/lib
++ ${CMAKE_INSTALL_PREFIX}/bin
++ ${CMAKE_INSTALL_PREFIX}/lib
++ /usr/local/lib
++ /usr/lib
+ )
+
+ find_path( LIBPROJ4_INCLUDE_DIR
+@@ -37,19 +51,22 @@
+ /usr/local/include
+ /usr/include
+ /usr/include/postgresql
+- NO_DEFAULT_PATH
+ )
+
+- if ( NOT LIBPROJ4_INCLUDE_DIR OR NOT LIBPROJ4_LIBRARIES )
+- if ( LIBPROJ4_REQUIRED )
+- message( FATAL_ERROR "LIBPROJ4 is required. Set LIBPROJ4_DIR" )
+- endif ()
+- else ()
+- set( LIBPROJ4_FOUND 1 )
+- mark_as_advanced( LIBPROJ4_FOUND )
+- endif ()
++ include(SelectLibraryConfigurations)
++ select_library_configurations(LIBPROJ4)
++
++ include(FindPackageHandleStandardArgs)
++ find_package_handle_standard_args(LIBPROJ4
++ REQUIRED_VARS LIBPROJ4_LIBRARY LIBPROJ4_INCLUDE_DIR)
++
++ if(LIBPROJ4_FOUND)
++ set(LIBPROJ4_INCLUDE_DIRS ${LIBPROJ4_INCLUDE_DIR})
+
++ if(NOT LIBPROJ4_LIBRARIES)
++ set(LIBPROJ4_LIBRARIES ${LIBPROJ4_LIBRARY})
++ endif()
++ endif()
+ endif ()
+
+-mark_as_advanced( FORCE LIBPROJ4_INCLUDE_DIR )
+-mark_as_advanced( FORCE LIBPROJ4_LIBRARIES )
++mark_as_advanced(LIBPROJ4_INCLUDE_DIR)
diff --git a/ports/vtk/fix-find-mysql.patch b/ports/vtk/fix-find-mysql.patch
new file mode 100644
index 000000000..d2f984cd5
--- /dev/null
+++ b/ports/vtk/fix-find-mysql.patch
@@ -0,0 +1,10 @@
+--- a/CMake/FindMySQL.cmake Mon Jun 26 15:29:04 2017
++++ b/CMake/FindMySQL.cmake Wed Aug 16 11:21:58 2017
+@@ -28,6 +28,7 @@
+ "C:/MySQL/include"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.0;Location]/include"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.0;Location]/include"
++ PATH_SUFFIXES mysql
+ DOC "Specify the directory containing mysql.h."
+ )
+
diff --git a/ports/vtk/fix-find-odbc.patch b/ports/vtk/fix-find-odbc.patch
new file mode 100644
index 000000000..0690ed0a9
--- /dev/null
+++ b/ports/vtk/fix-find-odbc.patch
@@ -0,0 +1,11 @@
+--- a/CMake/FindODBC.cmake Mon Jun 26 15:29:04 2017
++++ b/CMake/FindODBC.cmake Wed Aug 16 12:58:11 2017
+@@ -30,7 +30,7 @@
+ )
+
+ FIND_LIBRARY( ODBC_LIBRARY
+- NAMES odbc iodbc unixodbc
++ NAMES odbc iodbc unixodbc odbc32
+ PATHS
+ /usr/lib
+ /usr/lib/odbc
diff --git a/ports/vtk/netcdf-use-hdf5-definitions.patch b/ports/vtk/netcdf-use-hdf5-definitions.patch
deleted file mode 100644
index a6a3528ca..000000000
--- a/ports/vtk/netcdf-use-hdf5-definitions.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/ThirdParty/netcdf/vtknetcdf/CMakeLists.txt Mon Nov 14 17:59:47 2016
-+++ b/ThirdParty/netcdf/vtknetcdf/CMakeLists.txt Thu Jan 05 21:15:28 2017
-@@ -330,6 +330,7 @@
- ${netcdf_dispatch_SOURCES}
- ${netcdf_liblib_SOURCES})
- target_link_libraries(vtkNetCDF ${vtkhdf5_LIBRARIES})
-+target_compile_definitions(vtkNetCDF PRIVATE ${vtkhdf5_DEFINITIONS})
-
- if (UNIX)
- # link against the math library.
diff --git a/ports/vtk/portfile.cmake b/ports/vtk/portfile.cmake
index 611023a61..be344f8bf 100644
--- a/ports/vtk/portfile.cmake
+++ b/ports/vtk/portfile.cmake
@@ -1,90 +1,350 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/VTK-7.1.0)
-vcpkg_download_distfile(ARCHIVE
- URLS "http://www.vtk.org/files/release/7.1/VTK-7.1.0.tar.gz"
- FILENAME "VTK-7.1.0.tar.gz"
- SHA512 83f0c9291cd2bc517a4bc449ad28a1d77e7ece169e846c7beab0b1140b9ef4b7bad30e3fa6e5a59826a707df78e2e336e07fa8bd30cf7498096ee80feef16534
+
+set(VTK_SHORT_VERSION "8.1")
+set(VTK_LONG_VERSION "${VTK_SHORT_VERSION}.0")
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO "Kitware/VTK"
+ REF "v${VTK_LONG_VERSION}"
+ SHA512 09e110cba4ad9a6684e9b2af0cbb5b9053e3596ccb62aab96cd9e71aa4a96c809d96e13153ff44c28ad83015a61ba5195f7d34056707b62654c1bc057f9b9edf
+ HEAD_REF "master"
)
-vcpkg_extract_source_archive(${ARCHIVE})
+# =============================================================================
+# Options:
+
+if ("qt" IN_LIST FEATURES)
+ set(VTK_WITH_QT ON )
+else()
+ set(VTK_WITH_QT OFF )
+endif()
+
+if ("mpi" IN_LIST FEATURES)
+ set(VTK_WITH_MPI ON )
+else()
+ set(VTK_WITH_MPI OFF )
+endif()
+
+if ("python" IN_LIST FEATURES)
+ set(VTK_WITH_PYTHON ON)
+else()
+ set(VTK_WITH_PYTHON OFF)
+endif()
+
+if("openvr" IN_LIST FEATURES)
+ set(VTK_WITH_OPENVR ON)
+else()
+ set(VTK_WITH_OPENVR OFF)
+endif()
+
+if("libharu" IN_LIST FEATURES)
+ set(VTK_WITH_LIBHARU ON)
+else()
+ set(VTK_WITH_LIBHARU OFF)
+endif()
+
+set(VTK_WITH_ALL_MODULES OFF) # IMPORTANT: if ON make sure `qt5`, `mpi`, `python3`, `ffmpeg`, `gdal`, `fontconfig`,
+ # `libmysql` and `atlmfc` are listed as dependency in the CONTROL file
+# =============================================================================
+# Apply patches to the source code
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/transfer-3rd-party-module-definitions.patch
- ${CMAKE_CURRENT_LIST_DIR}/transfer-hdf5-definitions.patch
- ${CMAKE_CURRENT_LIST_DIR}/netcdf-use-hdf5-definitions.patch
+ # Disable ssize_t because this can conflict with ssize_t that is defined on windows.
${CMAKE_CURRENT_LIST_DIR}/dont-define-ssize_t.patch
+
+ # We force CMake to use it's own version of the FindHDF5 module since newer versions
+ # shipped with CMake behave differently. E.g. the one shipped with CMake 3.9 always
+ # only finds the release libraries, but not the debug libraries.
+ # The file shipped with CMake allows us to set the libraries explicitly as it is done below.
+ # Maybe in the future we can disable the patch and use the new version shipped with CMake
+ # together with the hdf5-config.cmake that is written by HDF5 itself, but currently VTK
+ # disables taking the config into account explicitly.
+ ${CMAKE_CURRENT_LIST_DIR}/use-fixed-find-hdf5.patch
+
+ # We disable a workaround in the VTK CMake scripts that can lead to the fact that a dependency
+ # will link to both, the debug and the release library.
+ ${CMAKE_CURRENT_LIST_DIR}/disable-workaround-findhdf5.patch
+
+ ${CMAKE_CURRENT_LIST_DIR}/fix-find-libproj4.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-find-libharu.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-find-mysql.patch
+ ${CMAKE_CURRENT_LIST_DIR}/fix-find-odbc.patch
)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- # HACK: The FindHDF5.cmake script does not seem to detect the HDF5_DEFINITIONS correctly
- # if HDF5 has been built without the tools (which is the case in the HDF5 port),
- # so we set the BUILT_AS_DYNAMIC_LIB=1 flag here explicitly because we know HDF5
- # has been build as dynamic library in the current case.
- list(APPEND ADDITIONAL_OPTIONS "-DHDF5_DEFINITIONS=-DH5_BUILT_AS_DYNAMIC_LIB=1")
+# Remove the FindGLEW.cmake and FindPythonLibs.cmake that are distributed with VTK,
+# since they do not detect the debug libraries correctly.
+# The default files distributed with CMake (>= 3.9) should be superior by all means.
+# For GDAL, the one distributed with CMake does not detect the debug libraries correctly,
+# so we provide an own one.
+file(REMOVE ${SOURCE_PATH}/CMake/FindGLEW.cmake)
+file(REMOVE ${SOURCE_PATH}/CMake/FindPythonLibs.cmake)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindGDAL.cmake DESTINATION ${SOURCE_PATH}/CMake)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindHDF5.cmake DESTINATION ${SOURCE_PATH}/CMake/NewCMake)
+
+# =============================================================================
+# Collect CMake options for optional components
+if(VTK_WITH_QT)
+ list(APPEND ADDITIONAL_OPTIONS
+ -DVTK_Group_Qt=ON
+ -DVTK_QT_VERSION=5
+ -DVTK_BUILD_QT_DESIGNER_PLUGIN=OFF
+ )
+endif()
+
+if(VTK_WITH_MPI)
+ list(APPEND ADDITIONAL_OPTIONS
+ -DVTK_Group_MPI=ON
+ )
+endif()
+
+if(VTK_WITH_PYTHON)
+ list(APPEND ADDITIONAL_OPTIONS
+ -DVTK_WRAP_PYTHON=ON
+ -DVTK_PYTHON_VERSION=3
+ )
endif()
+if(VTK_WITH_OPENVR)
+ list(APPEND ADDITIONAL_OPTIONS
+ -DModule_vtkRenderingOpenVR=ON
+ )
+endif()
+
+if(VTK_WITH_LIBHARU)
+ list(APPEND ADDITIONAL_OPTIONS
+ -DVTK_USE_SYSTEM_LIBHARU=ON
+ )
+endif()
+
+if(VTK_WITH_ALL_MODULES)
+ list(APPEND ADDITIONAL_OPTIONS
+ -DVTK_BUILD_ALL_MODULES=ON
+ -DVTK_USE_TK=OFF # TCL/TK currently not included in vcpkg
+ # -DVTK_USE_SYSTEM_AUTOBAHN=ON
+ # -DVTK_USE_SYSTEM_SIX=ON
+ # -DVTK_USE_SYSTEM_MPI4PY=ON
+ # -DVTK_USE_SYSTEM_CONSTANTLY=ON
+ # -DVTK_USE_SYSTEM_INCREMENTAL=ON
+ # -DVTK_USE_SYSTEM_TWISTED=ON
+ # -DVTK_USE_SYSTEM_XDMF2=ON
+ # -DVTK_USE_SYSTEM_XDMF3=ON
+ # -DVTK_USE_SYSTEM_ZFP=ON
+ # -DVTK_USE_SYSTEM_ZOPE=ON
+ )
+endif()
+
+# =============================================================================
+# Configure & Install
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
+ -DVTK_Group_Imaging=ON
+ -DVTK_Group_Views=ON
-DBUILD_TESTING=OFF
-DBUILD_EXAMPLES=OFF
- -DVTK_Group_MPI=ON
- -DVTK_Group_Qt=ON
- -DVTK_QT_VERSION=5
- -DVTK_BUILD_QT_DESIGNER_PLUGIN=OFF
- # -DVTK_WRAP_PYTHON=ON
- # -DVTK_PYTHON_VERSION=3
-DVTK_USE_SYSTEM_EXPAT=ON
-DVTK_USE_SYSTEM_FREETYPE=ON
# -DVTK_USE_SYSTEM_GL2PS=ON
+ -DVTK_USE_SYSTEM_JPEG=ON
-DVTK_USE_SYSTEM_GLEW=ON
-DVTK_USE_SYSTEM_HDF5=ON
-DVTK_USE_SYSTEM_JSONCPP=ON
- # -DVTK_USE_SYSTEM_LIBPROJ4=ON
- # -DVTK_USE_SYSTEM_LIBRARIES=ON
+ -DVTK_USE_SYSTEM_LIBPROJ4=ON
-DVTK_USE_SYSTEM_LIBXML2=ON
+ -DVTK_USE_SYSTEM_LZ4=ON
# -DVTK_USE_SYSTEM_NETCDF=ON
- # -DVTK_USE_SYSTEM_OGGTHEORA=ON
+ # -DVTK_USE_SYSTEM_NETCDFCPP=ON
+ -DVTK_USE_SYSTEM_OGGTHEORA=ON
-DVTK_USE_SYSTEM_PNG=ON
-DVTK_USE_SYSTEM_TIFF=ON
-DVTK_USE_SYSTEM_ZLIB=ON
+ -DVTK_INSTALL_INCLUDE_DIR=include
-DVTK_INSTALL_DATA_DIR=share/vtk/data
-DVTK_INSTALL_DOC_DIR=share/vtk/doc
-DVTK_INSTALL_PACKAGE_DIR=share/vtk
-DVTK_FORBID_DOWNLOADS=ON
${ADDITIONAL_OPTIONS}
- OPTIONS_RELEASE
- -DHDF5_C_LIBRARY=${CURRENT_INSTALLED_DIR}/lib/hdf5.lib
- -DHDF5_C_HL_LIBRARY=${CURRENT_INSTALLED_DIR}/lib/hdf5_hl.lib
- OPTIONS_DEBUG
- -DHDF5_C_LIBRARY=${CURRENT_INSTALLED_DIR}/debug/lib/hdf5_D.lib
- -DHDF5_C_HL_LIBRARY=${CURRENT_INSTALLED_DIR}/debug/lib/hdf5_hl_D.lib
)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
-file(READ ${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets-release.cmake VTK_TARGETS_RELEASE_MODULE)
-string(REPLACE "list\(APPEND _IMPORT_CHECK_FILES_FOR_vtkEncodeString" "#list(APPEND _IMPORT_CHECK_FILES_FOR_vtkEncodeString" VTK_TARGETS_RELEASE_MODULE "${VTK_TARGETS_RELEASE_MODULE}")
-string(REPLACE "list\(APPEND _IMPORT_CHECK_FILES_FOR_vtkHashSource" "#list(APPEND _IMPORT_CHECK_FILES_FOR_vtkHashSource" VTK_TARGETS_RELEASE_MODULE "${VTK_TARGETS_RELEASE_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets-release.cmake "${VTK_TARGETS_RELEASE_MODULE}")
+# =============================================================================
+# Fixup target files
+vcpkg_fixup_cmake_targets()
-file(READ ${CURRENT_PACKAGES_DIR}/debug/share/vtk/VTKTargets-debug.cmake VTK_TARGETS_DEBUG_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" VTK_TARGETS_DEBUG_MODULE "${VTK_TARGETS_DEBUG_MODULE}")
-string(REPLACE "list\(APPEND _IMPORT_CHECK_FILES_FOR_vtkEncodeString" "#list(APPEND _IMPORT_CHECK_FILES_FOR_vtkEncodeString" VTK_TARGETS_DEBUG_MODULE "${VTK_TARGETS_DEBUG_MODULE}")
-string(REPLACE "list\(APPEND _IMPORT_CHECK_FILES_FOR_vtkHashSource" "#list(APPEND _IMPORT_CHECK_FILES_FOR_vtkHashSource" VTK_TARGETS_DEBUG_MODULE "${VTK_TARGETS_DEBUG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets-debug.cmake "${VTK_TARGETS_DEBUG_MODULE}")
+# For some reason the references to the XDMF libraries in the target files do not end up
+# correctly, so we fix them here.
+if(VTK_WITH_ALL_MODULES)
+ file(READ ${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets-release.cmake VTK_TARGETS_RELEASE_CONTENT)
+ string(REPLACE "lib/../XdmfCore.lib" "lib/XdmfCore.lib" VTK_TARGETS_RELEASE_CONTENT "${VTK_TARGETS_RELEASE_CONTENT}")
+ string(REPLACE "bin/../XdmfCore.dll" "bin/XdmfCore.dll" VTK_TARGETS_RELEASE_CONTENT "${VTK_TARGETS_RELEASE_CONTENT}")
+ string(REPLACE "lib/../vtkxdmf3.lib" "lib/vtkxdmf3.lib" VTK_TARGETS_RELEASE_CONTENT "${VTK_TARGETS_RELEASE_CONTENT}")
+ string(REPLACE "bin/../vtkxdmf3.dll" "bin/vtkxdmf3.dll" VTK_TARGETS_RELEASE_CONTENT "${VTK_TARGETS_RELEASE_CONTENT}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets-release.cmake "${VTK_TARGETS_RELEASE_CONTENT}")
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+ file(READ ${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets-debug.cmake VTK_TARGETS_DEBUG_CONTENT)
+ string(REPLACE "lib/../XdmfCore.lib" "lib/XdmfCore.lib" VTK_TARGETS_DEBUG_CONTENT "${VTK_TARGETS_DEBUG_CONTENT}")
+ string(REPLACE "bin/../XdmfCore.dll" "bin/XdmfCore.dll" VTK_TARGETS_DEBUG_CONTENT "${VTK_TARGETS_DEBUG_CONTENT}")
+ string(REPLACE "lib/../vtkxdmf3.lib" "lib/vtkxdmf3.lib" VTK_TARGETS_DEBUG_CONTENT "${VTK_TARGETS_DEBUG_CONTENT}")
+ string(REPLACE "bin/../vtkxdmf3.dll" "bin/vtkxdmf3.dll" VTK_TARGETS_DEBUG_CONTENT "${VTK_TARGETS_DEBUG_CONTENT}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets-debug.cmake "${VTK_TARGETS_DEBUG_CONTENT}")
+endif()
+
+# For VTK `vcpkg_fixup_cmake_targets` is not enough:
+# Files for system third party dependencies are written to modules that
+# are located in the paths `share/vtk/Modules` and `debug/share/vtk/Modules`.
+# In the release folder, only the release libraries are referenced (e.g. "C:/vcpkg/installed/x64-windows/lib/zlib.lib").
+# But in the debug folder both libraries (e.g. "optimized;C:/vcpkg/installed/x64-windows/lib/zlib.lib;debug;C:/vcpkg/installed/x64-windows/debug/lib/zlibd.lib")
+# or only the debug library (e.g. "C:/vcpkg/installed/x64-windows/debug/lib/hdf5_D.lib") is referenced.
+# This is because VCPKG appends only the release library prefix (.../x64-windows/lib)
+# when configuring release but both (.../x64-windows/lib and .../x64-windows/debug/lib)
+# when configuring debug.
+# Now if we delete the debug/share/Modules folder and just leave share/Modules, a library
+# that links to VTK will always use the release third party dependencies, even if
+# debug VTK is used.
+#
+# The following code merges the libraries from both release and debug:
+
+include(${CMAKE_CURRENT_LIST_DIR}/SplitLibraryConfigurations.cmake)
+
+function(_vtk_combine_third_party_libraries MODULE_NAME)
+ set(MODULE_LIBRARIES_REGEX "set\\(${MODULE_NAME}_LIBRARIES \"([^\"]*)\"\\)")
+
+ # Read release libraries
+ file(READ "${CURRENT_PACKAGES_DIR}/share/vtk/Modules/${MODULE_NAME}.cmake" RELEASE_MODULE_CONTENT)
+ if("${RELEASE_MODULE_CONTENT}" MATCHES "${MODULE_LIBRARIES_REGEX}")
+ set(RELEASE_LIBRARY_LIST "${CMAKE_MATCH_1}")
+ else()
+ message(FATAL_ERROR "Could not extract module libraries for ${MODULE_NAME}")
+ endif()
-file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/vtkEncodeString-7.1.exe)
-file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/vtkHashSource-7.1.exe)
-file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vtkEncodeString-7.1.exe)
-file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vtkHashSource-7.1.exe)
+ # Read debug libraries
+ file(READ "${CURRENT_PACKAGES_DIR}/debug/share/vtk/Modules/${MODULE_NAME}.cmake" DEBUG_MODULE_CONTENT)
+ if("${DEBUG_MODULE_CONTENT}" MATCHES "${MODULE_LIBRARIES_REGEX}")
+ set(DEBUG_LIBRARY_LIST "${CMAKE_MATCH_1}")
+ else()
+ message(FATAL_ERROR "Could not extract module libraries for ${MODULE_NAME}")
+ endif()
+
+ split_library_configurations("${RELEASE_LIBRARY_LIST}" OPTIMIZED_RELEASE_LIBRARIES DEBUG_RELEASE_LIBRARIES GENERAL_RELEASE_LIBRARIES)
+ split_library_configurations("${DEBUG_LIBRARY_LIST}" OPTIMIZED_DEBUG_LIBRARIES DEBUG_DEBUG_LIBRARIES GENERAL_DEBUG_LIBRARIES)
+
+ # Combine libraries and wrap them in generator expressions
+ foreach(LIBRARY ${OPTIMIZED_RELEASE_LIBRARIES} ${GENERAL_RELEASE_LIBRARIES})
+ list(APPEND LIBRARY_LIST "$<$<NOT:$<CONFIG:Debug>>:${LIBRARY}>")
+ endforeach()
+ foreach(LIBRARY ${DEBUG_DEBUG_LIBRARIES} ${GENERAL_DEBUG_LIBRARIES})
+ list(APPEND LIBRARY_LIST "$<$<CONFIG:Debug>:${LIBRARY}>")
+ endforeach()
+
+ # Write combined libraries back
+ string(REGEX REPLACE "${MODULE_LIBRARIES_REGEX}"
+ "set(${MODULE_NAME}_LIBRARIES \"${LIBRARY_LIST}\")"
+ RELEASE_MODULE_CONTENT
+ "${RELEASE_MODULE_CONTENT}"
+ )
+ file(WRITE "${CURRENT_PACKAGES_DIR}/share/vtk/Modules/${MODULE_NAME}.cmake" "${RELEASE_MODULE_CONTENT}")
+endfunction()
+
+# IMPORTANT: Please make sure to extend this list whenever a new library is marked `USE_SYSTEM` in the configure step above!
+set(SYSTEM_THIRD_PARTY_MODULES
+ vtkexpat
+ vtkfreetype
+ vtkjpeg
+ vtkglew
+ vtkhdf5
+ vtkjsoncpp
+ vtklibproj4
+ vtklibxml2
+ vtklz4
+ vtkoggtheora
+ vtkpng
+ vtktiff
+ vtkzlib
+ # vtkgl2ps
+ vtklibharu
+)
+
+if(VTK_WITH_PYTHON OR VTK_WITH_ALL_MODULES)
+ list(APPEND SYSTEM_THIRD_PARTY_MODULES
+ vtkPython
+ )
+endif()
+
+if(VTK_WITH_ALL_MODULES)
+ list(APPEND SYSTEM_THIRD_PARTY_MODULES
+ AutobahnPython
+ )
+endif()
+
+foreach(MODULE IN LISTS SYSTEM_THIRD_PARTY_MODULES)
+ _vtk_combine_third_party_libraries("${MODULE}")
+endforeach()
+
+# Remove all explicit references to vcpkg system libraries in the general VTKTargets.cmake file
+# since these references always point to the release libraries, even in the debug case.
+# The dependencies should be handled by the explicit modules we fixed above, so removing
+# them here shouldn't cause any problems.
+file(READ "${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets.cmake" VTK_TARGETS_CONTENT)
+string(REGEX REPLACE "${CURRENT_INSTALLED_DIR}/lib/[^\\.]*\\.lib" "" VTK_TARGETS_CONTENT "${VTK_TARGETS_CONTENT}")
+file(WRITE "${CURRENT_PACKAGES_DIR}/share/vtk/VTKTargets.cmake" "${VTK_TARGETS_CONTENT}")
+
+# =============================================================================
+# Move executable to tools directory and clean-up other directories
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/vtk)
+
+function(_vtk_move_tool TOOL_NAME)
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/bin/${TOOL_NAME}.exe)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/${TOOL_NAME}.exe ${CURRENT_PACKAGES_DIR}/tools/vtk/${TOOL_NAME}.exe)
+ endif()
+
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/${TOOL_NAME}.exe)
+endfunction()
+
+set(VTK_TOOLS
+ vtkEncodeString-${VTK_SHORT_VERSION}
+ vtkHashSource-${VTK_SHORT_VERSION}
+ vtkWrapTclInit-${VTK_SHORT_VERSION}
+ vtkWrapTcl-${VTK_SHORT_VERSION}
+ vtkWrapPythonInit-${VTK_SHORT_VERSION}
+ vtkWrapPython-${VTK_SHORT_VERSION}
+ vtkWrapJava-${VTK_SHORT_VERSION}
+ vtkWrapHierarchy-${VTK_SHORT_VERSION}
+ vtkParseJava-${VTK_SHORT_VERSION}
+ vtkParseOGLExt-${VTK_SHORT_VERSION}
+ vtkpython
+ pvtkpython
+)
+
+file(READ "${CURRENT_PACKAGES_DIR}/share/vtk/Modules/vtkhdf5.cmake" _contents)
+string(REPLACE "vtk::hdf5::hdf5_hl" "" _contents "${_contents}")
+string(REPLACE "vtk::hdf5::hdf5" "" _contents "${_contents}")
+file(WRITE "${CURRENT_PACKAGES_DIR}/share/vtk/Modules/vtkhdf5.cmake" "${_contents}")
+
+foreach(TOOL_NAME IN LISTS VTK_TOOLS)
+ _vtk_move_tool("${TOOL_NAME}")
+endforeach()
+
+# =============================================================================
+# Remove other files and directories that are not valid for vcpkg
+if(VTK_WITH_ALL_MODULES)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/XdmfConfig.cmake)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/XdmfConfig.cmake)
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+# =============================================================================
# Handle copyright
file(COPY ${SOURCE_PATH}/Copyright.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/vtk)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/vtk/Copyright.txt ${CURRENT_PACKAGES_DIR}/share/vtk/copyright)
diff --git a/ports/vtk/transfer-3rd-party-module-definitions.patch b/ports/vtk/transfer-3rd-party-module-definitions.patch
deleted file mode 100644
index 7b402892f..000000000
--- a/ports/vtk/transfer-3rd-party-module-definitions.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/CMake/vtkModuleMacros.cmake Mon Nov 14 17:59:47 2016
-+++ b/CMake/vtkModuleMacros.cmake Thu Jan 05 21:36:06 2017
-@@ -665,6 +665,9 @@
- if(${dep}_LIBRARY_DIRS)
- link_directories(${${dep}_LIBRARY_DIRS})
- endif()
-+ if(${dep}_DEFINITIONS)
-+ target_compile_definitions(${vtk-module} PRIVATE ${${dep}_DEFINITIONS})
-+ endif()
- vtk_module_link_libraries(${vtk-module} LINK_PRIVATE ${${dep}_LIBRARIES})
- if(_help_vs7 AND ${dep}_LIBRARIES)
- add_dependencies(${vtk-module} ${${dep}_LIBRARIES})
-@@ -870,6 +873,13 @@
- set(vtk${_lower}_LIBRARIES "${${_pkg}_LIBRARIES}")
- else()
- set(vtk${_lower}_LIBRARIES "${${_upper}_LIBRARIES}")
-+ endif()
-+ if(${_pkg}_DEFINITIONS)
-+ set(vtk${_lower}_DEFINITIONS ${${_pkg}_DEFINITIONS})
-+ elseif(${_upper}_DEFINITIONS)
-+ set(vtk${_lower}_DEFINITIONS ${${_upper}_DEFINITIONS})
-+ else()
-+ set(vtk${_lower}_DEFINITIONS ${${_upper}_DEFINITIONS})
- endif()
-
- #a workaround for bad FindHDF5 behavior in which deb or opt can
diff --git a/ports/vtk/transfer-hdf5-definitions.patch b/ports/vtk/transfer-hdf5-definitions.patch
deleted file mode 100644
index 6184fdf7a..000000000
--- a/ports/vtk/transfer-hdf5-definitions.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/ThirdParty/hdf5/module.cmake Mon Nov 14 17:59:47 2016
-+++ b/ThirdParty/hdf5/module.cmake Thu Jan 05 21:23:20 2017
-@@ -5,6 +5,7 @@
- endif()
- if(VTK_USE_SYSTEM_HDF5)
- set(vtkhdf5_LIBRARIES ${HDF5_LIBRARIES} ${HDF5_HL_LIBRARIES})
-+ set(vtkhdf5_DEFINITIONS ${HDF5_DEFINITIONS})
- endif()
- vtk_module(vtkhdf5
- EXCLUDE_FROM_WRAPPING
diff --git a/ports/vtk/use-fixed-find-hdf5.patch b/ports/vtk/use-fixed-find-hdf5.patch
new file mode 100644
index 000000000..762a9ab07
--- /dev/null
+++ b/ports/vtk/use-fixed-find-hdf5.patch
@@ -0,0 +1,20 @@
+diff --git a/CMake/FindHDF5.cmake b/CMake/FindHDF5.cmake
+index 6d558e39b1..9511e9a1ad 100644
+--- a/CMake/FindHDF5.cmake
++++ b/CMake/FindHDF5.cmake
+@@ -3,11 +3,11 @@
+ # (BUG #0014363).
+
+ # include the default FindHDF5.cmake.
+-if(CMAKE_VERSION VERSION_LESS 3.6.1)
++#if(CMAKE_VERSION VERSION_LESS 3.6.1)
+ include(${CMAKE_CURRENT_LIST_DIR}/NewCMake/FindHDF5.cmake)
+-else()
+- include(${CMAKE_ROOT}/Modules/FindHDF5.cmake)
+-endif()
++#else()
++# include(${CMAKE_ROOT}/Modules/FindHDF5.cmake)
++#endif()
+
+ if(HDF5_FOUND AND (HDF5_IS_PARALLEL OR HDF5_ENABLE_PARALLEL))
+ include(vtkMPI)
diff --git a/ports/vxl/CONTROL b/ports/vxl/CONTROL
new file mode 100644
index 000000000..52d725f45
--- /dev/null
+++ b/ports/vxl/CONTROL
@@ -0,0 +1,4 @@
+Source: vxl
+Version: 20180414-7a130cf-1
+Build-Depends: zlib, tiff, expat, libpng, bzip2, libjpeg-turbo, shapelib, libgeotiff
+Description: A multi-platform collection of C++ software libraries for Computer Vision and Image Understanding.
diff --git a/ports/vxl/portfile.cmake b/ports/vxl/portfile.cmake
new file mode 100644
index 000000000..7e27591e5
--- /dev/null
+++ b/ports/vxl/portfile.cmake
@@ -0,0 +1,37 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO vxl/vxl
+ REF 7a130cf05e907a6500e3e717297082c46e77f524
+ SHA512 b9f7e48e37b44469031c6de1bf2a3d0aa0ecf4d3c2f4dd0d1a84c273ca8a778b48f3caf7ec6ef0f2dea1dc534ebfdb6b2cde47a56d81aa4f0685114c0bda157c
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DVXL_USING_NATIVE_ZLIB=ON
+ -DVXL_USING_NATIVE_BZLIB2=ON
+ -DVXL_USING_NATIVE_JPEG=ON
+ -DVXL_USING_NATIVE_TIFF=ON
+ -DVXL_USING_NATIVE_EXPAT=ON
+ -DVXL_USING_NATIVE_PNG=ON
+ -DVXL_USING_NATIVE_SHAPELIB=ON
+ -DVXL_USING_NATIVE_GEOTIFF=ON
+ -DVXL_FORCE_V3P_OPENJPEG2=ON
+ -DVXL_FORCE_V3P_J2K=ON
+ -DBUILD_TESTING=OFF
+ -DBUILD_EXAMPLES=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/vxl/cmake)
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(INSTALL ${SOURCE_PATH}/core/vxl_copyright.h DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file
diff --git a/ports/websocketpp/CONTROL b/ports/websocketpp/CONTROL
index f812dc565..991e6635c 100644
--- a/ports/websocketpp/CONTROL
+++ b/ports/websocketpp/CONTROL
@@ -1,4 +1,4 @@
Source: websocketpp
-Version: 0.7.0
-Build-Depends: zlib, openssl, boost
+Version: 0.7.0-1
+Build-Depends: zlib, openssl, boost-asio
Description: Library that implements RFC6455 The WebSocket Protocol \ No newline at end of file
diff --git a/ports/websocketpp/openssl_110.patch b/ports/websocketpp/openssl_110.patch
new file mode 100644
index 000000000..93f4302e0
--- /dev/null
+++ b/ports/websocketpp/openssl_110.patch
@@ -0,0 +1,19 @@
+diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp
+index 7b32db8..37173b7 100644
+--- a/websocketpp/transport/asio/security/tls.hpp
++++ b/websocketpp/transport/asio/security/tls.hpp
+@@ -355,7 +355,13 @@ protected:
+ template <typename ErrorCodeType>
+ lib::error_code translate_ec(ErrorCodeType ec) {
+ if (ec.category() == lib::asio::error::get_ssl_category()) {
+- if (ERR_GET_REASON(ec.value()) == SSL_R_SHORT_READ) {
++ if (
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++ ERR_GET_REASON(ec.value()) == SSL_R_SHORT_READ
++#else
++ false
++#endif
++ ) {
+ return make_error_code(transport::error::tls_short_read);
+ } else {
+ // We know it is a TLS related error, but otherwise don't know
diff --git a/ports/websocketpp/portfile.cmake b/ports/websocketpp/portfile.cmake
index 98a4d52e6..71711e8c5 100644
--- a/ports/websocketpp/portfile.cmake
+++ b/ports/websocketpp/portfile.cmake
@@ -1,15 +1,21 @@
#header-only library
include(vcpkg_common_functions)
-set(VERSION "0.7.0")
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/websocketpp-${VERSION})
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/zaphoyd/websocketpp/archive/${VERSION}.zip"
- FILENAME "websocketpp-${VERSION}.zip"
- SHA512 0cfbc5ed7034758b3666b5154854287441ebeef8e18c4e5f39b62559d4f0e9dda63d79021243c447f57b9855209e1813aeb1c6c475fc98aa71ff03933fc7ac0c
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO zaphoyd/websocketpp
+ REF 0.7.0
+ SHA512 91a86d4f5120db3f474169bb146f865f82167b1e9eedabec8793b31005e4ce3d22083283bc1b9f9e37fa0da835addcb2b68260a27c753852c06b3b1bb2f3c12e
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/openssl_110.patch
)
-vcpkg_extract_source_archive(${ARCHIVE})
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/websocketpp)
# Put the license file where vcpkg expects it
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/websocketpp/)
@@ -19,6 +25,6 @@ file(RENAME ${CURRENT_PACKAGES_DIR}/share/websocketpp/COPYING ${CURRENT_PACKAGES
file(COPY "${SOURCE_PATH}/websocketpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "*.hpp")
set(INSTALL_INCLUDE_DIR "\${CMAKE_CURRENT_LIST_DIR}/../../include")
-set(WEBSOCKETPP_VERSION ${VERSION})
-configure_file (${SOURCE_PATH}/websocketpp-config.cmake.in "${CURRENT_PACKAGES_DIR}/share/websocketpp/websocketpp-config.cmake" @ONLY)
-configure_file (${SOURCE_PATH}/websocketpp-configVersion.cmake.in "${CURRENT_PACKAGES_DIR}/share/websocketpp/websocketpp-configVersion.cmake" @ONLY) \ No newline at end of file
+set(WEBSOCKETPP_VERSION 0.7.0)
+configure_file(${SOURCE_PATH}/websocketpp-config.cmake.in "${CURRENT_PACKAGES_DIR}/share/websocketpp/websocketpp-config.cmake" @ONLY)
+configure_file(${SOURCE_PATH}/websocketpp-configVersion.cmake.in "${CURRENT_PACKAGES_DIR}/share/websocketpp/websocketpp-configVersion.cmake" @ONLY)
diff --git a/ports/wildmidi/0001-add-install-target.patch b/ports/wildmidi/0001-add-install-target.patch
new file mode 100644
index 000000000..8270cd9ea
--- /dev/null
+++ b/ports/wildmidi/0001-add-install-target.patch
@@ -0,0 +1,30 @@
+--- a/src/CMakeLists.txt 2017-10-02 14:06:57.163881000 +0000
++++ b/src/CMakeLists.txt 2017-10-02 14:08:52.815977600 +0000
+@@ -313,6 +313,27 @@
+ ENDIF (WIN32 AND CMAKE_COMPILER_IS_MINGW)
+
+ IF (WIN32 AND MSVC)
++ # install our libraries
++ IF (WANT_STATIC)
++ INSTALL(TARGETS libwildmidi_static DESTINATION ${WILDMIDILIB_INSTALLDIR})
++ IF (WANT_PLAYERSTATIC)
++ INSTALL(TARGETS wildmidi-static DESTINATION bin)
++ ENDIF ()
++ ENDIF (WANT_STATIC)
++
++ IF (BUILD_SHARED_LIBS)
++ INSTALL(TARGETS libwildmidi_dynamic
++ ARCHIVE DESTINATION ${WILDMIDILIB_INSTALLDIR}
++ LIBRARY DESTINATION ${WILDMIDILIB_INSTALLDIR}
++ RUNTIME DESTINATION ${WILDMIDIDLL_INSTALLDIR}
++ )
++ IF (WANT_PLAYER)
++ INSTALL(TARGETS wildmidi DESTINATION bin)
++ ENDIF ()
++ ENDIF ()
++
++ INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/wildmidi_lib.h DESTINATION include)
++
+ IF (WANT_MP_BUILD)
+ SET(MT_BUILD "/MP")
+ ENDIF ()
diff --git a/ports/wildmidi/0002-use-ansi.patch b/ports/wildmidi/0002-use-ansi.patch
new file mode 100644
index 000000000..68acb7b34
--- /dev/null
+++ b/ports/wildmidi/0002-use-ansi.patch
@@ -0,0 +1,22 @@
+diff --git a/src/file_io.c b/src/file_io.c
+index 9db9759..7110e8b 100644
+--- a/src/file_io.c
++++ b/src/file_io.c
+@@ -118,7 +118,7 @@ void *_WM_BufferFile(const char *filename, uint32_t *size) {
+ #elif defined(_WIN32)
+ int buffer_fd;
+ HANDLE h;
+- WIN32_FIND_DATA wfd;
++ WIN32_FIND_DATAA wfd;
+ #elif defined(__OS2__) || defined(__EMX__)
+ int buffer_fd;
+ HDIR h = HDIR_CREATE;
+@@ -186,7 +186,7 @@ void *_WM_BufferFile(const char *filename, uint32_t *size) {
+ }
+ *size = f.ff_fsize;
+ #elif defined(_WIN32)
+- if ((h = FindFirstFile(buffer_file, &wfd)) == INVALID_HANDLE_VALUE) {
++ if ((h = FindFirstFileA(buffer_file, &wfd)) == INVALID_HANDLE_VALUE) {
+ _WM_GLOBAL_ERROR(__FUNCTION__, __LINE__, WM_ERR_STAT, filename, ENOENT);
+ free(buffer_file);
+ return NULL;
diff --git a/ports/wildmidi/CONTROL b/ports/wildmidi/CONTROL
new file mode 100644
index 000000000..116333ec1
--- /dev/null
+++ b/ports/wildmidi/CONTROL
@@ -0,0 +1,3 @@
+Source: wildmidi
+Version: 0.4.1
+Description: MIDI software synthesizer library.
diff --git a/ports/wildmidi/portfile.cmake b/ports/wildmidi/portfile.cmake
new file mode 100644
index 000000000..d82895de4
--- /dev/null
+++ b/ports/wildmidi/portfile.cmake
@@ -0,0 +1,51 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/wildmidi-wildmidi-0.4.1)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/Mindwerks/wildmidi/archive/wildmidi-0.4.1.zip"
+ FILENAME "wildmidi-0.4.1.zip"
+ SHA512 ebfbb16b57c0d39f1402f91df4dd205d80f5632f6afbe5fa99af6f06279582f0676bb247cd64ec472cdf272f6a1a2917827ed98f9cc24166aa41f050b9f7d396
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001-add-install-target.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0002-use-ansi.patch
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(BUILD_SHARED_LIBS "ON")
+ set(WANT_STATIC "OFF")
+else()
+ set(BUILD_SHARED_LIBS "OFF")
+ set(WANT_STATIC "ON")
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DMSVC=ON
+ -DWANT_PLAYER=OFF
+ -DWANT_STATIC=${WANT_STATIC}
+ -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+# Rename library to get rid of _dynamic and _static suffix
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/wildmidi_dynamic.lib ${CURRENT_PACKAGES_DIR}/lib/wildmidi.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/wildmidi_dynamic.lib ${CURRENT_PACKAGES_DIR}/debug/lib/wildmidi.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/wildmidi_dynamic.dll ${CURRENT_PACKAGES_DIR}/bin/wildmidi.dll)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin/wildmidi_dynamic.dll ${CURRENT_PACKAGES_DIR}/debug/bin/wildmidi.dll)
+else()
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/wildmidi_static.lib ${CURRENT_PACKAGES_DIR}/lib/wildmidi.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/wildmidi_static.lib ${CURRENT_PACKAGES_DIR}/debug/lib/wildmidi.lib)
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/docs/license/LGPLv3.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/wildmidi RENAME copyright)
diff --git a/ports/wincrypt/CONTROL b/ports/wincrypt/CONTROL
new file mode 100644
index 000000000..c83865407
--- /dev/null
+++ b/ports/wincrypt/CONTROL
@@ -0,0 +1,3 @@
+Source: wincrypt
+Version: 0.0-1
+Description: Windows Cryptography. \ No newline at end of file
diff --git a/ports/wincrypt/portfile.cmake b/ports/wincrypt/portfile.cmake
new file mode 100644
index 000000000..5cb5a1b19
--- /dev/null
+++ b/ports/wincrypt/portfile.cmake
@@ -0,0 +1,30 @@
+include(vcpkg_common_functions)
+
+vcpkg_get_program_files_32_bit(PROGRAM_FILES_32_BIT)
+vcpkg_get_windows_sdk(WINDOWS_SDK)
+
+if (WINDOWS_SDK MATCHES "10.")
+ set(LIBFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\Crypt32.Lib")
+ set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Include\\${WINDOWS_SDK}\\um")
+elseif(WINDOWS_SDK MATCHES "8.")
+ set(LIBFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\Crypt32.Lib")
+ set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Include\\um")
+else()
+ message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}")
+endif()
+
+if (NOT EXISTS "${LIBFILEPATH}")
+ message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${LIBFILEPATH}")
+endif()
+
+file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+
+if (WINDOWS_SDK MATCHES "10.")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/wincrypt/copyright "See https://developer.microsoft.com/windows/downloads/windows-10-sdk for the Windows 10 SDK license")
+elseif(WINDOWS_SDK MATCHES "8.")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/wincrypt/copyright "See https://developer.microsoft.com/windows/downloads/windows-8-1-sdk for the Windows 8.1 SDK license")
+endif()
+
+# Allow empty include directory
+set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) \ No newline at end of file
diff --git a/ports/winpcap/CONTROL b/ports/winpcap/CONTROL
new file mode 100644
index 000000000..3a09db558
--- /dev/null
+++ b/ports/winpcap/CONTROL
@@ -0,0 +1,3 @@
+Source: winpcap
+Version: 4.1.3-1
+Description: WinPcap is the industry-standard tool for link-layer network access in Windows environments.
diff --git a/ports/winpcap/create_bin.bat b/ports/winpcap/create_bin.bat
new file mode 100644
index 000000000..aa9e7f106
--- /dev/null
+++ b/ports/winpcap/create_bin.bat
@@ -0,0 +1,20 @@
+@echo off
+
+IF "%2"=="" (set WPDPACKDESTDIR=.\WpdPack\) ELSE (set WPDPACKDESTDIR=%2)
+
+IF ""=="%1" (set WINPCAPSOURCEDIR=.\) ELSE (set WINPCAPSOURCEDIR=%1)
+
+echo Creating \Lib folder
+mkdir %WPDPACKDESTDIR% >nul 2>nul
+mkdir %WPDPACKDESTDIR%\Bin >nul 2>nul
+mkdir %WPDPACKDESTDIR%\Bin\x64 >nul 2>nul
+
+xcopy /v /Y "%WINPCAPSOURCEDIR%\wpcap\PRJ\Release No AirPcap\x86\wpcap.dll" %WPDPACKDESTDIR%\Bin\ >nul
+xcopy /v /Y "%WINPCAPSOURCEDIR%\wpcap\PRJ\Release No AirPcap\x64\wpcap.dll" %WPDPACKDESTDIR%\Bin\x64 >nul
+xcopy /v /Y %WINPCAPSOURCEDIR%\packetNtx\Dll\Project\Release\x86\packet.dll %WPDPACKDESTDIR%\Bin\ >nul
+xcopy /v /Y %WINPCAPSOURCEDIR%\packetNtx\Dll\Project\Release\x64\packet.dll %WPDPACKDESTDIR%\Bin\x64 >nul
+
+echo Folder \Bin created successfully
+
+set WPDPACKDESTDIR=
+set WINPCAPSOURCEDIR= \ No newline at end of file
diff --git a/ports/winpcap/create_lib.patch b/ports/winpcap/create_lib.patch
new file mode 100644
index 000000000..8e144fa3d
--- /dev/null
+++ b/ports/winpcap/create_lib.patch
@@ -0,0 +1,19 @@
+diff --git a/create_lib.bat b/create_lib.bat
+index dbe511c..d431b88 100644
+--- a/create_lib.bat
++++ b/create_lib.bat
+@@ -9,12 +9,10 @@ mkdir %WPDPACKDESTDIR% >nul 2>nul
+ mkdir %WPDPACKDESTDIR%\Lib >nul 2>nul
+ mkdir %WPDPACKDESTDIR%\Lib\x64 >nul 2>nul
+
+-xcopy /v /Y %WINPCAPSOURCEDIR%\wpcap\PRJ\Release\x86\wpcap.lib %WPDPACKDESTDIR%\Lib\ >nul
+-xcopy /v /Y %WINPCAPSOURCEDIR%\wpcap\PRJ\Release\x64\wpcap.lib %WPDPACKDESTDIR%\Lib\x64 >nul
++xcopy /v /Y "%WINPCAPSOURCEDIR%\wpcap\PRJ\Release No AirPcap\x86\wpcap.lib" %WPDPACKDESTDIR%\Lib\ >nul
++xcopy /v /Y "%WINPCAPSOURCEDIR%\wpcap\PRJ\Release No AirPcap\x64\wpcap.lib" %WPDPACKDESTDIR%\Lib\x64 >nul
+ xcopy /v /Y %WINPCAPSOURCEDIR%\packetNtx\Dll\Project\Release\x86\packet.lib %WPDPACKDESTDIR%\Lib\ >nul
+ xcopy /v /Y %WINPCAPSOURCEDIR%\packetNtx\Dll\Project\Release\x64\packet.lib %WPDPACKDESTDIR%\Lib\x64 >nul
+-xcopy /v /Y %WINPCAPSOURCEDIR%\packetNtx\Dll\Project\libpacket.a %WPDPACKDESTDIR%\Lib\ >nul
+-xcopy /v /Y %WINPCAPSOURCEDIR%\wpcap\LIB\libwpcap.a %WPDPACKDESTDIR%\Lib\ >nul
+
+ echo Folder \Lib created successfully
+
diff --git a/ports/winpcap/packetNtx.patch.in b/ports/winpcap/packetNtx.patch.in
new file mode 100644
index 000000000..c19056a0c
--- /dev/null
+++ b/ports/winpcap/packetNtx.patch.in
@@ -0,0 +1,725 @@
+diff --git a/packetNtx/Dll/Project/Packet.dsp b/packetNtx/Dll/Project/Packet.dsp
+index 6e69440..fc520ce 100644
+--- a/packetNtx/Dll/Project/Packet.dsp
++++ b/packetNtx/Dll/Project/Packet.dsp
+@@ -55,8 +55,8 @@ RSC=rc.exe
+ # PROP Intermediate_Dir "Release"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_WANPACKET_API" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -87,8 +87,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "Debug"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_WANPACKET_API" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+@@ -120,8 +120,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "NT4_Debug"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /D "WIN32" /D "_WINDOWS" /YX /FD /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /D "WIN32" /D "_WINDOWS" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "_DEBUG" /D "_WINNT4" /mktyplib203 /o "NUL" /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+@@ -154,8 +154,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "NT4_Release"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "NDEBUG" /D "_WINNT4" /mktyplib203 /o "NUL" /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -187,8 +187,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "Debug_LOG_TO_FILE"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../dag/include" /I "../../../dag/drv/windows" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /YX /FD /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /FR /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../dag/include" /I "../../../dag/drv/windows" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /FR /YX /FD /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+@@ -221,8 +221,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "Release_LOG_TO_FILE"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../common" /I "../../../dag/include" /I "../../../dag/drv/windows" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /YX /FD /c
+-# ADD CPP /nologo /MT /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /FR /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../common" /I "../../../dag/include" /I "../../../dag/drv/windows" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /FR /YX /FD /c
+ # SUBTRACT CPP /u
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+@@ -255,8 +255,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "NT4_Debug_LOG_TO_FILE"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /D "_DEBUG_TO_FILE" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /D "_DEBUG_TO_FILE" /YX /FD /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "_DEBUG" /D "_WINNT4" /mktyplib203 /o "NUL" /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+@@ -289,8 +289,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "NT4_Release_LOG_TO_FILE"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /D "_DEBUG_TO_FILE" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /D "_DEBUG_TO_FILE" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "NDEBUG" /D "_WINNT4" /mktyplib203 /o "NUL" /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -323,8 +323,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "Debug_No_AirPcap"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../z1211u/airpcap/" /D "WIN32" /D "_WINDOWS" /D "HAVE_AIRPCAP_API" /YX /FD /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../z1211u/airpcap/" /D "WIN32" /D "_WINDOWS" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+@@ -357,8 +357,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "Release_No_AirPcap"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../z1211u/airpcap/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_AIRPCAP_API" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../z1211u/airpcap/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -390,8 +390,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "Debug_No_NpfIm"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /D "_DBG" /YX /FD /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /I "../../../../NpfIm_DevPack" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /D "_DBG" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /I "../../../../NpfIm_DevPack" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+@@ -424,8 +424,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "Release_No_NpfIm"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /I "../../../../NpfIm_DevPack" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /I "../../../../NpfIm_DevPack" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -457,8 +457,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "Debug_Vista"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+@@ -491,8 +491,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "Release_Vista"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -525,9 +525,9 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib .
+ # PROP Intermediate_Dir "Release_Vista_LOG_TO_FILE"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /FR /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /FR /YX /FD /c
+ # SUBTRACT BASE CPP /u
+-# ADD CPP /nologo /MT /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /FR /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /FR /YX /FD /c
+ # SUBTRACT CPP /u
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+diff --git a/packetNtx/Dll/Project/Packet.vcproj b/packetNtx/Dll/Project/Packet.vcproj
+index 8be719e..e16afe2 100644
+--- a/packetNtx/Dll/Project/Packet.vcproj
++++ b/packetNtx/Dll/Project/Packet.vcproj
+@@ -22,7 +22,7 @@
+ Name="Debug|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ >
+ <Tool
+@@ -44,7 +44,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include"
+- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API"
++ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_IPHELPER_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -64,7 +64,7 @@
+ />
+ <Tool
+ Name="VCLinkerTool"
+- AdditionalDependencies="version.lib npptools.lib setupapi.lib ws2_32.lib iphlpapi.lib"
++ AdditionalDependencies="version.lib setupapi.lib ws2_32.lib iphlpapi.lib"
+ LinkIncremental="2"
+ ModuleDefinitionFile="..\packet.def"
+ GenerateDebugInformation="true"
+@@ -100,7 +100,7 @@
+ Name="Debug|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ >
+ <Tool
+@@ -123,7 +123,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include"
+- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API"
++ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_IPHELPER_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -143,7 +143,7 @@
+ />
+ <Tool
+ Name="VCLinkerTool"
+- AdditionalDependencies="version.lib npptools.lib setupapi.lib ws2_32.lib iphlpapi.lib"
++ AdditionalDependencies="version.lib setupapi.lib ws2_32.lib iphlpapi.lib"
+ LinkIncremental="2"
+ ModuleDefinitionFile="..\packet.def"
+ GenerateDebugInformation="true"
+@@ -179,7 +179,7 @@
+ Name="Release|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+@@ -201,7 +201,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include"
+- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API"
++ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_IPHELPER_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+@@ -219,7 +219,7 @@
+ />
+ <Tool
+ Name="VCLinkerTool"
+- AdditionalDependencies="version.lib npptools.lib setupapi.lib ws2_32.lib iphlpapi.lib"
++ AdditionalDependencies="version.lib setupapi.lib ws2_32.lib iphlpapi.lib"
+ LinkIncremental="1"
+ ModuleDefinitionFile="..\packet.def"
+ GenerateDebugInformation="true"
+@@ -257,7 +257,7 @@
+ Name="Release|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+@@ -280,7 +280,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include"
+- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API"
++ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_IPHELPER_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+@@ -298,7 +298,7 @@
+ />
+ <Tool
+ Name="VCLinkerTool"
+- AdditionalDependencies="version.lib npptools.lib setupapi.lib ws2_32.lib iphlpapi.lib"
++ AdditionalDependencies="version.lib setupapi.lib ws2_32.lib iphlpapi.lib"
+ LinkIncremental="1"
+ ModuleDefinitionFile="..\packet.def"
+ GenerateDebugInformation="true"
+@@ -336,7 +336,7 @@
+ Name="Debug NT4|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ >
+ <Tool
+@@ -415,7 +415,7 @@
+ Name="Debug NT4|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ >
+ <Tool
+@@ -458,7 +458,7 @@
+ />
+ <Tool
+ Name="VCLinkerTool"
+- AdditionalDependencies="version.lib npptools.lib"
++ AdditionalDependencies="version.lib"
+ LinkIncremental="2"
+ ModuleDefinitionFile="..\packet.def"
+ GenerateDebugInformation="true"
+@@ -494,7 +494,7 @@
+ Name="Release NT4|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+@@ -573,7 +573,7 @@
+ Name="Release NT4|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+@@ -614,7 +614,7 @@
+ />
+ <Tool
+ Name="VCLinkerTool"
+- AdditionalDependencies="version.lib npptools.lib"
++ AdditionalDependencies="version.lib"
+ LinkIncremental="1"
+ ModuleDefinitionFile="..\packet.def"
+ GenerateDebugInformation="true"
+@@ -652,7 +652,7 @@
+ Name="Debug No NetMon|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ >
+ <Tool
+@@ -674,7 +674,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include"
+- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_IPHELPER_API"
++ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_IPHELPER_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -731,7 +731,7 @@
+ Name="Debug No NetMon|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ >
+ <Tool
+@@ -754,7 +754,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include"
+- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_IPHELPER_API"
++ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_IPHELPER_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -811,7 +811,7 @@
+ Name="Release No NetMon|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+@@ -833,7 +833,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include"
+- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_IPHELPER_API"
++ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_IPHELPER_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+@@ -890,7 +890,7 @@
+ Name="Release No NetMon|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+@@ -913,7 +913,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include"
+- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_AIRPCAP_API;HAVE_IPHELPER_API"
++ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_IPHELPER_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+@@ -932,7 +932,7 @@
+ />
+ <Tool
+ Name="VCLinkerTool"
+- AdditionalDependencies="version.lib npptools.lib setupapi.lib ws2_32.lib iphlpapi.lib"
++ AdditionalDependencies="version.lib setupapi.lib ws2_32.lib iphlpapi.lib"
+ LinkIncremental="1"
+ ModuleDefinitionFile="..\packet.def"
+ GenerateDebugInformation="true"
+@@ -970,7 +970,7 @@
+ Name="Release LOG_TO_FILE|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+@@ -992,7 +992,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include"
+- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API;_DEBUG_TO_FILE"
++ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_IPHELPER_API;_DEBUG_TO_FILE"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+@@ -1010,7 +1010,7 @@
+ />
+ <Tool
+ Name="VCLinkerTool"
+- AdditionalDependencies="version.lib npptools.lib setupapi.lib ws2_32.lib iphlpapi.lib"
++ AdditionalDependencies="version.lib setupapi.lib ws2_32.lib iphlpapi.lib"
+ LinkIncremental="1"
+ ModuleDefinitionFile="..\packet.def"
+ GenerateDebugInformation="true"
+@@ -1048,7 +1048,7 @@
+ Name="Release LOG_TO_FILE|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+@@ -1071,7 +1071,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include"
+- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API;_DEBUG_TO_FILE"
++ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_IPHELPER_API;_DEBUG_TO_FILE"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+@@ -1089,7 +1089,7 @@
+ />
+ <Tool
+ Name="VCLinkerTool"
+- AdditionalDependencies="version.lib npptools.lib setupapi.lib ws2_32.lib iphlpapi.lib"
++ AdditionalDependencies="version.lib setupapi.lib ws2_32.lib iphlpapi.lib"
+ LinkIncremental="1"
+ ModuleDefinitionFile="..\packet.def"
+ GenerateDebugInformation="true"
+@@ -1127,7 +1127,7 @@
+ Name="Release No NetMon LOG_TO_FILE|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+@@ -1149,7 +1149,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include"
+- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_IPHELPER_API;_DEBUG_TO_FILE"
++ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_IPHELPER_API;_DEBUG_TO_FILE"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+@@ -1206,7 +1206,7 @@
+ Name="Release No NetMon LOG_TO_FILE|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+@@ -1229,7 +1229,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include"
+- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_AIRPCAP_API;HAVE_IPHELPER_API;_DEBUG_TO_FILE"
++ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_IPHELPER_API;_DEBUG_TO_FILE"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+@@ -1248,7 +1248,7 @@
+ />
+ <Tool
+ Name="VCLinkerTool"
+- AdditionalDependencies="version.lib npptools.lib setupapi.lib ws2_32.lib iphlpapi.lib"
++ AdditionalDependencies="version.lib setupapi.lib ws2_32.lib iphlpapi.lib"
+ LinkIncremental="1"
+ ModuleDefinitionFile="..\packet.def"
+ GenerateDebugInformation="true"
+@@ -1286,7 +1286,7 @@
+ Name="Release NT4 LOG_TO_FILE|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+@@ -1365,7 +1365,7 @@
+ Name="Release NT4 LOG_TO_FILE|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+@@ -1406,7 +1406,7 @@
+ />
+ <Tool
+ Name="VCLinkerTool"
+- AdditionalDependencies="version.lib npptools.lib"
++ AdditionalDependencies="version.lib"
+ LinkIncremental="1"
+ ModuleDefinitionFile="..\packet.def"
+ GenerateDebugInformation="true"
+@@ -1462,82 +1462,6 @@
+ >
+ </File>
+ <File
+- RelativePath="..\WanPacket\WanPacket.cpp"
+- >
+- <FileConfiguration
+- Name="Debug NT4|Win32"
+- ExcludedFromBuild="true"
+- >
+- <Tool
+- Name="VCCLCompilerTool"
+- />
+- </FileConfiguration>
+- <FileConfiguration
+- Name="Release NT4|Win32"
+- ExcludedFromBuild="true"
+- >
+- <Tool
+- Name="VCCLCompilerTool"
+- />
+- </FileConfiguration>
+- <FileConfiguration
+- Name="Debug No NetMon|Win32"
+- ExcludedFromBuild="true"
+- >
+- <Tool
+- Name="VCCLCompilerTool"
+- />
+- </FileConfiguration>
+- <FileConfiguration
+- Name="Debug No NetMon|x64"
+- ExcludedFromBuild="true"
+- >
+- <Tool
+- Name="VCCLCompilerTool"
+- />
+- </FileConfiguration>
+- <FileConfiguration
+- Name="Release No NetMon|Win32"
+- ExcludedFromBuild="true"
+- >
+- <Tool
+- Name="VCCLCompilerTool"
+- />
+- </FileConfiguration>
+- <FileConfiguration
+- Name="Release No NetMon|x64"
+- ExcludedFromBuild="true"
+- >
+- <Tool
+- Name="VCCLCompilerTool"
+- />
+- </FileConfiguration>
+- <FileConfiguration
+- Name="Release No NetMon LOG_TO_FILE|Win32"
+- ExcludedFromBuild="true"
+- >
+- <Tool
+- Name="VCCLCompilerTool"
+- />
+- </FileConfiguration>
+- <FileConfiguration
+- Name="Release No NetMon LOG_TO_FILE|x64"
+- ExcludedFromBuild="true"
+- >
+- <Tool
+- Name="VCCLCompilerTool"
+- />
+- </FileConfiguration>
+- <FileConfiguration
+- Name="Release NT4 LOG_TO_FILE|Win32"
+- ExcludedFromBuild="true"
+- >
+- <Tool
+- Name="VCCLCompilerTool"
+- />
+- </FileConfiguration>
+- </File>
+- <File
+ RelativePath="..\..\driver\win_bpf_filter.c"
+ >
+ <FileConfiguration
+diff --git a/packetNtx/Dll/WanPacket/WanPacket.dsp b/packetNtx/Dll/WanPacket/WanPacket.dsp
+index 9ac30be..ed68158 100644
+--- a/packetNtx/Dll/WanPacket/WanPacket.dsp
++++ b/packetNtx/Dll/WanPacket/WanPacket.dsp
+@@ -42,8 +42,8 @@ RSC=rc.exe
+ # PROP Intermediate_Dir "Release"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WANPACKET_EXPORTS" /Yu"stdafx.h" /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "..\..\..\Common" /I "..\..\driver" /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../../z1211u/airpcap/" /D "NDEBUG" /D "_MBCS" /D "_USRDLL" /D "WANPACKET_EXPORTS" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /D "__NPF_x86__" /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WANPACKET_EXPORTS" /Yu"stdafx.h" /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "..\..\..\Common" /I "..\..\driver" /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../../z1211u/airpcap/" /D "NDEBUG" /D "_MBCS" /D "_USRDLL" /D "WANPACKET_EXPORTS" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /D "__NPF_x86__" /FD /c
+ # SUBTRACT CPP /YX /Yc /Yu
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+@@ -54,7 +54,7 @@ BSC32=bscmake.exe
+ # ADD BSC32 /nologo
+ LINK32=link.exe
+ # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+-# ADD LINK32 npptools.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /libpath:"..\..\WanPacket\Release\\" /opt:ref
++# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /libpath:"..\..\WanPacket\Release\\" /opt:ref
+ # SUBTRACT LINK32 /pdb:none
+
+ !ELSEIF "$(CFG)" == "WanPacket - Win32 Debug"
+@@ -70,8 +70,8 @@ LINK32=link.exe
+ # PROP Intermediate_Dir "Debug"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WANPACKET_EXPORTS" /Yu"stdafx.h" /FD /GZ /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\Common" /I "..\..\driver" /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../../z1211u/airpcap/" /D "_DEBUG" /D "_MBCS" /D "_USRDLL" /D "WANPACKET_EXPORTS" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /D "__NPF_x86__" /FD /GZ /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WANPACKET_EXPORTS" /Yu"stdafx.h" /FD /GZ /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "..\..\..\Common" /I "..\..\driver" /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../../z1211u/airpcap/" /D "_DEBUG" /D "_MBCS" /D "_USRDLL" /D "WANPACKET_EXPORTS" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /D "__NPF_x86__" /FD /GZ /c
+ # SUBTRACT CPP /YX /Yc /Yu
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+@@ -82,7 +82,7 @@ BSC32=bscmake.exe
+ # ADD BSC32 /nologo
+ LINK32=link.exe
+ # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib npptools.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
++# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+
+ !ENDIF
+
+@@ -131,10 +131,6 @@ SOURCE=.\version.rc
+ # End Source File
+ # Begin Source File
+
+-SOURCE=.\WanPacket.cpp
+-# End Source File
+-# Begin Source File
+-
+ SOURCE=..\..\driver\win_bpf_filter.c
+ # End Source File
+ # End Group
+diff --git a/packetNtx/Dll/WanPacket/version.rc b/packetNtx/Dll/WanPacket/version.rc
+index 056db10..fc9b0ee 100644
+--- a/packetNtx/Dll/WanPacket/version.rc
++++ b/packetNtx/Dll/WanPacket/version.rc
+@@ -6,7 +6,7 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#include "winres.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+@@ -34,7 +34,7 @@ END
+
+ 2 TEXTINCLUDE
+ BEGIN
+- "#include ""afxres.h""\r\n"
++ "#include ""winres.h""\r\n"
+ "\0"
+ END
+
+diff --git a/packetNtx/Dll/version.rc b/packetNtx/Dll/version.rc
+index 056db10..fc9b0ee 100644
+--- a/packetNtx/Dll/version.rc
++++ b/packetNtx/Dll/version.rc
+@@ -6,7 +6,7 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#include "winres.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+@@ -34,7 +34,7 @@ END
+
+ 2 TEXTINCLUDE
+ BEGIN
+- "#include ""afxres.h""\r\n"
++ "#include ""winres.h""\r\n"
+ "\0"
+ END
+
diff --git a/ports/winpcap/portfile.cmake b/ports/winpcap/portfile.cmake
new file mode 100644
index 000000000..701c9892e
--- /dev/null
+++ b/ports/winpcap/portfile.cmake
@@ -0,0 +1,190 @@
+# 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/winpcap)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://www.winpcap.org/install/bin/WpcapSrc_4_1_3.zip"
+ FILENAME "WpcapSrc_4_1_3.zip"
+ SHA512 89a5109ed17f8069f7a43497f6fec817c58620dbc5fa506e52069b9113c5bc13f69c307affe611281cb727cfa0f8529d07044d41427e350b24468ccc89a87f33
+)
+
+# MSBuild performs in-source builds, so to ensure reliability we must clear them each time
+file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src)
+
+vcpkg_extract_source_archive(${ARCHIVE})
+
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ set(CRT_LINKAGE "MT")
+elseif(VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ set(CRT_LINKAGE "MD")
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+set(LIBRARY_LINKAGE "4")
+elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+set(LIBRARY_LINKAGE "2")
+endif()
+
+configure_file("${CMAKE_CURRENT_LIST_DIR}/packetNtx.patch.in" "${CMAKE_CURRENT_LIST_DIR}/packetNtx.patch" @ONLY)
+configure_file("${CMAKE_CURRENT_LIST_DIR}/wpcap.patch.in" "${CMAKE_CURRENT_LIST_DIR}/wpcap.patch" @ONLY)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/packetNtx.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/wpcap.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/create_lib.patch"
+)
+
+file(
+ COPY
+ "${CURRENT_PORT_DIR}/create_bin.bat"
+ DESTINATION
+ ${SOURCE_PATH}
+)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(PLATFORM Win32)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(PLATFORM x64)
+endif()
+
+vcpkg_execute_required_process(
+ COMMAND "devenv.exe"
+ "Packet.sln"
+ /Upgrade
+ WORKING_DIRECTORY ${SOURCE_PATH}/packetNtx/Dll/Project
+ LOGNAME upgrade-Packet-${TARGET_TRIPLET}
+)
+
+vcpkg_build_msbuild(
+ PROJECT_PATH "${SOURCE_PATH}/packetNtx/Dll/Project/Packet.sln"
+ PLATFORM ${PLATFORM}
+)
+
+vcpkg_find_acquire_program(BISON)
+vcpkg_find_acquire_program(FLEX)
+
+vcpkg_execute_required_process(
+ COMMAND ${SOURCE_PATH}/wpcap/PRJ/build_scanner_parser.bat
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME build_scanner_parser-${TARGET_TRIPLET}
+)
+
+vcpkg_execute_required_process(
+ COMMAND "devenv.exe"
+ "wpcap.sln"
+ /Upgrade
+ WORKING_DIRECTORY ${SOURCE_PATH}/wpcap/PRJ
+ LOGNAME upgrade-wpcap-${TARGET_TRIPLET}
+)
+
+vcpkg_build_msbuild(
+ PROJECT_PATH "${SOURCE_PATH}/wpcap/PRJ/wpcap.sln"
+ RELEASE_CONFIGURATION "Release - No AirPcap"
+ DEBUG_CONFIGURATION "Debug - No AirPcap"
+ PLATFORM ${PLATFORM}
+)
+
+vcpkg_execute_required_process(
+ COMMAND ${SOURCE_PATH}/create_include.bat
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME create_include-${TARGET_TRIPLET}
+)
+
+file(
+ INSTALL
+ "${SOURCE_PATH}/WpdPack/Include/bittypes.h"
+ "${SOURCE_PATH}/WpdPack/Include/ip6_misc.h"
+ "${SOURCE_PATH}/WpdPack/Include/Packet32.h"
+ "${SOURCE_PATH}/WpdPack/Include/pcap.h"
+ "${SOURCE_PATH}/WpdPack/Include/pcap-bpf.h"
+ "${SOURCE_PATH}/WpdPack/Include/pcap-namedb.h"
+ "${SOURCE_PATH}/WpdPack/Include/pcap-stdinc.h"
+ "${SOURCE_PATH}/WpdPack/Include/remote-ext.h"
+ "${SOURCE_PATH}/WpdPack/Include/Win32-Extensions.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include
+)
+
+file(
+ INSTALL
+ "${SOURCE_PATH}/WpdPack/Include/pcap/bluetooth.h"
+ "${SOURCE_PATH}/WpdPack/Include/pcap/bpf.h"
+ "${SOURCE_PATH}/WpdPack/Include/pcap/namedb.h"
+ "${SOURCE_PATH}/WpdPack/Include/pcap/pcap.h"
+ "${SOURCE_PATH}/WpdPack/Include/pcap/sll.h"
+ "${SOURCE_PATH}/WpdPack/Include/pcap/usb.h"
+ "${SOURCE_PATH}/WpdPack/Include/pcap/vlan.h"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include/pcap
+)
+
+vcpkg_execute_required_process(
+ COMMAND ${SOURCE_PATH}/create_lib.bat
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME create_lib-${TARGET_TRIPLET}
+)
+
+set(PCAP_LIBRARY_PATH "${SOURCE_PATH}/WpdPack/Lib")
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(PCAP_LIBRARY_PATH "${PCAP_LIBRARY_PATH}/x64")
+endif()
+
+file(
+ INSTALL
+ "${PCAP_LIBRARY_PATH}/Packet.lib"
+ "${PCAP_LIBRARY_PATH}/wpcap.lib"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/lib
+)
+
+file(
+ INSTALL
+ "${PCAP_LIBRARY_PATH}/Packet.lib"
+ "${PCAP_LIBRARY_PATH}/wpcap.lib"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ vcpkg_execute_required_process(
+ COMMAND ${SOURCE_PATH}/create_bin.bat
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME create_bin-${TARGET_TRIPLET}
+ )
+
+ set(PCAP_BINARY_PATH "${SOURCE_PATH}/WpdPack/Bin")
+ if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(PCAP_BINARY_PATH "${PCAP_BINARY_PATH}/x64")
+ endif()
+
+ file(
+ INSTALL
+ "${PCAP_BINARY_PATH}/Packet.dll"
+ "${PCAP_BINARY_PATH}/wpcap.dll"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/bin
+ )
+
+ file(
+ INSTALL
+ "${PCAP_BINARY_PATH}/Packet.dll"
+ "${PCAP_BINARY_PATH}/wpcap.dll"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/debug/bin
+ )
+endif()
+
+# Handle copyright
+file(DOWNLOAD "https://www.winpcap.org/misc/copyright.htm" ${SOURCE_PATH}/copyright.htm)
+file(INSTALL ${SOURCE_PATH}/copyright.htm DESTINATION ${CURRENT_PACKAGES_DIR}/share/winpcap RENAME copyright)
diff --git a/ports/winpcap/wpcap.patch b/ports/winpcap/wpcap.patch
new file mode 100644
index 000000000..6296bbd39
--- /dev/null
+++ b/ports/winpcap/wpcap.patch
@@ -0,0 +1,414 @@
+diff --git a/wpcap/PRJ/wpcap.dsp b/wpcap/PRJ/wpcap.dsp
+index e53a865..0e4ed19 100644
+--- a/wpcap/PRJ/wpcap.dsp
++++ b/wpcap/PRJ/wpcap.dsp
+@@ -48,8 +48,8 @@ RSC=rc.exe
+ # PROP Intermediate_Dir "Release"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBPCAP_EXPORTS" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c
++# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBPCAP_EXPORTS" /YX /FD /c
++# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -75,8 +75,8 @@ LINK32=link.exe
+ # PROP Intermediate_Dir "Debug"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBPCAP_EXPORTS" /YX /FD /GZ /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c
++# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBPCAP_EXPORTS" /YX /FD /GZ /c
++# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+@@ -103,8 +103,8 @@ LINK32=link.exe
+ # PROP Intermediate_Dir "Debug_REMOTE"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c
++# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
++# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+@@ -138,8 +138,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy
+ # PROP Intermediate_Dir "Debug_REMOTE_DAG"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c
++# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
++# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+@@ -173,8 +173,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy
+ # PROP Intermediate_Dir "Release_REMOTE"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c
++# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c
++# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -208,8 +208,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy
+ # PROP Intermediate_Dir "Release_REMOTE_DAG"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c
++# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c
++# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -243,8 +243,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy
+ # PROP Intermediate_Dir "Release_REMOTE_NO_AIRPCAP"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c
++# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c
++# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -278,8 +278,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy
+ # PROP Intermediate_Dir "Debug_REMOTE_NO_AIRPCAP"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
++# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
++# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+diff --git a/wpcap/PRJ/wpcap.vcproj b/wpcap/PRJ/wpcap.vcproj
+index c1d56b4..40a8ce1 100644
+--- a/wpcap/PRJ/wpcap.vcproj
++++ b/wpcap/PRJ/wpcap.vcproj
+@@ -22,7 +22,7 @@
+ Name="Debug|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="2"
+ CharacterSet="2"
+ >
+ <Tool
+@@ -44,7 +44,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;..\..\..\AirPcap_DevPack\include"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -102,7 +102,7 @@
+ Name="Debug|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="2"
+ CharacterSet="2"
+ >
+ <Tool
+@@ -125,7 +125,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;..\..\..\AirPcap_DevPack\include"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -183,7 +183,7 @@
+ Name="Release|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="2"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+@@ -205,7 +205,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;..\..\..\AirPcap_DevPack\include"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+@@ -262,7 +262,7 @@
+ Name="Release|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="2"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+@@ -285,7 +285,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;..\..\..\AirPcap_DevPack\include"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+@@ -342,7 +342,7 @@
+ Name="Debug No AirPcap|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="2"
+ CharacterSet="2"
+ >
+ <Tool
+@@ -364,7 +364,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -422,7 +422,7 @@
+ Name="Debug No AirPcap|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="2"
+ CharacterSet="2"
+ >
+ <Tool
+@@ -445,7 +445,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -503,7 +503,7 @@
+ Name="Release No AirPcap|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="2"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+@@ -525,7 +525,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+@@ -582,7 +582,7 @@
+ Name="Release No AirPcap|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="2"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+@@ -605,7 +605,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+diff --git a/wpcap/Win32-Extensions/version.rc b/wpcap/Win32-Extensions/version.rc
+index 056db10..fc9b0ee 100644
+--- a/wpcap/Win32-Extensions/version.rc
++++ b/wpcap/Win32-Extensions/version.rc
+@@ -6,7 +6,7 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#include "winres.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+@@ -34,7 +34,7 @@ END
+
+ 2 TEXTINCLUDE
+ BEGIN
+- "#include ""afxres.h""\r\n"
++ "#include ""winres.h""\r\n"
+ "\0"
+ END
+
+diff --git a/wpcap/libpcap/Win32/Prj/libpcap.dsp b/wpcap/libpcap/Win32/Prj/libpcap.dsp
+index aa0c6fc..98ce24c 100644
+--- a/wpcap/libpcap/Win32/Prj/libpcap.dsp
++++ b/wpcap/libpcap/Win32/Prj/libpcap.dsp
+@@ -43,7 +43,7 @@ RSC=rc.exe
+ # PROP Intermediate_Dir "Release"
+ # PROP Target_Dir ""
+ # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_TC_API" /YX /FD /c
++# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_VSNPRINTF" /D "HAVE_TC_API" /YX /FD /c
+ # ADD BASE RSC /l 0x409 /d "NDEBUG"
+ # ADD RSC /l 0x409 /d "NDEBUG"
+ BSC32=bscmake.exe
+@@ -66,7 +66,7 @@ LIB32=link.exe -lib
+ # PROP Intermediate_Dir "Debug"
+ # PROP Target_Dir ""
+ # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "_DEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_TC_API" /YX /FD /GZ /c
++# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "_DEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_VSNPRINTF" /D "HAVE_TC_API" /YX /FD /GZ /c
+ # ADD BASE RSC /l 0x409 /d "_DEBUG"
+ # ADD RSC /l 0x409 /d "_DEBUG"
+ BSC32=bscmake.exe
+@@ -88,8 +88,8 @@ LIB32=link.exe -lib
+ # PROP Output_Dir "Debug_REMOTE"
+ # PROP Intermediate_Dir "Debug_REMOTE"
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "_DEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /YX /FD /GZ /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "_DEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_TC_API" /YX /FD /GZ /c
++# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "_DEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_VSNPRINTF" /YX /FD /GZ /c
++# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "_DEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_TC_API" /YX /FD /GZ /c
+ # ADD BASE RSC /l 0x409 /d "_DEBUG"
+ # ADD RSC /l 0x409 /d "_DEBUG"
+ BSC32=bscmake.exe
+@@ -111,8 +111,8 @@ LIB32=link.exe -lib
+ # PROP Output_Dir "Release_REMOTE"
+ # PROP Intermediate_Dir "Release_REMOTE"
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_TC_API" /YX /FD /c
++# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_VSNPRINTF" /YX /FD /c
++# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_TC_API" /YX /FD /c
+ # ADD BASE RSC /l 0x409 /d "NDEBUG"
+ # ADD RSC /l 0x409 /d "NDEBUG"
+ BSC32=bscmake.exe
+diff --git a/wpcap/libpcap/pcap-int.h b/wpcap/libpcap/pcap-int.h
+index f20ce2e..d6d7559 100644
+--- a/wpcap/libpcap/pcap-int.h
++++ b/wpcap/libpcap/pcap-int.h
+@@ -456,8 +456,9 @@ int pcap_read(pcap_t *, int cnt, pcap_handler, u_char *);
+ #include <stdarg.h>
+
+ #if !defined(HAVE_SNPRINTF)
+-#define snprintf pcap_snprintf
+-extern int snprintf (char *, size_t, const char *, ...);
++#define snprintf _snprintf
++//#define snprintf pcap_snprintf
++//extern int snprintf (char *, size_t, const char *, ...);
+ #endif
+
+ #if !defined(HAVE_VSNPRINTF)
+diff --git a/wpcap/libpcap/rpcapd/rpcapd.dsp b/wpcap/libpcap/rpcapd/rpcapd.dsp
+index f7c00af..1cd823e 100644
+--- a/wpcap/libpcap/rpcapd/rpcapd.dsp
++++ b/wpcap/libpcap/rpcapd/rpcapd.dsp
+@@ -44,8 +44,8 @@ RSC=rc.exe
+ # PROP Intermediate_Dir "Debug_REMOTE"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
+-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
++# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
++# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
+ # ADD BASE RSC /l 0x409 /d "_DEBUG"
+ # ADD RSC /l 0x409 /d "_DEBUG"
+ BSC32=bscmake.exe
+@@ -69,8 +69,8 @@ LINK32=link.exe
+ # PROP Intermediate_Dir "Debug_REMOTE_DAG"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
+-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /FR /YX /FD /GZ /c
++# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
++# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /FR /YX /FD /GZ /c
+ # ADD BASE RSC /l 0x409 /d "_DEBUG"
+ # ADD RSC /l 0x409 /d "_DEBUG"
+ BSC32=bscmake.exe
+@@ -94,8 +94,8 @@ LINK32=link.exe
+ # PROP Intermediate_Dir "Release_REMOTE"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c
+-# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c
++# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c
++# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c
+ # ADD BASE RSC /l 0x409 /d "NDEBUG"
+ # ADD RSC /l 0x409 /d "NDEBUG"
+ BSC32=bscmake.exe
+@@ -120,8 +120,8 @@ LINK32=link.exe
+ # PROP Intermediate_Dir "Release_REMOTE_DAG"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c
+-# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /YX /FD /c
++# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c
++# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /YX /FD /c
+ # ADD BASE RSC /l 0x409 /d "NDEBUG"
+ # ADD RSC /l 0x409 /d "NDEBUG"
+ BSC32=bscmake.exe
+diff --git a/wpcap/libpcap/rpcapd/rpcapd.vcproj b/wpcap/libpcap/rpcapd/rpcapd.vcproj
+index 882fbac..b89f1f9 100644
+--- a/wpcap/libpcap/rpcapd/rpcapd.vcproj
++++ b/wpcap/libpcap/rpcapd/rpcapd.vcproj
+@@ -41,7 +41,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\;..\Win32\include;..\..\..\Common;.\Win32-pthreads;..\..\Win32-Extensions"
+- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;WPCAP;_CRT_SECURE_NO_DEPRECATE;HAVE_TC_API"
++ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_VSNPRINTF;HAVE_REMOTE;WPCAP;_CRT_SECURE_NO_DEPRECATE;HAVE_TC_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -119,7 +119,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\;..\Win32\include;..\..\..\Common;.\Win32-pthreads;..\..\Win32-Extensions"
+- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;WPCAP;_CRT_SECURE_NO_DEPRECATE;HAVE_TC_API"
++ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_VSNPRINTF;HAVE_REMOTE;WPCAP;_CRT_SECURE_NO_DEPRECATE;HAVE_TC_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+diff --git a/wpcap/libpcap/rpcapd/version.rc b/wpcap/libpcap/rpcapd/version.rc
+index 056db10..fc9b0ee 100644
+--- a/wpcap/libpcap/rpcapd/version.rc
++++ b/wpcap/libpcap/rpcapd/version.rc
+@@ -6,7 +6,7 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#include "winres.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+@@ -34,7 +34,7 @@ END
+
+ 2 TEXTINCLUDE
+ BEGIN
+- "#include ""afxres.h""\r\n"
++ "#include ""winres.h""\r\n"
+ "\0"
+ END
+
diff --git a/ports/winpcap/wpcap.patch.in b/ports/winpcap/wpcap.patch.in
new file mode 100644
index 000000000..01c8a38c8
--- /dev/null
+++ b/ports/winpcap/wpcap.patch.in
@@ -0,0 +1,414 @@
+diff --git a/wpcap/PRJ/wpcap.dsp b/wpcap/PRJ/wpcap.dsp
+index e53a865..0e4ed19 100644
+--- a/wpcap/PRJ/wpcap.dsp
++++ b/wpcap/PRJ/wpcap.dsp
+@@ -48,8 +48,8 @@ RSC=rc.exe
+ # PROP Intermediate_Dir "Release"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBPCAP_EXPORTS" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBPCAP_EXPORTS" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -75,8 +75,8 @@ LINK32=link.exe
+ # PROP Intermediate_Dir "Debug"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBPCAP_EXPORTS" /YX /FD /GZ /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBPCAP_EXPORTS" /YX /FD /GZ /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+@@ -103,8 +103,8 @@ LINK32=link.exe
+ # PROP Intermediate_Dir "Debug_REMOTE"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+@@ -138,8 +138,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy
+ # PROP Intermediate_Dir "Debug_REMOTE_DAG"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+@@ -173,8 +173,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy
+ # PROP Intermediate_Dir "Release_REMOTE"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -208,8 +208,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy
+ # PROP Intermediate_Dir "Release_REMOTE_DAG"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -243,8 +243,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy
+ # PROP Intermediate_Dir "Release_REMOTE_NO_AIRPCAP"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c
+ # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "NDEBUG"
+@@ -278,8 +278,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy
+ # PROP Intermediate_Dir "Debug_REMOTE_NO_AIRPCAP"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
+ # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+ # ADD BASE RSC /l 0x410 /d "_DEBUG"
+diff --git a/wpcap/PRJ/wpcap.vcproj b/wpcap/PRJ/wpcap.vcproj
+index c1d56b4..40a8ce1 100644
+--- a/wpcap/PRJ/wpcap.vcproj
++++ b/wpcap/PRJ/wpcap.vcproj
+@@ -22,7 +22,7 @@
+ Name="Debug|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="2"
+ >
+ <Tool
+@@ -44,7 +44,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;..\..\..\AirPcap_DevPack\include"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -102,7 +102,7 @@
+ Name="Debug|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="2"
+ >
+ <Tool
+@@ -125,7 +125,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;..\..\..\AirPcap_DevPack\include"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -183,7 +183,7 @@
+ Name="Release|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+@@ -205,7 +205,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;..\..\..\AirPcap_DevPack\include"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+@@ -262,7 +262,7 @@
+ Name="Release|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+@@ -285,7 +285,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;..\..\..\AirPcap_DevPack\include"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+@@ -342,7 +342,7 @@
+ Name="Debug No AirPcap|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="2"
+ >
+ <Tool
+@@ -364,7 +364,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -422,7 +422,7 @@
+ Name="Debug No AirPcap|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="2"
+ >
+ <Tool
+@@ -445,7 +445,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -503,7 +503,7 @@
+ Name="Release No AirPcap|Win32"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+@@ -525,7 +525,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+@@ -582,7 +582,7 @@
+ Name="Release No AirPcap|x64"
+ OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+ IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64"
+- ConfigurationType="2"
++ ConfigurationType="@LIBRARY_LINKAGE@"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+@@ -605,7 +605,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions"
+- PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
++ PreprocessorDefinitions="LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+diff --git a/wpcap/Win32-Extensions/version.rc b/wpcap/Win32-Extensions/version.rc
+index 056db10..fc9b0ee 100644
+--- a/wpcap/Win32-Extensions/version.rc
++++ b/wpcap/Win32-Extensions/version.rc
+@@ -6,7 +6,7 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#include "winres.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+@@ -34,7 +34,7 @@ END
+
+ 2 TEXTINCLUDE
+ BEGIN
+- "#include ""afxres.h""\r\n"
++ "#include ""winres.h""\r\n"
+ "\0"
+ END
+
+diff --git a/wpcap/libpcap/Win32/Prj/libpcap.dsp b/wpcap/libpcap/Win32/Prj/libpcap.dsp
+index aa0c6fc..98ce24c 100644
+--- a/wpcap/libpcap/Win32/Prj/libpcap.dsp
++++ b/wpcap/libpcap/Win32/Prj/libpcap.dsp
+@@ -43,7 +43,7 @@ RSC=rc.exe
+ # PROP Intermediate_Dir "Release"
+ # PROP Target_Dir ""
+ # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_TC_API" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_VSNPRINTF" /D "HAVE_TC_API" /YX /FD /c
+ # ADD BASE RSC /l 0x409 /d "NDEBUG"
+ # ADD RSC /l 0x409 /d "NDEBUG"
+ BSC32=bscmake.exe
+@@ -66,7 +66,7 @@ LIB32=link.exe -lib
+ # PROP Intermediate_Dir "Debug"
+ # PROP Target_Dir ""
+ # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "_DEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_TC_API" /YX /FD /GZ /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "_DEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_VSNPRINTF" /D "HAVE_TC_API" /YX /FD /GZ /c
+ # ADD BASE RSC /l 0x409 /d "_DEBUG"
+ # ADD RSC /l 0x409 /d "_DEBUG"
+ BSC32=bscmake.exe
+@@ -88,8 +88,8 @@ LIB32=link.exe -lib
+ # PROP Output_Dir "Debug_REMOTE"
+ # PROP Intermediate_Dir "Debug_REMOTE"
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "_DEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /YX /FD /GZ /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "_DEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_TC_API" /YX /FD /GZ /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "_DEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_VSNPRINTF" /YX /FD /GZ /c
++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "_DEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_TC_API" /YX /FD /GZ /c
+ # ADD BASE RSC /l 0x409 /d "_DEBUG"
+ # ADD RSC /l 0x409 /d "_DEBUG"
+ BSC32=bscmake.exe
+@@ -111,8 +111,8 @@ LIB32=link.exe -lib
+ # PROP Output_Dir "Release_REMOTE"
+ # PROP Intermediate_Dir "Release_REMOTE"
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_TC_API" /YX /FD /c
++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_VSNPRINTF" /YX /FD /c
++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../" /I "../../lbl/" /I "../../bpf/" /I "../include/" /I "../../../../common" /I "../../../../dag/include" /I "../../../../dag/drv/windows" /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D "_MBCS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "HAVE_ADDRINFO" /D "WIN32" /D _U_= /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_TC_API" /YX /FD /c
+ # ADD BASE RSC /l 0x409 /d "NDEBUG"
+ # ADD RSC /l 0x409 /d "NDEBUG"
+ BSC32=bscmake.exe
+diff --git a/wpcap/libpcap/pcap-int.h b/wpcap/libpcap/pcap-int.h
+index f20ce2e..d6d7559 100644
+--- a/wpcap/libpcap/pcap-int.h
++++ b/wpcap/libpcap/pcap-int.h
+@@ -456,8 +456,9 @@ int pcap_read(pcap_t *, int cnt, pcap_handler, u_char *);
+ #include <stdarg.h>
+
+ #if !defined(HAVE_SNPRINTF)
+-#define snprintf pcap_snprintf
+-extern int snprintf (char *, size_t, const char *, ...);
++#define snprintf _snprintf
++//#define snprintf pcap_snprintf
++//extern int snprintf (char *, size_t, const char *, ...);
+ #endif
+
+ #if !defined(HAVE_VSNPRINTF)
+diff --git a/wpcap/libpcap/rpcapd/rpcapd.dsp b/wpcap/libpcap/rpcapd/rpcapd.dsp
+index f7c00af..1cd823e 100644
+--- a/wpcap/libpcap/rpcapd/rpcapd.dsp
++++ b/wpcap/libpcap/rpcapd/rpcapd.dsp
+@@ -44,8 +44,8 @@ RSC=rc.exe
+ # PROP Intermediate_Dir "Debug_REMOTE"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
+-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
++# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
++# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
+ # ADD BASE RSC /l 0x409 /d "_DEBUG"
+ # ADD RSC /l 0x409 /d "_DEBUG"
+ BSC32=bscmake.exe
+@@ -69,8 +69,8 @@ LINK32=link.exe
+ # PROP Intermediate_Dir "Debug_REMOTE_DAG"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
+-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /FR /YX /FD /GZ /c
++# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c
++# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /FR /YX /FD /GZ /c
+ # ADD BASE RSC /l 0x409 /d "_DEBUG"
+ # ADD RSC /l 0x409 /d "_DEBUG"
+ BSC32=bscmake.exe
+@@ -94,8 +94,8 @@ LINK32=link.exe
+ # PROP Intermediate_Dir "Release_REMOTE"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c
+-# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c
++# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c
++# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c
+ # ADD BASE RSC /l 0x409 /d "NDEBUG"
+ # ADD RSC /l 0x409 /d "NDEBUG"
+ BSC32=bscmake.exe
+@@ -120,8 +120,8 @@ LINK32=link.exe
+ # PROP Intermediate_Dir "Release_REMOTE_DAG"
+ # PROP Ignore_Export_Lib 0
+ # PROP Target_Dir ""
+-# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c
+-# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /YX /FD /c
++# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c
++# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /YX /FD /c
+ # ADD BASE RSC /l 0x409 /d "NDEBUG"
+ # ADD RSC /l 0x409 /d "NDEBUG"
+ BSC32=bscmake.exe
+diff --git a/wpcap/libpcap/rpcapd/rpcapd.vcproj b/wpcap/libpcap/rpcapd/rpcapd.vcproj
+index 882fbac..b89f1f9 100644
+--- a/wpcap/libpcap/rpcapd/rpcapd.vcproj
++++ b/wpcap/libpcap/rpcapd/rpcapd.vcproj
+@@ -41,7 +41,7 @@
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\;..\Win32\include;..\..\..\Common;.\Win32-pthreads;..\..\Win32-Extensions"
+- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;WPCAP;_CRT_SECURE_NO_DEPRECATE;HAVE_TC_API"
++ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_VSNPRINTF;HAVE_REMOTE;WPCAP;_CRT_SECURE_NO_DEPRECATE;HAVE_TC_API"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+@@ -119,7 +119,7 @@
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\;..\Win32\include;..\..\..\Common;.\Win32-pthreads;..\..\Win32-Extensions"
+- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;WPCAP;_CRT_SECURE_NO_DEPRECATE;HAVE_TC_API"
++ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_VSNPRINTF;HAVE_REMOTE;WPCAP;_CRT_SECURE_NO_DEPRECATE;HAVE_TC_API"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+diff --git a/wpcap/libpcap/rpcapd/version.rc b/wpcap/libpcap/rpcapd/version.rc
+index 056db10..fc9b0ee 100644
+--- a/wpcap/libpcap/rpcapd/version.rc
++++ b/wpcap/libpcap/rpcapd/version.rc
+@@ -6,7 +6,7 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#include "winres.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+@@ -34,7 +34,7 @@ END
+
+ 2 TEXTINCLUDE
+ BEGIN
+- "#include ""afxres.h""\r\n"
++ "#include ""winres.h""\r\n"
+ "\0"
+ END
+
diff --git a/ports/winsock2/CONTROL b/ports/winsock2/CONTROL
new file mode 100644
index 000000000..298fd7ebd
--- /dev/null
+++ b/ports/winsock2/CONTROL
@@ -0,0 +1,3 @@
+Source: winsock2
+Version: 0.0-1
+Description: Windows Sockets. \ No newline at end of file
diff --git a/ports/winsock2/portfile.cmake b/ports/winsock2/portfile.cmake
new file mode 100644
index 000000000..76f3bc23d
--- /dev/null
+++ b/ports/winsock2/portfile.cmake
@@ -0,0 +1,30 @@
+include(vcpkg_common_functions)
+
+vcpkg_get_program_files_32_bit(PROGRAM_FILES_32_BIT)
+vcpkg_get_windows_sdk(WINDOWS_SDK)
+
+if (WINDOWS_SDK MATCHES "10.")
+ set(LIBFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\Ws2_32.Lib")
+ set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Include\\${WINDOWS_SDK}\\um")
+elseif(WINDOWS_SDK MATCHES "8.")
+ set(LIBFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\Ws2_32.Lib")
+ set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Include\\um")
+else()
+ message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}")
+endif()
+
+if (NOT EXISTS "${LIBFILEPATH}")
+ message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${LIBFILEPATH}")
+endif()
+
+file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+
+if (WINDOWS_SDK MATCHES "10.")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/winsock2/copyright "See https://developer.microsoft.com/windows/downloads/windows-10-sdk for the Windows 10 SDK license")
+elseif(WINDOWS_SDK MATCHES "8.")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/winsock2/copyright "See https://developer.microsoft.com/windows/downloads/windows-8-1-sdk for the Windows 8.1 SDK license")
+endif()
+
+# Allow empty include directory
+set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) \ No newline at end of file
diff --git a/ports/wt/0001-boost-1.66.patch b/ports/wt/0001-boost-1.66.patch
new file mode 100644
index 000000000..b11ffdb05
--- /dev/null
+++ b/ports/wt/0001-boost-1.66.patch
@@ -0,0 +1,370 @@
+From a0fd67d85947c835cd55078edacf3c2ac84ca53f Mon Sep 17 00:00:00 2001
+From: Robert Schumacher <roschuma@microsoft.com>
+Date: Fri, 23 Feb 2018 03:12:00 -0800
+Subject: [PATCH 1/3] boost 1.66
+
+
+diff --git a/src/Wt/Http/Client.C b/src/Wt/Http/Client.C
+index 85230d1..a2c893e 100644
+--- a/src/Wt/Http/Client.C
++++ b/src/Wt/Http/Client.C
+@@ -642,7 +642,7 @@ private:
+
+ protected:
+ asio::io_service& ioService_;
+- asio::strand strand_;
++ asio::io_context::strand strand_;
+ tcp::resolver resolver_;
+ asio::streambuf requestBuf_;
+ asio::streambuf responseBuf_;
+diff --git a/src/Wt/Http/Client.h b/src/Wt/Http/Client.h
+index f3c7169..0f638e8 100644
+--- a/src/Wt/Http/Client.h
++++ b/src/Wt/Http/Client.h
+@@ -21,11 +21,7 @@
+ #include <string>
+
+ #ifdef WT_ASIO_IS_BOOST_ASIO
+-namespace boost {
+- namespace asio {
+- class io_service;
+- }
+-}
++#include <boost/asio/io_service.hpp>
+ #else // WT_ASIO_IS_STANDALONE_ASIO
+ namespace asio {
+ class io_service;
+diff --git a/src/http/Connection.C b/src/http/Connection.C
+index cab7708..cca4e0a 100644
+--- a/src/http/Connection.C
++++ b/src/http/Connection.C
+@@ -78,7 +78,7 @@ void Connection::scheduleStop()
+
+ void Connection::start()
+ {
+- LOG_DEBUG(socket().native() << ": start()");
++ LOG_DEBUG(socket().native_handle() << ": start()");
+
+ request_parser_.reset();
+ request_.reset();
+@@ -106,7 +106,7 @@ void Connection::stop()
+ void Connection::setReadTimeout(int seconds)
+ {
+ if (seconds != 0) {
+- LOG_DEBUG(socket().native() << " setting read timeout (ws: "
++ LOG_DEBUG(socket().native_handle() << " setting read timeout (ws: "
+ << request_.webSocketVersion << ")");
+ state_ |= Reading;
+
+@@ -118,7 +118,7 @@ void Connection::setReadTimeout(int seconds)
+
+ void Connection::setWriteTimeout(int seconds)
+ {
+- LOG_DEBUG(socket().native() << " setting write timeout (ws: "
++ LOG_DEBUG(socket().native_handle() << " setting write timeout (ws: "
+ << request_.webSocketVersion << ")");
+ state_ |= Writing;
+
+@@ -129,7 +129,7 @@ void Connection::setWriteTimeout(int seconds)
+
+ void Connection::cancelReadTimer()
+ {
+- LOG_DEBUG(socket().native() << " cancel read timeout");
++ LOG_DEBUG(socket().native_handle() << " cancel read timeout");
+ state_.clear(Reading);
+
+ readTimer_.cancel();
+@@ -137,7 +137,7 @@ void Connection::cancelReadTimer()
+
+ void Connection::cancelWriteTimer()
+ {
+- LOG_DEBUG(socket().native() << " cancel write timeout");
++ LOG_DEBUG(socket().native_handle() << " cancel write timeout");
+ state_.clear(Writing);
+
+ writeTimer_.cancel();
+@@ -163,7 +163,7 @@ void Connection::handleReadRequest0()
+
+ #ifdef DEBUG
+ try {
+- LOG_DEBUG(socket().native() << "incoming request: "
++ LOG_DEBUG(socket().native_handle() << "incoming request: "
+ << socket().remote_endpoint().port() << " (avail= "
+ << (rcv_buffer_size_ - (rcv_remaining_ - buffer.data())) << "): "
+ << std::string(rcv_remaining_,
+@@ -189,7 +189,7 @@ void Connection::handleReadRequest0()
+ if (doWebSockets)
+ request_.enableWebSocket();
+
+- LOG_DEBUG(socket().native() << "request: " << status);
++ LOG_DEBUG(socket().native_handle() << "request: " << status);
+
+ if (status >= 300)
+ sendStockReply(status);
+@@ -242,7 +242,7 @@ void Connection::sendStockReply(StockReply::status_type status)
+ void Connection::handleReadRequest(const Wt::AsioWrapper::error_code& e,
+ std::size_t bytes_transferred)
+ {
+- LOG_DEBUG(socket().native() << ": handleReadRequest(): " << e.message());
++ LOG_DEBUG(socket().native_handle() << ": handleReadRequest(): " << e.message());
+
+ cancelReadTimer();
+
+@@ -261,7 +261,7 @@ void Connection::close()
+ cancelReadTimer();
+ cancelWriteTimer();
+
+- LOG_DEBUG(socket().native() << ": close()");
++ LOG_DEBUG(socket().native_handle() << ": close()");
+
+ ConnectionManager_.stop(shared_from_this());
+ }
+@@ -274,7 +274,7 @@ bool Connection::closed() const
+
+ void Connection::handleError(const Wt::AsioWrapper::error_code& e)
+ {
+- LOG_DEBUG(socket().native() << ": error: " << e.message());
++ LOG_DEBUG(socket().native_handle() << ": error: " << e.message());
+
+ close();
+ }
+@@ -349,7 +349,7 @@ void Connection::handleReadBody0(ReplyPtr reply,
+ const Wt::AsioWrapper::error_code& e,
+ std::size_t bytes_transferred)
+ {
+- LOG_DEBUG(socket().native() << ": handleReadBody0(): " << e.message());
++ LOG_DEBUG(socket().native_handle() << ": handleReadBody0(): " << e.message());
+
+ if (disconnectCallback_) {
+ if (e && e != asio::error::operation_aborted) {
+@@ -357,7 +357,7 @@ void Connection::handleReadBody0(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();
+@@ -403,14 +403,14 @@ void Connection::startWriteResponse(ReplyPtr reply)
+ int size = asio::buffer_size(buffers[i]);
+ s += size;
+ #ifdef DEBUG_DUMP
+- char *data = (char *)asio::detail::buffer_cast_helper(buffers[i]);
++ char *data = asio::buffer_cast<char*>(buffers[i]);
+ for (int j = 0; j < size; ++j)
+ std::cerr << data[j];
+ #endif
+ }
+ #endif
+
+- LOG_DEBUG(socket().native() << " sending: " << s << "(buffers: "
++ LOG_DEBUG(socket().native_handle() << " sending: " << s << "(buffers: "
+ << buffers.size() << ")");
+
+ if (!buffers.empty()) {
+@@ -423,7 +423,7 @@ void Connection::startWriteResponse(ReplyPtr reply)
+
+ void Connection::handleWriteResponse(ReplyPtr reply)
+ {
+- LOG_DEBUG(socket().native() << ": handleWriteResponse() " <<
++ LOG_DEBUG(socket().native_handle() << ": handleWriteResponse() " <<
+ haveResponse_ << " " << responseDone_);
+ if (haveResponse_)
+ startWriteResponse(reply);
+@@ -458,7 +458,7 @@ void Connection::handleWriteResponse0(ReplyPtr reply,
+ const Wt::AsioWrapper::error_code& e,
+ std::size_t bytes_transferred)
+ {
+- LOG_DEBUG(socket().native() << ": handleWriteResponse0(): "
++ LOG_DEBUG(socket().native_handle() << ": handleWriteResponse0(): "
+ << bytes_transferred << " ; " << e.message());
+
+ cancelWriteTimer();
+diff --git a/src/http/Connection.h b/src/http/Connection.h
+index b0b71a3..bc0b6ed 100644
+--- a/src/http/Connection.h
++++ b/src/http/Connection.h
+@@ -61,7 +61,7 @@ public:
+ virtual ~Connection();
+
+ Server *server() const { return server_; }
+- asio::strand& strand() { return strand_; }
++ asio::io_context::strand& strand() { return strand_; }
+
+ /// Stop all asynchronous operations associated with the connection.
+ void scheduleStop();
+@@ -104,7 +104,7 @@ protected:
+ /// The manager for this connection.
+ ConnectionManager& ConnectionManager_;
+
+- asio::strand strand_;
++ asio::io_context::strand strand_;
+
+ void finishReply();
+
+diff --git a/src/http/Reply.C b/src/http/Reply.C
+index 0d79e39..5e6c615 100644
+--- a/src/http/Reply.C
++++ b/src/http/Reply.C
+@@ -596,7 +596,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 {
+diff --git a/src/http/Server.h b/src/http/Server.h
+index 3d3229a..373073f 100644
+--- a/src/http/Server.h
++++ b/src/http/Server.h
+@@ -129,7 +129,7 @@ private:
+ Wt::WLogger accessLogger_;
+
+ /// The strand for handleTcpAccept(), handleSslAccept() and handleStop()
+- asio::strand accept_strand_;
++ asio::io_context::strand accept_strand_;
+
+ /// Acceptors used to listen for incoming http connections.
+ std::vector<TcpListener> tcp_listeners_;
+diff --git a/src/http/SessionProcess.C b/src/http/SessionProcess.C
+index 72d9a88..92320b0 100644
+--- a/src/http/SessionProcess.C
++++ b/src/http/SessionProcess.C
+@@ -80,7 +80,7 @@ void SessionProcess::asyncExec(const Configuration &config,
+ if (!ec)
+ acceptor_->listen(0, ec);
+ #ifndef WT_WIN32
+- fcntl(acceptor_->native(), F_SETFD, FD_CLOEXEC);
++ fcntl(acceptor_->native_handle(), F_SETFD, FD_CLOEXEC);
+ #endif // !WT_WIN32
+ if (ec) {
+ LOG_ERROR("Couldn't create listening socket: " << ec.message());
+diff --git a/src/http/SslConnection.C b/src/http/SslConnection.C
+index 74c8642..2c34b53 100644
+--- a/src/http/SslConnection.C
++++ b/src/http/SslConnection.C
+@@ -81,9 +81,9 @@ void SslConnection::handleHandshake(const Wt::AsioWrapper::error_code& error)
+
+ void SslConnection::stop()
+ {
+- LOG_DEBUG(socket().native() << ": stop()");
++ LOG_DEBUG(socket().native_handle() << ": stop()");
+ finishReply();
+- LOG_DEBUG(socket().native() << ": SSL shutdown");
++ LOG_DEBUG(socket().native_handle() << ": SSL shutdown");
+
+ Connection::stop();
+
+@@ -108,20 +108,20 @@ void SslConnection::stopNextLayer(const Wt::AsioWrapper::error_code& ec)
+ // In case of timeout, we will get here twice.
+ sslShutdownTimer_.cancel();
+ if (ec) {
+- LOG_DEBUG(socket().native() << ": ssl_shutdown failed:"
++ LOG_DEBUG(socket().native_handle() << ": ssl_shutdown failed:"
+ << ec.message());
+ }
+ try {
+ if (socket().is_open()) {
+ Wt::AsioWrapper::error_code ignored_ec;
+- LOG_DEBUG(socket().native() << ": socket shutdown");
++ LOG_DEBUG(socket().native_handle() << ": socket shutdown");
+ socket().shutdown(asio::ip::tcp::socket::shutdown_both,
+ ignored_ec);
+- LOG_DEBUG(socket().native() << "closing socket");
++ LOG_DEBUG(socket().native_handle() << "closing socket");
+ socket().close();
+ }
+ } catch (Wt::AsioWrapper::system_error& e) {
+- LOG_DEBUG(socket().native() << ": error " << e.what());
++ LOG_DEBUG(socket().native_handle() << ": error " << e.what());
+ }
+ }
+
+@@ -161,7 +161,7 @@ void SslConnection::startAsyncReadBody(ReplyPtr reply,
+ Buffer& buffer, int timeout)
+ {
+ if (state_ & Reading) {
+- LOG_DEBUG(socket().native() << ": state_ = "
++ LOG_DEBUG(socket().native_handle() << ": state_ = "
+ << (state_ & Reading ? "reading " : "")
+ << (state_ & Writing ? "writing " : ""));
+ stop();
+@@ -198,7 +198,7 @@ void SslConnection
+ int timeout)
+ {
+ if (state_ & Writing) {
+- LOG_DEBUG(socket().native() << ": state_ = "
++ LOG_DEBUG(socket().native_handle() << ": state_ = "
+ << (state_ & Reading ? "reading " : "")
+ << (state_ & Writing ? "writing " : ""));
+ stop();
+diff --git a/src/http/TcpConnection.C b/src/http/TcpConnection.C
+index ad73164..4eaf83b 100644
+--- a/src/http/TcpConnection.C
++++ b/src/http/TcpConnection.C
+@@ -38,17 +38,17 @@ asio::ip::tcp::socket& TcpConnection::socket()
+
+ void TcpConnection::stop()
+ {
+- LOG_DEBUG(socket().native() << ": stop()");
++ LOG_DEBUG(socket().native_handle() << ": stop()");
+
+ finishReply();
+
+ try {
+ Wt::AsioWrapper::error_code ignored_ec;
+ socket_.shutdown(asio::ip::tcp::socket::shutdown_both, ignored_ec);
+- LOG_DEBUG(socket().native() << ": closing socket");
++ LOG_DEBUG(socket().native_handle() << ": closing socket");
+ socket_.close();
+ } catch (Wt::AsioWrapper::system_error& e) {
+- LOG_DEBUG(socket().native() << ": error " << e.what());
++ LOG_DEBUG(socket().native_handle() << ": error " << e.what());
+ }
+
+ Connection::stop();
+@@ -56,10 +56,10 @@ void TcpConnection::stop()
+
+ void TcpConnection::startAsyncReadRequest(Buffer& buffer, int timeout)
+ {
+- LOG_DEBUG(socket().native() << ": startAsyncReadRequest");
++ LOG_DEBUG(socket().native_handle() << ": startAsyncReadRequest");
+
+ if (state_ & Reading) {
+- LOG_DEBUG(socket().native() << ": state_ = "
++ LOG_DEBUG(socket().native_handle() << ": state_ = "
+ << (state_ & Reading ? "reading " : "")
+ << (state_ & Writing ? "writing " : ""));
+ stop();
+@@ -81,10 +81,10 @@ void TcpConnection::startAsyncReadRequest(Buffer& buffer, int timeout)
+ void TcpConnection::startAsyncReadBody(ReplyPtr reply,
+ Buffer& buffer, int timeout)
+ {
+- LOG_DEBUG(socket().native() << ": startAsyncReadBody");
++ LOG_DEBUG(socket().native_handle() << ": startAsyncReadBody");
+
+ if (state_ & Reading) {
+- LOG_DEBUG(socket().native() << ": state_ = "
++ LOG_DEBUG(socket().native_handle() << ": state_ = "
+ << (state_ & Reading ? "reading " : "")
+ << (state_ & Writing ? "writing " : ""));
+ stop();
+@@ -109,10 +109,10 @@ void TcpConnection::startAsyncWriteResponse
+ const std::vector<asio::const_buffer>& buffers,
+ int timeout)
+ {
+- LOG_DEBUG(socket().native() << ": startAsyncWriteResponse");
++ LOG_DEBUG(socket().native_handle() << ": startAsyncWriteResponse");
+
+ if (state_ & Writing) {
+- LOG_DEBUG(socket().native() << ": state_ = "
++ LOG_DEBUG(socket().native_handle() << ": state_ = "
+ << (state_ & Reading ? "reading " : "")
+ << (state_ & Writing ? "writing " : ""));
+ stop();
+--
+2.16.2.windows.1
+
diff --git a/ports/wt/0002-link-glew.patch b/ports/wt/0002-link-glew.patch
new file mode 100644
index 000000000..af441e81f
--- /dev/null
+++ b/ports/wt/0002-link-glew.patch
@@ -0,0 +1,23 @@
+From 6301c4ccaf8d3b6982898fed84e691ab8ddd7a4f Mon Sep 17 00:00:00 2001
+From: Robert Schumacher <roschuma@microsoft.com>
+Date: Fri, 23 Feb 2018 03:12:45 -0800
+Subject: [PATCH 2/3] link glew
+
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 80734fb..70e755b 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -556,7 +556,8 @@ ENDIF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "GraphicsMagick")
+ IF(HAVE_GL)
+ INCLUDE_DIRECTORIES(${GL_INCLUDE_DIRS})
+ IF(USE_SYSTEM_GLEW)
+- TARGET_LINK_LIBRARIES(wt PRIVATE GLEW)
++ find_package(glew REQUIRED)
++ TARGET_LINK_LIBRARIES(wt PRIVATE GLEW::GLEW)
+ ENDIF(USE_SYSTEM_GLEW)
+ TARGET_LINK_LIBRARIES(wt PRIVATE ${GL_LIBRARIES})
+ ELSE(HAVE_GL)
+--
+2.16.2.windows.1
+
diff --git a/ports/wt/0003-disable-boost-autolink.patch b/ports/wt/0003-disable-boost-autolink.patch
new file mode 100644
index 000000000..910fbf800
--- /dev/null
+++ b/ports/wt/0003-disable-boost-autolink.patch
@@ -0,0 +1,22 @@
+From 21dd691c8ac8d60f49cd051193402187f6912f92 Mon Sep 17 00:00:00 2001
+From: Robert Schumacher <roschuma@microsoft.com>
+Date: Fri, 23 Feb 2018 03:29:09 -0800
+Subject: [PATCH 3/3] disable boost autolink
+
+
+diff --git a/cmake/WtFindBoost-cmake.txt b/cmake/WtFindBoost-cmake.txt
+index b708803..b0c2846 100644
+--- a/cmake/WtFindBoost-cmake.txt
++++ b/cmake/WtFindBoost-cmake.txt
+@@ -89,7 +89,7 @@ IF (Boost_FOUND)
+ SET(BOOST_WTHTTP_MT_FOUND TRUE)
+ SET(BOOST_WTHTTP_FOUND TRUE)
+
+- IF(MSVC)
++ IF(MSVC AND 0)
+ # use autolink
+ SET(BOOST_WT_LIBRARIES "")
+ SET(BOOST_WTHTTP_LIBRARIES "")
+--
+2.16.2.windows.1
+
diff --git a/ports/wt/CONTROL b/ports/wt/CONTROL
index 24b87df83..d3a707343 100644
--- a/ports/wt/CONTROL
+++ b/ports/wt/CONTROL
@@ -1,4 +1,4 @@
Source: wt
-Version: 3.3.7
+Version: 4.0.3
Description: Wt is a C++ library for developing web applications
-Build-Depends: boost, openssl
+Build-Depends: openssl, sqlite3, libpq, pango, glew, 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/add-disable-boost-autolink-option.patch b/ports/wt/add-disable-boost-autolink-option.patch
deleted file mode 100644
index 57cb3ed99..000000000
--- a/ports/wt/add-disable-boost-autolink-option.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/cmake/WtFindBoost-cmake.txt b/cmake/WtFindBoost-cmake.txt
-index b66741f..377cede 100644
---- a/cmake/WtFindBoost-cmake.txt
-+++ b/cmake/WtFindBoost-cmake.txt
-@@ -99,7 +99,7 @@ IF (Boost_FOUND)
- SET(BOOST_WTHTTP_MT_FOUND TRUE)
- SET(BOOST_WTHTTP_FOUND TRUE)
-
-- IF(MSVC)
-+ IF(MSVC AND NOT DISABLE_BOOST_AUTOLINK)
- # use autolink
- SET(BOOST_WT_LIBRARIES "")
- SET(BOOST_WTHTTP_LIBRARIES "")
-diff --git a/src/wt/Dbo/CMakeLists.txt b/src/wt/Dbo/CMakeLists.txt
-index 64d3af2..f9c31e0 100644
---- a/src/wt/Dbo/CMakeLists.txt
-+++ b/src/wt/Dbo/CMakeLists.txt
-@@ -31,7 +31,7 @@ IF(ENABLE_LIBWTDBO)
- StringStream.C
- )
-
-- IF(MSVC)
-+ IF(MSVC AND NOT DISABLE_BOOST_AUTOLINK)
- #win32 links automatically against boost libs; specifying too much causes
- #trouble
- IF(MULTI_THREADED_BUILD)
diff --git a/ports/wt/portfile.cmake b/ports/wt/portfile.cmake
index e5cded5ec..b33e9110b 100644
--- a/ports/wt/portfile.cmake
+++ b/ports/wt/portfile.cmake
@@ -3,35 +3,50 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO emweb/wt
- REF 3.3.7
- SHA512 f179b42eedcfd2e61f26ef92c6aad40c55c76c9a688269c4d5bd55dd48381073d6269d9c2ab305f15ef455616d48183a3fc0ba08c740a8e18318a2ad2fb13826
+ REF 4.0.3
+ SHA512 5985f72cbd3065ac696aad4d11711f2d69e066ee17141b56fd7c2616c7f7353586ab8d13db2baa90fa8f3cb116aa7c9044ee3cc42e99e8f5c8704f886ac3b2b6
HEAD_REF master
)
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
- PATCHES ${CMAKE_CURRENT_LIST_DIR}/add-disable-boost-autolink-option.patch
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/0001-boost-1.66.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0002-link-glew.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0003-disable-boost-autolink.patch
)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SHARED_LIBS)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
- -DSHARED_LIBS=ON
- -DENABLE_SSL=ON
+ -DSHARED_LIBS=${SHARED_LIBS}
+ -DBOOST_DYNAMIC=ON
+ -DDISABLE_BOOST_AUTOLINK=ON
-DBUILD_EXAMPLES=OFF
- -DENABLE_POSTGRES=OFF
+
+ -DENABLE_SSL=ON
+ -DENABLE_HARU=OFF
+ -DENABLE_PANGO=ON
+ -DENABLE_SQLITE=ON
+ -DENABLE_POSTGRES=ON
-DENABLE_FIREBIRD=OFF
-DENABLE_MYSQL=OFF
-DENABLE_QT4=OFF
- -DBOOST_DYNAMIC=ON
- -DDISABLE_BOOST_AUTOLINK=ON
-DENABLE_LIBWTTEST=OFF
+ -DENABLE_OPENGL=ON
+
+ -DUSE_SYSTEM_SQLITE3=ON
+ -DUSE_SYSTEM_GLEW=ON
)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/wt)
+
# There is no way to suppress installation of the headers and resource files in debug build.
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/wt RENAME copyright)
vcpkg_copy_pdbs()
diff --git a/ports/wtl/CONTROL b/ports/wtl/CONTROL
index 6f8b6208e..5fbab5c61 100644
--- a/ports/wtl/CONTROL
+++ b/ports/wtl/CONTROL
@@ -1,5 +1,5 @@
Source: wtl
Maintainer: jfrederich@gmail.com
-Version: 9.1
+Version: 10.0-1
Description: Windows Template Library (WTL) is a C++ library for developing Windows applications and UI components.
Build-Depends:
diff --git a/ports/wtl/portfile.cmake b/ports/wtl/portfile.cmake
index c8d8c6c34..6ee21e895 100644
--- a/ports/wtl/portfile.cmake
+++ b/ports/wtl/portfile.cmake
@@ -1,15 +1,16 @@
#header-only library
include(vcpkg_common_functions)
vcpkg_download_distfile(ARCHIVE
- URLS "http://downloads.sourceforge.net/project/wtl/WTL%209.1/WTL%209.1.5321%20Final/WTL91_5321_Final.zip?r=&ts=1477467616&use_mirror=netix"
- FILENAME "WTL91_5321_Final.zip"
- SHA512 52c583f6773839f7ad7fccf0ecba44ad00f41af4ae97d217619cc380ea9b71b90638ae35a5995f9eb08854db423896fec5f06b5cbd853f118eeddd05238a460a
+ URLS "https://downloads.sourceforge.net/project/wtl/WTL%2010/WTL%2010.0.7336/WTL10_7336.zip"
+ FILENAME "WTL10_7336.zip"
+ SHA512 68368be0b35fba97ed63fd684e98c077ab94ea2ce928693da7f1f48e2547486109e045e026218a7c8652aec46930b79572679c0b79afaa75a3dbf98572e4d9b5
)
vcpkg_extract_source_archive(${ARCHIVE})
-file(INSTALL ${CURRENT_BUILDTREES_DIR}/src/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/wtl FILES_MATCHING PATTERN "*.h")
+file(INSTALL ${CURRENT_BUILDTREES_DIR}/src/Include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/wtl FILES_MATCHING PATTERN "*.h")
file(COPY ${CURRENT_BUILDTREES_DIR}/src/MS-PL.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/wtl)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/wtl/MS-PL.txt ${CURRENT_PACKAGES_DIR}/share/wtl/copyright)
-file(COPY ${CURRENT_BUILDTREES_DIR}/src/samples DESTINATION ${CURRENT_PACKAGES_DIR}/share/wtl)
+file(COPY ${CURRENT_BUILDTREES_DIR}/src/Samples DESTINATION ${CURRENT_PACKAGES_DIR}/share/wtl)
+file(COPY ${CURRENT_BUILDTREES_DIR}/src/AppWizard DESTINATION ${CURRENT_PACKAGES_DIR}/share/wtl)
diff --git a/ports/wxwidgets/CONTROL b/ports/wxwidgets/CONTROL
new file mode 100644
index 000000000..48ceab120
--- /dev/null
+++ b/ports/wxwidgets/CONTROL
@@ -0,0 +1,4 @@
+Source: wxwidgets
+Version: 3.1.1
+Description: wxWidgets is a widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications.
+Build-Depends: zlib, libpng, tiff, expat
diff --git a/ports/wxwidgets/disable-platform-lib-dir.patch b/ports/wxwidgets/disable-platform-lib-dir.patch
new file mode 100644
index 000000000..2a1de613e
--- /dev/null
+++ b/ports/wxwidgets/disable-platform-lib-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake
+index 06256b1..2960a31 100644
+--- a/build/cmake/init.cmake
++++ b/build/cmake/init.cmake
+@@ -66,7 +66,7 @@ else()
+ set(wxCOMPILER_PREFIX)
+ endif()
+
+-if(MSVC OR MINGW)
++if((MSVC OR MINGW) AND NOT wxBUILD_DISABLE_PLATFORM_LIB_DIR)
+ if(wxBUILD_SHARED)
+ set(lib_suffix "dll")
+ else()
diff --git a/ports/wxwidgets/portfile.cmake b/ports/wxwidgets/portfile.cmake
new file mode 100644
index 000000000..c88b4b613
--- /dev/null
+++ b/ports/wxwidgets/portfile.cmake
@@ -0,0 +1,51 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO wxWidgets/wxWidgets
+ REF v3.1.1
+ SHA512 f6d8974e2f48bae7e96a8938df3ad5efc403036c1dcbe2b48edd276ee7923802ba3e95e3f3bd9db17985e427b8e4f78950df0cbba83ae99d508ed04633816c95
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/disable-platform-lib-dir.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DwxUSE_REGEX=builtin
+ -DwxUSE_ZLIB=sys
+ -DwxUSE_EXPAT=sys
+ -DwxUSE_LIBJPEG=sys
+ -DwxUSE_LIBPNG=sys
+ -DwxUSE_LIBTIFF=sys
+ -DwxUSE_STL=ON
+ -DwxBUILD_DISABLE_PLATFORM_LIB_DIR=ON
+)
+
+vcpkg_install_cmake()
+
+file(GLOB DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
+if(DLLS)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
+ foreach(DLL ${DLLS})
+ get_filename_component(N "${DLL}" NAME)
+ file(RENAME ${DLL} ${CURRENT_PACKAGES_DIR}/bin/${N})
+ endforeach()
+endif()
+file(GLOB DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
+if(DLLS)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
+ foreach(DLL ${DLLS})
+ get_filename_component(N "${DLL}" NAME)
+ file(RENAME ${DLL} ${CURRENT_PACKAGES_DIR}/debug/bin/${N})
+ endforeach()
+endif()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/docs/licence.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/wxwidgets)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/wxWidgets/licence.txt ${CURRENT_PACKAGES_DIR}/share/wxwidgets/copyright)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) \ No newline at end of file
diff --git a/ports/x264/CONTROL b/ports/x264/CONTROL
new file mode 100644
index 000000000..245fb8f7f
--- /dev/null
+++ b/ports/x264/CONTROL
@@ -0,0 +1,3 @@
+Source: x264
+Version: 152-e9a5903edf8ca59-1
+Description: x264 is a free software library and application for encoding video streams into the H.264/MPEG-4 AVC compression format
diff --git a/ports/x264/portfile.cmake b/ports/x264/portfile.cmake
new file mode 100644
index 000000000..d5f85ecdd
--- /dev/null
+++ b/ports/x264/portfile.cmake
@@ -0,0 +1,133 @@
+include(vcpkg_common_functions)
+
+set(X264_VERSION 152)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mirror/x264
+ REF e9a5903edf8ca59ef20e6f4894c196f135af735e
+ SHA512 063da238264b33ab7ccf097c1f8a7d6b1bf1f0777b433ccbb6ab98090f050fa4d289eeff37b701b8fd7fb5ad460b7fa13d61b68b3f397bc78a8eaa50379e4878
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/uwp-cflags.patch
+)
+
+# Acquire tools
+vcpkg_acquire_msys(MSYS_ROOT PACKAGES make automake1.15)
+
+# Insert msys into the path between the compiler toolset and windows system32. This prevents masking of "link.exe" but DOES mask "find.exe".
+string(REPLACE ";$ENV{SystemRoot}\\system32;" ";${MSYS_ROOT}/usr/bin;$ENV{SystemRoot}\\system32;" NEWPATH "$ENV{PATH}")
+set(ENV{PATH} "${NEWPATH}")
+set(BASH ${MSYS_ROOT}/usr/bin/bash.exe)
+
+set(AUTOMAKE_DIR ${MSYS_ROOT}/usr/share/automake-1.15)
+#file(COPY ${AUTOMAKE_DIR}/config.guess ${AUTOMAKE_DIR}/config.sub DESTINATION ${SOURCE_PATH}/source)
+
+set(CONFIGURE_OPTIONS "--host=i686-pc-mingw32 --enable-strip --disable-lavf --disable-swscale --disable-asm --disable-avs --disable-ffms --disable-gpac --disable-lsmash")
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --enable-shared")
+ if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --extra-ldflags=-APPCONTAINER --extra-ldflags=WindowsApp.lib")
+ endif()
+else()
+ set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --enable-static")
+endif()
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(ENV{LIBPATH} "$ENV{LIBPATH};$ENV{_WKITS10}references\\windows.foundation.foundationcontract\\2.0.0.0\\;$ENV{_WKITS10}references\\windows.foundation.universalapicontract\\3.0.0.0\\")
+ set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --extra-cflags=-DWINAPI_FAMILY=WINAPI_FAMILY_APP --extra-cflags=-D_WIN32_WINNT=0x0A00")
+endif()
+
+set(CONFIGURE_OPTIONS_RELEASE "--prefix=${CURRENT_PACKAGES_DIR}")
+set(CONFIGURE_OPTIONS_DEBUG "--enable-debug --prefix=${CURRENT_PACKAGES_DIR}/debug")
+
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ set(X264_RUNTIME "-MT")
+else()
+ set(X264_RUNTIME "-MD")
+endif()
+
+# Configure release
+message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
+file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+set(ENV{CFLAGS} "${X264_RUNTIME} -O2 -Oi -Zi")
+set(ENV{CXXFLAGS} "${X264_RUNTIME} -O2 -Oi -Zi")
+set(ENV{LDFLAGS} "-DEBUG -INCREMENTAL:NO -OPT:REF -OPT:ICF")
+vcpkg_execute_required_process(
+ COMMAND ${BASH} --noprofile --norc -c
+ "CC=cl ${SOURCE_PATH}/configure ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_RELEASE}"
+ WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel"
+ LOGNAME "configure-${TARGET_TRIPLET}-rel")
+message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
+
+# Configure debug
+message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
+file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+set(ENV{CFLAGS} "${X264_RUNTIME}d -Od -Zi -RTC1")
+set(ENV{CXXFLAGS} "${X264_RUNTIME}d -Od -Zi -RTC1")
+set(ENV{LDFLAGS} "-DEBUG")
+vcpkg_execute_required_process(
+ COMMAND ${BASH} --noprofile --norc -c
+ "CC=cl ${SOURCE_PATH}/configure ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_DEBUG}"
+ WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg"
+ LOGNAME "configure-${TARGET_TRIPLET}-dbg")
+message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
+
+unset(ENV{CFLAGS})
+unset(ENV{CXXFLAGS})
+unset(ENV{LDFLAGS})
+
+# Build release
+message(STATUS "Package ${TARGET_TRIPLET}-rel")
+vcpkg_execute_required_process(
+ COMMAND ${BASH} --noprofile --norc -c "make && make install"
+ WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel"
+ LOGNAME "build-${TARGET_TRIPLET}-rel")
+message(STATUS "Package ${TARGET_TRIPLET}-rel done")
+
+# Build debug
+message(STATUS "Package ${TARGET_TRIPLET}-dbg")
+vcpkg_execute_required_process(
+ COMMAND ${BASH} --noprofile --norc -c "make && make install"
+ WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg"
+ LOGNAME "build-${TARGET_TRIPLET}-dbg")
+message(STATUS "Package ${TARGET_TRIPLET}-dbg done")
+
+if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/x264)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/x264.exe ${CURRENT_PACKAGES_DIR}/tools/x264/x264.exe)
+endif()
+
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/lib/pkgconfig
+ ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig
+ ${CURRENT_PACKAGES_DIR}/debug/bin/x264.exe
+ ${CURRENT_PACKAGES_DIR}/debug/include
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libx264.dll.lib ${CURRENT_PACKAGES_DIR}/lib/libx264.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libx264.dll.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libx264.lib)
+else()
+ # force U_STATIC_IMPLEMENTATION macro
+ file(READ ${CURRENT_PACKAGES_DIR}/include/x264.h HEADER_CONTENTS)
+ string(REPLACE "defined(U_STATIC_IMPLEMENTATION)" "1" HEADER_CONTENTS "${HEADER_CONTENTS}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/x264.h "${HEADER_CONTENTS}")
+
+ file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/bin
+ ${CURRENT_PACKAGES_DIR}/debug/bin
+ )
+endif()
+
+vcpkg_copy_pdbs()
+
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/x264)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/x264/COPYING ${CURRENT_PACKAGES_DIR}/share/x264/copyright)
diff --git a/ports/x264/uwp-cflags.patch b/ports/x264/uwp-cflags.patch
new file mode 100644
index 000000000..fd04755bc
--- /dev/null
+++ b/ports/x264/uwp-cflags.patch
@@ -0,0 +1,12 @@
+diff --git a/configure b/configure
+index f7b14d9..2c92b2a 100644
+--- a/configure
++++ b/configure
+@@ -821,7 +821,6 @@ if [ $SYS = WINDOWS ]; then
+ if cpp_check "winapifamily.h" "" "!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)" ; then
+ [ $compiler = CL ] || die "WinRT requires MSVC"
+ define HAVE_WINRT
+- CFLAGS="$CFLAGS -MD"
+ LDFLAGS="$LDFLAGS -appcontainer"
+ if ! cpp_check "" "" "defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0603" ; then
+ die "_WIN32_WINNT must be defined to at least 0x0603 (Windows 8.1) for WinRT"
diff --git a/ports/x265/CONTROL b/ports/x265/CONTROL
new file mode 100644
index 000000000..87e1867bd
--- /dev/null
+++ b/ports/x265/CONTROL
@@ -0,0 +1,3 @@
+Source: x265
+Version: 2.7-1
+Description: x265 is a H.265 / HEVC video encoder application library, designed to encode video or images into an H.265 / HEVC encoded bitstream.
diff --git a/ports/x265/disable-install-pdb.patch b/ports/x265/disable-install-pdb.patch
new file mode 100644
index 000000000..4601f2728
--- /dev/null
+++ b/ports/x265/disable-install-pdb.patch
@@ -0,0 +1,13 @@
+diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
+index e6d49c6..2409caa 100644
+--- a/source/CMakeLists.txt
++++ b/source/CMakeLists.txt
+@@ -546,7 +546,7 @@ if(ENABLE_HDR10_PLUS)
+ ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
+ endif()
+ install(FILES x265.h "${PROJECT_BINARY_DIR}/x265_config.h" DESTINATION include)
+-if(WIN32)
++if(WIN32 AND 0)
+ if(MSVC_IDE)
+ install(FILES "${PROJECT_BINARY_DIR}/Debug/x265.pdb" DESTINATION ${BIN_INSTALL_DIR} CONFIGURATIONS Debug)
+ install(FILES "${PROJECT_BINARY_DIR}/RelWithDebInfo/x265.pdb" DESTINATION ${BIN_INSTALL_DIR} CONFIGURATIONS RelWithDebInfo)
diff --git a/ports/x265/portfile.cmake b/ports/x265/portfile.cmake
new file mode 100644
index 000000000..0ab99b7d2
--- /dev/null
+++ b/ports/x265/portfile.cmake
@@ -0,0 +1,42 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_bitbucket(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO multicoreware/x265
+ REF 2.7
+ SHA512 fd2f43830bbe4fa0ac98ac6d8e3689d0a8a5142da9d67c0dd16fbbde40500c52a370c5c5a30e93195c2e998660a51abab76b09baed87378c9e366cf2f694f2b9
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/disable-install-pdb.patch
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ENABLE_SHARED)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/source
+ PREFER_NINJA
+ OPTIONS -DENABLE_SHARED=${ENABLE_SHARED}
+ OPTIONS_DEBUG -DENABLE_CLI=OFF
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+# remove duplicated include files
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/x265)
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/x265.exe ${CURRENT_PACKAGES_DIR}/tools/x265/x265.exe)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+endif()
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/x265)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/x265)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/x265/COPYING ${CURRENT_PACKAGES_DIR}/share/x265/copyright) \ No newline at end of file
diff --git a/ports/xalan-c/portfile.cmake b/ports/xalan-c/portfile.cmake
index 55dd9f143..4f4da9143 100644
--- a/ports/xalan-c/portfile.cmake
+++ b/ports/xalan-c/portfile.cmake
@@ -45,15 +45,15 @@ endif()
vcpkg_build_msbuild(
PROJECT_PATH ${SOURCE_PATH}/c/projects/Win32/VC10/AllInOne/AllInOne.vcxproj
PLATFORM ${BUILD_ARCH}
- # Need this for it to pick up xerces-c port: https://github.com/Microsoft/vcpkg/issues/891
- OPTIONS /p:ForceImportBeforeCppTargets=${VCPKG_ROOT_DIR}/scripts/buildsystems/msbuild/vcpkg.targets)
+ USE_VCPKG_INTEGRATION
+)
# This is needed to generate the required LocalMsgIndex.hpp header
vcpkg_build_msbuild(
PROJECT_PATH ${SOURCE_PATH}/c/projects/Win32/VC10/Utils/XalanMsgLib/XalanMsgLib.vcxproj
PLATFORM ${BUILD_ARCH}
- # Need this for it to pick up xerces-c port: https://github.com/Microsoft/vcpkg/issues/891
- OPTIONS /p:ForceImportBeforeCppTargets=${VCPKG_ROOT_DIR}/scripts/buildsystems/msbuild/vcpkg.targets)
+ USE_VCPKG_INTEGRATION
+)
file(COPY ${SOURCE_PATH}/c/Build/${OUTPUT_DIR}/VC10/Debug/XalanMessages_1_11D.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
file(COPY ${SOURCE_PATH}/c/Build/${OUTPUT_DIR}/VC10/Debug/Xalan-C_1_11D.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
diff --git a/ports/xerces-c/portfile.cmake b/ports/xerces-c/portfile.cmake
index 1208c9787..c0a4166fb 100644
--- a/ports/xerces-c/portfile.cmake
+++ b/ports/xerces-c/portfile.cmake
@@ -16,15 +16,13 @@ if (VCPKG_CRT_LINKAGE STREQUAL "static")
set(VCPKG_CRT_LINKAGE "dynamic")
endif()
-
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/xerces-c-3.1.4)
-
-vcpkg_download_distfile(ARCHIVE
- URLS "http://www-us.apache.org/dist//xerces/c/3/sources/xerces-c-3.1.4.zip"
- FILENAME "xerces-c-3.1.4.zip"
- SHA512 3ba1bf38875bda8a294990dba73143cfd6dbfa158b17f4db1fd0ee9a08a078af969103200eaf8957756f8363c8a661983cc95124b4978eb2162dc0344a85fff8
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO apache/xerces-c
+ REF Xerces-C_3_1_4
+ SHA512 6dc3e4bb68bc32a0e8ec6dcc7ec67e21239a79c909d08ccc16c96dc5de4e73800993d1c09f589606925507baf0b2a9bf6037d28c84dae826935bf1f7a151071e
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
if (VCPKG_TARGET_ARCHITECTURE MATCHES "x86")
set(BUILD_ARCH "Win32")
@@ -54,7 +52,7 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xercesc/NLS)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xercesc/util/MsgLoaders/ICU/resources)
# Handle copyright
-file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/xerces-c)
+file(COPY ${SOURCE_PATH}/LICENSE ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/xerces-c)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/xerces-c/LICENSE ${CURRENT_PACKAGES_DIR}/share/xerces-c/copyright)
vcpkg_copy_pdbs() \ No newline at end of file
diff --git a/ports/xerces-c/usage b/ports/xerces-c/usage
new file mode 100644
index 000000000..70333bf7c
--- /dev/null
+++ b/ports/xerces-c/usage
@@ -0,0 +1,4 @@
+The package xerces-c is compatible with built-in CMake targets:
+
+ find_package(XercesC REQUIRED)
+ target_link_libraries(main PRIVATE XercesC::XercesC)
diff --git a/ports/xlnt/CONTROL b/ports/xlnt/CONTROL
index 0a9a86c0a..25b4ce010 100644
--- a/ports/xlnt/CONTROL
+++ b/ports/xlnt/CONTROL
@@ -1,4 +1,3 @@
Source: xlnt
-Version: 0.9.4
+Version: 1.2.0-1
Description: Cross-platform user-friendly xlsx library for C++14
-Build-Depends: zlib, cryptopp, expat \ No newline at end of file
diff --git a/ports/xlnt/portfile.cmake b/ports/xlnt/portfile.cmake
index b4a0f5e62..f0cb9425d 100644
--- a/ports/xlnt/portfile.cmake
+++ b/ports/xlnt/portfile.cmake
@@ -1,12 +1,12 @@
include(vcpkg_common_functions)
-set(XLNT_REV 9dccde4bff34cfbafbdc3811fdd05326ac6bd0aa)
-set(XLNT_HASH 85bb651e42e33a829672ee76d14504fcbab683bb6b468d728837f1163b5ca1395c9aa80b3bed91a243e065599cdbf23cad769375f77792f71c173b02061771af)
-set(XLNT_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/xlnt-${XLNT_REV})
+set(XLNT_VERSION 1.2.0)
+set(XLNT_HASH 359ff1e99531513d7b1228ff07f137531be99d7a95bbc5b399168a6c609f56dba2e030464f8203db92db137ab80dbe10f71de71a62b0bcb96eaafc0f09256339)
+set(XLNT_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/xlnt-${XLNT_VERSION})
vcpkg_download_distfile(ARCHIVE
- URLS https://github.com/tfussell/xlnt/archive/${XLNT_REV}.zip
- FILENAME xlnt-${XLNT_REV}.zip
+ URLS https://github.com/tfussell/xlnt/archive/v${XLNT_VERSION}.zip
+ FILENAME xlnt-${XLNT_VERSION}.zip
SHA512 ${XLNT_HASH}
)
@@ -26,6 +26,8 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
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(INSTALL ${XLNT_SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/xlnt RENAME copyright)
vcpkg_copy_pdbs()
diff --git a/ports/xxhash/CONTROL b/ports/xxhash/CONTROL
index 171a1b816..2501630a0 100644
--- a/ports/xxhash/CONTROL
+++ b/ports/xxhash/CONTROL
@@ -1,3 +1,3 @@
Source: xxhash
-Version: 0.6.2
+Version: 0.6.4
Description: Extremely fast hash algorithm
diff --git a/ports/xxhash/portfile.cmake b/ports/xxhash/portfile.cmake
index e1b913a44..c23f24623 100644
--- a/ports/xxhash/portfile.cmake
+++ b/ports/xxhash/portfile.cmake
@@ -1,24 +1,15 @@
include(vcpkg_common_functions)
-set(XXHASH_VERSION 0.6.2)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/xxhash-${XXHASH_VERSION})
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/Cyan4973/xxHash/archive/v${XXHASH_VERSION}.zip"
- FILENAME "xxhash-${XXHASH_VERSION}.zip"
- SHA512 a2364421f46116a6e7f6bd686665fe4ee58670af6dad611ca626283c1b448fb1120ab3495903a5c8653d341ef22c0d244604edc20bf82a42734ffb4b871e2724)
-
-vcpkg_extract_source_archive(${ARCHIVE})
-
-if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
- set(XXH_STATIC ON)
-else()
- set(XXH_STATIC OFF)
-endif()
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Cyan4973/xxHash
+ REF v0.6.4
+ SHA512 6c914bac5092dfd01349c8223c382d3c13ba1b22e08300ce86ea9663a9a934f930debdeb71c14365ec57d72b95088a4354da92dfb7fcf7d07ec01c0f4fb70ca7
+ HEAD_REF dev)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}/cmake_unofficial
PREFER_NINJA
OPTIONS
- -DBUILD_STATIC_LIBS=${XXH_STATIC}
-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON)
vcpkg_install_cmake()
@@ -28,6 +19,10 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
file(READ ${CURRENT_PACKAGES_DIR}/include/xxhash.h XXHASH_H)
string(REPLACE "# define XXH_PUBLIC_API /* do nothing */" "# define XXH_PUBLIC_API __declspec(dllimport)" XXHASH_H "${XXHASH_H}")
file(WRITE ${CURRENT_PACKAGES_DIR}/include/xxhash.h "${XXHASH_H}")
+
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/xxhsum.exe ${CURRENT_PACKAGES_DIR}/debug/bin/xxhsum.exe)
+else()
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
endif()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/yajl/CONTROL b/ports/yajl/CONTROL
new file mode 100644
index 000000000..6811dc84a
--- /dev/null
+++ b/ports/yajl/CONTROL
@@ -0,0 +1,3 @@
+Source: yajl
+Version: 2.1.0-1
+Description: Yet Another JSON Library
diff --git a/ports/yajl/cmake.patch b/ports/yajl/cmake.patch
new file mode 100644
index 000000000..c631ead21
--- /dev/null
+++ b/ports/yajl/cmake.patch
@@ -0,0 +1,36 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4c0a9be..cbec22f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -28,7 +28,7 @@ ENDIF (NOT CMAKE_BUILD_TYPE)
+
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+
+-IF (WIN32)
++IF (WIN32 AND FALSE)
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
+ ADD_DEFINITIONS(-DWIN32)
+ SET(linkFlags "/PDB:NONE /INCREMENTAL:NO /OPT:NOREF /OPT:NOICF")
+@@ -46,7 +46,8 @@ IF (WIN32)
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996 /wd4255 /wd4130 /wd4100 /wd4711")
+ SET(CMAKE_C_FLAGS_DEBUG "/D DEBUG /Od /Z7")
+ SET(CMAKE_C_FLAGS_RELEASE "/D NDEBUG /O2")
+-ELSE (WIN32)
++endif()
++if (NOT WIN32)
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
+ IF(CMAKE_COMPILER_IS_GNUCC)
+ INCLUDE(CheckCCompilerFlag)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 99cf9e9..454482a 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -78,7 +78,7 @@ INCLUDE_DIRECTORIES(${incDir}/..)
+ # at build time you may specify the cmake variable LIB_SUFFIX to handle
+ # 64-bit systems which use 'lib64'
+ INSTALL(TARGETS yajl
+- RUNTIME DESTINATION lib${LIB_SUFFIX}
++ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib${LIB_SUFFIX}
+ ARCHIVE DESTINATION lib${LIB_SUFFIX})
+ INSTALL(TARGETS yajl_s ARCHIVE DESTINATION lib${LIB_SUFFIX})
diff --git a/ports/yajl/portfile.cmake b/ports/yajl/portfile.cmake
new file mode 100644
index 000000000..92742e0a7
--- /dev/null
+++ b/ports/yajl/portfile.cmake
@@ -0,0 +1,34 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO lloyd/yajl
+ REF 2.1.0
+ SHA512 9e786d080803df80ec03a9c2f447501e6e8e433a6baf636824bc1d50ecf4f5f80d7dfb1d47958aeb0a30fe459bd0ef033d41bc6a79e1dc6e6b5eade930b19b02
+ HEAD_REF master
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/cmake.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/yajl RENAME copyright)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share ${CURRENT_PACKAGES_DIR}/share/pkgconfig)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(GLOB SHAREDOBJECTS ${CURRENT_PACKAGES_DIR}/lib/libyajl.so* ${CURRENT_PACKAGES_DIR}/debug/lib/libyajl.so*)
+ file(REMOVE_RECURSE ${SHAREDOBJECTS} ${CURRENT_PACKAGES_DIR}/lib/yajl.lib ${CURRENT_PACKAGES_DIR}/debug/lib/yajl.lib)
+else()
+ file(GLOB EXES ${CURRENT_PACKAGES_DIR}/bin/*.exe ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+ file(REMOVE_RECURSE
+ ${EXES}
+ ${CURRENT_PACKAGES_DIR}/lib/yajl_s.lib ${CURRENT_PACKAGES_DIR}/debug/lib/yajl_s.lib
+ ${CURRENT_PACKAGES_DIR}/lib/libyajl_s.a ${CURRENT_PACKAGES_DIR}/debug/lib/libyajl_s.a
+ )
+endif()
diff --git a/ports/yaml-cpp/CONTROL b/ports/yaml-cpp/CONTROL
index f55ccfc4f..1e2d0e5c9 100644
--- a/ports/yaml-cpp/CONTROL
+++ b/ports/yaml-cpp/CONTROL
@@ -1,3 +1,3 @@
Source: yaml-cpp
-Version: 0.5.4 candidate
+Version: 0.6.2
Description: yaml-cpp is a YAML parser and emitter in C++ matching the YAML 1.2 spec.
diff --git a/ports/yaml-cpp/portfile.cmake b/ports/yaml-cpp/portfile.cmake
index 69f838884..071931f64 100644
--- a/ports/yaml-cpp/portfile.cmake
+++ b/ports/yaml-cpp/portfile.cmake
@@ -1,38 +1,66 @@
-# 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}
-#
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/yaml-cpp-380ecb404ef99ba132154ed43dd2b84136b30b14)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/jbeder/yaml-cpp/archive/380ecb404ef99ba132154ed43dd2b84136b30b14.zip"
- FILENAME "380ecb404ef99ba132154ed43dd2b84136b30b14.zip"
- SHA512 7e090b53ba760f4f9a44701359fe2c30c05f1bbcd2cba78a8f9a88c651b09be6d592e65826fbacb9dd7317afbe3cd968be531b89f83e79f15cd97e9c27d17232
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO jbeder/yaml-cpp
+ REF yaml-cpp-0.6.2
+ SHA512 fea8ce0a20a00cbc75023d1db442edfcd32d0ac57a3c41b32ec8d56f87cc1d85d7dd7a923ce662f5d3a315f91a736d6be0d649997acd190915c1d68cc93795e4
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
- # OPTIONS_RELEASE -DOPTIMIZE=1
- # OPTIONS_DEBUG -DDEBUGGABLE=1
+ PREFER_NINJA
+ OPTIONS
+ -DYAML_CPP_BUILD_TOOLS=OFF
+ -DYAML_CPP_BUILD_TESTS=OFF
)
vcpkg_install_cmake()
-
vcpkg_copy_pdbs()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/CMake)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH CMake)
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake/yaml-cpp)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/yaml-cpp)
+endif()
+
+# Adjust paths and remove hardcoded ones from the config files
+file(READ ${CURRENT_PACKAGES_DIR}/share/yaml-cpp/yaml-cpp-config.cmake YAML_CONFIG)
+string(REPLACE "set(YAML_CPP_INCLUDE_DIR \"\${YAML_CPP_CMAKE_DIR}/../include\")"
+ "set(YAML_CPP_INCLUDE_DIR \"\${YAML_CPP_CMAKE_DIR}/../../include\")" YAML_CONFIG "${YAML_CONFIG}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/yaml-cpp/yaml-cpp-config.cmake "${YAML_CONFIG}")
+
+file(READ ${CURRENT_PACKAGES_DIR}/share/yaml-cpp/yaml-cpp-targets.cmake YAML_CONFIG)
+string(REPLACE "set(_IMPORT_PREFIX \"${CURRENT_PACKAGES_DIR}\")"
+"get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)
+get_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)
+get_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)" YAML_CONFIG "${YAML_CONFIG}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/yaml-cpp/yaml-cpp-targets.cmake "${YAML_CONFIG}")
+
+set(_targets_cmake_conf)
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ list(APPEND _targets_cmake_conf "debug")
+endif()
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ list(APPEND _targets_cmake_conf "release")
+endif()
+foreach(CONF ${_targets_cmake_conf})
+ file(READ ${CURRENT_PACKAGES_DIR}/share/yaml-cpp/yaml-cpp-targets-${CONF}.cmake YAML_CONFIG)
+ string(REPLACE "${CURRENT_PACKAGES_DIR}" "\${_IMPORT_PREFIX}" YAML_CONFIG "${YAML_CONFIG}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/yaml-cpp/yaml-cpp-targets-${CONF}.cmake "${YAML_CONFIG}")
+endforeach()
# Remove debug include files
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-# Remove cmake files
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/CMake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/CMake)
+
+file(READ ${CURRENT_PACKAGES_DIR}/include/yaml-cpp/dll.h DLL_H)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ string(REPLACE "#ifdef YAML_CPP_DLL" "#if 1" DLL_H "${DLL_H}")
+else()
+ string(REPLACE "#ifdef YAML_CPP_DLL" "#if 0" DLL_H "${DLL_H}")
+endif()
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/yaml-cpp/dll.h "${DLL_H}")
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/yaml-cpp)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/yaml-cpp/LICENSE ${CURRENT_PACKAGES_DIR}/share/yaml-cpp/copyright)
-
diff --git a/ports/yara/CMakeLists.txt b/ports/yara/CMakeLists.txt
new file mode 100644
index 000000000..783d322fb
--- /dev/null
+++ b/ports/yara/CMakeLists.txt
@@ -0,0 +1,106 @@
+cmake_minimum_required(VERSION 3.8)
+project(yara C)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+
+find_package(OpenSSL REQUIRED)
+find_path(JANSSON_INCLUDE_DIR NAMES jansson.h)
+find_library(JANSSON_LIBRARY NAMES jansson)
+
+
+include_directories(
+ .
+ libyara
+ libyara/include
+)
+
+set(
+ libyara_sources
+ libyara/ahocorasick.c
+ libyara/arena.c
+ libyara/atoms.c
+ libyara/compiler.c
+ libyara/exec.c
+ libyara/exefiles.c
+ libyara/filemap.c
+ libyara/grammar.c
+ libyara/hash.c
+ libyara/hex_grammar.c
+ libyara/hex_lexer.c
+ libyara/lexer.c
+ libyara/libyara.c
+ libyara/mem.c
+ libyara/modules.c
+ libyara/modules/cuckoo.c
+ libyara/modules/dotnet.c
+ libyara/modules/elf.c
+ libyara/modules/hash.c
+ libyara/modules/math.c
+ libyara/modules/macho.c
+ libyara/modules/pe.c
+ libyara/modules/pe_utils.c
+ libyara/modules/tests.c
+ libyara/modules/time.c
+ libyara/object.c
+ libyara/parser.c
+ libyara/proc.c
+ libyara/proc/windows.c
+ libyara/re.c
+ libyara/re_grammar.c
+ libyara/re_lexer.c
+ libyara/rules.c
+ libyara/scan.c
+ libyara/sizedstr.c
+ libyara/stream.c
+ libyara/strutils.c
+ libyara/threading.c
+)
+
+set(
+ yara_sources
+ args.c
+ threading.c
+ yara.c
+)
+set( yarac_sources
+ args.c
+ yarac.c
+)
+
+add_library(libyara ${libyara_sources})
+
+target_link_libraries(libyara PRIVATE OpenSSL::SSL OpenSSL::Crypto ${JANSSON_LIBRARY})
+target_compile_definitions(
+ libyara
+ PRIVATE
+ -DHAVE_LIBCRYPTO -DUSE_WINDOWS_PROC
+ -DCUCKOO_MODULE- DHASH_MODULE -DDOTNET_MODULE
+)
+
+
+add_executable(yara ${yara_sources})
+add_executable(yarac ${yarac_sources})
+
+target_link_libraries(yarac PRIVATE libyara OpenSSL::SSL OpenSSL::Crypto ${JANSSON_LIBRARY})
+target_link_libraries(yara PRIVATE libyara OpenSSL::SSL OpenSSL::Crypto ${JANSSON_LIBRARY})
+
+install(
+ TARGETS libyara
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_TOOLS)
+ install (
+ TARGETS yarac yara
+ RUNTIME DESTINATION tools/yara
+ )
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(DIRECTORY libyara/include/ DESTINATION include)
+endif()
diff --git a/ports/yara/CONTROL b/ports/yara/CONTROL
new file mode 100644
index 000000000..8772a00c6
--- /dev/null
+++ b/ports/yara/CONTROL
@@ -0,0 +1,4 @@
+Source: yara
+Version: e3439e4ead4ed5d3b75a0b46eaf15ddda2110bb9
+Description: The pattern matching swiss knife
+Build-Depends: openssl, jansson
diff --git a/ports/yara/portfile.cmake b/ports/yara/portfile.cmake
new file mode 100644
index 000000000..8e70a0d7f
--- /dev/null
+++ b/ports/yara/portfile.cmake
@@ -0,0 +1,26 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "Building static")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO VirusTotal/yara
+ REF e3439e4ead4ed5d3b75a0b46eaf15ddda2110bb9
+ SHA512 2cb837c8e2617e66766b45339a99f3f441f842cb14ce7efe38f5ec2141a51696a400279d98514be4471234c8ef7c99419f56f5b7398af13d771294b2923090aa
+ HEAD_REF dev
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/yara RENAME copyright)
diff --git a/ports/yato/CONTROL b/ports/yato/CONTROL
new file mode 100644
index 000000000..f19519315
--- /dev/null
+++ b/ports/yato/CONTROL
@@ -0,0 +1,3 @@
+Source: yato
+Version: 1.0-1
+Description: Modern C++14 containers and utilities, actors system, typesafe config
diff --git a/ports/yato/portfile.cmake b/ports/yato/portfile.cmake
new file mode 100644
index 000000000..44ee93782
--- /dev/null
+++ b/ports/yato/portfile.cmake
@@ -0,0 +1,41 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_bitbucket(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO alexey_gruzdev/yato
+ REF v1.0
+ SHA512 631b870fd2704a03d9d66ef244f4e50968ae63da4fda0c7cd1f6ce2cea2b1e8b4506b0148cd1af1e133a70fd5d9cdc9d8c054edac6141118ee3c9427e186b270
+ HEAD_REF master
+)
+
+# Copy all header files
+file(COPY "${SOURCE_PATH}/include/yato"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/include"
+)
+file(COPY "${SOURCE_PATH}/modules/actors/yato"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/include"
+)
+file(COPY "${SOURCE_PATH}/modules/config/yato"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/include"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DYATO_BUILD_TESTS:BOOL=OFF
+ -DYATO_BUILD_ACTORS:BOOL=ON
+ -DYATO_BUILD_CONFIG:BOOL=ON
+ -DYATO_CONFIG_MANUAL:BOOL=ON
+ -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${CURRENT_PACKAGES_DIR}/debug/lib/
+ -DCMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG:PATH=${CURRENT_PACKAGES_DIR}/debug/lib/
+ -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG:PATH=${CURRENT_PACKAGES_DIR}/debug/lib/
+ -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${CURRENT_PACKAGES_DIR}/lib/
+ -DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE:PATH=${CURRENT_PACKAGES_DIR}/lib/
+ -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE:PATH=${CURRENT_PACKAGES_DIR}/lib/
+)
+
+vcpkg_build_cmake()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/yato)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/yato/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/yato/copyright)
diff --git a/ports/yoga/CONTROL b/ports/yoga/CONTROL
new file mode 100644
index 000000000..7a96eb9c2
--- /dev/null
+++ b/ports/yoga/CONTROL
@@ -0,0 +1,3 @@
+Source: yoga
+Version: 1.8.0-1
+Description: Yoga is a cross-platform layout engine which implements Flexbox
diff --git a/ports/yoga/portfile.cmake b/ports/yoga/portfile.cmake
new file mode 100644
index 000000000..5dbb4e527
--- /dev/null
+++ b/ports/yoga/portfile.cmake
@@ -0,0 +1,47 @@
+# 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)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(WARNING "Dynamic not supported, building static")
+ set(VCPKG_LIBRARY_LINKAGE static)
+elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+ message(FATAL_ERROR "Error: UWP builds not supported yet.")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO facebook/yoga
+ REF v1.8.0
+ SHA512 9af0e9e66ce223c99a9cab12721099ca40f85d2fa2a0e0a7d2bcff6d5acc5b6ca0edaaa53e49ec921bf78bb986070702cfe3271c4819147486dad6f6ee93e690
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+)
+
+vcpkg_build_cmake()
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/yoga DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN "*.h")
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/yogacore.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+endif()
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/yogacore.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+endif()
+
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/yoga RENAME copyright) \ No newline at end of file
diff --git a/ports/zeromq/CONTROL b/ports/zeromq/CONTROL
index 6b82f310a..fc3b8da7b 100644
--- a/ports/zeromq/CONTROL
+++ b/ports/zeromq/CONTROL
@@ -1,3 +1,3 @@
Source: zeromq
-Version: 4.2.2
+Version: 2018-05-17
Description: The ZeroMQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products
diff --git a/ports/zeromq/portfile.cmake b/ports/zeromq/portfile.cmake
index a530598eb..4ea6df988 100644
--- a/ports/zeromq/portfile.cmake
+++ b/ports/zeromq/portfile.cmake
@@ -1,75 +1,57 @@
-set(ZEROMQ_VERSION 4.2.2)
-set(ZEROMQ_HASH 4069813374d4e8d4c0f8debbe85472d0bd24cf644fb1bce748920eadffb81c429d28f523ef424df84fcaa7082b984fab8da57192802585811d37cff066f4e40c)
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libzmq-${ZEROMQ_VERSION})
-vcpkg_download_distfile(ARCHIVE
- URLS "https://github.com/zeromq/libzmq/archive/v${ZEROMQ_VERSION}.tar.gz"
- FILENAME "libzmq-${ZEROMQ_VERSION}.tar.gz"
- SHA512 ${ZEROMQ_HASH}
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO zeromq/libzmq
+ REF 6a5051fac3bb09db7e7772dcbdd591ee7ded1400
+ SHA512 e05e1d293be513836e3afa117f6acb6f75ecd1b772c7be1c2850b0f165205fec8f0a91bb9b0aaffa9477aae5cc6aae401b9d5d5aa5986c28c3d76e3d4fa4f3e9
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
-# Map from triplet "x86" to "win32" as used in the vcxproj file.
-if (TRIPLET_SYSTEM_ARCH MATCHES "x86")
- set(MSBUILD_PLATFORM "Win32")
-else ()
- set(MSBUILD_PLATFORM ${TRIPLET_SYSTEM_ARCH})
-endif()
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED)
+
+set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} \"-I${SOURCE_PATH}/builds/msvc\"")
+set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} \"-I${SOURCE_PATH}/builds/msvc\"")
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DZMQ_BUILD_TESTS=OFF
+ -DPOLLER=select
+ -DBUILD_STATIC=${BUILD_STATIC}
+ -DBUILD_SHARED=${BUILD_SHARED}
+ -DWITH_PERF_TOOL=OFF
+ OPTIONS_DEBUG
+ "-DCMAKE_PDB_OUTPUT_DIRECTORY=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg"
+)
-if(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
- set(MSVS_VERSION 2017)
-else()
- set(MSVS_VERSION 2015)
-endif()
+vcpkg_install_cmake()
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/builds/msvc/vs${MSVS_VERSION}/libzmq/libzmq.vcxproj
- RELEASE_CONFIGURATION ReleaseDLL
- DEBUG_CONFIGURATION DebugDLL
- )
- file(INSTALL
- ${SOURCE_PATH}/bin/${MSBUILD_PLATFORM}/Debug/${VCPKG_PLATFORM_TOOLSET}/dynamic/libzmq.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
- )
- file(INSTALL
- ${SOURCE_PATH}/bin/${MSBUILD_PLATFORM}/Release/${VCPKG_PLATFORM_TOOLSET}/dynamic/libzmq.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin
- )
- file(INSTALL
- ${SOURCE_PATH}/bin/${MSBUILD_PLATFORM}/Debug/${VCPKG_PLATFORM_TOOLSET}/dynamic/libzmq.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
- )
- file(INSTALL
- ${SOURCE_PATH}/bin/${MSBUILD_PLATFORM}/Release/${VCPKG_PLATFORM_TOOLSET}/dynamic/libzmq.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib
- )
- vcpkg_copy_pdbs()
+vcpkg_copy_pdbs()
-else()
- vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/builds/msvc/vs${MSVS_VERSION}/libzmq/libzmq.vcxproj
- RELEASE_CONFIGURATION ReleaseLIB
- DEBUG_CONFIGURATION DebugLIB
- )
- file(INSTALL
- ${SOURCE_PATH}/bin/${MSBUILD_PLATFORM}/Debug/${VCPKG_PLATFORM_TOOLSET}/static/libzmq.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
- )
- file(INSTALL
- ${SOURCE_PATH}/bin/${MSBUILD_PLATFORM}/Release/${VCPKG_PLATFORM_TOOLSET}/static/libzmq.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib
- )
+if(EXISTS ${CURRENT_PACKAGES_DIR}/CMake)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH CMake)
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/share/cmake/ZeroMQ)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake/ZeroMQ)
endif()
+file(READ ${CURRENT_PACKAGES_DIR}/share/zeromq/ZeroMQConfig.cmake _contents)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ string(REPLACE "get_target_property(ZeroMQ_STATIC_LIBRARY libzmq-static LOCATION)" "add_library(libzmq-static INTERFACE IMPORTED)\nset_target_properties(libzmq-static PROPERTIES INTERFACE_LINK_LIBRARIES libzmq)" _contents "${_contents}")
+ set(_contents "${_contents}\nset(ZeroMQ_STATIC_LIBRARY \${ZeroMQ_LIBRARY})\n")
+else()
+ string(REPLACE "get_target_property(ZeroMQ_INCLUDE_DIR libzmq INTERFACE_INCLUDE_DIRECTORIES)" "get_target_property(ZeroMQ_INCLUDE_DIR libzmq-static INTERFACE_INCLUDE_DIRECTORIES)" _contents "${_contents}")
+ string(REPLACE "get_target_property(ZeroMQ_LIBRARY libzmq LOCATION)" "add_library(libzmq INTERFACE IMPORTED)\nset_target_properties(libzmq PROPERTIES INTERFACE_LINK_LIBRARIES libzmq-static)" _contents "${_contents}")
+ set(_contents "${_contents}\nset(ZeroMQ_LIBRARY \${ZeroMQ_STATIC_LIBRARY})\n")
-file(INSTALL
- ${SOURCE_PATH}/include/
- DESTINATION ${CURRENT_PACKAGES_DIR}/include
-)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/zeromq/ZeroMQConfig.cmake "${_contents}")
# Handle copyright
-file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/zeromq)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/zeromq/COPYING ${CURRENT_PACKAGES_DIR}/share/zeromq/copyright)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/zmq/COPYING.LESSER.txt ${CURRENT_PACKAGES_DIR}/share/zeromq/copyright)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share ${CURRENT_PACKAGES_DIR}/share/zmq)
diff --git a/ports/zlib/CONTROL b/ports/zlib/CONTROL
index def1ef6be..c55963783 100644
--- a/ports/zlib/CONTROL
+++ b/ports/zlib/CONTROL
@@ -1,3 +1,3 @@
Source: zlib
-Version: 1.2.11
-Description: A compression library \ No newline at end of file
+Version: 1.2.11-3
+Description: A compression library
diff --git a/ports/zlib/cmake_dont_build_more_than_needed.patch b/ports/zlib/cmake_dont_build_more_than_needed.patch
new file mode 100644
index 000000000..229a2d055
--- /dev/null
+++ b/ports/zlib/cmake_dont_build_more_than_needed.patch
@@ -0,0 +1,42 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0fe939d..8d2f5f1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,6 +7,7 @@ set(VERSION "1.2.11")
+
+ option(ASM686 "Enable building i686 assembly implementation")
+ option(AMD64 "Enable building amd64 assembly implementation")
++option(SKIP_BUILD_EXAMPLES "Skip build of the examples" OFF)
+
+ set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
+ set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
+@@ -211,7 +212,15 @@ elseif(BUILD_SHARED_LIBS AND WIN32)
+ endif()
+
+ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
+- install(TARGETS zlib zlibstatic
++ if (BUILD_SHARED_LIBS)
++ set(ZLIB_TARGETS zlib)
++ set_target_properties(zlibstatic PROPERTIES EXCLUDE_FROM_ALL ON)
++ else()
++ set(ZLIB_TARGETS zlibstatic)
++ set_target_properties(zlib PROPERTIES EXCLUDE_FROM_ALL ON)
++ endif()
++
++ install(TARGETS ${ZLIB_TARGETS}
+ RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
+ ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
+ LIBRARY DESTINATION "${INSTALL_LIB_DIR}" )
+@@ -230,6 +239,7 @@ endif()
+ # Example binaries
+ #============================================================================
+
++if (NOT SKIP_BUILD_EXAMPLES)
+ add_executable(example test/example.c)
+ target_link_libraries(example zlib)
+ add_test(example example)
+@@ -247,3 +257,4 @@ if(HAVE_OFF64_T)
+ target_link_libraries(minigzip64 zlib)
+ set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
+ endif()
++endif()
diff --git a/ports/zlib/portfile.cmake b/ports/zlib/portfile.cmake
index 0d53d9e89..d924e2135 100644
--- a/ports/zlib/portfile.cmake
+++ b/ports/zlib/portfile.cmake
@@ -7,10 +7,21 @@ vcpkg_download_distfile(ARCHIVE_FILE
)
vcpkg_extract_source_archive(${ARCHIVE_FILE})
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/cmake_dont_build_more_than_needed.patch
+)
+
+# This is generated during the cmake build
+file(REMOVE ${SOURCE_PATH}/zconf.h)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
OPTIONS
-DSKIP_INSTALL_FILES=ON
+ -DSKIP_BUILD_EXAMPLES=ON
OPTIONS_DEBUG
-DSKIP_INSTALL_HEADERS=ON
)
@@ -18,15 +29,17 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
# Both dynamic and static are built, so keep only the one needed
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/zlibstatic.lib ${CURRENT_PACKAGES_DIR}/debug/lib/zlibstaticd.lib)
-else()
- file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/zlib.lib ${CURRENT_PACKAGES_DIR}/debug/lib/zlibd.lib)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
- 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(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/zlibstatic.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/zlibstatic.lib ${CURRENT_PACKAGES_DIR}/lib/zlib.lib)
+ endif()
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/zlibstaticd.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)
-vcpkg_copy_pdbs() \ No newline at end of file
+vcpkg_copy_pdbs()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/zlib/usage b/ports/zlib/usage
new file mode 100644
index 000000000..39d861822
--- /dev/null
+++ b/ports/zlib/usage
@@ -0,0 +1,4 @@
+The package zlib is compatible with built-in CMake targets:
+
+ find_package(ZLIB REQUIRED)
+ target_link_libraries(main PRIVATE ZLIB::ZLIB)
diff --git a/ports/zstd/CONTROL b/ports/zstd/CONTROL
index 19c1bd4e8..406d67176 100644
--- a/ports/zstd/CONTROL
+++ b/ports/zstd/CONTROL
@@ -1,3 +1,3 @@
Source: zstd
-Version: 1.2.0
+Version: 1.3.4
Description: Zstandard - Fast real-time compression algorithm http://www.zstd.net
diff --git a/ports/zstd/fix-buildsystem.diff b/ports/zstd/fix-buildsystem.diff
deleted file mode 100644
index b0dfaf09c..000000000
--- a/ports/zstd/fix-buildsystem.diff
+++ /dev/null
@@ -1,100 +0,0 @@
-diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt
-index 5c4eca6..2f933e2 100644
---- a/build/cmake/CMakeLists.txt
-+++ b/build/cmake/CMakeLists.txt
-@@ -15,8 +15,8 @@ LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
- #-----------------------------------------------------------------------------
- # Add extra compilation flags
- #-----------------------------------------------------------------------------
--INCLUDE(AddZstdCompilationFlags)
--ADD_ZSTD_COMPILATION_FLAGS()
-+#INCLUDE(AddZstdCompilationFlags)
-+#ADD_ZSTD_COMPILATION_FLAGS() Combination of flags set there makes no sense & triggers compiler errors in release
-
- #-----------------------------------------------------------------------------
- # Options
-diff --git a/build/cmake/lib/CMakeLists.txt b/build/cmake/lib/CMakeLists.txt
-index 429d494..4c13057 100644
---- a/build/cmake/lib/CMakeLists.txt
-+++ b/build/cmake/lib/CMakeLists.txt
-@@ -90,37 +90,34 @@ IF (MSVC)
- ENDIF (MSVC)
-
- # Split project to static and shared libraries build
--ADD_LIBRARY(libzstd_shared SHARED ${Sources} ${Headers} ${PlatformDependResources})
-+IF (ZSTD_BUILD_SHARED)
-+ ADD_LIBRARY(libzstd_shared SHARED ${Sources} ${Headers} ${PlatformDependResources})
-+ENDIF(ZSTD_BUILD_SHARED)
- IF (ZSTD_BUILD_STATIC)
- ADD_LIBRARY(libzstd_static STATIC ${Sources} ${Headers})
- ENDIF (ZSTD_BUILD_STATIC)
-
- # Add specific compile definitions for MSVC project
- IF (MSVC)
-- SET_PROPERTY(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_DLL_EXPORT=1;ZSTD_HEAPMODE=0;_CONSOLE;_CRT_SECURE_NO_WARNINGS")
-+ IF(ZSTD_BUILD_SHARED)
-+ SET_PROPERTY(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_DLL_EXPORT=1;ZSTD_HEAPMODE=0;_CONSOLE;_CRT_SECURE_NO_WARNINGS")
-+ ENDIF(ZSTD_BUILD_SHARED)
- IF (ZSTD_BUILD_STATIC)
- SET_PROPERTY(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_HEAPMODE=0;_CRT_SECURE_NO_WARNINGS")
- ENDIF (ZSTD_BUILD_STATIC)
- ENDIF (MSVC)
-
- # Define library base name
--IF (MSVC)
--
-- IF (CMAKE_SIZEOF_VOID_P MATCHES "8")
-- SET(LIBRARY_BASE_NAME "zstdlib_x64")
-- ELSE ()
-- SET(LIBRARY_BASE_NAME "zstdlib_x86")
-- ENDIF (CMAKE_SIZEOF_VOID_P MATCHES "8")
--ELSE ()
-- SET(LIBRARY_BASE_NAME zstd)
--ENDIF (MSVC)
-+SET(LIBRARY_BASE_NAME zstd)
-
- # Define static and shared library names
--SET_TARGET_PROPERTIES(
-- libzstd_shared
-- PROPERTIES
-- OUTPUT_NAME ${LIBRARY_BASE_NAME}
-- SOVERSION ${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE})
-+IF(ZSTD_BUILD_SHARED)
-+ SET_TARGET_PROPERTIES(
-+ libzstd_shared
-+ PROPERTIES
-+ OUTPUT_NAME ${LIBRARY_BASE_NAME}
-+ SOVERSION ${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE})
-+ENDIF(ZSTD_BUILD_SHARED)
-
- IF (ZSTD_BUILD_STATIC)
- SET_TARGET_PROPERTIES(
-@@ -129,6 +126,15 @@ IF (ZSTD_BUILD_STATIC)
- OUTPUT_NAME ${LIBRARY_BASE_NAME})
- ENDIF (ZSTD_BUILD_STATIC)
-
-+
-+INSTALL(FILES ${LIBRARY_DIR}/zstd.h ${LIBRARY_DIR}/deprecated/zbuff.h ${LIBRARY_DIR}/dictBuilder/zdict.h DESTINATION "include")
-+IF(ZSTD_BUILD_SHARED)
-+ INSTALL(TARGETS libzstd_shared RUNTIME DESTINATION "bin" ARCHIVE DESTINATION "lib" LIBRARY DESTINATION "lib")
-+ENDIF(ZSTD_BUILD_SHARED)
-+IF (ZSTD_BUILD_STATIC)
-+ INSTALL(TARGETS libzstd_static ARCHIVE DESTINATION "lib")
-+ENDIF (ZSTD_BUILD_STATIC)
-+
- IF (UNIX)
- # pkg-config
- SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
-@@ -142,12 +148,7 @@ IF (UNIX)
- COMMENT "Creating pkg-config file")
-
- # install target
-- INSTALL(FILES ${LIBRARY_DIR}/zstd.h ${LIBRARY_DIR}/deprecated/zbuff.h ${LIBRARY_DIR}/dictBuilder/zdict.h DESTINATION "include")
- INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/libzstd.pc" DESTINATION "share/pkgconfig")
-- INSTALL(TARGETS libzstd_shared LIBRARY DESTINATION "lib")
-- IF (ZSTD_BUILD_STATIC)
-- INSTALL(TARGETS libzstd_static ARCHIVE DESTINATION "lib")
-- ENDIF (ZSTD_BUILD_STATIC)
-
- # uninstall target
- CONFIGURE_FILE(
diff --git a/ports/zstd/portfile.cmake b/ports/zstd/portfile.cmake
index d6fe4eb59..c691a989c 100644
--- a/ports/zstd/portfile.cmake
+++ b/ports/zstd/portfile.cmake
@@ -2,13 +2,10 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO facebook/zstd
- REF v1.2.0
- SHA512 b21910c6bdcfad3199c07b9f70f7c049062ebd1cce9249dd33c36153e29f24dd9e796ddbc2f37846b9f508c14b0d0f67651fd8d2bdce558128f20bdfff50a7df
+ REF v1.3.4
+ SHA512 d3c8c1dfabd251b03205b64eff97898c1e2ca457191b1f6257450e6d2675451a68aa0bc2220b2c65baa69a6997d98490612779d95b3325320c0a3202810ae554
HEAD_REF dev)
-vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
- PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-buildsystem.diff)
-
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(ZSTD_STATIC 1)
set(ZSTD_SHARED 0)
@@ -17,6 +14,11 @@ else()
set(ZSTD_SHARED 1)
endif()
+# Enable multithreaded mode. CMake build doesn't provide a multithreaded
+# library target, but it is the default in Makefile and VS projects.
+set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} /DZSTD_MULTITHREAD")
+set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS}")
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}/build/cmake
PREFER_NINJA
@@ -26,14 +28,16 @@ vcpkg_configure_cmake(
-DZSTD_LEGACY_SUPPORT=1
-DZSTD_BUILD_PROGRAMS=0
-DZSTD_BUILD_TESTS=0
- -DZSTD_BUILD_CONTRIB=0)
+ -DZSTD_BUILD_CONTRIB=0
+ OPTIONS_DEBUG
+ -DCMAKE_DEBUG_POSTFIX=d)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- foreach(HEADER zdict.h zstd.h)
+ foreach(HEADER zdict.h zstd.h zstd_errors.h)
file(READ ${CURRENT_PACKAGES_DIR}/include/${HEADER} HEADER_CONTENTS)
string(REPLACE "defined(ZSTD_DLL_IMPORT) && (ZSTD_DLL_IMPORT==1)" "1" HEADER_CONTENTS "${HEADER_CONTENTS}")
file(WRITE ${CURRENT_PACKAGES_DIR}/include/${HEADER} "${HEADER_CONTENTS}")
@@ -41,4 +45,5 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
endif()
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/zstd)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/zstd/LICENSE ${CURRENT_PACKAGES_DIR}/share/zstd/copyright)
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/zstd)
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/zstd/copyright "ZSTD is dual licensed - see LICENSE and COPYING files\n")
diff --git a/ports/zziplib/CMakeLists.txt b/ports/zziplib/CMakeLists.txt
index 7f46079e9..e56df5da9 100644
--- a/ports/zziplib/CMakeLists.txt
+++ b/ports/zziplib/CMakeLists.txt
@@ -23,7 +23,6 @@ set(HEADERS zzip/__debug.h
zzip/__fnmatch.h
zzip/__hints.h
zzip/__mmap.h
- zzip/_config.h
zzip/_msvc.h
zzip/autoconf.h
zzip/conf.h
@@ -55,7 +54,7 @@ set(SRCS zzip/dir.c
add_library(zziplib ${SRCS} ${HEADERS})
-if(${BUILD_SHARED_LIBS})
+if(BUILD_SHARED_LIBS)
target_compile_definitions(zziplib PRIVATE -DZZIPLIB_EXPORTS)
endif()
diff --git a/ports/zziplib/CONTROL b/ports/zziplib/CONTROL
index 235b72c63..4d4f7ea58 100644
--- a/ports/zziplib/CONTROL
+++ b/ports/zziplib/CONTROL
@@ -1,4 +1,4 @@
Source: zziplib
-Version: 0.13.62
+Version: 0.13.69
Build-Depends: zlib
Description: library providing read access on ZIP-archives
diff --git a/ports/zziplib/portfile.cmake b/ports/zziplib/portfile.cmake
index 2a7e18e56..2ff90af94 100644
--- a/ports/zziplib/portfile.cmake
+++ b/ports/zziplib/portfile.cmake
@@ -1,11 +1,10 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/zziplib-0.13.62)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://sourceforge.net/projects/zziplib/files/zziplib13/0.13.62/zziplib-0.13.62.tar.bz2/download"
- FILENAME "zziplib-0.13.62.tar.bz2"
- SHA512 fd3b9e9015ba7603bdebd8f6a2ac6d11003705bfab22f3a0025f75455042664aea69440845b59e6f389417dff5ac777f49541d8cbacb2a220e67d20bb6973e25
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO gdraheim/zziplib
+ REF v0.13.69
+ SHA512 ade026289737f43ca92a8746818d87dd7618d473dbce159546ce9071c9e4cbe164a6b1c9efff16efb7aa0327b2ec6b34f3256c6bda19cd6e325703fffc810ef0
)
-vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})