diff options
| author | Alexander Neumann <30894796+Neumann-A@users.noreply.github.com> | 2019-08-19 21:40:43 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-08-19 21:40:43 +0200 |
| commit | 70f4aabbe8bf5273e11a03f804d4361354cf0a11 (patch) | |
| tree | c2d553869f70b8fce7b2539bcaa8ffb8bb8aa0cc | |
| parent | 173642528e2cf7a3f18b41d903b5ff5a758d34ae (diff) | |
| parent | 8e7ce6d91a060bba5f9e252a5d9aad92f5bd4a56 (diff) | |
| download | vcpkg-70f4aabbe8bf5273e11a03f804d4361354cf0a11.tar.gz vcpkg-70f4aabbe8bf5273e11a03f804d4361354cf0a11.zip | |
Merge branch 'master' into path_separator
288 files changed, 5004 insertions, 2280 deletions
diff --git a/docs/maintainers/maintainer-guide.md b/docs/maintainers/maintainer-guide.md index e4938844f..f52172356 100644 --- a/docs/maintainers/maintainer-guide.md +++ b/docs/maintainers/maintainer-guide.md @@ -1,26 +1,37 @@ # Maintainer Guidelines and Policies
-This document lists a set of policies that you should apply when adding or updating a port recipe. It is intended to serve the role of [Debian's Policy Manual](https://www.debian.org/doc/debian-policy/), [Homebrew's Maintainer Guidelines](https://docs.brew.sh/Maintainer-Guidelines), and [Homebrew's Formula Cookbook](https://docs.brew.sh/Formula-Cookbook).
+This document lists a set of policies that you should apply when adding or updating a port recipe.
+It is intended to serve the role of
+[Debian's Policy Manual](https://www.debian.org/doc/debian-policy/),
+[Homebrew's Maintainer Guidelines](https://docs.brew.sh/Maintainer-Guidelines), and
+[Homebrew's Formula Cookbook](https://docs.brew.sh/Formula-Cookbook).
## PR Structure
### Make separate Pull Requests per port
-Whenever possible, separate changes into multiple PR's. This makes them significantly easier to review and prevents issues with one set of changes from holding up every other change.
+Whenever possible, separate changes into multiple PRs.
+This makes them significantly easier to review and prevents issues with one set of changes from holding up every other change.
### Avoid trivial changes in untouched files
-For example, avoid reformatting or renaming variables in portfiles that otherwise have no reason to be modified for the issue at hand. However, if you need to modify the file for the primary purpose of the PR (updating the library), then obviously beneficial changes like fixing typos are appreciated!
+For example, avoid reformatting or renaming variables in portfiles that otherwise have no reason to be modified for the issue at hand.
+However, if you need to modify the file for the primary purpose of the PR (updating the library),
+then obviously beneficial changes like fixing typos are appreciated!
### Check names against other repositories
-A good service to check many at once is [Repology](https://repology.org/). If the library you are adding could be confused with another one, consider renaming to make it clear.
+A good service to check many at once is [Repology](https://repology.org/).
+If the library you are adding could be confused with another one,
+consider renaming to make it clear.
### Use GitHub Draft PRs
-GitHub Draft PRs are a great way to get CI or human feedback on work that isn't yet ready to merge. Most new PRs should be opened as drafts and converted to normal PRs once the CI passes.
+GitHub Draft PRs are a great way to get CI or human feedback on work that isn't yet ready to merge.
+Most new PRs should be opened as drafts and converted to normal PRs once the CI passes.
-More information about GitHub Draft PRs: https://github.blog/2019-02-14-introducing-draft-pull-requests/
+More information about GitHub Draft PRs:
+https://github.blog/2019-02-14-introducing-draft-pull-requests/
## Portfiles
@@ -28,29 +39,33 @@ More information about GitHub Draft PRs: https://github.blog/2019-02-14-introduc At this time, the following helpers are deprecated:
-1. `vcpkg_extract_archive()` should be replaced by `vcpkg_extract_archive_ex()`
-2. `vcpkg_apply_patches()` should be replaced by the `PATCHES` arguments to the "extract" helpers (e.g. `vcpkg_from_github()`)
-3. `vcpkg_build_msbuild()` should be replaced by `vcpkg_install_msbuild()`
+1. `vcpkg_extract_archive()` should be replaced by [`vcpkg_extract_archive_ex()`](vcpkg_extract_archive_ex.md)
+2. `vcpkg_apply_patches()` should be replaced by the `PATCHES` arguments to the "extract" helpers (e.g. [`vcpkg_from_github()`](vcpkg_from_github.md))
+3. `vcpkg_build_msbuild()` should be replaced by [`vcpkg_install_msbuild()`](vcpkg_install_msbuild.md)
### Avoid excessive comments in portfiles
-Ideally, portfiles should be short, simple, and as declarative as possible. Remove any boiler plate comments introduced by the `create` command before submitting a PR.
+Ideally, portfiles should be short, simple, and as declarative as possible.
+Remove any boiler plate comments introduced by the `create` command before submitting a PR.
## Build Techniques
### Do not use vendored dependencies
-Do not use embedded copies of libraries. All dependencies should be split out and packaged separately so they can be updated and maintained.
+Do not use embedded copies of libraries.
+All dependencies should be split out and packaged separately so they can be updated and maintained.
### Prefer using CMake
-When multiple buildsystems are available, prefer using CMake. Additionally, when appropriate, it can be easier and more maintainable to rewrite alternative buildsystems into CMake using `file(GLOB)` directives.
+When multiple buildsystems are available, prefer using CMake.
+Additionally, when appropriate, it can be easier and more maintainable to rewrite alternative buildsystems into CMake using `file(GLOB)` directives.
Examples: [abseil](../../ports/abseil/portfile.cmake)
### Choose either static or shared binaries
-By default, `vcpkg_configure_cmake()` will pass in the appropriate setting for `BUILD_SHARED_LIBS`, however for libraries that don't respect that variable, you can switch on `VCPKG_LIBRARY_LINKAGE`:
+By default, `vcpkg_configure_cmake()` will pass in the appropriate setting for `BUILD_SHARED_LIBS`,
+however for libraries that don't respect that variable, you can switch on `VCPKG_LIBRARY_LINKAGE`:
```cmake
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" KEYSTONE_BUILD_STATIC)
@@ -67,19 +82,37 @@ vcpkg_configure_cmake( ### When defining features, explicitly control dependencies
-When defining a feature that captures an optional dependency, ensure that the dependency will not be used accidentally when the feature is not explicitly enabled. For example:
+When defining a feature that captures an optional dependency,
+ensure that the dependency will not be used accidentally when the feature is not explicitly enabled.
```cmake
-set(CMAKE_DISABLE_FIND_PACKAGE_ZLIB ON)
-if("zlib" IN_LIST FEATURES)
- set(CMAKE_DISABLE_FIND_PACKAGE_ZLIB OFF)
+if ("zlib" IN_LIST FEATURES)
+ set(CMAKE_DISABLE_FIND_PACKAGE_ZLIB OFF)
+else()
+ set(CMAKE_DISABLE_FIND_PACKAGE_ZLIB ON)
endif()
vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -CMAKE_DISABLE_FIND_PACKAGE_ZLIB=${CMAKE_DISABLE_FIND_PACKAGE_ZLIB}
+)
+```
+
+The snippet below using `vcpkg_check_features()` is equivalent, [see the documentation](vcpkg_check_features.md).
+
+```cmake
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ INVERTED_FEATURES
+ "zlib" CMAKE_DISABLE_FIND_PACKAGE_ZLIB
+)
+
+vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
- -DCMAKE_DISABLE_FIND_PACKAGE_ZLIB=${CMAKE_DISABLE_FIND_PACKAGE_ZLIB}
+ ${FEATURE_OPTIONS}
)
```
@@ -125,6 +158,22 @@ Common options that allow avoiding patching: 2. [CMAKE] Calls to `find_package(XYz)` in CMake scripts can be disabled via [`-DCMAKE_DISABLE_FIND_PACKAGE_XYz=ON`](https://cmake.org/cmake/help/v3.15/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html)
3. [CMAKE] Cache variables (declared as `set(VAR "value" CACHE STRING "Documentation")` or `option(VAR "Documentation" "Default Value")`) can be overriden by just passing them in on the command line as `-DVAR:STRING=Foo`. One notable exception is if the `FORCE` parameter is passed to `set()`. See also the [CMake `set` documentation](https://cmake.org/cmake/help/v3.15/command/set.html)
+### Prefer patching over overriding `VCPKG_<VARIABLE>` values
+
+Some variables prefixed with `VCPKG_<VARIABLE>` have an equivalent `CMAKE_<VARIABLE>`.
+However, not all of them are passed to the internal package build [(see implementation: Windows toolchain)](../../scripts/toolchains/windows.cmake).
+
+Consider the following example:
+
+```cmake
+set(VCPKG_C_FLAGS "-O2 ${VCPKG_C_FLAGS}")
+set(VCPKG_CXX_FLAGS "-O2 ${VCPKG_CXX_FLAGS}")
+```
+
+Using `vcpkg`'s built-in toolchains this works, because the value of `VCPKG_<LANG>_FLAGS` is forwarded to the appropriate `CMAKE_LANG_FLAGS` variable. But, a custom toolchain that is not aware of `vcpkg`'s variables will not forward them.
+
+Because of this, it is preferable to patch the buildsystem directly when setting `CMAKE_<LANG>_FLAGS`.
+
### Minimize patches
When making changes to a library, strive to minimize the final diff. This means you should _not_ reformat the upstream source code when making changes that affect a region. Also, when disabling a conditional, it is better to add a `AND FALSE` or `&& 0` to the condition than to delete every line of the conditional.
diff --git a/docs/maintainers/portfile-functions.md b/docs/maintainers/portfile-functions.md index b98d89192..eadebf49a 100644 --- a/docs/maintainers/portfile-functions.md +++ b/docs/maintainers/portfile-functions.md @@ -24,4 +24,5 @@ - [vcpkg\_from\_gitlab](vcpkg_from_gitlab.md)
- [vcpkg\_install\_cmake](vcpkg_install_cmake.md)
- [vcpkg\_install\_msbuild](vcpkg_install_msbuild.md)
+- [vcpkg\_prettify\_command](vcpkg_prettify_command.md)
- [vcpkg\_test\_cmake](vcpkg_test_cmake.md)
diff --git a/docs/maintainers/vcpkg_check_features.md b/docs/maintainers/vcpkg_check_features.md index 46ee9051a..cec01dde2 100644 --- a/docs/maintainers/vcpkg_check_features.md +++ b/docs/maintainers/vcpkg_check_features.md @@ -1,71 +1,148 @@ # vcpkg_check_features - -Check if one or more features are a part of the package installation. +Check if one or more features are a part of a package installation. ## Usage ```cmake vcpkg_check_features( - <feature1> <output_variable1> - [<feature2> <output_variable2>] - ... + OUT_FEATURE_OPTIONS <FEATURE_OPTIONS> + [FEATURES + <cuda> <WITH_CUDA> + [<opencv> <WITH_OPENCV>] + ...] + [INVERTED_FEATURES + <cuda> <IGNORE_PACKAGE_CUDA> + [<opencv> <IGNORE_PACKAGE_OPENCV>] + ...] ) ``` +`vcpkg_check_features()` accepts these parameters: -`vcpkg_check_features` accepts a list of (feature, output_variable) pairs. If a feature is specified, the corresponding output variable will be set as `ON`, or `OFF` otherwise. The syntax is similar to the `PROPERTIES` argument of `set_target_properties`. +* `OUT_FEATURE_OPTIONS`: + An output variable, the function will clear the variable passed to `OUT_FEATURE_OPTIONS` + and then set it to contain a list of option definitions (`-D<OPTION_NAME>=ON|OFF`). + + This should be set to `FEATURE_OPTIONS` by convention. + +* `FEATURES`: + A list of (`FEATURE_NAME`, `OPTION_NAME`) pairs. + For each `FEATURE_NAME` a definition is added to `OUT_FEATURE_OPTIONS` in the form of: + + * `-D<OPTION_NAME>=ON`, if a feature is specified for installation, + * `-D<OPTION_NAME>=OFF`, otherwise. + +* `INVERTED_FEATURES`: + A list of (`FEATURE_NAME`, `OPTION_NAME`) pairs, uses reversed logic from `FEATURES`. + For each `FEATURE_NAME` a definition is added to `OUT_FEATURE_OPTIONS` in the form of: + + * `-D<OPTION_NAME>=OFF`, if a feature is specified for installation, + * `-D<OPTION_NAME>=ON`, otherwise. -`vcpkg_check_features` will create a variable `FEATURE_OPTIONS` in the parent scope, which you can pass as a part of `OPTIONS` argument when calling functions like `vcpkg_config_cmake`: -```cmake -vcpkg_config_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS - -DBUILD_TESTING=ON - ${FEATURE_OPTIONS} -) -``` ## Notes + +The `FEATURES` name parameter can be omitted if no `INVERTED_FEATURES` are used. + +At least one (`FEATURE_NAME`, `OPTION_NAME`) pair must be passed to the function call. + +Arguments passed to `FEATURES` and `INVERTED_FEATURES` are not validated to prevent duplication. +If the same (`FEATURE_NAME`, `OPTION_NAME`) pair is passed to both lists, +two conflicting definitions are added to `OUT_FEATURE_OPTIONS`. + + +## Examples + +### Example 1: Regular features + ```cmake -vcpkg_check_features(<feature> <output_variable>) -``` -can be used as a replacement of: -```cmake -if(<feature> IN_LIST FEATURES) - set(<output_variable> ON) -else() - set(<output_variable> OFF) -endif() +$ ./vcpkg install mimalloc[asm,secure] + +# ports/mimalloc/portfile.cmake +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + # Keyword FEATURES is optional if INVERTED_FEATURES are not used + asm MI_SEE_ASM + override MI_OVERRIDE + secure MI_SECURE +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + # Expands to "-DMI_SEE_ASM=ON; -DMI_OVERRIDE=OFF; -DMI_SECURE=ON" + ${FEATURE_OPTIONS} +) ``` -However, if you have a feature that was checked like this before: +### Example 2: Inverted features + ```cmake -if(<feature> IN_LIST FEATURES) - set(<output_variable> OFF) -else() - set(<output_variable> ON) -endif() +$ ./vcpkg install cpprestsdk[websockets] + +# ports/cpprestsdk/portfile.cmake +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + INVERTED_FEATURES # <- Keyword INVERTED_FEATURES required + brotli CPPREST_EXCLUDE_BROTLI + websockets CPPREST_EXCLUDE_WEBSOCKETS +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + # Expands to "-DCPPREST_EXCLUDE_BROTLI=ON; -DCPPREST_EXCLUDE_WEBSOCKETS=OFF" + ${FEATURE_OPTIONS} +) ``` -then you should not use `vcpkg_check_features` instead. [```oniguruma```](https://github.com/microsoft/vcpkg/blob/master/ports/oniguruma/portfile.cmake), for example, has a feature named `non-posix` which is checked with: + +### Example 3: Set multiple options for same feature + ```cmake -if("non-posix" IN_LIST FEATURES) - set(ENABLE_POSIX_API OFF) -else() - set(ENABLE_POSIX_API ON) -endif() -``` -and by replacing these code with: +$ ./vcpkg install pcl[cuda] + +# ports/pcl/portfile.cmake +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + cuda WITH_CUDA + cuda BUILD_CUDA + cuda BUILD_GPU +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + # Expands to "-DWITH_CUDA=ON; -DBUILD_CUDA=ON; -DBUILD_GPU=ON" + ${FEATURE_OPTIONS} +) +``` + +### Example 4: Use regular and inverted features + ```cmake -vcpkg_check_features(non-posix ENABLE_POSIX_API) -``` -is totally wrong. +$ ./vcpkg install rocksdb[tbb] -`vcpkg_check_features` is supposed to be called only once. Otherwise, the `FEATURE_OPTIONS` variable set by a previous call will be overwritten. +# ports/rocksdb/portfile.cmake +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES # <- Keyword FEATURES is required because INVERTED_FEATURES are being used + tbb WITH_TBB + INVERTED_FEATURES + tbb ROCKSDB_IGNORE_PACKAGE_TBB +) -## Examples +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + # Expands to "-DWITH_TBB=ON; -DROCKSDB_IGNORE_PACKAGE_TBB=OFF" + ${FEATURE_OPTIONS} +) +``` + +## Examples in portfiles + +* [cpprestsdk](https://github.com/microsoft/vcpkg/blob/master/ports/cpprestsdk/portfile.cmake) +* [pcl](https://github.com/microsoft/vcpkg/blob/master/ports/pcl/portfile.cmake) +* [rocksdb](https://github.com/microsoft/vcpkg/blob/master/ports/rocksdb/portfile.cmake) -* [czmq](https://github.com/microsoft/vcpkg/blob/master/ports/czmq/portfile.cmake) -* [xsimd](https://github.com/microsoft/vcpkg/blob/master/ports/xsimd/portfile.cmake) -* [xtensor](https://github.com/microsoft/vcpkg/blob/master/ports/xtensor/portfile.cmake) ## Source [scripts/cmake/vcpkg_check_features.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_check_features.cmake)
diff --git a/docs/maintainers/vcpkg_configure_cmake.md b/docs/maintainers/vcpkg_configure_cmake.md index b78ef54d9..ebbd92ed1 100644 --- a/docs/maintainers/vcpkg_configure_cmake.md +++ b/docs/maintainers/vcpkg_configure_cmake.md @@ -18,14 +18,15 @@ vcpkg_configure_cmake( ## Parameters ### SOURCE_PATH -Specifies the directory containing the `CMakeLists.txt`. By convention, this is usually set in the portfile as the variable `SOURCE_PATH`. +Specifies the directory containing the `CMakeLists.txt`. +By convention, this is usually set in the portfile as the variable `SOURCE_PATH`. ### PREFER_NINJA -Indicates that, when available, Vcpkg should use Ninja to perform the build. This should be specified unless the port is known to not work under Ninja. +Indicates that, when available, Vcpkg should use Ninja to perform the build. +This should be specified unless the port is known to not work under Ninja. ### DISABLE_PARALLEL_CONFIGURE Disables running the CMake configure step in parallel. - This is needed for libraries which write back into their source directory during configure. ### NO_CHARSET_FLAG @@ -36,7 +37,8 @@ This is needed for libraries that set their own source code's character set. ### GENERATOR Specifies the precise generator to use. -This is useful if some project-specific buildsystem has been wrapped in a cmake script that won't perform an actual build. If used for this purpose, it should be set to "NMake Makefiles". +This is useful if some project-specific buildsystem has been wrapped in a cmake script that won't perform an actual build. +If used for this purpose, it should be set to "NMake Makefiles". ### OPTIONS Additional options passed to CMake during the configuration. diff --git a/docs/maintainers/vcpkg_prettify_command.md b/docs/maintainers/vcpkg_prettify_command.md new file mode 100644 index 000000000..1856e06b4 --- /dev/null +++ b/docs/maintainers/vcpkg_prettify_command.md @@ -0,0 +1,17 @@ +# vcpkg_prettify_command + +Turns list of command arguments into a formatted string. + +## Usage +```cmake +vcpkg_prettify_command() +``` + +## Examples + +* `scripts/cmake/vcpkg_execute_build_process.cmake` +* `scripts/cmake/vcpkg_execute_required_process.cmake` +* `scripts/cmake/vcpkg_execute_required_process_repeat.cmake` + +## Source +[scripts/cmake/vcpkg_prettify_command.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_prettify_command.cmake)
diff --git a/ports/ade/CONTROL b/ports/ade/CONTROL index 28fd3328f..fd8286ecd 100644 --- a/ports/ade/CONTROL +++ b/ports/ade/CONTROL @@ -1,3 +1,3 @@ Source: ade
-Version: 0.1.1e
+Version: 0.1.1f
Description: ADE Framework is a graph construction, manipulation, and processing framework. ADE Framework is suitable for organizing data flow processing and execution.
\ No newline at end of file diff --git a/ports/ade/portfile.cmake b/ports/ade/portfile.cmake index 198e64b00..83d8503b8 100644 --- a/ports/ade/portfile.cmake +++ b/ports/ade/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO opencv/ade
- REF v0.1.1e
- SHA512 6271b3a6d23b155757a47b21f70cb169b0469501bd1a7c99aa91a76117387840e02b4c70dc4069b7c50408f760b9a7ea77527a30b4691048a1ee55dd94988dd5
+ REF v0.1.1f
+ SHA512 fbdec8f3d5811a573abb81f1ceb6fb8d40274439013f749645db5430c6d9cdc52227c25203f1a68177b263d648bb65197ea7c2bea7871264a06585e59892631c
HEAD_REF master
)
diff --git a/ports/angelscript/CONTROL b/ports/angelscript/CONTROL index 7315b1a90..103dda42e 100644 --- a/ports/angelscript/CONTROL +++ b/ports/angelscript/CONTROL @@ -1,3 +1,6 @@ Source: angelscript
-Version: 2.33.0-1
+Version: 2.33.1-1
Description: The AngelCode Scripting Library, or AngelScript as it is also known, is an extremely flexible cross-platform scripting library designed to allow applications to extend their functionality through external scripts. It has been designed from the beginning to be an easy to use component, both for the application programmer and the script writer.
+
+Feature: addons
+Description: Installs all addons for use in compiling scripts addons
diff --git a/ports/angelscript/portfile.cmake b/ports/angelscript/portfile.cmake index f6521df29..3aea242b5 100644 --- a/ports/angelscript/portfile.cmake +++ b/ports/angelscript/portfile.cmake @@ -28,3 +28,11 @@ vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/Angelscript) # Handle copyright
file(INSTALL ${CURRENT_PORT_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/angelscript RENAME copyright)
+
+# Copy the addon files
+if("addons" IN_LIST FEATURES)
+ file(INSTALL ${SOURCE_PATH}/add_on/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/angelscript FILES_MATCHING PATTERN "*.h" PATTERN "*.cpp")
+endif()
+
+# Post-build test for cmake libraries
+# vcpkg_test_cmake(PACKAGE_NAME angelscript)
diff --git a/ports/bento4/CONTROL b/ports/bento4/CONTROL new file mode 100644 index 000000000..eff84ed98 --- /dev/null +++ b/ports/bento4/CONTROL @@ -0,0 +1,5 @@ +Source: bento4
+Version: 1.5.1-628
+Homepage: https://github.com/axiomatic-systems/Bento4
+Description: Bento4 is a C++ class library and tools designed to read and write ISO-MP4 files. This format is defined in international specifications ISO/IEC 14496-12, 14496-14 and 14496-15.
+
diff --git a/ports/bento4/LICENSE b/ports/bento4/LICENSE new file mode 100644 index 000000000..c1d00b26c --- /dev/null +++ b/ports/bento4/LICENSE @@ -0,0 +1,6 @@ +Bento4 is developed by Axiomatic Systems LLC in San Francisco, California.
+
+This software is available under two different licenses
+For applications that are entirely distributable under the terms of the GPL(https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html), the Bento4 GPL license applies.
+For applications that cannot be entirely distributable under the terms of the GPL (either the application, or code modules linked with the application are not compatible with the terms of the GPL licence), a non-GPL commercial license is available from Axiomatic Systems LLC.
+Contact Gilles Boccon-Gibod (licensing@axiosys.com or bok@bok.net) for more information.
\ No newline at end of file diff --git a/ports/bento4/fix-install-and-c4996-error.patch b/ports/bento4/fix-install-and-c4996-error.patch new file mode 100644 index 000000000..c99fdc411 --- /dev/null +++ b/ports/bento4/fix-install-and-c4996-error.patch @@ -0,0 +1,43 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2f08b2f..fccf2a8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -35,6 +35,8 @@ endif()
+
+ add_library(ap4 STATIC ${AP4_SOURCES})
+
++add_definitions(-D_CRT_SECURE_NO_WARNINGS)
++
+ # Includes
+ include_directories(
+ ${SOURCE_CORE}
+@@ -43,6 +45,14 @@ include_directories(
+ ${SOURCE_METADATA}
+ )
+
++# AP4 includes
++file(GLOB AP4_INCLUDES
++ ${SOURCE_CODECS}/*.h
++ ${SOURCE_CORE}/*.h
++ ${SOURCE_CRYPTO}/*.h
++ ${SOURCE_METADATA}/*.h
++)
++
+ # Apps
+ file(GLOB BENTO4_APPS RELATIVE ${SOURCE_ROOT}/Apps ${SOURCE_ROOT}/Apps/*)
+ foreach(app ${BENTO4_APPS})
+@@ -50,3 +60,13 @@ foreach(app ${BENTO4_APPS})
+ add_executable(${binary_name} ${SOURCE_ROOT}/Apps/${app}/${app}.cpp)
+ target_link_libraries(${binary_name} ap4)
+ endforeach()
++
++# Install targets
++install(TARGETS ap4
++ RUNTIME DESTINATION bin
++ LIBRARY DESTINATION lib
++ ARCHIVE DESTINATION lib
++)
++
++# Install headers
++install(FILES ${AP4_INCLUDES} DESTINATION include)
+\ No newline at end of file
diff --git a/ports/bento4/portfile.cmake b/ports/bento4/portfile.cmake new file mode 100644 index 000000000..b485fbb19 --- /dev/null +++ b/ports/bento4/portfile.cmake @@ -0,0 +1,25 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO axiomatic-systems/Bento4 + REF v1.5.1-628 + SHA512 2bf44f55307178cc9128e323904acbfaa2f88e06beff26cf27fc0a7707875942de89778a0ee1a8315ef2c3b19754edad77d32fdb74f3d651f03c2623e7a9122d + HEAD_REF master + PATCHES fix-install-and-c4996-error.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +vcpkg_copy_pdbs() + +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/blosc/0001-find-deps.patch b/ports/blosc/0001-find-deps.patch new file mode 100644 index 000000000..af0f92150 --- /dev/null +++ b/ports/blosc/0001-find-deps.patch @@ -0,0 +1,107 @@ +diff --git a/blosc/CMakeLists.txt b/blosc/CMakeLists.txt +index 1d1bebe..3a7a51c 100644 +--- a/blosc/CMakeLists.txt ++++ b/blosc/CMakeLists.txt +@@ -109,7 +109,7 @@ endif(NOT DEACTIVATE_ZLIB) + + if (NOT DEACTIVATE_ZSTD) + if (ZSTD_FOUND) +- set(LIBS ${LIBS} ${ZSTD_LIBRARY}) ++ set(LIBS ${LIBS} ${ZSTD_LIBRARIES}) + else (ZSTD_FOUND) + file(GLOB ZSTD_FILES + ${ZSTD_LOCAL_DIR}/common/*.c +diff --git a/cmake/FindLZ4.cmake b/cmake/FindLZ4.cmake +index e581a80..8ce17c5 100644 +--- a/cmake/FindLZ4.cmake ++++ b/cmake/FindLZ4.cmake +@@ -1,10 +1,13 @@ +-find_path(LZ4_INCLUDE_DIR lz4.h) ++find_path(LZ4_INCLUDE_DIRS NAMES lz4.h) + +-find_library(LZ4_LIBRARY NAMES lz4) ++find_library(LZ4_LIBRARY_DEBUG NAMES lz4d) ++find_library(LZ4_LIBRARY_RELEASE NAMES lz4) + +-if (LZ4_INCLUDE_DIR AND LZ4_LIBRARY) +- set(LZ4_FOUND TRUE) +- message(STATUS "Found LZ4 library: ${LZ4_LIBRARY}") +-else () +- message(STATUS "No LZ4 library found. Using internal sources.") +-endif () ++include(SelectLibraryConfigurations) ++select_library_configurations(LZ4) ++ ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args( ++ LZ4 ++ REQUIRED_VARS LZ4_LIBRARIES LZ4_INCLUDE_DIRS ++) +diff --git a/cmake/FindSnappy.cmake b/cmake/FindSnappy.cmake +index 688d4d5..c8b9a05 100644 +--- a/cmake/FindSnappy.cmake ++++ b/cmake/FindSnappy.cmake +@@ -1,10 +1,13 @@ +-find_path(SNAPPY_INCLUDE_DIR snappy-c.h) ++find_path(SNAPPY_INCLUDE_DIR snappy.h) + +-find_library(SNAPPY_LIBRARY NAMES snappy) ++find_library(SNAPPY_LIBRARY_DEBUG NAMES snappyd) ++find_library(SNAPPY_LIBRARY_RELEASE NAMES snappy) + +-if (SNAPPY_INCLUDE_DIR AND SNAPPY_LIBRARY) +- set(SNAPPY_FOUND TRUE) +- message(STATUS "Found SNAPPY library: ${SNAPPY_LIBRARY}") +-else () +- message(STATUS "No snappy found. Using internal sources.") +-endif () ++include(SelectLibraryConfigurations) ++select_library_configurations(SNAPPY) ++ ++include(FindPackageHandleStandardArgs) ++FIND_PACKAGE_HANDLE_STANDARD_ARGS( ++ SNAPPY DEFAULT_MSG ++ SNAPPY_LIBRARY SNAPPY_INCLUDE_DIR ++) +diff --git a/cmake/FindZstd.cmake b/cmake/FindZstd.cmake +index 7db4bb9..ba20ba6 100644 +--- a/cmake/FindZstd.cmake ++++ b/cmake/FindZstd.cmake +@@ -1,10 +1,30 @@ ++include(FindPackageHandleStandardArgs) ++ + find_path(ZSTD_INCLUDE_DIR zstd.h) + +-find_library(ZSTD_LIBRARY NAMES zstd) ++get_filename_component(_prefix_path ${ZSTD_INCLUDE_DIR} PATH) ++ ++find_library( ++ ZSTD_LIBRARY_DEBUG ++ NAMES zstdd ++ PATHS ${_prefix_path}/debug/lib ++ NO_DEFAULT_PATH ++) ++ ++find_library( ++ ZSTD_LIBRARY_RELEASE ++ NAMES zstd ++ PATHS ${_prefix_path}/lib ++ NO_DEFAULT_PATH ++) ++ ++unset(_prefix_path) ++ ++include(SelectLibraryConfigurations) ++select_library_configurations(ZSTD) + +-if (ZSTD_INCLUDE_DIR AND ZSTD_LIBRARY) +- set(ZSTD_FOUND TRUE) +- message(STATUS "Found Zstd library: ${ZSTD_LIBRARY}") +-else () +- message(STATUS "No Zstd library found. Using internal sources.") +-endif () ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args( ++ ZSTD ++ REQUIRED_VARS ZSTD_LIBRARIES ZSTD_INCLUDE_DIR ++) diff --git a/ports/blosc/CONTROL b/ports/blosc/CONTROL index 3cbed267f..414685489 100644 --- a/ports/blosc/CONTROL +++ b/ports/blosc/CONTROL @@ -1,5 +1,5 @@ Source: blosc -Version: 1.17.0 +Version: 1.17.0-1 Build-Depends: lz4, snappy, zlib, zstd Homepage: https://github.com/Blosc/c-blosc Description: A blocking, shuffling and loss-less compression library that can be faster than `memcpy()` diff --git a/ports/blosc/FindBlosc.cmake b/ports/blosc/FindBlosc.cmake new file mode 100644 index 000000000..11385d46d --- /dev/null +++ b/ports/blosc/FindBlosc.cmake @@ -0,0 +1,33 @@ +include(FindPackageHandleStandardArgs)
+
+find_path(
+ BLOSC_INCLUDE_DIRS
+ blosc.h
+)
+
+get_filename_component(_prefix_path ${BLOSC_INCLUDE_DIRS} PATH)
+
+find_library(
+ BLOSC_LIBRARY_DEBUG
+ NAMES blosc
+ PATHS ${_prefix_path}/debug/lib
+ NO_DEFAULT_PATH
+)
+
+find_library(
+ SNAPPY_LIBRARY_RELEASE
+ NAMES blosc
+ PATHS ${_prefix_path}/lib
+ NO_DEFAULT_PATH
+)
+
+unset(_prefix_path)
+
+include(SelectLibraryConfigurations)
+select_library_configurations(blosc)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(
+ blosc
+ REQUIRED_VARS BLOSC_LIBRARIES BLOSC_INCLUDE_DIRS
+)
diff --git a/ports/blosc/portfile.cmake b/ports/blosc/portfile.cmake index 489e97448..aaf61eee0 100644 --- a/ports/blosc/portfile.cmake +++ b/ports/blosc/portfile.cmake @@ -6,6 +6,8 @@ vcpkg_from_github( REF v1.17.0 SHA512 7fe517e9d050a36839ddf963e718881533cc10a7c8963222b3167fd48ec84455614206c1cc2c248f52042a019262fa0419c4c1a828eb1ae64294c55bbaf56f6e HEAD_REF master + PATCHES + 0001-find-deps.patch ) if (VCPKG_LIBRARY_LINKAGE STREQUAL static) @@ -51,3 +53,7 @@ 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) +file(COPY + "${CMAKE_CURRENT_LIST_DIR}/FindBlosc.cmake" + DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} +) diff --git a/ports/brynet/CONTROL b/ports/brynet/CONTROL index 5566fad32..341076cba 100644 --- a/ports/brynet/CONTROL +++ b/ports/brynet/CONTROL @@ -1,5 +1,5 @@ Source: brynet -Version: 1.0.2 +Version: 1.0.3 Homepage: https://github.com/IronsDu/brynet Description: A C++ cross platform high performance tcp network library, and support SSL/HTTP/Websocket. Build-Depends: openssl diff --git a/ports/brynet/portfile.cmake b/ports/brynet/portfile.cmake index 141711827..f707948ac 100644 --- a/ports/brynet/portfile.cmake +++ b/ports/brynet/portfile.cmake @@ -5,8 +5,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO IronsDu/brynet - REF v1.0.2 - SHA512 b07ceb858ed125959b3901415d6099939acf51a194950de8c65f063b6462a0ab424494659aedd889378bd4388cc9e71a0aedcb30108b6c2eef4d5e6ebea2cce8 + REF v1.0.3 + SHA512 8759b522da34be68a7ba0959ed3d85382965efe5080e4cdd403001f3911d36398b7fe9d039fd9fb485a0d557cec0fa53863a512eb88f13f3ff222b6e30642baf HEAD_REF master ) diff --git a/ports/catch2/CONTROL b/ports/catch2/CONTROL index bba0085bb..810b18dd1 100644 --- a/ports/catch2/CONTROL +++ b/ports/catch2/CONTROL @@ -1,4 +1,4 @@ Source: catch2 -Version: 2.9.1-1 +Version: 2.9.2 Description: A modern, header-only test framework for unit testing. Homepage: https://github.com/catchorg/Catch2 diff --git a/ports/catch2/portfile.cmake b/ports/catch2/portfile.cmake index 009696c40..b19ebeab4 100644 --- a/ports/catch2/portfile.cmake +++ b/ports/catch2/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO catchorg/Catch2 - REF v2.9.1 - SHA512 ea18eef1fece72518c8a46b89727f5d0545a15038957087324abe6421c682693379476ff46106132f080677ebcc1c9ead51a9cf25dced3bb576a33e4f6fae4f6 + REF v2.9.2 + SHA512 06430322dbeb637902f3bdc1c4df04e2525bc3ad9aea47aaf284b311401f26f489092971a2822d5a54041ef1d01d1b1bda3eedea2ba5041ae89903d8e56db121 HEAD_REF master ) diff --git a/ports/cgltf/CONTROL b/ports/cgltf/CONTROL index 4967e5715..948fde883 100644 --- a/ports/cgltf/CONTROL +++ b/ports/cgltf/CONTROL @@ -1,3 +1,3 @@ Source: cgltf -Version: 2019-04-30 +Version: 1.2 Description: Single-file glTF 2.0 parser written in C99 diff --git a/ports/cgltf/portfile.cmake b/ports/cgltf/portfile.cmake index 2d1569196..75b5ce191 100644 --- a/ports/cgltf/portfile.cmake +++ b/ports/cgltf/portfile.cmake @@ -5,8 +5,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jkuhlmann/cgltf - REF 093ef81bf63ec18ba6d9f61073da8881fb7619b3 - SHA512 8801c13ee98780e845c7d28b27d523af86ab2a49499bbb235ee67a91dfacda3c7fddc9503d91918001a432267f890e82c2204a9c1462c64467034d334b0eadf2 + REF v1.2 + SHA512 3a678023ffd25416a1454da5e67bdf303d08dcd5a46e19a912dc2dfc549a6cd5800024649757c19653f9b2763fc6342d8dd398e940b2df6c3e1b222a4fd2e0e1 HEAD_REF master ) diff --git a/ports/chakracore/CONTROL b/ports/chakracore/CONTROL index 44c6fe4c4..0f496998e 100644 --- a/ports/chakracore/CONTROL +++ b/ports/chakracore/CONTROL @@ -1,4 +1,4 @@ Source: chakracore -Version: 1.11.11 +Version: 1.11.12 Homepage: https://github.com/Microsoft/ChakraCore Description: Core part of the Chakra Javascript engine diff --git a/ports/chakracore/portfile.cmake b/ports/chakracore/portfile.cmake index 5263b3a16..924bc1e91 100644 --- a/ports/chakracore/portfile.cmake +++ b/ports/chakracore/portfile.cmake @@ -9,8 +9,8 @@ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/ChakraCore - REF v1.11.11 - SHA512 67fd364090632c4187c43dc7bb50d2a6cd18ebb2963f86b7f07c6394c243a94963dd9a1e2dc8f4ab9653ab1316921dbac2c1f5fa235e241e9c605e63f2551a10 + REF v1.11.12 + SHA512 6ff8b8fa379bd290d547ca9900c5aca47b6148f0112e58c11ab757fb2a9080119be59611fb5cb73fabae99802e8df2da35d7b8f1c351a32b452444d090d3b069 HEAD_REF master ) diff --git a/ports/cpp-httplib/CONTROL b/ports/cpp-httplib/CONTROL index 66d4938f0..ebfc59ad8 100644 --- a/ports/cpp-httplib/CONTROL +++ b/ports/cpp-httplib/CONTROL @@ -1,4 +1,4 @@ Source: cpp-httplib
-Version: 0.2.0
+Version: 0.2.1
Homepage: https://github.com/yhirose/cpp-httplib
Description: A single file C++11 header-only HTTP/HTTPS server and client library
diff --git a/ports/cpp-httplib/portfile.cmake b/ports/cpp-httplib/portfile.cmake index 9e85b57e3..975b74902 100644 --- a/ports/cpp-httplib/portfile.cmake +++ b/ports/cpp-httplib/portfile.cmake @@ -5,8 +5,8 @@ set(VERSION 0.2.0) vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO yhirose/cpp-httplib
- REF 2f8479016fa9af9a63056571992b31c32741d89b
- SHA512 2f17a6a95c849a5c873a65e8da8bf85311f0152e439a973354c24d02ee9e6c3b0f3a456b60f90637ea4588d9ac09f7e41f42199de61315754e5fe9eecbb657ed
+ REF v0.2.1
+ SHA512 f0f24cb58da4bbe4ccaa28891fd56257bc97cdf861c4406f41c0cb0bb76b53f9f707298cb5ea1139e4a819c4b1a4b750090a53652d45c3621b33d76ba627a78f
HEAD_REF master
)
diff --git a/ports/cppgraphqlgen/CONTROL b/ports/cppgraphqlgen/CONTROL index d3f13de82..67b17b7fc 100644 --- a/ports/cppgraphqlgen/CONTROL +++ b/ports/cppgraphqlgen/CONTROL @@ -1,4 +1,4 @@ Source: cppgraphqlgen
-Version: 3.0.0
+Version: 3.0.2
Build-Depends: boost-filesystem (!uwp&!windows), boost-program-options, pegtl, rapidjson
Description: C++ GraphQL schema service generator
diff --git a/ports/cppgraphqlgen/portfile.cmake b/ports/cppgraphqlgen/portfile.cmake index 5c92e1a60..b4f22868e 100644 --- a/ports/cppgraphqlgen/portfile.cmake +++ b/ports/cppgraphqlgen/portfile.cmake @@ -2,9 +2,9 @@ include(vcpkg_common_functions) vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
- REPO Microsoft/cppgraphqlgen
- REF v3.0.0
- SHA512 26da9b559b7220f44bc1aabd68250a4cf869329a5496ac439f9bc7cea5137e0ef9068dc6e868adf441cd5c212f21dd08f0a21db393eb4c237525961eefd49389
+ REPO microsoft/cppgraphqlgen
+ REF v3.0.2
+ SHA512 ae2e94e7cb8853c88d2dbf226dec52e30fb16d1889f14f94d2a585dd2be1985e58ac8c16765b970c4417c08d519b32514080d90bfab7e34b66dc7c32b9f9caa6
HEAD_REF master
)
diff --git a/ports/czmq/CONTROL b/ports/czmq/CONTROL index 55cba0bd4..4d68f15b1 100644 --- a/ports/czmq/CONTROL +++ b/ports/czmq/CONTROL @@ -1,5 +1,5 @@ Source: czmq -Version: 2019-06-10-1 +Version: 2019-06-10-3 Build-Depends: zeromq Description: High-level C binding for ZeroMQ Homepage: https://github.com/zeromq/czmq diff --git a/ports/czmq/portfile.cmake b/ports/czmq/portfile.cmake index bba5e6e22..2545feea5 100644 --- a/ports/czmq/portfile.cmake +++ b/ports/czmq/portfile.cmake @@ -27,13 +27,13 @@ endforeach() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) -vcpkg_check_features( - draft ENABLE_DRAFTS - tool BUILD_TOOLS - curl CZMQ_WITH_LIBCURL - httpd CZMQ_WITH_LIBMICROHTTPD - lz4 CZMQ_WITH_LZ4 - uuid CZMQ_WITH_UUID +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + draft ENABLE_DRAFTS + tool BUILD_TOOLS + curl CZMQ_WITH_LIBCURL + httpd CZMQ_WITH_LIBMICROHTTPD + lz4 CZMQ_WITH_LZ4 + uuid CZMQ_WITH_UUID ) vcpkg_configure_cmake( @@ -69,7 +69,7 @@ else() set(EXECUTABLE_SUFFIX "") endif() -if (BUILD_TOOLS) +if ("tool" IN_LIST FEATURES) file(COPY ${CURRENT_PACKAGES_DIR}/bin/zmakecert${EXECUTABLE_SUFFIX} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}) vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) diff --git a/ports/darknet/CONTROL b/ports/darknet/CONTROL index 812f66a2c..6979c310c 100644 --- a/ports/darknet/CONTROL +++ b/ports/darknet/CONTROL @@ -1,5 +1,5 @@ Source: darknet -Version: 0.2.5-5 +Version: 0.2.5-6 Description: Darknet is an open source neural network framework written in C and CUDA. You only look once (YOLO) is a state-of-the-art, real-time object detection system, best example of darknet functionalities. Build-Depends: pthreads (windows), stb Default-Features: weights @@ -19,5 +19,5 @@ Feature: weights-train Description: Download pre-built weights for training Feature: opencv-cuda -Build-Depends: opencv[ffmpeg], opencv[cuda] +Build-Depends: darknet[opencv], darknet[cuda] Description: Build darknet with support for a CUDA-enabled OpenCV diff --git a/ports/darknet/portfile.cmake b/ports/darknet/portfile.cmake index 83f68b6d7..a18c97a91 100644 --- a/ports/darknet/portfile.cmake +++ b/ports/darknet/portfile.cmake @@ -16,17 +16,12 @@ vcpkg_from_github( HEAD_REF master ) -vcpkg_check_features( - "cuda" ENABLE_CUDA - "opencv" ENABLE_OPENCV +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + "cuda" ENABLE_CUDA + "opencv" ENABLE_OPENCV ) -if("opencv-cuda" IN_LIST FEATURES) - set(ENABLE_OPENCV ON) - set(ENABLE_CUDA ON) -endif() - -if (ENABLE_CUDA) +if ("cuda" IN_LIST FEATURES) if (NOT VCPKG_CMAKE_SYSTEM_NAME AND NOT ENV{CUDACXX}) #CMake looks for nvcc only in PATH and CUDACXX env vars for the Ninja generator. Since we filter path on vcpkg and CUDACXX env var is not set by CUDA installer on Windows, CMake cannot find CUDA when using Ninja generator, so we need to manually enlight it if necessary (https://gitlab.kitware.com/cmake/cmake/issues/19173). Otherwise we could just disable Ninja and use MSBuild, but unfortunately CUDA installer does not integrate with some distributions of MSBuild (like the ones inside Build Tools), making CUDA unavailable otherwise in those cases, which we want to avoid set(ENV{CUDACXX} "$ENV{CUDA_PATH}/bin/nvcc.exe") @@ -80,8 +75,7 @@ vcpkg_configure_cmake( OPTIONS -DINSTALL_BIN_DIR:STRING=bin -DINSTALL_LIB_DIR:STRING=lib - -DENABLE_CUDA=${ENABLE_CUDA} - -DENABLE_OPENCV=${ENABLE_OPENCV} + ${FEATURE_OPTIONS} ) vcpkg_install_cmake() diff --git a/ports/dbow2/CONTROL b/ports/dbow2/CONTROL new file mode 100644 index 000000000..4b5c4c1e0 --- /dev/null +++ b/ports/dbow2/CONTROL @@ -0,0 +1,5 @@ +Source: dbow2 +Version: 2019-08-05 +Homepage: https://github.com/dorian3d/DBoW2 +Description: DBoW2 is an improved version of the DBow library, an open source C++ library for indexing and converting images into a bag-of-word representation. +Build-Depends: opencv diff --git a/ports/dbow2/portfile.cmake b/ports/dbow2/portfile.cmake new file mode 100644 index 000000000..c569e89ac --- /dev/null +++ b/ports/dbow2/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO dorian3d/DBoW2 + REF 4d08e9fc751fac9063874d85a43c1ccdcda8b401 + SHA512 0a4ad8506c731395cb23d96d0e8afe4131576af88468723b9496cdbc95a031089ecdeb61dbb7205cb3a7599acb60a39887fa9852e7d7a690b8152a1bd26d9bd0 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS -DBUILD_Demo=OFF +) + +vcpkg_install_cmake() + +# Move CMake files to the right place +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/DBoW2) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/DBoW2/DBoW2Config.cmake) + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) + diff --git a/ports/dimcli/CONTROL b/ports/dimcli/CONTROL index e98f11565..12078257a 100644 --- a/ports/dimcli/CONTROL +++ b/ports/dimcli/CONTROL @@ -1,4 +1,4 @@ Source: dimcli -Version: 4.1.0 +Version: 4.1.0-1 Homepage: https://github.com/gknowles/dimcli Description: C++ command line parser toolkit diff --git a/ports/dimcli/fix-NameBoolean.patch b/ports/dimcli/fix-NameBoolean.patch new file mode 100644 index 000000000..35eb64d68 --- /dev/null +++ b/ports/dimcli/fix-NameBoolean.patch @@ -0,0 +1,63 @@ +diff --git a/libs/dimcli/cli.cpp b/libs/dimcli/cli.cpp +index 9e67c12..c96bd24 100644 +--- a/libs/dimcli/cli.cpp ++++ b/libs/dimcli/cli.cpp +@@ -388,8 +388,8 @@ GroupConfig const & Cli::Config::findGrpOrDie(Cli const & cli) { + ***/ + + //=========================================================================== +-Cli::OptBase::OptBase(string const & names, bool boolean) +- : m_bool{boolean} ++Cli::OptBase::OptBase(string const & names, bool in_boolean) ++ : m_bool{in_boolean} + , m_names{names} + { + // set m_fromName and assert if names is malformed +@@ -486,12 +486,12 @@ static bool includeName( + OptName const & name, + NameListType type, + Cli::OptBase const & opt, +- bool boolean, ++ bool in_boolean, + bool inverted + ) { + if (name.opt != &opt) + return false; +- if (boolean) { ++ if (in_boolean) { + if (type == kNameEnable) + return !name.invert; + if (type == kNameDisable) +diff --git a/libs/dimcli/cli.h b/libs/dimcli/cli.h +index 2c1615c..3e4f405 100644 +--- a/libs/dimcli/cli.h ++++ b/libs/dimcli/cli.h +@@ -818,7 +818,7 @@ public: + }; + + public: +- OptBase(std::string const & keys, bool boolean); ++ OptBase(std::string const & keys, bool in_boolean); + virtual ~OptBase() {} + + //----------------------------------------------------------------------- +@@ -952,7 +952,7 @@ inline void Cli::OptBase::setValueDesc<DIMCLI_LIB_FILESYSTEM_PATH>() { + template <typename A, typename T> + class Cli::OptShim : public OptBase { + public: +- OptShim(std::string const & keys, bool boolean); ++ OptShim(std::string const & keys, bool in_boolean); + OptShim(OptShim const &) = delete; + OptShim & operator=(OptShim const &) = delete; + +@@ -1100,8 +1100,8 @@ protected: + + //=========================================================================== + template <typename A, typename T> +-Cli::OptShim<A, T>::OptShim(std::string const & keys, bool boolean) +- : OptBase(keys, boolean) ++Cli::OptShim<A, T>::OptShim(std::string const & keys, bool in_boolean) ++ : OptBase(keys, in_boolean) + { + setValueDesc<T>(); + } diff --git a/ports/dimcli/portfile.cmake b/ports/dimcli/portfile.cmake index 6362aa987..2d231117c 100644 --- a/ports/dimcli/portfile.cmake +++ b/ports/dimcli/portfile.cmake @@ -6,6 +6,8 @@ vcpkg_from_github( REF v4.1.0 SHA512 5de010b5abfda9e6996bba8c621e03ae0cf81dbc2f69cd859e2ebf7b1706c451f7f8e142299784646d89ca3c3e5803e8711215680b8bdb8eb663158bff3b4f3d HEAD_REF master + PATCHES + fix-NameBoolean.patch ) set(staticCrt OFF) if(VCPKG_CRT_LINKAGE STREQUAL "static") diff --git a/ports/directxmesh/CONTROL b/ports/directxmesh/CONTROL index 700756964..331466f53 100644 --- a/ports/directxmesh/CONTROL +++ b/ports/directxmesh/CONTROL @@ -1,4 +1,4 @@ Source: directxmesh -Version: apr2019 +Version: jun2019-1 Homepage: https://github.com/Microsoft/DirectXMesh Description: DirectXMesh geometry processing library
\ No newline at end of file diff --git a/ports/directxmesh/portfile.cmake b/ports/directxmesh/portfile.cmake index 53cd44b0c..3cf718727 100644 --- a/ports/directxmesh/portfile.cmake +++ b/ports/directxmesh/portfile.cmake @@ -3,14 +3,14 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic")
- message(FATAL_ERROR "DirectXMesh only supports dynamic CRT linkage")
+ message(FATAL_ERROR "DirectXMesh only supports dynamic CRT linkage")
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/DirectXMesh
- REF apr2019 - SHA512 a9e0dbf6483633a1727592de7e2fa733de993daff848d9ec2241ce54b67c7d24ed0419058f2f6ce256021dcf7e16d178b62ed9b8c7a1756504ab044f8740be1d
+ REF jun2019
+ SHA512 6d42cd4d3e34e7f3bd5cee1a9ad90c9f89eafa55951a0a8d776034a05caa06b0fd17629547d14c8f2b4d0c5fafdbd24ae05c2a6582b5d069093d6b4dadac09a0
HEAD_REF master
)
@@ -20,8 +20,24 @@ ELSE() SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH})
ENDIF()
+if (VCPKG_PLATFORM_TOOLSET STREQUAL "v140")
+ set(VS_VERSION "2015")
+elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v141")
+ set(VS_VERSION "2017")
+elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v142")
+ set(VS_VERSION "2019")
+else()
+ message(FATAL_ERROR "Unsupported platform toolset.")
+endif()
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(SLN_NAME "Windows10_${VS_VERSION}")
+else()
+ set(SLN_NAME "Desktop_${VS_VERSION}")
+endif()
+
vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/DirectXMesh_Desktop_2017.sln
+ PROJECT_PATH ${SOURCE_PATH}/DirectXMesh_${SLN_NAME}.sln
PLATFORM ${BUILD_ARCH}
)
@@ -30,17 +46,21 @@ file(INSTALL ${SOURCE_PATH}/DirectXMesh/DirectXMesh.inl
DESTINATION ${CURRENT_PACKAGES_DIR}/include
)
+
file(INSTALL
- ${SOURCE_PATH}/DirectXMesh/Bin/Desktop_2017/${BUILD_ARCH}/Debug/DirectXMesh.lib
+ ${SOURCE_PATH}/DirectXMesh/Bin/${SLN_NAME}/${BUILD_ARCH}/Debug/DirectXMesh.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(INSTALL
- ${SOURCE_PATH}/DirectXMesh/Bin/Desktop_2017/${BUILD_ARCH}/Release/DirectXMesh.lib
+ ${SOURCE_PATH}/DirectXMesh/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/DirectXMesh.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
-set(TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools)
-file(INSTALL
- ${SOURCE_PATH}/Meshconvert/Bin/Desktop_2017/${BUILD_ARCH}/Release/Meshconvert.exe
- DESTINATION ${TOOL_PATH})
+if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/directxmesh)
+ file(MAKE_DIRECTORY ${TOOL_PATH})
+ file(INSTALL
+ ${SOURCE_PATH}/Meshconvert/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/Meshconvert.exe
+ DESTINATION ${TOOL_PATH})
+endif()
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/directxmesh)
diff --git a/ports/directxtex/CONTROL b/ports/directxtex/CONTROL index 69b6d2ee2..4eb03bb01 100644 --- a/ports/directxtex/CONTROL +++ b/ports/directxtex/CONTROL @@ -1,4 +1,4 @@ Source: directxtex
-Version: apr2019
+Version: jun2019-1
Homepage: https://github.com/Microsoft/DirectXTex
Description: DirectXTex texture processing library
\ No newline at end of file diff --git a/ports/directxtex/portfile.cmake b/ports/directxtex/portfile.cmake index 94f9b69cb..a58d53169 100644 --- a/ports/directxtex/portfile.cmake +++ b/ports/directxtex/portfile.cmake @@ -9,8 +9,8 @@ endif() vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/DirectXTex
- REF apr2019 - SHA512 3e50c5beb25416a0720614321bb2b712b5677b50989909ca703801080023f8f8ad168bbe4e5dc522500325989a8f6982026d7dc5029ee28d9dcfe35efdd002de
+ REF jun2019
+ SHA512 036a4593f8117e622cd6f609aea5bad734f9c3fc239984ec4f970cb6634ac3097cdb5ed2e467d3b1549e2340bcfe10ee4925b4e3691cf7f729ca538d3724c26e
HEAD_REF master
)
@@ -20,8 +20,24 @@ ELSE() SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH})
ENDIF()
+if (VCPKG_PLATFORM_TOOLSET STREQUAL "v140")
+ set(VS_VERSION "2015")
+elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v141")
+ set(VS_VERSION "2017")
+elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v142")
+ set(VS_VERSION "2019")
+else()
+ message(FATAL_ERROR "Unsupported platform toolset.")
+endif()
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(SLN_NAME "Windows10_${VS_VERSION}")
+else()
+ set(SLN_NAME "Desktop_${VS_VERSION}")
+endif()
+
vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/DirectXTex_Desktop_2017.sln
+ PROJECT_PATH ${SOURCE_PATH}/DirectXTex_${SLN_NAME}.sln
PLATFORM ${BUILD_ARCH}
)
@@ -31,23 +47,25 @@ file(INSTALL DESTINATION ${CURRENT_PACKAGES_DIR}/include
)
file(INSTALL
- ${SOURCE_PATH}/DirectXTex/Bin/Desktop_2017/${BUILD_ARCH}/Debug/DirectXTex.lib
+ ${SOURCE_PATH}/DirectXTex/Bin/${SLN_NAME}/${BUILD_ARCH}/Debug/DirectXTex.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(INSTALL
- ${SOURCE_PATH}/DirectXTex/Bin/Desktop_2017/${BUILD_ARCH}/Release/DirectXTex.lib
+ ${SOURCE_PATH}/DirectXTex/Bin/${SLN_NAME}/${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_2017/${BUILD_ARCH}/Release/texdiag.exe
- DESTINATION ${TOOL_PATH})
-file(INSTALL
- ${SOURCE_PATH}/Texconv/Bin/Desktop_2017/${BUILD_ARCH}/Release/Texconv.exe
- DESTINATION ${TOOL_PATH})
-file(INSTALL
- ${SOURCE_PATH}/Texassemble/Bin/Desktop_2017/${BUILD_ARCH}/Release/Texassemble.exe
- DESTINATION ${TOOL_PATH})
+if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(TOOL_PATH ${CURRENT_PACKAGES_DIR}/tools/directxtex)
+ file(MAKE_DIRECTORY ${TOOL_PATH})
+ file(INSTALL
+ ${SOURCE_PATH}/Texdiag/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/texdiag.exe
+ DESTINATION ${TOOL_PATH})
+ file(INSTALL
+ ${SOURCE_PATH}/Texconv/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/Texconv.exe
+ DESTINATION ${TOOL_PATH})
+ file(INSTALL
+ ${SOURCE_PATH}/Texassemble/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/Texassemble.exe
+ DESTINATION ${TOOL_PATH})
+endif()
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/DirectXTex)
diff --git a/ports/directxtk/CONTROL b/ports/directxtk/CONTROL index e1f3ce5d5..cbe291a8f 100644 --- a/ports/directxtk/CONTROL +++ b/ports/directxtk/CONTROL @@ -1,4 +1,4 @@ Source: directxtk -Version: apr2019-1 +Version: jun2019-1 Homepage: https://github.com/Microsoft/DirectXTK 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 0449d8f61..df5e7a02b 100644 --- a/ports/directxtk/portfile.cmake +++ b/ports/directxtk/portfile.cmake @@ -3,16 +3,15 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic") - message(FATAL_ERROR "DirectXTK only supports dynamic CRT linkage") + message(FATAL_ERROR "DirectXTK only supports dynamic CRT linkage") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/DirectXTK - REF apr2019 - SHA512 811ed222c1650d34a8475e44719cca8972a85d96f9ccb10548e1501eb9d28fd8685de90832b517cdcbf21ae8c9160dea69000e8dca06fab745a15a7acc14ba98 + REF jun2019 + SHA512 211b18ee0755802a5d44b58da2485276cabdee222d2f5fd7b42bad0bf75810e3ac1bd319b90891d9cc0345b124631ad37588422af9120cece9fa0ed769033e77 HEAD_REF master - PATCHES fix-invalid-configuration.patch ) IF (TRIPLET_SYSTEM_ARCH MATCHES "x86") @@ -21,10 +20,20 @@ ELSE() SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH}) ENDIF() +if (VCPKG_PLATFORM_TOOLSET STREQUAL "v140") + set(VS_VERSION "2015") +elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v141") + set(VS_VERSION "2017") +elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v142") + set(VS_VERSION "2019") +else() + message(FATAL_ERROR "Unsupported platform toolset.") +endif() + if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - set(SLN_NAME "Windows10") + set(SLN_NAME "Windows10_${VS_VERSION}") else() - set(SLN_NAME "Desktop_2017") + set(SLN_NAME "Desktop_${VS_VERSION}") endif() vcpkg_build_msbuild( @@ -33,6 +42,11 @@ vcpkg_build_msbuild( ) file(INSTALL + ${SOURCE_PATH}/Inc/ + DESTINATION ${CURRENT_PACKAGES_DIR}/include/DirectXTK +) + +file(INSTALL ${SOURCE_PATH}/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/DirectXTK.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) @@ -41,22 +55,15 @@ file(INSTALL DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - 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}) - - file(INSTALL - ${SOURCE_PATH}/XWBTool/Bin/Desktop_2017/${BUILD_ARCH}/Release/XWBTool.exe - DESTINATION ${DXTK_TOOL_PATH}) + 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}) + file(INSTALL + ${SOURCE_PATH}/XWBTool/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/XWBTool.exe + DESTINATION ${DXTK_TOOL_PATH}) endif() -file(INSTALL - ${SOURCE_PATH}/Inc/ - DESTINATION ${CURRENT_PACKAGES_DIR}/include/DirectXTK -) - # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/directxtk RENAME copyright) diff --git a/ports/directxtk12/CONTROL b/ports/directxtk12/CONTROL index 466acece6..2d7c849c2 100644 --- a/ports/directxtk12/CONTROL +++ b/ports/directxtk12/CONTROL @@ -1,4 +1,4 @@ Source: directxtk12
-Version: dec2016-1
+Version: jun2019-1
Homepage: https://github.com/Microsoft/DirectXTK12
Description: A collection of helper classes for writing DirectX 12 code in C++.
diff --git a/ports/directxtk12/portfile.cmake b/ports/directxtk12/portfile.cmake index d51a82b81..114165fb4 100644 --- a/ports/directxtk12/portfile.cmake +++ b/ports/directxtk12/portfile.cmake @@ -3,19 +3,15 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) if(NOT VCPKG_CRT_LINKAGE STREQUAL "dynamic") - message(FATAL_ERROR "DirectXTk12 only supports dynamic CRT linkage") + message(FATAL_ERROR "DirectXTK12 only supports dynamic CRT linkage") endif() -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/DirectXTK12-dec2016) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/Microsoft/DirectXTK12/archive/dec2016.tar.gz" - FILENAME "DirectXTK12-dec2016.tar.gz" - SHA512 7c98fbf1d7ef96807a38d396a87dacdc60fdcd7e461210d246cc424789c4c5c5fb1390db958c1bd1f77da8af756a9eae36813e5da6bbb0ea1432ff4004f1d010 -) -vcpkg_extract_source_archive(${ARCHIVE}) - -vcpkg_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/DirectXTK_Desktop_2015_Win10.sln +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Microsoft/DirectXTK12 + REF jun2019 + SHA512 f635746ff92cf3b60b96f74f5ada5fb8409d1ac6e2729d24ebf0ebb275e26d373ec0ccdfbb66a3cb967267da86de4d70304d1f3326b738f94f5a8fc0d43a8c97 + HEAD_REF master ) IF (TRIPLET_SYSTEM_ARCH MATCHES "x86") @@ -24,17 +20,38 @@ ELSE() SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH}) ENDIF() -file(INSTALL - ${SOURCE_PATH}/Bin/Desktop_2015_Win10/${BUILD_ARCH}/Release/DirectXTK12.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -file(INSTALL - ${SOURCE_PATH}/Bin/Desktop_2015_Win10/${BUILD_ARCH}/Debug/DirectXTK12.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) +if (VCPKG_PLATFORM_TOOLSET STREQUAL "v140") + set(VS_VERSION "2015") +elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v141") + set(VS_VERSION "2017") +elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v142") + set(VS_VERSION "2019") +else() + message(FATAL_ERROR "Unsupported platform toolset.") +endif() + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(SLN_NAME "Windows10_${VS_VERSION}") +else() + set(SLN_NAME "Desktop_${VS_VERSION}_Win10") +endif() + +vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/DirectXTK_${SLN_NAME}.sln +) file(INSTALL ${SOURCE_PATH}/Inc/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/DirectXTK12 ) +file(INSTALL + ${SOURCE_PATH}/Bin/${SLN_NAME}/${BUILD_ARCH}/Release/DirectXTK12.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + +file(INSTALL + ${SOURCE_PATH}/Bin/${SLN_NAME}/${BUILD_ARCH}/Debug/DirectXTK12.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/directxtk12 RENAME copyright) diff --git a/ports/doctest/CONTROL b/ports/doctest/CONTROL index 135b8a4d8..68981d7af 100644 --- a/ports/doctest/CONTROL +++ b/ports/doctest/CONTROL @@ -1,4 +1,4 @@ Source: doctest -Version: 2.3.3 +Version: 2.3.4 Homepage: https://github.com/onqtam/doctest 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 7c9c4bfed..c1fa00774 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 2.3.3 - SHA512 9ef94de93906f3c43918f232b3baa64756fdaee883afc5b2e785e76b108f1aa0d526a49dac58ffb0475ebfd8d8394ef266aec499c29282eea9a2752fb60b663f + REF 2.3.4 + SHA512 ca97da8e22684f2d901d0a9dc9c1d0c7126a850f75fe20c37a4d8bbc6f7eafc961313a6c58ca712f00465fff107e1b6b6d9557d2b04edb3029b0035bcfa6db20 HEAD_REF master ) diff --git a/ports/double-conversion/CONTROL b/ports/double-conversion/CONTROL index c6860524d..215bb77fb 100644 --- a/ports/double-conversion/CONTROL +++ b/ports/double-conversion/CONTROL @@ -1,4 +1,4 @@ Source: double-conversion
-Version: 3.1.4
+Version: 3.1.5
Homepage: https://github.com/google/double-conversion
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 d7fd15f21..f5ebb4055 100644 --- a/ports/double-conversion/portfile.cmake +++ b/ports/double-conversion/portfile.cmake @@ -5,8 +5,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/double-conversion - REF v3.1.4 - SHA512 715a34ace2ff74b79d80a8c003c16cfbf958ebc92264e28cc572e1a12a786e1df9678abb46f032c2be387495e1a3d02957b12fa4a245ec6cfe19ca637519ac3c + REF v3.1.5 + SHA512 0aeabdbfa06c3c4802905ac4bf8c2180840577677b47d45e1c91034fe07746428c9db79260ce6bdbdf8b584746066cea9247ba43a9c38155caf1ef44e214180a HEAD_REF master ) diff --git a/ports/drlibs/CONTROL b/ports/drlibs/CONTROL new file mode 100644 index 000000000..284f99c35 --- /dev/null +++ b/ports/drlibs/CONTROL @@ -0,0 +1,4 @@ +Source: drlibs +Version: 2019-08-12 +Homepage: https://github.com/mackron/dr_libs +Description: A collection of public domain single-file libraries for C/C++. diff --git a/ports/drlibs/portfile.cmake b/ports/drlibs/portfile.cmake new file mode 100644 index 000000000..3c50aff94 --- /dev/null +++ b/ports/drlibs/portfile.cmake @@ -0,0 +1,17 @@ +#header-only library +include(vcpkg_common_functions) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mackron/dr_libs + REF b777360d73c10a367d268a8bb51bc0d1f36020b5 + SHA512 65d2c01ea72868e1212dc5af6b8bad7603a40e030a6c6ee59ae4e723de9c974ed31385475e2bcf0f22d424666fc70c7851c3998d0c51afc845785e71ed267a8f + HEAD_REF master +) + +# Put the licence file where vcpkg expects it +file(COPY ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/drlibs) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/drlibs/README.md ${CURRENT_PACKAGES_DIR}/share/drlibs/copyright) + +# Copy the header files +file(GLOB HEADER_FILES ${SOURCE_PATH}/*.h) +file(COPY ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include) diff --git a/ports/duktape/CMakeLists.txt b/ports/duktape/CMakeLists.txt index 3a9c869de..3986c4df1 100644 --- a/ports/duktape/CMakeLists.txt +++ b/ports/duktape/CMakeLists.txt @@ -1,3 +1,5 @@ +cmake_minimum_required(VERSION 3.14) + project (duktape) file(GLOB_RECURSE DUKTAPE_SOURCES "src/*.c") diff --git a/ports/duktape/CONTROL b/ports/duktape/CONTROL index 08c822fad..769e3bc82 100644 --- a/ports/duktape/CONTROL +++ b/ports/duktape/CONTROL @@ -1,5 +1,5 @@ Source: duktape
-Version: 2.3.0-2
+Version: 2.3.0-3
Homepage: https://github.com/svaarala/duktape
Description: Embeddable Javascript engine with a focus on portability and compact footprint.
Build-Depends:
diff --git a/ports/duktape/portfile.cmake b/ports/duktape/portfile.cmake index fe2c9a494..5c855027f 100644 --- a/ports/duktape/portfile.cmake +++ b/ports/duktape/portfile.cmake @@ -28,9 +28,9 @@ vcpkg_add_to_path("${PYTHON2_DIR}") if(NOT EXISTS ${PYTHON2_DIR}/easy_install${EXECUTABLE_SUFFIX}) if(NOT EXISTS ${PYTHON2_DIR}/Scripts/pip${EXECUTABLE_SUFFIX}) vcpkg_download_distfile(GET_PIP - URLS "https://bootstrap.pypa.io/get-pip.py" + URLS "https://bootstrap.pypa.io/3.3/get-pip.py" FILENAME "tools/python/python2/get-pip.py" - SHA512 99520d223819708b8f6e4b839d1fa215e4e8adc7fcd0db6c25a0399cf2fa10034b35673cf450609303646d12497f301ef53b7e7cc65c78e7bce4af0c673555ad + SHA512 92e68525830bb23955a31cb19ebc3021ef16b6337eab83d5db2961b791283d2867207545faf83635f6027f2f7b7f8fee2c85f2cfd8e8267df25406474571c741 ) execute_process(COMMAND ${PYTHON2_DIR}/python${EXECUTABLE_SUFFIX} ${PYTHON2_DIR}/get-pip.py) endif() diff --git a/ports/fast-cpp-csv-parser/CONTROL b/ports/fast-cpp-csv-parser/CONTROL new file mode 100644 index 000000000..a9766a66a --- /dev/null +++ b/ports/fast-cpp-csv-parser/CONTROL @@ -0,0 +1,4 @@ +Source: fast-cpp-csv-parser +Version: 2019-08-14 +Description: A small, easy-to-use and fast header-only library for reading comma separated value (CSV) files +Homepage: https://github.com/ben-strasser/fast-cpp-csv-parser diff --git a/ports/fast-cpp-csv-parser/portfile.cmake b/ports/fast-cpp-csv-parser/portfile.cmake new file mode 100644 index 000000000..be3ef7e88 --- /dev/null +++ b/ports/fast-cpp-csv-parser/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO ben-strasser/fast-cpp-csv-parser + REF 78f413248fdeea27368481c4a1d48c059ac36680 + SHA512 f8eb477e0b5e82f5b5d7bdf045094dcc59433e7b6305a1e16e45c2c24f4bbb7f6e9540e17a8ffafce29ea2ebe3a2647174824abe80da5f2054f7df3d7da8c28d + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/csv.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/ffmpeg/CONTROL b/ports/ffmpeg/CONTROL index 3bbf544c1..724a849c2 100644 --- a/ports/ffmpeg/CONTROL +++ b/ports/ffmpeg/CONTROL @@ -1,5 +1,6 @@ Source: ffmpeg -Version: 4.1-9 +Version: 4.1-11 +Build-Depends: zlib Homepage: https://ffmpeg.org 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. @@ -45,3 +46,6 @@ Description: allow nonfree and unredistributable libraries Feature: gpl Description: allow GPL licensed libraries + +Feature: avresample +Description: Libav audio resampling library support in ffmpeg diff --git a/ports/ffmpeg/FindFFMPEG.cmake b/ports/ffmpeg/FindFFMPEG.cmake index 65ab59e90..4ed03f457 100644 --- a/ports/ffmpeg/FindFFMPEG.cmake +++ b/ports/ffmpeg/FindFFMPEG.cmake @@ -35,6 +35,8 @@ include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake) include(${CMAKE_ROOT}/Modules/CMakeFindDependencyMacro.cmake) +set(FFMPEG_VERSION "4.1") + find_dependency(Threads) #list(APPEND FFMPEG_PLATFORM_DEPENDENT_LIBS Threads::Threads) if(UNIX) @@ -44,7 +46,7 @@ endif() # Platform dependent libraries required by FFMPEG if(WIN32) if(NOT CYGWIN) - list(APPEND FFMPEG_PLATFORM_DEPENDENT_LIBS wsock32 ws2_32 Secur32) + list(APPEND FFMPEG_PLATFORM_DEPENDENT_LIBS wsock32 ws2_32 Secur32 bcrypt) endif() else() list(APPEND FFMPEG_PLATFORM_DEPENDENT_LIBS m) @@ -83,17 +85,41 @@ macro(FFMPEG_FIND_GENEX varname shortname headername) set(FFMPEG_${varname}_FOUND 1) list(APPEND FFMPEG_LIBRARY_DIRS ${FFMPEG_${varname}_LIBRARY_RELEASE_DIR} ${FFMPEG_${varname}_LIBRARY_DEBUG_DIR}) endif() -endmacro(FFMPEG_FIND) +endmacro(FFMPEG_FIND_GENEX) if(WIN32) - if(NOT FFMPEG_${varname}_INCLUDE_DIRS) - find_path(FFMPEG_stdint_INCLUDE_DIRS NAMES stdint.h PATH_SUFFIXES ffmpeg) + FFMPEG_FIND_GENEX(libzlib zlib zlib.h) +else() + FFMPEG_FIND_GENEX(libzlib z zlib.h) +endif() + +if(APPLE) + find_library(VT_UNIT VideoToolbox) + if (NOT VT_UNIT) + message(FATAL_ERROR "VideoToolbox not found") endif() - if (FFMPEG_stdint_INCLUDE_DIRS) - set(STDINT_OK TRUE) + find_library(AT_UNIT AudioToolbox) + if (NOT AT_UNIT) + message(FATAL_ERROR "AudioToolbox not found") endif() -else() - set(STDINT_OK TRUE) + find_library(SEC_UNIT Security) + if (NOT SEC_UNIT) + message(FATAL_ERROR "Security not found") + endif() + find_library(CF_UNIT CoreFoundation) + if (NOT CF_UNIT) + message(FATAL_ERROR "CoreFoundation not found") + endif() + find_library(CM_UNIT CoreMedia) + if (NOT CM_UNIT) + message(FATAL_ERROR "CoreMedia not found") + endif() + find_library(CV_UNIT CoreVideo) + if (NOT CV_UNIT) + message(FATAL_ERROR "CoreVideo not found") + endif() + find_package(Iconv QUIET) + list(APPEND FFMPEG_PLATFORM_DEPENDENT_LIBS ${VT_UNIT} ${AT_UNIT} ${SEC_UNIT} ${CF_UNIT} ${CM_UNIT} ${CV_UNIT} ${Iconv_LIBRARIES}) endif() FFMPEG_FIND(libavcodec avcodec avcodec.h) @@ -103,13 +129,20 @@ FFMPEG_FIND(libavformat avformat avformat.h) FFMPEG_FIND(libavutil avutil avutil.h) FFMPEG_FIND(libswresample swresample swresample.h) FFMPEG_FIND(libswscale swscale swscale.h) -FFMPEG_FIND_GENEX(libzlib zlib zlib.h) -if (FFMPEG_libavcodec_FOUND AND FFMPEG_libavdevice_FOUND AND FFMPEG_libavfilter_FOUND AND FFMPEG_libavformat_FOUND AND FFMPEG_libavutil_FOUND AND FFMPEG_libswresample_FOUND AND FFMPEG_libswscale_FOUND AND FFMPEG_libzlib_FOUND AND STDINT_OK) - list(APPEND FFMPEG_INCLUDE_DIRS ${FFMPEG_libavformat_INCLUDE_DIRS} ${FFMPEG_libavdevice_INCLUDE_DIRS} ${FFMPEG_libavcodec_INCLUDE_DIRS} ${FFMPEG_libavutil_INCLUDE_DIRS} ${FFMPEG_libswscale_INCLUDE_DIRS} ${FFMPEG_stdint_INCLUDE_DIRS}) +if (FFMPEG_libavcodec_FOUND AND FFMPEG_libavdevice_FOUND AND FFMPEG_libavfilter_FOUND AND FFMPEG_libavformat_FOUND AND FFMPEG_libavutil_FOUND AND FFMPEG_libswresample_FOUND AND FFMPEG_libswscale_FOUND AND FFMPEG_libzlib_FOUND) + list(APPEND FFMPEG_INCLUDE_DIRS ${FFMPEG_libavformat_INCLUDE_DIRS} ${FFMPEG_libavdevice_INCLUDE_DIRS} ${FFMPEG_libavcodec_INCLUDE_DIRS} ${FFMPEG_libavutil_INCLUDE_DIRS} ${FFMPEG_libswscale_INCLUDE_DIRS}) list(REMOVE_DUPLICATES FFMPEG_INCLUDE_DIRS) list(REMOVE_DUPLICATES FFMPEG_LIBRARY_DIRS) + set(FFMPEG_libavformat_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + set(FFMPEG_libavdevice_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + set(FFMPEG_libavcodec_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + set(FFMPEG_libavutil_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + set(FFMPEG_libswscale_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + set(FFMPEG_libavfilter_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + set(FFMPEG_libswresample_VERSION "${FFMPEG_VERSION}" CACHE STRING "") + list(APPEND FFMPEG_LIBRARIES ${FFMPEG_libavformat_LIBRARY} ${FFMPEG_libavdevice_LIBRARY} diff --git a/ports/ffmpeg/configure_opencv.patch b/ports/ffmpeg/configure_opencv.patch deleted file mode 100644 index ac5c82797..000000000 --- a/ports/ffmpeg/configure_opencv.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/configure
-+++ b/configure
-@@ -6110,7 +6110,7 @@ enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec
- enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb
- enabled libopencv && { check_headers opencv2/core/core_c.h &&
- { check_pkg_config libopencv opencv opencv2/core/core_c.h cvCreateImageHeader ||
-- require libopencv 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 libopencv opencv opencv/cxcore.h cvCreateImageHeader; }
- enabled libopenh264 && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion
- enabled libopenjpeg && { check_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version ||
diff --git a/ports/ffmpeg/portfile.cmake b/ports/ffmpeg/portfile.cmake index 7309bd544..079880ab3 100644 --- a/ports/ffmpeg/portfile.cmake +++ b/ports/ffmpeg/portfile.cmake @@ -12,7 +12,6 @@ vcpkg_extract_source_archive_ex( PATCHES create-lib-libraries.patch detect-openssl.patch - configure_opencv.patch fix_windowsinclude-in-ffmpegexe-1.patch fix_windowsinclude-in-ffmpegexe-2.patch fix_libvpx_windows_linking.patch @@ -126,6 +125,10 @@ else() set(OPTIONS "${OPTIONS} --disable-bzlib") endif() +if("avresample" IN_LIST FEATURES) + set(OPTIONS "${OPTIONS} --enable-avresample") +endif() + set(OPTIONS_CROSS "") if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") diff --git a/ports/field3d/CONTROL b/ports/field3d/CONTROL new file mode 100644 index 000000000..487075eb4 --- /dev/null +++ b/ports/field3d/CONTROL @@ -0,0 +1,5 @@ +Source: field3d +Version: 1.7.2 +Homepage: https://github.com/imageworks/Field3D +Description: An open source library for storing voxel data. It provides C++ classes that handle in-memory storage and a file format based on HDF5 that allows the C++ objects to be written to and read from disk. +Build-Depends: hdf5, boost-regex, boost-thread, boost-program-options, boost-system, openexr, boost-foreach, boost-test, boost-timer, boost-format diff --git a/ports/field3d/fix-build_error.patch b/ports/field3d/fix-build_error.patch new file mode 100644 index 000000000..e2f44c093 --- /dev/null +++ b/ports/field3d/fix-build_error.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e9ad44f..45f3fad 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -147,7 +147,7 @@ IF ( CMAKE_HOST_UNIX ) + ${MPI_LIBRARIES} ) + ENDIF ( MPI_FOUND ) + LIST ( APPEND Field3D_Libraries_Shared +- Iex Half IlmThread Imath ++ Iex-2_3 Half-2_3 IlmThread-2_3 Imath-2_3 + pthread dl z ) + SET ( Field3D_DSO_Libraries ${Field3D_Libraries_Shared} ) + SET ( Field3D_BIN_Libraries Field3D ${Field3D_Libraries_Shared} diff --git a/ports/field3d/portfile.cmake b/ports/field3d/portfile.cmake new file mode 100644 index 000000000..5170e97a3 --- /dev/null +++ b/ports/field3d/portfile.cmake @@ -0,0 +1,35 @@ +include(vcpkg_common_functions) + +if (VCPKG_TARGET_IS_WINDOWS) + message(FATAL_ERROR "Windows is currently not supported.") +elseif (TRIPLET_SYSTEM_ARCH MATCHES "arm") + message(FATAL_ERROR "ARM is currently not supported.") +elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) + message(FATAL_ERROR "Error: UWP builds are currently not supported.") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO imageworks/Field3D + REF v1.7.2 + SHA512 e4ea51310105980f759dce48830db8ae3592ce32a02b246214d8aed9df7a7f5c500314f2daf92196b7a76d648f2909b18112df4c5c3c8949c0676d710dfbf1f2 + HEAD_REF master + PATCHES + fix-build_error.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +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) + +# Handle copyright +file(COPY ${SOURCE_PATH}/COPYING ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/field3d) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/field3d/COPYING ${CURRENT_PACKAGES_DIR}/share/field3d/copyright) diff --git a/ports/freeimage/CONTROL b/ports/freeimage/CONTROL index 9d9a006c6..c911df6c7 100644 --- a/ports/freeimage/CONTROL +++ b/ports/freeimage/CONTROL @@ -1,5 +1,5 @@ Source: freeimage -Version: 3.18.0-6 -Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openjpeg, libwebp[all], libraw, jxrlib, openexr +Version: 3.18.0-7 +Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openjpeg, libwebp[all] (!uwp), libraw, jxrlib, openexr Homepage: https://sourceforge.net/projects/freeimage/ Description: Support library for graphics image formats diff --git a/ports/gdcm/CONTROL b/ports/gdcm/CONTROL index 32a962eb4..3b49ddec4 100644 --- a/ports/gdcm/CONTROL +++ b/ports/gdcm/CONTROL @@ -1,4 +1,4 @@ Source: gdcm -Version: 3.0.0-3 +Version: 3.0.0-4 Description: Grassroots DICOM library Build-Depends: zlib, expat, openjpeg diff --git a/ports/gdcm/portfile.cmake b/ports/gdcm/portfile.cmake index 36a3e0e1f..b5e825a37 100644 --- a/ports/gdcm/portfile.cmake +++ b/ports/gdcm/portfile.cmake @@ -43,6 +43,12 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share ) +file(READ ${CURRENT_PACKAGES_DIR}/share/gdcm/GDCMTargets.cmake GDCM_TARGETS) +string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)" + "set(CMAKE_IMPORT_FILE_VERSION 1) +find_package(OpenJPEG QUIET)" GDCM_TARGETS "${GDCM_TARGETS}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/gdcm/GDCMTargets.cmake "${GDCM_TARGETS}") + if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) endif() diff --git a/ports/geographiclib/CONTROL b/ports/geographiclib/CONTROL index 1c4c5a17d..21eeee0c9 100644 --- a/ports/geographiclib/CONTROL +++ b/ports/geographiclib/CONTROL @@ -1,4 +1,4 @@ Source: geographiclib -Version: 1.47-patch1-6 +Version: 1.47-patch1-7 Homepage: https://sourceforge.net/projects/geographiclib/ Description: a small set of C++ classes for performing conversions between geographic, UTM, UPS, MGRS, geocentric, and local cartesian coordinates, for gravity (e.g., EGM2008), geoid height, and geomagnetic field (e.g., WMM2010) calculations, and for solving geodesic problems. diff --git a/ports/geographiclib/portfile.cmake b/ports/geographiclib/portfile.cmake index 8f4a716dc..529e07fcc 100644 --- a/ports/geographiclib/portfile.cmake +++ b/ports/geographiclib/portfile.cmake @@ -46,7 +46,11 @@ endif() vcpkg_install_cmake() -vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) +if (VCPKG_TARGET_IS_WINDOWS) + vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) +else() + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake) +endif() vcpkg_copy_pdbs() file(COPY ${CURRENT_PACKAGES_DIR}/lib/pkgconfig DESTINATION ${CURRENT_PACKAGES_DIR}/share/geographiclib) diff --git a/ports/googleapis/CONTROL b/ports/googleapis/CONTROL index b77e35eed..194cd39f5 100644 --- a/ports/googleapis/CONTROL +++ b/ports/googleapis/CONTROL @@ -1,5 +1,5 @@ Source: googleapis -Version: 0.1.1 +Version: 0.1.3 Build-Depends: grpc, protobuf Description: C++ Proto Libraries for Google APIs. Homepage: https://github.com/googleapis/cpp-cmakefiles diff --git a/ports/googleapis/portfile.cmake b/ports/googleapis/portfile.cmake index 684b4cbdb..969ec95fb 100644 --- a/ports/googleapis/portfile.cmake +++ b/ports/googleapis/portfile.cmake @@ -9,8 +9,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO googleapis/cpp-cmakefiles - REF v0.1.1 - SHA512 e23af2d0d36d4e13da761473b78b958326b9c7fd4aaf0c4b6742ae498b65aafe73976f7c858365b041aa667f280c10eca6df7e87644c260fc022ec4eee7a7bc6 + REF v0.1.3 + SHA512 5c6be5af731d97dcf754b1f643c35a1c806e6b976a3dd027dd80ee15f86c6d70f772dcecbf2da5597a4e8d8d9639813c2d2f66dd7112b8039c14c3a49ec6c4db HEAD_REF master ) diff --git a/ports/gtest/CONTROL b/ports/gtest/CONTROL index 7c91eb253..97b5ad3a8 100644 --- a/ports/gtest/CONTROL +++ b/ports/gtest/CONTROL @@ -1,4 +1,4 @@ Source: gtest -Version: 2019-01-04-2 +Version: 2019-08-14 Homepage: https://github.com/google/googletest Description: GoogleTest and GoogleMock testing frameworks. diff --git a/ports/gtest/portfile.cmake b/ports/gtest/portfile.cmake index 892221925..c6fd0162c 100644 --- a/ports/gtest/portfile.cmake +++ b/ports/gtest/portfile.cmake @@ -7,8 +7,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/googletest - REF b6cd405286ed8635ece71c72f118e659f4ade3fb - SHA512 1642a9cf1923d00c52c346399941517787431dad3e6d3a5da07bc02243a231a95e30e0a9568ffd29bb9b9757f15c1c47d2d811c2bedb301f2d27cf912be0a534 + REF 90a443f9c2437ca8a682a1ac625eba64e1d74a8a + SHA512 fc874a7977f11be58dc63993b520b4ae6ca43654fb5250c8b56df62a21f4dca8fcbdc81dfa106374b2bb7c59bc88952fbfc0e3ae4c7d63fdb502afbaeb39c822 HEAD_REF master PATCHES ${CMAKE_CURRENT_LIST_DIR}/0002-Fix-z7-override.patch diff --git a/ports/hayai/CONTROL b/ports/hayai/CONTROL new file mode 100644 index 000000000..7943d301b --- /dev/null +++ b/ports/hayai/CONTROL @@ -0,0 +1,4 @@ +Source: hayai
+Version: 2019-08-10
+Description: C++ benchmarking framework
+Homepage: https://github.com/nickbruun/hayai
diff --git a/ports/hayai/portfile.cmake b/ports/hayai/portfile.cmake new file mode 100644 index 000000000..c175d6633 --- /dev/null +++ b/ports/hayai/portfile.cmake @@ -0,0 +1,70 @@ +include(vcpkg_common_functions)
+
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO nickbruun/hayai
+ REF 0234860c7a851362ab33efc6c018203cded3eb48
+ SHA512 e4c65d834eddaeb77e73a3bc24645a531b93d26e32ff1daffbe71c579b76b4b8b4865f6c7ea07b378cafbe2da3a698414d4135f28fc9821eef995ed78d0987f2
+ HEAD_REF master
+)
+
+if(VCPKG_TARGET_IS_UWP)
+ set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
+ set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DINSTALL_HAYAI=ON
+ -DBUILD_HAYAI_TESTS=OFF
+ -DBUILD_HAYAI_SAMPLES=OFF
+)
+
+vcpkg_install_cmake()
+
+if(EXISTS ${CURRENT_PACKAGES_DIR}/CMake)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH CMake)
+elseif(EXISTS ${CURRENT_PACKAGES_DIR}/lib/CMake/${PORT})
+ vcpkg_fixup_cmake_targets(CONFIG_PATH lib/CMake/${PORT})
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle manual-link libraries
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/hayai_main.lib)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
+ file(RENAME
+ ${CURRENT_PACKAGES_DIR}/debug/lib/hayai_main.lib
+ ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/hayai_main.lib
+ )
+
+ vcpkg_replace_string(
+ ${CURRENT_PACKAGES_DIR}/share/${PORT}/hayai-targets-debug.cmake
+ "\${CMAKE_CURRENT_LIST_DIR}/../../debug/lib/hayai_main.lib"
+ "\${CMAKE_CURRENT_LIST_DIR}/../../debug/lib/manual-link/hayai_main.lib"
+ )
+endif()
+
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/hayai_main.lib)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link)
+ file(RENAME
+ ${CURRENT_PACKAGES_DIR}/lib/hayai_main.lib
+ ${CURRENT_PACKAGES_DIR}/lib/manual-link/hayai_main.lib
+ )
+
+ vcpkg_replace_string(
+ ${CURRENT_PACKAGES_DIR}/share/${PORT}/hayai-targets-release.cmake
+ "\${CMAKE_CURRENT_LIST_DIR}/../../lib/hayai_main.lib"
+ "\${CMAKE_CURRENT_LIST_DIR}/../../lib/manual-link/hayai_main.lib"
+ )
+endif()
+
+# Handle copyright
+configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
+
+# CMake integration test
+vcpkg_test_cmake(PACKAGE_NAME ${PORT})
diff --git a/ports/hfsm2/CONTROL b/ports/hfsm2/CONTROL new file mode 100644 index 000000000..4677f8b08 --- /dev/null +++ b/ports/hfsm2/CONTROL @@ -0,0 +1,5 @@ +Source: hfsm2 +Version: beta7 +Homepage: https://github.com/andrew-gresyk/HFSM2 +Description: Header-only heriarchical FSM framework in C++14, with fully statically-defined structure (no dynamic allocations), built with variadic templates. +Build-Depends: catch2 diff --git a/ports/hfsm2/portfile.cmake b/ports/hfsm2/portfile.cmake new file mode 100644 index 000000000..0970d0111 --- /dev/null +++ b/ports/hfsm2/portfile.cmake @@ -0,0 +1,15 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO andrew-gresyk/HFSM2 + REF Beta7 + SHA512 f3365c0823fa63f7e6b82bd2dc84f8871eb58ffd9485753a60ea8f956856cbec7c5da3929ab8fe8b5902a7c840334a1d421417984124adf109f96756490ac437 + HEAD_REF master +) + +# Install include directory +file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) diff --git a/ports/irrlicht/CMakeLists.txt b/ports/irrlicht/CMakeLists.txt index e61a1d270..b58739836 100644 --- a/ports/irrlicht/CMakeLists.txt +++ b/ports/irrlicht/CMakeLists.txt @@ -85,13 +85,6 @@ target_link_libraries(Irrlicht PRIVATE ${BZIP2_LIBRARY}
)
-target_compile_definitions(Irrlicht PRIVATE
- NO_IRR_USE_NON_SYSTEM_ZLIB_
- NO_IRR_USE_NON_SYSTEM_LIB_PNG_
- NO_IRR_USE_NON_SYSTEM_JPEG_LIB_
- NO_IRR_USE_NON_SYSTEM_BZLIB_
- )
-
if(IRR_BUILD_TOOLS)
add_executable(FileToHeader ${IRR_TOOL_FILES_FILE_TO_HEADER})
@@ -151,9 +144,6 @@ endif() target_compile_definitions(Irrlicht PRIVATE IRRLICHT_EXPORTS)
if(WIN32)
- # Unicode
- target_compile_definitions(Irrlicht PRIVATE UNICODE _UNICODE)
-
# Import the symbols of bzip2
target_compile_definitions(Irrlicht PRIVATE BZ_IMPORT)
diff --git a/ports/irrlicht/CONTROL b/ports/irrlicht/CONTROL index 89c782b46..7cc3e4223 100644 --- a/ports/irrlicht/CONTROL +++ b/ports/irrlicht/CONTROL @@ -1,5 +1,5 @@ Source: irrlicht
-Version: 1.8.4-2
+Version: 1.8.4-1
Description: Irrlicht lightning fast 3d engine
Build-Depends: zlib, libpng, bzip2, libjpeg-turbo
diff --git a/ports/irrlicht/portfile.cmake b/ports/irrlicht/portfile.cmake index 5bee54b42..f4eaf5fc8 100644 --- a/ports/irrlicht/portfile.cmake +++ b/ports/irrlicht/portfile.cmake @@ -22,8 +22,6 @@ vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
REF "1.8.4"
- PATCHES
- "support-unicode-on-windows.patch"
# [NO_REMOVE_ONE_LEVEL]
# [WORKING_DIRECTORY <${CURRENT_BUILDTREES_DIR}/src>]
# [PATCHES <a.patch>...]
diff --git a/ports/irrlicht/support-unicode-on-windows.patch b/ports/irrlicht/support-unicode-on-windows.patch deleted file mode 100644 index 609824401..000000000 --- a/ports/irrlicht/support-unicode-on-windows.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/include/IrrCompileConfig.h b/include/IrrCompileConfig.h -index c2c5d12..7c44f0c 100644 ---- a/include/IrrCompileConfig.h -+++ b/include/IrrCompileConfig.h -@@ -233,7 +233,9 @@ you will not be able to use anything provided by the GUI Environment, including - disable this feature, the engine behave as before (ansi). This is currently only supported - for Windows based systems. You also have to set #define UNICODE for this to compile. - */ --//#define _IRR_WCHAR_FILESYSTEM -+#if defined(_IRR_WINDOWS_) && (defined(_UNICODE) || defined(UNICODE)) -+#define _IRR_WCHAR_FILESYSTEM -+#endif - #ifdef NO_IRR_WCHAR_FILESYSTEM - #undef _IRR_WCHAR_FILESYSTEM - #endif -diff --git a/include/Keycodes.h b/include/Keycodes.h -index e56eca1..57ab312 100644 ---- a/include/Keycodes.h -+++ b/include/Keycodes.h -@@ -89,7 +89,7 @@ namespace irr - KEY_KEY_X = 0x58, // X key - KEY_KEY_Y = 0x59, // Y key - KEY_KEY_Z = 0x5A, // Z key -- KEY_LWIN = 0x5B, // Left Windows key (Microsoft® Natural® keyboard) -+ KEY_LWIN = 0x5B, // Left Windows key (Microsoft® Natural® keyboard) - KEY_RWIN = 0x5C, // Right Windows key (Natural keyboard) - KEY_APPS = 0x5D, // Applications key (Natural keyboard) - KEY_SLEEP = 0x5F, // Computer Sleep key diff --git a/ports/jsoncons/CONTROL b/ports/jsoncons/CONTROL index 7158ab580..73871ba2b 100644 --- a/ports/jsoncons/CONTROL +++ b/ports/jsoncons/CONTROL @@ -1,4 +1,4 @@ Source: jsoncons -Version: 0.131.2 +Version: 0.132.1 Description: A C++, header-only library for constructing JSON and JSON-like text and binary data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON Homepage: https://github.com/danielaparker/jsoncons diff --git a/ports/jsoncons/portfile.cmake b/ports/jsoncons/portfile.cmake index 7c6af87b5..97274bd8f 100644 --- a/ports/jsoncons/portfile.cmake +++ b/ports/jsoncons/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO danielaparker/jsoncons - REF v0.131.2 - SHA512 7053a971cbc6e12623b65f98323c0d330c903f2b5eae9191369a9a04ae87654e8fa435139e9a72829a1ef9a957e3d4837362c90668f42ba8a0eedc80207e6eef + REF v0.132.1 + SHA512 74bfe6fe18e90f4230b9d811a01f263e4597f6363f4df0cb29a89148bbc040ab578a1eb77d3cb87ce0d8e9d304b9716dd245f4dc5603c7d445cd0acdfb62905d HEAD_REF master ) diff --git a/ports/jsoncpp/CONTROL b/ports/jsoncpp/CONTROL index 6bbe46c0e..f0d4b66a3 100644 --- a/ports/jsoncpp/CONTROL +++ b/ports/jsoncpp/CONTROL @@ -1,4 +1,4 @@ Source: jsoncpp
-Version: 1.8.4-1
+Version: 1.9.1
Homepage: https://github.com/open-source-parsers/jsoncpp
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 f04620fd5..3e00476d2 100644 --- a/ports/jsoncpp/portfile.cmake +++ b/ports/jsoncpp/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO open-source-parsers/jsoncpp - REF 1.8.4 - SHA512 f70361a3263dd8b9441374a9a409462be1426c0d6587c865171a80448ab73b3f69de2b4d70d2f0c541764e1e6cccc727dd53178347901f625ec6fb54fb94f4f1 + REF 1.9.1 + SHA512 4a8352e1d32c0ba8a0aea4df1663279cb2256b334643c5b62be37dfb5951e06900ba38c010d1201511fcf7de09137d6a4b886edbb2b99160d2f62b5f4679f766 HEAD_REF master ) diff --git a/ports/jsonnet/001-enable-msvc.patch b/ports/jsonnet/001-enable-msvc.patch index 3a666ee4b..4bbcf0830 100644 --- a/ports/jsonnet/001-enable-msvc.patch +++ b/ports/jsonnet/001-enable-msvc.patch @@ -1,8 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8682cc8..88b95c1 100644 +index cdd5367..e982ee5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -11,6 +11,8 @@ set(GLOBAL_OUTPUT_PATH_SUFFIX "" CACHE STRING +@@ -13,6 +13,8 @@ set(GLOBAL_OUTPUT_PATH_SUFFIX "" CACHE STRING project(jsonnet C CXX) @@ -11,26 +11,35 @@ index 8682cc8..88b95c1 100644 # Discourage in-source builds because they overwrite the hand-written Makefile. # Use `cmake . -B<dir>` or the CMake GUI to do an out-of-source build. if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR} AND -@@ -73,17 +75,6 @@ elseif (BUILD_TESTS AND USE_SYSTEM_GTEST) - add_subdirectory(/usr/src/googletest ${GLOBAL_OUTPUT_PATH}/googletest-build) +@@ -76,6 +78,7 @@ elseif (BUILD_TESTS AND USE_SYSTEM_GTEST) endif() --# Compiler flags. --if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" OR -- ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") -- set(OPT "-O3") -- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -Wextra -pedantic -std=c99 -O3 ${OPT}") -- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -Woverloaded-virtual -pedantic -std=c++0x -fPIC ${OPT}") --else() -- # TODO: Windows support. -- message(FATAL_ERROR "Compiler ${CMAKE_CXX_COMPILER_ID} not supported") --endif() -- + # Compiler flags. ++if (0) + if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" OR + ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") + set(OPT "-O3") +@@ -85,6 +88,7 @@ else() + # TODO: Windows support. + message(FATAL_ERROR "Compiler ${CMAKE_CXX_COMPILER_ID} not supported") + endif() ++endif() + # Look for libraries in global output path. link_directories(${GLOBAL_OUTPUT_PATH}) +diff --git a/cmd/CMakeLists.txt b/cmd/CMakeLists.txt +index 66e6aa0..aedc87e 100644 +--- a/cmd/CMakeLists.txt ++++ b/cmd/CMakeLists.txt +@@ -13,5 +13,5 @@ if (BUILD_JSONNETFMT OR BUILD_TESTS) + add_dependencies(jsonnetfmt libjsonnet_static) + target_link_libraries(jsonnetfmt libjsonnet_static) +- install(TARGETS jsonnetfmt DESTINATION "${CMAKE_INSTALL_BINDIR}") ++ install(TARGETS jsonnetfmt DESTINATION tools/jsonnet) + endif() diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt -index f1c32b8..1a45a51 100644 +index e877015..5ec328b 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -28,7 +28,7 @@ set(LIBJSONNET_SOURCE @@ -42,37 +51,38 @@ index f1c32b8..1a45a51 100644 add_dependencies(libjsonnet md5 stdlib) target_link_libraries(libjsonnet md5) -@@ -36,13 +36,12 @@ target_link_libraries(libjsonnet md5) - # this step the output would be |liblibjsonnet|. - set_target_properties(libjsonnet PROPERTIES OUTPUT_NAME jsonnet - VERSION 0.12.1 SOVERSION 0) --install(TARGETS libjsonnet DESTINATION lib) -+install(TARGETS libjsonnet DESTINATION lib RUNTIME DESTINATION bin) +@@ -41,13 +41,13 @@ set_target_properties(libjsonnet PROPERTIES OUTPUT_NAME jsonnet + install(TARGETS libjsonnet + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ++ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") # Static library for jsonnet command-line tool. add_library(libjsonnet_static STATIC ${LIBJSONNET_SOURCE}) add_dependencies(libjsonnet_static md5 stdlib) target_link_libraries(libjsonnet_static md5) -set_target_properties(libjsonnet_static PROPERTIES OUTPUT_NAME jsonnet) + install(TARGETS libjsonnet_static DESTINATION "${CMAKE_INSTALL_LIBDIR}") # Tests - diff --git a/stdlib/CMakeLists.txt b/stdlib/CMakeLists.txt -index a481d9f..9fe768e 100644 +index a481d9f..bb8e418 100644 --- a/stdlib/CMakeLists.txt +++ b/stdlib/CMakeLists.txt -@@ -2,14 +2,6 @@ +@@ -2,6 +2,7 @@ add_executable(to_c_array to_c_array.cpp) --# Custom command that will only build stdlib when it changes. --add_custom_command( -- OUTPUT ${PROJECT_SOURCE_DIR}/core/std.jsonnet.h -- COMMAND ${GLOBAL_OUTPUT_PATH}/to_c_array -- ${PROJECT_SOURCE_DIR}/stdlib/std.jsonnet -- ${PROJECT_SOURCE_DIR}/core/std.jsonnet.h -- DEPENDS to_c_array std.jsonnet) -- ++if (0) + # Custom command that will only build stdlib when it changes. + add_custom_command( + OUTPUT ${PROJECT_SOURCE_DIR}/core/std.jsonnet.h +@@ -9,6 +10,7 @@ add_custom_command( + ${PROJECT_SOURCE_DIR}/stdlib/std.jsonnet + ${PROJECT_SOURCE_DIR}/core/std.jsonnet.h + DEPENDS to_c_array std.jsonnet) ++endif() + # Standard library build target that libjsonnet can depend on. add_custom_target(stdlib ALL - DEPENDS ${PROJECT_SOURCE_DIR}/core/std.jsonnet.h) diff --git a/ports/jsonnet/CONTROL b/ports/jsonnet/CONTROL index 508f1e7af..36c3d0c1b 100644 --- a/ports/jsonnet/CONTROL +++ b/ports/jsonnet/CONTROL @@ -1,4 +1,4 @@ Source: jsonnet -Version: 2019-05-08-1 +Version: 0.13.0 Homepage: https://github.com/google/jsonnet Description: Jsonnet - The data templating language diff --git a/ports/jsonnet/portfile.cmake b/ports/jsonnet/portfile.cmake index ffa2973fb..b321c6a75 100644 --- a/ports/jsonnet/portfile.cmake +++ b/ports/jsonnet/portfile.cmake @@ -7,15 +7,15 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/jsonnet - REF c323f5ce5b8aa663585d23dc0fb94d4b166c6f16 - SHA512 d9f84c39929e9e80272e2b834f68a13b48c1cb4d64b70f5b6fa16e677555d947f7cf57372453e23066a330faa6a429b9aa750271b46f763581977a223d238785 + REF v0.13.0 + SHA512 d19e5398763e37b79b0ef02368f6bd6215d2df234b5ff7a6d98e2306a0d47290600061c9f868c0c262570b4f0ee9eee6c309bcc93937b12f6c14f8d12339a7d5 HEAD_REF master PATCHES 001-enable-msvc.patch ) -if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - vcpkg_execute_required_process( +if (VCPKG_TARGET_IS_WINDOWS) + vcpkg_execute_required_process( COMMAND Powershell -Command "((Get-Content -AsByteStream \"${SOURCE_PATH}/stdlib/std.jsonnet\") -join ',') + ',0' | Out-File -Encoding Ascii \"${SOURCE_PATH}/core/std.jsonnet.h\"" WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME "std.jsonnet" diff --git a/ports/lazy-importer/CONTROL b/ports/lazy-importer/CONTROL new file mode 100644 index 000000000..c46a768b0 --- /dev/null +++ b/ports/lazy-importer/CONTROL @@ -0,0 +1,4 @@ +Source: lazy-importer +Version: 2019-08-10 +Description: Library for importing functions from dlls in a hidden, reverse engineer unfriendly way +Homepage: https://github.com/JustasMasiulis/lazy_importer diff --git a/ports/lazy-importer/portfile.cmake b/ports/lazy-importer/portfile.cmake new file mode 100644 index 000000000..076bb7c34 --- /dev/null +++ b/ports/lazy-importer/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO JustasMasiulis/lazy_importer + REF 88186bfce98845eba9050f7597332754f621c0fc + SHA512 04789501ea9c9cf600326b3f8292c441f54d0915452eb29b063fe0a8d56a31157cf338a4ec44aa658e397d754b6593ece51af2736d5980e72d67359a1abc2625 + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/include/lazy_importer.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/leptonica/CONTROL b/ports/leptonica/CONTROL index 39a0a5e5c..0d65a10d5 100644 --- a/ports/leptonica/CONTROL +++ b/ports/leptonica/CONTROL @@ -1,5 +1,5 @@ Source: leptonica -Version: 1.76.0-1 +Version: 1.78.0 Homepage: https://github.com/DanBloomberg/leptonica 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/portfile.cmake b/ports/leptonica/portfile.cmake index 34a1c379e..7b8479698 100644 --- a/ports/leptonica/portfile.cmake +++ b/ports/leptonica/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DanBloomberg/leptonica - REF 1.76.0 - SHA512 0d7575dc38d1e656a228ef30412a2cbb908b9c7c8636e4e96f4a7dc0429c04709316b8ad04893285ab430c1b2063d71537fc5b989a0f9dbdbec488713e1bab1f + REF 87b8219360bca3c9929a5705c3d9c50c42c34bca + SHA512 b7bfa9437be7e3d9276acacf8f62ccda1cd8f88741ada5106ef0232d4965617be2c5d0b8a6b4462896a1a0b6b44d9ecefd6e6b8d0e50d4fb881bdf5e821703a4 HEAD_REF master PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch diff --git a/ports/leptonica/use-tiff-libraries.patch b/ports/leptonica/use-tiff-libraries.patch index f994be552..4db86ef7b 100644 --- a/ports/leptonica/use-tiff-libraries.patch +++ b/ports/leptonica/use-tiff-libraries.patch @@ -1,13 +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/src/CMakeLists.txt b/src/CMakeLists.txt
+index 6daad98..5119895 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -48,7 +48,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_DIRS})
diff --git a/ports/libgit2/CONTROL b/ports/libgit2/CONTROL index 5c396d473..5569f18ff 100644 --- a/ports/libgit2/CONTROL +++ b/ports/libgit2/CONTROL @@ -1,5 +1,5 @@ Source: libgit2
-Version: 0.28.2
+Version: 0.28.3
Homepage: https://github.com/libgit2/libgit2
Build-Depends: openssl (!windows&&!uwp)
Description: Git linkable library
diff --git a/ports/libgit2/portfile.cmake b/ports/libgit2/portfile.cmake index 711da201e..d2b70483d 100644 --- a/ports/libgit2/portfile.cmake +++ b/ports/libgit2/portfile.cmake @@ -8,8 +8,8 @@ include(vcpkg_common_functions) vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO libgit2/libgit2
- REF b3e1a56ebb2b9291e82dc027ba9cbcfc3ead54d3 - SHA512 2a992759c0892300eff6d4e823367e2cfc5bcaa6e37a0e87de45a16393c53ccd286f47f37d38c104e79eed8688b9834ada00000b2d6894f89773f75c83e23022
+ REF v0.28.3 + SHA512 15444823b7d4885f7b8c3982f8905efc4a75913de016a9b2e0a24d5ce9746e6a549dffd5469036529557feff2ce7ece9328266eb312c80b96091ce0f65ee97ee
HEAD_REF master
)
diff --git a/ports/libidn2/CONTROL b/ports/libidn2/CONTROL index 01d89d69b..3ed7546ba 100644 --- a/ports/libidn2/CONTROL +++ b/ports/libidn2/CONTROL @@ -1,5 +1,5 @@ Source: libidn2 -Version: 2.1.1-1 +Version: 2.2.0 Build-Depends: libiconv Homepage: https://www.gnu.org/software/libidn/ 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/portfile.cmake b/ports/libidn2/portfile.cmake index d7de30f41..2b5be4692 100644 --- a/ports/libidn2/portfile.cmake +++ b/ports/libidn2/portfile.cmake @@ -1,12 +1,12 @@ include(vcpkg_common_functions) -set(IDN2_VERSION 2.1.1) -set(IDN2_FILENAME libidn2-${IDN2_VERSION}a.tar.gz) +set(IDN2_VERSION 2.2.0) +set(IDN2_FILENAME libidn2-${IDN2_VERSION}.tar.gz) vcpkg_download_distfile(ARCHIVE URLS "http://ftp.gnu.org/gnu/libidn/${IDN2_FILENAME}" FILENAME "${IDN2_FILENAME}" - SHA512 404a739e33d324f700ac8e8119de3feef0de778bbb11be09049cb64eab447cd101883f6d489cca1e88c230f58bcaf9758fe102e571b6501450aa750ec2a4a9c6 + SHA512 ccf56056a378d49a28ff67a2a23cd3d32ce51f86a78f84839b98dad709a1d0d03ac8d7c1496f0e4d3536bca00e3d09d34d76a37317b2ce87e3aa66bdf4e877b8 ) vcpkg_extract_source_archive_ex( diff --git a/ports/libmariadb/CONTROL b/ports/libmariadb/CONTROL index 0e3327bb4..267755d1b 100644 --- a/ports/libmariadb/CONTROL +++ b/ports/libmariadb/CONTROL @@ -1,4 +1,4 @@ Source: libmariadb
-Version: 3.0.10-3
+Version: 3.0.10-4
Homepage: https://github.com/MariaDB/mariadb-connector-c
Description: MariaDB Connector/C is used to connect C/C++ applications to MariaDB and MySQL databases
diff --git a/ports/libmariadb/fix-InstallPath.patch b/ports/libmariadb/fix-InstallPath.patch index 1a317aa2d..667a428f0 100644 --- a/ports/libmariadb/fix-InstallPath.patch +++ b/ports/libmariadb/fix-InstallPath.patch @@ -1,19 +1,3 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 02757a9..b2715dd 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -15,6 +15,11 @@ IF(COMMAND CMAKE_POLICY) - ENDFOREACH() - ENDIF() - -+if (BUILD_SHARED_LIBS) -+ set(DEFAULT_LINKAGE DYNAMIC) -+else() -+ set(DEFAULT_LINKAGE STATIC) -+endif() - - PROJECT(mariadb-connector-c C) - diff --git a/cmake/install_plugins.cmake b/cmake/install_plugins.cmake index cd5616c..d058a5c 100644 --- a/cmake/install_plugins.cmake @@ -63,84 +47,3 @@ index a1f039e..03a3a6f 100644 # On Windows, install PDB INSTALL(FILES $<TARGET_PDB_FILE:libmariadb> DESTINATION "${INSTALL_LIBDIR}" CONFIGURATIONS Debug RelWithDebInfo -diff --git a/plugins/auth/CMakeLists.txt b/plugins/auth/CMakeLists.txt -index 42f6f05..9a57146 100644 ---- a/plugins/auth/CMakeLists.txt -+++ b/plugins/auth/CMakeLists.txt -@@ -14,7 +14,7 @@ REGISTER_PLUGIN(TARGET mysql_native_password - REGISTER_PLUGIN(TARGET dialog - TYPE MARIADB_CLIENT_PLUGIN_AUTH - CONFIGURATIONS DYNAMIC STATIC OFF -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${CC_SOURCE_DIR}/plugins/auth/dialog.c - ${CC_SOURCE_DIR}/libmariadb/get_password.c) - -@@ -33,7 +33,7 @@ IF(WITH_SSL) - REGISTER_PLUGIN(TARGET caching_sha2_password - TYPE MARIADB_CLIENT_PLUGIN_AUTH - CONFIGURATIONS DYNAMIC STATIC OFF -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${CC_SOURCE_DIR}/plugins/auth/caching_sha2_pw.c - ${CRYPT_SOURCE} - LIBRARIES ${CACHING_SHA2_LIBS}) -@@ -53,7 +53,7 @@ IF(GSSAPI_SOURCES) - REGISTER_PLUGIN(TARGET auth_gssapi_client - TYPE MARIADB_CLIENT_PLUGIN_AUTH - CONFIGURATIONS DYNAMIC STATIC OFF -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${GSSAPI_SOURCES} - INCLUDES ${CC_SOURCE_DIR}/plugins/auth ${GSSAPI_INCS} - LIBRARIES ${GSSAPI_LIBS}) -@@ -68,7 +68,7 @@ IF(${WITH_SSL} STREQUAL "OPENSSL" OR ${WITH_SSL} STREQUAL "SCHANNEL") - REGISTER_PLUGIN(TARGET sha256_password - TYPE MARIADB_CLIENT_PLUGIN_AUTH - CONFIGURATIONS DYNAMIC STATIC OFF -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${AUTH_DIR}/sha256_pw.c - LIBRARIES ${SHA256_LIBS}) - ENDIF() -@@ -85,6 +85,6 @@ REGISTER_PLUGIN(TARGET mysql_old_password - REGISTER_PLUGIN(TARGET mysql_clear_password - TYPE MARIADB_CLIENT_PLUGIN_AUTH - CONFIGURATIONS DYNAMIC STATIC OFF -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${AUTH_DIR}/mariadb_cleartext.c) - -diff --git a/plugins/io/CMakeLists.txt b/plugins/io/CMakeLists.txt -index 8c304c9..3547107 100644 ---- a/plugins/io/CMakeLists.txt -+++ b/plugins/io/CMakeLists.txt -@@ -7,7 +7,7 @@ IF (WITH_CURL) - REGISTER_PLUGIN(TARGET remote_io - TYPE MARIADB_CLIENT_PLUGIN_IO - CONFIGURATIONS DYNAMIC STATIC OFF -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${CC_SOURCE_DIR}/plugins/io/remote_io.c - INCLUDES ${CURL_INCLUDE_DIR} - LIBRARIES ${CURL_LIBRARIES}) -diff --git a/plugins/pvio/CMakeLists.txt b/plugins/pvio/CMakeLists.txt -index 76eb3ef..3601622 100644 ---- a/plugins/pvio/CMakeLists.txt -+++ b/plugins/pvio/CMakeLists.txt -@@ -15,13 +15,13 @@ IF(WIN32) - REGISTER_PLUGIN(TARGET pvio_npipe - TYPE MARIADB_CLIENT_PLUGIN_PVIO - CONFIGURATIONS STATIC DYNAMIC DEFAULT -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${CC_SOURCE_DIR}/plugins/pvio/pvio_npipe.c) - - # shared memory - REGISTER_PLUGIN(TARGET pvio_shmem - TYPE MARIADB_CLIENT_PLUGIN_PVIO - CONFIGURATIONS STATIC DYNAMIC DEFAULT -- DEFAULT DYNAMIC -+ DEFAULT ${DEFAULT_LINKAGE} - SOURCES ${CC_SOURCE_DIR}/plugins/pvio/pvio_shmem.c) - ENDIF() diff --git a/ports/libmariadb/portfile.cmake b/ports/libmariadb/portfile.cmake index ebf8b9f24..6e74a5186 100644 --- a/ports/libmariadb/portfile.cmake +++ b/ports/libmariadb/portfile.cmake @@ -33,6 +33,10 @@ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
endif()
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
if(VCPKG_BUILD_TYPE STREQUAL "debug")
# move headers
file(RENAME
diff --git a/ports/libmorton/CONTROL b/ports/libmorton/CONTROL index 8e814fd43..bfbf6bfca 100644 --- a/ports/libmorton/CONTROL +++ b/ports/libmorton/CONTROL @@ -1,3 +1,3 @@ Source: libmorton -Version: 2018-19-07 +Version: 0.2 Description: header-only library for encoding/decoding Morton codes in/from 2D/3D coordinates diff --git a/ports/libmorton/portfile.cmake b/ports/libmorton/portfile.cmake index 396a3608b..4738014e3 100644 --- a/ports/libmorton/portfile.cmake +++ b/ports/libmorton/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Forceflow/libmorton - REF 797ea736dca49553a56089f143ee6d1effdd318e - SHA512 ee9632f5c873462842d18014d4fd2d461e9fe767659e7426a7dec90fcc06cb974fb064229db5622c38ad0af9509004edea87e0f1d57ad09d8d1d236a5b9579a0 + REF v0.2 + SHA512 04cf8332a1cee52eebfb25a46ac64517900704f62fe53ccf1d6a74c535ccac5af4e3ce2e0a5ce94ee850fadb429fe0d88d5a66901f16e4308341a621e599d33d HEAD_REF master ) diff --git a/ports/librdkafka/portfile.cmake b/ports/librdkafka/portfile.cmake index 84c50c8fa..c441c3c07 100644 --- a/ports/librdkafka/portfile.cmake +++ b/ports/librdkafka/portfile.cmake @@ -12,11 +12,11 @@ vcpkg_from_github( string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" RDKAFKA_BUILD_STATIC)
-vcpkg_check_features(
- lz4 ENABLE_LZ4_EXT
- ssl WITH_SSL
- zlib WITH_ZLIB
- zstd WITH_ZSTD
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ lz4 ENABLE_LZ4_EXT
+ ssl WITH_SSL
+ zlib WITH_ZLIB
+ zstd WITH_ZSTD
snappy WITH_SNAPPY
)
@@ -50,7 +50,7 @@ vcpkg_fixup_cmake_targets( TARGET_PATH share/rdkafka
)
-if(ENABLE_LZ4_EXT)
+if("lz4" IN_LIST FEATURES)
vcpkg_replace_string(
${CURRENT_PACKAGES_DIR}/share/rdkafka/RdKafkaConfig.cmake
"find_dependency(LZ4)"
diff --git a/ports/libsvm/CMakeLists.txt b/ports/libsvm/CMakeLists.txt new file mode 100644 index 000000000..560b05350 --- /dev/null +++ b/ports/libsvm/CMakeLists.txt @@ -0,0 +1,62 @@ +cmake_minimum_required(VERSION 3.14)
+
+project(libsvm LANGUAGES C CXX)
+
+include(GNUInstallDirs)
+
+option(SVM_BUILD_TOOLS "Build SVM tools" OFF)
+
+set(libsvm_sources svm.cpp)
+if (WIN32)
+ list(APPEND libsvm_sources svm.def)
+endif ()
+
+add_library(libsvm ${libsvm_sources})
+
+target_compile_definitions(
+ libsvm
+ PRIVATE
+ $<$<C_COMPILER_ID:MSVC>:
+ _CRT_SECURE_NO_WARNINGS
+ strdup=_strdup
+ >
+)
+
+target_include_directories(
+ libsvm
+ PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+)
+
+set_target_properties(libsvm PROPERTIES PUBLIC_HEADER svm.h)
+
+install(TARGETS libsvm EXPORT unofficial-libsvm-config)
+
+install(
+ EXPORT unofficial-libsvm-config
+ NAMESPACE unofficial::libsvm::
+ DESTINATION share/unofficial-libsvm
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+)
+
+if (SVM_BUILD_TOOLS)
+ add_executable(svm-predict svm-predict.c)
+ target_link_libraries(svm-predict PRIVATE libsvm)
+
+ add_executable(svm-scale svm-scale.c)
+ target_link_libraries(svm-scale PRIVATE libsvm)
+
+ add_executable(svm-train svm-train.c)
+ target_link_libraries(svm-train PRIVATE libsvm)
+
+ install(TARGETS svm-predict svm-scale svm-train)
+
+ if (WIN32)
+ add_executable(svm-toy svm-toy/windows/svm-toy.cpp)
+ target_link_libraries(svm-toy PRIVATE libsvm)
+ set_target_properties(svm-toy PROPERTIES WIN32_EXECUTABLE ON)
+
+ install(TARGETS svm-toy)
+ endif ()
+endif ()
diff --git a/ports/libsvm/CONTROL b/ports/libsvm/CONTROL new file mode 100644 index 000000000..342536cce --- /dev/null +++ b/ports/libsvm/CONTROL @@ -0,0 +1,7 @@ +Source: libsvm
+Version: 323
+Description: A library for Support Vector Machines
+Homepage: https://www.csie.ntu.edu.tw/~cjlin/libsvm/
+
+Feature: tools
+Description: Build libsvm tools
diff --git a/ports/libsvm/portfile.cmake b/ports/libsvm/portfile.cmake new file mode 100644 index 000000000..f4f7c6960 --- /dev/null +++ b/ports/libsvm/portfile.cmake @@ -0,0 +1,64 @@ +include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO cjlin1/libsvm
+ REF v323
+ SHA512 c4abd408acf860c76cfc743e6c65d241fcb18443e741fc0f557f7cf7b4d0913c05f3afc5d49de8a42ff88db6fc7b046d08bcb0a3d2a24ba23e297ed1cfbb9131
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_check_features(
+ OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ tools SVM_BUILD_TOOLS
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DSVM_BUILD_TOOLS=OFF
+ OPTIONS_RELEASE
+ ${FEATURE_OPTIONS}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-${PORT} TARGET_PATH share/unofficial-${PORT})
+
+# Install tools
+if ("tools" IN_LIST FEATURES)
+ if(VCPKG_TARGET_IS_WINDOWS)
+ set(EXECUTABLE_SUFFIX ".exe")
+ else()
+ set(EXECUTABLE_SUFFIX "")
+ endif()
+
+ foreach (libsvm_tool svm-predict svm-scale svm-toy svm-train)
+ if (EXISTS ${CURRENT_PACKAGES_DIR}/bin/${libsvm_tool}${EXECUTABLE_SUFFIX})
+ file(
+ COPY ${CURRENT_PACKAGES_DIR}/bin/${libsvm_tool}${EXECUTABLE_SUFFIX}
+ DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}
+ )
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/${libsvm_tool}${EXECUTABLE_SUFFIX})
+ endif ()
+
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+ endforeach ()
+
+ if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
+ endif ()
+endif ()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+configure_file(${SOURCE_PATH}/COPYRIGHT ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
+
+# CMake integration test
+vcpkg_test_cmake(PACKAGE_NAME unofficial-${PORT})
diff --git a/ports/libtorrent/CONTROL b/ports/libtorrent/CONTROL index 2fe8e85ed..ef6da1321 100644 --- a/ports/libtorrent/CONTROL +++ b/ports/libtorrent/CONTROL @@ -1,5 +1,5 @@ Source: libtorrent -Version: 2019-04-19 +Version: 1.2.1-bcb26fd6 Homepage: https://github.com/arvidn/libtorrent 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, boost-scope-exit, boost-multiprecision diff --git a/ports/libtorrent/portfile.cmake b/ports/libtorrent/portfile.cmake index bc05d14c7..df31dbe93 100644 --- a/ports/libtorrent/portfile.cmake +++ b/ports/libtorrent/portfile.cmake @@ -3,12 +3,11 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO arvidn/libtorrent - REF 76c2794923c4c101ff715be11d794f7fefc6c524 - SHA512 3e154857bb56318ebe725326e1832aa387dc85840be80ebe76c0265e8fded43bc3006d528784c8805e30c3fba41b4108ccf81170870d1686dc499048367563ea + REF bcb26fd638bd8c543cd3cc42837b120ff86d44b1 + SHA512 af897d2daca6e67efe777724147b1047624df9df938222fe967d380263d88ccb3c081e1a24a6c790bf1b35f46385ef08b46d8e46d0922f945cd28c59dd0d35a7 HEAD_REF master PATCHES add-datetime-to-boost-libs.patch - windows-boost-1.70.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBTORRENT_SHARED) diff --git a/ports/libtorrent/windows-boost-1.70.patch b/ports/libtorrent/windows-boost-1.70.patch deleted file mode 100644 index b0bf1f642..000000000 --- a/ports/libtorrent/windows-boost-1.70.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/ip_notifier.cpp b/src/ip_notifier.cpp
-index 37e5623..daa25f8 100644
---- a/src/ip_notifier.cpp
-+++ b/src/ip_notifier.cpp
-@@ -380,7 +380,7 @@ struct ip_change_notifier_impl final : ip_change_notifier
- }
- else
- {
-- m_hnd.get_io_service().post([cb, err]()
-+ lt::get_io_service(m_hnd).post([cb, err]()
- { cb(error_code(err, system_category())); });
- }
- }
diff --git a/ports/mimalloc/CONTROL b/ports/mimalloc/CONTROL index 127d64590..daf48d8ce 100644 --- a/ports/mimalloc/CONTROL +++ b/ports/mimalloc/CONTROL @@ -1,5 +1,5 @@ Source: mimalloc
-Version: 2019-06-25
+Version: 2019-06-25-1
Description: Compact general purpose allocator with excellent performance
Homepage: https://github.com/microsoft/mimalloc
diff --git a/ports/mimalloc/portfile.cmake b/ports/mimalloc/portfile.cmake index a520b3ba5..1a11284f5 100644 --- a/ports/mimalloc/portfile.cmake +++ b/ports/mimalloc/portfile.cmake @@ -10,10 +10,10 @@ vcpkg_from_github( fix-cmake.patch
)
-vcpkg_check_features(
- asm MI_SEE_ASM
- secure MI_SECURE
- override MI_OVERRIDE
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ asm MI_SEE_ASM
+ secure MI_SECURE
+ override MI_OVERRIDE
)
vcpkg_configure_cmake(
@@ -24,11 +24,9 @@ vcpkg_configure_cmake( OPTIONS_RELEASE
-DMI_CHECK_FULL=OFF
OPTIONS
- -DMI_OVERRIDE=${MI_OVERRIDE}
-DMI_INTERPOSE=ON
- -DMI_SEE_ASM=${MI_SEE_ASM}
-DMI_USE_CXX=OFF
- -DMI_SECURE=${MI_SECURE}
+ ${FEATURE_OPTIONS}
)
vcpkg_install_cmake()
diff --git a/ports/mongo-c-driver/CONTROL b/ports/mongo-c-driver/CONTROL index 77a40437f..eb52dacc8 100644 --- a/ports/mongo-c-driver/CONTROL +++ b/ports/mongo-c-driver/CONTROL @@ -1,5 +1,5 @@ Source: mongo-c-driver -Version: 1.14.0-3 +Version: 1.14.0-3-1 Build-Depends: libbson, openssl (!windows), zlib Description: Client library written in C for MongoDB. Homepage: https://github.com/mongodb/mongo-c-driver diff --git a/ports/mongo-c-driver/portfile.cmake b/ports/mongo-c-driver/portfile.cmake index 40d1effa8..9106fecb9 100644 --- a/ports/mongo-c-driver/portfile.cmake +++ b/ports/mongo-c-driver/portfile.cmake @@ -10,8 +10,8 @@ vcpkg_from_github( PATCHES fix-uwp.patch
)
-vcpkg_check_features(
- "snappy" MONGO_ENABLE_SNAPPY
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ "snappy" ENABLE_SNAPPY
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
@@ -38,8 +38,8 @@ vcpkg_configure_cmake( -DENABLE_SSL=${ENABLE_SSL}
-DENABLE_ZLIB=SYSTEM
-DENABLE_STATIC=${ENABLE_STATIC}
- -DENABLE_SNAPPY=${MONGO_ENABLE_SNAPPY}
-DBUILD_VERSION=${BUILD_VERSION}
+ ${FEATURE_OPTIONS}
)
vcpkg_install_cmake()
diff --git a/ports/monkeys-audio/CONTROL b/ports/monkeys-audio/CONTROL index 2b6447dbe..fdd72f340 100644 --- a/ports/monkeys-audio/CONTROL +++ b/ports/monkeys-audio/CONTROL @@ -1,5 +1,5 @@ Source: monkeys-audio -Version: 4.3.3-1 +Version: 4.8.3 Homepage: https://monkeysaudio.com Description: Monkey's Audio is an excellent audio compression tool which has multiple advantages over traditional methods. Audio files compressed with it ends with .ape extension. diff --git a/ports/monkeys-audio/portfile.cmake b/ports/monkeys-audio/portfile.cmake index fbde63a4a..719db6e29 100644 --- a/ports/monkeys-audio/portfile.cmake +++ b/ports/monkeys-audio/portfile.cmake @@ -6,17 +6,17 @@ endif() vcpkg_check_linkage(ONLY_STATIC_LIBRARY ONLY_STATIC_CRT) -if(EXISTS ${CURRENT_BUILDTREES_DIR}/src/MAC_SDK_433.zip.extracted) +if(EXISTS ${CURRENT_BUILDTREES_DIR}/src/MAC_SDK_483.zip.extracted) file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src) endif() set(VERSION 4.7) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/433) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/483) vcpkg_download_distfile(ARCHIVE - URLS "http://monkeysaudio.com/files/MAC_SDK_433.zip" - FILENAME "MAC_SDK_433.zip" - SHA512 957ba262da29a8542ab82dc828328b19bf80ecf0d09165db935924b390cb6a3a2d9303a2e07b86b28ecf4210a66dd5c4be840205a9f09518189101033f1a13c8 + URLS "http://monkeysaudio.com/files/MAC_SDK_483.zip" + FILENAME "MAC_SDK_483.zip" + SHA512 c080aa87997def3b970050f6bd334b6908884cc521f192abc02d774a8b3067207781dcab30f052015d4ae891fc6390c6f0b33ed319d9d7fd0850dab6fcded8f0 ) vcpkg_extract_source_archive(${ARCHIVE} ${SOURCE_PATH}) @@ -29,7 +29,7 @@ file(REMOVE vcpkg_install_msbuild( SOURCE_PATH ${SOURCE_PATH} - PROJECT_SUBPATH Source/Projects/VS2017/Console/Console.vcxproj + PROJECT_SUBPATH Source/Projects/VS2019/Console/Console.vcxproj ) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include) diff --git a/ports/mpmcqueue/CONTROL b/ports/mpmcqueue/CONTROL new file mode 100644 index 000000000..3da89f6a5 --- /dev/null +++ b/ports/mpmcqueue/CONTROL @@ -0,0 +1,4 @@ +Source: mpmcqueue +Version: 2019-07-26 +Description: A bounded multi-producer multi-consumer lock-free queue written in C++11 +Homepage: https://github.com/rigtorp/MPMCQueue diff --git a/ports/mpmcqueue/portfile.cmake b/ports/mpmcqueue/portfile.cmake new file mode 100644 index 000000000..be2f03064 --- /dev/null +++ b/ports/mpmcqueue/portfile.cmake @@ -0,0 +1,19 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO rigtorp/MPMCQueue + REF 5883e32b07e8a60c22d532d9120ea5c11348aea9 + SHA512 4adbbe5e014e0ef5c7030aaa9faa4e07e2c65753cd89c770da250811c13776576c4f1caf4144542318c41ebc7433b106e802c482a5d44572963a5ab59047257e + HEAD_REF master +) + +file(COPY + ${SOURCE_PATH}/include/rigtorp/MPMCQueue.h + DESTINATION ${CURRENT_PACKAGES_DIR}/include/rigtorp +) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/nghttp2/CONTROL b/ports/nghttp2/CONTROL index 176a1c30a..2e8489e0a 100644 --- a/ports/nghttp2/CONTROL +++ b/ports/nghttp2/CONTROL @@ -1,4 +1,4 @@ Source: nghttp2 -Version: 1.35.0 +Version: 1.39.2 Homepage: https://github.com/nghttp2/nghttp2 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 deleted file mode 100644 index 18e58daeb..000000000 --- a/ports/nghttp2/enable-static.patch +++ /dev/null @@ -1,27 +0,0 @@ -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 index 52f754afb..05a639d06 100644 --- a/ports/nghttp2/portfile.cmake +++ b/ports/nghttp2/portfile.cmake @@ -1,7 +1,7 @@ include(vcpkg_common_functions) set(LIB_NAME nghttp2) -set(LIB_VERSION 1.35.0) +set(LIB_VERSION 1.39.2) set(LIB_FILENAME ${LIB_NAME}-${LIB_VERSION}.tar.gz) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION}) @@ -9,16 +9,10 @@ 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 65889545684e2c8b4aeeb7084ca36e3f78927fa2b6d1df906af3970d8ce6c7c6093b56a5e0713f7bb54a98f06ad52d6e2b323e760297610702afe526b0fdd577 + SHA512 1623a6bd9de1ca4d0742919b973eaefd570b250eb109697e5cf2240d2062789d1ca58632fdff32bb17f524b102fade0e30ab3f400dc2c128bfb91a75277f13e0 ) 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 @@ -35,13 +29,8 @@ 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) +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) endif() # License and man diff --git a/ports/nt-wrapper/CONTROL b/ports/nt-wrapper/CONTROL new file mode 100644 index 000000000..cd16e9541 --- /dev/null +++ b/ports/nt-wrapper/CONTROL @@ -0,0 +1,4 @@ +Source: nt-wrapper +Version: 2019-08-10 +Description: A header only wrapper library around native windows system APIs +Homepage: https://github.com/JustasMasiulis/nt_wrapper diff --git a/ports/nt-wrapper/portfile.cmake b/ports/nt-wrapper/portfile.cmake new file mode 100644 index 000000000..7ed8146ff --- /dev/null +++ b/ports/nt-wrapper/portfile.cmake @@ -0,0 +1,25 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO JustasMasiulis/nt_wrapper + REF 6a150292a43f6aea35918a5c5e93a66c334ea301 + SHA512 fb8a1c4c934d3cb48a76a935ba69fd51ec2e6b66f5c265a8da9456691f933c6080057fec9a714f252c39d02525603b993cecd905452598058254ac9318655c4f + 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) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/ogre/CONTROL b/ports/ogre/CONTROL index d7a4dd3f5..2d870641e 100644 --- a/ports/ogre/CONTROL +++ b/ports/ogre/CONTROL @@ -1,5 +1,5 @@ Source: ogre -Version: 1.12.0-1 +Version: 1.12.0-2 Build-Depends: freeimage, freetype, zlib, zziplib Homepage: https://github.com/OGRECave/ogre Description: 3D Object-Oriented Graphics Rendering Engine @@ -7,6 +7,9 @@ Description: 3D Object-Oriented Graphics Rendering Engine Feature: d3d9 Description: Build Direct3D9 RenderSystem +Feature: csharp +Description: Build csharp bindings + Feature: java Description: Build Java (JNI) bindings diff --git a/ports/ogre/portfile.cmake b/ports/ogre/portfile.cmake index 04b4fe608..9f21e1f53 100644 --- a/ports/ogre/portfile.cmake +++ b/ports/ogre/portfile.cmake @@ -1,5 +1,9 @@ include(vcpkg_common_functions) +if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message("${PORT} currently requires the following library from the system package manager:\n Xaw\n\nIt can be installed on Ubuntu systems via apt-get install libxaw7-dev") +endif() + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OGRECave/ogre @@ -38,6 +42,12 @@ else() set(WITH_PYTHON OFF) endif() +if("csharp" IN_LIST FEATURES) + set(WITH_CSHARP ON) +else() + set(WITH_CSHARP OFF) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -65,6 +75,7 @@ vcpkg_configure_cmake( # Optional stuff -DOGRE_BUILD_COMPONENT_JAVA=${WITH_JAVA} -DOGRE_BUILD_COMPONENT_PYTHON=${WITH_PYTHON} + -DOGRE_BUILD_COMPONENT_CSHARP=${WITH_CSHARP} -DOGRE_BUILD_RENDERSYSTEM_D3D9=${WITH_D3D9} # vcpkg specific stuff -DOGRE_CMAKE_DIR=share/ogre @@ -92,7 +103,9 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) endif() -if(NOT VCPKG_CMAKE_SYSTEM_NAME) +#Remove OgreMain*.lib from lib/ folder, because autolink would complain, since it defines a main symbol +#manual-link subfolder is here to the rescue! +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "Release") file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") diff --git a/ports/ogre/toolchain_fixes.patch b/ports/ogre/toolchain_fixes.patch index 1af384bdf..22b2e69c7 100644 --- a/ports/ogre/toolchain_fixes.patch +++ b/ports/ogre/toolchain_fixes.patch @@ -1,45 +1,88 @@ diff --git a/CMake/CMakeLists.txt b/CMake/CMakeLists.txt -index a7a3796..2e21403 100755 +index a7a3796..7e41f57 100755 --- a/CMake/CMakeLists.txt +++ b/CMake/CMakeLists.txt -@@ -13,10 +13,12 @@ +@@ -13,13 +13,15 @@ # 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() + if(WIN32 OR APPLE) + set(OGRE_CMAKE_DIR "CMake") + else() + set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/OGRE/cmake") endif() ++endif() + +-set(INST_FILES Utils/FindPkgMacros.cmake) ++set(INST_FILES Utils/FindPkgMacros.cmake) - set(INST_FILES Utils/FindPkgMacros.cmake) + if (OGRE_CONFIG_THREAD_PROVIDER STREQUAL "poco") + set(INST_FILES ${INST_FILES} Packages/FindPOCO.cmake) +diff --git a/CMake/ConfigureBuild.cmake b/CMake/ConfigureBuild.cmake +index 26c384f..131e238 100644 +--- a/CMake/ConfigureBuild.cmake ++++ b/CMake/ConfigureBuild.cmake +@@ -68,7 +68,7 @@ if (OGRE_CONFIG_THREADS) + + endif() + +-set(OGRE_ASSERT_MODE 1 CACHE STRING ++set(OGRE_ASSERT_MODE 1 CACHE STRING + "Enable Ogre asserts and exceptions. Possible values: + 0 - Standard asserts in debug builds, nothing in release builds. + 1 - Standard asserts in debug builds, exceptions in release builds. +@@ -197,7 +197,7 @@ if (UNIX) + configure_file(${OGRE_TEMPLATES_DIR}/OGRE-MeshLodGenerator.pc.in ${PROJECT_BINARY_DIR}/pkgconfig/OGRE-MeshLodGenerator.pc @ONLY) + install(FILES ${PROJECT_BINARY_DIR}/pkgconfig/OGRE-MeshLodGenerator.pc DESTINATION ${OGRE_LIB_DIRECTORY}/pkgconfig) + endif () +- ++ + if (OGRE_BUILD_COMPONENT_TERRAIN) + if (OGRE_BUILD_COMPONENT_PAGING) + set(OGRE_PAGING_ADDITIONAL_PACKAGES ", OGRE-Paging = ${OGRE_VERSION}") diff --git a/CMake/InstallResources.cmake b/CMake/InstallResources.cmake -index 783755e..79f7514 100644 +index 783755e..bd7fd3d 100644 --- a/CMake/InstallResources.cmake +++ b/CMake/InstallResources.cmake -@@ -208,10 +208,12 @@ endif () +@@ -131,7 +131,7 @@ configure_file(${OGRE_TEMPLATES_DIR}/tests.cfg.in ${PROJECT_BINARY_DIR}/inst/bin + + + # install resource files +-install(FILES ++install(FILES + ${PROJECT_BINARY_DIR}/inst/bin/resources.cfg + ${PROJECT_BINARY_DIR}/inst/bin/plugins.cfg + ${PROJECT_BINARY_DIR}/inst/bin/samples.cfg +@@ -208,17 +208,19 @@ 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() + 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 ${PROJECT_BINARY_DIR}/cmake/OGREConfig.cmake INSTALL_DESTINATION ${OGRE_CMAKE_DIR} + PATH_VARS CMAKE_INSTALL_PREFIX) + write_basic_package_version_file( +- ${PROJECT_BINARY_DIR}/cmake/OGREConfigVersion.cmake +- VERSION ${OGRE_VERSION} ++ ${PROJECT_BINARY_DIR}/cmake/OGREConfigVersion.cmake ++ VERSION ${OGRE_VERSION} + COMPATIBILITY SameMajorVersion) + install(FILES + ${PROJECT_BINARY_DIR}/cmake/OGREConfig.cmake +@@ -228,4 +230,4 @@ install(FILES + install(EXPORT OgreTargetsRelease CONFIGURATIONS Release None "" DESTINATION ${OGRE_CMAKE_DIR} FILE OgreTargets.cmake) + install(EXPORT OgreTargetsRelWithDebInfo CONFIGURATIONS RelWithDebInfo DESTINATION ${OGRE_CMAKE_DIR} FILE OgreTargets.cmake) + install(EXPORT OgreTargetsMinSizeRel CONFIGURATIONS MinSizeRel DESTINATION ${OGRE_CMAKE_DIR} FILE OgreTargets.cmake) +-install(EXPORT OgreTargetsDebug CONFIGURATIONS Debug DESTINATION ${OGRE_CMAKE_DIR} FILE OgreTargets.cmake) +\ No newline at end of file ++install(EXPORT OgreTargetsDebug CONFIGURATIONS Debug DESTINATION ${OGRE_CMAKE_DIR} FILE OgreTargets.cmake) diff --git a/CMake/Packages/FindCg.cmake b/CMake/Packages/FindCg.cmake index 4501cf9..e91bfd0 100644 --- a/CMake/Packages/FindCg.cmake @@ -131,29 +174,29 @@ index 7125895..f73c928 100644 add_parent_dir(HLSL2GLSL_INCLUDE_DIRS HLSL2GLSL_INCLUDE_DIR) - diff --git a/CMake/Packages/FindNVAPI.cmake b/CMake/Packages/FindNVAPI.cmake -index 95c70cd..17dabb8 100644 +index 2b9deba..6d8fb37 100644 --- a/CMake/Packages/FindNVAPI.cmake +++ b/CMake/Packages/FindNVAPI.cmake @@ -11,7 +11,7 @@ - # Once done, this will define - # - # NVAPI_FOUND - system has NVAPI --# NVAPI_INCLUDE_DIRS - the NVAPI include directories -+# NVAPI_INCLUDE_DIRS - the NVAPI include directories - # NVAPI_LIBRARIES - link these to use NVAPI - - include(FindPkgMacros) + # Once done, this will define
+ #
+ # NVAPI_FOUND - system has NVAPI
+-# NVAPI_INCLUDE_DIRS - the NVAPI include directories
++# NVAPI_INCLUDE_DIRS - the NVAPI include directories
+ # NVAPI_LIBRARIES - link these to use NVAPI
+
+ include(FindPkgMacros)
@@ -44,7 +44,7 @@ findpkg_framework(NVAPI) - find_path(NVAPI_INCLUDE_DIR NAMES nvapi.h HINTS ${NVAPI_FRAMEWORK_INCLUDES} ${NVAPI_INC_SEARCH_PATH} ${NVAPI_PKGC_INCLUDE_DIRS} PATH_SUFFIXES NVAPI) - find_library(NVAPI_LIBRARY_REL NAMES ${NVAPI_LIBRARY_NAMES} HINTS ${NVAPI_LIB_SEARCH_PATH} ${NVAPI_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel) - find_library(NVAPI_LIBRARY_DBG NAMES ${NVAPI_LIBRARY_NAMES_DBG} HINTS ${NVAPI_LIB_SEARCH_PATH} ${NVAPI_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug) --make_library_set(NVAPI_LIBRARY) -+make_library_set(NVAPI) - - findpkg_finish(NVAPI) + find_path(NVAPI_INCLUDE_DIR NAMES nvapi.h HINTS ${NVAPI_FRAMEWORK_INCLUDES} ${NVAPI_INC_SEARCH_PATH} ${NVAPI_PKGC_INCLUDE_DIRS} PATH_SUFFIXES NVAPI)
+ find_library(NVAPI_LIBRARY_REL NAMES ${NVAPI_LIBRARY_NAMES} HINTS ${NVAPI_LIB_SEARCH_PATH} ${NVAPI_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel)
+ find_library(NVAPI_LIBRARY_DBG NAMES ${NVAPI_LIBRARY_NAMES_DBG} HINTS ${NVAPI_LIB_SEARCH_PATH} ${NVAPI_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug)
+-make_library_set(NVAPI_LIBRARY)
++make_library_set(NVAPI)
+
+ findpkg_finish(NVAPI)
-add_parent_dir(NVAPI_INCLUDE_DIRS NVAPI_INCLUDE_DIR) \ No newline at end of file -+add_parent_dir(NVAPI_INCLUDE_DIRS NVAPI_INCLUDE_DIR) ++add_parent_dir(NVAPI_INCLUDE_DIRS NVAPI_INCLUDE_DIR)
diff --git a/CMake/Packages/FindPOCO.cmake b/CMake/Packages/FindPOCO.cmake index 6b6d7fa..c2cb80e 100644 --- a/CMake/Packages/FindPOCO.cmake @@ -313,6 +356,66 @@ index e97951e..1c7cf00 100644 findpkg_finish(ZZip) - +diff --git a/CMake/Templates/OGREConfig.cmake.in b/CMake/Templates/OGREConfig.cmake.in +index 79c5394..7b22a0d 100644 +--- a/CMake/Templates/OGREConfig.cmake.in ++++ b/CMake/Templates/OGREConfig.cmake.in +@@ -10,12 +10,12 @@ + # Find OGRE includes and library + # + # This module defines +-# OGRE_INCLUDE_DIRS - the OGRE include directories ++# OGRE_INCLUDE_DIRS - the OGRE include directories + # OGRE_LIBRARIES - link these to use the OGRE + # OGRE_LIBRARY_DIRS, the location of the libraries + # OGRE_STATIC - whther ogre was build as static lib + # OGRE_${COMPONENT}_FOUND - ${COMPONENT} is available +-# OGRE_${COMPONENT}_LIBRARIES - link these to only use ${COMPONENT} ++# OGRE_${COMPONENT}_LIBRARIES - link these to only use ${COMPONENT} + # OGRE_PLUGIN_DIR - The directory where the OGRE plugins are located + # OGRE_MEDIA_DIR - The directory where the OGRE sample media is located + # OGRE_CONFIG_DIR - The directory where the OGRE config files are located +@@ -25,7 +25,7 @@ + set(OGRE_STATIC @OGRE_STATIC@) + set(OGRE_MEDIA_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@/@OGRE_MEDIA_PATH@") + set(OGRE_PLUGIN_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@/lib/OGRE") +-set(OGRE_CONFIG_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@/@OGRE_CFG_INSTALL_PATH@") ++set(OGRE_CONFIG_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@/@OGRE_CFG_INSTALL_PATH@") + + set(OGRE_PREFIX_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@") + get_filename_component(OGRE_LIBRARY_DIRS "${OGRE_PREFIX_DIR}/lib" ABSOLUTE) +@@ -47,7 +47,7 @@ set(OGRE_PLUGINS) + macro(ogre_declare_component COMPONENT) + set(OGRE_${COMPONENT}_FOUND TRUE) + set(OGRE_${COMPONENT}_LIBRARIES Ogre${COMPONENT}) # backwards compatibility +- ++ + list(APPEND OGRE_COMPONENTS ${COMPONENT}) + list(APPEND OGRE_LIBRARIES Ogre${COMPONENT}) + endmacro() +@@ -55,11 +55,11 @@ endmacro() + macro(ogre_declare_plugin TYPE COMPONENT) + set(OGRE_${TYPE}_${COMPONENT}_FOUND TRUE) + set(OGRE_${TYPE}_${COMPONENT}_LIBRARIES ${TYPE}_${COMPONENT}) +- ++ + if(@OGRE_STATIC@) + list(APPEND OGRE_LIBRARIES ${TYPE}_${COMPONENT}) + endif() +- ++ + list(APPEND OGRE_PLUGINS ${TYPE}_${COMPONENT}) + endmacro() + +@@ -149,7 +149,7 @@ endif() + cmake_policy(POP) + + if(@OGRE_STATIC@) +- list(APPEND OGRE_LIBRARIES OgreGLSupport@OGRE_LIB_SUFFIX@ @CMAKE_DL_LIBS@) # glXXw uses dlopen ++ list(APPEND OGRE_LIBRARIES OgreGLSupport @CMAKE_DL_LIBS@) # glXXw uses dlopen + list(APPEND OGRE_LIBRARY_DIRS "${OGRE_LIBRARY_DIRS}/OGRE") # plugins folder + endif() + diff --git a/CMake/Utils/FindPkgMacros.cmake b/CMake/Utils/FindPkgMacros.cmake index 374f84b..dc7066d 100644 --- a/CMake/Utils/FindPkgMacros.cmake @@ -349,7 +452,7 @@ index 374f84b..dc7066d 100644 # Generate debug names from given release names diff --git a/CMakeLists.txt b/CMakeLists.txt -index d2819f0..8b54b38 100644 +index d2819f0..f40239f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -142,7 +142,7 @@ if (MSVC) @@ -361,7 +464,7 @@ index d2819f0..8b54b38 100644 # Turn on the ability to create folders to organize projects (.vcproj) # It creates "CMakePredefinedTargets" folder by default and adds CMake # defined projects like INSTALL.vcproj and ZERO_CHECK.vcproj -@@ -274,14 +274,9 @@ elseif(EMSCRIPTEN) +@@ -274,12 +274,8 @@ elseif(EMSCRIPTEN) elseif (APPLE AND NOT APPLE_IOS) set(XCODE_ATTRIBUTE_SDKROOT macosx) @@ -372,11 +475,9 @@ index d2819f0..8b54b38 100644 - set(CMAKE_OSX_SYSROOT macosx) - endif() -- # Make sure that the OpenGL render system is selected for non-iOS Apple builds + # Make sure that the OpenGL render system is selected for non-iOS Apple builds set(OGRE_BUILD_RENDERSYSTEM_GLES2 FALSE) - endif () - -@@ -310,7 +305,7 @@ include(Dependencies) +@@ -310,7 +306,7 @@ include(Dependencies) # Customise what to build option(OGRE_STATIC "Static build" FALSE) option(OGRE_ENABLE_PRECOMPILED_HEADERS "Use precompiled headers to speed up build" TRUE) @@ -385,7 +486,7 @@ index d2819f0..8b54b38 100644 "Make ResourceManager strict for faster operation. Possible values: 0 - OFF search in all groups twice - for case sensitive and insensitive lookup [DEPRECATED] 1 - PEDANTIC require an explicit resource group. Case sensitive lookup. -@@ -352,7 +347,7 @@ cmake_dependent_option(OGRE_BUILD_LIBS_AS_FRAMEWORKS "Build frameworks for libra +@@ -352,7 +348,7 @@ cmake_dependent_option(OGRE_BUILD_LIBS_AS_FRAMEWORKS "Build frameworks for libra option(OGRE_BUILD_TESTS "Build the unit tests & PlayPen" FALSE) option(OGRE_CONFIG_DOUBLE "Use doubles instead of floats in Ogre" FALSE) option(OGRE_CONFIG_NODE_INHERIT_TRANSFORM "Tells the node whether it should inherit full transform from it's parent node or derived position, orientation and scale" FALSE) @@ -437,7 +538,7 @@ index bdb303d..e8031d1 100644 \ No newline at end of file +) diff --git a/OgreMain/CMakeLists.txt b/OgreMain/CMakeLists.txt -index 6ec4e34..666a736 100644 +index 6ec4e34..2803a8a 100644 --- a/OgreMain/CMakeLists.txt +++ b/OgreMain/CMakeLists.txt @@ -188,21 +188,21 @@ if (WINDOWS_STORE OR WINDOWS_PHONE) @@ -475,12 +576,13 @@ index 6ec4e34..666a736 100644 list(APPEND LIBRARIES "atomic") else() list(APPEND LIBRARIES "-latomic") -@@ -226,8 +226,6 @@ if (APPLE) +@@ -226,8 +226,7 @@ if (APPLE) LINK_FLAGS "-framework IOKit -framework Cocoa -framework Carbon -framework OpenGL -framework CoreVideo" ) - set(OGRE_OSX_BUILD_CONFIGURATION "$(PLATFORM_NAME)/$(CONFIGURATION)") - ++ if(OGRE_BUILD_LIBS_AS_FRAMEWORKS) add_custom_command(TARGET OgreMain POST_BUILD COMMAND mkdir ARGS -p ${PROJECT_BINARY_DIR}/lib/${OGRE_OSX_BUILD_CONFIGURATION}/Ogre.framework/Headers/Threading diff --git a/ports/oniguruma/CONTROL b/ports/oniguruma/CONTROL index 768083b4e..087fb428b 100644 --- a/ports/oniguruma/CONTROL +++ b/ports/oniguruma/CONTROL @@ -1,5 +1,5 @@ Source: oniguruma
-Version: 6.9.2-2
+Version: 6.9.3
Description: Modern and flexible regular expressions library
Homepage: https://github.com/kkos/oniguruma
diff --git a/ports/oniguruma/portfile.cmake b/ports/oniguruma/portfile.cmake index 586bfbe07..7a4451f14 100644 --- a/ports/oniguruma/portfile.cmake +++ b/ports/oniguruma/portfile.cmake @@ -3,22 +3,21 @@ include(vcpkg_common_functions) vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO kkos/oniguruma
- REF v6.9.2
- SHA512 b5578560f469c2e123280159a23a0e59045bf2452fd3efe09393c5e99ecc6323f965d2189a4e7e6e3a108c1d02b9b041f3fe991cd8ab64f7289003a5a07b4434
+ REF v6.9.3
+ SHA512 a0f4da26ba08de516c05b5e4b803a9cf8013489c3743ecf27fbc3f66f835eef8fca81b9ed2bd68729a470fe897994046843a4fd31d44a9584ff8dabd1748df21
HEAD_REF master
)
-if("non-posix" IN_LIST FEATURES)
- set(ENABLE_POSIX_API OFF)
-else()
- set(ENABLE_POSIX_API ON)
-endif()
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ INVERTED_FEATURES
+ "non-posix" ENABLE_POSIX_API
+)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
- -DENABLE_POSIX_API=${ENABLE_POSIX_API}
+ ${FEATURE_OPTIONS}
)
vcpkg_install_cmake()
diff --git a/ports/opencv/CONTROL b/ports/opencv/CONTROL index 30e04b54c..7b5ba5af9 100644 --- a/ports/opencv/CONTROL +++ b/ports/opencv/CONTROL @@ -1,93 +1,102 @@ -Source: opencv -Version: 3.4.3-9 -Build-Depends: zlib -Homepage: https://github.com/opencv/opencv -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: tbb -Build-Depends: tbb -Description: Enable Intel Threading Building Blocks - -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: gdcm -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 - -Feature: halide -Build-Depends: halide, opencv[dnn] -Description: Halide support for opencv - -Feature: world -Description: Compile to a single package support for opencv - -Feature: nonfree -Description: allow nonfree and unredistributable libraries +Source: opencv
+Version: 4.1.1-1
+Homepage: https://github.com/opencv/opencv
+Description: Computer vision library
+Build-Depends: opencv4[core]
+Default-Features: dnn, jpeg, opengl, png, tiff, webp
+
+Feature: nonfree
+Build-Depends: opencv4[nonfree]
+Description: opencv nonfree module
+
+Feature: ade
+Build-Depends: opencv4[ade]
+Description: graph api
+
+Feature: contrib
+Build-Depends: opencv4[contrib]
+Description: opencv_contrib module
+
+Feature: cuda
+Build-Depends: opencv4[cuda]
+Description: CUDA support for opencv
+
+Feature: dnn
+Build-Depends: opencv4[dnn]
+Description: Enable dnn module
+
+Feature: eigen
+Build-Depends: opencv4[eigen]
+Description: Eigen support for opencv
+
+Feature: ffmpeg
+Build-Depends: opencv4[ffmpeg]
+Description: ffmpeg support for opencv
+
+Feature: gdcm
+Build-Depends: opencv4[gdcm]
+Description: GDCM support for opencv
+
+Feature: ipp
+Build-Depends: opencv4[ipp]
+Description: Enable Intel Integrated Performance Primitives
+
+Feature: jasper
+Build-Depends: opencv4[jasper]
+Description: JPEG 2000 support for opencv
+
+Feature: jpeg
+Build-Depends: opencv4[jpeg]
+Description: JPEG support for opencv
+
+Feature: openexr
+Build-Depends: opencv4[openexr]
+Description: OpenEXR support for opencv
+
+Feature: opengl
+Build-Depends: opencv4[opengl]
+Description: opengl support for opencv
+
+Feature: openmp
+Build-Depends: opencv4[openmp]
+Description: Enable openmp support for opencv
+
+Feature: ovis
+Build-Depends: opencv4[ovis]
+Description: opencv_ovis module
+
+Feature: png
+Build-Depends: opencv4[png]
+Description: PNG support for opencv
+
+Feature: qt
+Build-Depends: opencv4[qt]
+Description: Qt GUI support for opencv
+
+Feature: sfm
+Build-Depends: opencv4[sfm]
+Description: opencv_sfm module
+
+Feature: tbb
+Build-Depends: opencv4[tbb]
+Description: Enable Intel Threading Building Blocks
+
+Feature: tiff
+Build-Depends: opencv4[tiff]
+Description: TIFF support for opencv
+
+Feature: vtk
+Build-Depends: opencv4[vtk]
+Description: vtk support for opencv
+
+Feature: webp
+Build-Depends: opencv4[webp]
+Description: WebP support for opencv
+
+Feature: halide
+Build-Depends: opencv4[halide]
+Description: Halide support for opencv
+
+Feature: world
+Build-Depends: opencv4[world]
+Description: Compile to a single package support for opencv
diff --git a/ports/opencv/portfile.cmake b/ports/opencv/portfile.cmake index be86319c7..cc6e26fcb 100644 --- a/ports/opencv/portfile.cmake +++ b/ports/opencv/portfile.cmake @@ -1,422 +1 @@ -include(vcpkg_common_functions) - -set(OPENCV_PORT_VERSION "3.4.3") - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO opencv/opencv - REF ${OPENCV_PORT_VERSION} - SHA512 d653a58eb5e3939b9fdb7438ac35f77cf4385cf72d5d22bfd21722a109e1b3283dbb9407985061b7548114f0d05c9395aac9bb62b4d2bc1f68da770a49987fef - HEAD_REF master - PATCHES - 0001-winrt-fixes.patch - 0002-install-options.patch - 0003-disable-downloading.patch - 0004-use-find-package-required.patch - 0005-remove-custom-protobuf-find-package.patch - 0006-fix-missing-openjp2.patch -) - -string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) - -set(CMAKE_MODULE_PATH) - -set(BUILD_opencv_world OFF) -if("world" IN_LIST FEATURES) - set(BUILD_opencv_world ON) -endif() - -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/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/opencv_ffmpeg.dll" - FILENAME "opencv-cache/ffmpeg/fa5a2a4e2f37defcb95bde8ed145c2b3-opencv_ffmpeg.dll" - SHA512 875f922e1d9fc2fe7c8e879ede35b1001b6ad8b3c4d71feb3823421ce861f580df3418c791315b23870fcb0378d297b01e0761d3f65277ff11ec2fef8c0b08b7 - ) - vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/opencv_ffmpeg_64.dll" - FILENAME "opencv-cache/ffmpeg/2cc08fc4fef8199fe80e0f126684834f-opencv_ffmpeg_64.dll" - SHA512 4e74aa4cb115f103b929f93bbc8dcf675de7d0c7916f8f0a80ac46761134b088634be95f959ce5827753ae9ecb2365ca40440dfbb9a9bf89f22ee11b6c8342b3 - ) - vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/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(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/bdb7bb85f34a8cb0d35e40a81f58da431aa1557a/ippicv/ippicv_2017u3_win_intel64_general_20180518.zip" - FILENAME "opencv-cache/ippicv/915ff92958089ede8ea532d3c4fe7187-ippicv_2017u3_win_intel64_general_20180518.zip" - SHA512 8aa08292d542d521c042864446e47a7a6bdbf3896d86fc7b43255459c24a2e9f34a4e9b177023d178fed7a2e82a9db410f89d81375a542d049785d263f46c64d - ) - else() - vcpkg_download_distfile(OCV_DOWNLOAD - URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/bdb7bb85f34a8cb0d35e40a81f58da431aa1557a/ippicv/ippicv_2017u3_win_ia32_general_20180518.zip" - FILENAME "opencv-cache/ippicv/928168c2d99ab284047dfcfb7a821d91-ippicv_2017u3_win_ia32_general_20180518.zip" - SHA512 b89b0fb739152303cafc9fb064fa8b24fd94850697137ccbb5c1e344e0f5094115603a5e3be3a25f85d0faefc5c53429a7d65da0142d012ada41e8db2bcdd6b7 - ) - endif() -endif() - -set(WITH_TBB OFF) -if("tbb" IN_LIST FEATURES) - set(WITH_TBB ON) -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() - -set(WITH_HALIDE OFF) -if("halide" IN_LIST FEATURES) - set(WITH_HALIDE ON) -endif() - -set(OPENCV_ENABLE_NONFREE OFF) -if("nonfree" IN_LIST FEATURES) - set(OPENCV_ENABLE_NONFREE ON) -endif() - -if(BUILD_opencv_contrib) - vcpkg_from_github( - OUT_SOURCE_PATH CONTRIB_SOURCE_PATH - REPO opencv/opencv_contrib - REF ${OPENCV_PORT_VERSION} - SHA512 456c6f878fb3bd5459f6430405cf05c609431f8d7db743aa699fc75c305d019682ee3a804bf0cf5107597dd1dbbb69b08be3535a0e6c717e4773ed7c05d08e59 - 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 - # 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 - -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} - -DBUILD_opencv_world=${BUILD_opencv_world} - # PROTOBUF - -DPROTOBUF_UPDATE_FILES=${PROTOBUF_UPDATE_FILES} - -DUPDATE_PROTO_FILES=${UPDATE_PROTO_FILES} - # CMAKE - -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON - -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON - "-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}" - # ENABLE - -DENABLE_CXX11=ON - -DENABLE_PYLINT=OFF - -DOPENCV_ENABLE_NONFREE=${OPENCV_ENABLE_NONFREE} - # 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 - # WITH - -DWITH_CUBLAS=${WITH_CUDA} - -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 - -DWITH_MATLAB=OFF - -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_TBB=${WITH_TBB} - -DWITH_TIFF=${WITH_TIFF} - -DWITH_VTK=${WITH_VTK} - -DWITH_WEBP=${WITH_WEBP} - -DWITH_ZLIB=${WITH_ZLIB} - -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} - OPTIONS_DEBUG - -DINSTALL_HEADERS=OFF - -DINSTALL_OTHER=OFF -) - -vcpkg_install_cmake() - -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(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake OPENCV_MODULES) -string(REPLACE "${CURRENT_INSTALLED_DIR}" - "\${_VCPKG_INSTALLED_DIR}/\${VCPKG_TARGET_TRIPLET}" OPENCV_MODULES "${OPENCV_MODULES}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake "${OPENCV_MODULES}") - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake OPENCV_MODULES) - string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)" - "set(CMAKE_IMPORT_FILE_VERSION 1) - find_package(TIFF REQUIRED)" OPENCV_MODULES "${OPENCV_MODULES}") - file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake "${OPENCV_MODULES}") -endif() - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - -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) +SET(VCPKG_POLICY_EMPTY_PACKAGE enabled)
diff --git a/ports/opencv/0001-winrt-fixes.patch b/ports/opencv3/0001-winrt-fixes.patch index b2fe1a021..b2fe1a021 100644 --- a/ports/opencv/0001-winrt-fixes.patch +++ b/ports/opencv3/0001-winrt-fixes.patch diff --git a/ports/opencv/0002-install-options.patch b/ports/opencv3/0002-install-options.patch index 0719a7cb9..0719a7cb9 100644 --- a/ports/opencv/0002-install-options.patch +++ b/ports/opencv3/0002-install-options.patch diff --git a/ports/opencv/0003-disable-downloading.patch b/ports/opencv3/0003-disable-downloading.patch index 28b00251f..28b00251f 100644 --- a/ports/opencv/0003-disable-downloading.patch +++ b/ports/opencv3/0003-disable-downloading.patch diff --git a/ports/opencv/0004-use-find-package-required.patch b/ports/opencv3/0004-use-find-package-required.patch index 4e1daf659..4e1daf659 100644 --- a/ports/opencv/0004-use-find-package-required.patch +++ b/ports/opencv3/0004-use-find-package-required.patch diff --git a/ports/opencv/0005-remove-custom-protobuf-find-package.patch b/ports/opencv3/0005-remove-custom-protobuf-find-package.patch index 91ac137f9..91ac137f9 100644 --- a/ports/opencv/0005-remove-custom-protobuf-find-package.patch +++ b/ports/opencv3/0005-remove-custom-protobuf-find-package.patch diff --git a/ports/opencv/0006-fix-missing-openjp2.patch b/ports/opencv3/0006-fix-missing-openjp2.patch index c0afb9952..c0afb9952 100644 --- a/ports/opencv/0006-fix-missing-openjp2.patch +++ b/ports/opencv3/0006-fix-missing-openjp2.patch diff --git a/ports/opencv3/CONTROL b/ports/opencv3/CONTROL new file mode 100644 index 000000000..f70d1d387 --- /dev/null +++ b/ports/opencv3/CONTROL @@ -0,0 +1,93 @@ +Source: opencv3 +Version: 3.4.3-10 +Build-Depends: zlib +Homepage: https://github.com/opencv/opencv +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: opencv3[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: tbb +Build-Depends: tbb +Description: Enable Intel Threading Building Blocks + +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: gdcm +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 + +Feature: halide +Build-Depends: halide, opencv3[core], opencv3[dnn] +Description: Halide support for opencv + +Feature: world +Description: Compile to a single package support for opencv + +Feature: nonfree +Description: allow nonfree and unredistributable libraries diff --git a/ports/opencv3/portfile.cmake b/ports/opencv3/portfile.cmake new file mode 100644 index 000000000..e4745d336 --- /dev/null +++ b/ports/opencv3/portfile.cmake @@ -0,0 +1,424 @@ +if (EXISTS "${CURRENT_INSTALLED_DIR}/share/opencv4") + message(FATAL_ERROR "OpenCV 4 is installed, please uninstall and try again:\n vcpkg remove opencv4") +endif() + +include(vcpkg_common_functions) + +set(OPENCV_PORT_VERSION "3.4.3") + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO opencv/opencv + REF ${OPENCV_PORT_VERSION} + SHA512 d653a58eb5e3939b9fdb7438ac35f77cf4385cf72d5d22bfd21722a109e1b3283dbb9407985061b7548114f0d05c9395aac9bb62b4d2bc1f68da770a49987fef + HEAD_REF master + PATCHES + 0001-winrt-fixes.patch + 0002-install-options.patch + 0003-disable-downloading.patch + 0004-use-find-package-required.patch + 0005-remove-custom-protobuf-find-package.patch + 0006-fix-missing-openjp2.patch +) + +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) + +set(CMAKE_MODULE_PATH) + +set(BUILD_opencv_world OFF) +if("world" IN_LIST FEATURES) + set(BUILD_opencv_world ON) +endif() + +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/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/opencv_ffmpeg.dll" + FILENAME "opencv-cache/ffmpeg/fa5a2a4e2f37defcb95bde8ed145c2b3-opencv_ffmpeg.dll" + SHA512 875f922e1d9fc2fe7c8e879ede35b1001b6ad8b3c4d71feb3823421ce861f580df3418c791315b23870fcb0378d297b01e0761d3f65277ff11ec2fef8c0b08b7 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/opencv_ffmpeg_64.dll" + FILENAME "opencv-cache/ffmpeg/2cc08fc4fef8199fe80e0f126684834f-opencv_ffmpeg_64.dll" + SHA512 4e74aa4cb115f103b929f93bbc8dcf675de7d0c7916f8f0a80ac46761134b088634be95f959ce5827753ae9ecb2365ca40440dfbb9a9bf89f22ee11b6c8342b3 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/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(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/bdb7bb85f34a8cb0d35e40a81f58da431aa1557a/ippicv/ippicv_2017u3_win_intel64_general_20180518.zip" + FILENAME "opencv-cache/ippicv/915ff92958089ede8ea532d3c4fe7187-ippicv_2017u3_win_intel64_general_20180518.zip" + SHA512 8aa08292d542d521c042864446e47a7a6bdbf3896d86fc7b43255459c24a2e9f34a4e9b177023d178fed7a2e82a9db410f89d81375a542d049785d263f46c64d + ) + else() + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/bdb7bb85f34a8cb0d35e40a81f58da431aa1557a/ippicv/ippicv_2017u3_win_ia32_general_20180518.zip" + FILENAME "opencv-cache/ippicv/928168c2d99ab284047dfcfb7a821d91-ippicv_2017u3_win_ia32_general_20180518.zip" + SHA512 b89b0fb739152303cafc9fb064fa8b24fd94850697137ccbb5c1e344e0f5094115603a5e3be3a25f85d0faefc5c53429a7d65da0142d012ada41e8db2bcdd6b7 + ) + endif() +endif() + +set(WITH_TBB OFF) +if("tbb" IN_LIST FEATURES) + set(WITH_TBB ON) +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() + +set(WITH_HALIDE OFF) +if("halide" IN_LIST FEATURES) + set(WITH_HALIDE ON) +endif() + +set(OPENCV_ENABLE_NONFREE OFF) +if("nonfree" IN_LIST FEATURES) + set(OPENCV_ENABLE_NONFREE ON) +endif() + +if(BUILD_opencv_contrib) + vcpkg_from_github( + OUT_SOURCE_PATH CONTRIB_SOURCE_PATH + REPO opencv/opencv_contrib + REF ${OPENCV_PORT_VERSION} + SHA512 456c6f878fb3bd5459f6430405cf05c609431f8d7db743aa699fc75c305d019682ee3a804bf0cf5107597dd1dbbb69b08be3535a0e6c717e4773ed7c05d08e59 + 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 + # 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 + -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} + -DBUILD_opencv_world=${BUILD_opencv_world} + # PROTOBUF + -DPROTOBUF_UPDATE_FILES=${PROTOBUF_UPDATE_FILES} + -DUPDATE_PROTO_FILES=${UPDATE_PROTO_FILES} + # CMAKE + -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON + -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON + "-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}" + # ENABLE + -DENABLE_CXX11=ON + -DENABLE_PYLINT=OFF + -DOPENCV_ENABLE_NONFREE=${OPENCV_ENABLE_NONFREE} + # 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 + # WITH + -DWITH_CUBLAS=${WITH_CUDA} + -DWITH_CUDA=${WITH_CUDA} + -DWITH_EIGEN=${WITH_EIGEN} + -DWITH_FFMPEG=${WITH_FFMPEG} + -DWITH_GDCM=${WITH_GDCM} + -DWITH_HALIDE=${WITH_HALIDE} + -DHALIDE_ROOT_DIR=${CURRENT_INSTALLED_DIR} + -DWITH_IPP=${WITH_IPP} + -DWITH_JASPER=${WITH_JASPER} + -DWITH_JPEG=${WITH_JPEG} + -DWITH_LAPACK=OFF + -DWITH_MATLAB=OFF + -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_TBB=${WITH_TBB} + -DWITH_TIFF=${WITH_TIFF} + -DWITH_VTK=${WITH_VTK} + -DWITH_WEBP=${WITH_WEBP} + -DWITH_ZLIB=${WITH_ZLIB} + -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} + OPTIONS_DEBUG + -DINSTALL_HEADERS=OFF + -DINSTALL_OTHER=OFF +) + +vcpkg_install_cmake() + +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(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake OPENCV_MODULES) +string(REPLACE "${CURRENT_INSTALLED_DIR}" + "\${_VCPKG_INSTALLED_DIR}/\${VCPKG_TARGET_TRIPLET}" OPENCV_MODULES "${OPENCV_MODULES}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake "${OPENCV_MODULES}") + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake OPENCV_MODULES) + string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)" + "set(CMAKE_IMPORT_FILE_VERSION 1) + find_package(TIFF REQUIRED)" OPENCV_MODULES "${OPENCV_MODULES}") + file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake "${OPENCV_MODULES}") +endif() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv) + +vcpkg_copy_pdbs() + +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv3) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/opencv3/LICENSE ${CURRENT_PACKAGES_DIR}/share/opencv3/copyright) + +set(VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT enabled) diff --git a/ports/opencv/usage b/ports/opencv3/usage index 1c30e5fea..1c30e5fea 100644 --- a/ports/opencv/usage +++ b/ports/opencv3/usage diff --git a/ports/opencv4/0001-disable-downloading.patch b/ports/opencv4/0001-disable-downloading.patch new file mode 100644 index 000000000..28b00251f --- /dev/null +++ b/ports/opencv4/0001-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/opencv4/0002-install-options.patch b/ports/opencv4/0002-install-options.patch new file mode 100644 index 000000000..10aa08c24 --- /dev/null +++ b/ports/opencv4/0002-install-options.patch @@ -0,0 +1,69 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8631bbc..e801558 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -647,7 +647,7 @@ endif() + + if(WIN32) + # Postfix of DLLs: +- set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}") ++ set(OPENCV_DLLVERSION "") + set(OPENCV_DEBUG_POSTFIX d) + else() + # Postfix of so's: +@@ -698,7 +698,7 @@ endif() + ocv_cmake_hook(POST_CMAKE_BUILD_OPTIONS) + + # --- Python Support --- +-if(NOT IOS) ++if(0) + include(cmake/OpenCVDetectPython.cmake) + endif() + +diff --git a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake +index e3ae62f..d866162 100644 +--- a/cmake/OpenCVCompilerOptions.cmake ++++ b/cmake/OpenCVCompilerOptions.cmake +@@ -256,7 +256,6 @@ if(MSVC) + #endif() + + if(BUILD_WITH_DEBUG_INFO) +- set(OPENCV_EXTRA_FLAGS_RELEASE "${OPENCV_EXTRA_FLAGS_RELEASE} /Zi") + set(OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE "${OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE} /debug") + set(OPENCV_EXTRA_SHARED_LINKER_FLAGS_RELEASE "${OPENCV_EXTRA_SHARED_LINKER_FLAGS_RELEASE} /debug") + endif() +diff --git a/cmake/OpenCVGenConfig.cmake b/cmake/OpenCVGenConfig.cmake +index cef9d0b..b6ddb81 100644 +--- a/cmake/OpenCVGenConfig.cmake ++++ b/cmake/OpenCVGenConfig.cmake +@@ -109,7 +109,7 @@ function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME) + endif() + endfunction() + +-if((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" OR UNIX) AND NOT ANDROID) ++if(NOT ANDROID) + ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "" "") + endif() + +@@ -121,7 +121,7 @@ endif() + # -------------------------------------------------------------------------------------------- + # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages + # -------------------------------------------------------------------------------------------- +-if(WIN32) ++if(0) + if(CMAKE_HOST_SYSTEM_NAME MATCHES Windows) + if(BUILD_SHARED_LIBS) + set(_lib_suffix "lib") +diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt +index 1f0d720..0bb1ff7 100644 +--- a/data/CMakeLists.txt ++++ b/data/CMakeLists.txt +@@ -1,8 +1,6 @@ + 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_TESTS AND OPENCV_TEST_DATA_PATH) + install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests") diff --git a/ports/opencv4/0003-force-package-requirements.patch b/ports/opencv4/0003-force-package-requirements.patch new file mode 100644 index 000000000..b6051f849 --- /dev/null +++ b/ports/opencv4/0003-force-package-requirements.patch @@ -0,0 +1,128 @@ +diff --git a/cmake/OpenCVFindLibsGrfmt.cmake b/cmake/OpenCVFindLibsGrfmt.cmake +index 227cfb2..7a97a19 100644 +--- 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) +@@ -74,7 +74,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() +@@ -117,7 +117,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() +@@ -158,7 +158,7 @@ if(WITH_JASPER) + if(BUILD_JASPER) + ocv_clear_vars(JASPER_FOUND) + else() +- include(FindJasper) ++ find_package(Jasper REQUIRED) + endif() + + if(NOT JASPER_FOUND) +@@ -182,7 +182,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) +@@ -213,7 +213,7 @@ endif() + if(WITH_OPENEXR) + ocv_clear_vars(HAVE_OPENEXR) + if(NOT BUILD_OPENEXR) +- include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake") ++ find_package(OpenEXR REQUIRED) + endif() + + if(OPENEXR_FOUND) +@@ -231,7 +231,7 @@ endif() + + # --- GDAL (optional) --- + if(WITH_GDAL) +- find_package(GDAL QUIET) ++ find_package(GDAL REQUIRED) + + if(NOT GDAL_FOUND) + set(HAVE_GDAL NO) +@@ -243,7 +243,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) +@@ -273,4 +273,4 @@ if(WITH_IMGCODEC_PFM) + set(HAVE_IMGCODEC_PFM ON) + elseif(DEFINED WITH_IMGCODEC_PFM) + set(HAVE_IMGCODEC_PFM OFF) +-endif() +\ No newline at end of file ++endif() +diff --git a/cmake/OpenCVFindLibsPerf.cmake b/cmake/OpenCVFindLibsPerf.cmake +index a658bf6..5c9411a 100644 +--- a/cmake/OpenCVFindLibsPerf.cmake ++++ b/cmake/OpenCVFindLibsPerf.cmake +@@ -41,14 +41,9 @@ endif(WITH_CUDA) + + # --- Eigen --- + if(WITH_EIGEN AND NOT HAVE_EIGEN) +- find_package(Eigen3 QUIET) ++ find_package(Eigen3 REQUIRED) + + if(Eigen3_FOUND) +- if(TARGET Eigen3::Eigen) +- # Use Eigen3 imported target if possible +- list(APPEND OPENCV_LINKER_LIBS Eigen3::Eigen) +- set(HAVE_EIGEN 1) +- else() + if(DEFINED EIGEN3_INCLUDE_DIRS) + set(EIGEN_INCLUDE_PATH ${EIGEN3_INCLUDE_DIRS}) + set(HAVE_EIGEN 1) +@@ -56,7 +51,6 @@ if(WITH_EIGEN AND NOT HAVE_EIGEN) + set(EIGEN_INCLUDE_PATH ${EIGEN3_INCLUDE_DIR}) + set(HAVE_EIGEN 1) + endif() +- endif() + if(HAVE_EIGEN) + if(DEFINED EIGEN3_WORLD_VERSION) # CMake module + set(EIGEN_WORLD_VERSION ${EIGEN3_WORLD_VERSION}) +@@ -67,6 +61,7 @@ if(WITH_EIGEN AND NOT HAVE_EIGEN) + set(EIGEN_MAJOR_VERSION ${EIGEN3_VERSION_MINOR}) + set(EIGEN_MINOR_VERSION ${EIGEN3_VERSION_PATCH}) + endif() ++ ocv_include_directories(${EIGEN_INCLUDE_PATH}) + endif() + endif() + diff --git a/ports/opencv4/0009-fix-uwp.patch b/ports/opencv4/0009-fix-uwp.patch new file mode 100644 index 000000000..5c54256a5 --- /dev/null +++ b/ports/opencv4/0009-fix-uwp.patch @@ -0,0 +1,57 @@ +diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake +index 799592b..3f44173 100644 +--- a/cmake/OpenCVModule.cmake ++++ b/cmake/OpenCVModule.cmake +@@ -852,7 +852,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 +@@ -1175,7 +1175,7 @@ function(ocv_add_perf_tests) + set_target_properties(${the_target} PROPERTIES FOLDER "tests performance") + endif() + +- if(WINRT) ++ if(WINRT AND BUILD_TESTS) + # removing APPCONTAINER from tests to run from console + # look for detailed description inside of ocv_create_module macro above + add_custom_command(TARGET "opencv_perf_${name}" +diff --git a/modules/core/src/utils/datafile.cpp b/modules/core/src/utils/datafile.cpp +index aafbfdf..10543ae 100644 +--- a/modules/core/src/utils/datafile.cpp ++++ b/modules/core/src/utils/datafile.cpp +@@ -108,7 +108,7 @@ static cv::String getModuleLocation(const void* addr) + CV_UNUSED(addr); + #ifdef _WIN32 + HMODULE m = 0; +-#if _WIN32_WINNT >= 0x0501 ++#if _WIN32_WINNT >= 0x0501 && (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)) + ::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, + reinterpret_cast<LPCTSTR>(addr), + &m); +@@ -155,7 +155,7 @@ bool getBinLocation(std::wstring& dst) + { + void* addr = (void*)getModuleLocation; // using code address, doesn't work with static linkage! + HMODULE m = 0; +-#if _WIN32_WINNT >= 0x0501 ++#if _WIN32_WINNT >= 0x0501 && (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)) + ::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, + reinterpret_cast<LPCTSTR>(addr), + &m); +diff --git a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp +index 236e227..eccf97e 100644 +--- a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp ++++ b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp +@@ -94,7 +94,7 @@ 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_PC_APP) + if (_state == State::Started) + { + CameraOptionsUI::Show(_capture.Get()); diff --git a/ports/opencv4/CONTROL b/ports/opencv4/CONTROL new file mode 100644 index 000000000..e16540656 --- /dev/null +++ b/ports/opencv4/CONTROL @@ -0,0 +1,96 @@ +Source: opencv4 +Version: 4.1.1-1 +Build-Depends: protobuf, zlib +Description: computer vision library +Default-Features: dnn, jpeg, opengl, png, tiff, webp + +Feature: nonfree +Description: opencv nonfree module + +Feature: ade +Build-Depends: ade +Description: graph api + +Feature: contrib +Build-Depends: hdf5 (!uwp) +Description: opencv_contrib module + +Feature: cuda +Build-Depends: opencv4[contrib], cuda +Description: CUDA support for opencv + +Feature: dnn +Description: Enable dnn module + +Feature: eigen +Build-Depends: eigen3 +Description: Eigen support for opencv + +Feature: ffmpeg +Build-Depends: ffmpeg +Description: ffmpeg support for opencv + +Feature: gdcm +Build-Depends: gdcm +Description: GDCM support for opencv + +Feature: ipp +Description: Enable Intel Integrated Performance Primitives + +Feature: jasper +Build-Depends: jasper +Description: JPEG 2000 support for opencv + +Feature: jpeg +Build-Depends: libjpeg-turbo +Description: JPEG support for opencv + +Feature: openexr +Build-Depends: openexr +Description: OpenEXR support for opencv + +Feature: opengl +Build-Depends: opengl +Description: opengl support for opencv + +Feature: openmp +Description: Enable openmp support for opencv + +Feature: ovis +Build-Depends: opencv4[contrib], ogre +Description: opencv_ovis module + +Feature: png +Build-Depends: libpng +Description: PNG support for opencv + +Feature: qt +Build-Depends: qt5 +Description: Qt GUI support for opencv + +Feature: sfm +Build-Depends: opencv4[contrib], eigen3, glog, gflags, ceres +Description: opencv_sfm module + +Feature: tbb +Build-Depends: tbb +Description: Enable Intel Threading Building Blocks + +Feature: tiff +Build-Depends: tiff +Description: TIFF support for opencv + +Feature: vtk +Build-Depends: vtk +Description: vtk support for opencv + +Feature: webp +Build-Depends: libwebp +Description: WebP support for opencv + +Feature: halide +Build-Depends: halide, opencv4[core], opencv4[dnn] +Description: Halide support for opencv + +Feature: world +Description: Compile to a single package support for opencv diff --git a/ports/opencv4/portfile.cmake b/ports/opencv4/portfile.cmake new file mode 100644 index 000000000..ed0b9f1e2 --- /dev/null +++ b/ports/opencv4/portfile.cmake @@ -0,0 +1,380 @@ +if (EXISTS "${CURRENT_INSTALLED_DIR}/share/opencv3") + message(FATAL_ERROR "OpenCV 3 is installed, please uninstall and try again:\n vcpkg remove opencv3") +endif() + +include(vcpkg_common_functions) + +set(OPENCV_VERSION "4.1.1") + +if(VCPKG_TARGET_IS_LINUX) + message("OpenCV currently requires the following library from the system package manager:\n libgtk3\n\nThis can be installed on Ubuntu systems via apt-get install libgtk-3-dev") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO opencv/opencv + REF ${OPENCV_VERSION} + SHA512 80fa48d992ca06a2a4ab6740df6d8c21f4926165486b393969da2c5bbe2f3a0b799fb76dee5e3654e90c743e49bbd2b5b02ad59a4766896bbf4cd5b4e3251e0f + HEAD_REF master + PATCHES + 0001-disable-downloading.patch + 0002-install-options.patch + 0003-force-package-requirements.patch + 0009-fix-uwp.patch +) + +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) + +set(ADE_DIR ${CURRENT_INSTALLED_DIR}/share/ade CACHE PATH "Path to existing ADE CMake Config file") + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + "ade" WITH_ADE + "contrib" WITH_CONTRIB + "cuda" WITH_CUDA + "cuda" WITH_CUBLAS + "dnn" BUILD_opencv_dnn + "eigen" WITH_EIGEN + "ffmpeg" WITH_FFMPEG + "gdcm" WITH_GDCM + "halide" WITH_HALIDE + "jasper" WITH_JASPER + "jpeg" WITH_JPEG + "nonfree" OPENCV_ENABLE_NONFREE + "openexr" WITH_OPENEXR + "opengl" WITH_OPENGL + "openmp" WITH_OPENMP + "png" WITH_PNG + "qt" WITH_QT + "sfm" BUILD_opencv_sfm + "tiff" WITH_TIFF + "webp" WITH_WEBP + "world" BUILD_opencv_world +) + +# Cannot use vcpkg_check_features() for "ipp", "ovis", "tbb", and "vtk". +# As the respective value of their variables can be unset conditionally. +set(WITH_IPP OFF) +if("ipp" IN_LIST FEATURES) + set(WITH_IPP ON) +endif() + +set(BUILD_opencv_ovis OFF) +if("ovis" IN_LIST FEATURES) + set(BUILD_opencv_ovis ON) +endif() + +set(WITH_TBB OFF) +if("tbb" IN_LIST FEATURES) + set(WITH_TBB ON) +endif() + +set(WITH_VTK OFF) +if("vtk" IN_LIST FEATURES) + set(WITH_VTK ON) +endif() + +if("cuda" IN_LIST FEATURES) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://github.com/NVIDIA/NVIDIAOpticalFlowSDK/archive/79c6cee80a2df9a196f20afd6b598a9810964c32.zip" + FILENAME "opencv-cache/nvidia_optical_flow/ca5acedee6cb45d0ec610a6732de5c15-79c6cee80a2df9a196f20afd6b598a9810964c32.zip" + SHA512 d80cdedec588dafaad4ebb8615349f842ecdc64d3ca9480fee7086d606e6f2362606a9a2ce273c5cf507be2840ec24bbcbe32c2962672c3bcfb72d31428ef73d + ) +endif() + +# Build image quality module when building with 'contrib' feature and not UWP. +set(BUILD_opencv_quality OFF) +if("contrib" IN_LIST FEATURES) + if (VCPKG_TARGET_IS_UWP) + set(BUILD_opencv_quality OFF) + message(WARNING "The image quality module (quality) does not build for UWP, the module has been disabled.") + # The hdf module is silently disabled by OpenCVs buildsystem if HDF5 is not detected. + message(WARNING "The hierarchical data format module (hdf) depends on HDF5 which doesn't support UWP, the module has been disabled.") + else() + set(BUILD_opencv_quality CMAKE_DEPENDS_IN_PROJECT_ONLY) + endif() + + vcpkg_from_github( + OUT_SOURCE_PATH CONTRIB_SOURCE_PATH + REPO opencv/opencv_contrib + REF ${OPENCV_VERSION} + SHA512 8af13f0a5f350360316662c1ce5e58c21d906a58591acfbd575a8dacde19b6f3bbd694c3c199feb35c33549cf8c37e3fb4c494b586a00ad29fe3b4aeeb2d22ab + HEAD_REF master + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i" + SHA512 5c8702a60314fac4ebb6dafb62a603948ec034058d1a582fcb89a063b51511802c02e192eadfc0b233b1f711f4c74cabab6d9ebe8a50c3554ea0ccdbef87dc5c + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_bi.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/232c966b13651bd0e46a1497b0852191-boostdesc_bgm_bi.i" + SHA512 b28ba2b615e0755ff0f6733b567682800fb9e7d522250aa498075cc1b8927f4177cacdcb0cfdf712539a29c4773232dc714931b6d292292b091b5cf170b203a6 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_hd.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/324426a24fa56ad9c5b8e3e0b3e5303e-boostdesc_bgm_hd.i" + SHA512 c214045c3730a1d9dfc594f70895edf82d2fd3058a3928908627014371e02460d052cbaedf41bb96cf76460c0a8b4b01b7b0ac7d269ec5d3f17f2a46c9f0091b + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_064.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/202e1b3e9fec871b04da31f7f016679f-boostdesc_binboost_064.i" + SHA512 f32240a7b975233d2bbad02fdb74c6e29ed71ed6f0c08172ca33eb1e69a7a7f6d6964adf41422213a0452121a9c4bb2effe3d7b9d6743c9bf58d4bc8c9b1db36 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_128.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/98ea99d399965c03d555cef3ea502a0b-boostdesc_binboost_128.i" + SHA512 f58e2bebfaa690d324691a6c2067d9a1e5267037ea0f2b397966289253b9efd27d8238aff6206e95262086e1fcddf01ae1a1c49f066a8bbac3aa7908214b9a8f + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_256.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/e6dcfa9f647779eb1ce446a8d759b6ea-boostdesc_binboost_256.i" + SHA512 351ee07b9714a379c311f293d96e99f001c894393c911a421b4c536345d43c02ba2d867e9f657eac104841563045ab8c8edab878e5ffeb1e1a7494375ef58987 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_lbgm.i" + FILENAME "opencv-cache/xfeatures2d/boostdesc/0ae0675534aa318d9668f2a179c2a052-boostdesc_lbgm.i" + SHA512 7fa12e2207ff154acf2433bbb4f3f47aa71d1fa8789493b688d635d20586b7ead30ee8dcd3b3753992ebbe98062cbde44d02683db1c563d52e35aefd7912a4f2 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_48.i" + FILENAME "opencv-cache/xfeatures2d/vgg/e8d0dcd54d1bcfdc29203d011a797179-vgg_generated_48.i" + SHA512 2403e9119738261a05a3116ca7e5c9e11da452c422f8670cd96ad2cb5bf970f76172e23b9913a3172adf06f2b31bee956f605b66dbccf3d706c4334aff713774 + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_64.i" + FILENAME "opencv-cache/xfeatures2d/vgg/7126a5d9a8884ebca5aea5d63d677225-vgg_generated_64.i" + SHA512 2c954223677905f489b01988389ac80a8caa33bdb57adb3cb9409075012b5e2f472f14966d8be75d75c90c9330f66d59c69539dc6b5a5e265a4d98ff5041f0ea + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_80.i" + FILENAME "opencv-cache/xfeatures2d/vgg/7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i" + SHA512 9931ad1d1bd6d11951ca5357ab0a524f6ff9b33f936ceeafebc0dafb379ec7e2105e467443e9f424f60a0f2f445bdff821ed9e42330abed883227183ebad4a9e + ) + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_120.i" + FILENAME "opencv-cache/xfeatures2d/vgg/151805e03568c9f490a5e3a872777b75-vgg_generated_120.i" + SHA512 ad7c1d2b159ab5790c898815663bb90549f1cf7ade3c82d939d381608b26d26c5b2af01eb1ba21f4d114ced74586ab3fc83f14e2d8cfe4e6faac538aa0e7e255 + ) + 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 + ) + set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules") +endif() + +if("dnn" IN_LIST FEATURES) + 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() + +if(WITH_IPP) + if(VCPKG_TARGET_IS_OSX) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_mac_intel64_general_20180723.tgz" + FILENAME "opencv-cache/ippicv/fe6b2bb75ae0e3f19ad3ae1a31dfa4a2-ippicv_2019_mac_intel64_general_20180723.tgz" + SHA512 266fe3fecf8e95e1f51c09b65330a577743ef72b423b935d4d1fe8d87f1b4f258c282fe6a18fc805d489592f137ebed37c9f1d1b34026590d9f1ba107015132e + ) + else() + message(WARNING "This target architecture is not supported IPPICV") + set(WITH_IPP OFF) + endif() + elseif(VCPKG_TARGET_IS_LINUX) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_lnx_intel64_general_20180723.tgz" + FILENAME "opencv-cache/ippicv/c0bd78adb4156bbf552c1dfe90599607-ippicv_2019_lnx_intel64_general_20180723.tgz" + SHA512 e4ec6b3b9fc03d7b3ae777c2a26f57913e83329fd2f7be26c259b07477ca2a641050b86979e0c96e25aa4c1f9f251b28727690358a77418e76dd910d0f4845c9 + ) + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_lnx_ia32_general_20180723.tgz" + FILENAME "opencv-cache/ippicv/4f38432c30bfd6423164b7a24bbc98a0-ippicv_2019_lnx_ia32_general_20180723.tgz" + SHA512 d96d3989928ff11a18e631bf5ecfdedf88fd350162a23fa2c8f7dbc3bf878bf442aff7fb2a07dc56671d7268cc20682055891be75b9834e9694d20173e92b6a3 + ) + else() + message(WARNING "This target architecture is not supported IPPICV") + set(WITH_IPP OFF) + endif() + elseif(VCPKG_TARGET_IS_WINDOWS) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_win_intel64_20180723_general.zip" + FILENAME "opencv-cache/ippicv/1d222685246896fe089f88b8858e4b2f-ippicv_2019_win_intel64_20180723_general.zip" + SHA512 b6c4f2696e2004b8f5471efd9bdc6c684b77830e0533d8880310c0b665b450d6f78e10744c937f5592ab900e187c475e46cb49e98701bb4bcbbc7da77723011d + ) + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + vcpkg_download_distfile(OCV_DOWNLOAD + URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_win_ia32_20180723_general.zip" + FILENAME "opencv-cache/ippicv/0157251a2eb9cd63a3ebc7eed0f3e59e-ippicv_2019_win_ia32_20180723_general.zip" + SHA512 c33fd4019c71b064b153e1b25e0307f9c7ada693af8ec910410edeab471c6f14df9b11bf9f5302ceb0fcd4282f5c0b6c92fb5df0e83eb50ed630c45820d1e184 + ) + else() + message(WARNING "This target architecture is not supported IPPICV") + set(WITH_IPP OFF) + endif() + else() + message(WARNING "This target architecture is not supported IPPICV") + set(WITH_IPP OFF) + endif() +endif() + +set(WITH_MSMF ON) +if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP) + set(WITH_MSMF OFF) +endif() + +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + if (WITH_TBB) + message(WARNING "TBB is currently unsupported in this build configuration, turning it off") + set(WITH_TBB OFF) + endif() + + if (WITH_VTK) + message(WARNING "VTK is currently unsupported in this build configuration, turning it off") + set(WITH_VTK OFF) + endif() + + if (VCPKG_TARGET_IS_WINDOWS AND BUILD_opencv_ovis) + message(WARNING "OVIS is currently unsupported in this build configuration, turning it off") + set(BUILD_opencv_ovis OFF) + endif() +endif() + +vcpkg_configure_cmake( + PREFER_NINJA + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + ###### ocv_options + -DOpenCV_INSTALL_BINARIES_PREFIX= + -DOPENCV_LIB_INSTALL_PATH=lib + -DOPENCV_3P_LIB_INSTALL_PATH=lib + -DOPENCV_CONFIG_INSTALL_PATH=share/opencv + -DOPENCV_FFMPEG_USE_FIND_PACKAGE=FFMPEG + -DCMAKE_DEBUG_POSTFIX=d + ###### Ungrouped Entries + -DBUILD_opencv_java=OFF + -Dade_DIR=${ADE_DIR} + ###### Disable build 3rd party libs + -DBUILD_JASPER=OFF + -DBUILD_JPEG=OFF + -DBUILD_OPENEXR=OFF + -DBUILD_PNG=OFF + -DBUILD_TIFF=OFF + -DBUILD_WEBP=OFF + -DBUILD_ZLIB=OFF + -DBUILD_TBB=OFF + -DBUILD_IPP_IW=OFF + -DBUILD_ITT=OFF + ###### Disable build 3rd party components + -DBUILD_PROTOBUF=OFF + ###### OpenCV Build components + -DBUILD_opencv_apps=OFF + -DBUILD_opencv_js=OFF + -DBUILD_ANDROID_PROJECT=OFF + -DBUILD_ANDROID_EXAMPLES=OFF + -DBUILD_DOCS=OFF + -DBUILD_EXAMPLES=OFF + -DBUILD_PACKAGE=OFF + -DBUILD_PERF_TESTS=OFF + -DBUILD_TESTS=OFF + -DBUILD_WITH_DEBUG_INFO=ON + -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT} + -DBUILD_JAVA=OFF + -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} + ###### PROTOBUF + -DPROTOBUF_UPDATE_FILES=ON + -DUPDATE_PROTO_FILES=ON + ###### PYLINT/FLAKE8 + -DENABLE_PYLINT=OFF + -DENABLE_FLAKE8=OFF + # CMAKE + -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON + -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON + # ENABLE + -DENABLE_CXX11=ON + ###### OPENCV vars + "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache" + ${BUILD_WITH_CONTRIB_FLAG} + -DOPENCV_OTHER_INSTALL_PATH=share/opencv + ###### customized properties + ## Options from vcpkg_check_features() + ${FEATURE_OPTIONS} + -DHALIDE_ROOT_DIR=${CURRENT_INSTALLED_DIR} + -DWITH_IPP=${WITH_IPP} + -DWITH_MSMF=${WITH_MSMF} + -DWITH_PROTOBUF=ON + -DWITH_TBB=${WITH_TBB} + -DWITH_VTK=${WITH_VTK} + ###### WITH PROPERTIES explicitly disabled, they have problems with libraries if already installed by user and that are "involuntarily" found during install + -DWITH_LAPACK=OFF + ###### BUILD_options (mainly modules which require additional libraries) + -DBUILD_opencv_ovis=${BUILD_opencv_ovis} + ###### The following modules are disabled for UWP + -DBUILD_opencv_quality=${BUILD_opencv_quality} +) + +vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH "share/opencv" TARGET_PATH "share/opencv") +vcpkg_copy_pdbs() + +# OpenCV does not list TIFF as a dependency. +# We explicitly add it to the module file, +# in order to fix unresolved symbols linking problems +# for downstream projects using OpenCV as static library +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake OPENCV_MODULES) + string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)" + "set(CMAKE_IMPORT_FILE_VERSION 1) +find_package(TIFF REQUIRED) +find_package(Protobuf REQUIRED) +if(Protobuf_FOUND) + if(TARGET protobuf::libprotobuf) + add_library(libprotobuf INTERFACE IMPORTED) + set_target_properties(libprotobuf PROPERTIES + INTERFACE_LINK_LIBRARIES protobuf::libprotobuf + ) + else() + add_library(libprotobuf UNKNOWN IMPORTED) + set_target_properties(libprotobuf PROPERTIES + IMPORTED_LOCATION \"${Protobuf_LIBRARY}\" + INTERFACE_INCLUDE_DIRECTORIES \"${Protobuf_INCLUDE_DIR}\" + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES \"${Protobuf_INCLUDE_DIR}\" + ) + endif() +endif() +find_package(HDF5 QUIET) +find_package(Freetype QUIET) +find_package(Ogre QUIET) +find_package(gflags QUIET) +find_package(Ceres QUIET) +find_package(ade QUIET) +find_package(VTK QUIET) +find_package(OpenMP QUIET) +find_package(GDCM QUIET)" OPENCV_MODULES "${OPENCV_MODULES}") + + if("openmp" IN_LIST FEATURES) + string(REPLACE "set_target_properties(opencv_core PROPERTIES + INTERFACE_LINK_LIBRARIES \"" + "set_target_properties(opencv_core PROPERTIES + INTERFACE_LINK_LIBRARIES \"\$<LINK_ONLY:OpenMP::OpenMP_CXX>;" OPENCV_MODULES "${OPENCV_MODULES}") + endif() + + file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake "${OPENCV_MODULES}") + + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE ${CURRENT_PACKAGES_DIR}/setup_vars_opencv4.cmd) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/setup_vars_opencv4.cmd) +file(REMOVE ${CURRENT_PACKAGES_DIR}/LICENSE) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/LICENSE) + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv4 RENAME copyright) diff --git a/ports/osg-qt/OsgMacroUtils.patch b/ports/osg-qt/OsgMacroUtils.patch new file mode 100644 index 000000000..96f040cd3 --- /dev/null +++ b/ports/osg-qt/OsgMacroUtils.patch @@ -0,0 +1,11 @@ +--- a/CMakeModules/OsgMacroUtils.cmake ++++ b/CMakeModules/OsgMacroUtils.cmake +@@ -88,7 +88,7 @@ MACRO(LINK_CORELIB_DEFAULT CORELIB_NAME) + ENDIF() + + LINK_EXTERNAL(${CORELIB_NAME} ${ALL_GL_LIBRARIES}) +- LINK_WITH_VARIABLES(${CORELIB_NAME} OPENTHREADS_LIBRARY) ++ #LINK_WITH_VARIABLES(${CORELIB_NAME} OPENTHREADS_LIBRARY) + IF(OPENSCENEGRAPH_SONAMES) + SET_TARGET_PROPERTIES(${CORELIB_NAME} PROPERTIES VERSION ${OPENSCENEGRAPH_VERSION} SOVERSION ${OPENSCENEGRAPH_SOVERSION}) + ENDIF(OPENSCENEGRAPH_SONAMES) diff --git a/ports/osg-qt/portfile.cmake b/ports/osg-qt/portfile.cmake index 1ab23e63f..f78dbf37f 100644 --- a/ports/osg-qt/portfile.cmake +++ b/ports/osg-qt/portfile.cmake @@ -6,6 +6,8 @@ vcpkg_from_github( REF Qt4 SHA512 426a4ba88f680978d24817248b99c68cafa4517144e6e3d2480612870c4a224bb955539cacb438274d4ee1c93c36d94f8437d142070b2ecde2b81517bf357e71
HEAD_REF master
+ PATCHES
+ OsgMacroUtils.patch
)
diff --git a/ports/osg/CONTROL b/ports/osg/CONTROL index 9b981af9d..f677e0284 100644 --- a/ports/osg/CONTROL +++ b/ports/osg/CONTROL @@ -1,8 +1,8 @@ Source: osg -Version: 3.6.3-1 +Version: 3.6.4 Homepage: https://github.com/openscenegraph/OpenSceneGraph Description: The OpenSceneGraph is an open source high performance 3D graphics toolkit. -Build-Depends: freetype, jasper, openexr, zlib, gdal, giflib, libjpeg-turbo, libpng, tiff +Build-Depends: freetype, jasper, openexr, zlib, gdal, giflib, libjpeg-turbo, libpng, tiff, fontconfig Feature: collada Description: Support for Collada (.dae) files diff --git a/ports/osg/collada.patch b/ports/osg/collada.patch index 9787b7f5c..80b260618 100644 --- a/ports/osg/collada.patch +++ b/ports/osg/collada.patch @@ -1,173 +1,126 @@ -diff --git a/CMakeModules/FindCOLLADA.cmake b/CMakeModules/FindCOLLADA.cmake
-index 8c9c2fc33..6a8ab04ca 100644
---- a/CMakeModules/FindCOLLADA.cmake
-+++ b/CMakeModules/FindCOLLADA.cmake
-@@ -25,11 +25,11 @@ ENDIF()
-
- IF(APPLE)
- SET(COLLADA_BUILDNAME "mac")
-- SET(COLLADA_BOOST_BUILDNAME ${COLLADA_BUILDNAME})
-+ SET(COLLADA_BOOST_BUILDNAME ${COLLADA_BUILDNAME})
- ELSEIF(MINGW)
- SET(COLLADA_BUILDNAME "mingw")
-- SET(COLLADA_BOOST_BUILDNAME ${COLLADA_BUILDNAME})
--ELSEIF(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910 )
-+ SET(COLLADA_BOOST_BUILDNAME ${COLLADA_BUILDNAME})
-+ELSEIF(MSVC_VERSION GREATER_EQUAL 1900 )
- SET(COLLADA_BUILDNAME "vc14")
- SET(COLLADA_BOOST_BUILDNAME "vc140")
- ELSEIF(MSVC_VERSION EQUAL 1800)
-@@ -58,6 +58,7 @@ ENDIF()
-
-
- FIND_PATH(COLLADA_INCLUDE_DIR dae.h
-+ PATHS
- ${COLLADA_DOM_ROOT}/include
- $ENV{COLLADA_DIR}/include
- $ENV{COLLADA_DIR}
-@@ -65,27 +66,19 @@ FIND_PATH(COLLADA_INCLUDE_DIR dae.h
- /Library/Frameworks
- /opt/local/Library/Frameworks #macports
- /usr/local/include
-- /usr/local/include/colladadom
-- /usr/local/include/collada-dom
-- /usr/local/include/collada-dom2.5
-- /usr/local/include/collada-dom2.4
-- /usr/local/include/collada-dom2.2
-- /opt/local/include/collada-dom
-- /opt/local/include/collada-dom2.5
-- /opt/local/include/collada-dom2.4
-- /opt/local/include/collada-dom2.2
- /usr/include/
-- /usr/include/colladadom
-- /usr/include/collada-dom
-- /usr/include/collada-dom2.5
-- /usr/include/collada-dom2.4
-- /usr/include/collada-dom2.2
- /sw/include # Fink
- /opt/local/include # DarwinPorts
- /opt/csw/include # Blastwave
- /opt/include
- /usr/freeware/include
- ${ACTUAL_3DPARTY_DIR}/include
-+ PATH_SUFFIXES
-+ colladadom
-+ collada-dom
-+ collada-dom2.5
-+ collada-dom2.4
-+ collada-dom2.2
- )
-
- FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY
-@@ -15,6 +15,8 @@
-
-
- # Check if COLLADA_DIR is set, otherwise use ACTUAL_3DPARTY_DIR:
-+include(SelectLibraryConfigurations)
-+
- SET( COLLADA_ENV_VAR_AVAILABLE $ENV{COLLADA_DIR} )
- IF ( COLLADA_ENV_VAR_AVAILABLE )
- SET(COLLADA_DOM_ROOT "$ENV{COLLADA_DIR}/dom" CACHE PATH "Location of Collada DOM directory" FORCE)
-@@ -192,31 +194,9 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG
- ENDIF(WIN32)
- ENDIF(LIBXML2_FOUND)
-
-- FIND_PACKAGE(ZLIB)
-- IF (ZLIB_FOUND)
-- IF (ZLIB_LIBRARY_RELEASE)
-- SET(COLLADA_ZLIB_LIBRARY "${ZLIB_LIBRARY_RELEASE}" CACHE FILEPATH "" FORCE)
-- ELSE(ZLIB_LIBRARY_RELEASE)
-- SET(COLLADA_ZLIB_LIBRARY "${ZLIB_LIBRARY}" CACHE FILEPATH "" FORCE)
-- ENDIF(ZLIB_LIBRARY_RELEASE)
-- IF (ZLIB_LIBRARY_DEBUG)
-- SET(COLLADA_ZLIB_LIBRARY_DEBUG "${ZLIB_LIBRARY_DEBUG}" CACHE FILEPATH "" FORCE)
-- ELSE(ZLIB_LIBRARY_DEBUG)
-- SET(COLLADA_ZLIB_LIBRARY_DEBUG "${COLLADA_ZLIB_LIBRARY}" CACHE FILEPATH "" FORCE)
-- ENDIF(ZLIB_LIBRARY_DEBUG)
-- ELSE(ZLIB_FOUND)
-- IF(WIN32)
-- FIND_LIBRARY(COLLADA_ZLIB_LIBRARY
-- NAMES zlib
-- PATHS
-- ${COLLADA_DOM_ROOT}/external-libs/libxml2/win32/lib
-- ${COLLADA_DOM_ROOT}/external-libs/libxml2/mingw/lib
-- ${ACTUAL_3DPARTY_DIR}/lib
-- )
-- ENDIF(WIN32)
-- ENDIF(ZLIB_FOUND)
-+ FIND_PACKAGE(ZLIB REQUIRED)
-
-- FIND_LIBRARY(COLLADA_PCRECPP_LIBRARY
-+ FIND_LIBRARY(COLLADA_PCRECPP_LIBRARY_RELEASE
- NAMES pcrecpp
- PATHS
- ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/${COLLADA_BUILDNAME}
-@@ -233,8 +213,9 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG
- ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mingw
- ${ACTUAL_3DPARTY_DIR}/lib
- )
-+ select_library_configurations(COLLADA_PCRECPP)
-
-- FIND_LIBRARY(COLLADA_PCRE_LIBRARY
-+ FIND_LIBRARY(COLLADA_PCRE_LIBRARY_RELEASE
- NAMES pcre
- PATHS
- ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/${COLLADA_BUILDNAME}
-@@ -251,8 +232,9 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG
- ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mingw
- ${ACTUAL_3DPARTY_DIR}/lib
- )
-+ select_library_configurations(COLLADA_PCRE)
-
-- FIND_LIBRARY(COLLADA_MINIZIP_LIBRARY
-+ FIND_LIBRARY(COLLADA_MINIZIP_LIBRARY_RELEASE
- NAMES minizip
- PATHS
- ${COLLADA_DOM_ROOT}/external-libs/minizip/win32/lib
-@@ -267,8 +249,9 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG
- ${COLLADA_DOM_ROOT}/external-libs/minizip/mac
- ${ACTUAL_3DPARTY_DIR}/lib
- )
--
-- FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY
-+ select_library_configurations(COLLADA_MINIZIP)
-+
-+ FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY_RELEASE
- NAMES libboost_filesystem boost_filesystem boost_filesystem-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_63
- PATHS
- ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME}
-@@ -283,8 +266,9 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG
- ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw
- ${ACTUAL_3DPARTY_DIR}/lib
- )
-+ select_library_configurations(COLLADA_BOOST_FILESYSTEM)
-
-- FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY
-+ FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY_RELEASE
- NAMES libboost_system boost_system boost_system-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_63
- PATHS
- ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME}
-@@ -299,7 +283,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG
- ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw
- ${ACTUAL_3DPARTY_DIR}/lib
- )
--
-+ select_library_configurations(COLLADA_BOOST_SYSTEM_LIBRARY)
-
- SET(COLLADA_FOUND "NO")
- IF(COLLADA_DYNAMIC_LIBRARY OR COLLADA_STATIC_LIBRARY)
-diff --git a/src/osgPlugins/dae/CMakeLists.txt b/src/osgPlugins/dae/CMakeLists.txt
-index af03fb866..7eadfc2f3 100644
---- a/src/osgPlugins/dae/CMakeLists.txt
-+++ b/src/osgPlugins/dae/CMakeLists.txt
-@@ -49,7 +49,9 @@ ELSE()
- ENDIF()
-
- ADD_DEFINITIONS(-DNO_BOOST)
--ADD_DEFINITIONS(-DCOLLADA_DOM_SUPPORT141)
-+ADD_DEFINITIONS(-DCOLLADA_DOM_USING_141
-+ -DCOLLADA_DOM_SUPPORT141
-+ -DCOLLADA_DOM_SUPPORT150)
-
- IF (COLLADA_DOM_2_4_OR_LATER)
- ADD_DEFINITIONS(-DCOLLADA_DOM_2_4_OR_LATER)
+diff --git a/CMakeModules/FindCOLLADA.cmake b/CMakeModules/FindCOLLADA.cmake +index 7c7d290..5b456d7 100644 +--- a/CMakeModules/FindCOLLADA.cmake ++++ b/CMakeModules/FindCOLLADA.cmake +@@ -29,10 +29,7 @@ IF(APPLE) + ELSEIF(MINGW) + SET(COLLADA_BUILDNAME "mingw") + SET(COLLADA_BOOST_BUILDNAME ${COLLADA_BUILDNAME}) +-ELSEIF((MSVC_VERSION GREATER 1910) OR (MSVC_VERSION EQUAL 1910)) +- SET(COLLADA_BUILDNAME "vc14") +- SET(COLLADA_BOOST_BUILDNAME "vc141") +-ELSEIF(MSVC_VERSION EQUAL 1900) ++ELSEIF(MSVC_VERSION GREATER_EQUAL 1900) + SET(COLLADA_BUILDNAME "vc14") + SET(COLLADA_BOOST_BUILDNAME "vc140") + ELSEIF(MSVC_VERSION EQUAL 1800) +@@ -61,6 +58,7 @@ ENDIF() + + + FIND_PATH(COLLADA_INCLUDE_DIR dae.h ++ PATHS + ${COLLADA_DOM_ROOT}/include + $ENV{COLLADA_DIR}/include + $ENV{COLLADA_DIR} +@@ -68,27 +66,19 @@ FIND_PATH(COLLADA_INCLUDE_DIR dae.h + /Library/Frameworks + /opt/local/Library/Frameworks #macports + /usr/local/include +- /usr/local/include/colladadom +- /usr/local/include/collada-dom +- /usr/local/include/collada-dom2.5 +- /usr/local/include/collada-dom2.4 +- /usr/local/include/collada-dom2.2 +- /opt/local/include/collada-dom +- /opt/local/include/collada-dom2.5 +- /opt/local/include/collada-dom2.4 +- /opt/local/include/collada-dom2.2 + /usr/include/ +- /usr/include/colladadom +- /usr/include/collada-dom +- /usr/include/collada-dom2.5 +- /usr/include/collada-dom2.4 +- /usr/include/collada-dom2.2 + /sw/include # Fink + /opt/local/include # DarwinPorts + /opt/csw/include # Blastwave + /opt/include + /usr/freeware/include + ${ACTUAL_3DPARTY_DIR}/include ++ PATH_SUFFIXES ++ colladadom ++ collada-dom ++ collada-dom2.5 ++ collada-dom2.4 ++ collada-dom2.2 + ) + + FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY +@@ -116,7 +106,7 @@ FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY + ) + + FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY_DEBUG +- NAMES collada_dom-d collada14dom-d Collada14Dom-d libcollada14dom21-d libcollada14dom22-d collada-dom2.5-dp-d collada-dom2.5-dp-${COLLADA_BOOST_BUILDNAME}-mt-d collada-dom2.4-dp-d collada-dom2.4-dp-${COLLADA_BOOST_BUILDNAME}-mt-d ++ NAMES collada_dom-d collada14dom-d Collada14Dom-d libcollada14dom21-d libcollada14dom22-d collada-dom2.5-dp-d collada-dom2.5-dp-${COLLADA_BOOST_BUILDNAME}-mt-d collada-dom2.4-dp-d collada-dom2.4-dp-${COLLADA_BOOST_BUILDNAME}-mt-d collada-dom2.5-dp-${COLLADA_BOOST_BUILDNAME}-mt + PATHS + ${COLLADA_DOM_ROOT}/build/${COLLADA_BUILDNAME}-1.4-d + ${COLLADA_DOM_ROOT} +@@ -279,7 +269,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG + ) + + FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY +- NAMES libboost_filesystem boost_filesystem boost_filesystem-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_63 ++ NAMES libboost_filesystem boost_filesystem boost_filesystem-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_63 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt + PATHS + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw +@@ -287,7 +277,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG + ) + + FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY_DEBUG +- NAMES libboost_filesystem-d boost_filesystem-d boost_filesystem-mt-d libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_63 ++ NAMES libboost_filesystem-d boost_filesystem-d boost_filesystem-mt-d libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_63 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd + PATHS + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw +@@ -295,7 +285,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG + ) + + FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY +- NAMES libboost_system boost_system boost_system-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_63 ++ NAMES libboost_system boost_system boost_system-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_63 boost_system-${COLLADA_BOOST_BUILDNAME}-mt + PATHS + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw +@@ -303,7 +293,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG + ) + + FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY_DEBUG +- NAMES libboost_system-d boost_system-d boost_system-mt-d libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_63 ++ NAMES libboost_system-d boost_system-d boost_system-mt-d libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_63 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd + PATHS + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw +@@ -329,5 +319,3 @@ IF(COLLADA_DYNAMIC_LIBRARY OR COLLADA_STATIC_LIBRARY) + + ENDIF() + ENDIF() +- +- + +diff --git a/src/osgPlugins/dae/CMakeLists.txt b/src/osgPlugins/dae/CMakeLists.txt +index af03fb866..7eadfc2f3 100644 +--- a/src/osgPlugins/dae/CMakeLists.txt ++++ b/src/osgPlugins/dae/CMakeLists.txt +@@ -49,7 +49,9 @@ ELSE() + ENDIF() + + ADD_DEFINITIONS(-DNO_BOOST) +-ADD_DEFINITIONS(-DCOLLADA_DOM_SUPPORT141) ++ADD_DEFINITIONS(-DCOLLADA_DOM_USING_141 ++ -DCOLLADA_DOM_SUPPORT141 ++ -DCOLLADA_DOM_SUPPORT150) + + IF (COLLADA_DOM_2_4_OR_LATER) + ADD_DEFINITIONS(-DCOLLADA_DOM_2_4_OR_LATER) + diff --git a/ports/osg/portfile.cmake b/ports/osg/portfile.cmake index cb759ca1a..8c6b5f299 100644 --- a/ports/osg/portfile.cmake +++ b/ports/osg/portfile.cmake @@ -5,8 +5,8 @@ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO openscenegraph/OpenSceneGraph - REF OpenSceneGraph-3.6.3 - SHA512 5d66002cffa935ce670a119ffaebd8e4709acdf79ae2b34b37ad9df284ec8a1a74fee5a7a4109fbf3da6b8bd857960f2b7ae68c4c2e26036edbf484fccf08322 + REF OpenSceneGraph-3.6.4 + SHA512 7cb34fc279ba62a7d7177d3f065f845c28255688bd29026ffb305346e1bb2e515a22144df233e8a7246ed392044ee3e8b74e51bf655282d33ab27dcaf12f4b19 HEAD_REF master PATCHES collada.patch @@ -38,12 +38,12 @@ 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.6.3/*.dll) -file(COPY ${OSG_PLUGINS_DBG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/osg/osgPlugins-3.6.3) -file(GLOB OSG_PLUGINS_REL ${CURRENT_PACKAGES_DIR}/bin/osgPlugins-3.6.3/*.dll) -file(COPY ${OSG_PLUGINS_REL} DESTINATION ${OSG_TOOL_PATH}/osgPlugins-3.6.3) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/osgPlugins-3.6.3/) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/osgPlugins-3.6.3/) +file(GLOB OSG_PLUGINS_DBG ${CURRENT_PACKAGES_DIR}/debug/bin/osgPlugins-3.6.4/*.dll) +file(COPY ${OSG_PLUGINS_DBG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/osg/osgPlugins-3.6.4) +file(GLOB OSG_PLUGINS_REL ${CURRENT_PACKAGES_DIR}/bin/osgPlugins-3.6.4/*.dll) +file(COPY ${OSG_PLUGINS_REL} DESTINATION ${OSG_TOOL_PATH}/osgPlugins-3.6.4) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/osgPlugins-3.6.4/) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/osgPlugins-3.6.4/) # Handle copyright file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/osg) diff --git a/ports/osgearth/CONTROL b/ports/osgearth/CONTROL index c46d03451..d54992b82 100644 --- a/ports/osgearth/CONTROL +++ b/ports/osgearth/CONTROL @@ -1,4 +1,4 @@ Source: osgearth
-Version: 2.10.1 +Version: 2.10.2 Description: osgEarth - Dynamic map generation toolkit for OpenSceneGraph Copyright 2015 Pelican Mapping.
Build-Depends: osg
diff --git a/ports/osgearth/RocksDB.patch b/ports/osgearth/RocksDB.patch new file mode 100644 index 000000000..07fd7e603 --- /dev/null +++ b/ports/osgearth/RocksDB.patch @@ -0,0 +1,84 @@ +diff --git a/CMakeModules/FindRocksDB.cmake b/CMakeModules/FindRocksDB.cmake +index 109b383..8382ed9 100644 +--- a/CMakeModules/FindRocksDB.cmake ++++ b/CMakeModules/FindRocksDB.cmake +@@ -40,5 +40,49 @@ find_package_handle_standard_args(ROCKSDB + "Could NOT find ROCKSDB" + ) + ++if(ROCKSDB_FOUND) ++ FIND_PACKAGE(ZLIB REQUIRED) ++ ++ include(SelectLibraryConfigurations) ++ # Find Snappy library ++ find_library(SNAPPY_LIBRARY_DEBUG NAMES snappyd) ++ find_library(SNAPPY_LIBRARY_RELEASE NAMES snappy) ++ select_library_configurations(SNAPPY) ++ find_package_handle_standard_args(SNAPPY ++ FOUND_VAR ++ SNAPPY_FOUND ++ REQUIRED_VARS ++ SNAPPY_LIBRARY ++ FAIL_MESSAGE ++ "Could NOT find SNAPPY" ++ ) ++ ++ # Find LZ4 library ++ find_library(LZ4_LIBRARY_DEBUG NAMES lz4d) ++ find_library(LZ4_LIBRARY_RELEASE NAMES lz4) ++ select_library_configurations(LZ4) ++ find_package_handle_standard_args(LZ4 ++ FOUND_VAR ++ LZ4_FOUND ++ REQUIRED_VARS ++ LZ4_LIBRARY ++ FAIL_MESSAGE ++ "Could NOT find LZ4" ++ ) ++ ++ # Find ZSTD library ++ find_library(ZSTD_LIBRARY_DEBUG NAMES zstdd) ++ find_library(ZSTD_LIBRARY_RELEASE NAMES zstd) ++ select_library_configurations(ZSTD) ++ find_package_handle_standard_args(ZSTD ++ FOUND_VAR ++ ZSTD_FOUND ++ REQUIRED_VARS ++ ZSTD_LIBRARY ++ FAIL_MESSAGE ++ "Could NOT find ZSTD_" ++ ) ++endif(ROCKSDB_FOUND) ++ + set(ROCKSDB_INCLUDE_DIRS ${ROCKSDB_INCLUDE_DIR} ) + set(ROCKSDB_LIBRARIES ${ROCKSDB_LIBRARY}) +- +- + +diff --git a/src/osgEarthDrivers/cache_rocksdb/CMakeLists.txt b/src/osgEarthDrivers/cache_rocksdb/CMakeLists.txt +index 68ad85d..86bb18a 100644 +--- a/src/osgEarthDrivers/cache_rocksdb/CMakeLists.txt ++++ b/src/osgEarthDrivers/cache_rocksdb/CMakeLists.txt +@@ -16,7 +16,19 @@ SET(TARGET_SRC + RocksDBCacheDriver.cpp + ) + +-SET(TARGET_LIBRARIES_VARS ROCKSDB_LIBRARY ZLIB_LIBRARY) ++if(SNAPPY_FOUND) ++ SET(ROCKSDB_DEPENDENT_LIBRARY ${ROCKSDB_DEPENDENT_LIBRARY} ${SNAPPY_LIBRARY}) ++endif(SNAPPY_FOUND) ++ ++if(LZ4_FOUND) ++ SET(ROCKSDB_DEPENDENT_LIBRARY ${ROCKSDB_DEPENDENT_LIBRARY} ${LZ4_LIBRARY}) ++endif(LZ4_FOUND) ++ ++if(ZSTD_FOUND) ++ SET(ROCKSDB_DEPENDENT_LIBRARY ${ROCKSDB_DEPENDENT_LIBRARY} ${ZSTD_LIBRARY}) ++endif(ZSTD_FOUND) ++ ++SET(TARGET_LIBRARIES_VARS ROCKSDB_LIBRARY ZLIB_LIBRARY ROCKSDB_DEPENDENT_LIBRARY) + + IF(MSVC) + SET(TARGET_EXTERNAL_LIBRARIES ws2_32 winmm rpcrt4 shlwapi) +- +-
\ No newline at end of file diff --git a/ports/osgearth/portfile.cmake b/ports/osgearth/portfile.cmake index 6bc95df7c..8f74dea63 100644 --- a/ports/osgearth/portfile.cmake +++ b/ports/osgearth/portfile.cmake @@ -9,20 +9,14 @@ if(NOT OSG_PLUGINS_SUBDIR_LENGTH EQUAL 1) endif() string(REPLACE "${CURRENT_INSTALLED_DIR}/tools/osg/" "" OSG_PLUGINS_SUBDIR "${OSG_PLUGINS_SUBDIR}") -vcpkg_download_distfile( - VS2017PATCH - URLS "https://github.com/remoe/osgearth/commit/f7081cc4f9991c955c6a0ef7b7b50e48360d14fd.diff" - FILENAME "osgearth-f7081cc4f9991c955c6a0ef7b7b50e48360d14fd.patch" - SHA512 eadb47a5713c00c05add8627e5cad22844db041da34081d59104151a1a1e2d5ac9552909d67171bfc0449a3e4d2930dd3a7914d3ec7ef7ff1015574e9c9a6105 -) - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gwaldron/osgearth - REF osgearth-2.10.1 - SHA512 a74e6922ae29f85b4227b23a83dbccba92e08b7880533c281ceb244703c38b51a02823fdee3199c975c969db963b35ebad0e3bfed3c1e218a36d130b20a48e5b + REF osgearth-2.10.2 + SHA512 fa306a82374716dafae9d834ed0fb07a7369ae0961696de36b6e2af45bc150040295985d9b9781ab713fd0707691451a6a8f173b34253749ab22764f51e60045 HEAD_REF master - PATCHES ${VS2017PATCH} + PATCHES + RocksDB.patch ) vcpkg_configure_cmake( diff --git a/ports/paho-mqttpp3/CONTROL b/ports/paho-mqttpp3/CONTROL index 68f1867f6..7e3391668 100644 --- a/ports/paho-mqttpp3/CONTROL +++ b/ports/paho-mqttpp3/CONTROL @@ -1,5 +1,5 @@ Source: paho-mqttpp3 -Version: 1.0.1 +Version: 1.0.1-1 Description: Paho project provides open-source C++ wrapper for Paho C library Build-Depends: paho-mqtt Default-Features: ssl diff --git a/ports/paho-mqttpp3/portfile.cmake b/ports/paho-mqttpp3/portfile.cmake index dcc745d72..f91177ac0 100644 --- a/ports/paho-mqttpp3/portfile.cmake +++ b/ports/paho-mqttpp3/portfile.cmake @@ -9,7 +9,9 @@ vcpkg_from_github( HEAD_REF master ) -vcpkg_check_features("ssl" PAHO_WITH_SSL) +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + "ssl" PAHO_WITH_SSL +) # Link with 'paho-mqtt3as' library set(PAHO_C_LIBNAME paho-mqtt3as) @@ -48,8 +50,8 @@ vcpkg_configure_cmake( OPTIONS -DPAHO_BUILD_STATIC=${PAHO_MQTTPP3_STATIC} -DPAHO_BUILD_SHARED=${PAHO_MQTTPP3_SHARED} - -DPAHO_WITH_SSL=${PAHO_WITH_SSL} -DPAHO_MQTT_C_INCLUDE_DIRS=${PAHO_C_INC} + ${FEATURE_OPTIONS} ${PAHO_OPTIONS} ) diff --git a/ports/pcl/CONTROL b/ports/pcl/CONTROL index 1cf828db4..7d9e3a8db 100644 --- a/ports/pcl/CONTROL +++ b/ports/pcl/CONTROL @@ -1,5 +1,5 @@ Source: pcl -Version: 1.9.1-6 +Version: 1.9.1-8 Homepage: https://github.com/PointCloudLibrary/pcl 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 diff --git a/ports/pcl/portfile.cmake b/ports/pcl/portfile.cmake index 6ef083351..aa4435dd5 100644 --- a/ports/pcl/portfile.cmake +++ b/ports/pcl/portfile.cmake @@ -18,13 +18,15 @@ file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindFLANN.cmake) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PCL_SHARED_LIBS) -vcpkg_check_features( - openni2 WITH_OPENNI2 - qt WITH_QT - pcap WITH_PCAP - cuda WITH_CUDA - tools BUILD_TOOLS - opengl WITH_OPENGL +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + openni2 WITH_OPENNI2 + qt WITH_QT + pcap WITH_PCAP + cuda WITH_CUDA + cuda BUILD_CUDA + cuda BUILD_GPU + tools BUILD_tools + opengl WITH_OPENGL ) vcpkg_configure_cmake( @@ -33,24 +35,18 @@ vcpkg_configure_cmake( 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_BUILD_WITH_QHULL_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 - -DWITH_OPENGL=${WITH_OPENGL} + # FEATURES + ${FEATURE_OPTIONS} ) vcpkg_install_cmake() @@ -60,7 +56,7 @@ vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -if(BUILD_TOOLS) +if("tools" IN_LIST FEATURES) 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) diff --git a/ports/pegtl-2/CONTROL b/ports/pegtl-2/CONTROL index fcbcd3bba..aba1579d1 100644 --- a/ports/pegtl-2/CONTROL +++ b/ports/pegtl-2/CONTROL @@ -1,3 +1,3 @@ Source: pegtl-2
-Version: 2.8.0
+Version: 2.8.1
Description: The Parsing Expression Grammar Template Library (PEGTL) is a zero-dependency C++ header-only parser combinator library for creating parsers according to a Parsing Expression Grammar (PEG). This version maintains compatibility with C++11.
diff --git a/ports/pegtl-2/portfile.cmake b/ports/pegtl-2/portfile.cmake index 79d6bb97e..4e43c40ce 100644 --- a/ports/pegtl-2/portfile.cmake +++ b/ports/pegtl-2/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO taocpp/pegtl
- REF 2.8.0
- SHA512 1652b0061cd4cbd0e687855ee2e61e97d020606c54329de8769c3a3f411002323900c11eaf0da28e107c17e269025f577f9205b7500c5bbb16502687be8ee77b
+ REF 2.8.1
+ SHA512 7a8f6829123fbbd5a0ef1c8ef2c72bdae48576ef94056a1dff7914e4bb85caac1df02839131ea5cfb4131c8902addeca92df48fe7dd5815bdf5cb35759dace49
HEAD_REF master
)
diff --git a/ports/pegtl/CONTROL b/ports/pegtl/CONTROL index f7f685e0d..52906a8c1 100644 --- a/ports/pegtl/CONTROL +++ b/ports/pegtl/CONTROL @@ -1,3 +1,3 @@ Source: pegtl
-Version: 3.0.0-pre
+Version: 3.0.0-pre-697aaa0
Description: The Parsing Expression Grammar Template Library (PEGTL) is a zero-dependency C++ header-only parser combinator library for creating parsers according to a Parsing Expression Grammar (PEG).
diff --git a/ports/pegtl/portfile.cmake b/ports/pegtl/portfile.cmake index f12b170b5..3e3f92f97 100644 --- a/ports/pegtl/portfile.cmake +++ b/ports/pegtl/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO taocpp/pegtl
- REF c5d158ffab4baa0e1c3f6d54c0684f05a2412f74
- SHA512 efd5d36ca14c27948005cd034e72e24855f6046141c316a1d4b7186af9753fd035dab8303dc86e2f2de1b185f5fa3f5d678672892b1fc4ab69e827492a94e897
+ REF 697aaa06564c6ea9d13f95de081a2d2d46b39160
+ SHA512 453821966526569a2d1842ec0bebe6f65dee0241d6ab7d38255726243326356b6a972bf5ca58168e94f51dd87c74ce17fdefffd19fe67570fe9dc52f1f6a4f16
HEAD_REF master
)
diff --git a/ports/physx/CONTROL b/ports/physx/CONTROL index 284216488..5d2e85896 100644 --- a/ports/physx/CONTROL +++ b/ports/physx/CONTROL @@ -1,3 +1,3 @@ Source: physx
-Version: commit-624f2cb6c0392013d54b235d9072a49d01c3cb6c
+Version: 4.1.1-1
Description: The NVIDIA PhysX SDK is a scalable multi-platform physics solution supporting a wide range of devices, from smartphones to high-end multicore CPUs and GPUs
diff --git a/ports/physx/msvc_142_bug_workaround.patch b/ports/physx/msvc_142_bug_workaround.patch new file mode 100644 index 000000000..55433350d --- /dev/null +++ b/ports/physx/msvc_142_bug_workaround.patch @@ -0,0 +1,13 @@ +diff --git a/physx/source/foundation/include/windows/PsWindowsInlineAoS.h b/physx/source/foundation/include/windows/PsWindowsInlineAoS.h
+index 881dffb..7111189 100644
+--- a/physx/source/foundation/include/windows/PsWindowsInlineAoS.h
++++ b/physx/source/foundation/include/windows/PsWindowsInlineAoS.h
+@@ -363,7 +363,7 @@
+ PX_FORCE_INLINE Vec3V V3LoadA(const PxF32* const f)
+ {
+ ASSERT_ISALIGNED16(f);
+- return V4ClearW(_mm_load_ps(f));
++ return [ & ](){ return V4ClearW(_mm_load_ps(f)); }(); // MSVC 142 bug workaround
+ }
+
+ PX_FORCE_INLINE Vec3V V3LoadU(const PxF32* const i)
diff --git a/ports/physx/portfile.cmake b/ports/physx/portfile.cmake index 2e0dfa963..0eef2901b 100644 --- a/ports/physx/portfile.cmake +++ b/ports/physx/portfile.cmake @@ -20,6 +20,9 @@ if (VCPKG_PLATFORM_TOOLSET STREQUAL "v140") elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v141")
set(MSVC_VERSION "15")
set(TOOLSET_VERSION "141")
+elseif (VCPKG_PLATFORM_TOOLSET STREQUAL "v142")
+ set(MSVC_VERSION "16")
+ set(TOOLSET_VERSION "142")
else()
message(FATAL_ERROR "Unsupported platform toolset.")
endif()
@@ -27,9 +30,10 @@ endif() vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO NVIDIAGameWorks/PhysX
- REF 624f2cb6c0392013d54b235d9072a49d01c3cb6c
- SHA512 80b465f6214434fd53954fe124d8f8aa1ddfcb60d80261f1dc06713bf7fb0f42d8cd96a393fbc46547d9c2199039f386220d7eea63c849ad98863ff26b731e0c
+ REF ae80dede0546d652040ae6260a810e53e20a06fa
+ SHA512 f3a690039cf39fe2db9a728b82af0d39eaa02340a853bdad4b5152d63532367eb24fc7033a614882168049b80d803b6225fc60ed2900a9d0deab847f220540be
HEAD_REF master
+ PATCHES msvc_142_bug_workaround.patch
)
set(BUILD_SNIPPETS "False")
@@ -73,13 +77,14 @@ set(RELEASE_CONFIGURATION "release") set(DEBUG_CONFIGURATION "debug")
vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/physx/compiler/vc15win${WINDOWS_PLATFORM}/PhysXSDK.sln
+ PROJECT_PATH ${SOURCE_PATH}/physx/compiler/vc${MSVC_VERSION}win${WINDOWS_PLATFORM}/PhysXSDK.sln
RELEASE_CONFIGURATION ${RELEASE_CONFIGURATION}
DEBUG_CONFIGURATION ${DEBUG_CONFIGURATION}
PLATFORM ${MSBUILD_PLATFORM}
)
file(INSTALL ${SOURCE_PATH}/physx/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/physx/)
+file(INSTALL ${SOURCE_PATH}/pxshared/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/physx/)
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
file(GLOB RELEASE_BINS ${SOURCE_PATH}/physx/bin/win.x86_${WINDOWS_PLATFORM}.vc${TOOLSET_VERSION}.${RUNTIME_LIBRARY_LINKAGE}/${RELEASE_CONFIGURATION}/*.dll)
diff --git a/ports/pistache/CONTROL b/ports/pistache/CONTROL new file mode 100644 index 000000000..c1b4408cf --- /dev/null +++ b/ports/pistache/CONTROL @@ -0,0 +1,4 @@ +Source: pistache +Version: 2019-08-05 +Homepage: https://github.com/oktal/pistache +Description: Pistache is a modern and elegant HTTP and REST framework for C++. It is entirely written in pure-C++11 and provides a clear and pleasant API.
\ No newline at end of file diff --git a/ports/pistache/portfile.cmake b/ports/pistache/portfile.cmake new file mode 100644 index 000000000..d0400dcdf --- /dev/null +++ b/ports/pistache/portfile.cmake @@ -0,0 +1,31 @@ +include(vcpkg_common_functions) + +if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") + message(FATAL_ERROR "${PORT} currently only supports Linux platform.") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO oktal/pistache + REF 4dc9e3ef9a1b953a62e5fadbed88e72b4b3734de + SHA512 427b6a6e7200e5f91ce8737cd1cc5d6cd689025033c85979c96f0ece64ae05d9c6839a936d7d6015b0e1065dc72362f6f70ab588ea7cae7aa718dfe5cd288554 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT}) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig) + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) diff --git a/ports/plf-colony/CONTROL b/ports/plf-colony/CONTROL new file mode 100644 index 000000000..384ce2d19 --- /dev/null +++ b/ports/plf-colony/CONTROL @@ -0,0 +1,4 @@ +Source: plf-colony +Version: 2019-08-10 +Description: An unordered data container providing fast iteration/insertion/erasure while maintaining pointer validity to non-erased elements +Homepage: https://www.plflib.org/ diff --git a/ports/plf-colony/portfile.cmake b/ports/plf-colony/portfile.cmake new file mode 100644 index 000000000..eef608ce8 --- /dev/null +++ b/ports/plf-colony/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mattreecebentley/plf_colony + REF 81fe8c4daf433491f14248837ee8ed5cf447c856 + SHA512 a6ae03d383c94b0a758e7aedee2838d46b3665881e2c0823b064a3579140a351d96fec66d456de5843b6c4c8d2f6f6efac5f547841c08edd349b0f153e9c4871 + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/plf_colony.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/plf-list/CONTROL b/ports/plf-list/CONTROL new file mode 100644 index 000000000..338eec5ea --- /dev/null +++ b/ports/plf-list/CONTROL @@ -0,0 +1,4 @@ +Source: plf-list +Version: 2019-08-10 +Description: A drop-in replacement for std::list with 293% faster insertion, 57% faster erasure, 17% faster iteration and 77% faster sorting on average +Homepage: https://www.plflib.org/ diff --git a/ports/plf-list/portfile.cmake b/ports/plf-list/portfile.cmake new file mode 100644 index 000000000..f9efd1e61 --- /dev/null +++ b/ports/plf-list/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mattreecebentley/plf_list + REF 42fcfca9890598d1c1fda45eb9dbe2b2b2d4dd2b + SHA512 879157aac16dc1b76db942a8ddf25dc33ede10e769496b7f300a070913c6c6946cb40853dd3071ecf3d9c870e1dee5d420d42fbb388e83361235659171f6bd44 + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/plf_list.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/plf-nanotimer/CONTROL b/ports/plf-nanotimer/CONTROL new file mode 100644 index 000000000..10ac0ac2c --- /dev/null +++ b/ports/plf-nanotimer/CONTROL @@ -0,0 +1,4 @@ +Source: plf-nanotimer +Version: 2019-08-10 +Description: A simple C++ 03/11/etc timer class for ~microsecond-precision cross-platform benchmarking +Homepage: https://www.plflib.org/ diff --git a/ports/plf-nanotimer/portfile.cmake b/ports/plf-nanotimer/portfile.cmake new file mode 100644 index 000000000..4c25a2c73 --- /dev/null +++ b/ports/plf-nanotimer/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mattreecebentley/plf_nanotimer + REF bc8b44d2befc4395f63701c923ece89835d8415c + SHA512 ec816e82ab855dd7029b03931ffb1e945d3e77f7bb446c4985c4a8404afe20e9de8fac02f64459c47c34e31c06fa8838dba310263197d309e39ec1b0b5da0b6d + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/plf_nanotimer.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/plf-stack/CONTROL b/ports/plf-stack/CONTROL new file mode 100644 index 000000000..d0a40be45 --- /dev/null +++ b/ports/plf-stack/CONTROL @@ -0,0 +1,4 @@ +Source: plf-stack +Version: 2019-08-10 +Description: A C++ data container replicating std::stack functionality but with better performance +Homepage: https://www.plflib.org/ diff --git a/ports/plf-stack/portfile.cmake b/ports/plf-stack/portfile.cmake new file mode 100644 index 000000000..11a9fb068 --- /dev/null +++ b/ports/plf-stack/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mattreecebentley/plf_stack + REF 9d046154d8954eafc12f8d4845505beec8c4a5da + SHA512 2202bbff0e93bf515ae7b237551d084dcba9b870bca82f49b4e1a64446f4574079b0cb45fb91f0ad0472e008f21ad014464b45e307ffa6dab19affc6dc38626a + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/plf_stack.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/poco/CONTROL b/ports/poco/CONTROL index 72c7cc72f..e7e1656bb 100644 --- a/ports/poco/CONTROL +++ b/ports/poco/CONTROL @@ -1,6 +1,6 @@ Source: poco -Version: 2.0.0-pre-3 -Build-Depends: expat, libpq, pcre, sqlite3, zlib +Version: 1.9.2 +Build-Depends: expat, libpq, pcre, sqlite3, zlib, libpng Description: Modern, powerful open source C++ class libraries for building network and internet-based applications that run on desktop, server, mobile and embedded systems. Homepage: https://github.com/pocoproject/poco diff --git a/ports/poco/find_pcre.patch b/ports/poco/find_pcre.patch index 1a07882bc..3b73ae4f1 100644 --- a/ports/poco/find_pcre.patch +++ b/ports/poco/find_pcre.patch @@ -1,13 +1,22 @@ -diff --git a/cmake/FindPCRE.cmake b/cmake/FindPCRE.cmake
-index 41a99cb..77f3a42 100644
---- a/cmake/FindPCRE.cmake
-+++ b/cmake/FindPCRE.cmake
-@@ -14,7 +14,7 @@ ENDIF (PCRE_INCLUDE_DIRS)
-
- FIND_PATH(PCRE_INCLUDE_DIR pcre.h)
-
--SET(PCRE_NAMES pcre)
-+SET(PCRE_NAMES pcred pcre)
- FIND_LIBRARY(PCRE_LIBRARY NAMES ${PCRE_NAMES} )
-
- # handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if
+diff --git a/cmake/FindPCRE.cmake b/cmake/FindPCRE.cmake +index 41a99cb..b1acb32 100644 +--- a/cmake/FindPCRE.cmake ++++ b/cmake/FindPCRE.cmake +@@ -14,9 +14,15 @@ ENDIF (PCRE_INCLUDE_DIRS) + + FIND_PATH(PCRE_INCLUDE_DIR pcre.h) + +-SET(PCRE_NAMES pcre) ++if (WIN32) ++include(SelectLibraryConfigurations) ++find_library(PCRE_LIBRARY_RELEASE NAMES pcre) ++find_library(PCRE_LIBRARY_DEBUG NAMES pcred) ++select_library_configurations(PCRE) ++else() ++SET(PCRE_NAMES pcred pcre) + FIND_LIBRARY(PCRE_LIBRARY NAMES ${PCRE_NAMES} ) +- ++endif() + # handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if + # all listed variables are TRUE + INCLUDE(FindPackageHandleStandardArgs) diff --git a/ports/poco/fix_foundation_link.patch b/ports/poco/fix_foundation_link.patch index f3af572b1..c8830ed4f 100644 --- a/ports/poco/fix_foundation_link.patch +++ b/ports/poco/fix_foundation_link.patch @@ -1,26 +1,24 @@ -diff --git a/Foundation/src/Environment_WIN32.cpp b/Foundation/src/Environment_WIN32.cpp
-index 3cca5c7..8ed1df2 100644
---- a/Foundation/src/Environment_WIN32.cpp
-+++ b/Foundation/src/Environment_WIN32.cpp
-@@ -23,7 +23,7 @@
- #include <ws2ipdef.h>
- #include <wincrypt.h>
- #include <iphlpapi.h>
--
-+#pragma comment(lib, "IPHLPAPI.lib")
-
- namespace Poco {
-
-diff --git a/Foundation/src/Environment_WINCE.cpp b/Foundation/src/Environment_WINCE.cpp
-index 62f19bc..d409356 100644
---- a/Foundation/src/Environment_WINCE.cpp
-+++ b/Foundation/src/Environment_WINCE.cpp
-@@ -22,7 +22,7 @@
- #include <cstring>
- #include <windows.h>
- #include <iphlpapi.h>
--
-+#pragma comment(lib, "IPHLPAPI.lib")
-
- namespace Poco {
-
+diff --git a/Foundation/src/Environment_WIN32.cpp b/Foundation/src/Environment_WIN32.cpp +index 62845fa..edcf6fe 100644 +--- a/Foundation/src/Environment_WIN32.cpp ++++ b/Foundation/src/Environment_WIN32.cpp +@@ -22,6 +22,7 @@ + #include <ws2ipdef.h> + #include <iphlpapi.h> + ++#pragma comment(lib, "IPHLPAPI.lib") + + namespace Poco { + +diff --git a/Foundation/src/Environment_WINCE.cpp b/Foundation/src/Environment_WINCE.cpp +index afa59b6..c43767b 100644 +--- a/Foundation/src/Environment_WINCE.cpp ++++ b/Foundation/src/Environment_WINCE.cpp +@@ -23,6 +23,7 @@ + #include <windows.h> + #include <iphlpapi.h> + ++#pragma comment(lib, "IPHLPAPI.lib") + + namespace Poco { + diff --git a/ports/poco/include_pcre.patch b/ports/poco/include_pcre.patch index 6594a30fe..5db2372ea 100644 --- a/ports/poco/include_pcre.patch +++ b/ports/poco/include_pcre.patch @@ -1,12 +1,12 @@ -diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt
-index 5b7df96..4fedfd5 100644
---- a/Foundation/CMakeLists.txt
-+++ b/Foundation/CMakeLists.txt
-@@ -101,6 +101,7 @@ target_link_libraries(Foundation PUBLIC ${PCRE_LIBRARIES} ${ZLIB_LIBRARIES})
- target_include_directories(Foundation
- PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-+ $<BUILD_INTERFACE:${PCRE_INCLUDE_DIRS}>
- $<INSTALL_INTERFACE:include>
- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src
- )
+diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt +index 26a2365..0b8f7bc 100644 +--- a/Foundation/CMakeLists.txt ++++ b/Foundation/CMakeLists.txt +@@ -168,6 +168,7 @@ target_link_libraries( "${LIBNAME}" ${SYSLIBS}) + target_include_directories( "${LIBNAME}" + PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> ++ $<BUILD_INTERFACE:${PCRE_INCLUDE_DIRS}> + $<INSTALL_INTERFACE:include> + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src + ) diff --git a/ports/poco/portfile.cmake b/ports/poco/portfile.cmake index f6a1255aa..6d53a0048 100644 --- a/ports/poco/portfile.cmake +++ b/ports/poco/portfile.cmake @@ -1,13 +1,11 @@ include(vcpkg_common_functions) -# Poco 2.0.0 (pre) -# commit 46e00c8 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pocoproject/poco - REF 46e00c8d6f6d03864397c3e517a165e82f9efd5e - SHA512 2c2f5048b7bfbbfe47ac303ed79213197c97f3d90362dd2d7629c8b353a6c8bd303b1bcf477e3493cc6c984645822ca043dd0a77e9186e001e6808dc2d17a5b4 - HEAD_REF develop + REF 8a127d6f16795d914cadc342d3f4f3b9b7999e3b #1.9.2 + SHA512 282097ee2118ac55320ebdde05bb53ed27d68af49c201b0b26027706ef935ae08f8090abb8aab1cafe84c72520ea73b01263b439d32bd2d0bd55319b0634b168 + HEAD_REF master PATCHES # Find pcre in debug find_pcre.patch @@ -52,37 +50,34 @@ vcpkg_configure_cmake( -DPOCO_STATIC=${POCO_STATIC} -DPOCO_MT=${POCO_MT} # Set to OFF|ON (default is OFF) to control build of POCO tests - -DPOCO_ENABLE_TESTS=OFF + -DENABLE_TESTS=OFF # Set to OFF|ON (default is OFF) to control build of POCO samples - -DPOCO_ENABLE_SAMPLES=OFF + -DENABLE_SAMPLES=OFF # Allow enabling and disabling components # POCO_ENABLE_SQL_ODBC, POCO_ENABLE_SQL_MYSQL and POCO_ENABLE_SQL_POSTGRESQL are # defined on the fly if the required librairies are present - -DPOCO_ENABLE_ENCODINGS=ON - -DPOCO_ENABLE_ENCODINGS_COMPILER=ON - -DPOCO_ENABLE_XML=ON - -DPOCO_ENABLE_JSON=ON - -DPOCO_ENABLE_MONGODB=ON - -DPOCO_ENABLE_SQL_SQLITE=ON - -DPOCO_ENABLE_REDIS=ON - -DPOCO_ENABLE_PDF=ON - -DPOCO_ENABLE_UTIL=ON - -DPOCO_ENABLE_NET=ON - -DPOCO_ENABLE_SEVENZIP=ON - -DPOCO_ENABLE_ZIP=ON - -DPOCO_ENABLE_CPPPARSER=ON - -DPOCO_ENABLE_POCODOC=ON - -DPOCO_ENABLE_PAGECOMPILER=ON - -DPOCO_ENABLE_PAGECOMPILER_FILE2PAGE=ON - -DPOCO_ENABLE_WSTRING=ON - -DPOCO_ENABLE_FPENVIRONMENT=ON - -DPOCO_ENABLE_CPPUNIT=ON + -DENABLE_ENCODINGS=ON + -DENABLE_ENCODINGS_COMPILER=ON + -DENABLE_XML=ON + -DENABLE_JSON=ON + -DENABLE_MONGODB=ON + # -DPOCO_ENABLE_SQL_SQLITE=ON # SQLITE are not supported. + -DENABLE_REDIS=ON + -DENABLE_PDF=ON + -DENABLE_UTIL=ON + -DENABLE_NET=ON + -DENABLE_SEVENZIP=ON + -DENABLE_ZIP=ON + -DENABLE_CPPPARSER=ON + -DENABLE_POCODOC=ON + -DENABLE_PAGECOMPILER=ON + -DENABLE_PAGECOMPILER_FILE2PAGE=ON # -DMYSQL_INCLUDE_DIR=${MYSQL_INCLUDE_DIR} OPTIONS_RELEASE - -DMYSQL_LIBRARY=${MYSQL_LIBRARY} + -DMYSQL_LIB=${MYSQL_LIBRARY} OPTIONS_DEBUG - -DMYSQL_LIBRARY=${MYSQL_LIBRARY_DEBUG} + -DMYSQL_LIB=${MYSQL_LIBRARY_DEBUG} ) vcpkg_install_cmake() @@ -154,7 +149,7 @@ endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # copy license -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/poco) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/poco/LICENSE ${CURRENT_PACKAGES_DIR}/share/poco/copyright) +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) vcpkg_copy_pdbs() diff --git a/ports/poco/static_pcre.patch b/ports/poco/static_pcre.patch index b9bac7629..a6dab02ce 100644 --- a/ports/poco/static_pcre.patch +++ b/ports/poco/static_pcre.patch @@ -1,27 +1,26 @@ -diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt
-index 4fedfd5..741313b 100644
---- a/Foundation/CMakeLists.txt
-+++ b/Foundation/CMakeLists.txt
-@@ -35,6 +35,22 @@ if (POCO_UNBUNDLED)
- find_package(PCRE REQUIRED)
- find_package(ZLIB REQUIRED)
-
-+ 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
-+ )
-+
- #HACK: Unicode.cpp requires functions from these files. The can't be taken from the library
- POCO_SOURCES( SRCS RegExp
- src/pcre_ucd.c
+diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt +index 0b8f7bc..c362890 100644 +--- a/Foundation/CMakeLists.txt ++++ b/Foundation/CMakeLists.txt +@@ -53,6 +53,21 @@ if (POCO_UNBUNDLED) + include_directories(${ZLIB_INCLUDE_DIRS}) + + 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 diff --git a/ports/poco/unbundled_pdf.patch b/ports/poco/unbundled_pdf.patch index b7abcf541..e7f88f035 100644 --- a/ports/poco/unbundled_pdf.patch +++ b/ports/poco/unbundled_pdf.patch @@ -1,17 +1,30 @@ -diff --git a/PDF/CMakeLists.txt b/PDF/CMakeLists.txt
-index b377035..9cfbd32 100644
---- a/PDF/CMakeLists.txt
-+++ b/PDF/CMakeLists.txt
-@@ -31,6 +31,12 @@ endif (POCO_UNBUNDLED)
- # TODO: Currently only bundled is supported, in future this should also be possible
- # with an unbundled version of hpdf
- # hpdf
-+if (POCO_UNBUNDLED)
-+ POCO_SOURCES( SRCS hpdf
-+ src/bmpread.c
-+ )
-+endif (POCO_UNBUNDLED)
-+
- POCO_SOURCES(SRCS hpdf
- src/hpdf_3dmeasure.c
- src/hpdf_annotation.c
+diff --git a/PDF/CMakeLists.txt b/PDF/CMakeLists.txt +index 3e44906..ae8fe6e 100644 +--- a/PDF/CMakeLists.txt ++++ b/PDF/CMakeLists.txt +@@ -97,6 +97,8 @@ POCO_SOURCES(SRCS hpdf + + # TODO: Currently only bundled is supported, in future this should also be possible + # with an unbundled version of libpng ++find_package(PNG REQUIRED) ++if (0) + POCO_SOURCES( SRCS libpng + src/png.c + src/pngerror.c +@@ -117,6 +119,7 @@ POCO_SOURCES( SRCS libpng + src/pngwtran.c + src/pngwutil.c + ) ++endif(0) + + # Version Resource + if(MSVC AND NOT POCO_STATIC) +@@ -136,7 +139,7 @@ set_target_properties( "${LIBNAME}" + DEFINE_SYMBOL PDF_EXPORTS + ) + +-target_link_libraries( "${LIBNAME}" ${SYSLIBS} XML Util Foundation ) ++target_link_libraries( "${LIBNAME}" ${SYSLIBS} XML Util Foundation ${PNG_LIBRARIES}) + target_include_directories( "${LIBNAME}" + PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> diff --git a/ports/protobuf/CONTROL b/ports/protobuf/CONTROL index f6876ba91..ba4ce7d91 100644 --- a/ports/protobuf/CONTROL +++ b/ports/protobuf/CONTROL @@ -1,5 +1,5 @@ Source: protobuf -Version: 3.9.0 +Version: 3.9.1 Homepage: https://github.com/google/protobuf Description: Protocol Buffers - Google's data interchange format diff --git a/ports/protobuf/portfile.cmake b/ports/protobuf/portfile.cmake index c650e921e..bb6726410 100644 --- a/ports/protobuf/portfile.cmake +++ b/ports/protobuf/portfile.cmake @@ -2,9 +2,9 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH - REPO google/protobuf - REF v3.9.0 - SHA512 eebfea7758b924939edaf44d0f51e341f4778dcf943c9e399da57cb5f52e875bda1e37e40841798232dea52082b5d59c20de69a15ddeaf00220c432f05ca0e6e + REPO protocolbuffers/protobuf + REF v3.9.1 + SHA512 9accb56c1aadef83bf27280e15a99809a3561cbd4b39d6605dec730cc112bf4fd2e9f1ac39127b32a1b87253e712be4b4f12afe4061a8f7be76266b3f4bca314 HEAD_REF master PATCHES fix-uwp.patch diff --git a/ports/pthreads/CONTROL b/ports/pthreads/CONTROL index 53d5706c7..448fb9951 100644 --- a/ports/pthreads/CONTROL +++ b/ports/pthreads/CONTROL @@ -1,4 +1,4 @@ Source: pthreads -Version: 3.0.0-2 +Version: 3.0.0-3 Homepage: https://sourceware.org/pub/pthreads-win32/ Description: pthreads for windows diff --git a/ports/pthreads/vcpkg-cmake-wrapper.cmake b/ports/pthreads/vcpkg-cmake-wrapper.cmake index 8d3a4e875..12d390a7a 100644 --- a/ports/pthreads/vcpkg-cmake-wrapper.cmake +++ b/ports/pthreads/vcpkg-cmake-wrapper.cmake @@ -70,18 +70,21 @@ if(NOT PThreads4W_STRUCTEXC_LIBRARY) find_library(PThreads4W_STRUCTEXC_LIBRARY_DEBUG NAMES pthreadVSE${PThreads4W_MAJOR_VERSION}d) select_library_configurations(PThreads4W_STRUCTEXC) endif() -if(WIN32) - string( REPLACE ".lib" ".dll" PThreads4W_LIBRARY_RELEASE_DLL "${PThreads4W_LIBRARY_RELEASE}" ) - string( REPLACE ".lib" ".dll" PThreads4W_LIBRARY_DEBUG_DLL "${PThreads4W_LIBRARY_DEBUG}" ) - string( REPLACE ".lib" ".dll" PThreads4W_CXXEXC_LIBRARY_RELEASE_DLL "${PThreads4W_CXXEXC_LIBRARY_RELEASE}" ) - string( REPLACE ".lib" ".dll" PThreads4W_CXXEXC_LIBRARY_DEBUG_DLL "${PThreads4W_CXXEXC_LIBRARY_DEBUG}" ) - string( REPLACE ".lib" ".dll" PThreads4W_STRUCTEXC_LIBRARY_RELEASE_DLL "${PThreads4W_STRUCTEXC_LIBRARY_RELEASE}" ) - string( REPLACE ".lib" ".dll" PThreads4W_STRUCTEXC_LIBRARY_DEBUG_DLL "${PThreads4W_STRUCTEXC_LIBRARY_DEBUG}" ) -endif() find_package_handle_standard_args(PThreads4W DEFAULT_MSG PThreads4W_LIBRARY PThreads4W_CXXEXC_LIBRARY PThreads4W_STRUCTEXC_LIBRARY PThreads4W_INCLUDE_DIR) mark_as_advanced(PThreads4W_INCLUDE_DIR PThreads4W_LIBRARY PThreads4W_CXXEXC_LIBRARY PThreads4W_STRUCTEXC_LIBRARY) +set(PThreads4W_DLL_DIR ${PThreads4W_INCLUDE_DIR}) +list(TRANSFORM PThreads4W_DLL_DIR APPEND "/../bin") +message(STATUS "PThreads4W_DLL_DIR: ${PThreads4W_DLL_DIR}") + +find_file(PThreads4W_LIBRARY_RELEASE_DLL NAMES pthreadVC${PThreads4W_MAJOR_VERSION}.dll PATHS ${PThreads4W_DLL_DIR}) +find_file(PThreads4W_LIBRARY_DEBUG_DLL NAMES pthreadVC${PThreads4W_MAJOR_VERSION}d.dll PATHS ${PThreads4W_DLL_DIR}) +find_file(PThreads4W_CXXEXC_LIBRARY_RELEASE_DLL NAMES pthreadVCE${PThreads4W_MAJOR_VERSION}.dll PATHS ${PThreads4W_DLL_DIR}) +find_file(PThreads4W_CXXEXC_LIBRARY_DEBUG_DLL NAMES pthreadVCE${PThreads4W_MAJOR_VERSION}d.dll PATHS ${PThreads4W_DLL_DIR}) +find_file(PThreads4W_STRUCTEXC_LIBRARY_RELEASE_DLL NAMES pthreadVSE${PThreads4W_MAJOR_VERSION}.dll PATHS ${PThreads4W_DLL_DIR}) +find_file(PThreads4W_STRUCTEXC_LIBRARY_DEBUG_DLL NAMES pthreadVSE${PThreads4W_MAJOR_VERSION}d.dll PATHS ${PThreads4W_DLL_DIR}) + #Compatibility definitions, deprecated set(PTHREAD_INCLUDE_DIR ${PThreads4W_INCLUDE_DIR} CACHE PATH "") set(PTHREADS_INCLUDE_DIR ${PThreads4W_INCLUDE_DIR} CACHE PATH "") diff --git a/ports/qt5/CONTROL b/ports/qt5/CONTROL index 74b69467a..0f6bdeafd 100644 --- a/ports/qt5/CONTROL +++ b/ports/qt5/CONTROL @@ -2,4 +2,4 @@ Source: qt5 Version: 5.12.3 Homepage: https://www.qt.io/ Description: Qt5 Application Framework -Build-Depends: qt5-3d, qt5-activeqt, qt5-base, qt5-charts, qt5-datavis3d, qt5-declarative, qt5-gamepad, qt5-graphicaleffects, qt5-imageformats, qt5-location, qt5-multimedia, qt5-mqtt, qt5-networkauth, qt5-purchasing, qt5-quickcontrols, qt5-quickcontrols2, qt5-script, qt5-scxml, qt5-sensors, qt5-serialport, qt5-speech, qt5-svg, qt5-tools, qt5-virtualkeyboard, qt5-webchannel, qt5-websockets, qt5-winextras (windows), qt5-macextras (osx), qt5-xmlpatterns +Build-Depends: qt5-3d, qt5-activeqt (windows), qt5-base, qt5-charts, qt5-datavis3d, qt5-declarative, qt5-gamepad, qt5-graphicaleffects, qt5-imageformats, qt5-location, qt5-multimedia, qt5-mqtt, qt5-networkauth, qt5-purchasing, qt5-quickcontrols, qt5-quickcontrols2, qt5-script, qt5-scxml, qt5-sensors, qt5-serialport, qt5-speech, qt5-svg, qt5-tools, qt5-virtualkeyboard, qt5-webchannel, qt5-websockets, qt5-winextras (windows), qt5-macextras (osx), qt5-xmlpatterns diff --git a/ports/robin-hood-hashing/CONTROL b/ports/robin-hood-hashing/CONTROL index d30871519..785b6f791 100644 --- a/ports/robin-hood-hashing/CONTROL +++ b/ports/robin-hood-hashing/CONTROL @@ -1,3 +1,3 @@ Source: robin-hood-hashing -Version: 3.2.13 +Version: 3.4.0 Description: Fast & memory efficient hashtable based on robin hood hashing for C++14 diff --git a/ports/robin-hood-hashing/portfile.cmake b/ports/robin-hood-hashing/portfile.cmake index 890d6f86a..d3386f01f 100644 --- a/ports/robin-hood-hashing/portfile.cmake +++ b/ports/robin-hood-hashing/portfile.cmake @@ -5,8 +5,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinus/robin-hood-hashing - REF 3.2.13 - SHA512 5c508a1f43d2ca86c89b9aac3b17493a23b8ee3c7485438afc8e5eb4e697d663588e1945001ba3ba95dd1480b3c1b846079fadec5972e5ac4462117379052433 + REF 3.4.0 + SHA512 7985d64063af7d28b9404639df48645d2d72b0bc752fde23c7e3bf431adbd8eb4ffbc439e5a8513a39eb54481ce875fb044fafc86c36046995e3193284a594dd HEAD_REF master ) diff --git a/ports/rocksdb/portfile.cmake b/ports/rocksdb/portfile.cmake index 535f3708c..e50a306fc 100644 --- a/ports/rocksdb/portfile.cmake +++ b/ports/rocksdb/portfile.cmake @@ -28,44 +28,22 @@ string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" WITH_MD_LIBRARY) 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() - -set(WITH_ZLIB OFF) -if("zstd" IN_LIST FEATURES) - set(WITH_ZLIB ON) -endif() - -set(WITH_TBB OFF) -set(ROCKSDB_IGNORE_PACKAGE_TBB TRUE) -if("tbb" IN_LIST FEATURES) - set(WITH_TBB ON) - set(ROCKSDB_IGNORE_PACKAGE_TBB FALSE) -endif() - +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + "lz4" WITH_LZ4 + "snappy" WITH_SNAPPY + "zlib" WITH_ZLIB + "zstd" WITH_ZSTD + "tbb" WITH_TBB + INVERTED_FEATURES + "tbb" CMAKE_DISABLE_FIND_PACKAGE_TBB +) 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_TBB=${WITH_TBB} - -DWITH_ZSTD=${WITH_ZSTD} -DWITH_TESTS=OFF -DUSE_RTTI=1 -DROCKSDB_INSTALL_ON_WINDOWS=ON @@ -75,10 +53,10 @@ vcpkg_configure_cmake( -DCMAKE_DEBUG_POSTFIX=d -DROCKSDB_DISABLE_INSTALL_SHARED_LIB=${ROCKSDB_DISABLE_INSTALL_SHARED_LIB} -DROCKSDB_DISABLE_INSTALL_STATIC_LIB=${ROCKSDB_DISABLE_INSTALL_STATIC_LIB} - -DCMAKE_DISABLE_FIND_PACKAGE_TBB=${ROCKSDB_IGNORE_PACKAGE_TBB} -DCMAKE_DISABLE_FIND_PACKAGE_NUMA=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_gtest=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE + ${FEATURE_OPTIONS} ) vcpkg_install_cmake() diff --git a/ports/sfml/portfile.cmake b/ports/sfml/portfile.cmake index a4c0d89c4..2281d5ac3 100644 --- a/ports/sfml/portfile.cmake +++ b/ports/sfml/portfile.cmake @@ -16,7 +16,7 @@ file(WRITE ${SOURCE_PATH}/extlibs/libs/x "") file(REMOVE_RECURSE ${SOURCE_PATH}/cmake/Modules/FindFreetype.cmake)
if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
- message("SFML currently requires the following libraries from the system package manager:\n libudev\n libx11\n libxrandr\n opengl\n\nThese can be installed on Ubuntu systems via apt-get install libx11-dev libxrandr-dev libxi-dev libudev-dev mesa-common-dev")
+ message("SFML currently requires the following libraries from the system package manager:\n libudev\n libx11\n libxrandr\n opengl\n\nThese can be installed on Ubuntu systems via apt-get install libx11-dev libxrandr-dev libxi-dev libudev-dev libgl1-mesa-dev")
endif()
vcpkg_configure_cmake(
diff --git a/ports/spdlog/CONTROL b/ports/spdlog/CONTROL index aa5474709..0864d7858 100644 --- a/ports/spdlog/CONTROL +++ b/ports/spdlog/CONTROL @@ -1,5 +1,5 @@ Source: spdlog -Version: 1.3.1-1 +Version: 1.3.1-2 Homepage: https://github.com/gabime/spdlog Description: Very fast, header only, C++ logging library Build-Depends: fmt diff --git a/ports/spdlog/portfile.cmake b/ports/spdlog/portfile.cmake index 37cd8644f..d25f78712 100644 --- a/ports/spdlog/portfile.cmake +++ b/ports/spdlog/portfile.cmake @@ -27,7 +27,11 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/spdlog) +if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/${PORT}") + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT}) +elseif(EXISTS "${CURRENT_PACKAGES_DIR}/lib/${PORT}/cmake") + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/${PORT}/cmake) +endif() vcpkg_copy_pdbs() diff --git a/ports/spscqueue/CONTROL b/ports/spscqueue/CONTROL new file mode 100644 index 000000000..e8330caaa --- /dev/null +++ b/ports/spscqueue/CONTROL @@ -0,0 +1,4 @@ +Source: spscqueue +Version: 2019-07-26 +Description: A bounded single-producer single-consumer wait-free and lock-free queue written in C++11 +Homepage: https://github.com/rigtorp/SPSCQueue diff --git a/ports/spscqueue/portfile.cmake b/ports/spscqueue/portfile.cmake new file mode 100644 index 000000000..5bc0628bc --- /dev/null +++ b/ports/spscqueue/portfile.cmake @@ -0,0 +1,19 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO rigtorp/SPSCQueue + REF 5165a08ac4474c77c636050332eca6ebfdd53533 + SHA512 30cd60711f816e6003a5b114c48bd12da449cb7b0f19aa58dd57e3abc3e5200847c3eb492627b4013f57eec11d5d6f0a11fedbcb21dd8dd5c44682c49456e4e1 + HEAD_REF master +) + +file(COPY + ${SOURCE_PATH}/include/rigtorp/SPSCQueue.h + DESTINATION ${CURRENT_PACKAGES_DIR}/include/rigtorp +) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/sqlite-orm/CONTROL b/ports/sqlite-orm/CONTROL index 6382eeca0..d4693ed46 100644 --- a/ports/sqlite-orm/CONTROL +++ b/ports/sqlite-orm/CONTROL @@ -1,4 +1,4 @@ Source: sqlite-orm -Version: 1.3-1 +Version: 1.4 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 index 6df00f77f..8d757bb4c 100644 --- a/ports/sqlite-orm/portfile.cmake +++ b/ports/sqlite-orm/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fnc12/sqlite_orm - REF v1.3 - SHA512 43adcd28bdca5d0165ca0313c5ff90e048144e4841541704f49e443deaf0d8e027655a3bb88677f3f3c62c5764fdda8b1e472d74e68f3a32cad052f3b4ed63a7 + REF v1.4 + SHA512 b9ff600af568c2de982467cec9ef057e7cb687dc9123e84596590d2e4e51bf41db02a2e6386ef264b832530d4d05c2c18455c8c7d85498b15a9d76601ec81e75 HEAD_REF master ) diff --git a/ports/tesseract/CONTROL b/ports/tesseract/CONTROL index a31493e76..a24dd9435 100644 --- a/ports/tesseract/CONTROL +++ b/ports/tesseract/CONTROL @@ -1,5 +1,5 @@ Source: tesseract
-Version: 4.1.0-1
+Version: 4.1.0-2
Homepage: https://github.com/tesseract-ocr/tesseract
Description: An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google.
Build-Depends: leptonica
diff --git a/ports/tesseract/portfile.cmake b/ports/tesseract/portfile.cmake index e9c2ffa9f..08f581cfe 100644 --- a/ports/tesseract/portfile.cmake +++ b/ports/tesseract/portfile.cmake @@ -9,7 +9,7 @@ vcpkg_from_github( SHA512 d617f5c5b826640b2871dbe3d7973bcc5e66fafd837921a20e009d683806ed50f0f258aa455019d99fc54f5cb65c2fa0380e3a3c92b39ab0684b8799c730b09d PATCHES fix-tiff-linkage.patch - fix-text2image.patch + fix-text2image.patch ) # The built-in cmake FindICU is better @@ -38,9 +38,10 @@ vcpkg_configure_cmake( OPTIONS -DSTATIC=ON -DUSE_SYSTEM_ICU=True - #any value for vcpkg leptonica link cmake branch select - -DLeptonica_DIR=YES - ${OPTIONS_LIST} + -DCMAKE_DISABLE_FIND_PACKAGE_LibArchive=ON + -DCMAKE_DISABLE_FIND_PACKAGE_OpenCL=ON + -DLeptonica_DIR=YES + ${OPTIONS_LIST} ) vcpkg_install_cmake() diff --git a/ports/tgc/CMakeLists.txt b/ports/tgc/CMakeLists.txt new file mode 100644 index 000000000..20f5f0a1a --- /dev/null +++ b/ports/tgc/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.14)
+
+project(tgc LANGUAGES C)
+
+include(GNUInstallDirs)
+
+add_library(tgc tgc.c)
+
+target_include_directories(
+ tgc
+ PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+)
+
+set_target_properties(tgc PROPERTIES PUBLIC_HEADER tgc.h)
+
+install(TARGETS tgc EXPORT unofficial-tgc-config)
+
+install(
+ EXPORT unofficial-tgc-config
+ NAMESPACE unofficial::tgc::
+ DESTINATION share/unofficial-tgc
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+)
diff --git a/ports/tgc/CONTROL b/ports/tgc/CONTROL new file mode 100644 index 000000000..85466c147 --- /dev/null +++ b/ports/tgc/CONTROL @@ -0,0 +1,4 @@ +Source: tgc
+Version: 2019-08-11
+Description: A tiny garbage collector for C
+Homepage: https://github.com/orangeduck/tgc
diff --git a/ports/tgc/portfile.cmake b/ports/tgc/portfile.cmake new file mode 100644 index 000000000..ebd9c66c3 --- /dev/null +++ b/ports/tgc/portfile.cmake @@ -0,0 +1,54 @@ +include(vcpkg_common_functions)
+
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+set(SOURCE_VERSION 35207051557c79ea25942c021fb18856c72af8e3)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/orangeduck-tgc-${SOURCE_VERSION})
+
+file(MAKE_DIRECTORY ${SOURCE_PATH})
+
+# See ports/nlohmann-json/portfile.cmake
+function(download_src SUBPATH SHA512)
+ vcpkg_download_distfile(
+ FILE
+ URLS "https://raw.githubusercontent.com/orangeduck/tgc/master/${SUBPATH}"
+ FILENAME "orangeduck-tgc-${SOURCE_VERSION}/${SUBPATH}"
+ SHA512 ${SHA512}
+ )
+ get_filename_component(SUBPATH_DIR "${SOURCE_PATH}/${SUBPATH}" DIRECTORY)
+ file(COPY ${FILE} DESTINATION ${SUBPATH_DIR})
+endfunction()
+
+download_src(
+ tgc.h
+ 55944055fa83cfc1cbdf026f6ea65d42c1704800d26a7cb6d31a0afcfc61a2ca61d5e539edbf354c4572a885dbc6f38cbb6593cbb66d5dc78eb7d3b66d613dd8
+)
+download_src(
+ tgc.c
+ 942eefd9b02558f94315023734e9b3b74e326d5a705e9e8809cb4ddb0c6272d8ba9b9715f7d53d7a6151b8cff1377561d169a310c48d200698f9d26ba2c106c3
+)
+download_src(
+ LICENSE.md
+ 89c46e23f61d2912f47a10e807ee823e78b708804c5cfea2382e1d5a9955f0f1a67e421453b5868db2f71229aae8b83c271bb1cf89631b43e91e5d6c4fcbf1a7
+)
+
+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()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-${PORT} TARGET_PATH share/unofficial-${PORT})
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
+
+# CMake integration test
+vcpkg_test_cmake(PACKAGE_NAME unofficial-${PORT})
diff --git a/ports/tiff/CONTROL b/ports/tiff/CONTROL index 9c88261a6..7cf6005dc 100644 --- a/ports/tiff/CONTROL +++ b/ports/tiff/CONTROL @@ -1,5 +1,5 @@ Source: tiff -Version: 4.0.10-6 +Version: 4.0.10-7 Build-Depends: zlib, libjpeg-turbo, liblzma Homepage: https://download.osgeo.org/libtiff Description: A library that supports the manipulation of TIFF image files diff --git a/ports/tiff/portfile.cmake b/ports/tiff/portfile.cmake index d36dce238..373ceac7c 100644 --- a/ports/tiff/portfile.cmake +++ b/ports/tiff/portfile.cmake @@ -33,6 +33,8 @@ vcpkg_configure_cmake( -Djpeg12=OFF -Dwebp=OFF -Dzstd=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_OpenGL=ON + -DCMAKE_DISABLE_FIND_PACKAGE_GLUT=ON ${TIFF_CXX_TARGET} ) diff --git a/ports/tinkerforge/CMakeLists.txt b/ports/tinkerforge/CMakeLists.txt new file mode 100644 index 000000000..671f7d145 --- /dev/null +++ b/ports/tinkerforge/CMakeLists.txt @@ -0,0 +1,63 @@ +cmake_minimum_required (VERSION 3.13 FATAL_ERROR)
+include(GNUInstallDirs)
+
+if(WIN32)
+ set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}")
+endif()
+
+if(NOT TARGET_INSTALL_DIR)
+ set(TARGET_INSTALL_DIR "share/${PROJECT_NAME}")
+endif()
+
+if(NOT CONFIG_INSTALL_DIR)
+ set(CONFIG_INSTALL_DIR "share/${PROJECT_NAME}")
+endif()
+
+if(NOT INCLUDE_INSTALL_DIR)
+ set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}")
+endif()
+
+project(tinkerforge LANGUAGES C VERSION 2.1.25)
+
+file(GLOB CPP_FILES source/*.c)
+file(GLOB H_FILES source/*.h)
+file(GLOB DEF_FILE source/*.def)
+
+add_library(${PROJECT_NAME} ${CPP_FILES} ${H_FILES} ${DEF_FILE})
+target_include_directories(${PROJECT_NAME} PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/source>
+ $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}>)
+target_link_libraries(${PROJECT_NAME} PUBLIC Ws2_32)
+##---------------------------------------------------------------------------------------##
+##----- Package definition.
+##---------------------------------------------------------------------------------------##
+include(CMakePackageConfigHelpers)
+
+#Export as Package
+set_target_properties (${PROJECT_NAME} PROPERTIES EXPORT_NAME ${PROJECT_NAME})
+export(TARGETS ${PROJECT_NAME} NAMESPACE ${PROJECT_NAME}:: FILE cmake/${PROJECT_NAME}Targets.cmake)
+export(PACKAGE ${PROJECT_NAME})
+
+#Config files for find_package
+configure_package_config_file(
+ ${PROJECT_NAME}Config.cmake.in cmake/${PROJECT_NAME}Config.cmake
+ INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}/${PROJECT_NAME}Config.cmake"
+ PATH_VARS TARGET_INSTALL_DIR INCLUDE_INSTALL_DIR
+)
+write_basic_package_version_file(cmake/${PROJECT_NAME}ConfigVersion.cmake COMPATIBILITY SameMinorVersion)
+
+#Install the target and all it build outputs.
+install (TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Runtime
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Development
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime
+ PUBLIC_HEADER DESTINATION "${INCLUDE_INSTALL_DIR}" COMPONENT Development
+ BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime)
+#Install public headers
+install(FILES ${H_FILES} DESTINATION "${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}")
+#Install the config files for find_package
+install(FILES "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"
+ "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"
+ DESTINATION "${CONFIG_INSTALL_DIR}")
+#install the targets file included by the config
+install(EXPORT ${PROJECT_NAME}Targets NAMESPACE ${PROJECT_NAME}:: DESTINATION "${TARGET_INSTALL_DIR}")
\ No newline at end of file diff --git a/ports/tinkerforge/CONTROL b/ports/tinkerforge/CONTROL new file mode 100644 index 000000000..5eb67e96b --- /dev/null +++ b/ports/tinkerforge/CONTROL @@ -0,0 +1,3 @@ +Source: tinkerforge +Version: 2.1.25 +Description: Tinkerforge C API bindings for bricks and bricklets diff --git a/ports/tinkerforge/portfile.cmake b/ports/tinkerforge/portfile.cmake new file mode 100644 index 000000000..128f72e32 --- /dev/null +++ b/ports/tinkerforge/portfile.cmake @@ -0,0 +1,36 @@ +vcpkg_fail_port_install(ON_TARGET "uwp") + +set(VERSION 2_1_25) + +vcpkg_download_distfile(ARCHIVE + URLS "http://download.tinkerforge.com/bindings/c/tinkerforge_c_bindings_${VERSION}.zip" + FILENAME "tinkerforge-${VERSION}.zip" + SHA512 c02b789bd466803d60aeb39a544b0aa17af811377b065a0b273bcfc15c5844f8cfe981d8143743e32bd05470c2c6af297df50924da0d2895a4cdf4bc9e9bd0b8 +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF tinker-${VERSION} + NO_REMOVE_ONE_LEVEL +) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION ${SOURCE_PATH}) +file(COPY "${CMAKE_CURRENT_LIST_DIR}/tinkerforgeConfig.cmake.in" DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH share) + +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/share +) + +file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/tinkerforge/tinkerforgeConfig.cmake.in b/ports/tinkerforge/tinkerforgeConfig.cmake.in new file mode 100644 index 000000000..440db8a6c --- /dev/null +++ b/ports/tinkerforge/tinkerforgeConfig.cmake.in @@ -0,0 +1,5 @@ +@PACKAGE_INIT@ + +include ("@PACKAGE_TARGET_INSTALL_DIR@@PROJECT_NAME@Targets.cmake") +set_and_check(REFL_ENUM_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") +check_required_components("@PROJECT_NAME@") diff --git a/ports/tiny-aes-c/CMakeLists.txt b/ports/tiny-aes-c/CMakeLists.txt new file mode 100644 index 000000000..6e3222547 --- /dev/null +++ b/ports/tiny-aes-c/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.14)
+
+project(tiny-aes-c LANGUAGES C ASM)
+
+include(GNUInstallDirs)
+
+add_library(tiny-aes-c aes.c)
+
+target_include_directories(
+ tiny-aes-c
+ PUBLIC
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+)
+
+install(FILES aes.h aes.hpp DESTINATION include)
+
+install(TARGETS tiny-aes-c EXPORT unofficial-tiny-aes-c-config)
+
+install(
+ EXPORT unofficial-tiny-aes-c-config
+ NAMESPACE unofficial::tiny-aes-c::
+ DESTINATION share/unofficial-tiny-aes-c
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+)
diff --git a/ports/tiny-aes-c/CONTROL b/ports/tiny-aes-c/CONTROL new file mode 100644 index 000000000..e87499074 --- /dev/null +++ b/ports/tiny-aes-c/CONTROL @@ -0,0 +1,4 @@ +Source: tiny-aes-c
+Version: 2019-07-31
+Description: Small portable AES128/192/256 in C
+Homepage: https://github.com/kokke/tiny-AES-c
diff --git a/ports/tiny-aes-c/portfile.cmake b/ports/tiny-aes-c/portfile.cmake new file mode 100644 index 000000000..e1bb5cb31 --- /dev/null +++ b/ports/tiny-aes-c/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions)
+
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO kokke/tiny-AES-c
+ REF ca85e00de963102d3999ea5fa865c0deff6370d3
+ SHA512 538d5d9cee8cecbf801d3553f2425f8a1331b59c652c11ee56c6e46a23450c1e9a59e3e1833f4384b7a4d992a93f30635855a47e2414b9293e0d27c426b6a4f3
+ 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-${PORT} TARGET_PATH share/unofficial-${PORT})
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+configure_file(${SOURCE_PATH}/unlicense.txt ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
+
+# CMake integration test
+vcpkg_test_cmake(PACKAGE_NAME unofficial-${PORT})
diff --git a/ports/tiny-bignum-c/CMakeLists.txt b/ports/tiny-bignum-c/CMakeLists.txt new file mode 100644 index 000000000..8891356d7 --- /dev/null +++ b/ports/tiny-bignum-c/CMakeLists.txt @@ -0,0 +1,28 @@ +cmake_minimum_required(VERSION 3.14)
+
+project(tiny-bignum-c LANGUAGES C)
+
+include(GNUInstallDirs)
+
+add_library(tiny-bignum-c bn.c)
+
+target_include_directories(
+ tiny-bignum-c
+ PUBLIC
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+)
+target_compile_definitions(
+ tiny-bignum-c
+ PRIVATE
+ $<$<C_COMPILER_ID:MSVC>:_CRT_SECURE_NO_WARNINGS>
+)
+set_target_properties(tiny-bignum-c PROPERTIES PUBLIC_HEADER bn.h)
+
+install(TARGETS tiny-bignum-c EXPORT unofficial-tiny-bignum-c-config)
+
+install(
+ EXPORT unofficial-tiny-bignum-c-config
+ NAMESPACE unofficial::tiny-bignum-c::
+ DESTINATION share/unofficial-tiny-bignum-c
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+)
diff --git a/ports/tiny-bignum-c/CONTROL b/ports/tiny-bignum-c/CONTROL new file mode 100644 index 000000000..5015bc2d0 --- /dev/null +++ b/ports/tiny-bignum-c/CONTROL @@ -0,0 +1,4 @@ +Source: tiny-bignum-c
+Version: 2019-07-31
+Description: Small portable multiple-precision unsigned integer arithmetic in C
+Homepage: https://github.com/kokke/tiny-bignum-c
diff --git a/ports/tiny-bignum-c/portfile.cmake b/ports/tiny-bignum-c/portfile.cmake new file mode 100644 index 000000000..732271241 --- /dev/null +++ b/ports/tiny-bignum-c/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions)
+
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO kokke/tiny-bignum-c
+ REF e814d2b6b522ecaa67701453c492811a8adbc555
+ SHA512 2cea21588d018bd74fb9a128576764feecd87364d157acee21bd37cd8890c0776b228e25580de88a0c6d723a7b8e88cb8120c8c66b3999661c707b04dffc3f5b
+ 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-${PORT} TARGET_PATH share/unofficial-${PORT})
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
+
+# CMake integration test
+vcpkg_test_cmake(PACKAGE_NAME unofficial-${PORT})
diff --git a/ports/tiny-regex-c/CMakeLists.txt b/ports/tiny-regex-c/CMakeLists.txt new file mode 100644 index 000000000..44c7ad710 --- /dev/null +++ b/ports/tiny-regex-c/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.14)
+
+project(tiny-regex-c LANGUAGES C)
+
+include(GNUInstallDirs)
+
+add_library(tiny-regex-c re.c)
+
+target_include_directories(
+ tiny-regex-c
+ PUBLIC
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+)
+
+set_target_properties(tiny-regex-c PROPERTIES PUBLIC_HEADER re.h)
+
+install(TARGETS tiny-regex-c EXPORT unofficial-tiny-regex-c-config)
+
+install(
+ EXPORT unofficial-tiny-regex-c-config
+ NAMESPACE unofficial::tiny-regex-c::
+ DESTINATION share/unofficial-tiny-regex-c
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+)
diff --git a/ports/tiny-regex-c/CONTROL b/ports/tiny-regex-c/CONTROL new file mode 100644 index 000000000..12b5ea0c5 --- /dev/null +++ b/ports/tiny-regex-c/CONTROL @@ -0,0 +1,4 @@ +Source: tiny-regex-c
+Version: 2019-07-31
+Description: A small regex implementation in C
+Homepage: https://github.com/kokke/tiny-regex-c
diff --git a/ports/tiny-regex-c/portfile.cmake b/ports/tiny-regex-c/portfile.cmake new file mode 100644 index 000000000..2e21fb433 --- /dev/null +++ b/ports/tiny-regex-c/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions)
+
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO kokke/tiny-regex-c
+ REF d3058f271f7a06ff298dff0a6a9a1e0753a5fa17
+ SHA512 bd524c63850b08f02fa5f7725fcde85cbd9c9c6ec8a804f2570df0e04518961a758c017cdb33ebaf72df1abca42ba3b82681655404bc26e6142b5a52a0534ab4
+ 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-${PORT} TARGET_PATH share/unofficial-${PORT})
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
+
+# CMake integration test
+vcpkg_test_cmake(PACKAGE_NAME unofficial-${PORT})
diff --git a/ports/usockets/CONTROL b/ports/usockets/CONTROL index 107ed27ac..69db6dce9 100644 --- a/ports/usockets/CONTROL +++ b/ports/usockets/CONTROL @@ -1,4 +1,4 @@ Source: usockets -Version: 0.1.2 +Version: 0.3.1 Build-Depends:libuv Description: Miniscule cross-platform eventing, networking & crypto for async applications
\ No newline at end of file diff --git a/ports/usockets/portfile.cmake b/ports/usockets/portfile.cmake index 55e35e12b..c5b92f84f 100644 --- a/ports/usockets/portfile.cmake +++ b/ports/usockets/portfile.cmake @@ -7,8 +7,8 @@ EndIF () vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO uNetworking/uSockets - REF v0.1.2 - SHA512 fedfc50e3498320600247920360db38977f5be4aa9067146a5a0db13dc789b8fa39fa9315b19f56555915bcb818cd0f77ccf0b8cb40ed48e2b193b083d16b242 + REF v0.3.1 + SHA512 f02b72844fb87acbf435d86a89e55244e45e047b049f36bda8e89c9ddeba8d7e6432008d33d33771faec60dcca60a3e3bfa3918c3af08ba80741e09df62c91fd HEAD_REF master ) diff --git a/ports/wg21-sg14/CONTROL b/ports/wg21-sg14/CONTROL new file mode 100644 index 000000000..e09697226 --- /dev/null +++ b/ports/wg21-sg14/CONTROL @@ -0,0 +1,4 @@ +Source: wg21-sg14
+Version: 2019-08-13
+Description: A library for Study Group 14 of Working Group 21 (C++)
+Homepage: https://github.com/WG21-SG14/SG14
diff --git a/ports/wg21-sg14/portfile.cmake b/ports/wg21-sg14/portfile.cmake new file mode 100644 index 000000000..d72be282a --- /dev/null +++ b/ports/wg21-sg14/portfile.cmake @@ -0,0 +1,21 @@ +include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO WG21-SG14/SG14
+ REF 836e4d202249a86ba5ff56139c35e0afa60e7a1c
+ SHA512 002a6b83ecfb41bde978e912feda77639460ff376ad634e1cd0a908e2be35863489132db579d399bb6e5087fcb0355a222e611eae58eb0c2d8372bdd25f60e07
+ HEAD_REF master
+)
+
+file(COPY ${SOURCE_PATH}/SG14 DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+# Handle copyright
+
+file(STRINGS "${SOURCE_PATH}/SG14/flat_map.h" SOURCE_LINES)
+list(SUBLIST SOURCE_LINES 0 26 SOURCE_LINES)
+list(JOIN SOURCE_LINES "\n" _contents)
+
+file(READ "${SOURCE_PATH}/Docs/plf_licensing.txt" plf_licensing_contents)
+
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright "${_contents}\n${plf_licensing_contents}")
diff --git a/ports/xerces-c/CONTROL b/ports/xerces-c/CONTROL index 3d2a4337e..6a7b0d216 100644 --- a/ports/xerces-c/CONTROL +++ b/ports/xerces-c/CONTROL @@ -1,5 +1,5 @@ Source: xerces-c -Version: 3.2.2-10 +Version: 3.2.2-11 Homepage: https://github.com/apache/xerces-c Description: Xerces-C++ is a XML parser, for parsing, generating, manipulating, and validating XML documents using the DOM, SAX, and SAX2 APIs. diff --git a/ports/xerces-c/portfile.cmake b/ports/xerces-c/portfile.cmake index 0350d53ed..214cf971b 100644 --- a/ports/xerces-c/portfile.cmake +++ b/ports/xerces-c/portfile.cmake @@ -28,6 +28,7 @@ vcpkg_configure_cmake( -DDISABLE_DOC=ON -DDISABLE_SAMPLES=ON -DCMAKE_DISABLE_FIND_PACKAGE_ICU=${DISABLE_ICU} + -DCMAKE_DISABLE_FIND_PACKAGE_CURL=ON ${XMLCHTYPE} ) diff --git a/ports/xorstr/CONTROL b/ports/xorstr/CONTROL new file mode 100644 index 000000000..f3555680c --- /dev/null +++ b/ports/xorstr/CONTROL @@ -0,0 +1,4 @@ +Source: xorstr +Version: 2019-08-10 +Description: Heavily vectorized c++17 compile time string encryption +Homepage: https://github.com/JustasMasiulis/xorstr diff --git a/ports/xorstr/portfile.cmake b/ports/xorstr/portfile.cmake new file mode 100644 index 000000000..3d97ba190 --- /dev/null +++ b/ports/xorstr/portfile.cmake @@ -0,0 +1,16 @@ +# header-only library + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO JustasMasiulis/xorstr + REF 5d7371dcb70601ce9c252d475cc3dc6cf8f1e0db + SHA512 7625d2ebdb95a5414f0a1ac7ac8951b612d5159be5eccce4e13b88a4d17ffa3c65ff81ce5df5b64064b5712da7238ec1f564d2c213852731cad30c367ebad72e + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/include/xorstr.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) diff --git a/ports/xsimd/CONTROL b/ports/xsimd/CONTROL index 6147d355c..dc442f858 100644 --- a/ports/xsimd/CONTROL +++ b/ports/xsimd/CONTROL @@ -1,5 +1,5 @@ Source: xsimd
-Version: 7.2.3-1
+Version: 7.2.3-2
Description: Modern, portable C++ wrappers for SIMD intrinsics
Homepage: https://github.com/QuantStack/xsimd
diff --git a/ports/xsimd/portfile.cmake b/ports/xsimd/portfile.cmake index 338afff45..ab293c408 100644 --- a/ports/xsimd/portfile.cmake +++ b/ports/xsimd/portfile.cmake @@ -10,16 +10,18 @@ vcpkg_from_github( HEAD_REF master
)
-vcpkg_check_features(xcomplex ENABLE_XTL_COMPLEX)
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ xcomplex ENABLE_XTL_COMPLEX
+)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DENABLE_FALLBACK=OFF
- -DENABLE_XTL_COMPLEX=${ENABLE_XTL_COMPLEX}
-DBUILD_TESTS=OFF
-DDOWNLOAD_GTEST=OFF
+ ${FEATURE_OPTIONS}
)
vcpkg_install_cmake()
diff --git a/ports/xtensor/CONTROL b/ports/xtensor/CONTROL index 138d9e1fe..14df243d9 100644 --- a/ports/xtensor/CONTROL +++ b/ports/xtensor/CONTROL @@ -1,5 +1,5 @@ Source: xtensor
-Version: 0.20.7-1
+Version: 0.20.7-2
Description: C++ tensors with broadcasting and lazy computing
Homepage: https://quantstack.net/xtensor
Build-Depends: nlohmann-json, xtl
diff --git a/ports/xtensor/portfile.cmake b/ports/xtensor/portfile.cmake index 9c8b3b63e..d30743a40 100644 --- a/ports/xtensor/portfile.cmake +++ b/ports/xtensor/portfile.cmake @@ -10,7 +10,7 @@ vcpkg_from_github( HEAD_REF master
)
-vcpkg_check_features(
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
xsimd XTENSOR_USE_XSIMD
tbb XTENSOR_USE_TBB
)
diff --git a/ports/yasm/CONTROL b/ports/yasm/CONTROL new file mode 100644 index 000000000..5cb349270 --- /dev/null +++ b/ports/yasm/CONTROL @@ -0,0 +1,4 @@ +Source: yasm +Version: 1.3.0 +Homepage: https://github.com/yasm/yasm +Description: Yasm is a complete rewrite of the NASM assembler under the “new†BSD License. diff --git a/ports/yasm/portfile.cmake b/ports/yasm/portfile.cmake new file mode 100644 index 000000000..5dfe2a51c --- /dev/null +++ b/ports/yasm/portfile.cmake @@ -0,0 +1,51 @@ +include(vcpkg_common_functions) + +if (NOT VCPKG_TARGET_IS_WINDOWS) + message(FATAL_ERROR "${PORT} only supports windows") +elseif (TRIPLET_SYSTEM_ARCH MATCHES "arm") + message(FATAL_ERROR "ARM is currently not supported.") +elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) + message(FATAL_ERROR "Error: UWP builds are currently not supported.") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO yasm/yasm + REF v1.3.0 + SHA512 f5053e2012e0d2ce88cc1cc06e3bdb501054aed5d1f78fae40bb3e676fe2eb9843d335a612d7614d99a2b9e49dca998d57f61b0b89fac8225afa4ae60ae848f1 + HEAD_REF master +) + +vcpkg_find_acquire_program(PYTHON2) +get_filename_component(PYTHON_PATH ${PYTHON2} DIRECTORY) +vcpkg_add_to_path("${PYTHON_PATH}") + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(REMOVE + ${CURRENT_PACKAGES_DIR}/debug/bin/vsyasm.exe + ${CURRENT_PACKAGES_DIR}/debug/bin/yasm.exe + ${CURRENT_PACKAGES_DIR}/debug/bin/ytasm.exe +) + +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT}) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/vsyasm.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/vsyasm.exe) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/yasm.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/yasm.exe) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/ytasm.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/ytasm.exe) + +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) + +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) + +# Handle copyright +file(COPY ${SOURCE_PATH}/COPYING ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright)
\ No newline at end of file diff --git a/ports/zeromq/CONTROL b/ports/zeromq/CONTROL index 4a638759d..d0dbe6be9 100644 --- a/ports/zeromq/CONTROL +++ b/ports/zeromq/CONTROL @@ -1,5 +1,5 @@ Source: zeromq -Version: 2019-07-09 +Version: 2019-07-09-1 Homepage: https://github.com/zeromq/libzmq 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 381bbccee..7f42cf521 100644 --- a/ports/zeromq/portfile.cmake +++ b/ports/zeromq/portfile.cmake @@ -11,7 +11,9 @@ vcpkg_from_github( string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) -vcpkg_check_features(sodium WITH_LIBSODIUM) +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + sodium WITH_LIBSODIUM +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -21,8 +23,8 @@ vcpkg_configure_cmake( -DPOLLER=select -DBUILD_STATIC=${BUILD_STATIC} -DBUILD_SHARED=${BUILD_SHARED} - -DWITH_LIBSODIUM=${WITH_LIBSODIUM} -DWITH_PERF_TOOL=OFF + ${FEATURE_OPTIONS} OPTIONS_DEBUG "-DCMAKE_PDB_OUTPUT_DIRECTORY=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" ) diff --git a/ports/zxing-cpp/0001-opencv4-compat.patch b/ports/zxing-cpp/0001-opencv4-compat.patch index 51cec5387..76ad1f4a0 100644 --- a/ports/zxing-cpp/0001-opencv4-compat.patch +++ b/ports/zxing-cpp/0001-opencv4-compat.patch @@ -1,5 +1,18 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ccb2ba9..5ade734 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,7 +1,7 @@ + cmake_minimum_required(VERSION 3.0) + + project(zxing) +- ++set(CMAKE_CXX_STANDARD 11) + option(BUILD_TESTING "Enable generation of test targets" OFF) + + set(CMAKE_LIBRARY_PATH /opt/local/lib ${CMAKE_LIBRARY_PATH}) diff --git a/opencv-cli/src/main.cpp b/opencv-cli/src/main.cpp -index 63b6fd3..430dda6 100755 +index 63b6fd3..5900c4f 100644 --- a/opencv-cli/src/main.cpp +++ b/opencv-cli/src/main.cpp @@ -135,14 +135,14 @@ int main(int argc, char** argv) { diff --git a/ports/zxing-cpp/CONTROL b/ports/zxing-cpp/CONTROL index c97ad1734..16343782d 100644 --- a/ports/zxing-cpp/CONTROL +++ b/ports/zxing-cpp/CONTROL @@ -1,4 +1,4 @@ Source: zxing-cpp -Version: 3.3.3-5 +Version: 3.3.3-6 Build-Depends: opencv Description: Barcode detection and decoding library. diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 09d77b07d..afdd9c1b3 100644 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -249,7 +249,7 @@ buildDir="$vcpkgRootDir/toolsrc/build.rel" rm -rf "$buildDir" mkdir -p "$buildDir" -(cd "$buildDir" && CXX=$CXX "$cmakeExe" .. -DCMAKE_BUILD_TYPE=Release -G "Ninja" "-DCMAKE_MAKE_PROGRAM=$ninjaExe" "-DBUILD_TESTING=OFF" "-DDEFINE_DISABLE_METRICS=$vcpkgDisableMetrics" "-DVCPKG_ALLOW_APPLE_CLANG=$vcpkgAllowAppleClang") || exit 1 +(cd "$buildDir" && CXX=$CXX "$cmakeExe" .. -DCMAKE_BUILD_TYPE=Release -G "Ninja" "-DCMAKE_MAKE_PROGRAM=$ninjaExe" "-DBUILD_TESTING=OFF" "-DVCPKG_DEVELOPMENT_WARNINGS=Off" "-DDEFINE_DISABLE_METRICS=$vcpkgDisableMetrics" "-DVCPKG_ALLOW_APPLE_CLANG=$vcpkgAllowAppleClang") || exit 1 (cd "$buildDir" && "$cmakeExe" --build .) || exit 1 rm -rf "$vcpkgRootDir/vcpkg" diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake index f657e2710..6eb0f62dd 100644 --- a/scripts/buildsystems/vcpkg.cmake +++ b/scripts/buildsystems/vcpkg.cmake @@ -38,17 +38,7 @@ else() elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017$") set(_VCPKG_TARGET_TRIPLET_ARCH x86) elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 16 2019$") - if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^[Xx]86$") - set(_VCPKG_TARGET_TRIPLET_ARCH x86) - elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^[Aa][Mm][Dd]64$") - set(_VCPKG_TARGET_TRIPLET_ARCH x64) - elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^[Aa][Rr][Mm]$") - set(_VCPKG_TARGET_TRIPLET_ARCH arm) - elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^[Aa][Rr][Mm]64$") - set(_VCPKG_TARGET_TRIPLET_ARCH arm64) - else() - - endif() + set(_VCPKG_TARGET_TRIPLET_ARCH x86) else() find_program(_VCPKG_CL cl) if(_VCPKG_CL MATCHES "amd64/cl.exe$" OR _VCPKG_CL MATCHES "x64/cl.exe$") diff --git a/scripts/cmake/vcpkg_check_features.cmake b/scripts/cmake/vcpkg_check_features.cmake index d089ac5b1..81ebc234d 100644 --- a/scripts/cmake/vcpkg_check_features.cmake +++ b/scripts/cmake/vcpkg_check_features.cmake @@ -1,112 +1,191 @@ ## # vcpkg_check_features -## -## Check if one or more features are a part of the package installation. -## +## Check if one or more features are a part of a package installation. +## ## ## Usage ## ```cmake ## vcpkg_check_features( -## <feature1> <output_variable1> -## [<feature2> <output_variable2>] -## ... +## OUT_FEATURE_OPTIONS <FEATURE_OPTIONS> +## [FEATURES +## <cuda> <WITH_CUDA> +## [<opencv> <WITH_OPENCV>] +## ...] +## [INVERTED_FEATURES +## <cuda> <IGNORE_PACKAGE_CUDA> +## [<opencv> <IGNORE_PACKAGE_OPENCV>] +## ...] ## ) ## ``` -## -## `vcpkg_check_features` accepts a list of (feature, output_variable) pairs. If a feature is specified, the corresponding output variable will be set as `ON`, or `OFF` otherwise. The syntax is similar to the `PROPERTIES` argument of `set_target_properties`. -## -## `vcpkg_check_features` will create a variable `FEATURE_OPTIONS` in the parent scope, which you can pass as a part of `OPTIONS` argument when calling functions like `vcpkg_config_cmake`: -## ```cmake -## vcpkg_config_cmake( -## SOURCE_PATH ${SOURCE_PATH} -## PREFER_NINJA -## OPTIONS -## -DBUILD_TESTING=ON -## ${FEATURE_OPTIONS} -## ) -## ``` -## +## `vcpkg_check_features()` accepts these parameters: +## +## * `OUT_FEATURE_OPTIONS`: +## An output variable, the function will clear the variable passed to `OUT_FEATURE_OPTIONS` +## and then set it to contain a list of option definitions (`-D<OPTION_NAME>=ON|OFF`). +## +## This should be set to `FEATURE_OPTIONS` by convention. +## +## * `FEATURES`: +## A list of (`FEATURE_NAME`, `OPTION_NAME`) pairs. +## For each `FEATURE_NAME` a definition is added to `OUT_FEATURE_OPTIONS` in the form of: +## +## * `-D<OPTION_NAME>=ON`, if a feature is specified for installation, +## * `-D<OPTION_NAME>=OFF`, otherwise. +## +## * `INVERTED_FEATURES`: +## A list of (`FEATURE_NAME`, `OPTION_NAME`) pairs, uses reversed logic from `FEATURES`. +## For each `FEATURE_NAME` a definition is added to `OUT_FEATURE_OPTIONS` in the form of: +## +## * `-D<OPTION_NAME>=OFF`, if a feature is specified for installation, +## * `-D<OPTION_NAME>=ON`, otherwise. +## +## ## ## Notes +## +## The `FEATURES` name parameter can be omitted if no `INVERTED_FEATURES` are used. +## +## At least one (`FEATURE_NAME`, `OPTION_NAME`) pair must be passed to the function call. +## +## Arguments passed to `FEATURES` and `INVERTED_FEATURES` are not validated to prevent duplication. +## If the same (`FEATURE_NAME`, `OPTION_NAME`) pair is passed to both lists, +## two conflicting definitions are added to `OUT_FEATURE_OPTIONS`. +## +## +## ## Examples +## +## ### Example 1: Regular features +## ## ```cmake -## vcpkg_check_features(<feature> <output_variable>) -## ``` -## can be used as a replacement of: -## ```cmake -## if(<feature> IN_LIST FEATURES) -## set(<output_variable> ON) -## else() -## set(<output_variable> OFF) -## endif() +## $ ./vcpkg install mimalloc[asm,secure] +## +## # ports/mimalloc/portfile.cmake +## vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS +## # Keyword FEATURES is optional if INVERTED_FEATURES are not used +## asm MI_SEE_ASM +## override MI_OVERRIDE +## secure MI_SECURE +## ) +## +## vcpkg_configure_cmake( +## SOURCE_PATH ${SOURCE_PATH} +## PREFER_NINJA +## OPTIONS +## # Expands to "-DMI_SEE_ASM=ON; -DMI_OVERRIDE=OFF; -DMI_SECURE=ON" +## ${FEATURE_OPTIONS} +## ) ## ``` -## -## However, if you have a feature that was checked like this before: +## +## ### Example 2: Inverted features +## ## ```cmake -## if(<feature> IN_LIST FEATURES) -## set(<output_variable> OFF) -## else() -## set(<output_variable> ON) -## endif() +## $ ./vcpkg install cpprestsdk[websockets] +## +## # ports/cpprestsdk/portfile.cmake +## vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS +## INVERTED_FEATURES # <- Keyword INVERTED_FEATURES required +## brotli CPPREST_EXCLUDE_BROTLI +## websockets CPPREST_EXCLUDE_WEBSOCKETS +## ) +## +## vcpkg_configure_cmake( +## SOURCE_PATH ${SOURCE_PATH} +## PREFER_NINJA +## OPTIONS +## # Expands to "-DCPPREST_EXCLUDE_BROTLI=ON; -DCPPREST_EXCLUDE_WEBSOCKETS=OFF" +## ${FEATURE_OPTIONS} +## ) ## ``` -## then you should not use `vcpkg_check_features` instead. [```oniguruma```](https://github.com/microsoft/vcpkg/blob/master/ports/oniguruma/portfile.cmake), for example, has a feature named `non-posix` which is checked with: +## +## ### Example 3: Set multiple options for same feature +## ## ```cmake -## if("non-posix" IN_LIST FEATURES) -## set(ENABLE_POSIX_API OFF) -## else() -## set(ENABLE_POSIX_API ON) -## endif() -## ``` -## and by replacing these code with: +## $ ./vcpkg install pcl[cuda] +## +## # ports/pcl/portfile.cmake +## vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS +## cuda WITH_CUDA +## cuda BUILD_CUDA +## cuda BUILD_GPU +## ) +## +## vcpkg_configure_cmake( +## SOURCE_PATH ${SOURCE_PATH} +## PREFER_NINJA +## OPTIONS +## # Expands to "-DWITH_CUDA=ON; -DBUILD_CUDA=ON; -DBUILD_GPU=ON" +## ${FEATURE_OPTIONS} +## ) +## ``` +## +## ### Example 4: Use regular and inverted features +## ## ```cmake -## vcpkg_check_features(non-posix ENABLE_POSIX_API) -## ``` -## is totally wrong. -## -## `vcpkg_check_features` is supposed to be called only once. Otherwise, the `FEATURE_OPTIONS` variable set by a previous call will be overwritten. -## -## ## Examples -## -## * [czmq](https://github.com/microsoft/vcpkg/blob/master/ports/czmq/portfile.cmake) -## * [xsimd](https://github.com/microsoft/vcpkg/blob/master/ports/xsimd/portfile.cmake) -## * [xtensor](https://github.com/microsoft/vcpkg/blob/master/ports/xtensor/portfile.cmake) +## $ ./vcpkg install rocksdb[tbb] +## +## # ports/rocksdb/portfile.cmake +## vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS +## FEATURES # <- Keyword FEATURES is required because INVERTED_FEATURES are being used +## tbb WITH_TBB +## INVERTED_FEATURES +## tbb ROCKSDB_IGNORE_PACKAGE_TBB +## ) +## +## vcpkg_configure_cmake( +## SOURCE_PATH ${SOURCE_PATH} +## PREFER_NINJA +## OPTIONS +## # Expands to "-DWITH_TBB=ON; -DROCKSDB_IGNORE_PACKAGE_TBB=OFF" +## ${FEATURE_OPTIONS} +## ) +## ``` +## +## ## Examples in portfiles +## +## * [cpprestsdk](https://github.com/microsoft/vcpkg/blob/master/ports/cpprestsdk/portfile.cmake) +## * [pcl](https://github.com/microsoft/vcpkg/blob/master/ports/pcl/portfile.cmake) +## * [rocksdb](https://github.com/microsoft/vcpkg/blob/master/ports/rocksdb/portfile.cmake) +## function(vcpkg_check_features) - cmake_parse_arguments(_vcf "" "" "" ${ARGN}) - - list(LENGTH ARGN _vcf_ARGC) - math(EXPR _vcf_INCORRECT_ARGN "${_vcf_ARGC} % 2") + cmake_parse_arguments(_vcf "" "OUT_FEATURE_OPTIONS" "FEATURES;INVERTED_FEATURES" ${ARGN}) - if(_vcf_INCORRECT_ARGN) - message(FATAL_ERROR "Called with incorrect number of arguments.") + if (NOT DEFINED _vcf_OUT_FEATURE_OPTIONS) + message(FATAL_ERROR "OUT_FEATURE_OPTIONS must be specified.") endif() - set(_vcf_IS_FEATURE_ARG ON) - set(_vcf_FEATURE_OPTIONS) - - # Process (feature, output_var) pairs - foreach(_vcf_ARG ${ARGN}) - if(_vcf_IS_FEATURE_ARG) - set(_vcf_FEATURE ${_vcf_ARG}) - - if(NOT ${_vcf_FEATURE} IN_LIST ALL_FEATURES) - message(FATAL_ERROR "Unknown feature: ${_vcf_FEATURE}") - endif() - - set(_vcf_IS_FEATURE_ARG OFF) - else() - set(_vcf_FEATURE_VAR ${_vcf_ARG}) + macro(_check_features _vcf_ARGUMENT _set_if _set_else) + list(LENGTH ${_vcf_ARGUMENT} FEATURES_SET_LEN) + math(EXPR _vcf_INCORRECT_ARGN "${FEATURES_SET_LEN} % 2") + if(_vcf_INCORRECT_ARGN) + message(FATAL_ERROR "Called with incorrect number of arguments.") + endif() - if(${_vcf_FEATURE} IN_LIST FEATURES) - set(${_vcf_FEATURE_VAR} ON PARENT_SCOPE) - list(APPEND _vcf_FEATURE_OPTIONS "-D${_vcf_FEATURE_VAR}=ON") + set(_vcf_IS_FEATURE_NAME_ARG ON) + foreach(_vcf_ARG ${${_vcf_ARGUMENT}}) + if(_vcf_IS_FEATURE_NAME_ARG) + set(_vcf_FEATURE_NAME ${_vcf_ARG}) + if(NOT ${_vcf_FEATURE_NAME} IN_LIST ALL_FEATURES) + message(FATAL_ERROR "Unknown feature: ${_vcf_FEATURE_NAME}") + endif() + set(_vcf_IS_FEATURE_NAME_ARG OFF) else() - set(${_vcf_FEATURE_VAR} OFF PARENT_SCOPE) - list(APPEND _vcf_FEATURE_OPTIONS "-D${_vcf_FEATURE_VAR}=OFF") + set(_vcf_FEATURE_VARIABLE ${_vcf_ARG}) + if(${_vcf_FEATURE_NAME} IN_LIST FEATURES) + list(APPEND _vcf_FEATURE_OPTIONS "-D${_vcf_FEATURE_VARIABLE}=${_set_if}") + else() + list(APPEND _vcf_FEATURE_OPTIONS "-D${_vcf_FEATURE_VARIABLE}=${_set_else}") + endif() + set(_vcf_IS_FEATURE_NAME_ARG ON) endif() + endforeach() + endmacro() - set(_vcf_IS_FEATURE_ARG ON) - endif() - endforeach() + set(_vcf_FEATURE_OPTIONS) - if(DEFINED FEATURE_OPTIONS) - message(WARNING "FEATURE_OPTIONS is already defined and will be overwritten.") + if (DEFINED _vcf_FEATURES OR DEFINED _vcf_INVERTED_FEATURES) + _check_features(_vcf_FEATURES ON OFF) + _check_features(_vcf_INVERTED_FEATURES OFF ON) + else() + # Skip arguments that correspond to OUT_FEATURE_OPTIONS and its value. + list(SUBLIST ARGN 2 -1 _vcf_ARGN) + _check_features(_vcf_ARGN ON OFF) endif() - - set(FEATURE_OPTIONS ${_vcf_FEATURE_OPTIONS} PARENT_SCOPE) + set(${_vcf_OUT_FEATURE_OPTIONS} "${_vcf_FEATURE_OPTIONS}" PARENT_SCOPE) endfunction() diff --git a/scripts/cmake/vcpkg_common_definitions.cmake b/scripts/cmake/vcpkg_common_definitions.cmake index d9b397fa1..ec444c858 100644 --- a/scripts/cmake/vcpkg_common_definitions.cmake +++ b/scripts/cmake/vcpkg_common_definitions.cmake @@ -7,7 +7,14 @@ ## VCPKG_TARGET_IS_<target> with <target> being one of the following: WINDOWS, UWP, LINUX, OSX, ANDROID, FREEBSD. only defined if <target>
## VCPKG_HOST_PATH_SEPARATOR Host specific path separator
## VCPKG_HOST_PATH_SEPARATOR_ESCAPED Escaped version of VCPKG_HOST_PATH_SEPARATOR if necessary (e.g. symbol with special meaning in cmake like ";")
+## VCPKG_TARGET_STATIC_LIBRARY_PREFIX static library prefix for target (same as CMAKE_STATIC_LIBRARY_PREFIX)
+## VCPKG_TARGET_STATIC_LIBRARY_SUFFIX static library suffix for target (same as CMAKE_STATIC_LIBRARY_SUFFIX)
+## VCPKG_TARGET_SHARED_LIBRARY_PREFIX shared library prefix for target (same as CMAKE_SHARED_LIBRARY_PREFIX)
+## VCPKG_TARGET_SHARED_LIBRARY_SUFFIX shared library suffix for target (same as CMAKE_SHARED_LIBRARY_SUFFIX)
## ```
+##
+## CMAKE_STATIC_LIBRARY_PREFIX, CMAKE_STATIC_LIBRARY_SUFFIX, CMAKE_SHARED_LIBRARY_PREFIX, CMAKE_SHARED_LIBRARY_SUFFIX are defined for the target so that
+## portfiles are able to use find_library calls to discover dependent libraries within the current triplet for ports.
##
#Helper variable to identify the Target system. VCPKG_TARGET_IS_<targetname>
@@ -33,4 +40,23 @@ if(CMAKE_HOST_WIN32) elseif(CMAKE_HOST_UNIX)
set(VCPKG_HOST_PATH_SEPARATOR ":")
set(VCPKG_HOST_PATH_SEPARATOR_ESCAPED ":")
-endif()
\ No newline at end of file +endif()
+
+#Helper variables for libraries
+if(VCPKG_TARGET_IS_WINDOWS)
+ set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".lib")
+ set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dll")
+ set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "")
+ set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "")
+else()
+ set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a")
+ set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".so")
+ set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "lib")
+ set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "lib")
+endif()
+#Setting these variables allows find_library to work in script mode and thus in portfiles!
+#This allows us scale down on hardcoded target dependent paths in portfiles
+set(CMAKE_STATIC_LIBRARY_SUFFIX ${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX})
+set(CMAKE_SHARED_LIBRARY_SUFFIX ${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX})
+set(CMAKE_STATIC_LIBRARY_PREFIX ${VCPKG_TARGET_STATIC_LIBRARY_PREFIX})
+set(CMAKE_SHARED_LIBRARY_PREFIX ${VCPKG_TARGET_SHARED_LIBRARY_PREFIX})
diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake index 37362a5a2..6c392d385 100644 --- a/scripts/cmake/vcpkg_configure_cmake.cmake +++ b/scripts/cmake/vcpkg_configure_cmake.cmake @@ -8,6 +8,7 @@ ## SOURCE_PATH <${SOURCE_PATH}> ## [PREFER_NINJA] ## [DISABLE_PARALLEL_CONFIGURE] +## [NO_CHARSET_FLAG] ## [GENERATOR <"NMake Makefiles">] ## [OPTIONS <-DUSE_THIS_IN_ALL_BUILDS=1>...] ## [OPTIONS_RELEASE <-DOPTIMIZE=1>...] @@ -28,6 +29,11 @@ ## Disables running the CMake configure step in parallel. ## This is needed for libraries which write back into their source directory during configure. ## +## ### NO_CHARSET_FLAG +## Disables passing `utf-8` as the default character set to `CMAKE_C_FLAGS` and `CMAKE_CXX_FLAGS`. +## +## This is needed for libraries that set their own source code's character set. +## ## ### GENERATOR ## Specifies the precise generator to use. ## diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake index 21464bb2e..0457cee9b 100644 --- a/scripts/get_triplet_environment.cmake +++ b/scripts/get_triplet_environment.cmake @@ -13,3 +13,4 @@ message("VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH}") message("VCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") message("VCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE}") message("VCPKG_ENV_PASSTHROUGH=${VCPKG_ENV_PASSTHROUGH}") +message("VCPKG_PUBLIC_ABI_OVERRIDE=${VCPKG_PUBLIC_ABI_OVERRIDE}") diff --git a/scripts/ports.cmake b/scripts/ports.cmake index 58510567b..86b2719d5 100644 --- a/scripts/ports.cmake +++ b/scripts/ports.cmake @@ -68,6 +68,7 @@ if(CMD MATCHES "^BUILD$") include(${CMAKE_TRIPLET_FILE}) include(${ENV_OVERRIDES_FILE} OPTIONAL) + set(TRIPLET_SYSTEM_ARCH ${VCPKG_TARGET_ARCHITECTURE}) include(${CMAKE_CURRENT_LIST_DIR}/cmake/vcpkg_common_definitions.cmake) include(${CMAKE_CURRENT_LIST_DIR}/cmake/vcpkg_common_functions.cmake) diff --git a/toolsrc/CMakeLists.txt b/toolsrc/CMakeLists.txt index 7a41874a6..3ae7cdae5 100644 --- a/toolsrc/CMakeLists.txt +++ b/toolsrc/CMakeLists.txt @@ -1,11 +1,18 @@ -cmake_minimum_required(VERSION 3.3)
+cmake_minimum_required(VERSION 3.14)
project(vcpkg C CXX)
-OPTION(BUILD_TESTING "Option for enabling testing" ON)
-OPTION(VCPKG_BUILD_BENCHMARKING "Option for enabling benchmarking" OFF)
OPTION(DEFINE_DISABLE_METRICS "Option for disabling metrics" OFF)
OPTION(VCPKG_ALLOW_APPLE_CLANG "Option for allowing apple clang" OFF)
+OPTION(VCPKG_DEVELOPMENT_WARNINGS "Option for turning on all warnings, and making them errors" ON)
+OPTION(BUILD_TESTING "Option for enabling testing" ON)
+OPTION(VCPKG_BUILD_BENCHMARKING "Option for enabling benchmarking" OFF)
+
+# for backwards compatibility with existing code
+if (WERROR)
+ set(VCPKG_DEVELOPMENT_WARNINGS On)
+endif()
+
if (DEFINE_DISABLE_METRICS)
set(DISABLE_METRICS_VALUE "1")
@@ -27,9 +34,7 @@ If you would like to try anyway, pass --allowAppleClang to bootstrap.sh.") endif()
elseif(CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang")
set(CLANG 1)
-elseif(MSVC)
- add_compile_options(/std:c++17 /FC)
-else()
+elseif(NOT MSVC)
message(FATAL_ERROR "Unknown compiler: ${CMAKE_CXX_COMPILER_ID}")
endif()
@@ -40,7 +45,7 @@ add_definitions(-DDISABLE_METRICS=${DISABLE_METRICS_VALUE}) include_directories(include)
link_libraries(Threads::Threads)
-if(CLANG)
+if(CLANG AND NOT MSVC)
include(CheckCXXSourceCompiles)
check_cxx_source_compiles("#include <iostream>
int main() { return __GLIBCXX__; }" USES_LIBSTDCXX)
@@ -53,35 +58,69 @@ endif() if(GCC OR (CLANG AND USES_LIBSTDCXX))
link_libraries(stdc++fs)
-elseif(CLANG)
+elseif(CLANG AND NOT MSVC)
link_libraries(c++fs)
endif()
-if(GCC OR CLANG)
+if(MSVC)
+ # either MSVC, or clang-cl
+ add_compile_options(-FC)
+
+ if (MSVC_VERSION GREATER 1900)
+ # Visual Studio 2017 or later
+ add_compile_options(-std:c++17 -permissive-)
+ else()
+ # Visual Studio 2015
+ add_compile_options(-std:c++latest)
+ endif()
+
+ if(VCPKG_DEVELOPMENT_WARNINGS)
+ string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+ add_compile_options(-W4 -WX)
+
+ if (CLANG)
+ add_compile_options(-Wmissing-prototypes -Wno-missing-field-initializers)
+ endif()
+ endif()
+elseif(GCC OR CLANG)
add_compile_options(-std=c++1z)
- if(WERROR)
- add_compile_options(-Wall -Wno-unknown-pragmas -Werror)
+
+ if(VCPKG_DEVELOPMENT_WARNINGS)
+ add_compile_options(-Wall -Wextra -Wpedantic -Wno-unknown-pragmas -Wno-missing-field-initializers -Werror)
+
+ # GCC and clang have different names for the same warning
+ if (GCC)
+ add_compile_options(-Wmissing-declarations)
+ elseif(CLANG)
+ add_compile_options(-Wmissing-prototypes)
+ endif()
endif()
endif()
-file(GLOB_RECURSE VCPKGLIB_SOURCES src/vcpkg/*.cpp)
+file(GLOB_RECURSE VCPKGLIB_SOURCES CONFIGURE_DEPENDS src/vcpkg/*.cpp)
add_library(vcpkglib OBJECT ${VCPKGLIB_SOURCES})
add_executable(vcpkg src/vcpkg.cpp $<TARGET_OBJECTS:vcpkglib>)
if (BUILD_TESTING)
- file(GLOB_RECURSE VCPKGTEST_SOURCES src/vcpkg-test/*.cpp)
+ file(GLOB_RECURSE VCPKGTEST_SOURCES CONFIGURE_DEPENDS src/vcpkg-test/*.cpp)
enable_testing()
add_executable(vcpkg-test
${VCPKGTEST_SOURCES}
$<TARGET_OBJECTS:vcpkglib>)
- add_test(NAME default COMMAND vcpkg-test [${TEST_NAME}])
+ add_test(NAME default COMMAND vcpkg-test)
if (VCPKG_BUILD_BENCHMARKING)
target_compile_options(vcpkg-test PRIVATE -DCATCH_CONFIG_ENABLE_BENCHMARKING)
endif()
+
+ find_program(CLANG_FORMAT clang-format)
+ if (CLANG_FORMAT)
+ file(GLOB_RECURSE VCPKG_FORMAT_SOURCES CONFIGURE_DEPENDS src/*.cpp include/pch.h include/vcpkg/*.h include/vcpkg-test/*.h)
+ add_custom_target(format COMMAND ${CLANG_FORMAT} -i -verbose ${VCPKG_FORMAT_SOURCES})
+ endif()
endif()
if(MSVC)
diff --git a/toolsrc/VERSION.txt b/toolsrc/VERSION.txt index d7d695c69..0342c24ab 100644 --- a/toolsrc/VERSION.txt +++ b/toolsrc/VERSION.txt @@ -1 +1 @@ -"2019.07.18" +"2019.07.19" diff --git a/toolsrc/include/vcpkg-test/catch.h b/toolsrc/include/catch2/catch.hpp index 303f664ff..303f664ff 100644 --- a/toolsrc/include/vcpkg-test/catch.h +++ b/toolsrc/include/catch2/catch.hpp diff --git a/toolsrc/include/vcpkg-test/util.h b/toolsrc/include/vcpkg-test/util.h index 8a458a3e5..259b0ba7e 100644 --- a/toolsrc/include/vcpkg-test/util.h +++ b/toolsrc/include/vcpkg-test/util.h @@ -1,4 +1,4 @@ -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg/pragmas.h> #include <vcpkg/base/files.h> diff --git a/toolsrc/include/vcpkg/base/chrono.h b/toolsrc/include/vcpkg/base/chrono.h index 89cd15273..118e9c382 100644 --- a/toolsrc/include/vcpkg/base/chrono.h +++ b/toolsrc/include/vcpkg/base/chrono.h @@ -56,7 +56,7 @@ namespace vcpkg::Chrono static Optional<CTime> get_current_date_time(); static Optional<CTime> parse(CStringView str); - constexpr CTime() noexcept : m_tm{0} {} + constexpr CTime() noexcept : m_tm{} {} explicit constexpr CTime(tm t) noexcept : m_tm{t} {} CTime add_hours(const int hours) const; diff --git a/toolsrc/include/vcpkg/base/graphs.h b/toolsrc/include/vcpkg/base/graphs.h index 9901a49a0..683735b1c 100644 --- a/toolsrc/include/vcpkg/base/graphs.h +++ b/toolsrc/include/vcpkg/base/graphs.h @@ -46,7 +46,7 @@ namespace vcpkg::Graphs if (!r) return; for (auto i = c.size(); i > 1; --i) { - auto j = r->random(static_cast<int>(i)); + std::size_t j = r->random(static_cast<int>(i)); if (j != i - 1) { std::swap(c[i - 1], c[j]); diff --git a/toolsrc/include/vcpkg/base/strings.h b/toolsrc/include/vcpkg/base/strings.h index dde4e9693..0f25607df 100644 --- a/toolsrc/include/vcpkg/base/strings.h +++ b/toolsrc/include/vcpkg/base/strings.h @@ -5,6 +5,7 @@ #include <vcpkg/base/stringliteral.h> #include <vcpkg/base/stringview.h> #include <vcpkg/base/view.h> +#include <vcpkg/pragmas.h> #include <vector> diff --git a/toolsrc/include/vcpkg/base/util.h b/toolsrc/include/vcpkg/base/util.h index 90c947aa9..40022a012 100644 --- a/toolsrc/include/vcpkg/base/util.h +++ b/toolsrc/include/vcpkg/base/util.h @@ -221,9 +221,8 @@ namespace vcpkg::Util } } - template<class T> - void unused(T&& param) + template<class... Ts> + void unused(const Ts&...) { - (void)param; } } diff --git a/toolsrc/include/vcpkg/binaryparagraph.h b/toolsrc/include/vcpkg/binaryparagraph.h index 7734859f7..457205384 100644 --- a/toolsrc/include/vcpkg/binaryparagraph.h +++ b/toolsrc/include/vcpkg/binaryparagraph.h @@ -4,8 +4,6 @@ #include <vcpkg/parse.h> #include <vcpkg/sourceparagraph.h> -#include <unordered_map> - namespace vcpkg { /// <summary> diff --git a/toolsrc/include/vcpkg/build.h b/toolsrc/include/vcpkg/build.h index c57cbfad3..cd1821b32 100644 --- a/toolsrc/include/vcpkg/build.h +++ b/toolsrc/include/vcpkg/build.h @@ -137,6 +137,8 @@ namespace vcpkg::Build Optional<fs::path> visual_studio_path; Optional<std::string> external_toolchain_file; Optional<ConfigurationType> build_type; + Optional<std::string> public_abi_override; + Optional<const SourceControlFileLocation&> port; std::vector<std::string> passthrough_env_vars; }; @@ -152,6 +154,7 @@ namespace vcpkg::Build CHAINLOAD_TOOLCHAIN_FILE, BUILD_TYPE, ENV_PASSTHROUGH, + PUBLIC_ABI_OVERRIDE, }; const std::unordered_map<std::string, VcpkgTripletVar> VCPKG_OPTIONS = { @@ -163,6 +166,7 @@ namespace vcpkg::Build {"VCPKG_CHAINLOAD_TOOLCHAIN_FILE", VcpkgTripletVar::CHAINLOAD_TOOLCHAIN_FILE}, {"VCPKG_BUILD_TYPE", VcpkgTripletVar::BUILD_TYPE}, {"VCPKG_ENV_PASSTHROUGH", VcpkgTripletVar::ENV_PASSTHROUGH}, + {"VCPKG_PUBLIC_ABI_OVERRIDE", VcpkgTripletVar::PUBLIC_ABI_OVERRIDE}, }; struct ExtendedBuildResult diff --git a/toolsrc/include/vcpkg/commands.h b/toolsrc/include/vcpkg/commands.h index 6a94b389a..8a502122e 100644 --- a/toolsrc/include/vcpkg/commands.h +++ b/toolsrc/include/vcpkg/commands.h @@ -56,7 +56,7 @@ namespace vcpkg::Commands namespace DependInfo { extern const CommandStructure COMMAND_STRUCTURE; - void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths); + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet); } namespace Search diff --git a/toolsrc/src/vcpkg-test/arguments.cpp b/toolsrc/src/vcpkg-test/arguments.cpp index 3fe5fa420..326b07579 100644 --- a/toolsrc/src/vcpkg-test/arguments.cpp +++ b/toolsrc/src/vcpkg-test/arguments.cpp @@ -1,4 +1,4 @@ -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg/vcpkgcmdarguments.h> diff --git a/toolsrc/src/vcpkg-test/catch.cpp b/toolsrc/src/vcpkg-test/catch.cpp index 8b5d1aa15..50331c644 100644 --- a/toolsrc/src/vcpkg-test/catch.cpp +++ b/toolsrc/src/vcpkg-test/catch.cpp @@ -1,5 +1,5 @@ #define CATCH_CONFIG_RUNNER -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg/base/system.debug.h> diff --git a/toolsrc/src/vcpkg-test/chrono.cpp b/toolsrc/src/vcpkg-test/chrono.cpp index 306217ad0..fb8a0dee9 100644 --- a/toolsrc/src/vcpkg-test/chrono.cpp +++ b/toolsrc/src/vcpkg-test/chrono.cpp @@ -1,4 +1,4 @@ -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg/base/chrono.h> diff --git a/toolsrc/src/vcpkg-test/dependencies.cpp b/toolsrc/src/vcpkg-test/dependencies.cpp index 5ed05cc07..2344bb990 100644 --- a/toolsrc/src/vcpkg-test/dependencies.cpp +++ b/toolsrc/src/vcpkg-test/dependencies.cpp @@ -1,4 +1,4 @@ -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg/sourceparagraph.h> diff --git a/toolsrc/src/vcpkg-test/files.cpp b/toolsrc/src/vcpkg-test/files.cpp index d40edb3bd..d8bc5ba74 100644 --- a/toolsrc/src/vcpkg-test/files.cpp +++ b/toolsrc/src/vcpkg-test/files.cpp @@ -1,4 +1,4 @@ -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg-test/util.h> #include <vcpkg/base/files.h> @@ -107,7 +107,7 @@ namespace CHECK_EC_ON_FILE(base, ec); } - for (int i = 0; i < width; ++i) + for (std::uint64_t i = 0; i < width; ++i) { create_directory_tree(urbg, fs, diff --git a/toolsrc/src/vcpkg-test/paragraph.cpp b/toolsrc/src/vcpkg-test/paragraph.cpp index a95879cfa..85c37851d 100644 --- a/toolsrc/src/vcpkg-test/paragraph.cpp +++ b/toolsrc/src/vcpkg-test/paragraph.cpp @@ -1,4 +1,4 @@ -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg-test/util.h> #include <vcpkg/base/strings.h> diff --git a/toolsrc/src/vcpkg-test/plan.cpp b/toolsrc/src/vcpkg-test/plan.cpp index 049ef2066..e354b7551 100644 --- a/toolsrc/src/vcpkg-test/plan.cpp +++ b/toolsrc/src/vcpkg-test/plan.cpp @@ -1,4 +1,4 @@ -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg-test/util.h> #include <vcpkg/dependencies.h> diff --git a/toolsrc/src/vcpkg-test/specifier.cpp b/toolsrc/src/vcpkg-test/specifier.cpp index 330a96d78..33df8ba83 100644 --- a/toolsrc/src/vcpkg-test/specifier.cpp +++ b/toolsrc/src/vcpkg-test/specifier.cpp @@ -1,4 +1,4 @@ -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg/base/util.h> #include <vcpkg/packagespec.h> @@ -131,4 +131,4 @@ TEST_CASE ("specifier parsing", "[specifier]") REQUIRE(str == L"abc -x86-windows"); } #endif -}; +} diff --git a/toolsrc/src/vcpkg-test/statusparagraphs.cpp b/toolsrc/src/vcpkg-test/statusparagraphs.cpp index c0833e8ba..88b499118 100644 --- a/toolsrc/src/vcpkg-test/statusparagraphs.cpp +++ b/toolsrc/src/vcpkg-test/statusparagraphs.cpp @@ -1,4 +1,4 @@ -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg-test/util.h> #include <vcpkg/base/util.h> diff --git a/toolsrc/src/vcpkg-test/strings.cpp b/toolsrc/src/vcpkg-test/strings.cpp index 6b744eee6..d58d1b172 100644 --- a/toolsrc/src/vcpkg-test/strings.cpp +++ b/toolsrc/src/vcpkg-test/strings.cpp @@ -1,4 +1,4 @@ -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg/base/strings.h> diff --git a/toolsrc/src/vcpkg-test/supports.cpp b/toolsrc/src/vcpkg-test/supports.cpp index 8bd386da0..f4d8dc65a 100644 --- a/toolsrc/src/vcpkg-test/supports.cpp +++ b/toolsrc/src/vcpkg-test/supports.cpp @@ -1,4 +1,4 @@ -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg/sourceparagraph.h> diff --git a/toolsrc/src/vcpkg-test/update.cpp b/toolsrc/src/vcpkg-test/update.cpp index 70b2f04c1..6f1a87d23 100644 --- a/toolsrc/src/vcpkg-test/update.cpp +++ b/toolsrc/src/vcpkg-test/update.cpp @@ -1,4 +1,4 @@ -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg-test/util.h> #include <vcpkg/base/sortedvector.h> diff --git a/toolsrc/src/vcpkg-test/util.cpp b/toolsrc/src/vcpkg-test/util.cpp index a2343c21b..daa21567d 100644 --- a/toolsrc/src/vcpkg-test/util.cpp +++ b/toolsrc/src/vcpkg-test/util.cpp @@ -1,8 +1,9 @@ -#include <vcpkg-test/catch.h> +#include <catch2/catch.hpp> #include <vcpkg-test/util.h> #include <vcpkg/base/checks.h> #include <vcpkg/base/files.h> +#include <vcpkg/base/util.h> #include <vcpkg/statusparagraph.h> // used to get the implementation specific compiler flags (i.e., __cpp_lib_filesystem) @@ -153,7 +154,7 @@ namespace vcpkg::Test ec.assign(errno, std::system_category()); } #else - static_cast<void>(ec); + Util::unused(target, file, ec); vcpkg::Checks::exit_with_message(VCPKG_LINE_INFO, no_filesystem_message); #endif } @@ -175,7 +176,7 @@ namespace vcpkg::Test #elif FILESYSTEM_SYMLINK == FILESYSTEM_SYMLINK_UNIX ::vcpkg::Test::create_symlink(target, file, ec); #else - static_cast<void>(ec); + Util::unused(target, file, ec); vcpkg::Checks::exit_with_message(VCPKG_LINE_INFO, no_filesystem_message); #endif } diff --git a/toolsrc/src/vcpkg.cpp b/toolsrc/src/vcpkg.cpp index 3fdbd0d3e..9cd0ddf19 100644 --- a/toolsrc/src/vcpkg.cpp +++ b/toolsrc/src/vcpkg.cpp @@ -53,7 +53,7 @@ static constexpr int SURVEY_INTERVAL_IN_HOURS = 24 * 30 * 6; // Initial survey appears after 10 days. Therefore, subtract 24 hours/day * 10 days static constexpr int SURVEY_INITIAL_OFFSET_IN_HOURS = SURVEY_INTERVAL_IN_HOURS - 24 * 10; -void invalid_command(const std::string& cmd) +static void invalid_command(const std::string& cmd) { System::print2(System::Color::error, "invalid command: ", cmd, '\n'); Help::print_usage(); @@ -285,6 +285,8 @@ static std::string trim_path_from_command_line(const std::string& full_command_l #endif #if defined(_WIN32) +// note: this prevents a false positive for -Wmissing-prototypes on clang-cl +int wmain(int, const wchar_t* const*); int wmain(const int argc, const wchar_t* const* const argv) #else int main(const int argc, const char* const* const argv) diff --git a/toolsrc/src/vcpkg/base/checks.cpp b/toolsrc/src/vcpkg/base/checks.cpp index 0266ad683..c7584258a 100644 --- a/toolsrc/src/vcpkg/base/checks.cpp +++ b/toolsrc/src/vcpkg/base/checks.cpp @@ -27,9 +27,8 @@ namespace vcpkg #if defined(_WIN32) ::TerminateProcess(::GetCurrentProcess(), exit_code); -#else - std::exit(exit_code); #endif + std::exit(exit_code); } void Checks::unreachable(const LineInfo& line_info) diff --git a/toolsrc/src/vcpkg/base/hash.cpp b/toolsrc/src/vcpkg/base/hash.cpp index e9a7fa2ef..62a01ed17 100644 --- a/toolsrc/src/vcpkg/base/hash.cpp +++ b/toolsrc/src/vcpkg/base/hash.cpp @@ -1,5 +1,7 @@ #include "pch.h" +#include <vcpkg/base/hash.h> + #include <vcpkg/base/checks.h> #include <vcpkg/base/strings.h> #include <vcpkg/base/system.process.h> diff --git a/toolsrc/src/vcpkg/base/system.cpp b/toolsrc/src/vcpkg/base/system.cpp index 3d5c60088..d9c6349be 100644 --- a/toolsrc/src/vcpkg/base/system.cpp +++ b/toolsrc/src/vcpkg/base/system.cpp @@ -5,6 +5,7 @@ #include <vcpkg/base/system.debug.h> #include <vcpkg/base/system.h> #include <vcpkg/base/system.process.h> +#include <vcpkg/base/util.h> #include <ctime> @@ -381,6 +382,8 @@ namespace vcpkg "CreateProcessW() returned ", exit_code, " after ", static_cast<int>(timer.microseconds()), " us\n"); return static_cast<int>(exit_code); #else + // TODO: this should create a clean environment on Linux/macOS + Util::unused(extra_env, prepend_to_path); Debug::print("system(", cmd_line, ")\n"); fflush(nullptr); int rc = system(cmd_line.c_str()); @@ -549,10 +552,7 @@ namespace vcpkg return Strings::to_utf8(ret); } #else - Optional<std::string> System::get_registry_string(void* base_hkey, StringView sub_key, StringView valuename) - { - return nullopt; - } + Optional<std::string> System::get_registry_string(void*, StringView, StringView) { return nullopt; } #endif static const Optional<fs::path>& get_program_files() diff --git a/toolsrc/src/vcpkg/base/system.print.cpp b/toolsrc/src/vcpkg/base/system.print.cpp index c7c9981a7..fc8e4184c 100644 --- a/toolsrc/src/vcpkg/base/system.print.cpp +++ b/toolsrc/src/vcpkg/base/system.print.cpp @@ -1,6 +1,7 @@ #include "pch.h" #include <vcpkg/base/system.print.h> +#include <vcpkg/base/util.h> namespace vcpkg::System { @@ -21,6 +22,9 @@ namespace vcpkg::System System::print2(message); SetConsoleTextAttribute(console_handle, original_color); #else + // TODO: add color handling code + // it should probably use VT-220 codes + Util::unused(c); System::print2(message); #endif } diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index b809db0bc..2114b7415 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -9,6 +9,7 @@ #include <vcpkg/base/system.debug.h>
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/system.process.h>
+#include <vcpkg/base/util.h>
#include <vcpkg/build.h>
#include <vcpkg/commands.h>
@@ -183,7 +184,7 @@ namespace vcpkg::Build static const std::string LIBRARY_LINKAGE = "LibraryLinkage";
}
- CStringView to_vcvarsall_target(const std::string& cmake_system_name)
+ static CStringView to_vcvarsall_target(const std::string& cmake_system_name)
{
if (cmake_system_name.empty()) return "";
if (cmake_system_name == "Windows") return "";
@@ -192,7 +193,7 @@ namespace vcpkg::Build Checks::exit_with_message(VCPKG_LINE_INFO, "Unsupported vcvarsall target %s", cmake_system_name);
}
- CStringView to_vcvarsall_toolchain(const std::string& target_architecture, const Toolset& toolset)
+ static CStringView to_vcvarsall_toolchain(const std::string& target_architecture, const Toolset& toolset)
{
auto maybe_target_arch = System::to_cpu_architecture(target_architecture);
Checks::check_exit(
@@ -216,7 +217,7 @@ namespace vcpkg::Build }));
}
- std::unordered_map<std::string, std::string> make_env_passthrough(const PreBuildInfo& pre_build_info)
+ static auto make_env_passthrough(const PreBuildInfo& pre_build_info) -> std::unordered_map<std::string, std::string>
{
std::unordered_map<std::string, std::string> env;
@@ -273,6 +274,7 @@ namespace vcpkg::Build {
bpgh.version = *p_ver;
}
+
bcf->core_paragraph = std::move(bpgh);
return bcf;
}
@@ -549,7 +551,8 @@ namespace vcpkg::Build const size_t error_count =
PostBuildLint::perform_all_checks(spec, paths, pre_build_info, build_info, config.port_dir);
- auto bcf = create_binary_control_file(*config.scf.core_paragraph, triplet, build_info, abi_tag);
+ std::unique_ptr<BinaryControlFile> bcf =
+ create_binary_control_file(*config.scf.core_paragraph, triplet, build_info, abi_tag);
if (error_count != 0)
{
@@ -601,18 +604,15 @@ namespace vcpkg::Build const PreBuildInfo& pre_build_info,
Span<const AbiEntry> dependency_abis)
{
- if (config.build_package_options.binary_caching == BinaryCaching::NO) return nullopt;
-
auto& fs = paths.get_filesystem();
const Triplet& triplet = config.triplet;
const std::string& name = config.scf.core_paragraph->name;
std::vector<AbiEntry> abi_tag_entries(dependency_abis.begin(), dependency_abis.end());
-#if defined(_WIN32)
- abi_tag_entries.emplace_back(AbiEntry{"powershell", paths.get_tool_version("powershell-core")});
-#endif
- abi_tag_entries.emplace_back(AbiEntry{"cmake", paths.get_tool_version(Tools::CMAKE)});
+ // Sorted here as the order of dependency_abis is the only
+ // non-deterministicly ordered set of AbiEntries
+ Util::sort(abi_tag_entries);
// If there is an unusually large number of files in the port then
// something suspicious is going on. Rather than hash all of them
@@ -620,13 +620,15 @@ namespace vcpkg::Build const int max_port_file_count = 100;
// the order of recursive_directory_iterator is undefined so save the names to sort
- std::vector<fs::path> port_files;
+ std::vector<std::pair<std::string, std::string>> hashes_files;
for (auto& port_file : fs::stdfs::recursive_directory_iterator(config.port_dir))
{
if (fs::is_regular_file(fs.status(VCPKG_LINE_INFO, port_file)))
{
- port_files.push_back(port_file);
- if (port_files.size() > max_port_file_count)
+ hashes_files.emplace_back(vcpkg::Hash::get_file_hash(fs, port_file, "SHA1"),
+ port_file.path().filename().u8string());
+
+ if (hashes_files.size() > max_port_file_count)
{
abi_tag_entries.emplace_back(AbiEntry{"no_hash_max_portfile", ""});
break;
@@ -634,25 +636,24 @@ namespace vcpkg::Build }
}
- if (port_files.size() <= max_port_file_count)
+ if (hashes_files.size() <= max_port_file_count)
{
- std::sort(port_files.begin(), port_files.end());
+ Util::sort(hashes_files);
- int counter = 0;
- for (auto& port_file : port_files)
+ for (auto& hash_file : hashes_files)
{
- // When vcpkg takes a dependency on C++17 it can use fs::relative,
- // which will give a stable ordering and better names in the key entry.
- // this is not available in the filesystem TS so instead number the files for the key.
- std::string key = Strings::format("file_%03d", counter++);
- if (Debug::g_debugging)
- {
- System::print2("[DEBUG] mapping ", key, " from ", port_file.u8string(), "\n");
- }
- abi_tag_entries.emplace_back(AbiEntry{key, vcpkg::Hash::get_file_hash(fs, port_file, "SHA1")});
+ // We've already sorted by hash so it's safe to write down the
+ // filename, which will be consistent across machines.
+ abi_tag_entries.emplace_back(AbiEntry{std::move(hash_file.second), std::move(hash_file.first)});
}
}
+ abi_tag_entries.emplace_back(AbiEntry{"cmake", paths.get_tool_version(Tools::CMAKE)});
+
+#if defined(_WIN32)
+ abi_tag_entries.emplace_back(AbiEntry{"powershell", paths.get_tool_version("powershell-core")});
+#endif
+
abi_tag_entries.emplace_back(AbiEntry{
"vcpkg_fixup_cmake_targets",
vcpkg::Hash::get_file_hash(fs, paths.scripts / "cmake" / "vcpkg_fixup_cmake_targets.cmake", "SHA1")});
@@ -662,11 +663,16 @@ namespace vcpkg::Build const std::string features = Strings::join(";", config.feature_list);
abi_tag_entries.emplace_back(AbiEntry{"features", features});
+ if (pre_build_info.public_abi_override)
+ {
+ abi_tag_entries.emplace_back(AbiEntry{
+ "public_abi_override",
+ Hash::get_string_hash(pre_build_info.public_abi_override.value_or_exit(VCPKG_LINE_INFO), "SHA1")});
+ }
+
if (config.build_package_options.use_head_version == UseHeadVersion::YES)
abi_tag_entries.emplace_back(AbiEntry{"head", ""});
- Util::sort(abi_tag_entries);
-
const std::string full_abi_info =
Strings::join("", abi_tag_entries, [](const AbiEntry& p) { return p.key + " " + p.value + "\n"; });
@@ -694,7 +700,7 @@ namespace vcpkg::Build }
System::print2(
- "Warning: binary caching disabled because abi keys are missing values:\n",
+ "Warning: abi keys are missing values:\n",
Strings::join("", abi_tag_entries_missing, [](const AbiEntry& e) { return " " + e.key + "\n"; }),
"\n");
@@ -792,17 +798,24 @@ namespace vcpkg::Build const auto pre_build_info = PreBuildInfo::from_triplet_file(paths, triplet, config.scfl);
auto maybe_abi_tag_and_file = compute_abi_tag(paths, config, pre_build_info, dependency_abis);
+ if (!maybe_abi_tag_and_file)
+ {
+ return do_build_package_and_clean_buildtrees(
+ paths, pre_build_info, spec, pre_build_info.public_abi_override.value_or(AbiTagAndFile{}.tag), config);
+ }
+ std::error_code ec;
const auto abi_tag_and_file = maybe_abi_tag_and_file.get();
-
- if (config.build_package_options.binary_caching == BinaryCaching::YES && abi_tag_and_file)
+ const fs::path archives_root_dir = paths.root / "archives";
+ const std::string archive_name = abi_tag_and_file->tag + ".zip";
+ const fs::path archive_subpath = fs::u8path(abi_tag_and_file->tag.substr(0, 2)) / archive_name;
+ const fs::path archive_path = archives_root_dir / archive_subpath;
+ const fs::path archive_tombstone_path = archives_root_dir / "fail" / archive_subpath;
+ const fs::path abi_package_dir = paths.package_dir(spec) / "share" / spec.name();
+ const fs::path abi_file_in_package = paths.package_dir(spec) / "share" / spec.name() / "vcpkg_abi_info.txt";
+
+ if (config.build_package_options.binary_caching == BinaryCaching::YES)
{
- const fs::path archives_root_dir = paths.root / "archives";
- const std::string archive_name = abi_tag_and_file->tag + ".zip";
- const fs::path archive_subpath = fs::u8path(abi_tag_and_file->tag.substr(0, 2)) / archive_name;
- const fs::path archive_path = archives_root_dir / archive_subpath;
- const fs::path archive_tombstone_path = archives_root_dir / "fail" / archive_subpath;
-
if (fs.exists(archive_path))
{
System::print2("Using cached binary package: ", archive_path.u8string(), "\n");
@@ -835,70 +848,67 @@ namespace vcpkg::Build }
System::printf("Could not locate cached archive: %s\n", archive_path.u8string());
+ }
- ExtendedBuildResult result = do_build_package_and_clean_buildtrees(
- paths, pre_build_info, spec, maybe_abi_tag_and_file.value_or(AbiTagAndFile{}).tag, config);
+ fs.create_directories(abi_package_dir, ec);
+ Checks::check_exit(VCPKG_LINE_INFO, !ec, "Coud not create directory %s", abi_package_dir.u8string());
+ fs.copy_file(abi_tag_and_file->tag_file, abi_file_in_package, fs::stdfs::copy_options::none, ec);
+ Checks::check_exit(VCPKG_LINE_INFO, !ec, "Could not copy into file: %s", abi_file_in_package.u8string());
- std::error_code ec;
- fs.create_directories(paths.package_dir(spec) / "share" / spec.name(), ec);
- auto abi_file_in_package = paths.package_dir(spec) / "share" / spec.name() / "vcpkg_abi_info.txt";
- fs.copy_file(abi_tag_and_file->tag_file, abi_file_in_package, fs::stdfs::copy_options::none, ec);
- Checks::check_exit(VCPKG_LINE_INFO, !ec, "Could not copy into file: %s", abi_file_in_package.u8string());
+ ExtendedBuildResult result = do_build_package_and_clean_buildtrees(
+ paths, pre_build_info, spec, pre_build_info.public_abi_override.value_or(abi_tag_and_file->tag), config);
- if (result.code == BuildResult::SUCCEEDED)
- {
- const auto tmp_archive_path = paths.buildtrees / spec.name() / (spec.triplet().to_string() + ".zip");
+ if (config.build_package_options.binary_caching == BinaryCaching::YES && result.code == BuildResult::SUCCEEDED)
+ {
+ const auto tmp_archive_path = paths.buildtrees / spec.name() / (spec.triplet().to_string() + ".zip");
- compress_archive(paths, spec, tmp_archive_path);
+ compress_archive(paths, spec, tmp_archive_path);
- fs.create_directories(archive_path.parent_path(), ec);
- fs.rename_or_copy(tmp_archive_path, archive_path, ".tmp", ec);
- if (ec)
- {
- System::printf(System::Color::warning,
- "Failed to store binary cache %s: %s\n",
- archive_path.u8string(),
- ec.message());
- }
- else
- System::printf("Stored binary cache: %s\n", archive_path.u8string());
+ fs.create_directories(archive_path.parent_path(), ec);
+ fs.rename_or_copy(tmp_archive_path, archive_path, ".tmp", ec);
+ if (ec)
+ {
+ System::printf(System::Color::warning,
+ "Failed to store binary cache %s: %s\n",
+ archive_path.u8string(),
+ ec.message());
}
- else if (result.code == BuildResult::BUILD_FAILED || result.code == BuildResult::POST_BUILD_CHECKS_FAILED)
+ else
+ System::printf("Stored binary cache: %s\n", archive_path.u8string());
+ }
+ else if (config.build_package_options.binary_caching == BinaryCaching::YES &&
+ (result.code == BuildResult::BUILD_FAILED || result.code == BuildResult::POST_BUILD_CHECKS_FAILED))
+ {
+ if (!fs.exists(archive_tombstone_path))
{
- if (!fs.exists(archive_tombstone_path))
- {
- // Build failed, store all failure logs in the tombstone.
- const auto tmp_log_path = paths.buildtrees / spec.name() / "tmp_failure_logs";
- const auto tmp_log_path_destination = tmp_log_path / spec.name();
- const auto tmp_failure_zip = paths.buildtrees / spec.name() / "failure_logs.zip";
- fs.create_directories(tmp_log_path_destination, ec);
+ // Build failed, store all failure logs in the tombstone.
+ const auto tmp_log_path = paths.buildtrees / spec.name() / "tmp_failure_logs";
+ const auto tmp_log_path_destination = tmp_log_path / spec.name();
+ const auto tmp_failure_zip = paths.buildtrees / spec.name() / "failure_logs.zip";
+ fs.create_directories(tmp_log_path_destination, ec);
- for (auto& log_file : fs::stdfs::directory_iterator(paths.buildtrees / spec.name()))
+ for (auto& log_file : fs::stdfs::directory_iterator(paths.buildtrees / spec.name()))
+ {
+ if (log_file.path().extension() == ".log")
{
- if (log_file.path().extension() == ".log")
- {
- fs.copy_file(log_file.path(),
- tmp_log_path_destination / log_file.path().filename(),
- fs::stdfs::copy_options::none,
- ec);
- }
+ fs.copy_file(log_file.path(),
+ tmp_log_path_destination / log_file.path().filename(),
+ fs::stdfs::copy_options::none,
+ ec);
}
+ }
- compress_directory(paths, tmp_log_path, paths.buildtrees / spec.name() / "failure_logs.zip");
+ compress_directory(paths, tmp_log_path, paths.buildtrees / spec.name() / "failure_logs.zip");
- fs.create_directories(archive_tombstone_path.parent_path(), ec);
- fs.rename_or_copy(tmp_failure_zip, archive_tombstone_path, ".tmp", ec);
+ fs.create_directories(archive_tombstone_path.parent_path(), ec);
+ fs.rename_or_copy(tmp_failure_zip, archive_tombstone_path, ".tmp", ec);
- // clean up temporary directory
- fs.remove_all(tmp_log_path, VCPKG_LINE_INFO);
- }
+ // clean up temporary directory
+ fs.remove_all(tmp_log_path, VCPKG_LINE_INFO);
}
-
- return result;
}
- return do_build_package_and_clean_buildtrees(
- paths, pre_build_info, spec, maybe_abi_tag_and_file.value_or(AbiTagAndFile{}).tag, config);
+ return result;
}
const std::string& to_string(const BuildResult build_result)
@@ -1030,6 +1040,8 @@ namespace vcpkg::Build PreBuildInfo pre_build_info;
+ pre_build_info.port = port;
+
const auto e = lines.cend();
auto cur = std::find(lines.cbegin(), e, FLAG_GUID);
if (cur != e) ++cur;
@@ -1086,6 +1098,10 @@ namespace vcpkg::Build case VcpkgTripletVar::ENV_PASSTHROUGH:
pre_build_info.passthrough_env_vars = Strings::split(variable_value, ";");
break;
+ case VcpkgTripletVar::PUBLIC_ABI_OVERRIDE:
+ pre_build_info.public_abi_override =
+ variable_value.empty() ? nullopt : Optional<std::string>{variable_value};
+ break;
}
}
else
diff --git a/toolsrc/src/vcpkg/commands.autocomplete.cpp b/toolsrc/src/vcpkg/commands.autocomplete.cpp index 3cf4dd98f..8449b7096 100644 --- a/toolsrc/src/vcpkg/commands.autocomplete.cpp +++ b/toolsrc/src/vcpkg/commands.autocomplete.cpp @@ -19,8 +19,8 @@ namespace vcpkg::Commands::Autocomplete Checks::exit_success(line_info); } - std::vector<std::string> combine_port_with_triplets(const std::string& port, - const std::vector<std::string>& triplets) + static std::vector<std::string> combine_port_with_triplets(const std::string& port, + const std::vector<std::string>& triplets) { return Util::fmap(triplets, [&](const std::string& triplet) { return Strings::format("%s:%s", port, triplet); }); diff --git a/toolsrc/src/vcpkg/commands.cpp b/toolsrc/src/vcpkg/commands.cpp index 54e9346ba..3ac568979 100644 --- a/toolsrc/src/vcpkg/commands.cpp +++ b/toolsrc/src/vcpkg/commands.cpp @@ -24,6 +24,7 @@ namespace vcpkg::Commands {"env", &Env::perform_and_exit}, {"build-external", &BuildExternal::perform_and_exit}, {"export", &Export::perform_and_exit}, + {"depend-info", &DependInfo::perform_and_exit}, }; return t; } @@ -38,7 +39,6 @@ namespace vcpkg::Commands {"integrate", &Integrate::perform_and_exit}, {"owns", &Owns::perform_and_exit}, {"update", &Update::perform_and_exit}, - {"depend-info", &DependInfo::perform_and_exit}, {"edit", &Edit::perform_and_exit}, {"create", &Create::perform_and_exit}, {"import", &Import::perform_and_exit}, diff --git a/toolsrc/src/vcpkg/commands.dependinfo.cpp b/toolsrc/src/vcpkg/commands.dependinfo.cpp index 7c04a5a2f..faf207980 100644 --- a/toolsrc/src/vcpkg/commands.dependinfo.cpp +++ b/toolsrc/src/vcpkg/commands.dependinfo.cpp @@ -4,248 +4,326 @@ #include <vcpkg/base/system.print.h>
#include <vcpkg/base/util.h>
#include <vcpkg/commands.h>
+#include <vcpkg/dependencies.h>
#include <vcpkg/help.h>
+#include <vcpkg/input.h>
+#include <vcpkg/install.h>
#include <vcpkg/packagespec.h>
-#include <vcpkg/paragraphs.h>
-
-#include <memory>
-#include <vcpkg/dependencies.h>
#include <vector>
+using vcpkg::Dependencies::AnyAction;
+using vcpkg::Dependencies::create_feature_install_plan;
+using vcpkg::Dependencies::InstallPlanAction;
using vcpkg::Dependencies::PathsPortFileProvider;
namespace vcpkg::Commands::DependInfo
{
- constexpr StringLiteral OPTION_DOT = "--dot";
- constexpr StringLiteral OPTION_DGML = "--dgml";
- constexpr StringLiteral OPTION_NO_RECURSE = "--no-recurse";
-
- constexpr std::array<CommandSwitch, 3> DEPEND_SWITCHES = {{
- {OPTION_DOT, "Creates graph on basis of dot"},
- {OPTION_DGML, "Creates graph on basis of dgml"},
- {OPTION_NO_RECURSE,
- "Computes only immediate dependencies of packages explicitly specified on the command-line"},
- }};
-
- const CommandStructure COMMAND_STRUCTURE = {
- Help::create_example_string(R"###(depend-info [pat])###"),
- 0,
- SIZE_MAX,
- {DEPEND_SWITCHES, {}},
- nullptr,
- };
-
- std::string replace_dashes_with_underscore(const std::string& input)
+ namespace
{
- std::string output = input;
- std::replace(output.begin(), output.end(), '-', '_');
- return output;
- }
-
- std::string create_dot_as_string(const std::vector<const SourceControlFile*>& source_control_files)
- {
- int empty_node_count = 0;
+ constexpr StringLiteral OPTION_DOT = "--dot";
+ constexpr StringLiteral OPTION_DGML = "--dgml";
+ constexpr StringLiteral OPTION_SHOW_DEPTH = "--show-depth";
+ constexpr StringLiteral OPTION_MAX_RECURSE = "--max-recurse";
+ constexpr StringLiteral OPTION_SORT = "--sort";
+
+ constexpr int NO_RECURSE_LIMIT_VALUE = -1;
+
+ constexpr std::array<CommandSwitch, 3> DEPEND_SWITCHES = {
+ {{OPTION_DOT, "Creates graph on basis of dot"},
+ {OPTION_DGML, "Creates graph on basis of dgml"},
+ {OPTION_SHOW_DEPTH, "Show recursion depth in output"}}};
+
+ constexpr std::array<CommandSetting, 2> DEPEND_SETTINGS = {
+ {{OPTION_MAX_RECURSE, "Set max recursion depth, a value of -1 indicates no limit"},
+ {OPTION_SORT,
+ "Set sort order for the list of dependencies, accepted values are: lexicographical, topological "
+ "(default), "
+ "reverse"}}};
+
+ struct PackageDependInfo
+ {
+ std::string package;
+ int depth;
+ std::set<std::string> features;
+ std::vector<std::string> dependencies;
+ };
- std::string s;
- s.append("digraph G{ rankdir=LR; edge [minlen=3]; overlap=false;");
+ enum SortMode
+ {
+ Lexicographical = 0,
+ Topological,
+ ReverseTopological,
+ Default = Topological
+ };
- for (const auto& source_control_file : source_control_files)
+ int get_max_depth(const ParsedArguments& options)
{
- const SourceParagraph& source_paragraph = *source_control_file->core_paragraph;
- if (source_paragraph.depends.empty())
+ auto iter = options.settings.find(OPTION_MAX_RECURSE);
+ if (iter != options.settings.end())
{
- empty_node_count++;
- continue;
+ std::string value = iter->second;
+ try
+ {
+ return std::stoi(value);
+ }
+ catch (std::exception&)
+ {
+ Checks::exit_with_message(VCPKG_LINE_INFO, "Value of --max-depth must be an integer");
+ }
}
+ // No --max-depth set, default to no limit.
+ return NO_RECURSE_LIMIT_VALUE;
+ }
+
+ SortMode get_sort_mode(const ParsedArguments& options)
+ {
+ constexpr StringLiteral OPTION_SORT_LEXICOGRAPHICAL = "lexicographical";
+ constexpr StringLiteral OPTION_SORT_TOPOLOGICAL = "topological";
+ constexpr StringLiteral OPTION_SORT_REVERSE = "reverse";
+
+ static const std::map<std::string, SortMode> sortModesMap{{OPTION_SORT_LEXICOGRAPHICAL, Lexicographical},
+ {OPTION_SORT_TOPOLOGICAL, Topological},
+ {OPTION_SORT_REVERSE, ReverseTopological}};
- const std::string name = replace_dashes_with_underscore(source_paragraph.name);
- s.append(Strings::format("%s;", name));
- for (const Dependency& d : source_paragraph.depends)
+ auto iter = options.settings.find(OPTION_SORT);
+ if (iter != options.settings.end())
{
- const std::string dependency_name = replace_dashes_with_underscore(d.depend.name);
- s.append(Strings::format("%s -> %s;", name, dependency_name));
+ const std::string value = Strings::ascii_to_lowercase(std::string{iter->second});
+ auto it = sortModesMap.find(value);
+ if (it != sortModesMap.end())
+ {
+ return it->second;
+ }
+ Checks::exit_with_message(VCPKG_LINE_INFO,
+ "Value of --sort must be one of `%s`, `%s`, or `%s`",
+ OPTION_SORT_LEXICOGRAPHICAL,
+ OPTION_SORT_TOPOLOGICAL,
+ OPTION_SORT_REVERSE);
}
+ return Default;
}
- s.append(Strings::format("empty [label=\"%d singletons...\"]; }", empty_node_count));
- return s;
- }
-
- std::string create_dgml_as_string(const std::vector<const SourceControlFile*>& source_control_files)
- {
- std::string s;
- s.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
- s.append("<DirectedGraph xmlns=\"http://schemas.microsoft.com/vs/2009/dgml\">");
-
- std::string nodes, links;
- for (const auto& source_control_file : source_control_files)
+ std::string create_dot_as_string(const std::vector<PackageDependInfo>& depend_info)
{
- const SourceParagraph& source_paragraph = *source_control_file->core_paragraph;
- const std::string name = source_paragraph.name;
- nodes.append(Strings::format("<Node Id=\"%s\" />", name));
+ int empty_node_count = 0;
- // Iterate over dependencies.
- for (const Dependency& d : source_paragraph.depends)
- {
- if (d.qualifier.empty())
- links.append(Strings::format("<Link Source=\"%s\" Target=\"%s\" />", name, d.depend.name));
- else
- links.append(Strings::format(
- "<Link Source=\"%s\" Target=\"%s\" StrokeDashArray=\"4\" />", name, d.depend.name));
- }
+ std::string s;
+ s.append("digraph G{ rankdir=LR; edge [minlen=3]; overlap=false;");
- // Iterate over feature dependencies.
- const std::vector<std::unique_ptr<FeatureParagraph>>& feature_paragraphs =
- source_control_file->feature_paragraphs;
- for (const auto& feature_paragraph : feature_paragraphs)
+ for (const auto& package : depend_info)
{
- for (const Dependency& d : feature_paragraph->depends)
+ if (package.dependencies.empty())
+ {
+ empty_node_count++;
+ continue;
+ }
+
+ const std::string name = Strings::replace_all(std::string{package.package}, "-", "_");
+ s.append(Strings::format("%s;", name));
+ for (const auto& d : package.dependencies)
{
- links.append(Strings::format(
- "<Link Source=\"%s\" Target=\"%s\" StrokeDashArray=\"4\" />", name, d.depend.name));
+ const std::string dependency_name = Strings::replace_all(std::string{d}, "-", "_");
+ s.append(Strings::format("%s -> %s;", name, dependency_name));
}
}
+
+ s.append(Strings::format("empty [label=\"%d singletons...\"]; }", empty_node_count));
+ return s;
}
- s.append(Strings::format("<Nodes>%s</Nodes>", nodes));
+ std::string create_dgml_as_string(const std::vector<PackageDependInfo>& depend_info)
+ {
+ std::string s;
+ s.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
+ s.append("<DirectedGraph xmlns=\"http://schemas.microsoft.com/vs/2009/dgml\">");
+
+ std::string nodes, links;
+ for (const auto& package : depend_info)
+ {
+ const std::string name = package.package;
+ nodes.append(Strings::format("<Node Id=\"%s\" />", name));
- s.append(Strings::format("<Links>%s</Links>", links));
+ // Iterate over dependencies.
+ for (const auto& d : package.dependencies)
+ {
+ links.append(Strings::format("<Link Source=\"%s\" Target=\"%s\" />", name, d));
+ }
+ }
- s.append("</DirectedGraph>");
- return s;
- }
+ s.append(Strings::format("<Nodes>%s</Nodes>", nodes));
- std::string create_graph_as_string(const std::unordered_set<std::string>& switches,
- const std::vector<const SourceControlFile*>& source_control_files)
- {
- if (Util::Sets::contains(switches, OPTION_DOT))
- {
- return create_dot_as_string(source_control_files);
- }
- else if (Util::Sets::contains(switches, OPTION_DGML))
- {
- return create_dgml_as_string(source_control_files);
+ s.append(Strings::format("<Links>%s</Links>", links));
+
+ s.append("</DirectedGraph>");
+ return s;
}
- return "";
- }
- void build_dependencies_list(std::set<std::string>& packages_to_keep,
- const std::string& requested_package,
- const std::vector<const SourceControlFile*>& source_control_files,
- const std::unordered_set<std::string>& switches)
- {
- auto maybe_requested_spec = ParsedSpecifier::from_string(requested_package);
- // TODO: move this check to the top-level invocation of this function since
- // argument `requested_package` shall always be valid in inner-level invocation.
- if (!maybe_requested_spec.has_value())
+ std::string create_graph_as_string(const std::unordered_set<std::string>& switches,
+ const std::vector<PackageDependInfo>& depend_info)
{
- System::print2(System::Color::warning,
- "'",
- requested_package,
- "' is not a valid package specifier: ",
- vcpkg::to_string(maybe_requested_spec.error()),
- "\n");
- return;
+ if (Util::Sets::contains(switches, OPTION_DOT))
+ {
+ return create_dot_as_string(depend_info);
+ }
+ else if (Util::Sets::contains(switches, OPTION_DGML))
+ {
+ return create_dgml_as_string(depend_info);
+ }
+ return "";
}
- auto requested_spec = maybe_requested_spec.get();
-
- const auto source_control_file =
- Util::find_if(source_control_files, [&requested_spec](const auto& source_control_file) {
- return source_control_file->core_paragraph->name == requested_spec->name;
- });
- if (source_control_file != source_control_files.end())
+ void assign_depth_to_dependencies(const std::string& package,
+ const int depth,
+ const int max_depth,
+ std::map<std::string, PackageDependInfo>& dependencies_map)
{
- const auto new_package = packages_to_keep.insert(requested_spec->name).second;
+ auto iter = dependencies_map.find(package);
+ Checks::check_exit(
+ VCPKG_LINE_INFO, iter != dependencies_map.end(), "Package not found in dependency graph");
- if (new_package && !Util::Sets::contains(switches, OPTION_NO_RECURSE))
- {
- for (const auto& dependency : (*source_control_file)->core_paragraph->depends)
- {
- build_dependencies_list(packages_to_keep, dependency.depend.name, source_control_files, switches);
- }
+ PackageDependInfo& info = iter->second;
- // Collect features with `*` considered
- std::set<const FeatureParagraph*> collected_features;
- for (const auto& requested_feature_name : requested_spec->features)
- {
- if (requested_feature_name == "*")
- {
- for (auto&& feature_paragraph : (*source_control_file)->feature_paragraphs)
- {
- collected_features.insert(std::addressof(Util::as_const(*feature_paragraph)));
- }
- continue;
- }
- auto maybe_feature = (*source_control_file)->find_feature(requested_feature_name);
- if (auto&& feature_paragraph = maybe_feature.get())
- {
- collected_features.insert(std::addressof(Util::as_const(*feature_paragraph)));
- }
- else
- {
- System::print2(System::Color::warning,
- "dependency '",
- requested_feature_name,
- "' of package '",
- requested_spec->name,
- "' does not exist\n");
- continue;
- }
- }
- for (auto feature_paragraph : collected_features)
+ if (depth > info.depth)
+ {
+ info.depth = depth;
+ if (depth < max_depth || max_depth == NO_RECURSE_LIMIT_VALUE)
{
- for (const auto& dependency : feature_paragraph->depends)
+ for (auto&& dependency : info.dependencies)
{
- build_dependencies_list(
- packages_to_keep, dependency.depend.name, source_control_files, switches);
+ assign_depth_to_dependencies(dependency, depth + 1, max_depth, dependencies_map);
}
}
}
}
- else
+
+ std::vector<PackageDependInfo> extract_depend_info(const std::vector<const InstallPlanAction*>& install_actions,
+ const int max_depth)
{
- System::print2(System::Color::warning, "package '", requested_package, "' does not exist\n");
+ std::map<std::string, PackageDependInfo> package_dependencies;
+ for (const InstallPlanAction* pia : install_actions)
+ {
+ const InstallPlanAction& install_action = *pia;
+
+ const std::vector<std::string> dependencies = Util::fmap(
+ install_action.computed_dependencies, [](const PackageSpec& spec) { return spec.name(); });
+
+ std::set<std::string> features{install_action.feature_list};
+ features.erase("core");
+
+ std::string port_name = install_action.spec.name();
+
+ PackageDependInfo info{port_name, -1, features, dependencies};
+ package_dependencies.emplace(port_name, std::move(info));
+ }
+
+ const InstallPlanAction& init = *install_actions.back();
+ assign_depth_to_dependencies(init.spec.name(), 0, max_depth, package_dependencies);
+
+ std::vector<PackageDependInfo> out =
+ Util::fmap(package_dependencies, [](auto&& kvpair) -> PackageDependInfo { return kvpair.second; });
+ Util::erase_remove_if(out, [](auto&& info) { return info.depth < 0; });
+ return out;
}
}
- void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths)
+ const CommandStructure COMMAND_STRUCTURE = {
+ Help::create_example_string("depend-info sqlite3"),
+ 0,
+ SIZE_MAX,
+ {DEPEND_SWITCHES, DEPEND_SETTINGS},
+ nullptr,
+ };
+
+ void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet)
{
const ParsedArguments options = args.parse_arguments(COMMAND_STRUCTURE);
+ const int max_depth = get_max_depth(options);
+ const SortMode sort_mode = get_sort_mode(options);
+ const bool show_depth = Util::Sets::contains(options.switches, OPTION_SHOW_DEPTH);
- // TODO: Optimize implementation, current implementation needs to load all ports from disk which is too slow.
- PathsPortFileProvider provider(paths, args.overlay_ports.get());
- auto source_control_files =
- Util::fmap(provider.load_all_control_files(),
- [](auto&& scfl) -> const SourceControlFile* { return scfl->source_control_file.get(); });
+ const std::vector<FullPackageSpec> specs = Util::fmap(args.command_arguments, [&](auto&& arg) {
+ return Input::check_and_get_full_package_spec(
+ std::string{arg}, default_triplet, COMMAND_STRUCTURE.example_text);
+ });
- if (args.command_arguments.size() >= 1)
+ for (auto&& spec : specs)
{
- std::set<std::string> packages_to_keep;
- for (const auto& requested_package : args.command_arguments)
+ Input::check_triplet(spec.package_spec.triplet(), paths);
+ }
+
+ PathsPortFileProvider provider(paths, args.overlay_ports.get());
+
+ // By passing an empty status_db, we should get a plan containing all dependencies.
+ // All actions in the plan should be install actions, as there's no installed packages to remove.
+ StatusParagraphs status_db;
+ std::vector<AnyAction> action_plan =
+ create_feature_install_plan(provider, FullPackageSpec::to_feature_specs(specs), status_db);
+ std::vector<const InstallPlanAction*> install_actions = Util::fmap(action_plan, [&](const AnyAction& action) {
+ if (auto install_action = action.install_action.get())
{
- build_dependencies_list(packages_to_keep, requested_package, source_control_files, options.switches);
+ return install_action;
}
+ Checks::exit_with_message(VCPKG_LINE_INFO, "Only install actions should exist in the plan");
+ });
- Util::erase_remove_if(source_control_files, [&packages_to_keep](const auto& source_control_file) {
- return !Util::Sets::contains(packages_to_keep, source_control_file->core_paragraph->name);
- });
- }
+ std::vector<PackageDependInfo> depend_info = extract_depend_info(install_actions, max_depth);
if (Util::Sets::contains(options.switches, OPTION_DOT) || Util::Sets::contains(options.switches, OPTION_DGML))
{
- const std::string graph_as_string = create_graph_as_string(options.switches, source_control_files);
+ const std::vector<const SourceControlFile*> source_control_files =
+ Util::fmap(install_actions, [](const InstallPlanAction* install_action) {
+ const SourceControlFileLocation& scfl =
+ install_action->source_control_file_location.value_or_exit(VCPKG_LINE_INFO);
+ return const_cast<const SourceControlFile*>(scfl.source_control_file.get());
+ });
+
+ const std::string graph_as_string = create_graph_as_string(options.switches, depend_info);
System::print2(graph_as_string, '\n');
Checks::exit_success(VCPKG_LINE_INFO);
}
- for (auto&& source_control_file : source_control_files)
+ // TODO: Improve this code
+ auto lex = [](const PackageDependInfo& lhs, const PackageDependInfo& rhs) -> bool {
+ return lhs.package < rhs.package;
+ };
+ auto topo = [](const PackageDependInfo& lhs, const PackageDependInfo& rhs) -> bool {
+ return lhs.depth > rhs.depth;
+ };
+ auto reverse = [](const PackageDependInfo& lhs, const PackageDependInfo& rhs) -> bool {
+ return lhs.depth < rhs.depth;
+ };
+
+ switch (sort_mode)
{
- const SourceParagraph& source_paragraph = *source_control_file->core_paragraph.get();
- const auto s = Strings::join(", ", source_paragraph.depends, [](const Dependency& d) { return d.name(); });
- System::print2(source_paragraph.name, ": ", s, "\n");
+ case SortMode::Lexicographical: std::sort(std::begin(depend_info), std::end(depend_info), lex); break;
+ case SortMode::ReverseTopological:
+ std::sort(std::begin(depend_info), std::end(depend_info), reverse);
+ break;
+ case SortMode::Topological: std::sort(std::begin(depend_info), std::end(depend_info), topo); break;
+ default: Checks::unreachable(VCPKG_LINE_INFO);
}
+ for (auto&& info : depend_info)
+ {
+ if (info.depth >= 0)
+ {
+ std::string features = Strings::join(", ", info.features);
+ const std::string dependencies = Strings::join(", ", info.dependencies);
+
+ if (show_depth)
+ {
+ System::print2(System::Color::error, "(", info.depth, ") ");
+ }
+ System::print2(System::Color::success, info.package);
+ if (!features.empty())
+ {
+ System::print2("[");
+ System::print2(System::Color::warning, features);
+ System::print2("]");
+ }
+ System::print2(": ", dependencies, "\n");
+ }
+ }
Checks::exit_success(VCPKG_LINE_INFO);
}
}
diff --git a/toolsrc/src/vcpkg/commands.edit.cpp b/toolsrc/src/vcpkg/commands.edit.cpp index f2f0b1569..6e98f5818 100644 --- a/toolsrc/src/vcpkg/commands.edit.cpp +++ b/toolsrc/src/vcpkg/commands.edit.cpp @@ -9,11 +9,11 @@ namespace vcpkg::Commands::Edit { +#if defined(_WIN32) static std::vector<fs::path> find_from_registry() { std::vector<fs::path> output; -#if defined(_WIN32) struct RegKey { HKEY root; @@ -42,9 +42,9 @@ namespace vcpkg::Commands::Edit output.push_back(install_path / "Code.exe"); } } -#endif return output; } +#endif static constexpr StringLiteral OPTION_BUILDTREES = "--buildtrees"; diff --git a/toolsrc/src/vcpkg/commands.exportifw.cpp b/toolsrc/src/vcpkg/commands.exportifw.cpp index 3d963a297..bc75069cd 100644 --- a/toolsrc/src/vcpkg/commands.exportifw.cpp +++ b/toolsrc/src/vcpkg/commands.exportifw.cpp @@ -13,86 +13,94 @@ namespace vcpkg::Export::IFW using Dependencies::ExportPlanType; using Install::InstallDir; - static std::string create_release_date() + namespace { - const tm date_time = Chrono::get_current_date_time_local(); + std::string create_release_date() + { + const tm date_time = Chrono::get_current_date_time_local(); - // Format is: YYYY-mm-dd - // 10 characters + 1 null terminating character will be written for a total of 11 chars - char mbstr[11]; - const size_t bytes_written = std::strftime(mbstr, sizeof(mbstr), "%Y-%m-%d", &date_time); - Checks::check_exit(VCPKG_LINE_INFO, - bytes_written == 10, - "Expected 10 bytes to be written, but %u were written", - bytes_written); - const std::string date_time_as_string(mbstr); - return date_time_as_string; - } + // Format is: YYYY-mm-dd + // 10 characters + 1 null terminating character will be written for a total of 11 chars + char mbstr[11]; + const size_t bytes_written = std::strftime(mbstr, sizeof(mbstr), "%Y-%m-%d", &date_time); + Checks::check_exit(VCPKG_LINE_INFO, + bytes_written == 10, + "Expected 10 bytes to be written, but %u were written", + bytes_written); + const std::string date_time_as_string(mbstr); + return date_time_as_string; + } - std::string safe_rich_from_plain_text(const std::string& text) - { - // match standalone ampersand, no HTML number or name - std::regex standalone_ampersand(R"###(&(?!(#[0-9]+|\w+);))###"); + std::string safe_rich_from_plain_text(const std::string& text) + { + // match standalone ampersand, no HTML number or name + std::regex standalone_ampersand(R"###(&(?!(#[0-9]+|\w+);))###"); - return std::regex_replace(text, standalone_ampersand, "&"); - } + return std::regex_replace(text, standalone_ampersand, "&"); + } - fs::path get_packages_dir_path(const std::string& export_id, const Options& ifw_options, const VcpkgPaths& paths) - { - return ifw_options.maybe_packages_dir_path.has_value() - ? fs::path(ifw_options.maybe_packages_dir_path.value_or_exit(VCPKG_LINE_INFO)) - : paths.root / (export_id + "-ifw-packages"); - } + fs::path get_packages_dir_path(const std::string& export_id, + const Options& ifw_options, + const VcpkgPaths& paths) + { + return ifw_options.maybe_packages_dir_path.has_value() + ? fs::path(ifw_options.maybe_packages_dir_path.value_or_exit(VCPKG_LINE_INFO)) + : paths.root / (export_id + "-ifw-packages"); + } - fs::path get_repository_dir_path(const std::string& export_id, const Options& ifw_options, const VcpkgPaths& paths) - { - return ifw_options.maybe_repository_dir_path.has_value() - ? fs::path(ifw_options.maybe_repository_dir_path.value_or_exit(VCPKG_LINE_INFO)) - : paths.root / (export_id + "-ifw-repository"); - } + fs::path get_repository_dir_path(const std::string& export_id, + const Options& ifw_options, + const VcpkgPaths& paths) + { + return ifw_options.maybe_repository_dir_path.has_value() + ? fs::path(ifw_options.maybe_repository_dir_path.value_or_exit(VCPKG_LINE_INFO)) + : paths.root / (export_id + "-ifw-repository"); + } - fs::path get_config_file_path(const std::string& export_id, const Options& ifw_options, const VcpkgPaths& paths) - { - return ifw_options.maybe_config_file_path.has_value() - ? fs::path(ifw_options.maybe_config_file_path.value_or_exit(VCPKG_LINE_INFO)) - : paths.root / (export_id + "-ifw-configuration.xml"); - } + fs::path get_config_file_path(const std::string& export_id, const Options& ifw_options, const VcpkgPaths& paths) + { + return ifw_options.maybe_config_file_path.has_value() + ? fs::path(ifw_options.maybe_config_file_path.value_or_exit(VCPKG_LINE_INFO)) + : paths.root / (export_id + "-ifw-configuration.xml"); + } - fs::path get_installer_file_path(const std::string& export_id, const Options& ifw_options, const VcpkgPaths& paths) - { - return ifw_options.maybe_installer_file_path.has_value() - ? fs::path(ifw_options.maybe_installer_file_path.value_or_exit(VCPKG_LINE_INFO)) - : paths.root / (export_id + "-ifw-installer.exe"); - } + fs::path get_installer_file_path(const std::string& export_id, + const Options& ifw_options, + const VcpkgPaths& paths) + { + return ifw_options.maybe_installer_file_path.has_value() + ? fs::path(ifw_options.maybe_installer_file_path.value_or_exit(VCPKG_LINE_INFO)) + : paths.root / (export_id + "-ifw-installer.exe"); + } - fs::path export_real_package(const fs::path& ifw_packages_dir_path, - const ExportPlanAction& action, - Files::Filesystem& fs) - { - std::error_code ec; + fs::path export_real_package(const fs::path& ifw_packages_dir_path, + const ExportPlanAction& action, + Files::Filesystem& fs) + { + std::error_code ec; - const BinaryParagraph& binary_paragraph = action.core_paragraph().value_or_exit(VCPKG_LINE_INFO); + const BinaryParagraph& binary_paragraph = action.core_paragraph().value_or_exit(VCPKG_LINE_INFO); - // Prepare meta dir - const fs::path package_xml_file_path = - ifw_packages_dir_path / - Strings::format("packages.%s.%s", action.spec.name(), action.spec.triplet().canonical_name()) / "meta" / - "package.xml"; - const fs::path package_xml_dir_path = package_xml_file_path.parent_path(); - fs.create_directories(package_xml_dir_path, ec); - Checks::check_exit(VCPKG_LINE_INFO, - !ec, - "Could not create directory for package file %s", - package_xml_file_path.generic_u8string()); + // Prepare meta dir + const fs::path package_xml_file_path = + ifw_packages_dir_path / + Strings::format("packages.%s.%s", action.spec.name(), action.spec.triplet().canonical_name()) / "meta" / + "package.xml"; + const fs::path package_xml_dir_path = package_xml_file_path.parent_path(); + fs.create_directories(package_xml_dir_path, ec); + Checks::check_exit(VCPKG_LINE_INFO, + !ec, + "Could not create directory for package file %s", + package_xml_file_path.generic_u8string()); - auto deps = Strings::join( - ",", binary_paragraph.depends, [](const std::string& dep) { return "packages." + dep + ":"; }); + auto deps = Strings::join( + ",", binary_paragraph.depends, [](const std::string& dep) { return "packages." + dep + ":"; }); - if (!deps.empty()) deps = "\n <Dependencies>" + deps + "</Dependencies>"; + if (!deps.empty()) deps = "\n <Dependencies>" + deps + "</Dependencies>"; - fs.write_contents(package_xml_file_path, - Strings::format( - R"###(<?xml version="1.0"?> + fs.write_contents(package_xml_file_path, + Strings::format( + R"###(<?xml version="1.0"?> <Package> <DisplayName>%s</DisplayName> <Version>%s</Version> @@ -101,111 +109,89 @@ namespace vcpkg::Export::IFW <Virtual>true</Virtual> </Package> )###", - action.spec.to_string(), - binary_paragraph.version, - create_release_date(), - action.spec.name(), - action.spec.triplet().canonical_name(), - deps), - VCPKG_LINE_INFO); - - // Return dir path for export package data - return ifw_packages_dir_path / - Strings::format("packages.%s.%s", action.spec.name(), action.spec.triplet().canonical_name()) / "data" / - "installed"; - } - - void export_unique_packages(const fs::path& raw_exported_dir_path, - std::map<std::string, const ExportPlanAction*> unique_packages, - Files::Filesystem& fs) - { - std::error_code ec; - - // packages + action.spec.to_string(), + binary_paragraph.version, + create_release_date(), + action.spec.name(), + action.spec.triplet().canonical_name(), + deps), + VCPKG_LINE_INFO); - fs::path package_xml_file_path = raw_exported_dir_path / "packages" / "meta" / "package.xml"; - fs::path package_xml_dir_path = package_xml_file_path.parent_path(); - fs.create_directories(package_xml_dir_path, ec); - Checks::check_exit(VCPKG_LINE_INFO, - !ec, - "Could not create directory for package file %s", - package_xml_file_path.generic_u8string()); - fs.write_contents(package_xml_file_path, - Strings::format( - R"###(<?xml version="1.0"?> -<Package> - <DisplayName>Packages</DisplayName> - <Version>1.0.0</Version> - <ReleaseDate>%s</ReleaseDate> -</Package> -)###", - create_release_date()), - VCPKG_LINE_INFO); + // Return dir path for export package data + return ifw_packages_dir_path / + Strings::format("packages.%s.%s", action.spec.name(), action.spec.triplet().canonical_name()) / + "data" / "installed"; + } - for (const auto& unique_package : unique_packages) + void export_unique_packages(const fs::path& raw_exported_dir_path, + std::map<std::string, const ExportPlanAction*> unique_packages, + Files::Filesystem& fs) { - const ExportPlanAction& action = *(unique_package.second); - const BinaryParagraph& binary_paragraph = action.core_paragraph().value_or_exit(VCPKG_LINE_INFO); + std::error_code ec; + + // packages - package_xml_file_path = - raw_exported_dir_path / Strings::format("packages.%s", unique_package.first) / "meta" / "package.xml"; - package_xml_dir_path = package_xml_file_path.parent_path(); + fs::path package_xml_file_path = raw_exported_dir_path / "packages" / "meta" / "package.xml"; + fs::path package_xml_dir_path = package_xml_file_path.parent_path(); fs.create_directories(package_xml_dir_path, ec); Checks::check_exit(VCPKG_LINE_INFO, !ec, "Could not create directory for package file %s", package_xml_file_path.generic_u8string()); - fs.write_contents(package_xml_file_path, Strings::format( R"###(<?xml version="1.0"?> <Package> - <DisplayName>%s</DisplayName> - <Description>%s</Description> - <Version>%s</Version> + <DisplayName>Packages</DisplayName> + <Version>1.0.0</Version> <ReleaseDate>%s</ReleaseDate> </Package> )###", - action.spec.name(), - safe_rich_from_plain_text(binary_paragraph.description), - binary_paragraph.version, create_release_date()), VCPKG_LINE_INFO); - } - } - - void export_unique_triplets(const fs::path& raw_exported_dir_path, - std::set<std::string> unique_triplets, - Files::Filesystem& fs) - { - std::error_code ec; - - // triplets - fs::path package_xml_file_path = raw_exported_dir_path / "triplets" / "meta" / "package.xml"; - fs::path package_xml_dir_path = package_xml_file_path.parent_path(); - fs.create_directories(package_xml_dir_path, ec); - Checks::check_exit(VCPKG_LINE_INFO, - !ec, - "Could not create directory for package file %s", - package_xml_file_path.generic_u8string()); - fs.write_contents(package_xml_file_path, - Strings::format( - R"###(<?xml version="1.0"?> + for (const auto& unique_package : unique_packages) + { + const ExportPlanAction& action = *(unique_package.second); + const BinaryParagraph& binary_paragraph = action.core_paragraph().value_or_exit(VCPKG_LINE_INFO); + + package_xml_file_path = raw_exported_dir_path / Strings::format("packages.%s", unique_package.first) / + "meta" / "package.xml"; + package_xml_dir_path = package_xml_file_path.parent_path(); + fs.create_directories(package_xml_dir_path, ec); + Checks::check_exit(VCPKG_LINE_INFO, + !ec, + "Could not create directory for package file %s", + package_xml_file_path.generic_u8string()); + + fs.write_contents(package_xml_file_path, + Strings::format( + R"###(<?xml version="1.0"?> <Package> - <DisplayName>Triplets</DisplayName> - <Version>1.0.0</Version> + <DisplayName>%s</DisplayName> + <Description>%s</Description> + <Version>%s</Version> <ReleaseDate>%s</ReleaseDate> </Package> )###", - create_release_date()), - VCPKG_LINE_INFO); + action.spec.name(), + safe_rich_from_plain_text(binary_paragraph.description), + binary_paragraph.version, + create_release_date()), + VCPKG_LINE_INFO); + } + } - for (const std::string& triplet : unique_triplets) + void export_unique_triplets(const fs::path& raw_exported_dir_path, + std::set<std::string> unique_triplets, + Files::Filesystem& fs) { - package_xml_file_path = - raw_exported_dir_path / Strings::format("triplets.%s", triplet) / "meta" / "package.xml"; - package_xml_dir_path = package_xml_file_path.parent_path(); + std::error_code ec; + + // triplets + + fs::path package_xml_file_path = raw_exported_dir_path / "triplets" / "meta" / "package.xml"; + fs::path package_xml_dir_path = package_xml_file_path.parent_path(); fs.create_directories(package_xml_dir_path, ec); Checks::check_exit(VCPKG_LINE_INFO, !ec, @@ -215,73 +201,95 @@ namespace vcpkg::Export::IFW Strings::format( R"###(<?xml version="1.0"?> <Package> - <DisplayName>%s</DisplayName> + <DisplayName>Triplets</DisplayName> <Version>1.0.0</Version> <ReleaseDate>%s</ReleaseDate> </Package> )###", - triplet, create_release_date()), VCPKG_LINE_INFO); + + for (const std::string& triplet : unique_triplets) + { + package_xml_file_path = + raw_exported_dir_path / Strings::format("triplets.%s", triplet) / "meta" / "package.xml"; + package_xml_dir_path = package_xml_file_path.parent_path(); + fs.create_directories(package_xml_dir_path, ec); + Checks::check_exit(VCPKG_LINE_INFO, + !ec, + "Could not create directory for package file %s", + package_xml_file_path.generic_u8string()); + fs.write_contents(package_xml_file_path, + Strings::format( + R"###(<?xml version="1.0"?> +<Package> + <DisplayName>%s</DisplayName> + <Version>1.0.0</Version> + <ReleaseDate>%s</ReleaseDate> +</Package> +)###", + triplet, + create_release_date()), + VCPKG_LINE_INFO); + } } - } - void export_integration(const fs::path& raw_exported_dir_path, Files::Filesystem& fs) - { - std::error_code ec; + void export_integration(const fs::path& raw_exported_dir_path, Files::Filesystem& fs) + { + std::error_code ec; - // integration - fs::path package_xml_file_path = raw_exported_dir_path / "integration" / "meta" / "package.xml"; - fs::path package_xml_dir_path = package_xml_file_path.parent_path(); - fs.create_directories(package_xml_dir_path, ec); - Checks::check_exit(VCPKG_LINE_INFO, - !ec, - "Could not create directory for package file %s", - package_xml_file_path.generic_u8string()); + // integration + fs::path package_xml_file_path = raw_exported_dir_path / "integration" / "meta" / "package.xml"; + fs::path package_xml_dir_path = package_xml_file_path.parent_path(); + fs.create_directories(package_xml_dir_path, ec); + Checks::check_exit(VCPKG_LINE_INFO, + !ec, + "Could not create directory for package file %s", + package_xml_file_path.generic_u8string()); - fs.write_contents(package_xml_file_path, - Strings::format( - R"###(<?xml version="1.0"?> + fs.write_contents(package_xml_file_path, + Strings::format( + R"###(<?xml version="1.0"?> <Package> <DisplayName>Integration</DisplayName> <Version>1.0.0</Version> <ReleaseDate>%s</ReleaseDate> </Package> )###", - create_release_date()), - VCPKG_LINE_INFO); - } + create_release_date()), + VCPKG_LINE_INFO); + } - void export_config(const std::string& export_id, const Options& ifw_options, const VcpkgPaths& paths) - { - std::error_code ec; - Files::Filesystem& fs = paths.get_filesystem(); + void export_config(const std::string& export_id, const Options& ifw_options, const VcpkgPaths& paths) + { + std::error_code ec; + Files::Filesystem& fs = paths.get_filesystem(); - const fs::path config_xml_file_path = get_config_file_path(export_id, ifw_options, paths); + const fs::path config_xml_file_path = get_config_file_path(export_id, ifw_options, paths); - fs::path config_xml_dir_path = config_xml_file_path.parent_path(); - fs.create_directories(config_xml_dir_path, ec); - Checks::check_exit(VCPKG_LINE_INFO, - !ec, - "Could not create directory for configuration file %s", - config_xml_file_path.generic_u8string()); + fs::path config_xml_dir_path = config_xml_file_path.parent_path(); + fs.create_directories(config_xml_dir_path, ec); + Checks::check_exit(VCPKG_LINE_INFO, + !ec, + "Could not create directory for configuration file %s", + config_xml_file_path.generic_u8string()); - std::string formatted_repo_url; - std::string ifw_repo_url = ifw_options.maybe_repository_url.value_or(""); - if (!ifw_repo_url.empty()) - { - formatted_repo_url = Strings::format(R"###( + std::string formatted_repo_url; + std::string ifw_repo_url = ifw_options.maybe_repository_url.value_or(""); + if (!ifw_repo_url.empty()) + { + formatted_repo_url = Strings::format(R"###( <RemoteRepositories> <Repository> <Url>%s</Url> </Repository> </RemoteRepositories>)###", - ifw_repo_url); - } + ifw_repo_url); + } - fs.write_contents(config_xml_file_path, - Strings::format( - R"###(<?xml version="1.0"?> + fs.write_contents(config_xml_file_path, + Strings::format( + R"###(<?xml version="1.0"?> <Installer> <Name>vcpkg</Name> <Version>1.0.0</Version> @@ -289,38 +297,38 @@ namespace vcpkg::Export::IFW <TargetDir>@RootDir@/src/vcpkg</TargetDir>%s </Installer> )###", - formatted_repo_url), - VCPKG_LINE_INFO); - } + formatted_repo_url), + VCPKG_LINE_INFO); + } - void export_maintenance_tool(const fs::path& ifw_packages_dir_path, const VcpkgPaths& paths) - { - System::print2("Exporting maintenance tool...\n"); + void export_maintenance_tool(const fs::path& ifw_packages_dir_path, const VcpkgPaths& paths) + { + System::print2("Exporting maintenance tool...\n"); - std::error_code ec; - Files::Filesystem& fs = paths.get_filesystem(); + std::error_code ec; + Files::Filesystem& fs = paths.get_filesystem(); - const fs::path& installerbase_exe = paths.get_tool_exe(Tools::IFW_INSTALLER_BASE); - fs::path tempmaintenancetool = ifw_packages_dir_path / "maintenance" / "data" / "tempmaintenancetool.exe"; - fs.create_directories(tempmaintenancetool.parent_path(), ec); - Checks::check_exit(VCPKG_LINE_INFO, - !ec, - "Could not create directory for package file %s", - tempmaintenancetool.generic_u8string()); - fs.copy_file(installerbase_exe, tempmaintenancetool, fs::copy_options::overwrite_existing, ec); - Checks::check_exit( - VCPKG_LINE_INFO, !ec, "Could not write package file %s", tempmaintenancetool.generic_u8string()); + const fs::path& installerbase_exe = paths.get_tool_exe(Tools::IFW_INSTALLER_BASE); + fs::path tempmaintenancetool = ifw_packages_dir_path / "maintenance" / "data" / "tempmaintenancetool.exe"; + fs.create_directories(tempmaintenancetool.parent_path(), ec); + Checks::check_exit(VCPKG_LINE_INFO, + !ec, + "Could not create directory for package file %s", + tempmaintenancetool.generic_u8string()); + fs.copy_file(installerbase_exe, tempmaintenancetool, fs::copy_options::overwrite_existing, ec); + Checks::check_exit( + VCPKG_LINE_INFO, !ec, "Could not write package file %s", tempmaintenancetool.generic_u8string()); - fs::path package_xml_file_path = ifw_packages_dir_path / "maintenance" / "meta" / "package.xml"; - fs::path package_xml_dir_path = package_xml_file_path.parent_path(); - fs.create_directories(package_xml_dir_path, ec); - Checks::check_exit(VCPKG_LINE_INFO, - !ec, - "Could not create directory for package file %s", - package_xml_file_path.generic_u8string()); - fs.write_contents(package_xml_file_path, - Strings::format( - R"###(<?xml version="1.0"?> + fs::path package_xml_file_path = ifw_packages_dir_path / "maintenance" / "meta" / "package.xml"; + fs::path package_xml_dir_path = package_xml_file_path.parent_path(); + fs.create_directories(package_xml_dir_path, ec); + Checks::check_exit(VCPKG_LINE_INFO, + !ec, + "Could not create directory for package file %s", + package_xml_file_path.generic_u8string()); + fs.write_contents(package_xml_file_path, + Strings::format( + R"###(<?xml version="1.0"?> <Package> <DisplayName>Maintenance Tool</DisplayName> <Description>Maintenance Tool</Description> @@ -332,82 +340,84 @@ namespace vcpkg::Export::IFW <ForcedInstallation>true</ForcedInstallation> </Package> )###", - create_release_date()), - VCPKG_LINE_INFO); - const fs::path script_source = paths.root / "scripts" / "ifw" / "maintenance.qs"; - const fs::path script_destination = ifw_packages_dir_path / "maintenance" / "meta" / "maintenance.qs"; - fs.copy_file(script_source, script_destination, fs::copy_options::overwrite_existing, ec); - Checks::check_exit( - VCPKG_LINE_INFO, !ec, "Could not write package file %s", script_destination.generic_u8string()); + create_release_date()), + VCPKG_LINE_INFO); + const fs::path script_source = paths.root / "scripts" / "ifw" / "maintenance.qs"; + const fs::path script_destination = ifw_packages_dir_path / "maintenance" / "meta" / "maintenance.qs"; + fs.copy_file(script_source, script_destination, fs::copy_options::overwrite_existing, ec); + Checks::check_exit( + VCPKG_LINE_INFO, !ec, "Could not write package file %s", script_destination.generic_u8string()); - System::print2("Exporting maintenance tool... done\n"); - } + System::print2("Exporting maintenance tool... done\n"); + } - void do_repository(const std::string& export_id, const Options& ifw_options, const VcpkgPaths& paths) - { - const fs::path& repogen_exe = paths.get_tool_exe(Tools::IFW_REPOGEN); - const fs::path packages_dir = get_packages_dir_path(export_id, ifw_options, paths); - const fs::path repository_dir = get_repository_dir_path(export_id, ifw_options, paths); + void do_repository(const std::string& export_id, const Options& ifw_options, const VcpkgPaths& paths) + { + const fs::path& repogen_exe = paths.get_tool_exe(Tools::IFW_REPOGEN); + const fs::path packages_dir = get_packages_dir_path(export_id, ifw_options, paths); + const fs::path repository_dir = get_repository_dir_path(export_id, ifw_options, paths); - System::print2("Generating repository ", repository_dir.generic_u8string(), "...\n"); + System::print2("Generating repository ", repository_dir.generic_u8string(), "...\n"); - std::error_code ec; - fs::path failure_point; - Files::Filesystem& fs = paths.get_filesystem(); + std::error_code ec; + fs::path failure_point; + Files::Filesystem& fs = paths.get_filesystem(); - fs.remove_all(repository_dir, ec, failure_point); - Checks::check_exit(VCPKG_LINE_INFO, - !ec, - "Could not remove outdated repository directory %s due to file %s", - repository_dir.generic_u8string(), - failure_point.string()); + fs.remove_all(repository_dir, ec, failure_point); + Checks::check_exit(VCPKG_LINE_INFO, + !ec, + "Could not remove outdated repository directory %s due to file %s", + repository_dir.generic_u8string(), + failure_point.string()); - const auto cmd_line = Strings::format(R"("%s" --packages "%s" "%s" > nul)", - repogen_exe.u8string(), - packages_dir.u8string(), - repository_dir.u8string()); + const auto cmd_line = Strings::format(R"("%s" --packages "%s" "%s" > nul)", + repogen_exe.u8string(), + packages_dir.u8string(), + repository_dir.u8string()); - const int exit_code = System::cmd_execute_clean(cmd_line); - Checks::check_exit(VCPKG_LINE_INFO, exit_code == 0, "Error: IFW repository generating failed"); + const int exit_code = System::cmd_execute_clean(cmd_line); + Checks::check_exit(VCPKG_LINE_INFO, exit_code == 0, "Error: IFW repository generating failed"); - System::printf( - System::Color::success, "Generating repository %s... done.\n", repository_dir.generic_u8string()); - } + System::printf( + System::Color::success, "Generating repository %s... done.\n", repository_dir.generic_u8string()); + } - void do_installer(const std::string& export_id, const Options& ifw_options, const VcpkgPaths& paths) - { - const fs::path& binarycreator_exe = paths.get_tool_exe(Tools::IFW_BINARYCREATOR); - const fs::path config_file = get_config_file_path(export_id, ifw_options, paths); - const fs::path packages_dir = get_packages_dir_path(export_id, ifw_options, paths); - const fs::path repository_dir = get_repository_dir_path(export_id, ifw_options, paths); - const fs::path installer_file = get_installer_file_path(export_id, ifw_options, paths); + void do_installer(const std::string& export_id, const Options& ifw_options, const VcpkgPaths& paths) + { + const fs::path& binarycreator_exe = paths.get_tool_exe(Tools::IFW_BINARYCREATOR); + const fs::path config_file = get_config_file_path(export_id, ifw_options, paths); + const fs::path packages_dir = get_packages_dir_path(export_id, ifw_options, paths); + const fs::path repository_dir = get_repository_dir_path(export_id, ifw_options, paths); + const fs::path installer_file = get_installer_file_path(export_id, ifw_options, paths); - System::printf("Generating installer %s...\n", installer_file.generic_u8string()); + System::printf("Generating installer %s...\n", installer_file.generic_u8string()); - std::string cmd_line; + std::string cmd_line; - std::string ifw_repo_url = ifw_options.maybe_repository_url.value_or(""); - if (!ifw_repo_url.empty()) - { - cmd_line = Strings::format(R"("%s" --online-only --config "%s" --repository "%s" "%s" > nul)", - binarycreator_exe.u8string(), - config_file.u8string(), - repository_dir.u8string(), - installer_file.u8string()); - } - else - { - cmd_line = Strings::format(R"("%s" --config "%s" --packages "%s" "%s" > nul)", - binarycreator_exe.u8string(), - config_file.u8string(), - packages_dir.u8string(), - installer_file.u8string()); - } + std::string ifw_repo_url = ifw_options.maybe_repository_url.value_or(""); + if (!ifw_repo_url.empty()) + { + cmd_line = Strings::format(R"("%s" --online-only --config "%s" --repository "%s" "%s" > nul)", + binarycreator_exe.u8string(), + config_file.u8string(), + repository_dir.u8string(), + installer_file.u8string()); + } + else + { + cmd_line = Strings::format(R"("%s" --config "%s" --packages "%s" "%s" > nul)", + binarycreator_exe.u8string(), + config_file.u8string(), + packages_dir.u8string(), + installer_file.u8string()); + } - const int exit_code = System::cmd_execute_clean(cmd_line); - Checks::check_exit(VCPKG_LINE_INFO, exit_code == 0, "Error: IFW installer generating failed"); + const int exit_code = System::cmd_execute_clean(cmd_line); + Checks::check_exit(VCPKG_LINE_INFO, exit_code == 0, "Error: IFW installer generating failed"); - System::printf(System::Color::success, "Generating installer %s... done.\n", installer_file.generic_u8string()); + System::printf( + System::Color::success, "Generating installer %s... done.\n", installer_file.generic_u8string()); + } } void do_export(const std::vector<ExportPlanAction>& export_plan, diff --git a/toolsrc/src/vcpkg/commands.xvsinstances.cpp b/toolsrc/src/vcpkg/commands.xvsinstances.cpp index 542ebd56c..a110bbb18 100644 --- a/toolsrc/src/vcpkg/commands.xvsinstances.cpp +++ b/toolsrc/src/vcpkg/commands.xvsinstances.cpp @@ -28,6 +28,7 @@ namespace vcpkg::Commands::X_VSInstances Checks::exit_success(VCPKG_LINE_INFO);
#else
+ Util::unused(args, paths);
Checks::exit_with_message(VCPKG_LINE_INFO, "This command is not supported on non-windows platforms.");
#endif
}
diff --git a/toolsrc/src/vcpkg/dependencies.cpp b/toolsrc/src/vcpkg/dependencies.cpp index 9fccf950e..ab14934a2 100644 --- a/toolsrc/src/vcpkg/dependencies.cpp +++ b/toolsrc/src/vcpkg/dependencies.cpp @@ -13,45 +13,48 @@ namespace vcpkg::Dependencies { - struct ClusterInstalled + namespace { - InstalledPackageView ipv; - std::set<PackageSpec> remove_edges; - std::set<std::string> original_features; - }; + struct ClusterInstalled + { + InstalledPackageView ipv; + std::set<PackageSpec> remove_edges; + std::set<std::string> original_features; + }; - struct ClusterSource - { - const SourceControlFileLocation* scfl = nullptr; - std::unordered_map<std::string, std::vector<FeatureSpec>> build_edges; - }; + struct ClusterSource + { + const SourceControlFileLocation* scfl = nullptr; + std::unordered_map<std::string, std::vector<FeatureSpec>> build_edges; + }; - /// <summary> - /// Representation of a package and its features in a ClusterGraph. - /// </summary> - struct Cluster : Util::MoveOnlyBase - { - PackageSpec spec; + /// <summary> + /// Representation of a package and its features in a ClusterGraph. + /// </summary> + struct Cluster : Util::MoveOnlyBase + { + PackageSpec spec; - Optional<ClusterInstalled> installed; - Optional<ClusterSource> source; + Optional<ClusterInstalled> installed; + Optional<ClusterSource> source; - // Note: this map can contain "special" strings such as "" and "*" - std::unordered_map<std::string, bool> plus; - std::set<std::string> to_install_features; - bool minus = false; - bool transient_uninstalled = true; - RequestType request_type = RequestType::AUTO_SELECTED; - }; + // Note: this map can contain "special" strings such as "" and "*" + std::unordered_map<std::string, bool> plus; + std::set<std::string> to_install_features; + bool minus = false; + bool transient_uninstalled = true; + RequestType request_type = RequestType::AUTO_SELECTED; + }; - struct ClusterPtr - { - Cluster* ptr; + struct ClusterPtr + { + Cluster* ptr; - Cluster* operator->() const { return ptr; } - }; + Cluster* operator->() const { return ptr; } + }; - bool operator==(const ClusterPtr& l, const ClusterPtr& r) { return l.ptr == r.ptr; } + bool operator==(const ClusterPtr& l, const ClusterPtr& r) { return l.ptr == r.ptr; } + } } namespace std @@ -122,11 +125,11 @@ namespace vcpkg::Dependencies const PortFileProvider& m_provider; }; - std::string to_output_string(RequestType request_type, - const CStringView s, - const Build::BuildPackageOptions& options, - const fs::path& install_port_path, - const fs::path& default_port_path) + static std::string to_output_string(RequestType request_type, + const CStringView s, + const Build::BuildPackageOptions& options, + const fs::path& install_port_path, + const fs::path& default_port_path) { if (!default_port_path.empty() && !Strings::case_insensitive_ascii_starts_with(install_port_path.u8string(), default_port_path.u8string())) @@ -670,7 +673,8 @@ namespace vcpkg::Dependencies } } - // This feature was or will be uninstalled, therefore we need to rebuild + // The feature was not previously installed. Mark the cluster + //(aka the entire port) to be removed before re-adding it. mark_minus(cluster, graph, graph_plan, prevent_default_features); return follow_plus_dependencies(feature, cluster, graph, graph_plan, prevent_default_features); diff --git a/toolsrc/src/vcpkg/export.cpp b/toolsrc/src/vcpkg/export.cpp index f306bf4e6..8f5034eee 100644 --- a/toolsrc/src/vcpkg/export.cpp +++ b/toolsrc/src/vcpkg/export.cpp @@ -360,6 +360,12 @@ namespace vcpkg::Export } }; +#if defined(_MSC_VER) && _MSC_VER <= 1900 +// there's a bug in VS 2015 that causes a bunch of "unreferenced local variable" warnings +#pragma warning(push) +#pragma warning(disable : 4189) +#endif + options_implies(OPTION_NUGET, ret.nuget, { @@ -376,6 +382,9 @@ namespace vcpkg::Export {OPTION_IFW_CONFIG_FILE_PATH, ret.ifw_options.maybe_config_file_path}, {OPTION_IFW_INSTALLER_FILE_PATH, ret.ifw_options.maybe_installer_file_path}, }); +#if defined(_MSC_VER) && _MSC_VER <= 1900 +#pragma warning(pop) +#endif return ret; } diff --git a/toolsrc/src/vcpkg/install.cpp b/toolsrc/src/vcpkg/install.cpp index 165f13126..1812f1624 100644 --- a/toolsrc/src/vcpkg/install.cpp +++ b/toolsrc/src/vcpkg/install.cpp @@ -174,7 +174,7 @@ namespace vcpkg::Install const std::vector<fs::path> package_file_paths = fs.get_files_recursive(package_dir); const size_t package_remove_char_count = package_dir.generic_string().size() + 1; // +1 for the slash auto package_files = Util::fmap(package_file_paths, [package_remove_char_count](const fs::path& path) { - return std::move(std::string(path.generic_string(), package_remove_char_count)); + return std::string(path.generic_string(), package_remove_char_count); }); return SortedVector<std::string>(std::move(package_files)); @@ -202,6 +202,12 @@ namespace vcpkg::Install struct intersection_compare { + // The VS2015 standard library requires comparison operators of T and U + // to also support comparison of T and T, and of U and U, due to debug checks. +#if _MSC_VER < 1910 + bool operator()(const std::string& lhs, const std::string& rhs) { return lhs < rhs; } + bool operator()(const file_pack& lhs, const file_pack& rhs) { return lhs.first < rhs.first; } +#endif bool operator()(const std::string& lhs, const file_pack& rhs) { return lhs < rhs.first; } bool operator()(const file_pack& lhs, const std::string& rhs) { return lhs.first < rhs; } }; diff --git a/toolsrc/src/vcpkg/logicexpression.cpp b/toolsrc/src/vcpkg/logicexpression.cpp index 0cf08ee03..ccb8b00c4 100644 --- a/toolsrc/src/vcpkg/logicexpression.cpp +++ b/toolsrc/src/vcpkg/logicexpression.cpp @@ -54,9 +54,12 @@ namespace vcpkg { public: ExpressionParser(const std::string& str, const std::string& evaluation_context) - : raw_text(str), evaluation_context(evaluation_context) + : raw_text(str) + , evaluation_context(evaluation_context) + , current_iter(raw_text.begin()) + , current_char(get_current_char()) { - go_to_begin(); + skip_whitespace(); final_result = logic_expression(); @@ -77,16 +80,17 @@ namespace vcpkg bool has_error() const { return err == nullptr; } private: - bool final_result; - - std::string::const_iterator current_iter; const std::string& raw_text; + const std::string& evaluation_context; + std::string::const_iterator current_iter; char current_char; - const std::string& evaluation_context; + bool final_result; std::unique_ptr<ParseError> err; + char get_current_char() const { return (current_iter != raw_text.end() ? *current_iter : '\0'); } + void add_error(std::string message, int column = -1) { // avoid castcading errors by only saving the first @@ -105,16 +109,6 @@ namespace vcpkg int current_column() const { return static_cast<int>(current_iter - raw_text.begin()); } - void go_to_begin() - { - current_iter = raw_text.begin(); - current_char = (current_iter != raw_text.end() ? *current_iter : current_char); - - if (current_char == ' ' || current_char == '\t') - { - next_skip_whitespace(); - } - } void skip_to_end() { current_iter = raw_text.end(); @@ -126,7 +120,7 @@ namespace vcpkg if (current_char != '\0') { current_iter++; - current_char = (current_iter != raw_text.end() ? *current_iter : '\0'); + current_char = get_current_char(); } return current(); } diff --git a/toolsrc/src/vcpkg/metrics.cpp b/toolsrc/src/vcpkg/metrics.cpp index 9dd520ed6..11f613830 100644 --- a/toolsrc/src/vcpkg/metrics.cpp +++ b/toolsrc/src/vcpkg/metrics.cpp @@ -307,7 +307,9 @@ namespace vcpkg::Metrics void Metrics::upload(const std::string& payload) { -#if defined(_WIN32) +#if !defined(_WIN32) + Util::unused(payload); +#else HINTERNET connect = nullptr, request = nullptr; BOOL results = FALSE; diff --git a/toolsrc/src/vcpkg/paragraphs.cpp b/toolsrc/src/vcpkg/paragraphs.cpp index 1232b940a..9cb7caff1 100644 --- a/toolsrc/src/vcpkg/paragraphs.cpp +++ b/toolsrc/src/vcpkg/paragraphs.cpp @@ -164,7 +164,7 @@ namespace vcpkg::Paragraphs } }; - Expected<RawParagraph> parse_single_paragraph(const std::string& str) + static Expected<RawParagraph> parse_single_paragraph(const std::string& str) { const std::vector<RawParagraph> p = Parser(str.c_str(), str.c_str() + str.size()).get_paragraphs(); diff --git a/toolsrc/src/vcpkg/postbuildlint.cpp b/toolsrc/src/vcpkg/postbuildlint.cpp index c760a034f..a85d879fe 100644 --- a/toolsrc/src/vcpkg/postbuildlint.cpp +++ b/toolsrc/src/vcpkg/postbuildlint.cpp @@ -39,7 +39,7 @@ namespace vcpkg::PostBuildLint } }; - Span<const OutdatedDynamicCrt> get_outdated_dynamic_crts(const Optional<std::string>& toolset_version) + static Span<const OutdatedDynamicCrt> get_outdated_dynamic_crts(const Optional<std::string>& toolset_version) { static const std::vector<OutdatedDynamicCrt> V_NO_120 = { {"msvcp100.dll", R"(msvcp100\.dll)"}, @@ -462,7 +462,7 @@ namespace vcpkg::PostBuildLint return LintStatus::ERROR_DETECTED; } #endif - + Util::unused(expected_architecture, files); return LintStatus::SUCCESS; } diff --git a/toolsrc/src/vcpkg/sourceparagraph.cpp b/toolsrc/src/vcpkg/sourceparagraph.cpp index 298095df6..ebb9cd4f4 100644 --- a/toolsrc/src/vcpkg/sourceparagraph.cpp +++ b/toolsrc/src/vcpkg/sourceparagraph.cpp @@ -26,6 +26,7 @@ namespace vcpkg static const std::string SUPPORTS = "Supports"; static const std::string VERSION = "Version"; static const std::string HOMEPAGE = "Homepage"; + static const std::string TYPE = "Type"; } static Span<const std::string> get_list_of_valid_fields() @@ -37,6 +38,7 @@ namespace vcpkg SourceParagraphFields::MAINTAINER, SourceParagraphFields::BUILD_DEPENDS, SourceParagraphFields::HOMEPAGE, + SourceParagraphFields::TYPE, }; return valid_fields; diff --git a/toolsrc/src/vcpkg/statusparagraphs.cpp b/toolsrc/src/vcpkg/statusparagraphs.cpp index c642af59b..3c81728bb 100644 --- a/toolsrc/src/vcpkg/statusparagraphs.cpp +++ b/toolsrc/src/vcpkg/statusparagraphs.cpp @@ -7,8 +7,9 @@ namespace vcpkg { StatusParagraphs::StatusParagraphs() = default; - StatusParagraphs::StatusParagraphs(std::vector<std::unique_ptr<StatusParagraph>>&& ps) - : paragraphs(std::move(ps)){}; + StatusParagraphs::StatusParagraphs(std::vector<std::unique_ptr<StatusParagraph>>&& ps) : paragraphs(std::move(ps)) + { + } std::vector<std::unique_ptr<StatusParagraph>*> StatusParagraphs::find_all(const std::string& name, const Triplet& triplet) diff --git a/toolsrc/src/vcpkg/tools.cpp b/toolsrc/src/vcpkg/tools.cpp index 7d56854c6..9354493bd 100644 --- a/toolsrc/src/vcpkg/tools.cpp +++ b/toolsrc/src/vcpkg/tools.cpp @@ -274,6 +274,9 @@ namespace vcpkg const auto& program_files_32_bit = System::get_program_files_32_bit(); if (const auto pf = program_files_32_bit.get()) out_candidate_paths.push_back(*pf / "CMake" / "bin" / "cmake.exe"); +#else + // TODO: figure out if this should do anything on non-Windows + Util::unused(out_candidate_paths); #endif } virtual Optional<std::string> get_version(const fs::path& path_to_exe) const override @@ -362,6 +365,9 @@ Type 'NuGet help <command>' for help on a specific command. const auto& program_files_32_bit = System::get_program_files_32_bit(); if (const auto pf = program_files_32_bit.get()) out_candidate_paths.push_back(*pf / "git" / "cmd" / "git.exe"); +#else + // TODO: figure out if this should do anything on non-windows + Util::unused(out_candidate_paths); #endif } diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp index bc46d2cfc..4f01ed03b 100644 --- a/toolsrc/src/vcpkg/vcpkgpaths.cpp +++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp @@ -155,9 +155,9 @@ namespace vcpkg { return m_triplets_cache.get_lazy( triplet, [&]() -> auto { - for (auto&& triplet_dir : triplets_dirs) + for (const auto& triplet_dir : triplets_dirs) { - auto&& path = triplet_dir / (triplet.canonical_name() + ".cmake"); + auto path = triplet_dir / (triplet.canonical_name() + ".cmake"); if (this->get_filesystem().exists(path)) { return path; diff --git a/toolsrc/src/vcpkg/versiont.cpp b/toolsrc/src/vcpkg/versiont.cpp index d20e6b577..2c025fa1d 100644 --- a/toolsrc/src/vcpkg/versiont.cpp +++ b/toolsrc/src/vcpkg/versiont.cpp @@ -11,7 +11,6 @@ namespace vcpkg const std::string& VersionT::to_string() const { return value; } bool operator==(const VersionT& left, const VersionT& right) { return left.to_string() == right.to_string(); } bool operator!=(const VersionT& left, const VersionT& right) { return left.to_string() != right.to_string(); } - std::string to_printf_arg(const VersionT& version) { return version.to_string(); } VersionDiff::VersionDiff() noexcept : left(), right() {} VersionDiff::VersionDiff(const VersionT& left, const VersionT& right) : left(left), right(right) {} |
