Skip to content

Commit

Permalink
[libarchive+tesseract+opencv] add missing libarchiveConfig.cmake, fix…
Browse files Browse the repository at this point in the history
… tesseract downstream and unblock opencv CI (microsoft#15089)

* [tesseract] add missing reference for downstream projects

* [tesseract] restore ci, fix many regressions that are uncovered by that

* Update ports/opencv2/CONTROL

Co-authored-by: NancyLi1013 <[email protected]>

* [opencv] fix regressions on uwp, accept failure on arm64 for now

* Apply suggestions from code review

Co-authored-by: NancyLi1013 <[email protected]>

* [opencv4] allow failures on all arm windows targets, both win32 and uwp

* adopts hints from microsoft#15180

* [libarchive] bump control version

* [libarchive] use vcpkg-cmake-wrapper instead of a custom libarchiveConfig, since it is vcpkg-provided and not port-provided

* enable features to be visible in parent scope

* apply documentation fix from CI

* [libarchive] remove unnecessary lines in portfile

* fix regressions

* Update ports/gdcm/CONTROL

* use more compact logic syntax

* add new versions to baseline

Co-authored-by: NancyLi1013 <[email protected]>
  • Loading branch information
cenit and NancyLi1013 authored Jan 17, 2021
1 parent 31eda3e commit f89336d
Show file tree
Hide file tree
Showing 29 changed files with 188 additions and 108 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,7 @@ __pycache__/
############################################################
# vcpkg - End
############################################################
vcpkg.disable-metrics
archives
.DS_Store
prefab/
Expand All @@ -325,3 +326,4 @@ prefab/
# Codespaces
###################
pythonenv3.8/
.venv/
40 changes: 20 additions & 20 deletions docs/maintainers/vcpkg_check_features.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Check if one or more features are a part of a package installation.
## Usage
```cmake
vcpkg_check_features(
OUT_FEATURE_OPTIONS <FEATURE_OPTIONS>
OUT_FEATURE_OPTIONS <FEATURE_OPTIONS>
[FEATURES
<cuda> <WITH_CUDA>
[<opencv> <WITH_OPENCV>]
Expand All @@ -15,27 +15,27 @@ vcpkg_check_features(
...]
)
```
`vcpkg_check_features()` accepts these parameters:
`vcpkg_check_features()` accepts these parameters:

* `OUT_FEATURE_OPTIONS`:
An output variable, the function will clear the variable passed to `OUT_FEATURE_OPTIONS`
* `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:

* `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.
* `-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:

* `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.
* `-D<OPTION_NAME>=ON`, otherwise.


## Notes
Expand All @@ -44,8 +44,8 @@ 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,
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`.


Expand Down Expand Up @@ -113,7 +113,7 @@ vcpkg_configure_cmake(
# Expands to "-DWITH_CUDA=ON; -DBUILD_CUDA=ON; -DBUILD_GPU=ON"
${FEATURE_OPTIONS}
)
```
```

### Example 4: Use regular and inverted features

Expand All @@ -135,7 +135,7 @@ vcpkg_configure_cmake(
# Expands to "-DWITH_TBB=ON; -DROCKSDB_IGNORE_PACKAGE_TBB=OFF"
${FEATURE_OPTIONS}
)
```
```

## Examples in portfiles

Expand Down
18 changes: 9 additions & 9 deletions port_versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -1633,8 +1633,8 @@
"port-version": 4
},
"dmlc": {
"baseline": "2019-08-12-4",
"port-version": 0
"baseline": "2019-08-12",
"port-version": 5
},
"docopt": {
"baseline": "2018-11-01",
Expand Down Expand Up @@ -2066,7 +2066,7 @@
},
"gdcm": {
"baseline": "3.0.7",
"port-version": 0
"port-version": 1
},
"gdcm2": {
"baseline": "deprecated",
Expand Down Expand Up @@ -2814,7 +2814,7 @@
},
"libarchive": {
"baseline": "3.4.3",
"port-version": 2
"port-version": 3
},
"libass": {
"baseline": "0.15.0",
Expand Down Expand Up @@ -4190,19 +4190,19 @@
},
"opencv": {
"baseline": "4.3.0",
"port-version": 0
"port-version": 1
},
"opencv2": {
"baseline": "2.4.13.7",
"port-version": 4
"port-version": 5
},
"opencv3": {
"baseline": "3.4.10",
"port-version": 4
"port-version": 5
},
"opencv4": {
"baseline": "4.3.0",
"port-version": 4
"port-version": 5
},
"opendnp3": {
"baseline": "3.1.0",
Expand Down Expand Up @@ -5626,7 +5626,7 @@
},
"tesseract": {
"baseline": "4.1.1",
"port-version": 5
"port-version": 6
},
"tfhe": {
"baseline": "1.0.1-1",
Expand Down
5 changes: 5 additions & 0 deletions port_versions/d-/dmlc.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "162f71aa6f31426d3e8cbbb2614c8bba689e7bbc",
"version-string": "2019-08-12",
"port-version": 5
},
{
"git-tree": "679cba8e39c453c95a626180449c68a0aa41f724",
"version-string": "2019-08-12-4",
Expand Down
5 changes: 5 additions & 0 deletions port_versions/g-/gdcm.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "151374d525077e7d8229b4ad2bf8f1630f36fbb5",
"version-string": "3.0.7",
"port-version": 1
},
{
"git-tree": "cc2b78ff93cde95d5d9a4c9c9b4b2a393a7195a2",
"version-string": "3.0.7",
Expand Down
5 changes: 5 additions & 0 deletions port_versions/l-/libarchive.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "114dd98b5e7865923e2e06a1ffad5661b0aec246",
"version-string": "3.4.3",
"port-version": 3
},
{
"git-tree": "5f418195172c2db767e6f0bae8ff4d07101c70e5",
"version-string": "3.4.3",
Expand Down
5 changes: 5 additions & 0 deletions port_versions/o-/opencv.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "6732874b9a119e4de4e9afdc72469c967348b21b",
"version-string": "4.3.0",
"port-version": 1
},
{
"git-tree": "ad5aa4dfbaa294ebc717c4a057ee7a5ce1dc297c",
"version-string": "4.3.0",
Expand Down
5 changes: 5 additions & 0 deletions port_versions/o-/opencv2.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "50a5602ecab15fd1c36f0619a5fdbd4792eb1b23",
"version-string": "2.4.13.7",
"port-version": 5
},
{
"git-tree": "7a9db98ab98f632cba250ec9290924c4027a8f0d",
"version-string": "2.4.13.7",
Expand Down
5 changes: 5 additions & 0 deletions port_versions/o-/opencv3.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "a761625dd5d17548aaa9611295ace23ca8bc27fc",
"version-string": "3.4.10",
"port-version": 5
},
{
"git-tree": "d08b6595a75aefc70b70a366a07c2a3b1dd66e92",
"version-string": "3.4.10",
Expand Down
5 changes: 5 additions & 0 deletions port_versions/o-/opencv4.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "f6fbdfab1e9ac01652b51f2251715c2be05a6567",
"version-string": "4.3.0",
"port-version": 5
},
{
"git-tree": "bda3727a0c91b614fe1b275e27ad4b68f214eebe",
"version-string": "4.3.0",
Expand Down
5 changes: 5 additions & 0 deletions port_versions/t-/tesseract.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "46aa8d12c08674f4518e9b74b32826bbb380cac9",
"version-string": "4.1.1",
"port-version": 6
},
{
"git-tree": "118674017f17f5289563c3b07f4fe5403d508151",
"version-string": "4.1.1",
Expand Down
6 changes: 3 additions & 3 deletions ports/dmlc/CONTROL
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
Source: dmlc
Version: 2019-08-12-4
Version: 2019-08-12
Port-Version: 5
Homepage: https://github.com/dmlc/dmlc-core
Description: DMLC-Core is the backbone library to support all DMLC projects, offers the bricks to build efficient and scalable distributed machine learning libraries.
Default-Features: openmp
Supports: !uwp

Feature: openmp
Description: Build with openmp
Description: Build with openmp
3 changes: 2 additions & 1 deletion ports/gdcm/CONTROL
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
Source: gdcm
Version: 3.0.7
Port-Version: 1
Homepage: https://github.com/malaterre/GDCM
Description: Grassroots DICOM library
Build-Depends: zlib, expat, openjpeg
Supports: !uwp
Supports: !uwp&!(windows&(arm|arm64))
2 changes: 1 addition & 1 deletion ports/libarchive/CONTROL
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Source: libarchive
Version: 3.4.3
Port-Version: 2
Port-Version: 3
Homepage: https://github.com/libarchive/libarchive
Description: Library for reading and writing streaming archives
Build-Depends: zlib
Expand Down
14 changes: 4 additions & 10 deletions ports/libarchive/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -64,19 +64,13 @@ vcpkg_configure_cmake(
)

vcpkg_install_cmake()

vcpkg_copy_pdbs()

foreach(_feature IN LISTS FEATURE_OPTIONS)
string(REPLACE "-D" "" _feature "${_feature}")
string(REPLACE "=" ";" _feature "${_feature}")
string(REPLACE "ON" "1" _feature "${_feature}")
string(REPLACE "OFF" "0" _feature "${_feature}")
list(GET _feature 0 _feature_name)
list(GET _feature 1 _feature_status)
set(${_feature_name} ${_feature_status})
endforeach()
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY)
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY)

file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)

foreach(HEADER ${CURRENT_PACKAGES_DIR}/include/archive.h ${CURRENT_PACKAGES_DIR}/include/archive_entry.h)
file(READ ${HEADER} CONTENTS)
string(REPLACE "(!defined LIBARCHIVE_STATIC)" "0" CONTENTS "${CONTENTS}")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,50 @@
_find_package(${ARGS})

include(CMakeFindDependencyMacro)

if(@ENABLE_ZLIB@)
find_dependency(ZLIB)
endif()
if(@ENABLE_BZip2@)
find_dependency(BZip2)
endif()
if(@ENABLE_LIBXML2@)
find_dependency(LibXml2)
endif()
if(@ENABLE_LZ4@)
find_dependency(lz4)
endif()
if(@ENABLE_LZMA@)
find_dependency(LibLZMA)
endif()
if(@ENABLE_ZSTD@)
find_dependency(zstd)
endif()
if(@ENABLE_OPENSSL@)
find_dependency(OpenSSL)
endif()
if(@ENABLE_LZO@)
find_library(LZO_LIBRARY_DEBUG NAMES lzo2d lzo2 NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" NO_DEFAULT_PATH)
find_library(LZO_LIBRARY_RELEASE NAMES lzo2 NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH)
endif()

if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static")
if(@ENABLE_ZLIB@)
find_package(ZLIB REQUIRED)
list(APPEND LibArchive_LIBRARIES ZLIB::ZLIB)
endif()
if(@ENABLE_BZip2@)
find_package(BZip2 REQUIRED)
list(APPEND LibArchive_LIBRARIES BZip2::BZip2)
endif()
if(@ENABLE_LIBXML2@)
find_package(LibXml2 REQUIRED)
list(APPEND LibArchive_LIBRARIES LibXml2::LibXml2)
endif()
if(@ENABLE_LZ4@)
find_package(lz4 REQUIRED)
list(APPEND LibArchive_LIBRARIES lz4::lz4)
endif()
if(@ENABLE_LZMA@)
find_package(LibLZMA REQUIRED)
list(APPEND LibArchive_LIBRARIES LibLZMA::LibLZMA)
endif()
if(@ENABLE_LZO@)
find_library(LZO_LIBRARY_DEBUG NAMES lzo2d lzo2 NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" NO_DEFAULT_PATH)
find_library(LZO_LIBRARY_RELEASE NAMES lzo2 NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH)
if(LZO_LIBRARY_RELEASE)
list(APPEND LibArchive_LIBRARIES optimized ${LZO_LIBRARY_RELEASE})
endif()
Expand All @@ -32,15 +53,13 @@ if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static")
endif()
endif()
if(@ENABLE_ZSTD@)
find_package(zstd CONFIG REQUIRED)
if(TARGET zstd::libzstd_shared)
list(APPEND LibArchive_LIBRARIES zstd::libzstd_shared)
else(TARGET zstd::libzstd_shared)
list(APPEND LibArchive_LIBRARIES zstd::libzstd_static)
endif(TARGET zstd::libzstd_shared)
endif()
if(@ENABLE_OPENSSL@)
find_package(OpenSSL REQUIRED)
list(APPEND LibArchive_LIBRARIES OpenSSL::Crypto)
endif()

Expand Down
7 changes: 6 additions & 1 deletion ports/opencv/CONTROL
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
Source: opencv
Version: 4.3.0
Port-Version: 1
Homepage: https://github.com/opencv/opencv
Description: Computer vision library
Build-Depends: opencv4[core]
Default-Features: dnn, jpeg, opengl, png, tiff, webp
Default-Features: dnn, jpeg, png, tiff, webp

Feature: nonfree
Build-Depends: opencv4[core,nonfree]
Expand Down Expand Up @@ -53,6 +54,10 @@ Feature: jpeg
Build-Depends: opencv4[core,jpeg]
Description: JPEG support for opencv

Feature: lapack
Build-Depends: opencv4[core,lapack]
Description: LAPACK support for opencv

Feature: openexr
Build-Depends: opencv4[core,openexr]
Description: OpenEXR support for opencv
Expand Down
Loading

0 comments on commit f89336d

Please sign in to comment.