[vcpkg] Add Supports: field. Use contents of triplets instead of names for dependency resolution. (#8601)

* remove unfinished "supports" tag

* extract "supports" from control files
But do nothing with the value

* Start `Supports` documentation

* Use Supports in a bunch of control files

I only tried matching the already existing logic in the portfile.cmake.

* Cmake var provider (#8)

* Cmake var provider (#9)

* fix windows build (#10)

* Add missing files to build

* Fix test (#11)

* adding hooks for cmake variables in expressions

* Adding hooks for 'supports' in CI test

* Fix test (#12)

* Add overrides to evaluation environment

* use "supported" tag in CI testing

* cleanup comment

* Fix issues with PR

* [var_provider] Get library linkage variables from triplet

* Fix compilation errors in tests

* Add unimplemented functions

* Fix unit tests part 1

* Fix issue when buildtrees dir does not exist

* Change binary output hash

* Fix handling of * feature

* Add core feature when using *

* Do not add Default-Features when installing 'core'

* [vcpkg] WIP. 6 failing tests.

* [vcpkg] WIP. 1 failing tests.

* [vcpkg] WIP. 0 failing tests.

* [vcpkg] Removed 'remove_graph'. 0 failing tests.

* [vcpkg] Removed 'install_graph'. 0 failing tests.

* [vcpkg] Remove AnyAction; replace with ActionPlan

* [vcpkg] Minor cleanup.

* [vcpkg][z3][qt5-connectivity][qt5-purchasing] Improve error messages while parsing. Fix a few trivial port issues.

* [vcpkg] Work around ICE with MSVC v140

* [vcpkg] Add purge on fail to decompress for CI

* [vcpkg] Fix parsing of nested parentheses in qualifiers

* [vcpkg] Fix Linux builds (explicit qualification in declaration)

* [vcpkg] Fix Build-Depends implying default features. Fix qualified dependencies regression.

* [mmx] Add to skip list and full rebuild -- mmx causes problems by installing 'sched.h'

* [libpqxx][mqtt-cpp] Prevent installing include/CMakeLists.txt

* [cppitertools] Fix installed include namespace (should be include/cppitertools)

* [libsoundio] Move headers into soundio/ subdirectory as per original cmake

* [ci.baseline] Temporarily skip charls due to conflict with dcmtk

* [vcpkg] Add restricted include files post build check -- bump global abi version

* [libsoundio] Hotfix stray line in portfile

* [vcpkg] Fix regression: CMake information was not being displayed for build-and-install actions

* [jsonnet] Fix installation of internal headers; use system nlohmann-json

* [grpc][upb] Teach grpc to use packaged upb. Add find_package(upb). Remove inappropriate upb features.

* [zfp] Move problematic 'include/bitstream.h' to 'include/zfp/bitstream.h'

* [x265] Bump control version to trigger rebuild after zfp conflict

* [akali] Disable parallel configure

* [dirent][dlfcn-win32][getopt-win32][pthreads] Grandfather into VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [ci.baseline] Update baseline for improved upb support

* [tgui] Disable parallel configure

* [libiconv] Enable VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [aws-sdk-cpp] Disable parallel configure

* [vcpkg] Implement policy VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [aws-sdk-cpp] Fix amount of escaping semicolons -- Note: I do not know the root cause requiring this change

* [libodb-sqlite] Fix configuring into source directory

* [gettext] Grandfather into VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [libodb] DISABLE_PARALLEL_CONFIGURE

* [vcpkg] Add 'config.h' and 'local.h' to restricted header list

* [mcpp] Remove unused and problematic include 'config.h' from installed files

* [teemo] Move installed headers into subdirectory to prevent conflicts with x265

* [ci.baseline] Update current OSX. Skip libmesh on all platforms due to heavy conflicts.

* [vcpkg] Add 'slice.h' as a restricted header

* [osg] Improve accuracy of dependencies (disable some, add some to Depends)

* [vcpkg] Skip invoking a subprocess for 0 specs in load_tag_vars

* [ci.baseline] Skip mongo-c-driver on osx due to flakiness

* [teemo] Fix incorrect include file read

* [osg] Fix dependency typo: glut -> freeglut

* [vcpkg] Recover some lost performance with the addition of vcpkg_get_tags.

A huge performance cost was loading the triplet files over and over; instead, we splice the sources into a macro and load it once, then just call that macro for each port.
Remove use of hashing because we aren't cross-process-safe anyway (global static will do instead).

* [vcpkg] Change Supports atom 'windows' to include UWP. Improve Supports field documentation.

* [vcpkg] Add docs for VCPKG_ENV_PASSTHROUGH and VCPKG_DEP_INFO_OVERRIDE_VARS

* Fix typo

Co-authored-by: Curtis J Bezault <curtbezault@gmail.com>
Co-authored-by: Victor Romero <romerosanchezv@gmail.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
This commit is contained in:
Phil Christensen 2020-02-03 14:22:52 -08:00 committed by GitHub
parent 586bee9bcd
commit e62d136128
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
233 changed files with 3549 additions and 2467 deletions

View File

@ -8,7 +8,7 @@ Field names are case-sensitive and start the line without leading whitespace. P
## Source Paragraph
The first paragraph in a `CONTROL` file is the Source paragraph. It must have a `Source`, `Version`, and `Description` field. It can optionally have a `Build-Depends` and `Default-Features` field.
The first paragraph in a `CONTROL` file is the Source paragraph. It must have a `Source`, `Version`, and `Description` field. The full set of fields is documented below.
### Examples:
```no-highlight
@ -58,7 +58,7 @@ For example, given:
Then if you update the source version today, you should give it version `2019-06-01`. If you need to make a change which doesn't adjust the source version, you should give it version `2019-02-14-2`.
Example:
##### Examples:
```no-highlight
Version: 1.0.5-2
```
@ -71,7 +71,7 @@ A description of the library.
By convention the first line of the description is a summary of the library. An optional detailed description follows. The detailed description can be multiple lines, all starting with whitespace.
Example:
##### Examples:
```no-highlight
Description: C++ header-only JSON library
```
@ -96,17 +96,13 @@ Vcpkg does not distinguish between build-only dependencies and runtime dependenc
*For example: websocketpp is a header only library, and thus does not require any dependencies at install time. However, downstream users need boost and openssl to make use of the library. Therefore, websocketpp lists boost and openssl as dependencies*
Example:
```no-highlight
Build-Depends: zlib, libpng, libjpeg-turbo, tiff
```
If the port is dependent on optional features of another library those can be specified using the `portname[featurelist]` syntax.
If the port is dependent on optional features of another library those can be specified using the `portname[featurelist]` syntax. If the port does not require any features from the dependency, this should be specifed as `portname[core]`.
Dependencies can be filtered based on the target triplet to support different requirements on Windows Desktop versus the Universal Windows Platform. Currently, the string inside parentheses is substring-compared against the triplet name. There must be a space between the name of the port and the filter. __This will change in a future version to not depend on the triplet name.__
Dependencies can be filtered based on the target triplet to support differing requirements. These filters use the same syntax as the Supports field below and are surrounded in parentheses following the portname and feature list.
Example:
##### Example:
```no-highlight
Build-Depends: curl[openssl] (!windows&!osx), curl[winssl] (windows), curl[darwinssl] (osx)
Build-Depends: rapidjson, curl[core,openssl] (!windows), curl[core,winssl] (windows)
```
#### Default-Features
@ -114,10 +110,46 @@ Comma separated list of optional port features to install by default.
This field is optional.
##### Example:
```no-highlight
Default-Features: dynamodb, s3, kinesis
```
<a name="Supports"></a>
#### Supports
Expression that evaluates to true when the port is expected to build successfully for a triplet.
Currently, this field is only used in the CI testing to skip ports. In the future, this mechanism is intended to warn users in advance that a given install tree is not expected to succeed. Therefore, this field should be used optimistically; in cases where a port is expected to succeed 10% of the time, it should still be marked "supported".
The grammar for the supports expression uses standard operators:
- `!expr` - negation
- `expr|expr` - or (`||` is also supported)
- `expr&expr` - and (`&&` is also supported)
- `(expr)` - grouping/precedence
The predefined expressions are computed from standard triplet settings:
- `x64` - `VCPKG_TARGET_ARCHITECTURE` == `"x64"`
- `x86` - `VCPKG_TARGET_ARCHITECTURE` == `"x86"`
- `arm` - `VCPKG_TARGET_ARCHITECTURE` == `"arm"` or `VCPKG_TARGET_ARCHITECTURE` == `"arm64"`
- `arm64` - `VCPKG_TARGET_ARCHITECTURE` == `"arm64"`
- `windows` - `VCPKG_CMAKE_SYSTEM_NAME` == `""` or `VCPKG_CMAKE_SYSTEM_NAME` == `"WindowsStore"`
- `uwp` - `VCPKG_CMAKE_SYSTEM_NAME` == `"WindowsStore"`
- `linux` - `VCPKG_CMAKE_SYSTEM_NAME` == `"Linux"`
- `osx` - `VCPKG_CMAKE_SYSTEM_NAME` == `"Darwin"`
- `android` - `VCPKG_CMAKE_SYSTEM_NAME` == `"Android"`
- `static` - `VCPKG_LIBRARY_LINKAGE` == `"static"`
These predefined expressions can be overridden in the triplet file via the [`VCPKG_DEP_INFO_OVERRIDE_VARS`](../users/triplets.md) option.
This field is optional and defaults to true.
> Implementers' Note: these terms are computed from the triplet via the `vcpkg_get_dep_info` mechanism.
##### Example:
```no-highlight
Supports: !(uwp|arm)
```
## Feature Paragraphs
Multiple optional features can be specified in the `CONTROL` files. It must have a `Feature` and `Description` field. It can optionally have a `Build-Depends` field. It must be separated from other paragraphs by one or more empty lines.

View File

@ -2,20 +2,17 @@
Triplet is a standard term used in cross compiling as a way to completely capture the target environment (cpu, os, compiler, runtime, etc) in a single convenient name.
In Vcpkg, we use triplets to describe self-consistent builds of library sets. This means every library will be built using the same target cpu, OS, and compiler toolchain, but also CRT linkage and preferred library type.
In Vcpkg, we use triplets to describe an imaginary "target configuration set" for every library. Within a triplet, libraries are generally built with the same configuration, but it is not a requirement. For example, you could have one triplet that builds `openssl` statically and `zlib` dynamically, one that builds them both statically, and one that builds them both dynamically (all for the same target OS and architecture). A single build will consume files from a single triplet.
We currently provide many triplets by default (run `vcpkg help triplet`). However, you can easily add your own by creating a new file in the `triplets\` directory. The new triplet will immediately be available for use in commands, such as `vcpkg install boost:x86-windows-custom`.
To change the triplet used by your project, such as to enable static linking, see our [Integration Document](integration.md#triplet-selection).
## Community triplets
Triplets contained in the `triplets\community` folder are not tested by continuous integration.
Triplets contained in the `triplets\community` folder are not tested by continuous integration, but are commonly requested by the community.
These triplets contain configurations commonly requested by the community, but for which we lack the resources to properly test.
Port updates may break compatibility with community triplets, such regressions won't get caught by our testing pipelines. Because of this, community involvement is paramount!
Because we do not have continuous coverage, port updates may break compatibility with community triplets. Because of this, community involvement is paramount!
We will gladly accept and review contributions that aim to solve issues with these triplets.
@ -23,7 +20,7 @@ We will gladly accept and review contributions that aim to solve issues with the
Community Triplets are enabled by default, when using a community triplet a message like the following one will be printed during a package install:
```bash
```no-highlight
-- Using community triplet x86-uwp. This triplet configuration is not guaranteed to succeed.
-- [COMMUNITY] Loading triplet configuration from: D:\src\viromer\vcpkg\triplets\community\x86-uwp.cmake
```
@ -78,8 +75,29 @@ This option also has forms for configuration-specific and C flags:
- `VCPKG_C_FLAGS_DEBUG`
- `VCPKG_C_FLAGS_RELEASE`
<a name="VCPKG_DEP_INFO_OVERRIDE_VARS"></a>
### VCPKG_DEP_INFO_OVERRIDE_VARS
Replaces the default computed list of triplet "Supports" terms.
This option (if set) will override the default set of terms used for qualified dependency resolution and "Supports" field evaluation.
See the [`Supports`](../maintainers/control-files.md#Supports) control file field documentation for more details.
> Implementers' Note: this list is extracted via the `vcpkg_get_dep_info` mechanism.
## Windows Variables
### VCPKG_ENV_PASSTHROUGH
Instructs vcpkg to allow additional environment variables into the build process.
On Windows, vcpkg builds packages in a special clean environment that is isolated from the current command prompt to ensure build reliability and consistency.
This triplet option can be set to a list of additional environment variables that will be added to the clean environment.
See also the `vcpkg env` command for how you can inspect the precise environment that will be used.
> Implementers' Note: this list is extracted via the `vcpkg_get_tags` mechanism.
<a name="VCPKG_VISUAL_STUDIO_PATH"></a>
### VCPKG_VISUAL_STUDIO_PATH
Specifies the Visual Studio installation to use.

View File

@ -5,3 +5,4 @@ Description: an open-source collection designed to augment the C++ standard libr
Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.
In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you.
Abseil is not meant to be a competitor to the standard library; we've just found that many of these utilities serve a purpose within our code base, and we now want to provide those resources to the C++ community as a whole.
Supports: !uwp

View File

@ -2,6 +2,7 @@ Source: ace
Version: 6.5.7-1
Homepage: https://www.dre.vanderbilt.edu/~schmidt/ACE.html
Description: The ADAPTIVE Communication Environment
Supports: !uwp
Feature: wchar
Description: Enable extra wide char functions in ACE

View File

@ -2,3 +2,4 @@ Source: activemq-cpp
Version: 3.9.5-1
Build-Depends: apr
Description: Apache ActiveMQ is the most popular and powerful open source messaging and Integration Patterns server.
Supports: !uwp

View File

@ -12,7 +12,8 @@ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" AKALI_STATIC)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
DISABLE_PARALLEL_CONFIGURE
PREFER_NINJA
OPTIONS
-DAKALI_STATIC:BOOL=${AKALI_STATIC}
-DBUILD_TESTS:BOOL=OFF

View File

@ -2,3 +2,4 @@ Source: alac
Version: 2017-11-03-c38887c5-1
Homepage: https://github.com/macosforge/alac
Description: The Apple Lossless Audio Codec (ALAC) is a lossless audio codec developed by Apple and deployed on all of its platforms and devices.
Supports: !uwp

View File

@ -2,3 +2,4 @@ Source: aliyun-oss-c-sdk
Version: 3.7.1-1
Description: Alibaba Cloud Object Storage Service (OSS) is a cloud storage service provided by Alibaba Cloud, featuring massive capacity, security, a low cost, and high reliability.
Build-Depends: curl, apr-util
Supports: !uwp

View File

@ -1,3 +1,4 @@
Source: ampl-mp
Version: 2019-03-21-1
Description: An open-source library for mathematical programming
Supports: !uwp

View File

@ -2,6 +2,7 @@ Source: apr
Version: 1.6.5-3
Homepage: https://apr.apache.org/
Description: The Apache Portable Runtime (APR) is a C library that forms a system portability layer that covers many operating systems.
Supports: !uwp
Feature: private-headers
Description: Install non-standard files required for building Apache httpd

View File

@ -3,3 +3,4 @@ Version: 0.15.1
Build-Depends: boost-system, boost-filesystem, boost-multiprecision, boost-algorithm, flatbuffers, rapidjson, zlib, lz4, brotli, zstd, snappy, gflags, thrift, double-conversion, glog, uriparser
Homepage: https://github.com/apache/arrow
Description: Apache Arrow is a columnar in-memory analytics layer designed to accelerate big data. It houses a set of canonical in-memory representations of flat and hierarchical data along with multiple language-bindings for structure manipulation. It also provides IPC and common algorithm implementations.
Supports: x64

View File

@ -1,5 +1,5 @@
Source: aws-sdk-cpp
Version: 1.7.214
Version: 1.7.214-1
Homepage: https://github.com/aws/aws-sdk-cpp
Description: AWS SDK for C++
Build-Depends: openssl (!uwp&!windows), curl (!uwp&!windows), aws-c-event-stream

View File

@ -3,7 +3,7 @@ vcpkg_buildpath_length_warning(37)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO aws/aws-sdk-cpp
REF e8a7e7263e900983921e95363026efaa494622ab # 1.7.214
REF e8a7e7263e900983921e95363026efaa494622ab # 1.7.214
SHA512 dc4e003ffaebf21410d8d360f8a4602dda99d3ee0c0ab7fb61c97fe8b5f0b38438ed5315fb85d3a435cd5a99724e43c5cf569a7cb365ed8137caeac32c619a86
HEAD_REF master
)
@ -14,14 +14,11 @@ set(BUILD_ONLY core)
include(${CMAKE_CURRENT_LIST_DIR}/compute_build_only.cmake)
if(CMAKE_HOST_WIN32)
string(REPLACE ";" "\\\\\\;" BUILD_ONLY "${BUILD_ONLY}")
else()
string(REPLACE ";" "\\\\\\\\\\\;" BUILD_ONLY "${BUILD_ONLY}")
endif()
string(REPLACE ";" "\\\\\\\\\\\;" BUILD_ONLY "${BUILD_ONLY}")
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
DISABLE_PARALLEL_CONFIGURE
PREFER_NINJA
OPTIONS
-DENABLE_UNITY_BUILD=ON

View File

@ -4,3 +4,4 @@ Build-Depends: cpprestsdk[core], atlmfc (windows), boost-log (!windows&!uwp), bo
Description: Microsoft Azure Storage Client SDK for C++
A client library for working with Microsoft Azure storage services including blobs, files, tables, and queues. This client library enables working with the Microsoft Azure storage services which include the blob service for storing binary and text data, the file service for storing binary and text data, the table service for storing structured non-relational data, and the queue service for storing messages that may be accessed by a client.
Homepage: https://blogs.msdn.com/b/windowsazurestorage/
Supports: !uwp

View File

@ -2,3 +2,4 @@ Source: benchmark
Version: 1.5
Homepage: https://github.com/google/benchmark
Description: A library to support the benchmarking of functions, similar to unit-tests.
Supports: !uwp

View File

@ -2,3 +2,4 @@ Source: berkeleydb
Version: 4.8.30-3
Homepage: https://download.oracle.com/
Description: BDB - A high-performance embedded database for key/value data.
Supports: !uwp

View File

@ -2,3 +2,4 @@ Source: c-ares
Version: 2019-5-2-1
Homepage: https://github.com/c-ares/c-ares
Description: A C library for asynchronous DNS requests
Supports: !uwp

View File

@ -3,3 +3,4 @@ Version: 0.8.1-3
Build-Depends: lmdb, gflags, glog, eigen3, protobuf
Homepage: https://github.com/caffe2/caffe2
Description: Caffe2 is a lightweight, modular, and scalable deep learning framework.
Supports: !x86

View File

@ -3,3 +3,4 @@ Version: 0.7.0-3
Description: Data interchange format and capability-based RPC system
Homepage: https://capnproto.org/
Build-Depends: zlib
Supports: !uwp

View File

@ -1,3 +1,4 @@
Source: civetweb
Version: 2019-07-05
Description: Easy to use, powerful, C/C++ embeddable web server.
Supports: !uwp

View File

@ -2,3 +2,4 @@ Source: coroutine
Version: 2020-01-13
Build-Depends: ms-gsl
Description: C++ coroutine helper/example library
Supports: !x86

View File

@ -3,3 +3,4 @@ Version: 0.13.0-3
Homepage: https://cpp-netlib.org/
Build-Depends: boost
Description: A collection of network-related routines/implementations geared towards providing a robust cross-platform networking library
Supports: !uwp

View File

@ -1,6 +1,7 @@
Source: cppfs
Version: 1.2.0-1
Description: Cross-platform C++ file system library supporting multiple backends
Supports: !uwp
Feature: ssh
Description: SSH backend for cppfs

View File

@ -1,4 +1,4 @@
Source: cppitertools
Version: 2019-04-14-2
Version: 2019-04-14-3
Description: Range-based for loop add-ons inspired by the Python builtins and itertools library
Build-Depends: boost-optional

View File

@ -1,7 +1,3 @@
# header-only library
include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO ryanhaining/cppitertools
@ -13,8 +9,8 @@ vcpkg_from_github(
file(GLOB INCLUDE_FILES ${SOURCE_PATH}/*.hpp)
file(GLOB INCLUDE_INTERNAL_FILES ${SOURCE_PATH}/internal/*.hpp)
file(COPY ${INCLUDE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
file(COPY ${INCLUDE_INTERNAL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/internal)
file(COPY ${INCLUDE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/cppitertools)
file(COPY ${INCLUDE_INTERNAL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/cppitertools/internal)
# Handle copyright
configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)

View File

@ -2,3 +2,4 @@ Source: cudnn
Version: 7.6
Description: NVIDIA's cuDNN deep neural network acceleration library
Build-Depends: cuda
Supports: (windows|linux)&x64

View File

@ -2,6 +2,7 @@ Source: darknet
Version: 0.2.5.1-1
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
Supports: !(arm|uwp)
Feature: cuda
Build-Depends: cuda

View File

@ -3,7 +3,6 @@ if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStor
return()
endif()
include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO tronkko/dirent
@ -14,3 +13,5 @@ vcpkg_from_github(
file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/dirent RENAME copyright)
vcpkg_copy_pdbs()
set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled)

View File

@ -1,4 +1,3 @@
include(vcpkg_common_functions)
set(SOURCE_VERSION 1.1.1)
vcpkg_from_github(
@ -27,3 +26,5 @@ vcpkg_copy_pdbs()
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright)
set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled)

View File

@ -3,6 +3,7 @@ Version: 2019-08-12-1
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

View File

@ -1,4 +1,4 @@
Source: dpdk
Version: 19.02
Description: A set of libraries and drivers for fast packet processing
Supports: linux

View File

@ -1,4 +1,5 @@
Source: easyhook
Version: 2.7.6789.0
Homepage: https://github.com/EasyHook/EasyHook
Description: This project supports extending (hooking) unmanaged code (APIs) with pure managed ones, from within a fully managed environment on 32- or 64-bit Windows Vista x64, Windows Server 2008 x64, Windows 7, Windows 8.1, and Windows 10.
Description: This project supports extending (hooking) unmanaged code (APIs) with pure managed ones, from within a fully managed environment on 32- or 64-bit Windows Vista x64, Windows Server 2008 x64, Windows 7, Windows 8.1, and Windows 10.
Supports: windows

View File

@ -2,3 +2,4 @@ Source: ebml
Version: 1.3.9
Homepage: https://github.com/Matroska-Org/libebml
Description: a C++ libary to parse EBML files
Supports: !uwp

View File

@ -2,3 +2,4 @@ Source: expat
Version: 2.2.7
Homepage: https://github.com/libexpat/libexpat
Description: XML parser library written in C
Supports: !uwp

View File

@ -3,3 +3,4 @@ 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
Supports: !(windows|arm|uwp)

View File

@ -4,6 +4,7 @@ Homepage: https://github.com/facebook/folly
Description: An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows
Build-Depends: openssl, libevent, double-conversion, glog, gflags, boost-chrono, boost-context, boost-conversion, boost-crc, boost-date-time, boost-filesystem, boost-multi-index, boost-program-options, boost-regex, boost-system, boost-thread, boost-smart-ptr
Default-Features: zlib
Supports: x64
Feature: zlib
Build-Depends: zlib

View File

@ -2,3 +2,4 @@ Source: forge
Version: 1.0.4-2
Description: Helps with high performance visualizations involving OpenGL-CUDA/OpenCL interop.
Build-Depends: glfw3, glm, glbinding, freetype, boost-functional, freeimage, fontconfig (!windows)
Supports: x64

View File

@ -2,3 +2,4 @@ Source: getopt-win32
Version: 0.1
Description: An implementation of getopt.
Homepage: https://github.com/libimobiledevice-win32
Supports: windows

View File

@ -1,5 +1,3 @@
include(vcpkg_common_functions)
if(VCPKG_CMAKE_SYSTEM_NAME)
message(FATAL_ERROR "getopt-win32 only supports building on Windows Desktop")
endif()
@ -22,3 +20,5 @@ vcpkg_install_msbuild(
# Copy header
file(COPY ${SOURCE_PATH}/getopt.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/)
set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled)

View File

@ -2,3 +2,4 @@ Source: getopt
Version: 0
Description: The getopt and getopt_long functions automate some of the chore involved in parsing typical unix command line options.
Build-Depends: getopt-win32 (windows)
Supports: !uwp

View File

@ -1,16 +1,16 @@
if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
if(VCPKG_TARGET_IS_LINUX)
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
if (NOT EXISTS "/usr/include/libintl.h")
message(FATAL_ERROR "Please use command \"sudo apt-get install gettext\" to install gettext on linux.")
endif()
file(COPY ${CMAKE_CURRENT_LIST_DIR}/unofficial-gettext-config.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/unofficial-gettext)
return()
else()
set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled)
endif()
#Based on https://github.com/winlibs/gettext
include(vcpkg_common_functions)
set(GETTEXT_VERSION 0.19)
vcpkg_download_distfile(ARCHIVE

View File

@ -2,3 +2,4 @@ Source: gflags
Version: 2.2.2-1
Homepage: https://github.com/gflags/gflags
Description: A C++ library that implements commandline flags processing
Supports: !uwp

View File

@ -3,6 +3,7 @@ Version: 2.52.3-14-5
Homepage: https://developer.gnome.org/glib/
Description: Portable, general-purpose utility library.
Build-Depends: zlib, pcre, libffi, gettext, libiconv
Supports: !uwp
Feature: selinux
Description: Build with selinux support.

View File

@ -2,4 +2,5 @@ Source: glibmm
Version: 2.52.1-11
Description: This is glibmm, a C++ API for parts of glib that are useful for C++.
Homepage: https://www.gtkmm.org.
Build-Depends: zlib, pcre, libffi, gettext, libiconv, glib, libsigcpp
Build-Depends: zlib, pcre, libffi, gettext, libiconv, glib, libsigcpp
Supports: !uwp

View File

@ -1,3 +1,4 @@
Source: gmmlib
Version: 19.2.3
Description: intel's graphics memory management library
Supports: linux

View File

@ -3,3 +3,4 @@ Version: 0.1.5
Build-Depends: grpc, protobuf
Description: C++ Proto Libraries for Google APIs.
Homepage: https://github.com/googleapis/cpp-cmakefiles
Supports: !uwp

View File

@ -1,31 +0,0 @@
diff --git a/third_party/upb/upb/msg.c b/third_party/upb/upb/msg.c
index a77da5665c..399e8753ba 100644
--- a/third_party/upb/upb/msg.c
+++ b/third_party/upb/upb/msg.c
@@ -33,17 +33,26 @@ static size_t upb_msg_sizeof(const upb_msglayout *l) {
}
static upb_msg_internal *upb_msg_getinternal(upb_msg *msg) {
+#pragma warning(push)
+#pragma warning(disable : 4146)
return VOIDPTR_AT(msg, -sizeof(upb_msg_internal));
+#pragma warning(pop)
}
static const upb_msg_internal *upb_msg_getinternal_const(const upb_msg *msg) {
+#pragma warning(push)
+#pragma warning(disable : 4146)
return VOIDPTR_AT(msg, -sizeof(upb_msg_internal));
+#pragma warning(pop)
}
static upb_msg_internal_withext *upb_msg_getinternalwithext(
upb_msg *msg, const upb_msglayout *l) {
UPB_ASSERT(l->extendable);
+#pragma warning(push)
+#pragma warning(disable : 4146)
return VOIDPTR_AT(msg, -sizeof(upb_msg_internal_withext));
+#pragma warning(pop)
}
upb_msg *upb_msg_new(const upb_msglayout *l, upb_arena *a) {

View File

@ -0,0 +1,118 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b535f10..0fcb682 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1530,7 +1530,7 @@ target_link_libraries(grpc
${_gRPC_UPB_LIBRARIES}
${_gRPC_ALLTARGETS_LIBRARIES}
gpr
- upb
+ ${_gRPC_UPB_LIBRARIES}
)
if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
target_link_libraries(grpc "-framework CoreFoundation")
@@ -1941,7 +1941,7 @@ target_link_libraries(grpc_cronet
${_gRPC_UPB_LIBRARIES}
${_gRPC_ALLTARGETS_LIBRARIES}
gpr
- upb
+ ${_gRPC_UPB_LIBRARIES}
)
if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
target_link_libraries(grpc_cronet "-framework CoreFoundation")
@@ -2283,7 +2283,7 @@ target_link_libraries(grpc_test_util
${_gRPC_ALLTARGETS_LIBRARIES}
gpr
grpc
- upb
+ ${_gRPC_UPB_LIBRARIES}
)
if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
target_link_libraries(grpc_test_util "-framework CoreFoundation")
@@ -2626,7 +2626,7 @@ target_link_libraries(grpc_test_util_unsecure
${_gRPC_ALLTARGETS_LIBRARIES}
gpr
grpc_unsecure
- upb
+ ${_gRPC_UPB_LIBRARIES}
)
if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
target_link_libraries(grpc_test_util_unsecure "-framework CoreFoundation")
@@ -3017,7 +3017,7 @@ target_link_libraries(grpc_unsecure
${_gRPC_UPB_LIBRARIES}
${_gRPC_ALLTARGETS_LIBRARIES}
gpr
- upb
+ ${_gRPC_UPB_LIBRARIES}
)
if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
target_link_libraries(grpc_unsecure "-framework CoreFoundation")
@@ -3553,7 +3553,7 @@ target_link_libraries(grpc++
${_gRPC_ALLTARGETS_LIBRARIES}
grpc
gpr
- upb
+ ${_gRPC_UPB_LIBRARIES}
)
foreach(_hdr
@@ -4817,7 +4817,7 @@ target_link_libraries(grpc++_unsecure
${_gRPC_ALLTARGETS_LIBRARIES}
gpr
grpc_unsecure
- upb
+ ${_gRPC_UPB_LIBRARIES}
)
foreach(_hdr
@@ -5848,7 +5848,7 @@ if(gRPC_INSTALL)
endif()
endif()
-
+if(0)
add_library(upb
third_party/upb/upb/decode.c
third_party/upb/upb/encode.c
@@ -5888,10 +5888,10 @@ target_include_directories(upb
target_link_libraries(upb
${_gRPC_ALLTARGETS_LIBRARIES}
)
+endif()
-
-if(gRPC_INSTALL)
+if(gRPC_INSTALL AND 0)
install(TARGETS upb EXPORT gRPCTargets
RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
diff --git a/cmake/gRPCConfig.cmake.in b/cmake/gRPCConfig.cmake.in
index 504d5a7..e2a3122 100644
--- a/cmake/gRPCConfig.cmake.in
+++ b/cmake/gRPCConfig.cmake.in
@@ -3,6 +3,7 @@
@_gRPC_FIND_PROTOBUF@
@_gRPC_FIND_SSL@
@_gRPC_FIND_CARES@
+find_package(upb CONFIG)
# Targets
include(${CMAKE_CURRENT_LIST_DIR}/gRPCTargets.cmake)
diff --git a/cmake/upb.cmake b/cmake/upb.cmake
index 2c0ab84..746e067 100644
--- a/cmake/upb.cmake
+++ b/cmake/upb.cmake
@@ -12,9 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-set(UPB_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/upb)
+find_package(upb REQUIRED)
+set(_gRPC_UPB_INCLUDE_DIR)
-set(_gRPC_UPB_INCLUDE_DIR "${UPB_ROOT_DIR}")
set(_gRPC_UPB_GRPC_GENERATED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/core/ext/upb-generated")
-set(_gRPC_UPB_LIBRARIES upb)
+set(_gRPC_UPB_LIBRARIES upb::upb)

View File

@ -1,5 +1,5 @@
Source: grpc
Version: 1.26.0
Build-Depends: zlib, openssl, protobuf, c-ares (!uwp)
Version: 1.26.0-1
Build-Depends: zlib, openssl, protobuf, c-ares (!uwp), upb
Homepage: https://github.com/grpc/grpc
Description: An RPC library and framework

View File

@ -1,15 +1,7 @@
include(vcpkg_common_functions)
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR NOT VCPKG_CMAKE_SYSTEM_NAME)
if(VCPKG_TARGET_IS_WINDOWS)
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
endif()
# This snippet is a workaround for users who are upgrading from an extremely old version of this
# port, which cloned directly into `src\`
if(EXISTS "${CURRENT_BUILDTREES_DIR}/src/.git")
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src)
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO grpc/grpc
@ -23,28 +15,19 @@ vcpkg_from_github(
00004-link-gdi32-on-windows.patch
00005-fix-uwp-error.patch
00006-crypt32.patch
00008-uwp_upb_disable_C4146_error.patch
00009-use-system-upb.patch
)
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
if(VCPKG_TARGET_IS_UWP OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
set(gRPC_BUILD_CODEGEN OFF)
else()
set(gRPC_BUILD_CODEGEN ON)
endif()
if(VCPKG_CRT_LINKAGE STREQUAL "static")
set(gRPC_MSVC_STATIC_RUNTIME ON)
else()
set(gRPC_MSVC_STATIC_RUNTIME OFF)
endif()
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" gRPC_MSVC_STATIC_RUNTIME)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" gRPC_STATIC_LINKING)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
set(gRPC_STATIC_LINKING ON)
else()
set(gRPC_STATIC_LINKING OFF)
endif()
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
if(VCPKG_TARGET_IS_UWP)
set(cares_CARES_PROVIDER OFF)
else()
set(cares_CARES_PROVIDER "package")

View File

@ -3,3 +3,4 @@ Version: 3.22.2-2
Homepage: https://www.gtkmm.org/
Description: gtkmm is the official C++ interface for the popular GUI library GTK+.
Build-Depends: glib, atk, gtk, gdk-pixbuf, pango, cairo, libepoxy, gettext, glibmm, atkmm, cairomm, pangomm
Supports: !uwp

View File

@ -1,8 +1,9 @@
Source: hdf5
Version: 1.10.5-9
Version: 1.10.5-10
Homepage: https://www.hdfgroup.org/downloads/hdf5/
Description: HDF5 is a data model, library, and file format for storing and managing data
Default-Features: szip, zlib
Supports: !uwp
Feature: parallel
Description: parallel support for HDF5

View File

@ -3,3 +3,4 @@ Version: 1.11.7-3
Homepage: https://github.com/open-mpi/hwloc
Description: Portable Hardware Locality (hwloc)
The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various system attributes such as cache and memory information as well as the locality of I/O devices such as network interfaces, InfiniBand HCAs or GPUs.
Supports: !uwp

View File

@ -2,3 +2,4 @@ Source: icu
Version: 61.1-8
Homepage: http://icu-project.org/apiref/icu4c/
Description: Mature and widely used Unicode and localization library.
Supports: !uwp

View File

@ -1,4 +1,5 @@
Source: jinja2cpplight
Version: 2018-05-08
Homepage: https://github.com/hughperkins/Jinja2CppLight
Description: (very) lightweight version of Jinja2 for C++, Lightweight templating engine for C++, based on Jinja2.
Description: (very) lightweight version of Jinja2 for C++, Lightweight templating engine for C++, based on Jinja2.
Supports: !uwp

View File

@ -0,0 +1,13 @@
diff --git a/core/vm.cpp b/core/vm.cpp
index 0cf06fa..d65a6d7 100644
--- a/core/vm.cpp
+++ b/core/vm.cpp
@@ -23,7 +23,7 @@ limitations under the License.
#include "desugarer.h"
#include "json.h"
-#include "json.hpp"
+#include "nlohmann/json.hpp"
#include "md5.h"
#include "parser.h"
#include "state.h"

View File

@ -24,7 +24,7 @@ index 82fb7c2..a94b4ff 100644
endif()
+
+
+install(FILES ${LIBJSONNET_HEADERS} DESTINATION include)
+install(FILES ${LIB_HEADER} DESTINATION include)
\ No newline at end of file
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index bf349df..6ed1442 100644

View File

@ -1,4 +1,5 @@
Source: jsonnet
Version: 0.14.0
Version: 0.14.0-1
Homepage: https://github.com/google/jsonnet
Description: Jsonnet - The data templating language
Build-Depends: nlohmann-json

View File

@ -11,9 +11,10 @@ vcpkg_from_github(
PATCHES
001-enable-msvc.patch
002-fix-dependency-and-install.patch
0003-use-upstream-nlohmann-json.patch
)
if (VCPKG_TARGET_IS_WINDOWS)
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}"
@ -27,7 +28,7 @@ else()
)
endif()
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
set(BUILD_SHARED ON)
set(BUILD_STATIC OFF)
else()
@ -44,6 +45,7 @@ vcpkg_configure_cmake(
-DBUILD_JSONNET=OFF
-DBUILD_JSONNETFMT=OFF
-DBUILD_TESTS=OFF
-DUSE_SYSTEM_JSON=ON
)
vcpkg_install_cmake()

View File

@ -1,3 +1,4 @@
Source: kinectsdk1
Version: 1.8-2
Description: Kinect for Windows SDK for Kinect v1 sensor.
Supports: !arm

View File

@ -1,3 +1,4 @@
Source: kinectsdk2
Version: 2.0-2
Description: Kinect for Windows SDK for Kinect v2 sensor.
Supports: !arm

View File

@ -1,4 +1,5 @@
Source: lastools
Version: 2019-07-10
Homepage: https://github.com/LAStools/LAStools
Description: LAStools: award-winning software for efficient LiDAR processing (with LASzip)
Description: LAStools: award-winning software for efficient LiDAR processing (with LASzip)
Supports: !uwp

View File

@ -2,3 +2,4 @@ Source: leveldb
Version: 1.22-1
Homepage: https://github.com/bitcoin-core/leveldb
Description: LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
Supports: !uwp

View File

@ -4,6 +4,7 @@ Homepage: https://github.com/libarchive/libarchive
Description: Library for reading and writing streaming archives
Build-Depends: zlib
Default-Features: bzip2, libxml2, lz4, lzma, lzo, openssl
Supports: !uwp
Feature: bzip2
Build-Depends: bzip2

View File

@ -1,7 +1,8 @@
Source: libevent
Version: 2.1.11-4
Version: 2.1.11-5
Homepage: https://github.com/libevent/libevent
Description: An event notification library
Supports: !uwp
Default-Features: thread
Feature: openssl

View File

@ -2,3 +2,4 @@ Source: libexif
Version: 0.6.21-2
Homepage: https://libexif.github.io/
Description: a library for parsing, editing, and saving EXIF data
Supports: !uwp

View File

@ -2,3 +2,4 @@ Source: libffi
Version: 3.1-7
Homepage: https://github.com/libffi/libffi
Description: Portable, high level programming interface to various calling conventions
Supports: !arm

View File

@ -3,3 +3,4 @@ Version: 0.28.4
Homepage: https://github.com/libgit2/libgit2
Build-Depends: openssl (!windows&&!uwp)
Description: Git linkable library
Supports: !uwp

View File

@ -40,3 +40,5 @@ vcpkg_copy_pdbs()
file(INSTALL ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
vcpkg_test_cmake(PACKAGE_NAME unofficial-iconv)
set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled)

View File

@ -3,3 +3,4 @@ Version: 8.0.4-5
Homepage: https://github.com/mysql/mysql-server
Build-Depends: boost-algorithm, boost-geometry, boost-optional, boost-functional, boost-graph, openssl, icu, libevent, liblzma, lz4, zlib
Description: A MySQL client library for C development.
Supports: !(windows&x86)&!uwp

View File

@ -2,8 +2,7 @@ cmake_minimum_required(VERSION 3.0)
project(libodb-sqlite VERSION 2.4.0 LANGUAGES CXX)
find_package(odb 2.4.0 REQUIRED COMPONENTS libodb)
find_package(sqlite3 CONFIG)
configure_file(config.unix.h.in
${CMAKE_CURRENT_SOURCE_DIR}/odb/sqlite/details/config.h COPYONLY)
configure_file(config.unix.h.in odb/sqlite/details/config.h COPYONLY)
set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)")
file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False
@ -15,7 +14,7 @@ target_include_directories(libodb-sqlite
PUBLIC
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
)
target_link_libraries(libodb-sqlite PRIVATE odb::libodb sqlite3)
@ -35,14 +34,22 @@ install(TARGETS libodb-sqlite EXPORT odb_sqliteConfig
RUNTIME DESTINATION bin
)
if(LIBODB_INSTALL_HEADERS)
install(DIRECTORY odb DESTINATION include/
install(
DIRECTORY odb
DESTINATION include/
COMPONENT sqlite
FILES_MATCHING
PATTERN "*.h"
PATTERN "*.hxx"
PATTERN "*.ixx"
PATTERN "*.txx"
)
)
install(
FILES config.unix.h.in
DESTINATION include/odb/sqlite/detail
COMPONENT sqlite
RENAME config.h
)
endif()
install(EXPORT odb_sqliteConfig NAMESPACE odb:: COMPONENT sqlite DESTINATION share/odb)
export(TARGETS libodb-sqlite NAMESPACE odb:: FILE odb_sqliteConfig.cmake)

View File

@ -1,5 +1,5 @@
Source: libodb-sqlite
Version: 2.4.0-5
Version: 2.4.0-6
Homepage: https://www.codesynthesis.com/products/odb/
Description: Sqlite support for the ODB ORM library
Build-Depends: libodb, sqlite3

View File

@ -20,6 +20,7 @@ file(COPY
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
DISABLE_PARALLEL_CONFIGURE
OPTIONS_DEBUG
-DLIBODB_INSTALL_HEADERS=OFF
)

View File

@ -3,3 +3,4 @@ Version: 2017-01-28-cf2390140
Homepage: https://github.com/OpenMPT/openmpt
Description: a library to render tracker music
Build-Depends: zlib, mpg123, libogg, libvorbis, portaudio, libflac
Supports: !uwp

View File

@ -3,3 +3,4 @@ Version: 0.2.1
Homepage: https://github.com/xiph/libopusenc
Description: Library for encoding .opus audio files and live streams.
Build-Depends: opus
Supports: !uwp

View File

@ -1,4 +1,5 @@
Source: libosip2
Version: 5.1.0-3
Homepage: https://www.gnu.org/software/osip/
Description: oSIP is an LGPL implementation of SIP. It's stable, portable, flexible and compliant! -may be more-! It is used mostly with eXosip2 stack (GPL) which provides simpler API for User-Agent implementation.
Description: oSIP is an LGPL implementation of SIP. It's stable, portable, flexible and compliant! -may be more-! It is used mostly with eXosip2 stack (GPL) which provides simpler API for User-Agent implementation.
Supports: !(windows|uwp)

View File

@ -2,3 +2,4 @@ Source: libp7-baical
Version: 4.4-4
Homepage: https://baical.net/
Description: P7 is a library for high-speed sending telemetry & trace data from application
Supports: !(arm|uwp)

View File

@ -1,3 +1,4 @@
Source: libp7client
Version: 5.2-1
Description: Open source, cross-platform, fastest library for sending logs, telemetry & trace data from your application.
Supports: x86|x64

View File

@ -1,6 +1,7 @@
Source: libpq
Version: 12.0
Build-Depends: libpq[bonjour] (osx)
Supports: !uwp
Homepage: https://www.postgresql.org/
Description: The official database access API of postgresql
Default-Features: zlib, openssl
@ -79,4 +80,4 @@ Build-Depends: libxslt
Description: Build with libxslt (--with-libxslt)
Feature: client
Description: Build all client tools and libraries.
Description: Build all client tools and libraries.

View File

@ -67,6 +67,7 @@ install(DIRECTORY include/ DESTINATION include
PATTERN "*.am" EXCLUDE
PATTERN "*.in" EXCLUDE
PATTERN "*.template" EXCLUDE
PATTERN "CMakeLists.txt" EXCLUDE
)
install(DIRECTORY ${CMAKE_BINARY_DIR}/pqxx/ DESTINATION include/pqxx
CONFIGURATIONS Release

View File

@ -1,5 +1,5 @@
Source: libpqxx
Version: 6.4.5-1
Version: 6.4.5-2
Homepage: https://github.com/jtv/libpqxx
Description: The official C++ client API for PostgreSQL
Build-Depends: libpq
Build-Depends: libpq[core]

View File

@ -6,8 +6,8 @@ vcpkg_from_github(
REF a6b1d60e74c1427c8ac2324b85cd4a0dc2068332
SHA512 990083f738322283dc9c98b138a676e5ba04ab77794d5a51d672557e0562d2366b5085ad5571dd91af8ba4dea56baa94e8c1e4e6fe571341c95e92eb28d2b15a
HEAD_REF master
PATCHES
fix-deprecated-bug.patch
PATCHES
fix-deprecated-bug.patch
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})

View File

@ -1,6 +1,7 @@
Source: libressl
Version: 2.9.1-2
Description: LibreSSL is a version of the TLS/crypto stack forked from OpenSSL in 2014, with goals of modernizing the codebase, improving security, and applying best practice development processes.
Supports: !(uwp|arm)
Feature: tools
Description: Build openssl and ocspcheck executables

View File

@ -1,4 +1,5 @@
Source: libsoundio
Version: 2.0.0-1
Version: 2.0.0-3
Description: libsoundio is C library providing cross-platform audio input and output.
Homepage: http://libsound.io/
Supports: !uwp

View File

@ -1,184 +1,49 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6541f1b..058bf3b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,4 @@
cmake_minimum_required(VERSION 2.8.5)
-project(libsoundio C)
-set(CMAKE_MODULE_PATH ${libsoundio_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
if(CMAKE_VERSION VERSION_LESS 3.0.0)
set(CMAKE_INSTALL_LIBDIR "lib" CACHE PATH "library install dir (lib)")
@@ -11,6 +9,11 @@ else()
cmake_policy(SET CMP0046 NEW)
include(GNUInstallDirs)
endif()
+cmake_policy(SET CMP0022 NEW)
+
+project(libsoundio C)
+set(CMAKE_MODULE_PATH ${libsoundio_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
+set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
@@ -27,8 +30,7 @@ if(NOT SOUNDIO_STATIC_LIBNAME)
set(SOUNDIO_STATIC_LIBNAME soundio)
endif()
-option(BUILD_STATIC_LIBS "Build static libraries" ON)
-option(BUILD_DYNAMIC_LIBS "Build dynamic libraries" ON)
+option(BUILD_SHARED_LIBS "Build dynamic libraries" ON)
option(BUILD_EXAMPLE_PROGRAMS "Build example programs" ON)
option(BUILD_TESTS "Build tests" ON)
option(ENABLE_JACK "Enable JACK backend" ON)
@@ -203,7 +205,7 @@ if(MSVC)
set(EXAMPLE_CFLAGS "/W4")
set(TEST_CFLAGS "${LIB_CFLAGS}")
set(TEST_LDFLAGS " ")
- set(LIBM " ")
+ set(LIBM "")
else()
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Werror -pedantic")
set(LIB_CFLAGS "-std=c11 -fvisibility=hidden -Wall -Werror=strict-prototypes -Werror=old-style-definition -Werror=missing-prototypes -D_REENTRANT -D_POSIX_C_SOURCE=200809L -Wno-missing-braces")
@@ -223,32 +225,33 @@ configure_file(
${DOXYGEN_CONF_FILE}
)
-if(BUILD_DYNAMIC_LIBS)
- add_library(libsoundio_shared SHARED ${LIBSOUNDIO_SOURCES})
- set_target_properties(libsoundio_shared PROPERTIES
+if(BUILD_SHARED_LIBS)
+ add_library(libsoundio SHARED ${LIBSOUNDIO_SOURCES})
+ set_target_properties(libsoundio PROPERTIES PUBLIC_HEADER "${LIBSOUNDIO_HEADERS}")
+ set_target_properties(libsoundio PROPERTIES
OUTPUT_NAME soundio
SOVERSION ${LIBSOUNDIO_VERSION_MAJOR}
VERSION ${LIBSOUNDIO_VERSION}
COMPILE_FLAGS ${LIB_CFLAGS}
LINKER_LANGUAGE C
)
- target_link_libraries(libsoundio_shared LINK_PUBLIC ${LIBSOUNDIO_LIBS})
- install(TARGETS libsoundio_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
-endif()
-
-if(BUILD_STATIC_LIBS)
- add_library(libsoundio_static STATIC ${LIBSOUNDIO_SOURCES})
- set_target_properties(libsoundio_static PROPERTIES
- OUTPUT_NAME ${SOUNDIO_STATIC_LIBNAME}
+ target_link_libraries(libsoundio LINK_PUBLIC ${LIBSOUNDIO_LIBS})
+ install(TARGETS libsoundio EXPORT libsoundio-export LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+else()
+ add_library(libsoundio STATIC ${LIBSOUNDIO_SOURCES})
+ set_target_properties(libsoundio PROPERTIES PUBLIC_HEADER "${LIBSOUNDIO_HEADERS}")
+ set_target_properties(libsoundio PROPERTIES
+ OUTPUT_NAME soundio
COMPILE_FLAGS ${LIB_CFLAGS}
LINKER_LANGUAGE C
)
- install(TARGETS libsoundio_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ target_link_libraries(libsoundio LINK_PUBLIC ${LIBSOUNDIO_LIBS})
+ target_compile_definitions(libsoundio PUBLIC SOUNDIO_STATIC_LIBRARY)
+ install(TARGETS libsoundio EXPORT libsoundio-export LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
endif()
-install(FILES
- ${LIBSOUNDIO_HEADERS}
- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/soundio")
+add_library(libsoundio::libsoundio ALIAS libsoundio)
+install(EXPORT libsoundio-export FILE libsoundio-config.cmake DESTINATION share/libsoundio/ NAMESPACE ${PROJECT_NAME}:: EXPORT_LINK_INTERFACE_LIBRARIES)
# Example Programs
@@ -257,44 +260,28 @@ if(BUILD_EXAMPLE_PROGRAMS)
set_target_properties(sio_sine PROPERTIES
LINKER_LANGUAGE C
COMPILE_FLAGS ${EXAMPLE_CFLAGS})
- if(BUILD_DYNAMIC_LIBS)
- target_link_libraries(sio_sine libsoundio_shared ${LIBM})
- else()
- target_link_libraries(sio_sine libsoundio_static ${LIBSOUNDIO_LIBS} ${LIBM})
- endif()
+ target_link_libraries(sio_sine libsoundio::libsoundio ${LIBM})
install(TARGETS sio_sine DESTINATION ${CMAKE_INSTALL_BINDIR})
add_executable(sio_list_devices example/sio_list_devices.c)
set_target_properties(sio_list_devices PROPERTIES
LINKER_LANGUAGE C
COMPILE_FLAGS ${EXAMPLE_CFLAGS})
- if(BUILD_DYNAMIC_LIBS)
- target_link_libraries(sio_list_devices libsoundio_shared)
- else()
- target_link_libraries(sio_list_devices libsoundio_static ${LIBSOUNDIO_LIBS})
- endif()
+ target_link_libraries(sio_list_devices libsoundio::libsoundio)
install(TARGETS sio_list_devices DESTINATION ${CMAKE_INSTALL_BINDIR})
add_executable(sio_microphone example/sio_microphone.c)
set_target_properties(sio_microphone PROPERTIES
LINKER_LANGUAGE C
COMPILE_FLAGS ${EXAMPLE_CFLAGS})
- if(BUILD_DYNAMIC_LIBS)
- target_link_libraries(sio_microphone libsoundio_shared)
- else()
- target_link_libraries(sio_microphone libsoundio_static ${LIBSOUNDIO_LIBS})
- endif()
+ target_link_libraries(sio_microphone libsoundio::libsoundio)
install(TARGETS sio_microphone DESTINATION ${CMAKE_INSTALL_BINDIR})
add_executable(sio_record example/sio_record.c)
set_target_properties(sio_record PROPERTIES
LINKER_LANGUAGE C
COMPILE_FLAGS ${EXAMPLE_CFLAGS})
- if(BUILD_DYNAMIC_LIBS)
- target_link_libraries(sio_record libsoundio_shared)
- else()
- target_link_libraries(sio_record libsoundio_static ${LIBSOUNDIO_LIBS})
- endif()
+ target_link_libraries(sio_record libsoundio::libsoundio)
install(TARGETS sio_record DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()
@@ -308,7 +295,7 @@ if(BUILD_TESTS)
)
add_executable(latency "${libsoundio_SOURCE_DIR}/test/latency.c" ${LIBSOUNDIO_SOURCES})
- target_link_libraries(latency LINK_PUBLIC ${LIBSOUNDIO_LIBS} ${LIBM})
+ target_link_libraries(latency LINK_PUBLIC libsoundio::libsoundio ${LIBM})
set_target_properties(latency PROPERTIES
LINKER_LANGUAGE C
COMPILE_FLAGS ${LIB_CFLAGS}
@@ -318,31 +305,19 @@ if(BUILD_TESTS)
set_target_properties(underflow PROPERTIES
LINKER_LANGUAGE C
COMPILE_FLAGS ${EXAMPLE_CFLAGS})
- if(BUILD_DYNAMIC_LIBS)
- target_link_libraries(underflow libsoundio_shared ${LIBM})
- else()
- target_link_libraries(underflow libsoundio_static ${LIBSOUNDIO_LIBS} ${LIBM})
- endif()
+ target_link_libraries(underflow libsoundio::libsoundio ${LIBM})
add_executable(backend_disconnect_recover test/backend_disconnect_recover.c)
set_target_properties(backend_disconnect_recover PROPERTIES
LINKER_LANGUAGE C
COMPILE_FLAGS ${EXAMPLE_CFLAGS})
- if(BUILD_DYNAMIC_LIBS)
- target_link_libraries(backend_disconnect_recover libsoundio_shared)
- else()
- target_link_libraries(backend_disconnect_recover libsoundio_static ${LIBSOUNDIO_LIBS})
- endif()
+ target_link_libraries(backend_disconnect_recover libsoundio::libsoundio)
add_executable(overflow test/overflow.c)
set_target_properties(overflow PROPERTIES
LINKER_LANGUAGE C
COMPILE_FLAGS ${EXAMPLE_CFLAGS})
- if(BUILD_DYNAMIC_LIBS)
- target_link_libraries(overflow libsoundio_shared)
- else()
- target_link_libraries(overflow libsoundio_static ${LIBSOUNDIO_LIBS})
- endif()
+ target_link_libraries(overflow libsoundio::libsoundio)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6541f1b..e81bdce 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,5 @@
-cmake_minimum_required(VERSION 2.8.5)
+cmake_minimum_required(VERSION 3.14)
+cmake_policy(SET CMP0022 NEW)
project(libsoundio C)
set(CMAKE_MODULE_PATH ${libsoundio_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
@@ -233,7 +234,8 @@ if(BUILD_DYNAMIC_LIBS)
LINKER_LANGUAGE C
)
target_link_libraries(libsoundio_shared LINK_PUBLIC ${LIBSOUNDIO_LIBS})
- install(TARGETS libsoundio_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ target_include_directories(libsoundio_shared PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+ install(TARGETS libsoundio_shared EXPORT libsoundio-export)
endif()
if(BUILD_STATIC_LIBS)
@@ -243,9 +245,26 @@ if(BUILD_STATIC_LIBS)
COMPILE_FLAGS ${LIB_CFLAGS}
LINKER_LANGUAGE C
)
- install(TARGETS libsoundio_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ target_link_libraries(libsoundio_static PUBLIC ${LIBSOUNDIO_LIBS})
+ target_include_directories(libsoundio_static PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+ install(TARGETS libsoundio_static EXPORT libsoundio-export)
endif()
+add_library(libsoundio INTERFACE)
+if(BUILD_DYNAMIC_LIBS)
+ target_link_libraries(libsoundio INTERFACE libsoundio_shared)
+else()
+ target_link_libraries(libsoundio INTERFACE libsoundio_static)
+endif()
+install(TARGETS libsoundio EXPORT libsoundio-export)
+install(
+ EXPORT libsoundio-export
+ FILE libsoundio-config.cmake
+ DESTINATION share/libsoundio/
+ NAMESPACE ${PROJECT_NAME}::
+ EXPORT_LINK_INTERFACE_LIBRARIES
+)
+
install(FILES
${LIBSOUNDIO_HEADERS}
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/soundio")

View File

@ -1,8 +1,5 @@
include(vcpkg_common_functions)
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
message(FATAL_ERROR "WindowsStore not supported")
endif()
vcpkg_fail_port_install(ON_TARGET "UWP")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
@ -14,15 +11,22 @@ vcpkg_from_github(
fix_cmakelists.patch
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIBS)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_DYNAMIC_LIBS)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
-DBUILD_DYNAMIC_LIBS=${BUILD_DYNAMIC_LIBS}
-DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
-DBUILD_EXAMPLE_PROGRAMS=OFF
-DBUILD_TESTS=OFF
-DENABLE_JACK=OFF
-DENABLE_PULSEAUDIO=OFF
-DENABLE_ALSA=OFF
-DENABLE_COREAUDIO=${VCPKG_TARGET_IS_OSX}
-DENABLE_WASAPI=${VCPKG_TARGET_IS_WINDOWS}
)
vcpkg_install_cmake()

View File

@ -3,6 +3,7 @@ Version: 0.9.0
Homepage: https://www.libssh.org/
Description: libssh is a multiplatform C library implementing the SSHv2 and SSHv1 protocol on client and server side
Build-Depends: openssl
Supports: !uwp
Feature: zlib
Description: libssh with zlib

View File

@ -2,3 +2,4 @@ Source: libusb-win32
Version: 1.2.6.0-3
Homepage: https://sourceforge.net/projects/libusb-win32
Description: Allows user space applications to access many USB device on Windows.
Supports: windows

View File

@ -1,3 +1,4 @@
Source: libuuid
Version: 1.0.3-3
Description: Universally unique id library
Supports: linux|osx

View File

@ -2,6 +2,7 @@ Source: llgl
Version: 2019-08-15
Homepage: https://github.com/LukasBanana/LLGL
Description: Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal.
Supports: !uwp
Feature: opengl
Description: Support for opengl

View File

@ -3,6 +3,7 @@ Version: 8.0.0-3
Homepage: https://llvm.org/
Description: The LLVM Compiler Infrastructure
Build-Depends: atlmfc (windows)
Supports: !uwp
Default-Features: tools, utils
Feature: tools
@ -15,4 +16,4 @@ Feature: example
Description: Generate build targets for the LLVM examples
Feature: test
Description: Generate build targets for the LLVM unit tests.
Description: Generate build targets for the LLVM unit tests.

View File

@ -2,4 +2,4 @@ Source: log4cpp
Version: 2.9.1-2
Homepage: https://github.com/orocos-toolchain/log4cpp
Description: Log4cpp is library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. It is modeled after the Log4j Java library, staying as close to their API as is reasonable.
Supports: !uwp

View File

@ -2,3 +2,4 @@ Source: luajit
Version: 2.0.5-3
Homepage: https://github.com/LuaJIT/LuaJIT
Description: LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language.
Supports: !uwp

View File

@ -2,3 +2,4 @@ Source: lzfse
Version: 1.0-2
Homepage: https://github.com/lzfse/lzfse
Description: Lempel-Ziv style data compressor using Finite State Entropy coding.
Supports: !arm

View File

@ -2,3 +2,4 @@ Source: marl
Version: 2019-09-13
Description: A hybrid thread/fiber task scheduler written in C++ 11
Homepage: https://github.com/google/marl
Supports: !uwp

View File

@ -3,3 +3,4 @@ Version: 1.5.2
Homepage: https://github.com/Matroska-Org/libmatroska
Description: a C++ libary to parse Matroska files (.mkv and .mka)
Build-Depends: ebml
Supports: !uwp

View File

@ -1,4 +1,4 @@
Source: mcpp
Version: 2.7.2.14
Version: 2.7.2.14-1
Homepage: https://github.com/zeroc-ice/mcpp
Description: Fork of mcpp, a C/C++ preprocessor

View File

@ -15,7 +15,6 @@ vcpkg_install_cmake()
file(
INSTALL
${SOURCE_PATH}/config.h
${SOURCE_PATH}/mcpp_lib.h
${SOURCE_PATH}/mcpp_out.h
DESTINATION

View File

@ -2,3 +2,4 @@ Source: mdnsresponder
Version: 765.30.11-2
Description: The mDNSResponder project is a component of Bonjour, Apple's ease-of-use IP networking initiative.
Homepage: https://developer.apple.com/bonjour/
Supports: !arm

View File

@ -1,3 +1,4 @@
Source: mecab
Version: 1.0
Description: A morphological analysis engine based on CRF
Supports: !(uwp|arm|arm64)

Some files were not shown because too many files have changed in this diff Show More