Spaces:
Sleeping
Sleeping
807af51cd844da1670795763b605831997c190297f26a49cf1bd73dcb77908d3
Browse files- third-party/DPVO/Pangolin/scripts/vcpkg/LICENSE.txt +23 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/NOTICE.txt +46 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/authentication.md +91 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/binarycaching.md +285 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/config-environment.md +98 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/host-dependencies.md +65 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/integration.md +177 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/manifests.md +521 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/mingw.md +153 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/registries.md +135 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/selecting-library-features.md +92 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/triplets.md +228 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/versioning.implementation-details.md +134 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/versioning.md +189 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/3fd/RapidXML.patch +10 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/3fd/portfile.cmake +70 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/3fd/vcpkg.json +23 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/7zip/7zip-config.cmake.in +5 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/7zip/CMakeLists.txt +457 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/7zip/portfile.cmake +30 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/7zip/vcpkg.json +19 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/abseil/fix-32-bit-arm.patch +23 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/abseil/fix-cxx-standard.patch +94 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/abseil/portfile.cmake +55 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/abseil/vcpkg.json +26 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/absent/portfile.cmake +33 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/absent/vcpkg.json +7 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/ace/portfile.cmake +437 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/ace/vcpkg.json +43 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/activemq-cpp/FunctionLevelLinkingOn.diff +76 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/activemq-cpp/activemq-cppConfig.cmake +319 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/activemq-cpp/fix-crt-linkage-dyn.patch +36 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/activemq-cpp/fix-crt-linkage.patch +36 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/activemq-cpp/portfile.cmake +130 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/activemq-cpp/vcpkg.json +14 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/ade/portfile.cmake +24 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/ade/vcpkg.json +6 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/advobfuscator/portfile.cmake +14 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/advobfuscator/vcpkg.json +8 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/aixlog/portfile.cmake +16 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/aixlog/vcpkg.json +11 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/akali/portfile.cmake +40 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/akali/vcpkg.json +8 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac-decoder/CMakeLists.txt +48 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac-decoder/decomp.c +11 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac-decoder/no-pragma-warning.patch +14 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac-decoder/portfile.cmake +32 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac/CMakeLists.txt +61 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac/portfile.cmake +26 -0
- third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac/vcpkg.json +8 -0
third-party/DPVO/Pangolin/scripts/vcpkg/LICENSE.txt
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Copyright (c) Microsoft Corporation
|
2 |
+
|
3 |
+
All rights reserved.
|
4 |
+
|
5 |
+
MIT License
|
6 |
+
|
7 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
8 |
+
this software and associated documentation files (the "Software"), to deal in
|
9 |
+
the Software without restriction, including without limitation the rights to
|
10 |
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
11 |
+
of the Software, and to permit persons to whom the Software is furnished to do
|
12 |
+
so, subject to the following conditions:
|
13 |
+
|
14 |
+
The above copyright notice and this permission notice shall be included in all
|
15 |
+
copies or substantial portions of the Software.
|
16 |
+
|
17 |
+
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
18 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
19 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
20 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
21 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
22 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
23 |
+
SOFTWARE.
|
third-party/DPVO/Pangolin/scripts/vcpkg/NOTICE.txt
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
vcpkg uses third party material from the projects listed below.
|
2 |
+
The original copyright notice and the license under which Microsoft
|
3 |
+
received such third party material are set forth below. Microsoft
|
4 |
+
reserves all other rights not expressly granted, whether by
|
5 |
+
implication, estoppel or otherwise.
|
6 |
+
|
7 |
+
In the event that we accidentally failed to list a required notice, please
|
8 |
+
bring it to our attention by posting an issue.
|
9 |
+
|
10 |
+
THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
|
11 |
+
Do Not Translate or Localize
|
12 |
+
|
13 |
+
vcpkg incorporates third party material from the projects listed below.
|
14 |
+
The original copyright notice and the license under which Microsoft received
|
15 |
+
such third party materials are set forth below. Microsoft reserved all other
|
16 |
+
rights not expressly granted, whether by implication, estoppel or otherwise.
|
17 |
+
|
18 |
+
1. Catch2
|
19 |
+
|
20 |
+
%% Catch2 NOTICES, INFORMATION, AND LICENSE BEGIN HERE
|
21 |
+
=========================================
|
22 |
+
Boost Software License - Version 1.0 - August 17th, 2003
|
23 |
+
|
24 |
+
Permission is hereby granted, free of charge, to any person or organization
|
25 |
+
obtaining a copy of the software and accompanying documentation covered by
|
26 |
+
this license (the "Software") to use, reproduce, display, distribute,
|
27 |
+
execute, and transmit the Software, and to prepare derivative works of the
|
28 |
+
Software, and to permit third-parties to whom the Software is furnished to
|
29 |
+
do so, all subject to the following:
|
30 |
+
|
31 |
+
The copyright notices in the Software and this entire statement, including
|
32 |
+
the above license grant, this restriction and the following disclaimer,
|
33 |
+
must be included in all copies of the Software, in whole or in part, and
|
34 |
+
all derivative works of the Software, unless such copies or derivative
|
35 |
+
works are solely in the form of machine-executable object code generated by
|
36 |
+
a source language processor.
|
37 |
+
|
38 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
39 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
40 |
+
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
41 |
+
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
42 |
+
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
43 |
+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
44 |
+
DEALINGS IN THE SOFTWARE.
|
45 |
+
=========================================
|
46 |
+
END OF Catch2 NOTICES, INFORMATION, AND LICENSE
|
third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/authentication.md
ADDED
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Authentication for Source Code
|
2 |
+
|
3 |
+
**The latest version of this documentation is available on [GitHub](https://github.com/Microsoft/vcpkg/tree/master/docs/users/authentication.md).**
|
4 |
+
|
5 |
+
Registries and `vcpkg_from_git()` directly use the git command line tools to fetch remote resources. Some of these resources may be protected from anonymous access and need authentication or credentials.
|
6 |
+
|
7 |
+
The strategies below all seek to achieve the same fundamental goal: `git clone https://....` should succeed without interaction. This enables vcpkg to be separated from the specifics of your authentication scheme, ensuring forwards compatibility with any additional security improvements in the future.
|
8 |
+
|
9 |
+
## Pre-seed git credentials
|
10 |
+
|
11 |
+
You can pre-seed git credentials via `git credential approve`:
|
12 |
+
|
13 |
+
Powershell:
|
14 |
+
```powershell
|
15 |
+
"url=https://github.com`npath=Microsoft/vcpkg`nusername=unused`npassword=$MY_PAT`n" | git credential approve
|
16 |
+
```
|
17 |
+
Bash:
|
18 |
+
```sh
|
19 |
+
echo "url=https://github.com"$'\n'"path=Microsoft/vcpkg"$'\n'"username=unused"$'\n'"password=$MY_PAT"$'\n' | git credential approve
|
20 |
+
```
|
21 |
+
|
22 |
+
## Bearer auth
|
23 |
+
|
24 |
+
For systems which need bearer auth, you can use `git config`:
|
25 |
+
|
26 |
+
**Note: you must make these config changes with `--global`**
|
27 |
+
```
|
28 |
+
git config --global --unset-all http.<uri>.extraheader
|
29 |
+
git config --global http.<uri>.extraheader "AUTHORIZATION: bearer <System_AccessToken>"
|
30 |
+
```
|
31 |
+
The `<uri>` can be filled in with a variety of options, documented in https://git-scm.com/docs/git-config#Documentation/git-config.txt-httplturlgt. For example, `https://dev.azure.com/MYORG/`.
|
32 |
+
|
33 |
+
(Original Source: https://github.com/Microsoft/azure-pipelines-agent/issues/1601#issuecomment-394511048).
|
34 |
+
|
35 |
+
**Note for Azure DevOps users:** You may need to enable access via Job authorization scope https://docs.microsoft.com/en-us/azure/devops/pipelines/process/access-tokens?view=azure-devops&tabs=yaml#job-authorization-scope. You may also need to "reference" the repo in your yaml via:
|
36 |
+
|
37 |
+
```yaml
|
38 |
+
resources:
|
39 |
+
repositories:
|
40 |
+
- repository: <FRIENDLYNAME>
|
41 |
+
type: git
|
42 |
+
name: <ORG>/<REPO>
|
43 |
+
tag: tags/<TAG>
|
44 |
+
|
45 |
+
...
|
46 |
+
|
47 |
+
jobs:
|
48 |
+
- job: Build
|
49 |
+
uses:
|
50 |
+
repositories: [<FRIENDLYNAME>]
|
51 |
+
```
|
52 |
+
|
53 |
+
## Pass credentials in an environment variable (not recommended)
|
54 |
+
|
55 |
+
Using `VCPKG_KEEP_ENV_VARS` or `VCPKG_ENV_PASSTHROUGH_UNTRACKED`, we can smuggle credential info via another var like `MY_TOKEN_VAR`.
|
56 |
+
```sh
|
57 |
+
export VCPKG_KEEP_ENV_VARS=MY_TOKEN_VAR
|
58 |
+
export MY_TOKEN_VAR=abc123
|
59 |
+
```
|
60 |
+
This can then be used in your private ports:
|
61 |
+
```cmake
|
62 |
+
# some/private/portfile.cmake
|
63 |
+
set(MY_TOKEN_VAR "")
|
64 |
+
if(DEFINED ENV{MY_TOKEN_VAR})
|
65 |
+
set(MY_TOKEN_VAR "$ENV{MY_TOKEN_VAR}@")
|
66 |
+
endif()
|
67 |
+
vcpkg_from_git(
|
68 |
+
URLS "https://${MY_TOKEN_VAR}host.com/normal/url/path"
|
69 |
+
...
|
70 |
+
)
|
71 |
+
```
|
72 |
+
```cmake
|
73 |
+
# some/other/private/portfile.cmake
|
74 |
+
vcpkg_from_github(
|
75 |
+
AUTHORIZATION_TOKEN "$ENV{MY_TOKEN_VAR}"
|
76 |
+
)
|
77 |
+
```
|
78 |
+
|
79 |
+
For private ports, we recommend using `vcpkg_from_git()` instead of `vcpkg_from_github()` and the pre-seeding method above.
|
80 |
+
|
81 |
+
## Pass Jenkins gitUsernamePassword credentials
|
82 |
+
|
83 |
+
The simplest and most secure option to Git authentication to GitHub from Jenkins is using [GitHub App](https://github.com/jenkinsci/github-branch-source-plugin/blob/master/docs/github-app.adoc) and the following:
|
84 |
+
```groovy
|
85 |
+
withCredentials([gitUsernamePassword(credentialsId: 'jenkins-github-app')]) {
|
86 |
+
withEnv(['VCPKG_KEEP_ENV_VARS=GIT_ASKPASS']) {
|
87 |
+
bat 'cmake'
|
88 |
+
}
|
89 |
+
}
|
90 |
+
```
|
91 |
+
This sets the GIT_ASKPASS with a path to helper script which responds with git credentials query and instructs `vcpkg` to keep this environment variable. The password is a [GitHub App token](https://github.blog/2021-04-05-behind-githubs-new-authentication-token-formats/) with 1 hour lifetime.
|
third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/binarycaching.md
ADDED
@@ -0,0 +1,285 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Binary Caching
|
2 |
+
|
3 |
+
**The latest version of this documentation is available on [GitHub](https://github.com/Microsoft/vcpkg/tree/master/docs/users/binarycaching.md).**
|
4 |
+
|
5 |
+
Libraries installed with vcpkg can always be built from source. However, that can duplicate work and waste time when working across multiple projects.
|
6 |
+
|
7 |
+
Binary caching is a vcpkg feature that saves copies of library binaries in a shared location that can be accessed by vcpkg for future installs. This means that, as a user, you should only need to build dependencies from source once. If vcpkg is asked to install the same library with the same build configuration in the future, it will just copy the built binaries from the cache and finish the operation in seconds.
|
8 |
+
|
9 |
+
Binary caching is especially effective when using Continuous Integration, since local developers can reuse the binaries produced during a CI run. It also greatly enhances the performance of "ephemeral" or "hosted" build agents, since all local changes are otherwise lost between runs. By using binary caching backed by a cloud service, such as GitHub, Azure, or many others, you can ensure your CI runs at maximum speed and only rebuilds your dependencies when they've changed.
|
10 |
+
|
11 |
+
Caches can be hosted in a variety of environments. The most basic examples are a folder on the local machine or a network file share. Caches can also be stored in any NuGet feed (such as GitHub or Azure DevOps Artifacts), Azure Blob Storage*, or Google Cloud Storage*.
|
12 |
+
|
13 |
+
\* (experimental)
|
14 |
+
|
15 |
+
If your CI provider offers a native "caching" function, we recommend using both vcpkg binary caching and the native method for the most performant results.
|
16 |
+
|
17 |
+
In-tool help is available via `vcpkg help binarycaching`.
|
18 |
+
|
19 |
+
Table of Contents
|
20 |
+
- [Configuration](#configuration)
|
21 |
+
- [CI Examples](#ci-examples)
|
22 |
+
- [GitHub Packages](#github-packages)
|
23 |
+
- [Azure DevOps Artifacts](#azure-devops-artifacts)
|
24 |
+
- [Azure Blob Storage](#azure-blob-storage-experimental)
|
25 |
+
- [Google Cloud Storage](#google-cloud-storage-experimental)
|
26 |
+
- [NuGet Provider Configuration](#nuget-provider-configuration)
|
27 |
+
- [Implementation Notes](#implementation-notes-internal-details-subject-to-change-without-notice)
|
28 |
+
|
29 |
+
|
30 |
+
## Configuration
|
31 |
+
|
32 |
+
Binary caching is configured via a combination of defaults, the environment variable `VCPKG_BINARY_SOURCES` (set to `<source>;<source>;...`), and the command line option `--binarysource=<source>`. Source options are evaluated in order of defaults, then environment, then command line. Binary caching can be completely disabled by passing `--binarysource=clear` as the last command line option.
|
33 |
+
|
34 |
+
By default, zip-based archives will be cached at the first valid location of:
|
35 |
+
|
36 |
+
**Windows**
|
37 |
+
1. `%VCPKG_DEFAULT_BINARY_CACHE%`
|
38 |
+
2. `%LOCALAPPDATA%\vcpkg\archives`
|
39 |
+
3. `%APPDATA%\vcpkg\archives`
|
40 |
+
|
41 |
+
**Non-Windows**
|
42 |
+
1. `$VCPKG_DEFAULT_BINARY_CACHE`
|
43 |
+
2. `$XDG_CACHE_HOME/vcpkg/archives`
|
44 |
+
3. `$HOME/.cache/vcpkg/archives`
|
45 |
+
|
46 |
+
### Valid source strings (`<source>`)
|
47 |
+
|
48 |
+
| form | description
|
49 |
+
|-----------------------------|---------------
|
50 |
+
| `clear` | Removes all previous sources (including the default)
|
51 |
+
| `default[,<rw>]` | Adds the default file-based location
|
52 |
+
| `files,<absolute path>[,<rw>]` | Adds a custom file-based location
|
53 |
+
| `nuget,<uri>[,<rw>]` | Adds a NuGet-based source; equivalent to the `-Source` parameter of the NuGet CLI
|
54 |
+
| `nugetconfig,<path>[,<rw>]` | Adds a NuGet-config-file-based source; equivalent to the `-Config` parameter of the NuGet CLI. This config should specify `defaultPushSource` for uploads.
|
55 |
+
| `nugettimeout,<seconds>` | Specifies a timeout for NuGet network operations; equivalent to the `-Timeout` parameter of the NuGet CLI.
|
56 |
+
| `x-azblob,<baseuri>,<sas>[,<rw>]` | **Experimental: will change or be removed without warning**<br> Adds an Azure Blob Storage source. Uses Shared Access Signature validation. URL should include the container path.
|
57 |
+
| `interactive` | Enables interactive credential management for NuGet (for debugging; requires `--debug` on the command line)
|
58 |
+
|
59 |
+
The `<rw>` optional parameter for certain sources controls whether they will be consulted for
|
60 |
+
downloading binaries (`read`)(default), whether on-demand builds will be uploaded to that remote (`write`), or both (`readwrite`).
|
61 |
+
|
62 |
+
Additional configuration details for NuGet-based providers can be found below in [NuGet Provider Configuration](#nuget-provider-configuration).
|
63 |
+
|
64 |
+
## CI Examples
|
65 |
+
|
66 |
+
If your CI system of choice is not listed, we welcome PRs to add them!
|
67 |
+
|
68 |
+
### GitHub Packages
|
69 |
+
|
70 |
+
To use vcpkg with GitHub Packages, we recommend using the `NuGet` backend.
|
71 |
+
|
72 |
+
>**NOTE 2020-09-21**: GitHub's hosted agents come with an older, pre-installed copy of vcpkg on the path that does not support the latest binary caching. This means that direct calls to `bootstrap-vcpkg` or `vcpkg` without a path prefix may call an unintended vcpkg instance. We recommend taking the following two steps to avoid issues if you want to use your own copy of vcpkg:
|
73 |
+
> 1. Run the equivalent of `rm -rf "$VCPKG_INSTALLATION_ROOT"` using `shell: 'bash'`
|
74 |
+
> 2. Always call `vcpkg` and `bootstrap-vcpkg` with a path prefix, such as `./vcpkg`, `vcpkg/vcpkg`, `.\bootstrap-vcpkg.bat`, etc
|
75 |
+
|
76 |
+
```yaml
|
77 |
+
# actions.yaml
|
78 |
+
#
|
79 |
+
# In this example, vcpkg has been added as a submodule (`git submodule add https://github.com/Microsoft/vcpkg`).
|
80 |
+
env:
|
81 |
+
VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'
|
82 |
+
|
83 |
+
matrix:
|
84 |
+
os: ['windows-2019', 'ubuntu-20.04']
|
85 |
+
include:
|
86 |
+
- os: 'windows-2019'
|
87 |
+
triplet: 'x86-windows'
|
88 |
+
mono: ''
|
89 |
+
- os: 'ubuntu-20.04'
|
90 |
+
triplet: 'x64-linux'
|
91 |
+
# To run `nuget.exe` on non-Windows platforms, we must use `mono`.
|
92 |
+
mono: 'mono'
|
93 |
+
|
94 |
+
steps:
|
95 |
+
# This step assumes `vcpkg` has been bootstrapped (run `./vcpkg/bootstrap-vcpkg`)
|
96 |
+
- name: 'Setup NuGet Credentials'
|
97 |
+
shell: 'bash'
|
98 |
+
# Replace <OWNER> with your organization name
|
99 |
+
run: >
|
100 |
+
${{ matrix.mono }} `./vcpkg/vcpkg fetch nuget | tail -n 1`
|
101 |
+
sources add
|
102 |
+
-source "https://nuget.pkg.github.com/<OWNER>/index.json"
|
103 |
+
-storepasswordincleartext
|
104 |
+
-name "GitHub"
|
105 |
+
-username "<OWNER>"
|
106 |
+
-password "${{ secrets.GITHUB_TOKEN }}"
|
107 |
+
|
108 |
+
# Omit this step if you're using manifests
|
109 |
+
- name: 'vcpkg package restore'
|
110 |
+
shell: 'bash'
|
111 |
+
run: >
|
112 |
+
./vcpkg/vcpkg install sqlite3 cpprestsdk --triplet ${{ matrix.triplet }}
|
113 |
+
```
|
114 |
+
|
115 |
+
If you're using [manifests](../specifications/manifests.md), you can omit the `vcpkg package restore` step: it will be run automatically as part of your build.
|
116 |
+
|
117 |
+
More information about GitHub Packages' NuGet support is available on [GitHub Docs][github-nuget].
|
118 |
+
|
119 |
+
[github-nuget]: https://docs.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-dotnet-cli-for-use-with-github-packages
|
120 |
+
|
121 |
+
### Azure DevOps Artifacts
|
122 |
+
|
123 |
+
To use vcpkg with Azure DevOps Artifacts, we recommend using the `NuGet` backend.
|
124 |
+
|
125 |
+
First, you need to ensure Artifacts has been enabled on your DevOps instance; this can be done by an Administrator through `Project Settings > General > Overview > Azure DevOps Services > Artifacts`.
|
126 |
+
|
127 |
+
Next, you will need to create a feed for your project; see the [Azure DevOps Artifacts Documentation][devops-nuget] for more information. Your feed URL will be an `https://` link ending with `/nuget/v3/index.json`.
|
128 |
+
|
129 |
+
```yaml
|
130 |
+
# azure-pipelines.yaml
|
131 |
+
variables:
|
132 |
+
- name: VCPKG_BINARY_SOURCES
|
133 |
+
value: 'clear;nuget,<FEED_URL>,readwrite'
|
134 |
+
|
135 |
+
steps:
|
136 |
+
# Remember to add this task to allow vcpkg to upload archives via NuGet
|
137 |
+
- task: NuGetAuthenticate@0
|
138 |
+
```
|
139 |
+
|
140 |
+
If you are using custom agents with a non-Windows OS, you will need to install Mono to run `nuget.exe` (`apt install mono-complete`, `brew install mono`, etc).
|
141 |
+
|
142 |
+
More information about Azure DevOps Artifacts' NuGet support is available in the [Azure DevOps Artifacts Documentation][devops-nuget].
|
143 |
+
|
144 |
+
[devops-nuget]: https://docs.microsoft.com/en-us/azure/devops/artifacts/get-started-nuget?view=azure-devops
|
145 |
+
|
146 |
+
### Azure Blob Storage (experimental)
|
147 |
+
|
148 |
+
> Note: This is an experimental feature and may change or be removed at any time
|
149 |
+
|
150 |
+
Vcpkg supports interfacing with Azure Blob Storage via the `x-azblob` source type.
|
151 |
+
|
152 |
+
```
|
153 |
+
x-azblob,<baseuri>,<sas>[,<rw>]
|
154 |
+
```
|
155 |
+
|
156 |
+
First, you need to create an Azure Storage Account as well as a container ([Quick Start Documentation](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal)].
|
157 |
+
|
158 |
+
Next, you will need to create a Shared Access Signature, which can be done from the storage account under Settings -> Shared access signature. This SAS will need:
|
159 |
+
- Allowed services: Blob
|
160 |
+
- Allowed resource types: Object
|
161 |
+
- Allowed permissions: Read, Create (if using `write` or `readwrite`)
|
162 |
+
|
163 |
+
The blob endpoint plus the container must be passed as the `<baseuri>` and the generated SAS without the `?` prefix must be passed as the `<sas>`.
|
164 |
+
|
165 |
+
Example:
|
166 |
+
```
|
167 |
+
x-azblob,https://<storagename>.blob.core.windows.net/<containername>,sv=2019-12-12&ss=b&srt=o&sp=rcx&se=2020-12-31T06:20:36Z&st=2020-12-30T22:20:36Z&spr=https&sig=abcd,readwrite
|
168 |
+
```
|
169 |
+
|
170 |
+
Vcpkg will attempt to avoid revealing the SAS during normal operations, however:
|
171 |
+
1. It will be printed in full if `--debug` is passed
|
172 |
+
2. It will be passed as a command line parameter to subprocesses, such as `curl.exe`
|
173 |
+
|
174 |
+
Azure Blob Storage includes a feature to remove cache entries that haven't been accessed in a given number of days which can be used to reduce the size of your cache. See [Data Lifecycle Management on Microsoft Docs](https://docs.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-overview) for more information, or look for "Data management > Lifecycle management" in the Azure Portal for your storage account. If you wish to be able to be resilient to upstream libraries' servers but still want to remove entries from the binary cache, consider using [asset caching](assetcaching.md#x-azurl) in a different storage account without a lifecycle management policy.
|
175 |
+
|
176 |
+
### Google Cloud Storage (experimental)
|
177 |
+
|
178 |
+
> Note: This is an experimental feature and may change or be removed at any time
|
179 |
+
|
180 |
+
Vcpkg supports interfacing with Google Cloud Storage (GCS) via the `x-gcs` source type.
|
181 |
+
|
182 |
+
```
|
183 |
+
x-gcs,<prefix>[,<rw>]
|
184 |
+
```
|
185 |
+
|
186 |
+
First, you need to create an Google Cloud Platform Account as well as a storage bucket ([GCS Quick Start](https://cloud.google.com/storage/docs/quickstart-gsutil)].
|
187 |
+
|
188 |
+
As part of this quickstart you would have configured the `gsutil` command-line tool to authenticate with Google Cloud.
|
189 |
+
Vcpkg will use this command-line tool, make sure it is in your search path for executables.
|
190 |
+
|
191 |
+
Example 1 (using a bucket without a common prefix for the objects):
|
192 |
+
|
193 |
+
```
|
194 |
+
x-gcs,gs://<bucket-name>/,readwrite
|
195 |
+
```
|
196 |
+
|
197 |
+
Example 2 (using a bucket and a prefix for the objects):
|
198 |
+
|
199 |
+
```
|
200 |
+
x-gcs,gs://<bucket-name>/my-vcpkg-cache/maybe/with/many/slashes/,readwrite
|
201 |
+
x-gcs,gs://<bucket-name>/my-vcpkg-cache/maybe/with`,commas/too!/,readwrite
|
202 |
+
```
|
203 |
+
|
204 |
+
Commas (`,`) are valid as part of a object prefix in GCS, just remember to escape them in the vcpkg configuration, as
|
205 |
+
shown in the previous example. Note that GCS does not have folders (some of the GCS tools simulate folders), it is not
|
206 |
+
necessary to create or otherwise manipulate the prefix used by your vcpkg cache.
|
207 |
+
|
208 |
+
## NuGet Provider Configuration
|
209 |
+
|
210 |
+
### Credentials
|
211 |
+
|
212 |
+
Many NuGet servers require additional credentials to access. The most flexible way to supply credentials is via the `nugetconfig` provider with a custom `nuget.config` file. See https://docs.microsoft.com/en-us/nuget/consume-packages/consuming-packages-authenticated-feeds for more information on authenticating via `nuget.config`.
|
213 |
+
|
214 |
+
However, it is still possible to authenticate against many servers using NuGet's built-in credential providers or via customizing your environment's default `nuget.config`. The default config can be extended via nuget client calls such as
|
215 |
+
```
|
216 |
+
nuget sources add -Name MyRemote -Source https://... -Username $user -Password $pass
|
217 |
+
```
|
218 |
+
and then passed to vcpkg via `--binarysource=nuget,MyRemote,readwrite`. You can get a path to the precise copy of NuGet used by vcpkg by running `vcpkg fetch nuget`, which will report something like:
|
219 |
+
```
|
220 |
+
$ vcpkg fetch nuget
|
221 |
+
/vcpkg/downloads/tools/nuget-5.5.1-linux/nuget.exe
|
222 |
+
```
|
223 |
+
Non-Windows users will need to call this through mono via `mono /path/to/nuget.exe sources add ...`.
|
224 |
+
|
225 |
+
##### Credential Example for Azure Dev Ops
|
226 |
+
```bash
|
227 |
+
# On Linux or OSX
|
228 |
+
$ mono `vcpkg fetch nuget | tail -n1` sources add \
|
229 |
+
-name ADO \
|
230 |
+
-Source https://pkgs.dev.azure.com/$ORG/_packaging/$FEEDNAME/nuget/v3/index.json \
|
231 |
+
-Username $USERNAME \
|
232 |
+
-Password $PAT
|
233 |
+
$ export VCPKG_BINARY_SOURCES="nuget,ADO,readwrite"
|
234 |
+
```
|
235 |
+
```powershell
|
236 |
+
# On Windows Powershell
|
237 |
+
PS> & $(vcpkg fetch nuget | select -last 1) sources add `
|
238 |
+
-name ADO `
|
239 |
+
-Source https://pkgs.dev.azure.com/$ORG/_packaging/$FEEDNAME/nuget/v3/index.json `
|
240 |
+
-Username $USERNAME `
|
241 |
+
-Password $PAT
|
242 |
+
PS> $env:VCPKG_BINARY_SOURCES="nuget,ADO,readwrite"
|
243 |
+
```
|
244 |
+
|
245 |
+
We recommend using a Personal Access Token (PAT) as the password for maximum security. You can generate a PAT in User Settings -> Personal Access Tokens or `https://dev.azure.com/$ORG/_usersSettings/tokens`.
|
246 |
+
|
247 |
+
#### `metadata.repository`
|
248 |
+
|
249 |
+
The `nuget` and `nugetconfig` source providers additionally respect certain environment variables while generating nuget packages. The `metadata.repository` field of any packages will be generated as:
|
250 |
+
```
|
251 |
+
<repository type="git" url="${VCPKG_NUGET_REPOSITORY}"/>
|
252 |
+
```
|
253 |
+
or
|
254 |
+
```
|
255 |
+
<repository type="git"
|
256 |
+
url="${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git"
|
257 |
+
branch="${GITHUB_REF}"
|
258 |
+
commit="${GITHUB_SHA}"/>
|
259 |
+
```
|
260 |
+
if the appropriate environment variables are defined and non-empty. This is specifically used to associate packages in GitHub Packages with the _building_ project and not intended to associate with the original package sources.
|
261 |
+
|
262 |
+
#### NuGet's cache
|
263 |
+
|
264 |
+
NuGet's cache is not used by default. To use it for every nuget-based source, set the [environment variable](config-environment.md) `VCPKG_USE_NUGET_CACHE` to `true` (case-insensitive) or `1`.
|
265 |
+
|
266 |
+
## Implementation Notes (internal details subject to change without notice)
|
267 |
+
|
268 |
+
Binary caching relies on hashing everything that contributes to a particular package build. This includes:
|
269 |
+
|
270 |
+
- Every file in the port directory
|
271 |
+
- The triplet file and name
|
272 |
+
- The C++ compiler executable
|
273 |
+
- The C compiler executable
|
274 |
+
- The set of features selected
|
275 |
+
- Every dependency's package hash (note: this is that package's input hash, not contents)
|
276 |
+
- All helper scripts referenced by `portfile.cmake` (heuristic)
|
277 |
+
- The version of CMake used
|
278 |
+
- The contents of any environment variables listed in `VCPKG_ENV_PASSTHROUGH`
|
279 |
+
- The hash of the toolchain file (builtin or `VCPKG_CHAINLOAD_TOOLCHAIN_FILE`)
|
280 |
+
|
281 |
+
Despite this extensive list, it is possible to defeat the cache and introduce nondeterminism. If you have additional details that you'd like to be tracked, the easiest resolution is to generate a triplet file with your additional information in a comment. That additional information will be included in the package's input set and ensure a unique universe of binaries.
|
282 |
+
|
283 |
+
The hashes used are stored in the package and in the current installed directory at `/share/<port>/vcpkg_abi_info.txt`.
|
284 |
+
|
285 |
+
The original specification for binary caching is available [here](../specifications/binarycaching.md).
|
third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/config-environment.md
ADDED
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
## Environment and Configuration
|
2 |
+
|
3 |
+
**The latest version of this documentation is available on [GitHub](https://github.com/Microsoft/vcpkg/tree/master/docs/users/config-environment.md).**
|
4 |
+
|
5 |
+
### Environment Variables
|
6 |
+
|
7 |
+
#### VCPKG_DOWNLOADS
|
8 |
+
|
9 |
+
This environment variable can be set to an existing directory to use for storing downloads instead of the internal
|
10 |
+
`downloads/` directory. It should always be set to an absolute path.
|
11 |
+
|
12 |
+
#### VCPKG_FEATURE_FLAGS
|
13 |
+
|
14 |
+
This environment variable can be set to a comma-separated list of off-by-default features in vcpkg. These features are
|
15 |
+
subject to change without notice and should be considered highly unstable.
|
16 |
+
|
17 |
+
Non-exhaustive list of off-by-default features:
|
18 |
+
|
19 |
+
- `manifest`
|
20 |
+
|
21 |
+
#### EDITOR
|
22 |
+
|
23 |
+
This environment variable can be set to the full path of an executable to be used for `vcpkg edit`. Please see
|
24 |
+
`vcpkg help edit` for command-specific help.
|
25 |
+
|
26 |
+
#### VCPKG_ROOT
|
27 |
+
|
28 |
+
This environment variable can be set to a directory to use as the root of the vcpkg instance. Note that mixing vcpkg
|
29 |
+
repo versions and executable versions can cause issues.
|
30 |
+
|
31 |
+
#### VCPKG_VISUAL_STUDIO_PATH
|
32 |
+
|
33 |
+
This environment variable can be set to the full path to a Visual Studio instance on the machine. This Visual Studio instance
|
34 |
+
will be used if the triplet does not override it via the [`VCPKG_VISUAL_STUDIO_PATH`](triplets.md#VCPKG_VISUAL_STUDIO_PATH) triplet setting.
|
35 |
+
|
36 |
+
Example: `D:\2017`
|
37 |
+
|
38 |
+
#### VCPKG_DEFAULT_TRIPLET
|
39 |
+
|
40 |
+
This environment variable can be set to a triplet name which will be used for unqualified triplet references in command lines.
|
41 |
+
|
42 |
+
#### VCPKG_DEFAULT_HOST_TRIPLET
|
43 |
+
|
44 |
+
This environment variable can be set to a triplet name which will be used for unqualified host port references in command lines and all host port references in dependency lists. See [the host-dependencies documentation](host-dependencies.md) for more information.
|
45 |
+
|
46 |
+
#### VCPKG_OVERLAY_PORTS
|
47 |
+
|
48 |
+
This environment variable allows users to override ports with alternate versions according to the
|
49 |
+
[ports overlay](../specifications/ports-overlay.md) specification. List paths to overlays using
|
50 |
+
the platform dependent PATH separator (Windows `;` | others `:`)
|
51 |
+
|
52 |
+
Example (Windows): `C:\custom-ports\boost;C:\custom-ports\sqlite3`
|
53 |
+
|
54 |
+
#### VCPKG_OVERLAY_TRIPLETS
|
55 |
+
|
56 |
+
This environment variable allows users to add directories to search for triplets.
|
57 |
+
[Example: overlay triplets](../examples/overlay-triplets-linux-dynamic.md).
|
58 |
+
List paths to overlays using the platform dependent PATH separator (Windows `;`, others `:`)
|
59 |
+
|
60 |
+
#### VCPKG_FORCE_SYSTEM_BINARIES
|
61 |
+
|
62 |
+
This environment variable, if set, suppresses the downloading of CMake and Ninja and forces the use of the system binaries.
|
63 |
+
|
64 |
+
#### VCPKG_KEEP_ENV_VARS
|
65 |
+
|
66 |
+
This environment variable can be set to a list of environment variables, separated by `;`, which will be propagated to
|
67 |
+
the build environment.
|
68 |
+
|
69 |
+
The values of the kept variables will not be tracked in package ABIs and will not cause rebuilds when they change. To
|
70 |
+
pass in environment variables that should cause rebuilds on change, see [`VCPKG_ENV_PASSTHROUGH`](triplets.md#VCPKG_ENV_PASSTHROUGH).
|
71 |
+
|
72 |
+
Example: `FOO_SDK_DIR;BAR_SDK_DIR`
|
73 |
+
|
74 |
+
#### VCPKG_MAX_CONCURRENCY
|
75 |
+
|
76 |
+
This environment variables limits the amount of concurrency requested by underlying buildsystems. If unspecified, this defaults to logical cores + 1.
|
77 |
+
|
78 |
+
#### VCPKG_DEFAULT_BINARY_CACHE
|
79 |
+
|
80 |
+
This environment variable redirects the default location to store binary packages. See [Binary Caching](binarycaching.md#Configuration) for more details.
|
81 |
+
|
82 |
+
#### VCPKG_BINARY_SOURCES
|
83 |
+
|
84 |
+
This environment variable adds or removes binary sources. See [Binary Caching](binarycaching.md#Configuration) for more details.
|
85 |
+
|
86 |
+
#### VCPKG_NUGET_REPOSITORY
|
87 |
+
|
88 |
+
This environment variable changes the metadata of produced NuGet packages. See [Binary Caching](binarycaching.md#Configuration) for more details.
|
89 |
+
|
90 |
+
#### VCPKG_USE_NUGET_CACHE
|
91 |
+
|
92 |
+
This environment variable allows using NuGet's cache for every nuget-based binary source. See [Binary Caching](binarycaching.md#NuGets-cache) for more details.
|
93 |
+
|
94 |
+
#### X_VCPKG_ASSET_SOURCES
|
95 |
+
|
96 |
+
> Note: This is an experimental feature and may change or be removed at any time
|
97 |
+
|
98 |
+
This environment variable allows using a private mirror for all SHA512-tagged assets. See [Asset Caching](assetcaching.md) for more details.
|
third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/host-dependencies.md
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Host Dependencies
|
2 |
+
|
3 |
+
Tools used at build time by other ports to generate code or implement a custom build system can be packaged inside vcpkg.
|
4 |
+
|
5 |
+
## Consuming
|
6 |
+
|
7 |
+
When consuming a port as a tool, you must set the dependency's `"host"` field to true. For example:
|
8 |
+
```json
|
9 |
+
{
|
10 |
+
"name": "contoso-http-library",
|
11 |
+
"version-string": "1.0.0",
|
12 |
+
"description": "Contoso's http runtime library",
|
13 |
+
"dependencies": [
|
14 |
+
"contoso-core-library",
|
15 |
+
{
|
16 |
+
"name": "contoso-code-generator",
|
17 |
+
"host": true
|
18 |
+
},
|
19 |
+
{
|
20 |
+
"name": "contoso-build-system",
|
21 |
+
"host": true
|
22 |
+
}
|
23 |
+
]
|
24 |
+
}
|
25 |
+
```
|
26 |
+
In this case, the `contoso-code-generator` and `contoso-build-system` (including any transitive dependencies) will be built and installed for the host triplet before `contoso-http-library` is built.
|
27 |
+
|
28 |
+
>Note: Consumers must use `vcpkg.json` instead of `CONTROL` as their metadata format. You can easily convert an existing `CONTROL` file using `vcpkg format-manifest /path/to/CONTROL`.
|
29 |
+
|
30 |
+
Then, within the portfile of the consumer (`contoso-http-library` in the example), the CMake variable `CURRENT_HOST_INSTALLED_DIR` will be defined to `installed/<host-triplet>` and should be used to locate any required assets. In the example, `contoso-code-generator` might have installed `tools/contoso-code-generator/ccg.exe` which the consumer would add to its local path via
|
31 |
+
```cmake
|
32 |
+
# ports/contoso-http-library/portfile.cmake
|
33 |
+
vcpkg_add_to_path(${CURRENT_HOST_INSTALLED_DIR}/tools/contoso-code-generator)
|
34 |
+
```
|
35 |
+
|
36 |
+
## Specifying the Host Triplet
|
37 |
+
|
38 |
+
The default host triplets are chosen based on the host architecture and operating system, for example `x64-windows`, `x64-linux`, or `x64-osx`. They can be overridden via:
|
39 |
+
|
40 |
+
1. In CMake-based manifest mode, calling `set(VCPKG_HOST_TRIPLET "<triplet>" CACHE STRING "")` before the first `project()` directive
|
41 |
+
2. In MSBuild-based manifest mode, setting the `VcpkgHostTriplet` property
|
42 |
+
3. On the command line, via the flag `--host-triplet=...`
|
43 |
+
4. The `VCPKG_DEFAULT_HOST_TRIPLET` environment variable
|
44 |
+
|
45 |
+
## Producing
|
46 |
+
|
47 |
+
Producing a tool has no special requirements; tools should be authored as a standard port, following all the normal policies and practices. Notably, they should build against `TARGET_TRIPLET`, not `HOST_TRIPLET` within the context of their portfile.
|
48 |
+
|
49 |
+
If the current context is cross-compiling (`TARGET_TRIPLET` is not `HOST_TRIPLET`), then `VCPKG_CROSSCOMPILING` will be set to a truthy value.
|
50 |
+
|
51 |
+
```cmake
|
52 |
+
if(VCPKG_CROSSCOMPILING)
|
53 |
+
# This is a native build
|
54 |
+
else()
|
55 |
+
# This is a cross build
|
56 |
+
endif()
|
57 |
+
```
|
58 |
+
|
59 |
+
## Host-only ports
|
60 |
+
|
61 |
+
Some ports should only be depended upon via a host dependency; script ports and
|
62 |
+
tool ports are common examples. In this case, you can use the `"native"`
|
63 |
+
supports expression to describe this. This supports expression is true when
|
64 |
+
`VCPKG_CROSSCOMPILING` is false (implying that `TARGET_TRIPLET ==
|
65 |
+
HOST_TRIPLET`).
|
third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/integration.md
ADDED
@@ -0,0 +1,177 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Buildsystem Integration
|
2 |
+
|
3 |
+
**The latest version of this documentation is available on [GitHub](https://github.com/Microsoft/vcpkg/tree/master/docs/users/integration.md).**
|
4 |
+
## Table of Contents
|
5 |
+
- [MSBuild Integration (Visual Studio)](#msbuild-integration-visual-studio)
|
6 |
+
- [User-wide integration](#user-wide-integration)
|
7 |
+
- [Per-project Integration](#per-project-integration)
|
8 |
+
- [Changing the triplet](#msbuild-changing-the-triplet)
|
9 |
+
- [CMake Integration](#cmake-integration)
|
10 |
+
- [Using an environment variable instead of a command line option](#using-an-environment-variable-instead-of-a-command-line-option)
|
11 |
+
- [Using multiple toolchain files](#using-multiple-toolchain-files)
|
12 |
+
- [Changing the triplet](#cmake-changing-the-triplet)
|
13 |
+
- [Manual Compiler Setup](#manual-compiler-setup)
|
14 |
+
- [`export` Command](#export-command)
|
15 |
+
|
16 |
+
The buildsystem-specific integration styles have heuristics to deduce the correct [triplet][]. This can be overridden in a native way for [MSBuild](#msbuild-changing-the-triplet) and [CMake](#cmake-changing-the-triplet).
|
17 |
+
|
18 |
+
## MSBuild Integration (Visual Studio)
|
19 |
+
|
20 |
+
**If you are using manifest mode(`vcpkg.json`) see [here](manifests.md#msbuild-integration) for additional configuration options.**
|
21 |
+
### User-wide integration
|
22 |
+
```no-highlight
|
23 |
+
vcpkg integrate install
|
24 |
+
```
|
25 |
+
This will implicitly add Include Directories, Link Directories, and Link Libraries for all packages installed with Vcpkg to all VS2015, VS2017 and VS2019 MSBuild projects. We also add a post-build action for executable projects that will analyze and copy any DLLs you need to the output folder, enabling a seamless F5 experience.
|
26 |
+
|
27 |
+
For the vast majority of libraries, this is all you need to do -- just File -> New Project and write code! However, some libraries perform conflicting behaviors such as redefining `main()`. Since you need to choose per-project which of these conflicting options you want, you will need to add those libraries to your linker inputs manually.
|
28 |
+
|
29 |
+
Here are some examples, though this is not an exhaustive list:
|
30 |
+
|
31 |
+
- Gtest provides `gtest`, `gmock`, `gtest_main`, and `gmock_main`
|
32 |
+
- SDL2 provides `SDL2main`
|
33 |
+
- SFML provides `sfml-main`
|
34 |
+
- Boost.Test provides `boost_test_exec_monitor`
|
35 |
+
|
36 |
+
To get a full list for all your installed packages, run `vcpkg owns manual-link`.
|
37 |
+
|
38 |
+
**If you are using manifest mode (`vcpkg.json`) see [here](manifests.md#msbuild-integration) for all available options.**
|
39 |
+
|
40 |
+
### Per-project integration
|
41 |
+
|
42 |
+
**Note: This approach is not recommended for new projects, since it makes them difficult to share with others.**
|
43 |
+
|
44 |
+
**For a portable, self-contained NuGet package, see the [`export command`](#export-command)**
|
45 |
+
|
46 |
+
We also provide individual VS project integration through a NuGet package. This will modify the project file, so we do not recommend this approach for open source projects.
|
47 |
+
```no-highlight
|
48 |
+
PS D:\src\vcpkg> .\vcpkg integrate project
|
49 |
+
Created nupkg: D:\src\vcpkg\scripts\buildsystems\vcpkg.D.src.vcpkg.1.0.0.nupkg
|
50 |
+
|
51 |
+
With a project open, go to Tools->NuGet Package Manager->Package Manager Console and paste:
|
52 |
+
Install-Package vcpkg.D.src.vcpkg -Source "D:/src/vcpkg/scripts/buildsystems"
|
53 |
+
```
|
54 |
+
*Note: The generated NuGet package does not contain the actual libraries. It instead acts like a shortcut (or symlink) to the vcpkg install and will "automatically" update with any changes (install/remove) to the libraries. You do not need to regenerate or update the NuGet package.*
|
55 |
+
|
56 |
+
<a name="msbuild-changing-the-triplet"></a>
|
57 |
+
|
58 |
+
### Changing the triplet
|
59 |
+
You can see the automatically deduced triplet by setting your MSBuild verbosity to Normal or higher:
|
60 |
+
|
61 |
+
> *Shortcut: Ctrl+Q "build and run"*
|
62 |
+
>
|
63 |
+
> Tools -> Options -> Projects and Solutions -> Build and Run -> MSBuild project build output verbosity
|
64 |
+
|
65 |
+
To override the automatically chosen [triplet][], you can specify the MSBuild property `VcpkgTriplet` in your `.vcxproj`. We recommend adding this to the `Globals` PropertyGroup.
|
66 |
+
```xml
|
67 |
+
<PropertyGroup Label="Globals">
|
68 |
+
<!-- .... -->
|
69 |
+
<VcpkgTriplet Condition="'$(Platform)'=='Win32'">x86-windows-static</VcpkgTriplet>
|
70 |
+
<VcpkgTriplet Condition="'$(Platform)'=='x64'">x64-windows-static</VcpkgTriplet>
|
71 |
+
</PropertyGroup>
|
72 |
+
```
|
73 |
+
|
74 |
+
## CMake Integration
|
75 |
+
```no-highlight
|
76 |
+
cmake ../my/project -DCMAKE_TOOLCHAIN_FILE=[vcpkg-root]/scripts/buildsystems/vcpkg.cmake
|
77 |
+
```
|
78 |
+
Projects configured with the Vcpkg toolchain file will have the appropriate Vcpkg folders added to the cmake search paths. This makes all libraries available to be found through `find_package()`, `find_path()`, and `find_library()`.
|
79 |
+
|
80 |
+
See [Installing and Using Packages Example: sqlite](../examples/installing-and-using-packages.md) for a fully worked example using our CMake toolchain.
|
81 |
+
|
82 |
+
Note that we do not automatically add ourselves to your compiler include paths. To use a header-only library, simply use `find_path()`, which will correctly work on all platforms:
|
83 |
+
```cmake
|
84 |
+
# To find and use catch
|
85 |
+
find_path(CATCH_INCLUDE_DIR NAMES catch.hpp PATH_SUFFIXES catch2)
|
86 |
+
include_directories(${CATCH_INCLUDE_DIR})
|
87 |
+
```
|
88 |
+
|
89 |
+
**If you are using manifest mode (`vcpkg.json`) see [here](manifests.md#cmake-integration) for all available options.**
|
90 |
+
|
91 |
+
For different IDE integrations see [here](../../README.md#using-vcpkg-with-cmake).
|
92 |
+
|
93 |
+
### Using an environment variable instead of a command line option
|
94 |
+
|
95 |
+
The `CMAKE_TOOLCHAIN_FILE` setting simply must be set before the `project()` directive is first called. This means that you can easily read from an environment variable to avoid passing it on the configure line:
|
96 |
+
|
97 |
+
```cmake
|
98 |
+
if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
|
99 |
+
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
|
100 |
+
CACHE STRING "")
|
101 |
+
endif()
|
102 |
+
|
103 |
+
project(myproject CXX)
|
104 |
+
```
|
105 |
+
|
106 |
+
### Using multiple toolchain files
|
107 |
+
|
108 |
+
To use an external toolchain file with a project using vcpkg, you can set the cmake variable `VCPKG_CHAINLOAD_TOOLCHAIN_FILE` on the configure line:
|
109 |
+
```no-highlight
|
110 |
+
cmake ../my/project \
|
111 |
+
-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake \
|
112 |
+
-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=../my/project/compiler-settings-toolchain.cmake
|
113 |
+
```
|
114 |
+
|
115 |
+
Alternatively, you can include the vcpkg toolchain at the end of the primary toolchain file:
|
116 |
+
```cmake
|
117 |
+
# MyToolchain.cmake
|
118 |
+
set(CMAKE_CXX_COMPILER ...)
|
119 |
+
set(VCPKG_TARGET_TRIPLET x64-my-custom-windows-triplet)
|
120 |
+
include(/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake)
|
121 |
+
```
|
122 |
+
**Note: vcpkg does _not_ see the settings in your own triplets, such as your compiler or compilation flags. To change vcpkg's settings, you must make a [custom triplet file](triplets.md) (which can [share your own toolchain](triplets.md#VCPKG_CHAINLOAD_TOOLCHAIN_FILE))**
|
123 |
+
|
124 |
+
<a name="cmake-changing-the-triplet"></a>
|
125 |
+
|
126 |
+
### Changing the triplet
|
127 |
+
You can set `VCPKG_TARGET_TRIPLET` on the configure line:
|
128 |
+
```no-highlight
|
129 |
+
cmake ../my/project -DVCPKG_TARGET_TRIPLET=x64-windows-static -DCMAKE_TOOLCHAIN_FILE=...
|
130 |
+
```
|
131 |
+
If you use `VCPKG_DEFAULT_TRIPLET` [environment variable](config-environment.md) to control the unqualified triplet in vcpkg command lines you can default `VCPKG_TARGET_TRIPLET` in CMake like [Using an environment variable instead of a command line option](#using-an-environment-variable-instead-of-a-command-line-option):
|
132 |
+
|
133 |
+
```cmake
|
134 |
+
if(DEFINED ENV{VCPKG_DEFAULT_TRIPLET} AND NOT DEFINED VCPKG_TARGET_TRIPLET)
|
135 |
+
set(VCPKG_TARGET_TRIPLET "$ENV{VCPKG_DEFAULT_TRIPLET}" CACHE STRING "")
|
136 |
+
endif()
|
137 |
+
```
|
138 |
+
Finally, if you have your own toolchain file, you can set `VCPKG_TARGET_TRIPLET` there:
|
139 |
+
```cmake
|
140 |
+
# MyToolchain.cmake
|
141 |
+
set(CMAKE_CXX_COMPILER ...)
|
142 |
+
set(VCPKG_TARGET_TRIPLET x64-my-custom-triplet)
|
143 |
+
```
|
144 |
+
|
145 |
+
## Manual Compiler Setup
|
146 |
+
|
147 |
+
Libraries are installed into the `installed\` subfolder in classic mode, partitioned by triplet (e.g. x86-windows):
|
148 |
+
|
149 |
+
* The header files are installed to `installed\x86-windows\include`
|
150 |
+
* Release `.lib` files are installed to `installed\x86-windows\lib` or `installed\x86-windows\lib\manual-link`
|
151 |
+
* Release `.dll` files are installed to `installed\x86-windows\bin`
|
152 |
+
* Debug `.lib` files are installed to `installed\x86-windows\debug\lib` or `installed\x86-windows\debug\lib\manual-link`
|
153 |
+
* Debug `.dll` files are installed to `installed\x86-windows\debug\bin`
|
154 |
+
|
155 |
+
See your build system specific documentation for how to use prebuilt binaries.
|
156 |
+
|
157 |
+
_On Windows dynamic triplets:_ To run any produced executables you will also need to either copy the needed DLL files to the same folder as your executable or *prepend* the correct `bin\` directory to your path.
|
158 |
+
|
159 |
+
## Export Command
|
160 |
+
This command creates a shrinkwrapped archive containing a specific set of libraries (and their dependencies) that can be quickly and reliably shared with build servers or other users in your organization.
|
161 |
+
|
162 |
+
- `--nuget`: NuGet package
|
163 |
+
- `--zip`: Zip archive
|
164 |
+
- `--7zip`: 7Zip archive
|
165 |
+
- `--raw`: Raw, uncompressed folder
|
166 |
+
|
167 |
+
Each of these have the same internal layout which mimics the layout of a full vcpkg instance:
|
168 |
+
|
169 |
+
- `installed\` contains the installed package files
|
170 |
+
- `scripts\buildsystems\vcpkg.cmake` is a toolchain file suitable for use with CMake
|
171 |
+
|
172 |
+
Additionally, NuGet packages will contain a `build\native\vcpkg.targets` that integrates with MSBuild projects.
|
173 |
+
|
174 |
+
Please also see our [blog post](https://blogs.msdn.microsoft.com/vcblog/2017/05/03/vcpkg-introducing-export-command/) for additional examples.
|
175 |
+
|
176 |
+
|
177 |
+
[triplet]: triplets.md
|
third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/manifests.md
ADDED
@@ -0,0 +1,521 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Manifest Mode
|
2 |
+
|
3 |
+
**The latest version of this documentation is available on [GitHub](https://github.com/Microsoft/vcpkg/tree/master/docs/users/manifests.md).**
|
4 |
+
|
5 |
+
vcpkg has two modes of consuming dependencies - classic mode and manifest mode.
|
6 |
+
|
7 |
+
In classic mode, vcpkg produces an "installed" tree, whose contents are changed by explicit calls to `vcpkg install` or
|
8 |
+
`vcpkg remove`. The installed tree is intended for consumption by any number of projects: for example, installing a
|
9 |
+
bunch of libraries and then using those libraries from Visual Studio, without additional configuration. Because the
|
10 |
+
installed tree is not associated with an individual project, it's similar to tools like `brew` or `apt`, except that the
|
11 |
+
installed tree is vcpkg-installation-local, rather than global to a system or user.
|
12 |
+
|
13 |
+
In manifest mode, an installed tree is associated with a particular project rather than the vcpkg installation. The set
|
14 |
+
of installed ports is controlled by editing the project's "manifest file", and the installed tree is placed in the
|
15 |
+
project directory or build directory. This mode acts more similarly to language package managers like Cargo, or npm. We
|
16 |
+
recommend using this manifest mode whenever possible, because it allows one to encode a project's dependencies
|
17 |
+
explicitly in a project file, rather than in the documentation, making your project much easier to consume.
|
18 |
+
|
19 |
+
Manifest mode is in beta, but it can be used from the CMake or MSBuild integration, which will be stable when used via
|
20 |
+
things like `find_package`. This is the recommended way to use manifest mode.
|
21 |
+
|
22 |
+
Check out the [manifest cmake example](../examples/manifest-mode-cmake.md) for an example project using CMake and
|
23 |
+
manifest mode.
|
24 |
+
|
25 |
+
## Table of Contents
|
26 |
+
|
27 |
+
- [Simple Example Manifest](#simple-example-manifest)
|
28 |
+
- [Manifest Syntax Reference](#manifest-syntax-reference)
|
29 |
+
- [Command Line Interface](#command-line-interface)
|
30 |
+
- [CMake Integration](#cmake-integration)
|
31 |
+
- [MSBuild Integration](#msbuild-integration)
|
32 |
+
|
33 |
+
See also [the original specification](../specifications/manifests.md) for more low-level details.
|
34 |
+
|
35 |
+
## Simple Example Manifest
|
36 |
+
|
37 |
+
```json
|
38 |
+
{
|
39 |
+
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
|
40 |
+
"name": "my-application",
|
41 |
+
"version": "0.15.2",
|
42 |
+
"dependencies": [
|
43 |
+
"boost-system",
|
44 |
+
{
|
45 |
+
"name": "cpprestsdk",
|
46 |
+
"default-features": false
|
47 |
+
},
|
48 |
+
"libxml2",
|
49 |
+
"yajl"
|
50 |
+
]
|
51 |
+
}
|
52 |
+
```
|
53 |
+
|
54 |
+
## Manifest Syntax Reference
|
55 |
+
|
56 |
+
A manifest is a JSON-formatted file named `vcpkg.json` which lies at the root of your project.
|
57 |
+
It contains all the information a person needs to know to get dependencies for your project,
|
58 |
+
as well as all the metadata about your project that a person who depends on you might be interested in.
|
59 |
+
|
60 |
+
Manifests follow strict JSON: they can't contain C++-style comments (`//`) nor trailing commas. However
|
61 |
+
you can use field names that start with `$` to write your comments in any object that has a well-defined set of keys.
|
62 |
+
These comment fields are not allowed in any objects which permit user-defined keys (such as `"features"`).
|
63 |
+
|
64 |
+
Each manifest contains a top level object with the fields documented below; the most important ones are
|
65 |
+
[`"name"`](#name), the [version fields](#version-fields), and [`"dependencies"`](#dependencies):
|
66 |
+
|
67 |
+
### `"name"`
|
68 |
+
|
69 |
+
This is the name of your project! It must be formatted in a way that vcpkg understands - in other words,
|
70 |
+
it must be lowercase alphabetic characters, digits, and hyphens, and it must not start nor end with a hyphen.
|
71 |
+
For example, `Boost.Asio` might be given the name `boost-asio`.
|
72 |
+
|
73 |
+
This is a required field.
|
74 |
+
|
75 |
+
### Version fields
|
76 |
+
|
77 |
+
There are four version field options, depending on how the port orders its
|
78 |
+
releases.
|
79 |
+
|
80 |
+
* [`"version"`](versioning.md#version) - Generic, dot-separated numeric
|
81 |
+
sequence.
|
82 |
+
* [`"version-semver"`](versioning.md#version-semver) - [Semantic Version
|
83 |
+
2.0.0](https://semver.org/#semantic-versioning-specification-semver)
|
84 |
+
* [`"version-date"`](versioning.md#version-date) - Used for packages which do
|
85 |
+
not have numeric releases (for example, Live-at-HEAD). Matches `YYYY-MM-DD`
|
86 |
+
with optional trailing dot-separated numeric sequence.
|
87 |
+
* [`"version-string"`](versioning.md#version-string) - Used for packages that
|
88 |
+
don't have orderable versions. This should be rarely used, however all ports
|
89 |
+
created before the other version fields were introduced use this scheme.
|
90 |
+
|
91 |
+
Additionally, the optional `"port-version"` field is used to indicate revisions
|
92 |
+
to the port with the same upstream source version. For pure consumers, this
|
93 |
+
field should not be used.
|
94 |
+
|
95 |
+
See [versioning](versioning.md#version-schemes) for more details.
|
96 |
+
|
97 |
+
### `"description"`
|
98 |
+
|
99 |
+
This is where you describe your project. Give it a good description to help in searching for it!
|
100 |
+
This can be a single string, or it can be an array of strings;
|
101 |
+
in the latter case, the first string is treated as a summary,
|
102 |
+
while the remaining strings are treated as the full description.
|
103 |
+
|
104 |
+
### `"builtin-baseline"`
|
105 |
+
|
106 |
+
This field indicates the commit of vcpkg which provides global minimum version
|
107 |
+
information for your manifest. It is required for top-level manifest files using
|
108 |
+
versioning.
|
109 |
+
|
110 |
+
This is a convenience field that has the same semantic as replacing your default
|
111 |
+
registry in
|
112 |
+
[`vcpkg-configuration.json`](registries.md#configuration-default-registry).
|
113 |
+
|
114 |
+
See [versioning](versioning.md#builtin-baseline) for more semantic details.
|
115 |
+
|
116 |
+
### `"dependencies"`
|
117 |
+
|
118 |
+
This field lists all the dependencies you'll need to build your library (as well as any your dependents might need,
|
119 |
+
if they were to use you). It's an array of strings and objects:
|
120 |
+
|
121 |
+
* A string dependency (e.g., `"dependencies": [ "zlib" ]`) is the simplest way one can depend on a library;
|
122 |
+
it means you don't depend on a single version, and don't need to write down any more information.
|
123 |
+
* On the other hand, an object dependency (e.g., `"dependencies": [ { "name": "zlib" } ]`)
|
124 |
+
allows you to add that extra information.
|
125 |
+
|
126 |
+
#### Example:
|
127 |
+
|
128 |
+
```json
|
129 |
+
"dependencies": [
|
130 |
+
{
|
131 |
+
"name": "arrow",
|
132 |
+
"default-features": false,
|
133 |
+
"features": [ "json" ]
|
134 |
+
},
|
135 |
+
"boost-asio",
|
136 |
+
"openssl",
|
137 |
+
{
|
138 |
+
"name": "picosha2",
|
139 |
+
"platform": "!windows"
|
140 |
+
}
|
141 |
+
]
|
142 |
+
```
|
143 |
+
|
144 |
+
#### `"name"` Field
|
145 |
+
|
146 |
+
The name of the dependency. This follows the same restrictions as the [`"name"`](#name) property for a project.
|
147 |
+
|
148 |
+
#### `"features"` and `"default-features"` Fields
|
149 |
+
|
150 |
+
`"features"` is an array of feature names which tell you the set of features that the
|
151 |
+
dependencies need to have at a minimum,
|
152 |
+
while `"default-features"` is a boolean that tells vcpkg whether or not to
|
153 |
+
install the features the package author thinks should be "most common for most people to use".
|
154 |
+
|
155 |
+
For example, `ffmpeg` is a library which supports many, many audio and video codecs;
|
156 |
+
however, for your specific project, you may only need mp3 encoding.
|
157 |
+
Then, you might just ask for:
|
158 |
+
|
159 |
+
```json
|
160 |
+
{
|
161 |
+
"name": "ffmpeg",
|
162 |
+
"default-features": false,
|
163 |
+
"features": [ "mp3lame" ]
|
164 |
+
}
|
165 |
+
```
|
166 |
+
|
167 |
+
#### `"platform"` Field
|
168 |
+
|
169 |
+
The `"platform"` field defines the platforms where the dependency should be installed - for example,
|
170 |
+
you might need to use sha256, and so you use platform primitives on Windows, but `picosha2` on non-Windows platforms.
|
171 |
+
|
172 |
+
```json
|
173 |
+
{
|
174 |
+
"name": "picosha2",
|
175 |
+
"platform": "!windows"
|
176 |
+
}
|
177 |
+
```
|
178 |
+
|
179 |
+
This is a string field which takes boolean expressions of the form `<identifier>`,
|
180 |
+
`!expression`, `expression { & expression & expression...}`, and `expression { | expression | expression...}`,
|
181 |
+
along with parentheses to denote precedence.
|
182 |
+
For example, a dependency that's only installed on the Windows OS, for the ARM64 architecture,
|
183 |
+
and on Linux on x64, would be written `(windows & arm64) | (linux & x64)`.
|
184 |
+
|
185 |
+
The common identifiers are:
|
186 |
+
|
187 |
+
- The operating system: `windows`, `uwp`, `linux`, `osx` (includes macOS), `android`, `emscripten`
|
188 |
+
- The architecture: `x86`, `x64`, `wasm32`, `arm64`, `arm` (includes both arm32 and arm64 due to backwards compatibility)
|
189 |
+
|
190 |
+
although one can define their own.
|
191 |
+
|
192 |
+
#### `"version>="` Field
|
193 |
+
|
194 |
+
A minimum version constraint on the dependency.
|
195 |
+
|
196 |
+
This field specifies the minimum version of the dependency, optionally using a
|
197 |
+
`#N` suffix to denote port-version if non-zero.
|
198 |
+
|
199 |
+
See also [versioning](versioning.md#version-1) for more semantic details.
|
200 |
+
|
201 |
+
### `"overrides"`
|
202 |
+
|
203 |
+
This field pins exact versions for individual dependencies.
|
204 |
+
|
205 |
+
`"overrides"` from transitive manifests (i.e. from dependencies) are ignored.
|
206 |
+
|
207 |
+
See also [versioning](versioning.md#overrides) for more semantic details.
|
208 |
+
|
209 |
+
#### Example:
|
210 |
+
|
211 |
+
```json
|
212 |
+
"overrides": [
|
213 |
+
{
|
214 |
+
"name": "arrow", "version": "1.2.3", "port-version": 7
|
215 |
+
}
|
216 |
+
]
|
217 |
+
```
|
218 |
+
|
219 |
+
### `"supports"`
|
220 |
+
|
221 |
+
If your project doesn't support common platforms, you can tell your users this with the `"supports"` field.
|
222 |
+
It uses the same platform expressions as [`"platform"`](#platform), from dependencies, as well as the
|
223 |
+
`"supports"` field of features.
|
224 |
+
For example, if your library doesn't support linux, you might write `{ "supports": "!linux" }`.
|
225 |
+
|
226 |
+
|
227 |
+
### `"features"` and `"default-features"`
|
228 |
+
|
229 |
+
The `"features"` field defines _your_ project's optional features, that others may either depend on or not.
|
230 |
+
It's an object, where the keys are the names of the features, and the values are objects describing the feature.
|
231 |
+
`"description"` is required,
|
232 |
+
and acts exactly like the [`"description"`](#description) field on the global package,
|
233 |
+
and `"dependencies"` are optional,
|
234 |
+
and again act exactly like the [`"dependencies"`](#dependencies) field on the global package.
|
235 |
+
There's also the `"supports"` field,
|
236 |
+
which again acts exactly like the [`"supports"`](#supports) field on the global package.
|
237 |
+
|
238 |
+
You also have control over which features are default, if a person doesn't ask for anything specific,
|
239 |
+
and that's the `"default-features"` field, which is an array of feature names.
|
240 |
+
|
241 |
+
#### Example:
|
242 |
+
|
243 |
+
```json
|
244 |
+
{
|
245 |
+
"name": "libdb",
|
246 |
+
"version": "1.0.0",
|
247 |
+
"description": [
|
248 |
+
"An example database library.",
|
249 |
+
"Optionally can build with CBOR, JSON, or CSV as backends."
|
250 |
+
],
|
251 |
+
"$default-features-explanation": "Users using this library transitively will get all backends automatically",
|
252 |
+
"default-features": [ "cbor", "csv", "json" ],
|
253 |
+
"features": {
|
254 |
+
"cbor": {
|
255 |
+
"description": "The CBOR backend",
|
256 |
+
"dependencies": [
|
257 |
+
{
|
258 |
+
"$explanation": [
|
259 |
+
"This is how you tell vcpkg that the cbor feature depends on the json feature of this package"
|
260 |
+
],
|
261 |
+
"name": "libdb",
|
262 |
+
"default-features": false,
|
263 |
+
"features": [ "json" ]
|
264 |
+
}
|
265 |
+
]
|
266 |
+
},
|
267 |
+
"csv": {
|
268 |
+
"description": "The CSV backend",
|
269 |
+
"dependencies": [
|
270 |
+
"fast-cpp-csv-parser"
|
271 |
+
]
|
272 |
+
},
|
273 |
+
"json": {
|
274 |
+
"description": "The JSON backend",
|
275 |
+
"dependencies": [
|
276 |
+
"jsoncons"
|
277 |
+
]
|
278 |
+
}
|
279 |
+
}
|
280 |
+
}
|
281 |
+
```
|
282 |
+
|
283 |
+
## Command Line Interface
|
284 |
+
|
285 |
+
When invoked from any subdirectory of the directory containing `vcpkg.json`, `vcpkg install` with no package arguments
|
286 |
+
will install all manifest dependencies into `<directory containing vcpkg.json>/vcpkg_installed/`. Most of `vcpkg
|
287 |
+
install`'s classic mode parameters function the same in manifest mode.
|
288 |
+
|
289 |
+
### `--x-install-root=<path>`
|
290 |
+
|
291 |
+
**Experimental and may change or be removed at any time**
|
292 |
+
|
293 |
+
Specifies an alternate install location than `<directory containing vcpkg.json>/vcpkg_installed/`.
|
294 |
+
|
295 |
+
### `--triplet=<triplet>`
|
296 |
+
|
297 |
+
Specify the triplet to be used for installation.
|
298 |
+
|
299 |
+
Defaults to the same default triplet as in classic mode.
|
300 |
+
|
301 |
+
### `--x-feature=<feature>`
|
302 |
+
|
303 |
+
**Experimental and may change or be removed at any time**
|
304 |
+
|
305 |
+
Specify an additional feature from the `vcpkg.json` to install dependencies from.
|
306 |
+
|
307 |
+
### `--x-no-default-features`
|
308 |
+
|
309 |
+
**Experimental and may change or be removed at any time**
|
310 |
+
|
311 |
+
Disables automatic activation of all default features listed in the `vcpkg.json`.
|
312 |
+
|
313 |
+
### `--x-manifest-root=<path>`
|
314 |
+
|
315 |
+
**Experimental and may change or be removed at any time**
|
316 |
+
|
317 |
+
Specifies the directory containing `vcpkg.json`.
|
318 |
+
|
319 |
+
Defaults to searching upwards from the current working directory.
|
320 |
+
|
321 |
+
## CMake Integration
|
322 |
+
|
323 |
+
Our [CMake Integration](integration.md#cmake) will automatically detect a `vcpkg.json` manifest file in the same
|
324 |
+
directory as the top-level `CMakeLists.txt` (`${CMAKE_SOURCE_DIR}/vcpkg.json`) and activate manifest mode. Vcpkg will be
|
325 |
+
automatically bootstrapped if missing and invoked to install your dependencies into your local build directory
|
326 |
+
(`${CMAKE_BINARY_DIR}/vcpkg_installed`).
|
327 |
+
|
328 |
+
### Configuration
|
329 |
+
|
330 |
+
All vcpkg-affecting variables must be defined before the first `project()` directive, such as via the command line or
|
331 |
+
`set()` statements.
|
332 |
+
|
333 |
+
#### `VCPKG_TARGET_TRIPLET`
|
334 |
+
|
335 |
+
This variable controls which triplet dependencies will be installed for.
|
336 |
+
|
337 |
+
If unset, vcpkg will automatically detect an appropriate default triplet given the current compiler settings.
|
338 |
+
|
339 |
+
#### `VCPKG_HOST_TRIPLET`
|
340 |
+
|
341 |
+
This variable controls which triplet host dependencies will be installed for.
|
342 |
+
|
343 |
+
If unset, vcpkg will automatically detect an appropriate native triplet (x64-windows, x64-osx, x64-linux).
|
344 |
+
|
345 |
+
See also [Host Dependencies](host-dependencies.md).
|
346 |
+
|
347 |
+
### `VCPKG_INSTALLED_DIR`
|
348 |
+
|
349 |
+
This variable allows one to set the location of the `vcpkg_installed` directory.
|
350 |
+
It defaults to `${CMAKE_BINARY_DIR}/vcpkg_installed`.
|
351 |
+
|
352 |
+
#### `VCPKG_MANIFEST_MODE`
|
353 |
+
|
354 |
+
This variable controls whether vcpkg operates in manifest mode or in classic mode. To disable manifest mode even with a
|
355 |
+
`vcpkg.json`, set this to `OFF`.
|
356 |
+
|
357 |
+
Defaults to `ON` when `VCPKG_MANIFEST_DIR` is non-empty or `${CMAKE_SOURCE_DIR}/vcpkg.json` exists.
|
358 |
+
|
359 |
+
#### `VCPKG_MANIFEST_DIR`
|
360 |
+
|
361 |
+
This variable can be defined to specify an alternate folder containing your `vcpkg.json` manifest.
|
362 |
+
|
363 |
+
Defaults to `${CMAKE_SOURCE_DIR}` if `${CMAKE_SOURCE_DIR}/vcpkg.json` exists.
|
364 |
+
|
365 |
+
#### `VCPKG_MANIFEST_INSTALL`
|
366 |
+
|
367 |
+
This variable controls whether vcpkg will be automatically run to install your dependencies during your configure step.
|
368 |
+
|
369 |
+
Defaults to `ON` if `VCPKG_MANIFEST_MODE` is `ON`.
|
370 |
+
|
371 |
+
#### `VCPKG_BOOTSTRAP_OPTIONS`
|
372 |
+
|
373 |
+
This variable can be set to additional command parameters to pass to `./bootstrap-vcpkg` (run in automatic restore mode
|
374 |
+
if the vcpkg tool does not exist).
|
375 |
+
|
376 |
+
#### `VCPKG_OVERLAY_TRIPLETS`
|
377 |
+
|
378 |
+
This variable can be set to a list of paths to be passed on the command line as `--overlay-triplets=...`
|
379 |
+
|
380 |
+
#### `VCPKG_OVERLAY_PORTS`
|
381 |
+
|
382 |
+
This variable can be set to a list of paths to be passed on the command line as `--overlay-ports=...`
|
383 |
+
|
384 |
+
#### `VCPKG_MANIFEST_FEATURES`
|
385 |
+
|
386 |
+
This variable can be set to a list of features to treat as active when installing from your manifest.
|
387 |
+
|
388 |
+
For example, Features can be used by projects to control building with additional dependencies to enable tests or
|
389 |
+
samples:
|
390 |
+
|
391 |
+
```json
|
392 |
+
{
|
393 |
+
"name": "mylibrary",
|
394 |
+
"version": "1.0",
|
395 |
+
"dependencies": [ "curl" ],
|
396 |
+
"features": {
|
397 |
+
"samples": {
|
398 |
+
"description": "Build Samples",
|
399 |
+
"dependencies": [ "fltk" ]
|
400 |
+
},
|
401 |
+
"tests": {
|
402 |
+
"description": "Build Tests",
|
403 |
+
"dependencies": [ "gtest" ]
|
404 |
+
}
|
405 |
+
}
|
406 |
+
}
|
407 |
+
```
|
408 |
+
```cmake
|
409 |
+
# CMakeLists.txt
|
410 |
+
|
411 |
+
option(BUILD_TESTING "Build tests" OFF)
|
412 |
+
if(BUILD_TESTING)
|
413 |
+
list(APPEND VCPKG_MANIFEST_FEATURES "tests")
|
414 |
+
endif()
|
415 |
+
|
416 |
+
option(BUILD_SAMPLES "Build samples" OFF)
|
417 |
+
if(BUILD_SAMPLES)
|
418 |
+
list(APPEND VCPKG_MANIFEST_FEATURES "samples")
|
419 |
+
endif()
|
420 |
+
|
421 |
+
project(myapp)
|
422 |
+
|
423 |
+
# ...
|
424 |
+
```
|
425 |
+
|
426 |
+
#### `VCPKG_MANIFEST_NO_DEFAULT_FEATURES`
|
427 |
+
|
428 |
+
This variable controls whether to automatically activate all default features in addition to those listed in
|
429 |
+
`VCPKG_MANIFEST_FEATURES`. If set to `ON`, default features will not be automatically activated.
|
430 |
+
|
431 |
+
Defaults to `OFF`.
|
432 |
+
|
433 |
+
#### `VCPKG_INSTALL_OPTIONS`
|
434 |
+
|
435 |
+
This variable can be set to a list of additional command line parameters to pass to the vcpkg tool during automatic
|
436 |
+
installation.
|
437 |
+
|
438 |
+
#### `VCPKG_PREFER_SYSTEM_LIBS`
|
439 |
+
|
440 |
+
This variable controls whether vcpkg will appends instead of prepends its paths to `CMAKE_PREFIX_PATH`, `CMAKE_LIBRARY_PATH` and `CMAKE_FIND_ROOT_PATH` so that vcpkg libraries/packages are found after toolchain/system libraries/packages.
|
441 |
+
|
442 |
+
Defaults to `OFF`.
|
443 |
+
|
444 |
+
#### `VCPKG_FEATURE_FLAGS`
|
445 |
+
|
446 |
+
This variable can be set to a list of feature flags to pass to the vcpkg tool during automatic installation to opt-in to
|
447 |
+
experimental behavior.
|
448 |
+
|
449 |
+
See the `--feature-flags=` command line option for more information.
|
450 |
+
|
451 |
+
## MSBuild Integration
|
452 |
+
|
453 |
+
To use manifests with MSBuild, first you need to use an [existing integration method](integration.md#with-msbuild).
|
454 |
+
Then, add a vcpkg.json above your project file (such as in the root of your source repository) and set the
|
455 |
+
property `VcpkgEnableManifest` to `true`. You can set this property via the IDE in `Project Properties -> Vcpkg -> Use
|
456 |
+
Vcpkg Manifest`.
|
457 |
+
|
458 |
+
As part of your project's build, vcpkg automatically be run and install any listed dependencies to `vcpkg_installed/$(VcpkgTriplet)/`
|
459 |
+
adjacent to the `vcpkg.json` file; these files will then automatically be included in and linked to your MSBuild
|
460 |
+
projects.
|
461 |
+
|
462 |
+
### Known issues
|
463 |
+
|
464 |
+
* Visual Studio 2015 does not correctly track edits to the `vcpkg.json` and `vcpkg-configuration.json` files, and will
|
465 |
+
not respond to changes unless a `.cpp` is edited.
|
466 |
+
|
467 |
+
### MSBuild Properties
|
468 |
+
|
469 |
+
When using Visual Studio 2015 integration, these properties can be set in your project file before the
|
470 |
+
|
471 |
+
```xml
|
472 |
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
473 |
+
```
|
474 |
+
|
475 |
+
line, which unfortunately requires manual editing of the `.vcxproj` or passing on the msbuild command line with `/p:`.
|
476 |
+
With 2017 or later integration, These properties can additionally be set via the Visual Studio GUI under
|
477 |
+
`Project Properties -> Vcpkg` or via a common `.props` file imported between `Microsoft.Cpp.props` and
|
478 |
+
`Microsoft.Cpp.targets`.
|
479 |
+
|
480 |
+
#### `VcpkgEnabled` (Use Vcpkg)
|
481 |
+
|
482 |
+
This can be set to "false" to explicitly disable vcpkg integration for the project
|
483 |
+
|
484 |
+
#### `VcpkgTriplet` (Triplet)
|
485 |
+
|
486 |
+
This can be set to a custom triplet to use for integration (such as x64-windows-static)
|
487 |
+
|
488 |
+
#### `VcpkgHostTriplet` (Host Triplet)
|
489 |
+
|
490 |
+
This can be set to a custom triplet to use for resolving host dependencies.
|
491 |
+
|
492 |
+
If unset, this will default to the "native" triplet (x64-windows, x64-osx, x64-linux).
|
493 |
+
|
494 |
+
See also [Host Dependencies](host-dependencies.md).
|
495 |
+
|
496 |
+
#### `VcpkgAdditionalInstallOptions` (Additional Options)
|
497 |
+
|
498 |
+
When using a manifest, this option specifies additional command line flags to pass to the underlying vcpkg tool
|
499 |
+
invocation. This can be used to access features that have not yet been exposed through another option.
|
500 |
+
|
501 |
+
#### `VcpkgConfiguration` (Vcpkg Configuration)
|
502 |
+
|
503 |
+
If your configuration names are too complex for vcpkg to guess correctly, you can assign this property to `Release` or
|
504 |
+
`Debug` to explicitly tell vcpkg what variant of libraries you want to consume.
|
505 |
+
|
506 |
+
#### `VcpkgEnableManifest` (Use Vcpkg Manifest)
|
507 |
+
|
508 |
+
This property must be set to true in order to consume from a local vcpkg.json file. If set to false, any local
|
509 |
+
vcpkg.json files will be ignored. This will default to true in the future.
|
510 |
+
|
511 |
+
#### `VcpkgManifestInstall` (Install Vcpkg Dependencies)
|
512 |
+
|
513 |
+
*(Requires `Use Vcpkg Manifest` set to `true`)*
|
514 |
+
|
515 |
+
This property can be set to "false" to disable automatic dependency restoration on project build. Dependencies can be
|
516 |
+
manually restored via the vcpkg command line.
|
517 |
+
|
518 |
+
#### `VcpkgInstalledDir` (Installed Directory)
|
519 |
+
|
520 |
+
This property defines the location where headers and binaries are consumed from. In manifest mode, this directory is
|
521 |
+
created and populated based on your manifest.
|
third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/mingw.md
ADDED
@@ -0,0 +1,153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Vcpkg and Mingw-w64
|
2 |
+
|
3 |
+
**The latest version of this documentation is available on [GitHub](https://github.com/Microsoft/vcpkg/tree/master/docs/users/mingw.md).**
|
4 |
+
|
5 |
+
*MinGW is community-supported and not tested as part of vcpkg repository's CI process.*
|
6 |
+
|
7 |
+
## Table of Contents
|
8 |
+
|
9 |
+
- [Mingw-w64 community triplets](#Mingw-w64-community-triplets)
|
10 |
+
- [Using Mingw-w64 natively on Windows](#Using-Mingw-w64-natively-on-Windows)
|
11 |
+
- [How to avoid mixing different installations](#How-to-avoid-mixing-different-installations)
|
12 |
+
- [Using Mingw-w64 to build Windows programs on other systems](#Using-Mingw-w64-to-build-Windows-programs-on-other-systems)
|
13 |
+
|
14 |
+
## Mingw-w64 community triplets
|
15 |
+
|
16 |
+
Vcpkg includes
|
17 |
+
[x64, x86, arm64 and arm community triplets](https://github.com/microsoft/vcpkg/tree/master/triplets/community)
|
18 |
+
for [Mingw-w64](http://mingw-w64.org/). They don't depend on Visual Studio and
|
19 |
+
can be used natively on Windows as well as for cross-compiling on
|
20 |
+
other operating systems. There are two variants of each triplet,
|
21 |
+
selecting between static and dynamic linking. The actual tools
|
22 |
+
(g++ etc.) are expected to be named with particular prefixes.
|
23 |
+
|
24 |
+
| architecture | vcpkg community triplets | tool name prefix |
|
25 |
+
|--------------|-----------------------------------------|----------------------|
|
26 |
+
| x64 | x64-mingw-dynamic, x64-mingw-static | x86_64-w64-mingw32- |
|
27 |
+
| x86 | x86-mingw-dynamic, x86-mingw-static | i686-w64-mingw32- |
|
28 |
+
| arm64 | arm64-mingw-dynamic, arm64-mingw-static | aarch64-w64-mingw32- |
|
29 |
+
| arm | arm-mingw-dynamic, arm-mingw-static | armv7-w64-mingw32- |
|
30 |
+
|
31 |
+
These triplets are not tested by continuous integration, so many ports
|
32 |
+
do not build, and even existing ports may break on port updates.
|
33 |
+
Because of this, community involvement is paramount!
|
34 |
+
|
35 |
+
- [Discussions](https://github.com/microsoft/vcpkg/discussions?discussions_q=mingw)
|
36 |
+
- [Open issues](https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+mingw)
|
37 |
+
- [Open pull requests](https://github.com/microsoft/vcpkg/pulls?q=is%3Apr+is%3Aopen+mingw)
|
38 |
+
|
39 |
+
## Using Mingw-w64 natively on Windows
|
40 |
+
|
41 |
+
With [MSYS2](https://www.msys2.org/), it is possible to easily create
|
42 |
+
a full environment for building ports with Mingw-w64 on a Windows PC.
|
43 |
+
|
44 |
+
Note that for building software for native windows environments, you
|
45 |
+
must use a mingw subsystem of MSYS2, and install some packages
|
46 |
+
(with a specific prefix) for this subsystem.
|
47 |
+
|
48 |
+
| architecture | vcpkg triplets | subsystem | package prefix |
|
49 |
+
|--------------|-------------------------------------|-----------|-------------------|
|
50 |
+
| x64 | x64-mingw-dynamic, x64-mingw-static | mingw64 | mingw-w64-x86_64- |
|
51 |
+
| x86 | x86-mingw-dynamic, x86-mingw-static | mingw32 | mingw-w64-i686- |
|
52 |
+
|
53 |
+
After the basic installation of MSYS2, you will need to install a few
|
54 |
+
additional packages for software development, e.g. for x64:
|
55 |
+
|
56 |
+
```bash
|
57 |
+
pacman -S --needed git base-devel mingw-w64-x86_64-toolchain
|
58 |
+
```
|
59 |
+
|
60 |
+
The active subsystem is selected by running the MSYS2 MinGW app, or
|
61 |
+
changed in a running terminal by
|
62 |
+
|
63 |
+
```bash
|
64 |
+
source shell mingw64 # for x64, or "mingw32" for x86
|
65 |
+
```
|
66 |
+
|
67 |
+
The bootstrapping of vcpkg shall be done by running bootstrap-vcpkg.bat.
|
68 |
+
This will download the official vcpkg.exe.
|
69 |
+
|
70 |
+
```bash
|
71 |
+
git clone https://github.com/microsoft/vcpkg.git
|
72 |
+
cd vcpkg
|
73 |
+
./bootstrap-vcpkg.bat
|
74 |
+
```
|
75 |
+
|
76 |
+
For building packages, you need to tell vcpkg that you want to use the
|
77 |
+
mingw triplet. This can be done in different ways. When Visual Studio
|
78 |
+
is not installed, you must also set the host triplet to mingw. This is
|
79 |
+
needed to resolve host dependencies. For convenience, you can use
|
80 |
+
environment variables to set both triplets:
|
81 |
+
|
82 |
+
```bash
|
83 |
+
export VCPKG_DEFAULT_TRIPLET=x64-mingw-dynamic
|
84 |
+
export VCPKG_DEFAULT_HOST_TRIPLET=x64-mingw-dynamic
|
85 |
+
```
|
86 |
+
|
87 |
+
Now you can test your setup:
|
88 |
+
|
89 |
+
```bash
|
90 |
+
./vcpkg install zlib
|
91 |
+
```
|
92 |
+
|
93 |
+
### How to avoid mixing different installations
|
94 |
+
|
95 |
+
[The MSYS2 project explicitly warns](https://www.msys2.org/wiki/MSYS2-introduction/#path)
|
96 |
+
that "mixing in programs from other MSYS2 installations, Cygwin installations,
|
97 |
+
compiler toolchains or even various other programs is not supported and will
|
98 |
+
probably break things in unexpected ways." For example, the proper passing of
|
99 |
+
command line arguments with quoting and escaping may fail.
|
100 |
+
|
101 |
+
But Vcpkg ports implicitly create MSYS2 installations, e.g. for `pkg-config`
|
102 |
+
and for various other build tools needed to deal with packages based on
|
103 |
+
autoconf. In particular, when ports prepend the directory of tools to the
|
104 |
+
`PATH` environment variable, this may change which tool with a particular
|
105 |
+
name is actually invoked, and how arguments are passed between tools.
|
106 |
+
|
107 |
+
To mitigate such issues when working with a full MSYS2 installation,
|
108 |
+
try to keep the directories of the msys subsystem (`/usr/bin`, `bin`)
|
109 |
+
out of the `PATH` environment variable as found by vcpkg. In bash, you
|
110 |
+
may modify the `PATH` just for a single call of vcpkg:
|
111 |
+
|
112 |
+
```bash
|
113 |
+
PATH="${PATH/:\/usr\/bin:\/bin:/:}" ./vcpkg install libpq
|
114 |
+
```
|
115 |
+
|
116 |
+
Alternatively, you may run vcpkg from a regular Command Prompt, after
|
117 |
+
adding *only* the desired mingw directory (e.g. `C:\msys64\mingw64\bin`)
|
118 |
+
to the `PATH`.
|
119 |
+
|
120 |
+
When using vcpkg for CI with standard images on Azure Pipelines, Github Actions
|
121 |
+
or similar, note that the default `PATH` might contain more directories
|
122 |
+
which create a mix of MSYS2 programs from different installations. You may
|
123 |
+
want to set the desired `PATH` manually, or remove directories which contain
|
124 |
+
`sh.exe`, `bash.exe`, `msys-2.0.dll` or `cygwin1.dll`.
|
125 |
+
|
126 |
+
## Using Mingw-w64 to build Windows programs on other systems
|
127 |
+
|
128 |
+
You can use the vcpkg mingw community triplets with toolchains on
|
129 |
+
non-Windows computers to cross-compile software to be run on Windows.
|
130 |
+
Many Linux distributions offer such toolchains in optional packages
|
131 |
+
with a mingw-w64 [suffix](https://repology.org/projects/?search=-mingw-w64)
|
132 |
+
or [prefix](https://repology.org/projects/?search=mingw-w64-).
|
133 |
+
As an example, for Debian-based distributions, you would start with
|
134 |
+
this installation command for the x64 toolchain:
|
135 |
+
|
136 |
+
```
|
137 |
+
sudo apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64
|
138 |
+
```
|
139 |
+
|
140 |
+
Note that the packaged versions of Mingw-w64 toolchains on Linux distributions
|
141 |
+
might be older releases which lack some useful features or bug fixes.
|
142 |
+
An alternative independent toolchain is offered by [MXE](https://mxe.cc/).
|
143 |
+
|
144 |
+
For vcpkg bootstrapping, clone the github repository and run the
|
145 |
+
`bootstrap-vcpkg.sh` script:
|
146 |
+
|
147 |
+
```bash
|
148 |
+
git clone https://github.com/microsoft/vcpkg.git
|
149 |
+
cd vcpkg
|
150 |
+
./bootstrap-vcpkg.sh
|
151 |
+
./vcpkg install zlib:x64-mingw-dynamic
|
152 |
+
```
|
153 |
+
|
third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/registries.md
ADDED
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Using Registries
|
2 |
+
|
3 |
+
**The latest version of this documentation is available on [GitHub](https://github.com/Microsoft/vcpkg/tree/master/docs/users/registries.md).**
|
4 |
+
|
5 |
+
There are two parts to using registries; this documents the use side of the
|
6 |
+
relationship. In order to learn more about creating registries for others to
|
7 |
+
use, please read [this documentation](../maintainers/registries.md).
|
8 |
+
|
9 |
+
## Table of Contents
|
10 |
+
|
11 |
+
- [Using Registries](#using-registries)
|
12 |
+
- [Table of Contents](#table-of-contents)
|
13 |
+
- [`vcpkg-configuration.json`](#vcpkg-configurationjson)
|
14 |
+
- [Registry Objects](#registry-objects)
|
15 |
+
- [Registry Objects: `"kind"`](#registry-objects-kind)
|
16 |
+
- [Registry Objects: `"baseline"`](#registry-objects-baseline)
|
17 |
+
- [Registry Objects: `"repository"`](#registry-objects-repository)
|
18 |
+
- [Registry Objects: `"path"`](#registry-objects-path)
|
19 |
+
- [Configuration: `"default-registry"`](#configuration-default-registry)
|
20 |
+
- [Configuration: `"registries"`](#configuration-registries)
|
21 |
+
- [Example Configuration File](#example-configuration-file)
|
22 |
+
- [Package Name Resolution](#package-name-resolution)
|
23 |
+
- [Versioning Support](#versioning-support)
|
24 |
+
|
25 |
+
## `vcpkg-configuration.json`
|
26 |
+
|
27 |
+
From a high level perspective, everything that a project needs to define
|
28 |
+
about registries is contained in the vcpkg configuration file. In classic
|
29 |
+
mode, the configuration file lies in the vcpkg root; for manifest mode,
|
30 |
+
the file must exist next to the project's `vcpkg.json` file.
|
31 |
+
This file is named `vcpkg-configuration.json`, and it's a simple top-level
|
32 |
+
object file.
|
33 |
+
|
34 |
+
### Registry Objects
|
35 |
+
|
36 |
+
Registries are defined in JSON as objects. They must contain at least the
|
37 |
+
`"kind"` and `"baseline"` fields, and additionally the different kinds of
|
38 |
+
registry will have their own way of defining where the registry can be found:
|
39 |
+
|
40 |
+
- git registries require the `"repository"` field
|
41 |
+
- filesystem registries require the `"path"` field
|
42 |
+
- built-in registries do not require a field, since there is only one
|
43 |
+
built-in registry.
|
44 |
+
|
45 |
+
#### Registry Objects: `"kind"`
|
46 |
+
|
47 |
+
The `"kind"` field must be a string:
|
48 |
+
|
49 |
+
- For git registries: `"git"`
|
50 |
+
- For filesystem registries: `"filesystem"`
|
51 |
+
- For the builtin registry: `"builtin"`
|
52 |
+
|
53 |
+
#### Registry Objects: `"baseline"`
|
54 |
+
|
55 |
+
The `"baseline"` field must be a string. For git registries and for the
|
56 |
+
built-in registry, it should be a 40-character commit ID.
|
57 |
+
For filesystem registries, it can be any string that the registry defines.
|
58 |
+
|
59 |
+
#### Registry Objects: `"repository"`
|
60 |
+
|
61 |
+
This should be a string, of any repository format that git understands:
|
62 |
+
|
63 |
+
- `"https://github.com/microsoft/vcpkg"`
|
64 |
+
- `"[email protected]:microsoft/vcpkg"`
|
65 |
+
- `"/dev/vcpkg-registry"`
|
66 |
+
|
67 |
+
#### Registry Objects: `"path"`
|
68 |
+
|
69 |
+
This should be a path; it can be either absolute or relative; relative paths
|
70 |
+
will be based at the directory the `vcpkg-configuration.json` lives in.
|
71 |
+
|
72 |
+
### Configuration: `"default-registry"`
|
73 |
+
|
74 |
+
The `"default-registry"` field should be a registry object. It defines
|
75 |
+
the registry that is used for all packages that are not claimed by any
|
76 |
+
package registries. It may also be `null`, in which case no packages that
|
77 |
+
are not claimed by package registries may be installed.
|
78 |
+
|
79 |
+
### Configuration: `"registries"`
|
80 |
+
|
81 |
+
The `"registries"` field should be an array of registry objects, each of
|
82 |
+
which additionally contain a `"packages"` field, which should be an array of
|
83 |
+
package names. These define the package registries, which are used for
|
84 |
+
the specific packages named by the `"packages"` field.
|
85 |
+
|
86 |
+
The `"packages"` fields of all the package registries must be disjoint.
|
87 |
+
|
88 |
+
### Example Configuration File
|
89 |
+
|
90 |
+
Let's assume that you have mirrored <https://github.com/microsoft/vcpkg> at
|
91 |
+
<https://git.example.com/vcpkg>: this will be your default registry.
|
92 |
+
Additionally, you want to use North Wind Trader's registry for their
|
93 |
+
beison and beicode libraries. The following `vcpkg-configuration.json`
|
94 |
+
will work:
|
95 |
+
|
96 |
+
```json
|
97 |
+
{
|
98 |
+
"default-registry": {
|
99 |
+
"kind": "git",
|
100 |
+
"repository": "https://internal/mirror/of/github.com/Microsoft/vcpkg",
|
101 |
+
"baseline": "eefee7408133f3a0fef711ef9c6a3677b7e06fd7"
|
102 |
+
},
|
103 |
+
"registries": [
|
104 |
+
{
|
105 |
+
"kind": "git",
|
106 |
+
"repository": "https://github.com/northwindtraders/vcpkg-registry",
|
107 |
+
"baseline": "dacf4de488094a384ca2c202b923ccc097956e0c",
|
108 |
+
"packages": [ "beicode", "beison" ]
|
109 |
+
}
|
110 |
+
]
|
111 |
+
}
|
112 |
+
```
|
113 |
+
|
114 |
+
## Package Name Resolution
|
115 |
+
|
116 |
+
The way package name resolution works in vcpkg is fairly distinct from many
|
117 |
+
package managers. It is very carefully designed to _never_ implicitly choose
|
118 |
+
the registry that a package is fetched from. Just from
|
119 |
+
`vcpkg-configuration.json`, one can tell exactly from which registry a
|
120 |
+
package definition will be fetched from.
|
121 |
+
|
122 |
+
The name resolution algorithm is as follows:
|
123 |
+
|
124 |
+
- If there is a package registry that claims the package name,
|
125 |
+
use that registry; otherwise
|
126 |
+
- If there is a default registry defined, use that registry; otherwise
|
127 |
+
- If the default registry is set to `null`, error out; otherwise
|
128 |
+
- use the built-in registry.
|
129 |
+
|
130 |
+
### Versioning Support
|
131 |
+
|
132 |
+
Versioning with custom registries works exactly as it does in the built-in
|
133 |
+
registry. You can read more about that in the [versioning documentation].
|
134 |
+
|
135 |
+
[versioning documentation]: versioning.md
|
third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/selecting-library-features.md
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Selecting Library Features
|
2 |
+
|
3 |
+
**The latest version of this documentation is available on [GitHub](https://github.com/Microsoft/vcpkg/tree/master/docs/users/selecting-library-features.md).**
|
4 |
+
|
5 |
+
## Installing a library
|
6 |
+
|
7 |
+
We will look at [llvm](https://llvm.org/) as an example. You could install it using:
|
8 |
+
|
9 |
+
```powershell
|
10 |
+
> vcpkg install llvm
|
11 |
+
```
|
12 |
+
or via a manifest with
|
13 |
+
```json
|
14 |
+
{
|
15 |
+
"dependencies": ["llvm"]
|
16 |
+
}
|
17 |
+
```
|
18 |
+
|
19 |
+
With llvm now installed, we can execute:
|
20 |
+
|
21 |
+
```powershell
|
22 |
+
> installed\x86-windows\bin\llc.exe --version
|
23 |
+
```
|
24 |
+
|
25 |
+
we see:
|
26 |
+
|
27 |
+
```powershell
|
28 |
+
Registered Targets:
|
29 |
+
x86 - 32-bit X86: Pentium-Pro and above
|
30 |
+
x86-64 - 64-bit X86: EM64T and AMD64
|
31 |
+
```
|
32 |
+
|
33 |
+
## Installing additional features
|
34 |
+
|
35 |
+
But [llvm supports many more targets](https://llvm.org/docs/GettingStarted.html#local-llvm-configuration), from ARM to SPARC to SystemZ.
|
36 |
+
However, clearly our current installation doesn't include ARM as a target;
|
37 |
+
thus, we need to learn how vcpkg allows us to install other LLVM targets.
|
38 |
+
The llvm port allows this via the "target-*" features.
|
39 |
+
|
40 |
+
If we do:
|
41 |
+
|
42 |
+
```powershell
|
43 |
+
> vcpkg search llvm
|
44 |
+
```
|
45 |
+
|
46 |
+
We can see:
|
47 |
+
|
48 |
+
```
|
49 |
+
llvm 10.0.0#6 The LLVM Compiler Infrastructure
|
50 |
+
llvm[clang] Build C Language Family Front-end.
|
51 |
+
llvm[clang-tools-extra] Build Clang tools.
|
52 |
+
...
|
53 |
+
llvm[target-all] Build with all backends.
|
54 |
+
llvm[target-amdgpu] Build with AMDGPU backend.
|
55 |
+
llvm[target-arm] Build with ARM backend.
|
56 |
+
...
|
57 |
+
```
|
58 |
+
|
59 |
+
We can install any of these targets by using the install-feature syntax:
|
60 |
+
|
61 |
+
```powershell
|
62 |
+
> vcpkg install llvm[target-arm] # Installs LLVM with the ARM target
|
63 |
+
```
|
64 |
+
```json
|
65 |
+
{
|
66 |
+
"dependencies": [{ "name": "llvm", "features": ["target-arm"] }]
|
67 |
+
}
|
68 |
+
```
|
69 |
+
|
70 |
+
## Opting out of default features
|
71 |
+
|
72 |
+
The llvm port includes a few default features that you as a user may not want: for example,
|
73 |
+
the `clang` feature is default, which means that `vcpkg install llvm` will also build and install clang.
|
74 |
+
If you are writing a compiler that uses LLVM as a backend,
|
75 |
+
you're likely not interested in installing clang as well,
|
76 |
+
and we can do that by disabling default features with the special `core` "feature":
|
77 |
+
```powershell
|
78 |
+
> vcpkg install llvm[core,target-arm] # removing the default-feature with "core" also removes all of the default targets you get
|
79 |
+
```
|
80 |
+
or in manifest files:
|
81 |
+
```json
|
82 |
+
{
|
83 |
+
"dependencies": [{
|
84 |
+
"name": "llvm",
|
85 |
+
"default-features": false,
|
86 |
+
"features": ["target-arm"]
|
87 |
+
}]
|
88 |
+
}
|
89 |
+
```
|
90 |
+
|
91 |
+
# Further reading
|
92 |
+
- The [Feature Packages](../specifications/feature-packages.md) specification was the initial design for features.
|
third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/triplets.md
ADDED
@@ -0,0 +1,228 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Triplet Files
|
2 |
+
|
3 |
+
**The latest version of this documentation is available on [GitHub](https://github.com/Microsoft/vcpkg/tree/master/docs/users/triplets.md).**
|
4 |
+
|
5 |
+
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.
|
6 |
+
|
7 |
+
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.
|
8 |
+
|
9 |
+
We currently provide many triplets by default (run `vcpkg help triplet`). However, you can easily customize or add your own by copying a built-in triplet from the `triplets\` directory into a project local location. Then, use overlay triplets (such as [`$VCPKG_OVERLAY_TRIPLETS`](config-environment.md#vcpkg_overlay_triplets), [CMake Manifest Mode](manifests.md#vcpkg_overlay_triplets), or [MSBuild Manifest Mode](manifests.md#vcpkgadditionalinstalloptions-additional-options)) to add that directory to vcpkg. See our [overlay triplets example](../examples/overlay-triplets-linux-dynamic.md) for a more detailed walkthrough.
|
10 |
+
|
11 |
+
To change the triplet used by your project away from the default, see our [Integration Document](integration.md#triplet-selection).
|
12 |
+
|
13 |
+
## Community triplets
|
14 |
+
|
15 |
+
Triplets contained in the `triplets\community` folder are not tested by continuous integration, but are commonly requested by the community.
|
16 |
+
|
17 |
+
Because we do not have continuous coverage, port updates may break compatibility with community triplets. Because of this, community involvement is paramount!
|
18 |
+
|
19 |
+
We will gladly accept and review contributions that aim to solve issues with these triplets.
|
20 |
+
|
21 |
+
### Usage
|
22 |
+
|
23 |
+
Community Triplets are enabled by default, when using a community triplet a message like the following one will be printed during a package install:
|
24 |
+
|
25 |
+
```no-highlight
|
26 |
+
-- Using community triplet x86-uwp. This triplet configuration is not guaranteed to succeed.
|
27 |
+
-- [COMMUNITY] Loading triplet configuration from: D:\src\viromer\vcpkg\triplets\community\x86-uwp.cmake
|
28 |
+
```
|
29 |
+
|
30 |
+
## Variables
|
31 |
+
### VCPKG_TARGET_ARCHITECTURE
|
32 |
+
Specifies the target machine architecture.
|
33 |
+
|
34 |
+
Valid options are `x86`, `x64`, `arm`, `arm64` and `wasm32`.
|
35 |
+
|
36 |
+
### VCPKG_CRT_LINKAGE
|
37 |
+
Specifies the desired CRT linkage (for MSVC).
|
38 |
+
|
39 |
+
Valid options are `dynamic` and `static`.
|
40 |
+
|
41 |
+
### VCPKG_LIBRARY_LINKAGE
|
42 |
+
Specifies the preferred library linkage.
|
43 |
+
|
44 |
+
Valid options are `dynamic` and `static`. Note that libraries can ignore this setting if they do not support the preferred linkage type.
|
45 |
+
|
46 |
+
### VCPKG_BUILD_TYPE
|
47 |
+
You can set this value to `release` to only build release versions of the ports. By default this value is empty and release and debug versions of a port are built.
|
48 |
+
|
49 |
+
### VCPKG_CMAKE_SYSTEM_NAME
|
50 |
+
Specifies the target platform.
|
51 |
+
|
52 |
+
Valid options include any CMake system name, such as:
|
53 |
+
- Empty (Windows Desktop for legacy reasons)
|
54 |
+
- `WindowsStore` (Universal Windows Platform)
|
55 |
+
- `MinGW` (Minimalist GNU for Windows)
|
56 |
+
- `Darwin` (Mac OSX)
|
57 |
+
- `iOS` (iOS)
|
58 |
+
- `Linux` (Linux)
|
59 |
+
- `Emscripten` (WebAssembly)
|
60 |
+
|
61 |
+
### VCPKG_CMAKE_SYSTEM_VERSION
|
62 |
+
Specifies the target platform system version.
|
63 |
+
|
64 |
+
This field is optional and, if present, will be passed into the build as `CMAKE_SYSTEM_VERSION`.
|
65 |
+
|
66 |
+
See also the CMake documentation for `CMAKE_SYSTEM_VERSION`: https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_VERSION.html.
|
67 |
+
|
68 |
+
### VCPKG_CHAINLOAD_TOOLCHAIN_FILE
|
69 |
+
Specifies an alternate CMake Toolchain file to use.
|
70 |
+
|
71 |
+
This (if set) will override all other compiler detection logic. By default, a toolchain file is selected from `scripts/toolchains/` appropriate to the platform.
|
72 |
+
|
73 |
+
See also the CMake documentation for toolchain files: https://cmake.org/cmake/help/v3.11/manual/cmake-toolchains.7.html.
|
74 |
+
|
75 |
+
### VCPKG_CXX_FLAGS
|
76 |
+
Sets additional compiler flags to be used when not using `VCPKG_CHAINLOAD_TOOLCHAIN_FILE`.
|
77 |
+
|
78 |
+
This option also has forms for configuration-specific and C flags:
|
79 |
+
- `VCPKG_CXX_FLAGS`
|
80 |
+
- `VCPKG_CXX_FLAGS_DEBUG`
|
81 |
+
- `VCPKG_CXX_FLAGS_RELEASE`
|
82 |
+
- `VCPKG_C_FLAGS`
|
83 |
+
- `VCPKG_C_FLAGS_DEBUG`
|
84 |
+
- `VCPKG_C_FLAGS_RELEASE`
|
85 |
+
|
86 |
+
### VCPKG_LINKER_FLAGS
|
87 |
+
Sets additional linker flags to be used while building dynamic libraries and
|
88 |
+
executables in the absence of `VCPKG_CHAINLOAD_TOOLCHAIN_FILE`.
|
89 |
+
|
90 |
+
This option also has forms for configuration-specific flags:
|
91 |
+
- `VCPKG_LINKER_FLAGS`
|
92 |
+
- `VCPKG_LINKER_FLAGS_DEBUG`
|
93 |
+
- `VCPKG_LINKER_FLAGS_RELEASE`
|
94 |
+
|
95 |
+
### VCPKG_CMAKE_CONFIGURE_OPTIONS
|
96 |
+
Set additional CMake configure options that are appended to the configure command (in [`vcpkg_cmake_configure`](../maintainers/ports/vcpkg-cmake/vcpkg_cmake_configure.md)).
|
97 |
+
|
98 |
+
This field is optional.
|
99 |
+
|
100 |
+
Also available as build-type specific `VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG` and `VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE` variables.
|
101 |
+
|
102 |
+
### VCPKG_MAKE_CONFIGURE_OPTIONS
|
103 |
+
Set additional automake / autoconf configure options that are appended to the configure command (in [`vcpkg_configure_make`](../maintainers/vcpkg_configure_make.md)).
|
104 |
+
|
105 |
+
This field is optional.
|
106 |
+
|
107 |
+
For example, to skip certain libtool checks that may errantly fail:
|
108 |
+
```cmake
|
109 |
+
set(VCPKG_MAKE_CONFIGURE_OPTIONS "lt_cv_deplibs_check_method=pass_all")
|
110 |
+
```
|
111 |
+
|
112 |
+
Also available as build-type specific `VCPKG_MAKE_CONFIGURE_OPTIONS_DEBUG` and `VCPKG_MAKE_CONFIGURE_OPTIONS_RELEASE` variables.
|
113 |
+
|
114 |
+
<a name="VCPKG_DEP_INFO_OVERRIDE_VARS"></a>
|
115 |
+
### VCPKG_DEP_INFO_OVERRIDE_VARS
|
116 |
+
Replaces the default computed list of triplet "Supports" terms.
|
117 |
+
|
118 |
+
This option (if set) will override the default set of terms used for qualified dependency resolution and "Supports" field evaluation.
|
119 |
+
|
120 |
+
See the [`"supports"`](../maintainers/manifest-files.md#supports) manifest file field documentation for more details.
|
121 |
+
|
122 |
+
> Implementers' Note: this list is extracted via the `vcpkg_get_dep_info` mechanism.
|
123 |
+
|
124 |
+
### VCPKG_DISABLE_COMPILER_TRACKING
|
125 |
+
|
126 |
+
When this option is set to (true|1|on), the compiler is ignored in the abi tracking.
|
127 |
+
|
128 |
+
## Windows Variables
|
129 |
+
|
130 |
+
<a name="VCPKG_ENV_PASSTHROUGH"></a>
|
131 |
+
### VCPKG_ENV_PASSTHROUGH
|
132 |
+
Instructs vcpkg to allow additional environment variables into the build process.
|
133 |
+
|
134 |
+
On Windows, vcpkg builds packages in a special clean environment that is isolated from the current command prompt to
|
135 |
+
ensure build reliability and consistency. This triplet option can be set to a list of additional environment variables
|
136 |
+
that will be added to the clean environment. The values of these environment variables will be hashed into the package
|
137 |
+
abi -- to pass through environment variables without abi tracking, see `VCPKG_ENV_PASSTHROUGH_UNTRACKED`.
|
138 |
+
|
139 |
+
See also the `vcpkg env` command for how you can inspect the precise environment that will be used.
|
140 |
+
|
141 |
+
> Implementers' Note: this list is extracted via the `vcpkg_get_tags` mechanism.
|
142 |
+
|
143 |
+
### VCPKG_ENV_PASSTHROUGH_UNTRACKED
|
144 |
+
Instructs vcpkg to allow additional environment variables into the build process without abi tracking.
|
145 |
+
|
146 |
+
See `VCPKG_ENV_PASSTHROUGH`.
|
147 |
+
|
148 |
+
<a name="VCPKG_VISUAL_STUDIO_PATH"></a>
|
149 |
+
### VCPKG_VISUAL_STUDIO_PATH
|
150 |
+
Specifies the Visual Studio installation to use.
|
151 |
+
|
152 |
+
To select the precise combination of Visual Studio instance and toolset version, we walk through the following algorithm:
|
153 |
+
1. Determine the setting for `VCPKG_VISUAL_STUDIO_PATH` from the triplet, or the environment variable `VCPKG_VISUAL_STUDIO_PATH`, or consider it unset
|
154 |
+
2. Determine the setting for `VCPKG_PLATFORM_TOOLSET` from the triplet or consider it unset
|
155 |
+
3. Gather a list of all pairs of Visual Studio Instances with all toolsets available in those instances
|
156 |
+
1. This is ordered first by instance type (Stable, Prerelease, Legacy) and then by toolset version (v142, v141, v140)
|
157 |
+
4. Filter the list based on the settings for `VCPKG_VISUAL_STUDIO_PATH` and `VCPKG_PLATFORM_TOOLSET`.
|
158 |
+
5. Select the best remaining option
|
159 |
+
|
160 |
+
The path should be absolute, formatted with backslashes, and have no trailing slash:
|
161 |
+
```cmake
|
162 |
+
set(VCPKG_VISUAL_STUDIO_PATH "C:\\Program Files (x86)\\Microsoft Visual Studio\\Preview\\Community")
|
163 |
+
```
|
164 |
+
|
165 |
+
### VCPKG_PLATFORM_TOOLSET
|
166 |
+
Specifies the VS-based C/C++ compiler toolchain to use.
|
167 |
+
|
168 |
+
See [`VCPKG_VISUAL_STUDIO_PATH`](#VCPKG_VISUAL_STUDIO_PATH) for the full selection algorithm.
|
169 |
+
|
170 |
+
Valid settings:
|
171 |
+
* The Visual Studio 2019 platform toolset is `v142`.
|
172 |
+
* The Visual Studio 2017 platform toolset is `v141`.
|
173 |
+
* The Visual Studio 2015 platform toolset is `v140`.
|
174 |
+
|
175 |
+
### VCPKG_PLATFORM_TOOLSET_VERSION
|
176 |
+
Specifies the detailed MSVC C/C++ compiler toolchain to use.
|
177 |
+
|
178 |
+
By default, [`VCPKG_PLATFORM_TOOLSET`] always chooses the latest installed minor version of the selected toolset.
|
179 |
+
If you need more granularity, you can use this variable.
|
180 |
+
Valid values are, for example, `14.25` or `14.27.29110`.
|
181 |
+
|
182 |
+
### VCPKG_LOAD_VCVARS_ENV
|
183 |
+
If `VCPKG_CHAINLOAD_TOOLCHAIN_FILE` is used, VCPKG will not setup the Visual Studio environment.
|
184 |
+
Setting `VCPKG_LOAD_VCVARS_ENV` to (true|1|on) changes this behavior so that the Visual Studio environment is setup following the same rules as if `VCPKG_CHAINLOAD_TOOLCHAIN_FILE` was not set.
|
185 |
+
|
186 |
+
## MacOS Variables
|
187 |
+
|
188 |
+
### VCPKG_INSTALL_NAME_DIR
|
189 |
+
Sets the install name used when building macOS dynamic libraries. Default value is `@rpath`. See the CMake documentation for [CMAKE_INSTALL_NAME_DIR](https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_NAME_DIR.html) for more information.
|
190 |
+
|
191 |
+
### VCPKG_OSX_DEPLOYMENT_TARGET
|
192 |
+
Sets the minimum macOS version for compiled binaries. This also changes what versions of the macOS platform SDK that CMake will search for. See the CMake documentation for [CMAKE_OSX_DEPLOYMENT_TARGET](https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_DEPLOYMENT_TARGET.html) for more information.
|
193 |
+
|
194 |
+
### VCPKG_OSX_SYSROOT
|
195 |
+
Set the name or path of the macOS platform SDK that will be used by CMake. See the CMake documentation for [CMAKE_OSX_SYSROOT](https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_SYSROOT.html) for more information.
|
196 |
+
|
197 |
+
|
198 |
+
### VCPKG_OSX_ARCHITECTURES
|
199 |
+
Set the macOS / iOS target architecture which will be used by CMake. See the CMake documentation for [CMAKE_OSX_ARCHITECTURES](https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_ARCHITECTURES.html) for more information.
|
200 |
+
|
201 |
+
## Per-port customization
|
202 |
+
The CMake Macro `PORT` will be set when interpreting the triplet file and can be used to change settings (such as `VCPKG_LIBRARY_LINKAGE`) on a per-port basis.
|
203 |
+
|
204 |
+
Example:
|
205 |
+
```cmake
|
206 |
+
set(VCPKG_LIBRARY_LINKAGE static)
|
207 |
+
if(PORT MATCHES "qt5-")
|
208 |
+
set(VCPKG_LIBRARY_LINKAGE dynamic)
|
209 |
+
endif()
|
210 |
+
```
|
211 |
+
This will build all the `qt5-*` libraries as DLLs, but every other library as a static library.
|
212 |
+
|
213 |
+
For an example in a real project, see https://github.com/Intelight/vcpkg/blob/master/triplets/x86-windows-mixed.cmake.
|
214 |
+
|
215 |
+
## Additional Remarks
|
216 |
+
The default triplet when running any vcpkg command is `%VCPKG_DEFAULT_TRIPLET%` or a platform-specific choice if that environment variable is undefined.
|
217 |
+
|
218 |
+
- Windows: `x86-windows`
|
219 |
+
- Linux: `x64-linux`
|
220 |
+
- OSX: `x64-osx`
|
221 |
+
|
222 |
+
We recommend using a systematic naming scheme when creating new triplets. The Android toolchain naming scheme is a good source of inspiration: https://developer.android.com/ndk/guides/standalone_toolchain.html.
|
223 |
+
|
224 |
+
## Android triplets
|
225 |
+
See [android.md](android.md)
|
226 |
+
|
227 |
+
## Mingw-w64 triplets
|
228 |
+
See [mingw.md](mingw.md)
|
third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/versioning.implementation-details.md
ADDED
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Versioning: Implementation details
|
2 |
+
|
3 |
+
**The latest version of this documentation is available on [GitHub](https://github.com/Microsoft/vcpkg/tree/master/docs/users/versioning.implementation-details.md).**
|
4 |
+
|
5 |
+
## Contents
|
6 |
+
|
7 |
+
* [Minimum versioning](#minimum-versioning)
|
8 |
+
* [Constraint resolution](#constraint-resolution)
|
9 |
+
* [Acquiring port versions](#acquiring-port-versions)
|
10 |
+
|
11 |
+
|
12 |
+
### Minimum versioning
|
13 |
+
Vcpkg uses a minimal selection approach to versioning, inspired by the one [used by Go](https://research.swtch.com/vgo-mvs). But modified in some ways:
|
14 |
+
|
15 |
+
* Always starts from a fresh install, eliminates the need for upgrade/downgrade operations.
|
16 |
+
* Allow unconstrained dependencies by introducing baselines.
|
17 |
+
|
18 |
+
The minimal selection principle, however, stays the same. Given a set of constraints, vcpkg will use the "oldest" possible versions of packages that can satisfy all the constraints.
|
19 |
+
|
20 |
+
Using a minimum version approach has the following advantages:
|
21 |
+
* Is predictable and easy to understand.
|
22 |
+
* User controls when upgrades happen, as in, no upgrades are performed automatically when a new version is released.
|
23 |
+
* Avoids using a SAT solver.
|
24 |
+
|
25 |
+
To give an example, consider the following package graph:
|
26 |
+
```
|
27 |
+
(A 1.0) -> (B 1.0)
|
28 |
+
|
29 |
+
(A 1.1) -> (B 1.0)
|
30 |
+
-> (C 3.0)
|
31 |
+
|
32 |
+
(A 1.2) -> (B 2.0)
|
33 |
+
-> (C 3.0)
|
34 |
+
|
35 |
+
(C 2.0)
|
36 |
+
```
|
37 |
+
|
38 |
+
And the following manifest:
|
39 |
+
```
|
40 |
+
{
|
41 |
+
"name": "example",
|
42 |
+
"version": "1.0.0",
|
43 |
+
"dependencies": [
|
44 |
+
{ "name": "A", "version>=": "1.1" },
|
45 |
+
{ "name": "C", "version>=": "2.0" }
|
46 |
+
],
|
47 |
+
"builtin-baseline": "<some git commit with A's baseline at 1.0>"
|
48 |
+
}
|
49 |
+
```
|
50 |
+
|
51 |
+
After accounting for transitive dependencies we have the following set of constraints:
|
52 |
+
* A >= 1.1
|
53 |
+
* B >= 1.0
|
54 |
+
* C >= 3.0
|
55 |
+
* C >= 2.0
|
56 |
+
|
57 |
+
Since vcpkg has to satisfy all the constraints, the set of installed packages becomes:
|
58 |
+
|
59 |
+
* `A 1.1`, even when `A 1.2` exists, there are no constraints higher than `1.1` so vcpkg selects the minimum version possible.
|
60 |
+
* `B 1.0`, transitively required by `A 1.1`.
|
61 |
+
* `C 3.0`, upgraded by the transitive constraint added by `B 1.0` in order to satisfy version constraints.
|
62 |
+
|
63 |
+
## Constraint resolution
|
64 |
+
Given a manifest with a set of versioned dependencies, vcpkg will attempt to calculate a package installation plan that satisfies all the constraints.
|
65 |
+
|
66 |
+
Version constraints come in the following flavors:
|
67 |
+
* **Declared constraints**: Constraints declared explicitly in the top-level manifest using `version>=`.
|
68 |
+
* **Baseline constraints**: Constraints added implicitly by the `builtin-baseline`.
|
69 |
+
* **Transitive constraints**: Constraints added indirectly by dependencies of your dependencies.
|
70 |
+
* **Overridden constraints**: Constraints overridden in the top-level manifest using `overrides` declarations.
|
71 |
+
|
72 |
+
To compute an installation plan, vcpkg follows roughly these steps:
|
73 |
+
|
74 |
+
* Add all top-level constraints to the plan.
|
75 |
+
* Recursively add transitive constraints to the plan.
|
76 |
+
* Each time a new package is added to the plan, also add its baseline constraint to the plan.
|
77 |
+
* Each time a constraint is added:
|
78 |
+
* If an override exists for the package
|
79 |
+
* Select the version in the override.
|
80 |
+
* Otherwise:
|
81 |
+
* If there is no previous version selected.
|
82 |
+
* Select the minimal version that satisfies the constraint.
|
83 |
+
* If there is a previous version selected:
|
84 |
+
* If the versioning scheme of the new constraint does not match that of the previously selected version:
|
85 |
+
* Add a version conflict.
|
86 |
+
* If the constraint's version is not comparable to the previously selected version. For example, comparing "version-string: apple" to "version-string: orange":
|
87 |
+
* Add a version conflict.
|
88 |
+
* If the constraints version is higher than the previously selected version:
|
89 |
+
* Select the highest version.
|
90 |
+
* Otherwise:
|
91 |
+
* Keep the previous selection.
|
92 |
+
* Review the plan:
|
93 |
+
* If there are no conflicts
|
94 |
+
* Install the selected packages
|
95 |
+
* Otherwise:
|
96 |
+
* Report the conflicts to the user
|
97 |
+
|
98 |
+
## Acquiring port versions
|
99 |
+
Although the concept of package versions has always been present in vcpkg, the concept of version constraints has been not.
|
100 |
+
|
101 |
+
With the introduction of versioning constraints, it is now possible that a package depends on a port version that does not match the one available locally. This raises a problem as vcpkg needs to know how to acquire the port files for the requested version.
|
102 |
+
|
103 |
+
To solve this problem, a new set of metadata files was introduced. These files are located in the `versions/` directory at the root level of the vcpkg repository.
|
104 |
+
|
105 |
+
The `versions/` directory, will contain JSON files for each one of the ports available in the registry. Each file will list all the versions available for a package and contain a Git tree-ish object that vcpkg can check out to obtain that version's portfiles.
|
106 |
+
|
107 |
+
Example: `zlib.json`
|
108 |
+
|
109 |
+
```
|
110 |
+
{
|
111 |
+
"versions": [
|
112 |
+
{
|
113 |
+
"git-tree": "2dfc991c739ab9f2605c2ad91a58a7982eb15687",
|
114 |
+
"version-string": "1.2.11",
|
115 |
+
"port-version": 9
|
116 |
+
},
|
117 |
+
...
|
118 |
+
{
|
119 |
+
"git-tree": "a516e5ee220c8250f21821077d0e3dd517f02631",
|
120 |
+
"version-string": "1.2.10",
|
121 |
+
"port-version": 0
|
122 |
+
},
|
123 |
+
{
|
124 |
+
"git-tree": "3309ec82cd96d752ff890c441cb20ef49b52bf94",
|
125 |
+
"version-string": "1.2.8",
|
126 |
+
"port-version": 0
|
127 |
+
}
|
128 |
+
]
|
129 |
+
}
|
130 |
+
```
|
131 |
+
|
132 |
+
For each port, its corresponding versions file should be located in `versions/{first letter of port name}-/{port name}.json`. For example, zlib's version file will be located in `versions/z-/zlib.json`. Aside from port version files, the current baseline file is located in `versions/baseline.json`.
|
133 |
+
|
134 |
+
|
third-party/DPVO/Pangolin/scripts/vcpkg/docs/users/versioning.md
ADDED
@@ -0,0 +1,189 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Versioning
|
2 |
+
|
3 |
+
**The latest version of this documentation is available on [GitHub](https://github.com/Microsoft/vcpkg/tree/master/docs/users/versioning.md).**
|
4 |
+
|
5 |
+
Versioning allows you to deterministically control the precise revisions of dependencies used by
|
6 |
+
your project from within your manifest file.
|
7 |
+
|
8 |
+
See our guide to [getting started with versioning](../examples/versioning.getting-started.md).
|
9 |
+
|
10 |
+
## Contents
|
11 |
+
|
12 |
+
* [Version schemes](#version-schemes)
|
13 |
+
* [`version`](#version)
|
14 |
+
* [`version-semver`](#version-semver)
|
15 |
+
* [`version-date`](#version-date)
|
16 |
+
* [`version-string`](#version-string)
|
17 |
+
* [Version constraints](#version-constraints)
|
18 |
+
* [Version files](#version-files)
|
19 |
+
|
20 |
+
## Version schemes
|
21 |
+
Ports in vcpkg should attempt to follow the versioning conventions used by the package's authors. For that reason, when declaring a package's version the appropriate scheme should be used.
|
22 |
+
|
23 |
+
Each versioning scheme defines its own rules on what is a valid version string and more importantly the rules for how to sort versions using the same scheme.
|
24 |
+
|
25 |
+
The versioning schemes understood by vcpkg are:
|
26 |
+
|
27 |
+
Manifest property | Versioning scheme
|
28 |
+
------------------|------------------------------------
|
29 |
+
`version` | For dot-separated numeric versions
|
30 |
+
`version-semver` | For SemVer compliant versions
|
31 |
+
`version-date` | For dates in the format YYYY-MM-DD
|
32 |
+
`version-string` | For arbitrary strings
|
33 |
+
|
34 |
+
A manifest must contain only one version declaration.
|
35 |
+
|
36 |
+
_NOTE: By design, vcpkg does not compare versions that use different schemes. For example, a package
|
37 |
+
that has a `version-string: 7.1.3` cannot be compared with the same package using `version: 7.1.4`, even if the
|
38 |
+
conversion seems obvious._
|
39 |
+
|
40 |
+
#### `version`
|
41 |
+
Accepts version strings that follow a relaxed, dot-separated-, semver-like scheme.
|
42 |
+
|
43 |
+
The version is logically composed of dot-separated (`.`) numeric sections. Each section must contain an integer positive number with no leading zeroes.
|
44 |
+
|
45 |
+
The regex pattern for this versioning scheme is: `(0|[1-9]\d*)(\.(0|[1-9]\d*))*`
|
46 |
+
|
47 |
+
_Sorting behavior_: When comparing two versions, each section is compared from left to right by their numeric value, until the first difference is found. A version with the smallest set of sections takes precedence over another with a larger set of sections, given that all their preceding sections compare equally.
|
48 |
+
|
49 |
+
Example:
|
50 |
+
`0` < `0.1` < `0.1.0` < `1` < `1.0.0` < `1.0.1` < `1.1`< `2.0.0`
|
51 |
+
|
52 |
+
#### `version-semver`
|
53 |
+
Accepts version strings that follow semantic versioning conventions as described in the [semantic versioning specification](https://semver.org/#semantic-versioning-specification-semver).
|
54 |
+
|
55 |
+
_Sorting behavior_: Strings are sorted following the rules described in the semantic versioning specification.
|
56 |
+
|
57 |
+
Example:
|
58 |
+
`1.0.0-1` < `1.0.0-alpha` < `1.0.0-beta` < `1.0.0` < `1.0.1` < `1.1.0`
|
59 |
+
|
60 |
+
#### `version-date`
|
61 |
+
|
62 |
+
Accepts version strings that can be parsed to a date following the ISO-8601 format `YYYY-MM-DD`. Disambiguation identifiers are allowed in the form of dot-separated-, positive-, integer-numbers with no leading zeroes.
|
63 |
+
|
64 |
+
This is the recommended versioning scheme for "Live at HEAD" libraries that don't have established release versions.
|
65 |
+
|
66 |
+
The regex pattern for this versioning scheme is: `\d{4}-\d{2}-\d{2}(\.(0|[1-9]\d*))*`
|
67 |
+
|
68 |
+
_Sorting behavior_: Strings are sorted first by their date part, then by numeric comparison of their disambiguation identifiers. Disambiguation identifiers follow the rules of the relaxed (`version`) scheme.
|
69 |
+
|
70 |
+
Examples:
|
71 |
+
`2021-01-01` < `2021-01-01.1` < `2021-02-01.1.2` < `2021-02-01.1.3` < `2021-02-01`
|
72 |
+
|
73 |
+
#### `version-string`
|
74 |
+
For packages using version strings that do not fit any of the other schemes, it accepts most arbitrary strings. The `#` which is used to denote port versions is disallowed.
|
75 |
+
|
76 |
+
_Sorting behavior_: No sorting is attempted on the version string itself. However, if the strings match exactly, their port versions can be compared and sorted.
|
77 |
+
|
78 |
+
Examples:
|
79 |
+
* `apple` <> `orange` <> `orange.2` <> `orange2`
|
80 |
+
* `watermelon#0`< `watermelon#1`
|
81 |
+
|
82 |
+
#### `port-version`
|
83 |
+
A positive integer value that increases each time a vcpkg-specific change is made to the port.
|
84 |
+
|
85 |
+
The rules for port versions are:
|
86 |
+
* Start at 0 for the original version of the port,
|
87 |
+
* increase by 1 each time a vcpkg-specific change is made to the port that does not increase the version of the package,
|
88 |
+
* and reset to 0 each time the version of the package is updated.
|
89 |
+
|
90 |
+
_NOTE: Whenever vcpkg output a version it follows the format `<version>#<port version>`. For example `1.2.0#2` means version `1.2.0` port version `2`. When the port version is `0` the `#0` suffix is omitted (`1.2.0` implies version `1.2.0` port version `0`)._
|
91 |
+
|
92 |
+
_Sorting behavior_: If two versions compare equally, their port versions are compared by their numeric value, lower port versions take precedence.
|
93 |
+
|
94 |
+
Examples:
|
95 |
+
* `1.2.0` < `1.2.0#1` < `1.2.0#2` < `1.2.0#10`
|
96 |
+
* `2021-01-01#20` < `2021-01-01.1`
|
97 |
+
* `windows#7` < `windows#8`
|
98 |
+
|
99 |
+
## Version constraints
|
100 |
+
|
101 |
+
### `builtin-baseline`
|
102 |
+
Accepts a Git commit ID. vcpkg will try to find a baseline file in the given
|
103 |
+
commit ID and use that to set the baseline versions (lower bounds) of all
|
104 |
+
dependencies.
|
105 |
+
|
106 |
+
Baselines provide stability and ease of development for top-level manifest
|
107 |
+
files. They are not considered from ports consumed as a dependency. If a minimum
|
108 |
+
version constraint is required during transitive version resolution, the port
|
109 |
+
should use `version>=`.
|
110 |
+
|
111 |
+
Example:
|
112 |
+
```json
|
113 |
+
{
|
114 |
+
"name": "project",
|
115 |
+
"version": "1.0.0",
|
116 |
+
"dependencies": ["zlib", "fmt"],
|
117 |
+
"builtin-baseline":"9fd3bd594f41afb8747e20f6ac9619f26f333cbe"
|
118 |
+
}
|
119 |
+
```
|
120 |
+
|
121 |
+
You can get the current commit of your vcpkg instance either by adding an empty
|
122 |
+
`"builtin-baseline"` field, installing, and examining the error message or by
|
123 |
+
running `git rev-parse HEAD` in the root of the vcpkg instance.
|
124 |
+
|
125 |
+
When resolving version constraints for a package, vcpkg will look for a baseline
|
126 |
+
version by looking at the baseline file in the given commit ID. If the given
|
127 |
+
commit ID doesn't have a `versions/baseline.json` file or if the baseline file
|
128 |
+
exists but it does not declare a baseline version for the package the invocation
|
129 |
+
will fail.
|
130 |
+
|
131 |
+
This field is a convenience field that has the same semantic as replacing your
|
132 |
+
default registry in
|
133 |
+
[`vcpkg-configuration.json`](registries.md#configuration-default-registry).
|
134 |
+
```json
|
135 |
+
{
|
136 |
+
"default-registry": {
|
137 |
+
"kind": "builtin",
|
138 |
+
"baseline": "<baseline>"
|
139 |
+
}
|
140 |
+
}
|
141 |
+
```
|
142 |
+
|
143 |
+
### `version>=`
|
144 |
+
Expresses a minimum version requirement, `version>=` declarations put a lower boundary on the versions that can be used to satisfy a dependency.
|
145 |
+
|
146 |
+
**Note: Vcpkg selects the lowest version that matches all constraints, so a less-than constraint is not required.**
|
147 |
+
|
148 |
+
Example:
|
149 |
+
```json
|
150 |
+
{
|
151 |
+
"name": "project",
|
152 |
+
"version-semver": "1.0.0",
|
153 |
+
"dependencies": [
|
154 |
+
{ "name": "zlib", "version>=": "1.2.11#9" },
|
155 |
+
{ "name": "fmt", "version>=": "7.1.3#1" }
|
156 |
+
],
|
157 |
+
"builtin-baseline":"3426db05b996481ca31e95fff3734cf23e0f51bc"
|
158 |
+
}
|
159 |
+
```
|
160 |
+
|
161 |
+
As part of a version constraint declaration, a port version can be specified by adding the suffix `#<port-version>`, in the previous example `1.2.11#9` refers to version `1.2.11` port version `9`.
|
162 |
+
|
163 |
+
### `overrides`
|
164 |
+
Declaring an override forces vcpkg to ignore all other version constraints and use the version specified in the override. This is useful for pinning exact versions and for resolving version conflicts.
|
165 |
+
|
166 |
+
Overrides are declared as an array of package version declarations.
|
167 |
+
|
168 |
+
For an override to take effect, the overridden package must form part of the dependency graph. That means that a dependency must be declared either by the top-level manifest or be part of a transitive dependency.
|
169 |
+
|
170 |
+
```json
|
171 |
+
{
|
172 |
+
"name": "project",
|
173 |
+
"version-semver": "1.0.0",
|
174 |
+
"dependencies": [
|
175 |
+
{ "name": "zlib", "version>=": "1.2.11#9" },
|
176 |
+
"fmt"
|
177 |
+
],
|
178 |
+
"builtin-baseline":"3426db05b996481ca31e95fff3734cf23e0f51bc",
|
179 |
+
"overrides": [
|
180 |
+
{ "name": "fmt", "version": "6.0.0" }
|
181 |
+
]
|
182 |
+
}
|
183 |
+
```
|
184 |
+
|
185 |
+
## See Also
|
186 |
+
|
187 |
+
* The [implementation details](versioning.implementation-details.md)
|
188 |
+
* The [original specification](../specifications/versioning.md)
|
189 |
+
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/3fd/RapidXML.patch
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
--- a/3FD/xml.h
|
2 |
+
+++ b/3FD/xml.h
|
3 |
+
@@ -4,6 +4,6 @@
|
4 |
+
#include "exceptions.h"
|
5 |
+
#include "utils.h"
|
6 |
+
-#include <rapidxml.hpp>
|
7 |
+
+#include <rapidxml/rapidxml.hpp>
|
8 |
+
|
9 |
+
#include <array>
|
10 |
+
#include <algorithm>
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/3fd/portfile.cmake
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Check architecture:
|
2 |
+
if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
3 |
+
set(BUILD_ARCH "Win32")
|
4 |
+
elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
5 |
+
set(BUILD_ARCH "x64")
|
6 |
+
elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
|
7 |
+
set(BUILD_ARCH "ARM")
|
8 |
+
else()
|
9 |
+
message(FATAL_ERROR "Unsupported architecture: ${VCPKG_TARGET_ARCHITECTURE}")
|
10 |
+
endif()
|
11 |
+
|
12 |
+
# Check library linkage:
|
13 |
+
vcpkg_check_linkage(ONLY_STATIC_LIBRARY ONLY_DYNAMIC_CRT)
|
14 |
+
|
15 |
+
# Get source code:
|
16 |
+
vcpkg_from_github(
|
17 |
+
OUT_SOURCE_PATH SOURCE_PATH
|
18 |
+
REPO faburaya/3fd
|
19 |
+
REF 3a0fe606268721d1560b88dcca8647c67c0b275c # v2.6.3 (Stable)
|
20 |
+
SHA512 70630291b4055de2044ad76ef21e99d6ab6fd3468debb2a864a461cf8513642fe87f116e9dfff96ecff96f4577108493dc25aa40eeefcd93ee75990b13bb7b20
|
21 |
+
HEAD_REF master
|
22 |
+
PATCHES
|
23 |
+
RapidXML.patch
|
24 |
+
)
|
25 |
+
|
26 |
+
# Build:
|
27 |
+
if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") # UWP:
|
28 |
+
vcpkg_install_msbuild(
|
29 |
+
SOURCE_PATH "${SOURCE_PATH}"
|
30 |
+
PROJECT_SUBPATH "3FD/3FD.WinRT.UWP.vcxproj"
|
31 |
+
PLATFORM ${BUILD_ARCH}
|
32 |
+
USE_VCPKG_INTEGRATION
|
33 |
+
)
|
34 |
+
elseif (NOT VCPKG_CMAKE_SYSTEM_NAME) # Win32:
|
35 |
+
vcpkg_install_msbuild(
|
36 |
+
SOURCE_PATH "${SOURCE_PATH}"
|
37 |
+
PROJECT_SUBPATH "3FD/3FD.vcxproj"
|
38 |
+
PLATFORM ${BUILD_ARCH}
|
39 |
+
TARGET Build
|
40 |
+
USE_VCPKG_INTEGRATION
|
41 |
+
)
|
42 |
+
else()
|
43 |
+
message(FATAL_ERROR "Unsupported system: 3FD is not currently ported to VCPKG in ${VCPKG_CMAKE_SYSTEM_NAME}!")
|
44 |
+
endif()
|
45 |
+
|
46 |
+
# Install:
|
47 |
+
file(GLOB HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/3FD/*.h")
|
48 |
+
file(INSTALL
|
49 |
+
${HEADER_FILES}
|
50 |
+
DESTINATION ${CURRENT_PACKAGES_DIR}/include/3FD
|
51 |
+
PATTERN "*_impl*.h" EXCLUDE
|
52 |
+
PATTERN "*example*.h" EXCLUDE
|
53 |
+
PATTERN "stdafx.h" EXCLUDE
|
54 |
+
PATTERN "targetver.h" EXCLUDE
|
55 |
+
)
|
56 |
+
|
57 |
+
file(INSTALL ${SOURCE_PATH}/btree DESTINATION ${CURRENT_PACKAGES_DIR}/include/3FD)
|
58 |
+
file(INSTALL ${SOURCE_PATH}/OpenCL/CL DESTINATION ${CURRENT_PACKAGES_DIR}/include/3FD)
|
59 |
+
|
60 |
+
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/3FD)
|
61 |
+
file(INSTALL
|
62 |
+
${SOURCE_PATH}/3FD/3fd-config-template.xml
|
63 |
+
DESTINATION ${CURRENT_PACKAGES_DIR}/share/3FD
|
64 |
+
)
|
65 |
+
|
66 |
+
# Handle copyright
|
67 |
+
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/3fd RENAME copyright)
|
68 |
+
file(INSTALL ${SOURCE_PATH}/Acknowledgements.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/3fd)
|
69 |
+
|
70 |
+
vcpkg_copy_pdbs()
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/3fd/vcpkg.json
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "3fd",
|
3 |
+
"version": "2.6.3",
|
4 |
+
"port-version": 2,
|
5 |
+
"description": "C++ Framework For Fast Development",
|
6 |
+
"supports": "windows & !static & !arm64",
|
7 |
+
"dependencies": [
|
8 |
+
{
|
9 |
+
"name": "boost-lockfree",
|
10 |
+
"platform": "windows"
|
11 |
+
},
|
12 |
+
{
|
13 |
+
"name": "boost-regex",
|
14 |
+
"platform": "windows"
|
15 |
+
},
|
16 |
+
{
|
17 |
+
"name": "poco",
|
18 |
+
"platform": "windows"
|
19 |
+
},
|
20 |
+
"rapidxml",
|
21 |
+
"sqlite3"
|
22 |
+
]
|
23 |
+
}
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/7zip/7zip-config.cmake.in
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@PACKAGE_INIT@
|
2 |
+
|
3 |
+
include("${CMAKE_CURRENT_LIST_DIR}/7zip-targets.cmake")
|
4 |
+
|
5 |
+
check_required_components(7zip)
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/7zip/CMakeLists.txt
ADDED
@@ -0,0 +1,457 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
cmake_minimum_required(VERSION 3.19)
|
2 |
+
|
3 |
+
project(7zip LANGUAGES C CXX)
|
4 |
+
|
5 |
+
if(VCPKG_TARGET_IS_WINDOWS)
|
6 |
+
enable_language(ASM_MASM)
|
7 |
+
elseif(VCPKG_TARGET_IS_LINUX)
|
8 |
+
enable_language(ASM)
|
9 |
+
endif()
|
10 |
+
|
11 |
+
add_library(7zip)
|
12 |
+
|
13 |
+
target_sources(7zip PRIVATE
|
14 |
+
CPP/7zip/Compress/Bcj2Coder.cpp
|
15 |
+
CPP/7zip/Compress/Bcj2Register.cpp
|
16 |
+
CPP/7zip/Compress/BcjCoder.cpp
|
17 |
+
CPP/7zip/Compress/BcjRegister.cpp
|
18 |
+
CPP/7zip/Compress/BitlDecoder.cpp
|
19 |
+
CPP/7zip/Compress/BranchMisc.cpp
|
20 |
+
CPP/7zip/Compress/BranchRegister.cpp
|
21 |
+
CPP/7zip/Compress/ByteSwap.cpp
|
22 |
+
CPP/7zip/Compress/BZip2Crc.cpp
|
23 |
+
CPP/7zip/Compress/BZip2Decoder.cpp
|
24 |
+
CPP/7zip/Compress/BZip2Encoder.cpp
|
25 |
+
CPP/7zip/Compress/BZip2Register.cpp
|
26 |
+
CPP/7zip/Compress/CopyCoder.cpp
|
27 |
+
CPP/7zip/Compress/CopyRegister.cpp
|
28 |
+
CPP/7zip/Compress/Deflate64Register.cpp
|
29 |
+
CPP/7zip/Compress/DeflateDecoder.cpp
|
30 |
+
CPP/7zip/Compress/DeflateEncoder.cpp
|
31 |
+
CPP/7zip/Compress/DeflateRegister.cpp
|
32 |
+
CPP/7zip/Compress/DeltaFilter.cpp
|
33 |
+
CPP/7zip/Compress/ImplodeDecoder.cpp
|
34 |
+
CPP/7zip/Compress/LzfseDecoder.cpp
|
35 |
+
CPP/7zip/Compress/LzhDecoder.cpp
|
36 |
+
CPP/7zip/Compress/Lzma2Decoder.cpp
|
37 |
+
CPP/7zip/Compress/Lzma2Encoder.cpp
|
38 |
+
CPP/7zip/Compress/Lzma2Register.cpp
|
39 |
+
CPP/7zip/Compress/LzmaDecoder.cpp
|
40 |
+
CPP/7zip/Compress/LzmaEncoder.cpp
|
41 |
+
CPP/7zip/Compress/LzmaRegister.cpp
|
42 |
+
CPP/7zip/Compress/LzmsDecoder.cpp
|
43 |
+
CPP/7zip/Compress/LzOutWindow.cpp
|
44 |
+
CPP/7zip/Compress/LzxDecoder.cpp
|
45 |
+
CPP/7zip/Compress/PpmdDecoder.cpp
|
46 |
+
CPP/7zip/Compress/PpmdEncoder.cpp
|
47 |
+
CPP/7zip/Compress/PpmdRegister.cpp
|
48 |
+
CPP/7zip/Compress/PpmdZip.cpp
|
49 |
+
CPP/7zip/Compress/QuantumDecoder.cpp
|
50 |
+
CPP/7zip/Compress/Rar1Decoder.cpp
|
51 |
+
CPP/7zip/Compress/Rar2Decoder.cpp
|
52 |
+
CPP/7zip/Compress/Rar3Decoder.cpp
|
53 |
+
CPP/7zip/Compress/Rar3Vm.cpp
|
54 |
+
CPP/7zip/Compress/Rar5Decoder.cpp
|
55 |
+
CPP/7zip/Compress/RarCodecsRegister.cpp
|
56 |
+
CPP/7zip/Compress/ShrinkDecoder.cpp
|
57 |
+
CPP/7zip/Compress/XpressDecoder.cpp
|
58 |
+
CPP/7zip/Compress/XzDecoder.cpp
|
59 |
+
CPP/7zip/Compress/XzEncoder.cpp
|
60 |
+
CPP/7zip/Compress/ZlibDecoder.cpp
|
61 |
+
CPP/7zip/Compress/ZlibEncoder.cpp
|
62 |
+
CPP/7zip/Compress/ZDecoder.cpp
|
63 |
+
CPP/7zip/Compress/CodecExports.cpp
|
64 |
+
|
65 |
+
CPP/7zip/Crypto/7zAes.cpp
|
66 |
+
CPP/7zip/Crypto/7zAesRegister.cpp
|
67 |
+
CPP/7zip/Crypto/HmacSha1.cpp
|
68 |
+
CPP/7zip/Crypto/HmacSha256.cpp
|
69 |
+
CPP/7zip/Crypto/MyAes.cpp
|
70 |
+
CPP/7zip/Crypto/MyAesReg.cpp
|
71 |
+
CPP/7zip/Crypto/Pbkdf2HmacSha1.cpp
|
72 |
+
CPP/7zip/Crypto/RandGen.cpp
|
73 |
+
CPP/7zip/Crypto/Rar20Crypto.cpp
|
74 |
+
CPP/7zip/Crypto/Rar5Aes.cpp
|
75 |
+
CPP/7zip/Crypto/RarAes.cpp
|
76 |
+
CPP/7zip/Crypto/WzAes.cpp
|
77 |
+
CPP/7zip/Crypto/ZipCrypto.cpp
|
78 |
+
CPP/7zip/Crypto/ZipStrong.cpp
|
79 |
+
|
80 |
+
C/7zBuf2.c
|
81 |
+
C/7zStream.c
|
82 |
+
C/Alloc.c
|
83 |
+
C/Bcj2.c
|
84 |
+
C/Bcj2Enc.c
|
85 |
+
C/Blake2s.c
|
86 |
+
C/Bra.c
|
87 |
+
C/Bra86.c
|
88 |
+
C/BraIA64.c
|
89 |
+
C/BwtSort.c
|
90 |
+
C/CpuArch.c
|
91 |
+
C/Delta.c
|
92 |
+
C/HuffEnc.c
|
93 |
+
C/LzFind.c
|
94 |
+
C/LzFindMt.c
|
95 |
+
C/Lzma2Dec.c
|
96 |
+
C/Lzma2DecMt.c
|
97 |
+
C/Lzma2Enc.c
|
98 |
+
C/LzmaEnc.c
|
99 |
+
C/LzmaLib.c
|
100 |
+
C/MtCoder.c
|
101 |
+
C/MtDec.c
|
102 |
+
C/Ppmd7.c
|
103 |
+
C/Ppmd7aDec.c
|
104 |
+
C/Ppmd7Dec.c
|
105 |
+
C/Ppmd7Enc.c
|
106 |
+
C/Ppmd8.c
|
107 |
+
C/Ppmd8Dec.c
|
108 |
+
C/Ppmd8Enc.c
|
109 |
+
C/Sha1.c
|
110 |
+
C/Sha256.c
|
111 |
+
C/Sort.c
|
112 |
+
C/Threads.c
|
113 |
+
C/Xz.c
|
114 |
+
C/XzDec.c
|
115 |
+
C/XzEnc.c
|
116 |
+
C/XzIn.c
|
117 |
+
C/Aes.c
|
118 |
+
C/7zCrc.c
|
119 |
+
C/XzCrc64.c
|
120 |
+
|
121 |
+
CPP/Common/CRC.cpp
|
122 |
+
CPP/Common/CrcReg.cpp
|
123 |
+
CPP/Common/DynLimBuf.cpp
|
124 |
+
CPP/Common/IntToString.cpp
|
125 |
+
CPP/Common/LzFindPrepare.cpp
|
126 |
+
CPP/Common/MyMap.cpp
|
127 |
+
CPP/Common/MyString.cpp
|
128 |
+
CPP/Common/MyVector.cpp
|
129 |
+
CPP/Common/MyWindows.cpp
|
130 |
+
CPP/Common/MyXml.cpp
|
131 |
+
CPP/Common/NewHandler.cpp
|
132 |
+
CPP/Common/Sha1Prepare.cpp
|
133 |
+
CPP/Common/Sha1Reg.cpp
|
134 |
+
CPP/Common/Sha256Prepare.cpp
|
135 |
+
CPP/Common/Sha256Reg.cpp
|
136 |
+
CPP/Common/StringConvert.cpp
|
137 |
+
CPP/Common/StringToInt.cpp
|
138 |
+
CPP/Common/UTFConvert.cpp
|
139 |
+
CPP/Common/Wildcard.cpp
|
140 |
+
CPP/Common/XzCrc64Init.cpp
|
141 |
+
CPP/Common/XzCrc64Reg.cpp
|
142 |
+
|
143 |
+
CPP/Windows/FileDir.cpp
|
144 |
+
CPP/Windows/FileFind.cpp
|
145 |
+
CPP/Windows/FileIO.cpp
|
146 |
+
CPP/Windows/FileName.cpp
|
147 |
+
CPP/Windows/PropVariant.cpp
|
148 |
+
CPP/Windows/PropVariantUtils.cpp
|
149 |
+
CPP/Windows/Synchronization.cpp
|
150 |
+
CPP/Windows/System.cpp
|
151 |
+
CPP/Windows/TimeUtils.cpp
|
152 |
+
|
153 |
+
CPP/7zip/Common/CreateCoder.cpp
|
154 |
+
CPP/7zip/Common/CWrappers.cpp
|
155 |
+
CPP/7zip/Common/InBuffer.cpp
|
156 |
+
CPP/7zip/Common/InOutTempBuffer.cpp
|
157 |
+
CPP/7zip/Common/FilterCoder.cpp
|
158 |
+
CPP/7zip/Common/LimitedStreams.cpp
|
159 |
+
CPP/7zip/Common/LockedStream.cpp
|
160 |
+
CPP/7zip/Common/MemBlocks.cpp
|
161 |
+
CPP/7zip/Common/MethodId.cpp
|
162 |
+
CPP/7zip/Common/MethodProps.cpp
|
163 |
+
CPP/7zip/Common/OffsetStream.cpp
|
164 |
+
CPP/7zip/Common/OutBuffer.cpp
|
165 |
+
CPP/7zip/Common/OutMemStream.cpp
|
166 |
+
CPP/7zip/Common/ProgressMt.cpp
|
167 |
+
CPP/7zip/Common/ProgressUtils.cpp
|
168 |
+
CPP/7zip/Common/PropId.cpp
|
169 |
+
CPP/7zip/Common/StreamBinder.cpp
|
170 |
+
CPP/7zip/Common/StreamObjects.cpp
|
171 |
+
CPP/7zip/Common/StreamUtils.cpp
|
172 |
+
CPP/7zip/Common/UniqBlocks.cpp
|
173 |
+
CPP/7zip/Common/VirtThread.cpp
|
174 |
+
|
175 |
+
CPP/7zip/Archive/ApmHandler.cpp
|
176 |
+
CPP/7zip/Archive/ArHandler.cpp
|
177 |
+
CPP/7zip/Archive/ArjHandler.cpp
|
178 |
+
CPP/7zip/Archive/Base64Handler.cpp
|
179 |
+
CPP/7zip/Archive/Bz2Handler.cpp
|
180 |
+
CPP/7zip/Archive/ComHandler.cpp
|
181 |
+
CPP/7zip/Archive/CpioHandler.cpp
|
182 |
+
CPP/7zip/Archive/CramfsHandler.cpp
|
183 |
+
CPP/7zip/Archive/DeflateProps.cpp
|
184 |
+
CPP/7zip/Archive/DmgHandler.cpp
|
185 |
+
CPP/7zip/Archive/ElfHandler.cpp
|
186 |
+
CPP/7zip/Archive/ExtHandler.cpp
|
187 |
+
CPP/7zip/Archive/FatHandler.cpp
|
188 |
+
CPP/7zip/Archive/FlvHandler.cpp
|
189 |
+
CPP/7zip/Archive/GzHandler.cpp
|
190 |
+
CPP/7zip/Archive/GptHandler.cpp
|
191 |
+
CPP/7zip/Archive/HandlerCont.cpp
|
192 |
+
CPP/7zip/Archive/HfsHandler.cpp
|
193 |
+
CPP/7zip/Archive/IhexHandler.cpp
|
194 |
+
CPP/7zip/Archive/LzhHandler.cpp
|
195 |
+
CPP/7zip/Archive/LzmaHandler.cpp
|
196 |
+
CPP/7zip/Archive/MachoHandler.cpp
|
197 |
+
CPP/7zip/Archive/MbrHandler.cpp
|
198 |
+
CPP/7zip/Archive/MslzHandler.cpp
|
199 |
+
CPP/7zip/Archive/MubHandler.cpp
|
200 |
+
CPP/7zip/Archive/NtfsHandler.cpp
|
201 |
+
CPP/7zip/Archive/PeHandler.cpp
|
202 |
+
CPP/7zip/Archive/PpmdHandler.cpp
|
203 |
+
CPP/7zip/Archive/QcowHandler.cpp
|
204 |
+
CPP/7zip/Archive/RpmHandler.cpp
|
205 |
+
CPP/7zip/Archive/SplitHandler.cpp
|
206 |
+
CPP/7zip/Archive/SquashfsHandler.cpp
|
207 |
+
CPP/7zip/Archive/SwfHandler.cpp
|
208 |
+
CPP/7zip/Archive/UefiHandler.cpp
|
209 |
+
CPP/7zip/Archive/VdiHandler.cpp
|
210 |
+
CPP/7zip/Archive/VhdHandler.cpp
|
211 |
+
CPP/7zip/Archive/VmdkHandler.cpp
|
212 |
+
CPP/7zip/Archive/XarHandler.cpp
|
213 |
+
CPP/7zip/Archive/XzHandler.cpp
|
214 |
+
CPP/7zip/Archive/ZHandler.cpp
|
215 |
+
CPP/7zip/Archive/ArchiveExports.cpp
|
216 |
+
CPP/7zip/Archive/DllExports2.cpp
|
217 |
+
|
218 |
+
CPP/7zip/Archive/Common/CoderMixer2.cpp
|
219 |
+
CPP/7zip/Archive/Common/DummyOutStream.cpp
|
220 |
+
CPP/7zip/Archive/Common/FindSignature.cpp
|
221 |
+
CPP/7zip/Archive/Common/InStreamWithCRC.cpp
|
222 |
+
CPP/7zip/Archive/Common/ItemNameUtils.cpp
|
223 |
+
CPP/7zip/Archive/Common/MultiStream.cpp
|
224 |
+
CPP/7zip/Archive/Common/OutStreamWithCRC.cpp
|
225 |
+
CPP/7zip/Archive/Common/OutStreamWithSha1.cpp
|
226 |
+
CPP/7zip/Archive/Common/HandlerOut.cpp
|
227 |
+
CPP/7zip/Archive/Common/ParseProperties.cpp
|
228 |
+
|
229 |
+
CPP/7zip/Archive/7z/7zCompressionMode.cpp
|
230 |
+
CPP/7zip/Archive/7z/7zDecode.cpp
|
231 |
+
CPP/7zip/Archive/7z/7zEncode.cpp
|
232 |
+
CPP/7zip/Archive/7z/7zExtract.cpp
|
233 |
+
CPP/7zip/Archive/7z/7zFolderInStream.cpp
|
234 |
+
CPP/7zip/Archive/7z/7zHandler.cpp
|
235 |
+
CPP/7zip/Archive/7z/7zHandlerOut.cpp
|
236 |
+
CPP/7zip/Archive/7z/7zHeader.cpp
|
237 |
+
CPP/7zip/Archive/7z/7zIn.cpp
|
238 |
+
CPP/7zip/Archive/7z/7zOut.cpp
|
239 |
+
CPP/7zip/Archive/7z/7zProperties.cpp
|
240 |
+
CPP/7zip/Archive/7z/7zSpecStream.cpp
|
241 |
+
CPP/7zip/Archive/7z/7zUpdate.cpp
|
242 |
+
CPP/7zip/Archive/7z/7zRegister.cpp
|
243 |
+
|
244 |
+
CPP/7zip/Archive/Cab/CabBlockInStream.cpp
|
245 |
+
CPP/7zip/Archive/Cab/CabHandler.cpp
|
246 |
+
CPP/7zip/Archive/Cab/CabHeader.cpp
|
247 |
+
CPP/7zip/Archive/Cab/CabIn.cpp
|
248 |
+
CPP/7zip/Archive/Cab/CabRegister.cpp
|
249 |
+
|
250 |
+
CPP/7zip/Archive/Chm/ChmHandler.cpp
|
251 |
+
CPP/7zip/Archive/Chm/ChmIn.cpp
|
252 |
+
|
253 |
+
CPP/7zip/Archive/Iso/IsoHandler.cpp
|
254 |
+
CPP/7zip/Archive/Iso/IsoHeader.cpp
|
255 |
+
CPP/7zip/Archive/Iso/IsoIn.cpp
|
256 |
+
CPP/7zip/Archive/Iso/IsoRegister.cpp
|
257 |
+
|
258 |
+
CPP/7zip/Archive/Nsis/NsisDecode.cpp
|
259 |
+
CPP/7zip/Archive/Nsis/NsisHandler.cpp
|
260 |
+
CPP/7zip/Archive/Nsis/NsisIn.cpp
|
261 |
+
CPP/7zip/Archive/Nsis/NsisRegister.cpp
|
262 |
+
|
263 |
+
CPP/7zip/Archive/Rar/RarHandler.cpp
|
264 |
+
CPP/7zip/Archive/Rar/Rar5Handler.cpp
|
265 |
+
|
266 |
+
CPP/7zip/Archive/Tar/TarHandler.cpp
|
267 |
+
CPP/7zip/Archive/Tar/TarHandlerOut.cpp
|
268 |
+
CPP/7zip/Archive/Tar/TarHeader.cpp
|
269 |
+
CPP/7zip/Archive/Tar/TarIn.cpp
|
270 |
+
CPP/7zip/Archive/Tar/TarOut.cpp
|
271 |
+
CPP/7zip/Archive/Tar/TarUpdate.cpp
|
272 |
+
CPP/7zip/Archive/Tar/TarRegister.cpp
|
273 |
+
|
274 |
+
CPP/7zip/Archive/Udf/UdfHandler.cpp
|
275 |
+
CPP/7zip/Archive/Udf/UdfIn.cpp
|
276 |
+
|
277 |
+
CPP/7zip/Archive/Wim/WimHandler.cpp
|
278 |
+
CPP/7zip/Archive/Wim/WimHandlerOut.cpp
|
279 |
+
CPP/7zip/Archive/Wim/WimIn.cpp
|
280 |
+
CPP/7zip/Archive/Wim/WimRegister.cpp
|
281 |
+
|
282 |
+
CPP/7zip/Archive/Zip/ZipAddCommon.cpp
|
283 |
+
CPP/7zip/Archive/Zip/ZipHandler.cpp
|
284 |
+
CPP/7zip/Archive/Zip/ZipHandlerOut.cpp
|
285 |
+
CPP/7zip/Archive/Zip/ZipIn.cpp
|
286 |
+
CPP/7zip/Archive/Zip/ZipItem.cpp
|
287 |
+
CPP/7zip/Archive/Zip/ZipOut.cpp
|
288 |
+
CPP/7zip/Archive/Zip/ZipUpdate.cpp
|
289 |
+
CPP/7zip/Archive/Zip/ZipRegister.cpp
|
290 |
+
|
291 |
+
CPP/7zip/Archive/Archive2.def
|
292 |
+
C/Util/LzmaLib/LzmaLib.def
|
293 |
+
)
|
294 |
+
|
295 |
+
# 7zCrcOpt
|
296 |
+
if(VCPKG_TARGET_IS_WINDOWS)
|
297 |
+
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
298 |
+
target_sources(7zip PRIVATE Asm/x86/7zCrcOpt.asm)
|
299 |
+
set_source_files_properties(Asm/x86/7zCrcOpt.asm PROPERTIES LANGUAGE ASM_MASM)
|
300 |
+
else()
|
301 |
+
target_sources(7zip PRIVATE C/7zCrcOpt.c)
|
302 |
+
endif()
|
303 |
+
else()
|
304 |
+
target_sources(7zip PRIVATE C/7zCrcOpt.c)
|
305 |
+
endif()
|
306 |
+
|
307 |
+
# AesOpt
|
308 |
+
if(VCPKG_TARGET_IS_WINDOWS)
|
309 |
+
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
310 |
+
target_sources(7zip PRIVATE Asm/x86/AesOpt.asm)
|
311 |
+
set_source_files_properties(Asm/x86/AesOpt.asm PROPERTIES LANGUAGE ASM_MASM)
|
312 |
+
else()
|
313 |
+
target_sources(7zip PRIVATE C/AesOpt.c)
|
314 |
+
endif()
|
315 |
+
else()
|
316 |
+
target_sources(7zip PRIVATE C/AesOpt.c)
|
317 |
+
endif()
|
318 |
+
|
319 |
+
# LzFindOpt
|
320 |
+
if(VCPKG_TARGET_IS_WINDOWS)
|
321 |
+
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
322 |
+
target_sources(7zip PRIVATE Asm/x86/LzFindOpt.asm)
|
323 |
+
set_source_files_properties(Asm/x86/LzFindOpt.asm PROPERTIES LANGUAGE ASM_MASM)
|
324 |
+
else()
|
325 |
+
target_sources(7zip PRIVATE C/LzFindOpt.c)
|
326 |
+
endif()
|
327 |
+
else()
|
328 |
+
target_sources(7zip PRIVATE C/LzFindOpt.c)
|
329 |
+
endif()
|
330 |
+
|
331 |
+
# LzmaDecOpt
|
332 |
+
target_sources(7zip PRIVATE C/LzmaDec.c)
|
333 |
+
if((VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") OR
|
334 |
+
(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
|
335 |
+
)
|
336 |
+
if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
337 |
+
target_sources(7zip PRIVATE Asm/x86/LzmaDecOpt.asm)
|
338 |
+
set_source_files_properties(Asm/x86/LzmaDecOpt.asm PROPERTIES LANGUAGE ASM_MASM)
|
339 |
+
elseif(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
|
340 |
+
target_sources(7zip PRIVATE Asm/arm64/LzmaDecOpt.S)
|
341 |
+
set_source_files_properties(Asm/x86/LzmaDecOpt.asm PROPERTIES LANGUAGE ASM)
|
342 |
+
endif()
|
343 |
+
|
344 |
+
get_source_file_property(defs C/LzmaDec.c COMPILE_DEFINITIONS)
|
345 |
+
list(APPEND defs "_LZMA_DEC_OPT")
|
346 |
+
set_source_files_properties(C/LzmaDec.c PROPERTIES COMPILE_DEFINITIONS "${defs}")
|
347 |
+
endif()
|
348 |
+
|
349 |
+
# Sha1Opt
|
350 |
+
if(VCPKG_TARGET_IS_WINDOWS)
|
351 |
+
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
352 |
+
target_sources(7zip PRIVATE Asm/x86/Sha1Opt.asm)
|
353 |
+
set_source_files_properties(Asm/x86/Sha1Opt.asm PROPERTIES LANGUAGE ASM_MASM)
|
354 |
+
else()
|
355 |
+
target_sources(7zip PRIVATE C/Sha1Opt.c)
|
356 |
+
endif()
|
357 |
+
else()
|
358 |
+
target_sources(7zip PRIVATE C/Sha1Opt.c)
|
359 |
+
endif()
|
360 |
+
|
361 |
+
# Sha256Opt
|
362 |
+
if(VCPKG_TARGET_IS_WINDOWS)
|
363 |
+
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
364 |
+
target_sources(7zip PRIVATE Asm/x86/Sha256Opt.asm)
|
365 |
+
set_source_files_properties(Asm/x86/Sha256Opt.asm PROPERTIES LANGUAGE ASM_MASM)
|
366 |
+
else()
|
367 |
+
target_sources(7zip PRIVATE C/Sha256Opt.c)
|
368 |
+
endif()
|
369 |
+
else()
|
370 |
+
target_sources(7zip PRIVATE C/Sha256Opt.c)
|
371 |
+
endif()
|
372 |
+
|
373 |
+
# XzCrc64Opt
|
374 |
+
if(VCPKG_TARGET_IS_WINDOWS)
|
375 |
+
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
376 |
+
target_sources(7zip PRIVATE Asm/x86/XzCrc64Opt.asm)
|
377 |
+
set_source_files_properties(Asm/x86/XzCrc64Opt.asm PROPERTIES LANGUAGE ASM_MASM)
|
378 |
+
else()
|
379 |
+
target_sources(7zip PRIVATE C/XzCrc64Opt.c)
|
380 |
+
endif()
|
381 |
+
else()
|
382 |
+
target_sources(7zip PRIVATE C/XzCrc64Opt.c)
|
383 |
+
endif()
|
384 |
+
|
385 |
+
target_compile_definitions(7zip
|
386 |
+
PUBLIC
|
387 |
+
-D_REENTRANT
|
388 |
+
-D_FILE_OFFSET_BITS=64
|
389 |
+
-D_LARGEFILE_SOURCE
|
390 |
+
-DEXTERNAL_CODECS
|
391 |
+
-D_7ZIP_LARGE_PAGES
|
392 |
+
-DUNICODE
|
393 |
+
-D_UNICODE
|
394 |
+
)
|
395 |
+
|
396 |
+
target_include_directories(7zip
|
397 |
+
INTERFACE
|
398 |
+
$<INSTALL_INTERFACE:include>/7zip/CPP
|
399 |
+
)
|
400 |
+
|
401 |
+
set(PUBLIC_HEADERS
|
402 |
+
C/7zTypes.h
|
403 |
+
C/Alloc.h
|
404 |
+
C/LzFind.h
|
405 |
+
C/LzFindMt.h
|
406 |
+
C/LzHash.h
|
407 |
+
C/LzmaDec.h
|
408 |
+
C/LzmaEnc.h
|
409 |
+
C/LzmaLib.h
|
410 |
+
C/Threads.h
|
411 |
+
CPP/7zip/Archive/IArchive.h
|
412 |
+
CPP/7zip/ICoder.h
|
413 |
+
CPP/7zip/IDecl.h
|
414 |
+
CPP/7zip/IPassword.h
|
415 |
+
CPP/7zip/IProgress.h
|
416 |
+
CPP/7zip/IStream.h
|
417 |
+
CPP/7zip/PropID.h
|
418 |
+
CPP/Common/Defs.h
|
419 |
+
CPP/Common/MyTypes.h
|
420 |
+
CPP/Common/MyUnknown.h
|
421 |
+
CPP/Common/MyWindows.h
|
422 |
+
)
|
423 |
+
|
424 |
+
install(
|
425 |
+
TARGETS 7zip
|
426 |
+
EXPORT 7zip-targets
|
427 |
+
ARCHIVE DESTINATION lib
|
428 |
+
LIBRARY DESTINATION lib
|
429 |
+
RUNTIME DESTINATION bin
|
430 |
+
)
|
431 |
+
|
432 |
+
# Headers makes relative includes so directory structure must be kept
|
433 |
+
foreach(HEADER ${PUBLIC_HEADERS})
|
434 |
+
get_filename_component(HEADER_DIR ${HEADER} DIRECTORY)
|
435 |
+
install(
|
436 |
+
FILES ${HEADER}
|
437 |
+
CONFIGURATIONS Release
|
438 |
+
DESTINATION include/7zip/${HEADER_DIR}
|
439 |
+
)
|
440 |
+
endforeach()
|
441 |
+
|
442 |
+
include(CMakePackageConfigHelpers)
|
443 |
+
configure_package_config_file(
|
444 |
+
"${CMAKE_CURRENT_SOURCE_DIR}/7zip-config.cmake.in"
|
445 |
+
"${CMAKE_CURRENT_BINARY_DIR}/7zip-config.cmake"
|
446 |
+
INSTALL_DESTINATION "share/7zip"
|
447 |
+
)
|
448 |
+
install(
|
449 |
+
FILES "${CMAKE_CURRENT_BINARY_DIR}/7zip-config.cmake"
|
450 |
+
DESTINATION "share/7zip"
|
451 |
+
)
|
452 |
+
|
453 |
+
install(
|
454 |
+
EXPORT 7zip-targets
|
455 |
+
DESTINATION share/7zip
|
456 |
+
NAMESPACE 7zip::
|
457 |
+
)
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/7zip/portfile.cmake
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
set(7ZIP_VERSION "2107")
|
2 |
+
vcpkg_download_distfile(ARCHIVE
|
3 |
+
URLS "https://www.7-zip.org/a/7z${7ZIP_VERSION}-src.7z"
|
4 |
+
FILENAME "7z${7ZIP_VERSION}-src.7z"
|
5 |
+
SHA512 c13521a9829ac239a89015e1f5da27eeaa2469754e3f8ca32311d964ea9d0b40a17e4f8ccbd425d3e865aa768be345368f1c36f354d5710ac7cb2749dd6a3ab5
|
6 |
+
)
|
7 |
+
|
8 |
+
vcpkg_extract_source_archive(
|
9 |
+
SOURCE_PATH
|
10 |
+
ARCHIVE "${ARCHIVE}"
|
11 |
+
NO_REMOVE_ONE_LEVEL
|
12 |
+
)
|
13 |
+
|
14 |
+
file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
|
15 |
+
file(COPY "${CMAKE_CURRENT_LIST_DIR}/7zip-config.cmake.in" DESTINATION "${SOURCE_PATH}")
|
16 |
+
|
17 |
+
vcpkg_cmake_configure(
|
18 |
+
SOURCE_PATH "${SOURCE_PATH}"
|
19 |
+
)
|
20 |
+
|
21 |
+
vcpkg_cmake_install()
|
22 |
+
vcpkg_copy_pdbs()
|
23 |
+
|
24 |
+
vcpkg_cmake_config_fixup()
|
25 |
+
|
26 |
+
file(
|
27 |
+
INSTALL "${SOURCE_PATH}/DOC/License.txt"
|
28 |
+
DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}"
|
29 |
+
RENAME copyright
|
30 |
+
)
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/7zip/vcpkg.json
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "7zip",
|
3 |
+
"version-string": "21.07",
|
4 |
+
"port-version": 1,
|
5 |
+
"description": "Library for archiving file with a high compression ratio.",
|
6 |
+
"homepage": "https://www.7-zip.org",
|
7 |
+
"license": "LGPL-2.1-or-later",
|
8 |
+
"supports": "!uwp",
|
9 |
+
"dependencies": [
|
10 |
+
{
|
11 |
+
"name": "vcpkg-cmake",
|
12 |
+
"host": true
|
13 |
+
},
|
14 |
+
{
|
15 |
+
"name": "vcpkg-cmake-config",
|
16 |
+
"host": true
|
17 |
+
}
|
18 |
+
]
|
19 |
+
}
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/abseil/fix-32-bit-arm.patch
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
diff --git a/absl/time/internal/cctz/src/zone_info_source.cc b/absl/time/internal/cctz/src/zone_info_source.cc
|
2 |
+
index 7209533..5ab5a59 100644
|
3 |
+
--- a/absl/time/internal/cctz/src/zone_info_source.cc
|
4 |
+
+++ b/absl/time/internal/cctz/src/zone_info_source.cc
|
5 |
+
@@ -65,7 +65,7 @@ ZoneInfoSourceFactory zone_info_source_factory __attribute__((weak)) =
|
6 |
+
extern ZoneInfoSourceFactory zone_info_source_factory;
|
7 |
+
extern ZoneInfoSourceFactory default_factory;
|
8 |
+
ZoneInfoSourceFactory default_factory = DefaultFactory;
|
9 |
+
-#if defined(_M_IX86)
|
10 |
+
+#if defined(_M_IX86) || defined(_M_ARM)
|
11 |
+
#pragma comment( \
|
12 |
+
linker, \
|
13 |
+
"/alternatename:?zone_info_source_factory@cctz_extension@time_internal@" ABSL_INTERNAL_MANGLED_NS \
|
14 |
+
@@ -83,8 +83,7 @@ ZoneInfoSourceFactory default_factory = DefaultFactory;
|
15 |
+
"@@U?$default_delete@VZoneInfoSource@cctz@time_internal@" ABSL_INTERNAL_MANGLED_NS \
|
16 |
+
"@@@std@@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z@" ABSL_INTERNAL_MANGLED_BACKREFERENCE \
|
17 |
+
"@@ZA")
|
18 |
+
-#elif defined(_M_IA_64) || defined(_M_AMD64) || defined(_M_ARM) || \
|
19 |
+
- defined(_M_ARM64)
|
20 |
+
+#elif defined(_M_IA_64) || defined(_M_AMD64) || defined(_M_ARM64)
|
21 |
+
#pragma comment( \
|
22 |
+
linker, \
|
23 |
+
"/alternatename:?zone_info_source_factory@cctz_extension@time_internal@" ABSL_INTERNAL_MANGLED_NS \
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/abseil/fix-cxx-standard.patch
ADDED
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
diff --git a/CMake/abslConfig.cmake.in b/CMake/abslConfig.cmake.in
|
2 |
+
index 62d246d..afcec1f 100644
|
3 |
+
--- a/CMake/abslConfig.cmake.in
|
4 |
+
+++ b/CMake/abslConfig.cmake.in
|
5 |
+
@@ -6,3 +6,5 @@ find_dependency(Threads)
|
6 |
+
@PACKAGE_INIT@
|
7 |
+
|
8 |
+
include ("${CMAKE_CURRENT_LIST_DIR}/@[email protected]")
|
9 |
+
+
|
10 |
+
+set(ABSL_USE_CXX17 @ABSL_USE_CXX17@)
|
11 |
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
12 |
+
index 750a475..239977f 100644
|
13 |
+
--- a/CMakeLists.txt
|
14 |
+
+++ b/CMakeLists.txt
|
15 |
+
@@ -67,6 +67,23 @@ else()
|
16 |
+
option(ABSL_ENABLE_INSTALL "Enable install rule" ON)
|
17 |
+
endif()
|
18 |
+
|
19 |
+
+# CXX standard
|
20 |
+
+option(ABSL_USE_CXX17 "Enable CXX 17 standard" OFF)
|
21 |
+
+
|
22 |
+
+if (ABSL_USE_CXX17)
|
23 |
+
+ set(CMAKE_CXX_STANDARD 17)
|
24 |
+
+ set(STD_ANY 1)
|
25 |
+
+ set(STD_OPTIONAL 1)
|
26 |
+
+ set(STD_STRING_VIEW 1)
|
27 |
+
+ set(STD_VARIANT 1)
|
28 |
+
+else()
|
29 |
+
+ set(CMAKE_CXX_STANDARD 11)
|
30 |
+
+ set(STD_ANY 0)
|
31 |
+
+ set(STD_OPTIONAL 0)
|
32 |
+
+ set(STD_STRING_VIEW 0)
|
33 |
+
+ set(STD_VARIANT 0)
|
34 |
+
+endif()
|
35 |
+
+
|
36 |
+
option(ABSL_PROPAGATE_CXX_STD
|
37 |
+
"Use CMake C++ standard meta features (e.g. cxx_std_11) that propagate to targets that link to Abseil"
|
38 |
+
OFF) # TODO: Default to ON for CMake 3.8 and greater.
|
39 |
+
diff --git a/absl/base/CMakeLists.txt b/absl/base/CMakeLists.txt
|
40 |
+
index c7233cb..65a9076 100644
|
41 |
+
--- a/absl/base/CMakeLists.txt
|
42 |
+
+++ b/absl/base/CMakeLists.txt
|
43 |
+
@@ -38,6 +38,11 @@ absl_cc_library(
|
44 |
+
COPTS
|
45 |
+
${ABSL_DEFAULT_COPTS}
|
46 |
+
)
|
47 |
+
+if (NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/options.h.in)
|
48 |
+
+ file(RENAME ${CMAKE_CURRENT_LIST_DIR}/options.h ${CMAKE_CURRENT_LIST_DIR}/options.h.in)
|
49 |
+
+endif()
|
50 |
+
+file(REMOVE ${CMAKE_CURRENT_LIST_DIR}/options.h)
|
51 |
+
+configure_file(${CMAKE_CURRENT_LIST_DIR}/options.h.in ${CMAKE_CURRENT_LIST_DIR}/options.h @ONLY)
|
52 |
+
|
53 |
+
absl_cc_library(
|
54 |
+
NAME
|
55 |
+
diff --git a/absl/base/options.h b/absl/base/options.h
|
56 |
+
index 56b4e36..0b098ed 100644
|
57 |
+
--- a/absl/base/options.h
|
58 |
+
+++ b/absl/base/options.h
|
59 |
+
@@ -100,7 +100,7 @@
|
60 |
+
// User code should not inspect this macro. To check in the preprocessor if
|
61 |
+
// absl::any is a typedef of std::any, use the feature macro ABSL_USES_STD_ANY.
|
62 |
+
|
63 |
+
-#define ABSL_OPTION_USE_STD_ANY 2
|
64 |
+
+#define ABSL_OPTION_USE_STD_ANY @STD_ANY@
|
65 |
+
|
66 |
+
|
67 |
+
// ABSL_OPTION_USE_STD_OPTIONAL
|
68 |
+
@@ -127,7 +127,7 @@
|
69 |
+
// absl::optional is a typedef of std::optional, use the feature macro
|
70 |
+
// ABSL_USES_STD_OPTIONAL.
|
71 |
+
|
72 |
+
-#define ABSL_OPTION_USE_STD_OPTIONAL 2
|
73 |
+
+#define ABSL_OPTION_USE_STD_OPTIONAL @STD_OPTIONAL@
|
74 |
+
|
75 |
+
|
76 |
+
// ABSL_OPTION_USE_STD_STRING_VIEW
|
77 |
+
@@ -154,7 +154,7 @@
|
78 |
+
// absl::string_view is a typedef of std::string_view, use the feature macro
|
79 |
+
// ABSL_USES_STD_STRING_VIEW.
|
80 |
+
|
81 |
+
-#define ABSL_OPTION_USE_STD_STRING_VIEW 2
|
82 |
+
+#define ABSL_OPTION_USE_STD_STRING_VIEW @STD_STRING_VIEW@
|
83 |
+
|
84 |
+
// ABSL_OPTION_USE_STD_VARIANT
|
85 |
+
//
|
86 |
+
@@ -180,7 +180,7 @@
|
87 |
+
// absl::variant is a typedef of std::variant, use the feature macro
|
88 |
+
// ABSL_USES_STD_VARIANT.
|
89 |
+
|
90 |
+
-#define ABSL_OPTION_USE_STD_VARIANT 2
|
91 |
+
+#define ABSL_OPTION_USE_STD_VARIANT @STD_VARIANT@
|
92 |
+
|
93 |
+
|
94 |
+
// ABSL_OPTION_USE_INLINE_NAMESPACE
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/abseil/portfile.cmake
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
if (NOT VCPKG_TARGET_IS_WINDOWS)
|
2 |
+
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
3 |
+
endif()
|
4 |
+
|
5 |
+
vcpkg_from_github(
|
6 |
+
OUT_SOURCE_PATH SOURCE_PATH
|
7 |
+
REPO abseil/abseil-cpp
|
8 |
+
REF 215105818dfde3174fe799600bb0f3cae233d0bf #LTS 20211102, Patch 1
|
9 |
+
SHA512 75d234eac76be8790cf09e3e1144e4b4cf5cacb61e46961a9e4a35b37d0fa85243afdd5de5f47a006ef96af6fc91ecc0c233297c4c32258c08d46304b3361330
|
10 |
+
HEAD_REF master
|
11 |
+
PATCHES
|
12 |
+
# in C++17 mode, use std::any, std::optional, std::string_view, std::variant
|
13 |
+
# instead of the library replacement types
|
14 |
+
# in C++11 mode, force use of library replacement types, otherwise the automatic
|
15 |
+
# detection can cause ABI issues depending on which compiler options
|
16 |
+
# are enabled for consuming user code
|
17 |
+
fix-cxx-standard.patch
|
18 |
+
)
|
19 |
+
|
20 |
+
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
21 |
+
FEATURES
|
22 |
+
cxx17 ABSL_USE_CXX17
|
23 |
+
)
|
24 |
+
|
25 |
+
vcpkg_cmake_configure(
|
26 |
+
SOURCE_PATH "${SOURCE_PATH}"
|
27 |
+
DISABLE_PARALLEL_CONFIGURE
|
28 |
+
OPTIONS ${FEATURE_OPTIONS}
|
29 |
+
)
|
30 |
+
|
31 |
+
vcpkg_cmake_install()
|
32 |
+
vcpkg_cmake_config_fixup(PACKAGE_NAME absl CONFIG_PATH lib/cmake/absl)
|
33 |
+
vcpkg_fixup_pkgconfig()
|
34 |
+
|
35 |
+
vcpkg_copy_pdbs()
|
36 |
+
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share"
|
37 |
+
"${CURRENT_PACKAGES_DIR}/debug/include"
|
38 |
+
"${CURRENT_PACKAGES_DIR}/include/absl/copts"
|
39 |
+
"${CURRENT_PACKAGES_DIR}/include/absl/strings/testdata"
|
40 |
+
"${CURRENT_PACKAGES_DIR}/include/absl/time/internal/cctz/testdata"
|
41 |
+
)
|
42 |
+
|
43 |
+
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
|
44 |
+
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/absl/base/config.h"
|
45 |
+
"#elif defined(ABSL_CONSUME_DLL)" "#elif 1"
|
46 |
+
)
|
47 |
+
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/absl/base/internal/thread_identity.h"
|
48 |
+
"&& !defined(ABSL_CONSUME_DLL)" "&& 0"
|
49 |
+
)
|
50 |
+
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/absl/container/internal/hashtablez_sampler.h"
|
51 |
+
"!defined(ABSL_CONSUME_DLL)" "0"
|
52 |
+
)
|
53 |
+
endif()
|
54 |
+
|
55 |
+
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/abseil/vcpkg.json
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "abseil",
|
3 |
+
"version-string": "20211102.1",
|
4 |
+
"description": [
|
5 |
+
"an open-source collection designed to augment the C++ standard library.",
|
6 |
+
"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.",
|
7 |
+
"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.",
|
8 |
+
"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."
|
9 |
+
],
|
10 |
+
"homepage": "https://github.com/abseil/abseil-cpp",
|
11 |
+
"dependencies": [
|
12 |
+
{
|
13 |
+
"name": "vcpkg-cmake",
|
14 |
+
"host": true
|
15 |
+
},
|
16 |
+
{
|
17 |
+
"name": "vcpkg-cmake-config",
|
18 |
+
"host": true
|
19 |
+
}
|
20 |
+
],
|
21 |
+
"features": {
|
22 |
+
"cxx17": {
|
23 |
+
"description": "Enable compiler C++17."
|
24 |
+
}
|
25 |
+
}
|
26 |
+
}
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/absent/portfile.cmake
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
vcpkg_from_github(
|
2 |
+
OUT_SOURCE_PATH SOURCE_PATH
|
3 |
+
REPO rvarago/absent
|
4 |
+
REF 0.3.1
|
5 |
+
SHA512 c7b7d29422ef8afc48e3093496e1dd055cfe9969ae037c2b06ea70fe4283e7a7e9129171efaa257e909c535e24df5861b992b24b00ec03f965730e6a22e13015
|
6 |
+
)
|
7 |
+
|
8 |
+
vcpkg_configure_cmake(
|
9 |
+
SOURCE_PATH ${SOURCE_PATH}
|
10 |
+
PREFER_NINJA
|
11 |
+
OPTIONS
|
12 |
+
-DBUILD_TESTS=OFF
|
13 |
+
)
|
14 |
+
|
15 |
+
vcpkg_install_cmake()
|
16 |
+
|
17 |
+
vcpkg_fixup_cmake_targets(
|
18 |
+
CONFIG_PATH lib/cmake/${PORT}
|
19 |
+
)
|
20 |
+
|
21 |
+
file(REMOVE_RECURSE
|
22 |
+
${CURRENT_PACKAGES_DIR}/debug
|
23 |
+
${CURRENT_PACKAGES_DIR}/lib
|
24 |
+
)
|
25 |
+
|
26 |
+
file(INSTALL
|
27 |
+
${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}
|
28 |
+
)
|
29 |
+
|
30 |
+
file(INSTALL
|
31 |
+
${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright
|
32 |
+
)
|
33 |
+
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/absent/vcpkg.json
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "absent",
|
3 |
+
"version-string": "0.3.1",
|
4 |
+
"port-version": 1,
|
5 |
+
"description": "A small C++17 library meant to simplify the composition of nullable types in a generic, type-safe, and declarative way",
|
6 |
+
"homepage": "https://github.com/rvarago/absent"
|
7 |
+
}
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/ace/portfile.cmake
ADDED
@@ -0,0 +1,437 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Using zip archive under Linux would cause sh/perl to report "No such file or directory" or "bad interpreter"
|
2 |
+
# when invoking `prj_install.pl`.
|
3 |
+
# So far this issue haven't yet be triggered under WSL 1 distributions. Not sure the root cause of it.
|
4 |
+
set(ACE_VERSION 7.0.6)
|
5 |
+
string(REPLACE "." "_" ACE_VERSION_DIRECTORY ${ACE_VERSION})
|
6 |
+
|
7 |
+
if("tao" IN_LIST FEATURES)
|
8 |
+
if(VCPKG_TARGET_IS_WINDOWS)
|
9 |
+
# Don't change to vcpkg_from_github! This points to a release and not an archive
|
10 |
+
vcpkg_download_distfile(ARCHIVE
|
11 |
+
URLS "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-${ACE_VERSION_DIRECTORY}/ACE%2BTAO-src-${ACE_VERSION}.zip"
|
12 |
+
FILENAME ACE-TAO-${ACE_VERSION}.zip
|
13 |
+
SHA512 faef212f066263f9a87a688d105f15097f6b78fd77baf9e2b7da008027cd9ad0478b1f016892ee2d36fcb5aa6b14cc6fbb8fb906f018db6a1089820d522c65f9
|
14 |
+
)
|
15 |
+
else()
|
16 |
+
vcpkg_download_distfile(ARCHIVE
|
17 |
+
URLS "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-${ACE_VERSION_DIRECTORY}/ACE%2BTAO-src-${ACE_VERSION}.tar.gz"
|
18 |
+
FILENAME ACE-TAO-${ACE_VERSION}.tar.gz
|
19 |
+
SHA512 5d0bbeb1f729c3304637a15979303ba6efdbe52bb5d4ac73930fe9b86dbb73a5d74325476809863b26e1a3fc39a205d9d3a9909bce7bbdc5869de3e30f1bc317
|
20 |
+
)
|
21 |
+
endif()
|
22 |
+
else()
|
23 |
+
if(VCPKG_TARGET_IS_WINDOWS)
|
24 |
+
# Don't change to vcpkg_from_github! This points to a release and not an archive
|
25 |
+
vcpkg_download_distfile(ARCHIVE
|
26 |
+
URLS "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-${ACE_VERSION_DIRECTORY}/ACE-src-${ACE_VERSION}.zip"
|
27 |
+
FILENAME ACE-src-${ACE_VERSION}.zip
|
28 |
+
SHA512 91f35727afc652f537ce242eb0a9e10878b51b63f9c10f72bddd6491481f10eec5d9d8469f79da3b95adeab7d6848eb1e8bad4e43f61db63daf796a2cd205d61
|
29 |
+
)
|
30 |
+
else()
|
31 |
+
vcpkg_download_distfile(ARCHIVE
|
32 |
+
URLS "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-${ACE_VERSION_DIRECTORY}/ACE-src-${ACE_VERSION}.tar.gz"
|
33 |
+
FILENAME ACE-src-${ACE_VERSION}.tar.gz
|
34 |
+
SHA512 9770fab3552835803a93c9a234218c9dd961ecde67227ee92e0972cd2e2ff267147b255ab437453a887bc47b20f70c7a64efeada5dde5d3ea2cade54200e8354
|
35 |
+
)
|
36 |
+
endif()
|
37 |
+
endif()
|
38 |
+
|
39 |
+
vcpkg_extract_source_archive_ex(
|
40 |
+
OUT_SOURCE_PATH SOURCE_PATH
|
41 |
+
ARCHIVE "${ARCHIVE}"
|
42 |
+
)
|
43 |
+
|
44 |
+
set(ACE_ROOT "${SOURCE_PATH}")
|
45 |
+
set(ENV{ACE_ROOT} "${ACE_ROOT}")
|
46 |
+
set(ACE_SOURCE_PATH "${ACE_ROOT}/ace")
|
47 |
+
if("tao" IN_LIST FEATURES)
|
48 |
+
set(TAO_ROOT "${SOURCE_PATH}/TAO")
|
49 |
+
set(ENV{TAO_ROOT} "${TAO_ROOT}")
|
50 |
+
set(WORKSPACE "${TAO_ROOT}/TAO_ACE")
|
51 |
+
else()
|
52 |
+
set(WORKSPACE "${ACE_ROOT}/ace/ace")
|
53 |
+
endif()
|
54 |
+
if("wchar" IN_LIST FEATURES)
|
55 |
+
list(APPEND ACE_FEATURE_LIST "uses_wchar=1")
|
56 |
+
endif()
|
57 |
+
if("zlib" IN_LIST FEATURES)
|
58 |
+
list(APPEND ACE_FEATURE_LIST "zlib=1")
|
59 |
+
set(ENV{ZLIB_ROOT} "${CURRENT_INSTALLED_DIR}")
|
60 |
+
else()
|
61 |
+
list(APPEND ACE_FEATURE_LIST "zlib=0")
|
62 |
+
endif()
|
63 |
+
if("ssl" IN_LIST FEATURES)
|
64 |
+
list(APPEND ACE_FEATURE_LIST "ssl=1")
|
65 |
+
list(APPEND ACE_FEATURE_LIST "openssl11=1")
|
66 |
+
set(ENV{SSL_ROOT} "${CURRENT_INSTALLED_DIR}")
|
67 |
+
else()
|
68 |
+
list(APPEND ACE_FEATURE_LIST "ssl=0")
|
69 |
+
endif()
|
70 |
+
if("xml-utils" IN_LIST FEATURES)
|
71 |
+
list(APPEND ACE_FEATURE_LIST "xerces3=1")
|
72 |
+
set(ENV{XERCESCROOT} "${CURRENT_INSTALLED_DIR}")
|
73 |
+
else()
|
74 |
+
list(APPEND ACE_FEATURE_LIST "xerces3=0")
|
75 |
+
endif()
|
76 |
+
list(JOIN ACE_FEATURE_LIST "," ACE_FEATURES)
|
77 |
+
|
78 |
+
# Acquire Perl and add it to PATH (for execution of MPC)
|
79 |
+
vcpkg_find_acquire_program(PERL)
|
80 |
+
get_filename_component(PERL_PATH ${PERL} DIRECTORY)
|
81 |
+
vcpkg_add_to_path("${PERL_PATH}")
|
82 |
+
|
83 |
+
if (TRIPLET_SYSTEM_ARCH MATCHES "x86")
|
84 |
+
set(MSBUILD_PLATFORM "Win32")
|
85 |
+
else ()
|
86 |
+
set(MSBUILD_PLATFORM ${TRIPLET_SYSTEM_ARCH})
|
87 |
+
endif()
|
88 |
+
|
89 |
+
# Add ace/config.h file
|
90 |
+
# see https://htmlpreview.github.io/?https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/ACE-INSTALL.html
|
91 |
+
if(VCPKG_TARGET_IS_WINDOWS)
|
92 |
+
if(VCPKG_PLATFORM_TOOLSET MATCHES "v140")
|
93 |
+
set(SOLUTION_TYPE vc14)
|
94 |
+
elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v141")
|
95 |
+
set(SOLUTION_TYPE vs2017)
|
96 |
+
elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v142")
|
97 |
+
set(SOLUTION_TYPE vs2019)
|
98 |
+
else()
|
99 |
+
set(SOLUTION_TYPE vs2022)
|
100 |
+
endif()
|
101 |
+
if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
102 |
+
set(MPC_STATIC_FLAG -static)
|
103 |
+
endif()
|
104 |
+
set(config_h_contents "#include \"ace/config-windows.h\"\n")
|
105 |
+
elseif(VCPKG_TARGET_IS_LINUX)
|
106 |
+
set(SOLUTION_TYPE gnuace)
|
107 |
+
set(config_h_contents "#include \"ace/config-linux.h\"\n")
|
108 |
+
file(WRITE "${ACE_ROOT}/include/makeinclude/platform_macros.GNU" "CCFLAGS += -fPIC\ninclude $(ACE_ROOT)/include/makeinclude/platform_linux.GNU")
|
109 |
+
elseif(VCPKG_TARGET_IS_OSX)
|
110 |
+
set(SOLUTION_TYPE gnuace)
|
111 |
+
set(config_h_contents "#include \"ace/config-macosx.h\"\n")
|
112 |
+
file(WRITE "${ACE_ROOT}/include/makeinclude/platform_macros.GNU" "include $(ACE_ROOT)/include/makeinclude/platform_macosx.GNU")
|
113 |
+
endif()
|
114 |
+
|
115 |
+
if("wchar" IN_LIST FEATURES)
|
116 |
+
string(APPEND config_h_contents "#define ACE_USES_WCHAR 1\n")
|
117 |
+
endif()
|
118 |
+
file(WRITE "${ACE_SOURCE_PATH}/config.h" "${config_h_contents}")
|
119 |
+
|
120 |
+
if(VCPKG_TARGET_IS_UWP)
|
121 |
+
set(MPC_VALUE_TEMPLATE -value_template link_options+=/APPCONTAINER)
|
122 |
+
endif()
|
123 |
+
|
124 |
+
# Invoke mwc.pl to generate the necessary solution and project files
|
125 |
+
vcpkg_execute_build_process(
|
126 |
+
COMMAND ${PERL} "${ACE_ROOT}/bin/mwc.pl" -type ${SOLUTION_TYPE} -features "${ACE_FEATURES}" "${WORKSPACE}.mwc" ${MPC_STATIC_FLAG} ${MPC_VALUE_TEMPLATE}
|
127 |
+
WORKING_DIRECTORY "${ACE_ROOT}"
|
128 |
+
LOGNAME mwc-${TARGET_TRIPLET}
|
129 |
+
)
|
130 |
+
|
131 |
+
if("xml" IN_LIST FEATURES)
|
132 |
+
vcpkg_execute_build_process(
|
133 |
+
COMMAND ${PERL} "${ACE_ROOT}/bin/mwc.pl" -type ${SOLUTION_TYPE} -features "${ACE_FEATURES}" "${ACE_ROOT}/ACEXML/ACEXML.mwc" ${MPC_STATIC_FLAG} ${MPC_VALUE_TEMPLATE}
|
134 |
+
WORKING_DIRECTORY "${ACE_ROOT}/ACEXML"
|
135 |
+
LOGNAME mwc-xml-${TARGET_TRIPLET}
|
136 |
+
)
|
137 |
+
endif()
|
138 |
+
|
139 |
+
if(VCPKG_TARGET_IS_WINDOWS)
|
140 |
+
if("tao" IN_LIST FEATURES OR "xml" IN_LIST FEATURES)
|
141 |
+
file(WRITE "${SOURCE_PATH}/Directory.Build.props" "<?xml version=\"1.0\" encoding=\"utf-8\"?>
|
142 |
+
<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">
|
143 |
+
<ItemDefinitionGroup>
|
144 |
+
<ClCompile>
|
145 |
+
<AdditionalOptions>/MP</AdditionalOptions>
|
146 |
+
<AdditionalIncludeDirectories>${ACE_ROOT}</AdditionalIncludeDirectories>
|
147 |
+
</ClCompile>
|
148 |
+
<Link>
|
149 |
+
<AdditionalLibraryDirectories>${CURRENT_PACKAGES_DIR}/lib;${CURRENT_PACKAGES_DIR}/debug/lib;${CURRENT_INSTALLED_DIR}/lib;${CURRENT_INSTALLED_DIR}/debug/lib</AdditionalLibraryDirectories>
|
150 |
+
</Link>
|
151 |
+
</ItemDefinitionGroup>
|
152 |
+
</Project>")
|
153 |
+
endif()
|
154 |
+
|
155 |
+
file(RELATIVE_PATH PROJECT_SUBPATH "${SOURCE_PATH}" "${WORKSPACE}.sln")
|
156 |
+
vcpkg_install_msbuild(
|
157 |
+
SOURCE_PATH "${SOURCE_PATH}"
|
158 |
+
PROJECT_SUBPATH ${PROJECT_SUBPATH}
|
159 |
+
LICENSE_SUBPATH COPYING
|
160 |
+
PLATFORM ${MSBUILD_PLATFORM}
|
161 |
+
SKIP_CLEAN
|
162 |
+
)
|
163 |
+
|
164 |
+
# ACE itself does not define an install target, so it is not clear which
|
165 |
+
# headers are public and which not. For the moment we install everything
|
166 |
+
# that is in the source path and ends in .h, .inl
|
167 |
+
function(install_includes ORIGINAL_PATH RELATIVE_PATHS)
|
168 |
+
foreach(RELATIVE_PATH ${RELATIVE_PATHS})
|
169 |
+
file(
|
170 |
+
GLOB
|
171 |
+
HEADER_FILES
|
172 |
+
"${ORIGINAL_PATH}/${RELATIVE_PATH}/*.h"
|
173 |
+
"${ORIGINAL_PATH}/${RELATIVE_PATH}/*.hpp"
|
174 |
+
"${ORIGINAL_PATH}/${RELATIVE_PATH}/*.inl"
|
175 |
+
"${ORIGINAL_PATH}/${RELATIVE_PATH}/*.cpp"
|
176 |
+
"${ORIGINAL_PATH}/${RELATIVE_PATH}/*.idl"
|
177 |
+
"${ORIGINAL_PATH}/${RELATIVE_PATH}/*.pidl")
|
178 |
+
file(INSTALL ${HEADER_FILES}
|
179 |
+
DESTINATION "${CURRENT_PACKAGES_DIR}/include/${RELATIVE_PATH}")
|
180 |
+
endforeach()
|
181 |
+
endfunction()
|
182 |
+
|
183 |
+
get_filename_component(SOURCE_PATH_SUFFIX "${SOURCE_PATH}" NAME)
|
184 |
+
set(SOURCE_COPY_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${SOURCE_PATH_SUFFIX}")
|
185 |
+
|
186 |
+
# Install headers in subdirectory
|
187 |
+
set(ACE_INCLUDE_FOLDERS
|
188 |
+
"ace"
|
189 |
+
"ace/Compression"
|
190 |
+
"ace/Compression/rle"
|
191 |
+
"ace/ETCL"
|
192 |
+
"ace/QoS"
|
193 |
+
"ace/Monitor_Control"
|
194 |
+
"ace/os_include"
|
195 |
+
"ace/os_include/arpa"
|
196 |
+
"ace/os_include/net"
|
197 |
+
"ace/os_include/netinet"
|
198 |
+
"ace/os_include/sys")
|
199 |
+
install_includes("${SOURCE_COPY_PATH}" "${ACE_INCLUDE_FOLDERS}")
|
200 |
+
|
201 |
+
if("ssl" IN_LIST FEATURES)
|
202 |
+
install_includes("${SOURCE_COPY_PATH}" "ace/SSL")
|
203 |
+
endif()
|
204 |
+
|
205 |
+
if("tao" IN_LIST FEATURES)
|
206 |
+
set(ACEXML_INCLUDE_FOLDERS "ACEXML/apps/svcconf" "ACEXML/common"
|
207 |
+
"ACEXML/parser/parser")
|
208 |
+
install_includes("${SOURCE_COPY_PATH}" "${ACEXML_INCLUDE_FOLDERS}")
|
209 |
+
|
210 |
+
set(ACE_PROTOCOLS_INCLUDE_FOLDERS "ace/HTBP" "ace/INet" "ace/RMCast"
|
211 |
+
"ace/TMCast")
|
212 |
+
install_includes("${SOURCE_COPY_PATH}/protocols" "${ACE_PROTOCOLS_INCLUDE_FOLDERS}")
|
213 |
+
|
214 |
+
install_includes("${SOURCE_COPY_PATH}" "Kokyu")
|
215 |
+
|
216 |
+
set(TAO_ORBSVCS_INCLUDE_FOLDERS
|
217 |
+
"orbsvcs"
|
218 |
+
"orbsvcs/AV"
|
219 |
+
"orbsvcs/Concurrency"
|
220 |
+
"orbsvcs/CosEvent"
|
221 |
+
"orbsvcs/Event"
|
222 |
+
"orbsvcs/FaultTolerance"
|
223 |
+
"orbsvcs/FtRtEvent/ClientORB"
|
224 |
+
"orbsvcs/FtRtEvent/EventChannel"
|
225 |
+
"orbsvcs/FtRtEvent/Utils"
|
226 |
+
"orbsvcs/HTIOP"
|
227 |
+
"orbsvcs/IFRService"
|
228 |
+
"orbsvcs/LifeCycle"
|
229 |
+
"orbsvcs/LoadBalancing"
|
230 |
+
"orbsvcs/Log"
|
231 |
+
"orbsvcs/Naming"
|
232 |
+
"orbsvcs/Naming/FaultTolerant"
|
233 |
+
"orbsvcs/Notify"
|
234 |
+
"orbsvcs/Notify/Any"
|
235 |
+
"orbsvcs/Notify/MonitorControl"
|
236 |
+
"orbsvcs/Notify/MonitorControlExt"
|
237 |
+
"orbsvcs/Notify/Sequence"
|
238 |
+
"orbsvcs/Notify/Structured"
|
239 |
+
"orbsvcs/PortableGroup"
|
240 |
+
"orbsvcs/Property"
|
241 |
+
"orbsvcs/Sched"
|
242 |
+
"orbsvcs/Security"
|
243 |
+
"orbsvcs/Time"
|
244 |
+
"orbsvcs/Trader")
|
245 |
+
if("ssl" IN_LIST FEATURES)
|
246 |
+
list(APPEND TAO_ORBSVCS_INCLUDE_FOLDERS "orbsvcs/SSLIOP")
|
247 |
+
endif()
|
248 |
+
install_includes("${SOURCE_COPY_PATH}/TAO/orbsvcs" "${TAO_ORBSVCS_INCLUDE_FOLDERS}")
|
249 |
+
|
250 |
+
set(TAO_ROOT_ORBSVCS_INCLUDE_FOLDERS "orbsvcs/FT_ReplicationManager"
|
251 |
+
"orbsvcs/Notify_Service")
|
252 |
+
install_includes("${SOURCE_COPY_PATH}/TAO" "${TAO_ROOT_ORBSVCS_INCLUDE_FOLDERS}")
|
253 |
+
|
254 |
+
set(TAO_INCLUDE_FOLDERS
|
255 |
+
"tao"
|
256 |
+
"tao/AnyTypeCode"
|
257 |
+
"tao/BiDir_GIOP"
|
258 |
+
"tao/CSD_Framework"
|
259 |
+
"tao/CSD_ThreadPool"
|
260 |
+
"tao/CodecFactory"
|
261 |
+
"tao/Codeset"
|
262 |
+
"tao/Compression"
|
263 |
+
"tao/Compression/rle"
|
264 |
+
"tao/DiffServPolicy"
|
265 |
+
"tao/DynamicAny"
|
266 |
+
"tao/DynamicInterface"
|
267 |
+
"tao/Dynamic_TP"
|
268 |
+
"tao/ETCL"
|
269 |
+
"tao/EndpointPolicy"
|
270 |
+
"tao/IFR_Client"
|
271 |
+
"tao/IORInterceptor"
|
272 |
+
"tao/IORManipulation"
|
273 |
+
"tao/IORTable"
|
274 |
+
"tao/ImR_Client"
|
275 |
+
"tao/Messaging"
|
276 |
+
"tao/Monitor"
|
277 |
+
"tao/ObjRefTemplate"
|
278 |
+
"tao/PI"
|
279 |
+
"tao/PI_Server"
|
280 |
+
"tao/PortableServer"
|
281 |
+
"tao/RTCORBA"
|
282 |
+
"tao/RTPortableServer"
|
283 |
+
"tao/RTScheduling"
|
284 |
+
"tao/SmartProxies"
|
285 |
+
"tao/Strategies"
|
286 |
+
"tao/TransportCurrent"
|
287 |
+
"tao/TypeCodeFactory"
|
288 |
+
"tao/Utils"
|
289 |
+
"tao/Valuetype"
|
290 |
+
"tao/ZIOP")
|
291 |
+
if("zlib" IN_LIST FEATURES)
|
292 |
+
list(APPEND TAO_INCLUDE_FOLDERS "tao/Compression/zlib")
|
293 |
+
endif()
|
294 |
+
install_includes("${SOURCE_COPY_PATH}/TAO" "${TAO_INCLUDE_FOLDERS}")
|
295 |
+
endif()
|
296 |
+
|
297 |
+
if("xml" IN_LIST FEATURES)
|
298 |
+
file(RELATIVE_PATH PROJECT_SUBPATH_XML "${SOURCE_PATH}" "${ACE_ROOT}/ACEXML/ACEXML.sln")
|
299 |
+
vcpkg_install_msbuild(
|
300 |
+
SOURCE_PATH "${SOURCE_PATH}"
|
301 |
+
PROJECT_SUBPATH ${PROJECT_SUBPATH_XML}
|
302 |
+
LICENSE_SUBPATH COPYING
|
303 |
+
PLATFORM ${MSBUILD_PLATFORM}
|
304 |
+
SKIP_CLEAN
|
305 |
+
)
|
306 |
+
|
307 |
+
set(ACEXML_INCLUDE_FOLDERS "ACEXML/common"
|
308 |
+
"ACEXML/parser/parser")
|
309 |
+
install_includes("${SOURCE_COPY_PATH}" "${ACEXML_INCLUDE_FOLDERS}")
|
310 |
+
endif()
|
311 |
+
|
312 |
+
# Remove dlls without any export
|
313 |
+
if("tao" IN_LIST FEATURES OR "xml" IN_LIST FEATURES)
|
314 |
+
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
|
315 |
+
file(REMOVE
|
316 |
+
"${CURRENT_PACKAGES_DIR}/bin/ACEXML_XML_Svc_Conf_Parser.dll"
|
317 |
+
"${CURRENT_PACKAGES_DIR}/bin/ACEXML_XML_Svc_Conf_Parser.pdb"
|
318 |
+
"${CURRENT_PACKAGES_DIR}/debug/bin/ACEXML_XML_Svc_Conf_Parserd.dll"
|
319 |
+
"${CURRENT_PACKAGES_DIR}/debug/bin/ACEXML_XML_Svc_Conf_Parserd_dll.pdb")
|
320 |
+
endif()
|
321 |
+
endif()
|
322 |
+
|
323 |
+
vcpkg_clean_msbuild()
|
324 |
+
elseif(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX)
|
325 |
+
FIND_PROGRAM(MAKE make)
|
326 |
+
IF (NOT MAKE)
|
327 |
+
MESSAGE(FATAL_ERROR "MAKE not found")
|
328 |
+
ENDIF ()
|
329 |
+
|
330 |
+
if("ssl" IN_LIST FEATURES)
|
331 |
+
list(APPEND _ace_makefile_macros "ssl=1")
|
332 |
+
endif()
|
333 |
+
|
334 |
+
if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
335 |
+
list(APPEND _ace_makefile_macros "static_libs_only=1")
|
336 |
+
endif()
|
337 |
+
|
338 |
+
set(ENV{INSTALL_PREFIX} "${CURRENT_PACKAGES_DIR}")
|
339 |
+
# Set `PWD` environment variable since ACE's `install` make target calculates install dir using this env.
|
340 |
+
set(_prev_env $ENV{PWD})
|
341 |
+
get_filename_component(WORKING_DIR "${WORKSPACE}" DIRECTORY)
|
342 |
+
set(ENV{PWD} "${WORKING_DIR}")
|
343 |
+
|
344 |
+
message(STATUS "Building ${TARGET_TRIPLET}-dbg")
|
345 |
+
vcpkg_execute_build_process(
|
346 |
+
COMMAND make ${_ace_makefile_macros} "debug=1" "optimize=0" "-j${VCPKG_CONCURRENCY}"
|
347 |
+
WORKING_DIRECTORY "${WORKING_DIR}"
|
348 |
+
LOGNAME make-${TARGET_TRIPLET}-dbg
|
349 |
+
)
|
350 |
+
if("xml" IN_LIST FEATURES)
|
351 |
+
vcpkg_execute_build_process(
|
352 |
+
COMMAND make ${_ace_makefile_macros} "debug=1" "optimize=0" "-j${VCPKG_CONCURRENCY}"
|
353 |
+
WORKING_DIRECTORY "${WORKING_DIR}/ACEXML"
|
354 |
+
LOGNAME make-xml-${TARGET_TRIPLET}-dbg
|
355 |
+
)
|
356 |
+
endif()
|
357 |
+
message(STATUS "Building ${TARGET_TRIPLET}-dbg done")
|
358 |
+
message(STATUS "Packaging ${TARGET_TRIPLET}-dbg")
|
359 |
+
vcpkg_execute_build_process(
|
360 |
+
COMMAND make ${_ace_makefile_macros} install
|
361 |
+
WORKING_DIRECTORY "${WORKING_DIR}"
|
362 |
+
LOGNAME install-${TARGET_TRIPLET}-dbg
|
363 |
+
)
|
364 |
+
if("xml" IN_LIST FEATURES)
|
365 |
+
vcpkg_execute_build_process(
|
366 |
+
COMMAND make ${_ace_makefile_macros} install
|
367 |
+
WORKING_DIRECTORY "${WORKING_DIR}/ACEXML"
|
368 |
+
LOGNAME install-xml-${TARGET_TRIPLET}-dbg
|
369 |
+
)
|
370 |
+
endif()
|
371 |
+
|
372 |
+
file(COPY "${CURRENT_PACKAGES_DIR}/lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug")
|
373 |
+
|
374 |
+
file(GLOB _pkg_components "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*.pc")
|
375 |
+
foreach(_pkg_comp ${_pkg_components})
|
376 |
+
file(READ ${_pkg_comp} _content)
|
377 |
+
string(REPLACE "libdir=${CURRENT_PACKAGES_DIR}/lib" "libdir=${CURRENT_PACKAGES_DIR}/debug/lib" _content ${_content})
|
378 |
+
file(WRITE ${_pkg_comp} ${_content})
|
379 |
+
endforeach()
|
380 |
+
message(STATUS "Packaging ${TARGET_TRIPLET}-dbg done")
|
381 |
+
|
382 |
+
vcpkg_execute_build_process(
|
383 |
+
COMMAND make ${_ace_makefile_macros} realclean
|
384 |
+
WORKING_DIRECTORY "${WORKING_DIR}"
|
385 |
+
LOGNAME realclean-${TARGET_TRIPLET}-dbg
|
386 |
+
)
|
387 |
+
if("xml" IN_LIST FEATURES)
|
388 |
+
vcpkg_execute_build_process(
|
389 |
+
COMMAND make ${_ace_makefile_macros} realclean
|
390 |
+
WORKING_DIRECTORY "${WORKING_DIR}/ACEXML"
|
391 |
+
LOGNAME realclean-xml-${TARGET_TRIPLET}-dbg
|
392 |
+
)
|
393 |
+
endif()
|
394 |
+
|
395 |
+
message(STATUS "Building ${TARGET_TRIPLET}-rel")
|
396 |
+
vcpkg_execute_build_process(
|
397 |
+
COMMAND make ${_ace_makefile_macros} "-j${VCPKG_CONCURRENCY}"
|
398 |
+
WORKING_DIRECTORY "${WORKING_DIR}"
|
399 |
+
LOGNAME make-${TARGET_TRIPLET}-rel
|
400 |
+
)
|
401 |
+
if("xml" IN_LIST FEATURES)
|
402 |
+
vcpkg_execute_build_process(
|
403 |
+
COMMAND make ${_ace_makefile_macros} "-j${VCPKG_CONCURRENCY}"
|
404 |
+
WORKING_DIRECTORY "${WORKING_DIR}/ACEXML"
|
405 |
+
LOGNAME make-xml-${TARGET_TRIPLET}-rel
|
406 |
+
)
|
407 |
+
endif()
|
408 |
+
message(STATUS "Building ${TARGET_TRIPLET}-rel done")
|
409 |
+
message(STATUS "Packaging ${TARGET_TRIPLET}-rel")
|
410 |
+
vcpkg_execute_build_process(
|
411 |
+
COMMAND make ${_ace_makefile_macros} install
|
412 |
+
WORKING_DIRECTORY "${WORKING_DIR}"
|
413 |
+
LOGNAME install-${TARGET_TRIPLET}-rel
|
414 |
+
)
|
415 |
+
if("xml" IN_LIST FEATURES)
|
416 |
+
vcpkg_execute_build_process(
|
417 |
+
COMMAND make ${_ace_makefile_macros} install
|
418 |
+
WORKING_DIRECTORY "${WORKING_DIR}/ACEXML"
|
419 |
+
LOGNAME install-xml-${TARGET_TRIPLET}-rel
|
420 |
+
)
|
421 |
+
endif()
|
422 |
+
if("tao" IN_LIST FEATURES)
|
423 |
+
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools")
|
424 |
+
file(RENAME "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
|
425 |
+
endif()
|
426 |
+
message(STATUS "Packaging ${TARGET_TRIPLET}-rel done")
|
427 |
+
# Restore `PWD` environment variable
|
428 |
+
set($ENV{PWD} _prev_env)
|
429 |
+
|
430 |
+
# Handle copyright
|
431 |
+
file(INSTALL "${ACE_ROOT}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
432 |
+
|
433 |
+
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/ace/bin/MakeProjectCreator")
|
434 |
+
file(REMOVE "${CURRENT_PACKAGES_DIR}/share/ace/ace-devel.sh")
|
435 |
+
endif()
|
436 |
+
|
437 |
+
vcpkg_fixup_pkgconfig()
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/ace/vcpkg.json
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "ace",
|
3 |
+
"version": "7.0.6",
|
4 |
+
"port-version": 3,
|
5 |
+
"maintainers": "Johnny Willemsen <[email protected]>",
|
6 |
+
"description": "The ADAPTIVE Communication Environment",
|
7 |
+
"homepage": "https://www.dre.vanderbilt.edu/~schmidt/ACE.html",
|
8 |
+
"license": "DOC",
|
9 |
+
"features": {
|
10 |
+
"ssl": {
|
11 |
+
"description": "Enable SSL/TLS features in ACE",
|
12 |
+
"dependencies": [
|
13 |
+
"openssl"
|
14 |
+
]
|
15 |
+
},
|
16 |
+
"tao": {
|
17 |
+
"description": "The ACE ORB"
|
18 |
+
},
|
19 |
+
"wchar": {
|
20 |
+
"description": "Enable extra wide char functions in ACE"
|
21 |
+
},
|
22 |
+
"xml": {
|
23 |
+
"description": "Enable XML features in ACE"
|
24 |
+
},
|
25 |
+
"xml-utils": {
|
26 |
+
"description": "Include the ACE_XML_Utils library",
|
27 |
+
"dependencies": [
|
28 |
+
{
|
29 |
+
"name": "xerces-c",
|
30 |
+
"features": [
|
31 |
+
"xmlch-wchar"
|
32 |
+
]
|
33 |
+
}
|
34 |
+
]
|
35 |
+
},
|
36 |
+
"zlib": {
|
37 |
+
"description": "Enable zlib support",
|
38 |
+
"dependencies": [
|
39 |
+
"zlib"
|
40 |
+
]
|
41 |
+
}
|
42 |
+
}
|
43 |
+
}
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/activemq-cpp/FunctionLevelLinkingOn.diff
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
diff --git a/vs2010-build/activemq-cpp.vcxproj b/vs2010-build/activemq-cpp.vcxproj
|
2 |
+
index a43f072..54b4822 100644
|
3 |
+
--- a/vs2010-build/activemq-cpp.vcxproj
|
4 |
+
+++ b/vs2010-build/activemq-cpp.vcxproj
|
5 |
+
@@ -2576,7 +2576,7 @@
|
6 |
+
<AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
7 |
+
<MinimalRebuild>false</MinimalRebuild>
|
8 |
+
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
9 |
+
- <FunctionLevelLinking>false</FunctionLevelLinking>
|
10 |
+
+ <FunctionLevelLinking>true</FunctionLevelLinking>
|
11 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
12 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
13 |
+
<PrecompiledHeaderFile>
|
14 |
+
@@ -2602,7 +2602,7 @@
|
15 |
+
<AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
16 |
+
<MinimalRebuild>false</MinimalRebuild>
|
17 |
+
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
18 |
+
- <FunctionLevelLinking>false</FunctionLevelLinking>
|
19 |
+
+ <FunctionLevelLinking>true</FunctionLevelLinking>
|
20 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
21 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
22 |
+
<PrecompiledHeaderFile>
|
23 |
+
@@ -2628,7 +2628,7 @@
|
24 |
+
<AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
25 |
+
<MinimalRebuild>false</MinimalRebuild>
|
26 |
+
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
27 |
+
- <FunctionLevelLinking>false</FunctionLevelLinking>
|
28 |
+
+ <FunctionLevelLinking>true</FunctionLevelLinking>
|
29 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
30 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
31 |
+
<PrecompiledHeaderFile>
|
32 |
+
@@ -2656,7 +2656,7 @@
|
33 |
+
<AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
34 |
+
<MinimalRebuild>false</MinimalRebuild>
|
35 |
+
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
36 |
+
- <FunctionLevelLinking>false</FunctionLevelLinking>
|
37 |
+
+ <FunctionLevelLinking>true</FunctionLevelLinking>
|
38 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
39 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
40 |
+
<PrecompiledHeaderFile>
|
41 |
+
@@ -2684,7 +2684,7 @@
|
42 |
+
<AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
43 |
+
<MinimalRebuild>false</MinimalRebuild>
|
44 |
+
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
45 |
+
- <FunctionLevelLinking>false</FunctionLevelLinking>
|
46 |
+
+ <FunctionLevelLinking>true</FunctionLevelLinking>
|
47 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
48 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
49 |
+
<PrecompiledHeaderFile>
|
50 |
+
@@ -2710,7 +2710,7 @@
|
51 |
+
<AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
52 |
+
<MinimalRebuild>false</MinimalRebuild>
|
53 |
+
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
54 |
+
- <FunctionLevelLinking>false</FunctionLevelLinking>
|
55 |
+
+ <FunctionLevelLinking>true</FunctionLevelLinking>
|
56 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
57 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
58 |
+
<PrecompiledHeaderFile>
|
59 |
+
@@ -2736,7 +2736,7 @@
|
60 |
+
<AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
61 |
+
<MinimalRebuild>false</MinimalRebuild>
|
62 |
+
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
63 |
+
- <FunctionLevelLinking>false</FunctionLevelLinking>
|
64 |
+
+ <FunctionLevelLinking>true</FunctionLevelLinking>
|
65 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
66 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
67 |
+
<PrecompiledHeaderFile>
|
68 |
+
@@ -2764,7 +2764,7 @@
|
69 |
+
<AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
70 |
+
<MinimalRebuild>false</MinimalRebuild>
|
71 |
+
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
72 |
+
- <FunctionLevelLinking>false</FunctionLevelLinking>
|
73 |
+
+ <FunctionLevelLinking>true</FunctionLevelLinking>
|
74 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
75 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
76 |
+
<PrecompiledHeaderFile>
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/activemq-cpp/activemq-cppConfig.cmake
ADDED
@@ -0,0 +1,319 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
set(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}")
|
2 |
+
foreach(i RANGE 1 2)
|
3 |
+
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
|
4 |
+
if (_IMPORT_PREFIX STREQUAL "/")
|
5 |
+
set(_IMPORT_PREFIX "")
|
6 |
+
break()
|
7 |
+
endif()
|
8 |
+
endforeach()
|
9 |
+
|
10 |
+
# Macro to find OS dependencies for windows builds.
|
11 |
+
# Sets up for failure find_package() failure if dependencies not found.
|
12 |
+
# On success, creates targets unofficial::activemq-cpp::ws2, unofficial::activemq-cpp::rpcrt4, and unofficial::activemq-cpp::mswsock.
|
13 |
+
# Sets boolean ${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND to TRUE or FALSE to indicate success or failure.
|
14 |
+
macro(_activemq_cpp_windows_dependencies)
|
15 |
+
find_library(ACTIVEMQ_CPP_LIBWS2 WS2_32)
|
16 |
+
find_file(ACTIVEMQ_CPP_DLLWS2 WS2_32.dll)
|
17 |
+
find_library(ACTIVEMQ_CPP_LIBRPCRT4 RpcRT4)
|
18 |
+
find_file(ACTIVEMQ_CPP_DLLRPCRT4 RpcRT4.dll)
|
19 |
+
find_library(ACTIVEMQ_CPP_LIBMSWSOCK MsWsock)
|
20 |
+
find_file(ACTIVEMQ_CPP_DLLMSWSOCK MsWsock.dll)
|
21 |
+
if(ACTIVEMQ_CPP_LIBWS2 AND ACTIVEMQ_CPP_DLLWS2 AND ACTIVEMQ_CPP_LIBRPCRT4 AND ACTIVEMQ_CPP_DLLRPCRT4 AND ACTIVEMQ_CPP_LIBMSWSOCK AND ACTIVEMQ_CPP_DLLMSWSOCK)
|
22 |
+
add_library(unofficial::activemq-cpp::ws2 SHARED IMPORTED)
|
23 |
+
set_target_properties(unofficial::activemq-cpp::ws2
|
24 |
+
PROPERTIES
|
25 |
+
IMPORTED_LOCATION "${ACTIVEMQ_CPP_DLLWS2}"
|
26 |
+
IMPORTED_IMPLIB "${ACTIVEMQ_CPP_LIBWS2}"
|
27 |
+
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
|
28 |
+
)
|
29 |
+
add_library(unofficial::activemq-cpp::rpcrt4 SHARED IMPORTED)
|
30 |
+
set_target_properties(unofficial::activemq-cpp::rpcrt4
|
31 |
+
PROPERTIES
|
32 |
+
IMPORTED_LOCATION "${ACTIVEMQ_CPP_DLLRPCRT4}"
|
33 |
+
IMPORTED_IMPLIB "${ACTIVEMQ_CPP_LIBRPCRT4}"
|
34 |
+
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
|
35 |
+
)
|
36 |
+
add_library(unofficial::activemq-cpp::mswsock SHARED IMPORTED)
|
37 |
+
set_target_properties(unofficial::activemq-cpp::mswsock
|
38 |
+
PROPERTIES
|
39 |
+
IMPORTED_LOCATION "${ACTIVEMQ_CPP_DLLMSWSOCK}"
|
40 |
+
IMPORTED_IMPLIB "${ACTIVEMQ_CPP_LIBMSWSOCK}"
|
41 |
+
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
|
42 |
+
)
|
43 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND TRUE)
|
44 |
+
else()
|
45 |
+
if (NOT ACTIVEMQ_CPP_LIBWS2)
|
46 |
+
list(APPEND _ACTIVEMQ_CPP_MISSINGS "WS2_32.lib")
|
47 |
+
endif()
|
48 |
+
if (NOT ACTIVEMQ_CPP_DLLWS2)
|
49 |
+
list(APPEND _ACTIVEMQ_CPP_MISSINGS "WS2_32.dll")
|
50 |
+
endif()
|
51 |
+
if (NOT ACTIVEMQ_CPP_LIBRPCRT4)
|
52 |
+
list(APPEND _ACTIVEMQ_CPP_MISSINGS "RpcRT4.lib")
|
53 |
+
endif()
|
54 |
+
if (NOT ACTIVEMQ_CPP_DLLRPCRT4)
|
55 |
+
list(APPEND _ACTIVEMQ_CPP_MISSINGS "RpcRT4.dll")
|
56 |
+
endif()
|
57 |
+
if (NOT ACTIVEMQ_CPP_LIBMSWSOCK)
|
58 |
+
list(APPEND _ACTIVEMQ_CPP_MISSINGS "MsWsock.lib")
|
59 |
+
endif()
|
60 |
+
if (NOT ACTIVEMQ_CPP_DLLMSWSOCK)
|
61 |
+
list(APPEND _ACTIVEMQ_CPP_MISSINGS "MsWsock.dll")
|
62 |
+
endif()
|
63 |
+
list(JOIN _ACTIVEMQ_CPP_MISSINGS ", " _ACTIVEMQ_CPP_MISSINGS_STR)
|
64 |
+
list(LENGTH _ACTIVEMQ_CPP_MISSINGS _ACTIVEMQ_CPP_MISSINGS_COUNT)
|
65 |
+
if(_ACTIVEMQ_CPP_MISSINGS_COUNT EQUALS 1)
|
66 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: Did not find windows dependency: ${_ACTIVEMQ_CPP_MISSINGS_STR}")
|
67 |
+
else()
|
68 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: Did not find windows dependencies: ${_ACTIVEMQ_CPP_MISSINGS_STR}")
|
69 |
+
endif()
|
70 |
+
set(_ACTIVEMQ_CPP_MISSINGS_COUNT)
|
71 |
+
set(_ACTIVEMQ_CPP_MISSINGS_STR)
|
72 |
+
set(_ACTIVEMQ_CPP_MISSINGS)
|
73 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
74 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND FALSE)
|
75 |
+
endif()
|
76 |
+
endmacro()
|
77 |
+
|
78 |
+
# Set the variable named VARNAME to "${FILE}" if the file FILE exists; clears it
|
79 |
+
# otherwise. Opposite for VARNAME_MISSING.
|
80 |
+
function(_set_exists VARNAME VARNAME_MISSING FILE)
|
81 |
+
if (EXISTS "${FILE}")
|
82 |
+
set(${VARNAME} "${FILE}" PARENT_SCOPE)
|
83 |
+
unset(${VARNAME_MISSING} PARENT_SCOPE)
|
84 |
+
else()
|
85 |
+
set(${VARNAME_MISSING} "${FILE}" PARENT_SCOPE)
|
86 |
+
unset(${VARNAME} PARENT_SCOPE)
|
87 |
+
endif()
|
88 |
+
endfunction()
|
89 |
+
|
90 |
+
# Add the unofficial::activemq-cpp::apr and unofficial::activemq-cpp::activemq-cpp targets
|
91 |
+
# Doesn't work for Windows DLL installs because that takes more args...
|
92 |
+
function(_add_apr_and_amq_targets INC_PARENT LIB_TYPE APR_REL APR_DEB AMQ_REL AMQ_DEB DEPS)
|
93 |
+
# the APR port doesn't have a CMake config target so create one
|
94 |
+
add_library(unofficial::activemq-cpp::apr ${LIB_TYPE} IMPORTED)
|
95 |
+
set_target_properties(unofficial::activemq-cpp::apr
|
96 |
+
PROPERTIES
|
97 |
+
MAP_IMPORTED_CONFIG_MINSIZEREL Release
|
98 |
+
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
|
99 |
+
IMPORTED_LOCATION_RELEASE "${APR_REL}"
|
100 |
+
IMPORTED_LOCATION_DEBUG "${APR_DEB}"
|
101 |
+
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
|
102 |
+
INTERFACE_INCLUDE_DIRECTORIES "${INC_PARENT}/include"
|
103 |
+
)
|
104 |
+
|
105 |
+
# the create the activemq-cpp CMake config target with a dependency on apr
|
106 |
+
add_library(unofficial::activemq-cpp::activemq-cpp ${LIB_TYPE} IMPORTED)
|
107 |
+
set_target_properties(unofficial::activemq-cpp::activemq-cpp
|
108 |
+
PROPERTIES
|
109 |
+
MAP_IMPORTED_CONFIG_MINSIZEREL Release
|
110 |
+
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
|
111 |
+
IMPORTED_LOCATION_DEBUG "${AMQ_DEB}"
|
112 |
+
IMPORTED_LOCATION_RELEASE "${AMQ_REL}"
|
113 |
+
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
|
114 |
+
INTERFACE_INCLUDE_DIRECTORIES "${INC_PARENT}/include"
|
115 |
+
INTERFACE_LINK_LIBRARIES "${DEPS}"
|
116 |
+
)
|
117 |
+
endfunction()
|
118 |
+
|
119 |
+
#
|
120 |
+
# Since this is a CMake config file for a non-CMake project, and one that is
|
121 |
+
# for vcpkg to as well, the config file has to cover the various products of
|
122 |
+
# the builds on the various platforms.
|
123 |
+
#
|
124 |
+
# Below, Windows and Linux are covered for static and shared libraries.
|
125 |
+
#
|
126 |
+
_set_exists(ACTIVEMQ_CPP_DLL_RELEASE _ACTIVEMQ_CPP_DLL_RELEASE_MISSING "${_IMPORT_PREFIX}/bin/activemq-cpp.dll")
|
127 |
+
_set_exists(ACTIVEMQ_CPP_LIB_RELEASE _ACTIVEMQ_CPP_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/activemq-cpp.lib")
|
128 |
+
_set_exists(ACTIVEMQ_CPP_DLL_DEBUG _ACTIVEMQ_CPP_DLL_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/bin/activemq-cppd.dll")
|
129 |
+
_set_exists(ACTIVEMQ_CPP_LIB_DEBUG _ACTIVEMQ_CPP_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/activemq-cppd.lib")
|
130 |
+
if (ACTIVEMQ_CPP_DLL_RELEASE)
|
131 |
+
#
|
132 |
+
# Windows shared install
|
133 |
+
#
|
134 |
+
if (ACTIVEMQ_CPP_LIB_RELEASE AND ACTIVEMQ_CPP_DLL_DEBUG AND ACTIVEMQ_CPP_LIB_DEBUG)
|
135 |
+
_set_exists(ACTIVEMQ_CPP_APR_LIB_RELEASE _ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libapr-1.lib")
|
136 |
+
_set_exists(ACTIVEMQ_CPP_APR_DLL_RELEASE _ACTIVEMQ_CPP_APR_DLL_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libapr-1.dll")
|
137 |
+
_set_exists(ACTIVEMQ_CPP_APR_LIB_DEBUG _ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libapr-1.lib")
|
138 |
+
_set_exists(ACTIVEMQ_CPP_APR_DLL_DEBUG _ACTIVEMQ_CPP_APR_DLL_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libapr-1.dll")
|
139 |
+
if (ACTIVEMQ_CPP_APR_LIB_RELEASE AND ACTIVEMQ_CPP_APR_DLL_RELEASE AND ACTIVEMQ_CPP_APR_LIB_DEBUG AND ACTIVEMQ_CPP_APR_DLL_DEBUG)
|
140 |
+
_activemq_cpp_windows_dependencies()
|
141 |
+
if (${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND)
|
142 |
+
# the APR port doesn't have a CMake config target so create one
|
143 |
+
add_library(unofficial::activemq-cpp::apr SHARED IMPORTED)
|
144 |
+
set_target_properties(unofficial::activemq-cpp::apr
|
145 |
+
PROPERTIES
|
146 |
+
MAP_IMPORTED_CONFIG_MINSIZEREL Release
|
147 |
+
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
|
148 |
+
IMPORTED_LOCATION_RELEASE "${ACTIVEMQ_CPP_APR_DLL_RELEASE}"
|
149 |
+
IMPORTED_IMPLIB_RELEASE "${ACTIVEMQ_CPP_APR_LIB_RELEASE}"
|
150 |
+
IMPORTED_LOCATION_DEBUG "${ACTIVEMQ_CPP_APR_DLL_DEBUG}"
|
151 |
+
IMPORTED_IMPLIB_DEBUG "${ACTIVEMQ_CPP_APR_LIB_DEBUG}"
|
152 |
+
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
|
153 |
+
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
|
154 |
+
)
|
155 |
+
|
156 |
+
# the create the activemq-cpp CMake config target with a dependency on apr
|
157 |
+
add_library(unofficial::activemq-cpp::activemq-cpp SHARED IMPORTED)
|
158 |
+
set_target_properties(unofficial::activemq-cpp::activemq-cpp
|
159 |
+
PROPERTIES
|
160 |
+
MAP_IMPORTED_CONFIG_MINSIZEREL Release
|
161 |
+
MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
|
162 |
+
IMPORTED_LOCATION_RELEASE "${ACTIVEMQ_CPP_DLL_RELEASE}"
|
163 |
+
IMPORTED_IMPLIB_RELEASE "${ACTIVEMQ_CPP_LIB_RELEASE}"
|
164 |
+
IMPORTED_LOCATION_DEBUG "${ACTIVEMQ_CPP_DLL_DEBUG}"
|
165 |
+
IMPORTED_IMPLIB_DEBUG "${ACTIVEMQ_CPP_LIB_DEBUG}"
|
166 |
+
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
|
167 |
+
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
|
168 |
+
INTERFACE_LINK_LIBRARIES "unofficial::activemq-cpp::apr;unofficial::activemq-cpp::ws2;unofficial::activemq-cpp::rpcrt4;unofficial::activemq-cpp::mswsock"
|
169 |
+
)
|
170 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE)
|
171 |
+
endif()
|
172 |
+
else()
|
173 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: apr vcpkg port not found in ${_IMPORT_PREFIX}.")
|
174 |
+
foreach(_MISSING
|
175 |
+
${_ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING}
|
176 |
+
${_ACTIVEMQ_CPP_APR_DLL_RELEASE_MISSING}
|
177 |
+
${_ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING}
|
178 |
+
${_ACTIVEMQ_CPP_APR_DLL_DEBUG_MISSING}
|
179 |
+
)
|
180 |
+
string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.")
|
181 |
+
endforeach()
|
182 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
183 |
+
set(activemq-cppConfig_FOUND TRUE)
|
184 |
+
endif()
|
185 |
+
else()
|
186 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install error: Found ${_IMPORT_PREFIX}debug/bin/activemq-cppd.dll.")
|
187 |
+
foreach(_MISSING
|
188 |
+
${_ACTIVEMQ_CPP_LIB_RELEASE_MISSING}
|
189 |
+
${_ACTIVEMQ_CPP_DLL_DEBUG_MISSING}
|
190 |
+
${_ACTIVEMQ_CPP_LIB_DEBUG_MISSING})
|
191 |
+
string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.")
|
192 |
+
endforeach()
|
193 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
194 |
+
endif()
|
195 |
+
else()
|
196 |
+
#
|
197 |
+
# not Windows shared install
|
198 |
+
#
|
199 |
+
_set_exists(ACTIVEMQ_CPP_LIB_RELEASE _ACTIVEMQ_CPP_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libactivemq-cpp.lib")
|
200 |
+
_set_exists(ACTIVEMQ_CPP_LIB_DEBUG _ACTIVEMQ_CPP_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libactivemq-cpp.lib")
|
201 |
+
if (ACTIVEMQ_CPP_LIB_RELEASE)
|
202 |
+
#
|
203 |
+
# Windows static install
|
204 |
+
#
|
205 |
+
if (ACTIVEMQ_CPP_LIB_DEBUG)
|
206 |
+
_set_exists(ACTIVEMQ_CPP_APR_LIB_RELEASE _ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/apr-1.lib")
|
207 |
+
_set_exists(ACTIVEMQ_CPP_APR_LIB_DEBUG _ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/apr-1.lib")
|
208 |
+
if (ACTIVEMQ_CPP_APR_LIB_RELEASE AND ACTIVEMQ_CPP_APR_LIB_DEBUG)
|
209 |
+
_activemq_cpp_windows_dependencies()
|
210 |
+
if (${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND)
|
211 |
+
_add_apr_and_amq_targets("${_IMPORT_PREFIX}"
|
212 |
+
STATIC
|
213 |
+
"${ACTIVEMQ_CPP_APR_LIB_RELEASE}"
|
214 |
+
"${ACTIVEMQ_CPP_APR_LIB_DEBUG}"
|
215 |
+
"${ACTIVEMQ_CPP_LIB_RELEASE}"
|
216 |
+
"${ACTIVEMQ_CPP_LIB_DEBUG}"
|
217 |
+
"unofficial::activemq-cpp::apr;unofficial::activemq-cpp::ws2;unofficial::activemq-cpp::rpcrt4;unofficial::activemq-cpp::mswsock")
|
218 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE)
|
219 |
+
endif()
|
220 |
+
else()
|
221 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: apr vcpkg port not found in ${_IMPORT_PREFIX}.")
|
222 |
+
foreach(_MISSING ${_ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING} ${_ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING})
|
223 |
+
string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.")
|
224 |
+
endforeach()
|
225 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
226 |
+
endif()
|
227 |
+
else()
|
228 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install error: Found ${ACTIVEMQ_CPP_LIB_RELEASE} but not ${_ACTIVEMQ_CPP_LIB_DEBUG_MISSING}.")
|
229 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
230 |
+
endif()
|
231 |
+
else()
|
232 |
+
#
|
233 |
+
# not Windows shared or static install
|
234 |
+
#
|
235 |
+
_set_exists(ACTIVEMQ_CPP_LIB_RELEASE _ACTIVEMQ_CPP_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libactivemq-cpp.so.19.0.5")
|
236 |
+
_set_exists(ACTIVEMQ_CPP_LIB_DEBUG _ACTIVEMQ_CPP_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libactivemq-cpp.so.19.0.5")
|
237 |
+
if(ACTIVEMQ_CPP_LIB_RELEASE)
|
238 |
+
#
|
239 |
+
# Linux shared install (this may pick up some other Unix-like installs)
|
240 |
+
#
|
241 |
+
if (ACTIVEMQ_CPP_LIB_DEBUG)
|
242 |
+
_set_exists(ACTIVEMQ_CPP_APR_LIB_RELEASE _ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libapr-1.so")
|
243 |
+
_set_exists(ACTIVEMQ_CPP_APR_LIB_DEBUG _ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libapr-1.so")
|
244 |
+
if (ACTIVEMQ_CPP_APR_LIB_RELEASE AND ACTIVEMQ_CPP_APR_LIB_DEBUG)
|
245 |
+
find_package(Threads)
|
246 |
+
if (Threads_FOUND)
|
247 |
+
_add_apr_and_amq_targets("${_IMPORT_PREFIX}"
|
248 |
+
SHARED
|
249 |
+
"${ACTIVEMQ_CPP_APR_LIB_RELEASE}"
|
250 |
+
"${ACTIVEMQ_CPP_APR_LIB_DEBUG}"
|
251 |
+
"${ACTIVEMQ_CPP_LIB_RELEASE}"
|
252 |
+
"${ACTIVEMQ_CPP_LIB_DEBUG}"
|
253 |
+
"unofficial::activemq-cpp::apr;Threads::Threads")
|
254 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE)
|
255 |
+
else()
|
256 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: threads library not found.")
|
257 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
258 |
+
endif()
|
259 |
+
else()
|
260 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: apr vcpkg port not found in ${_IMPORT_PREFIX}.")
|
261 |
+
foreach(_MISSING ${_ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING} ${_ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING})
|
262 |
+
string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.")
|
263 |
+
endforeach()
|
264 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
265 |
+
endif()
|
266 |
+
else()
|
267 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install error: Found ${ACTIVEMQ_CPP_LIB_RELEASE} but not ${_ACTIVEMQ_CPP_LIB_DEBUG_MISSING}")
|
268 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
269 |
+
endif()
|
270 |
+
else()
|
271 |
+
#
|
272 |
+
# not Windows shared or static or Linux shared install
|
273 |
+
#
|
274 |
+
_set_exists(ACTIVEMQ_CPP_LIB_RELEASE _ACTIVEMQ_CPP_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libactivemq-cpp.a")
|
275 |
+
_set_exists(ACTIVEMQ_CPP_LIB_DEBUG _ACTIVEMQ_CPP_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libactivemq-cpp.a")
|
276 |
+
if (ACTIVEMQ_CPP_LIB_RELEASE)
|
277 |
+
#
|
278 |
+
# Linux static install (this may pick up some other Unix-like installs)
|
279 |
+
#
|
280 |
+
if (ACTIVEMQ_CPP_LIB_DEBUG)
|
281 |
+
_set_exists(ACTIVEMQ_CPP_APR_LIB_RELEASE _ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libapr-1.a")
|
282 |
+
_set_exists(ACTIVEMQ_CPP_APR_LIB_DEBUG _ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libapr-1.a")
|
283 |
+
if (ACTIVEMQ_CPP_APR_LIB_RELEASE AND ACTIVEMQ_CPP_APR_LIB_DEBUG)
|
284 |
+
find_package(Threads)
|
285 |
+
if (Threads_FOUND)
|
286 |
+
_add_apr_and_amq_targets("${_IMPORT_PREFIX}"
|
287 |
+
STATIC
|
288 |
+
"${ACTIVEMQ_CPP_APR_LIB_RELEASE}"
|
289 |
+
"${ACTIVEMQ_CPP_APR_LIB_DEBUG}"
|
290 |
+
"${ACTIVEMQ_CPP_LIB_RELEASE}"
|
291 |
+
"${ACTIVEMQ_CPP_LIB_DEBUG}"
|
292 |
+
"unofficial::activemq-cpp::apr;Threads::Threads")
|
293 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE)
|
294 |
+
else()
|
295 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: threads library not found.")
|
296 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
297 |
+
endif()
|
298 |
+
else()
|
299 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: apr vcpkg port not found in ${_IMPORT_PREFIX}.")
|
300 |
+
foreach(_MISSING ${_ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING} ${_ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING})
|
301 |
+
string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.")
|
302 |
+
endforeach()
|
303 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
304 |
+
endif()
|
305 |
+
else()
|
306 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install error: Found ${ACTIVEMQ_CPP_LIB_RELEASE} but not ${_ACTIVEMQ_CPP_LIB_DEBUG_MISSING}")
|
307 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
308 |
+
endif()
|
309 |
+
else()
|
310 |
+
#
|
311 |
+
# Some other configuration...
|
312 |
+
# (not Windows shared or static or Linux shared or static install)
|
313 |
+
#
|
314 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg unexpected install: could not find any expected activemq-cpp libraries under ${_IMPORT_PREFIX}. The CMake configuration file only understands Windows and Linux static and shared installs from vcpkg.")
|
315 |
+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
316 |
+
endif()
|
317 |
+
endif()
|
318 |
+
endif()
|
319 |
+
endif()
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/activemq-cpp/fix-crt-linkage-dyn.patch
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
diff --git a/vs2010-build/activemq-cpp.vcxproj b/vs2010-build/activemq-cpp.vcxproj
|
2 |
+
index 54b4822..6b35511 100644
|
3 |
+
--- a/vs2010-build/activemq-cpp.vcxproj
|
4 |
+
+++ b/vs2010-build/activemq-cpp.vcxproj
|
5 |
+
@@ -2578,6 +2578,7 @@
|
6 |
+
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
7 |
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
8 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
9 |
+
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
10 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
11 |
+
<PrecompiledHeaderFile>
|
12 |
+
</PrecompiledHeaderFile>
|
13 |
+
@@ -2687,6 +2688,7 @@
|
14 |
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
15 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
16 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
17 |
+
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
18 |
+
<PrecompiledHeaderFile>
|
19 |
+
</PrecompiledHeaderFile>
|
20 |
+
<PrecompiledHeaderOutputFile>
|
21 |
+
@@ -2794,6 +2796,7 @@
|
22 |
+
<AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
23 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
24 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
25 |
+
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
26 |
+
<PrecompiledHeaderFile>
|
27 |
+
</PrecompiledHeaderFile>
|
28 |
+
<PrecompiledHeaderOutputFile>
|
29 |
+
@@ -2906,6 +2909,7 @@
|
30 |
+
<AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
31 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
32 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
33 |
+
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
34 |
+
<PrecompiledHeaderFile>
|
35 |
+
</PrecompiledHeaderFile>
|
36 |
+
<PrecompiledHeaderOutputFile>
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/activemq-cpp/fix-crt-linkage.patch
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
diff --git a/vs2010-build/activemq-cpp.vcxproj b/vs2010-build/activemq-cpp.vcxproj
|
2 |
+
index 54b4822..6b35511 100644
|
3 |
+
--- a/vs2010-build/activemq-cpp.vcxproj
|
4 |
+
+++ b/vs2010-build/activemq-cpp.vcxproj
|
5 |
+
@@ -2578,6 +2578,7 @@
|
6 |
+
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
7 |
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
8 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
9 |
+
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
10 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
11 |
+
<PrecompiledHeaderFile>
|
12 |
+
</PrecompiledHeaderFile>
|
13 |
+
@@ -2687,6 +2688,7 @@
|
14 |
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
15 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
16 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
17 |
+
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
18 |
+
<PrecompiledHeaderFile>
|
19 |
+
</PrecompiledHeaderFile>
|
20 |
+
<PrecompiledHeaderOutputFile>
|
21 |
+
@@ -2794,6 +2796,7 @@
|
22 |
+
<AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
23 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
24 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
25 |
+
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
26 |
+
<PrecompiledHeaderFile>
|
27 |
+
</PrecompiledHeaderFile>
|
28 |
+
<PrecompiledHeaderOutputFile>
|
29 |
+
@@ -2906,6 +2909,7 @@
|
30 |
+
<AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
31 |
+
<CreateHotpatchableImage>false</CreateHotpatchableImage>
|
32 |
+
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
33 |
+
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
34 |
+
<PrecompiledHeaderFile>
|
35 |
+
</PrecompiledHeaderFile>
|
36 |
+
<PrecompiledHeaderOutputFile>
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/activemq-cpp/portfile.cmake
ADDED
@@ -0,0 +1,130 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
set(VERSION 3.9.5)
|
2 |
+
|
3 |
+
set(PATCHES )
|
4 |
+
if (NOT VCPKG_TARGET_IS_LINUX)
|
5 |
+
set(PATCHES FunctionLevelLinkingOn.diff)
|
6 |
+
if(VCPKG_CRT_LINKAGE STREQUAL "static")
|
7 |
+
list(APPEND PATCHES fix-crt-linkage.patch)
|
8 |
+
else()
|
9 |
+
list(APPEND PATCHES fix-crt-linkage-dyn.patch)
|
10 |
+
endif()
|
11 |
+
endif()
|
12 |
+
|
13 |
+
vcpkg_download_distfile(ARCHIVE
|
14 |
+
URLS "https://www.apache.org/dist/activemq/activemq-cpp/${VERSION}/activemq-cpp-library-${VERSION}-src.tar.bz2"
|
15 |
+
FILENAME "activemq-cpp-library-${VERSION}-src.tar.bz2"
|
16 |
+
SHA512 83692d3dfd5ecf557fc88d204a03bf169ce6180bcff27be41b09409b8f7793368ffbeed42d98ef6374c6b6b477d9beb8a4a9ac584df9e56725ec59ceceaa6ae2
|
17 |
+
)
|
18 |
+
vcpkg_extract_source_archive_ex(
|
19 |
+
OUT_SOURCE_PATH SOURCE_PATH
|
20 |
+
ARCHIVE ${ARCHIVE}
|
21 |
+
PATCHES ${PATCHES}
|
22 |
+
)
|
23 |
+
|
24 |
+
if (VCPKG_TARGET_IS_LINUX)
|
25 |
+
vcpkg_configure_make(
|
26 |
+
SOURCE_PATH "${SOURCE_PATH}"
|
27 |
+
AUTOCONFIG
|
28 |
+
OPTIONS
|
29 |
+
"--with-openssl=${CURRENT_INSTALLED_DIR}"
|
30 |
+
"--with-apr=${CURRENT_INSTALLED_DIR}/tools/apr"
|
31 |
+
)
|
32 |
+
|
33 |
+
vcpkg_install_make()
|
34 |
+
|
35 |
+
file(RENAME "${CURRENT_PACKAGES_DIR}/include/activemq-cpp-${VERSION}/activemq" "${CURRENT_PACKAGES_DIR}/include/activemq")
|
36 |
+
file(RENAME "${CURRENT_PACKAGES_DIR}/include/activemq-cpp-${VERSION}/cms" "${CURRENT_PACKAGES_DIR}/include/cms")
|
37 |
+
file(RENAME "${CURRENT_PACKAGES_DIR}/include/activemq-cpp-${VERSION}/decaf" "${CURRENT_PACKAGES_DIR}/include/decaf")
|
38 |
+
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/activemq-cpp-${VERSION}")
|
39 |
+
|
40 |
+
vcpkg_copy_pdbs()
|
41 |
+
else()
|
42 |
+
set(ACTIVEMQCPP_MSVC_PROJ "${SOURCE_PATH}/vs2010-build/activemq-cpp.vcxproj")
|
43 |
+
|
44 |
+
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ACTIVEMQCPP_SHARED_LIB)
|
45 |
+
|
46 |
+
if (ACTIVEMQCPP_SHARED_LIB)
|
47 |
+
set(RELEASE_CONF "ReleaseDLL")
|
48 |
+
set(DEBUG_CONF "DebugDLL")
|
49 |
+
|
50 |
+
set(ACTIVEMQCPP_LIB_PREFFIX )
|
51 |
+
set(ACTIVEMQCPP_LIB_SUFFIX d)
|
52 |
+
vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" ";apr-1.lib" ";libapr-1.lib")
|
53 |
+
else()
|
54 |
+
set(RELEASE_CONF "Release")
|
55 |
+
set(DEBUG_CONF "Debug")
|
56 |
+
|
57 |
+
set(ACTIVEMQCPP_LIB_PREFFIX lib)
|
58 |
+
set(ACTIVEMQCPP_LIB_SUFFIX )
|
59 |
+
vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" ";libapr-1.lib" ";apr-1.lib")
|
60 |
+
endif()
|
61 |
+
|
62 |
+
if (VCPKG_TARGET_ARCHITECTURE MATCHES "x86")
|
63 |
+
set(BUILD_ARCH "Win32")
|
64 |
+
elseif (VCPKG_TARGET_ARCHITECTURE MATCHES "x64")
|
65 |
+
set(BUILD_ARCH "x64")
|
66 |
+
else()
|
67 |
+
message(FATAL_ERROR "Unsupported architecture: ${VCPKG_TARGET_ARCHITECTURE}")
|
68 |
+
endif()
|
69 |
+
|
70 |
+
string(REPLACE "/" "\\" WIN_SOURCE_PATH "${SOURCE_PATH}")
|
71 |
+
vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" "ClCompile Include=\"..\\src" "ClCompile Include=\"${WIN_SOURCE_PATH}\\src")
|
72 |
+
vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" "ClInclude Include=\"..\\src" "ClInclude Include=\"${WIN_SOURCE_PATH}\\src")
|
73 |
+
vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" "../src/main" "${WIN_SOURCE_PATH}\\src\\main")
|
74 |
+
vcpkg_install_msbuild(
|
75 |
+
SOURCE_PATH "${SOURCE_PATH}/vs2010-build"
|
76 |
+
PROJECT_SUBPATH "activemq-cpp.vcxproj"
|
77 |
+
RELEASE_CONFIGURATION ${RELEASE_CONF}
|
78 |
+
DEBUG_CONFIGURATION ${DEBUG_CONF}
|
79 |
+
PLATFORM ${BUILD_ARCH}
|
80 |
+
USE_VCPKG_INTEGRATION
|
81 |
+
ALLOW_ROOT_INCLUDES
|
82 |
+
SKIP_CLEAN
|
83 |
+
)
|
84 |
+
|
85 |
+
vcpkg_copy_pdbs()
|
86 |
+
|
87 |
+
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
|
88 |
+
file(COPY
|
89 |
+
"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vs2010-build/${BUILD_ARCH}/${RELEASE_CONF}/${ACTIVEMQCPP_LIB_PREFFIX}activemq-cpp.lib"
|
90 |
+
DESTINATION "${CURRENT_PACKAGES_DIR}/lib"
|
91 |
+
)
|
92 |
+
|
93 |
+
if (ACTIVEMQCPP_SHARED_LIB)
|
94 |
+
file(COPY
|
95 |
+
"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vs2010-build/${BUILD_ARCH}/${RELEASE_CONF}/activemq-cpp.dll"
|
96 |
+
DESTINATION "${CURRENT_PACKAGES_DIR}/bin"
|
97 |
+
)
|
98 |
+
file(COPY
|
99 |
+
"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vs2010-build/${BUILD_ARCH}/${RELEASE_CONF}/activemq-cpp.pdb"
|
100 |
+
DESTINATION "${CURRENT_PACKAGES_DIR}/bin"
|
101 |
+
)
|
102 |
+
endif()
|
103 |
+
endif()
|
104 |
+
|
105 |
+
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
106 |
+
file(COPY
|
107 |
+
"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/${ACTIVEMQCPP_LIB_PREFFIX}activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.lib"
|
108 |
+
DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib"
|
109 |
+
)
|
110 |
+
|
111 |
+
if (ACTIVEMQCPP_SHARED_LIB)
|
112 |
+
file(COPY
|
113 |
+
"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.dll"
|
114 |
+
DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin"
|
115 |
+
)
|
116 |
+
file(COPY
|
117 |
+
"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.pdb"
|
118 |
+
DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin"
|
119 |
+
)
|
120 |
+
endif()
|
121 |
+
endif()
|
122 |
+
|
123 |
+
file(COPY "${SOURCE_PATH}/src/main/activemq" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN *.h)
|
124 |
+
file(COPY "${SOURCE_PATH}/src/main/cms" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN *.h)
|
125 |
+
file(COPY "${SOURCE_PATH}/src/main/decaf" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN *.h)
|
126 |
+
vcpkg_clean_msbuild()
|
127 |
+
endif()
|
128 |
+
|
129 |
+
file(INSTALL "${CURRENT_PORT_DIR}/activemq-cppConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/activemq-cpp")
|
130 |
+
file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/activemq-cpp/vcpkg.json
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "activemq-cpp",
|
3 |
+
"version-semver": "3.9.5",
|
4 |
+
"port-version": 8,
|
5 |
+
"description": "Apache ActiveMQ is the most popular and powerful open source messaging and Integration Patterns server.",
|
6 |
+
"supports": "!(uwp | osx)",
|
7 |
+
"dependencies": [
|
8 |
+
"apr",
|
9 |
+
{
|
10 |
+
"name": "libuuid",
|
11 |
+
"platform": "!windows & !osx"
|
12 |
+
}
|
13 |
+
]
|
14 |
+
}
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/ade/portfile.cmake
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
vcpkg_from_github(
|
2 |
+
OUT_SOURCE_PATH SOURCE_PATH
|
3 |
+
REPO opencv/ade
|
4 |
+
REF v0.1.1f
|
5 |
+
SHA512 fbdec8f3d5811a573abb81f1ceb6fb8d40274439013f749645db5430c6d9cdc52227c25203f1a68177b263d648bb65197ea7c2bea7871264a06585e59892631c
|
6 |
+
HEAD_REF master
|
7 |
+
)
|
8 |
+
|
9 |
+
vcpkg_configure_cmake(
|
10 |
+
SOURCE_PATH ${SOURCE_PATH}
|
11 |
+
PREFER_NINJA
|
12 |
+
OPTIONS_DEBUG
|
13 |
+
-DCMAKE_DEBUG_POSTFIX=d
|
14 |
+
)
|
15 |
+
|
16 |
+
vcpkg_install_cmake()
|
17 |
+
|
18 |
+
vcpkg_fixup_cmake_targets()
|
19 |
+
|
20 |
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
21 |
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
|
22 |
+
|
23 |
+
# Handle copyright
|
24 |
+
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/ade RENAME copyright)
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/ade/vcpkg.json
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "ade",
|
3 |
+
"version-string": "0.1.1f",
|
4 |
+
"port-version": 2,
|
5 |
+
"description": "ADE Framework is a graph construction, manipulation, and processing framework. ADE Framework is suitable for organizing data flow processing and execution."
|
6 |
+
}
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/advobfuscator/portfile.cmake
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Download the code from GitHub
|
2 |
+
vcpkg_from_github(
|
3 |
+
OUT_SOURCE_PATH SOURCE_PATH
|
4 |
+
REPO andrivet/ADVobfuscator
|
5 |
+
REF 1852a0eb75b03ab3139af7f938dfb617c292c600
|
6 |
+
SHA512 1bca72b21a3cbf9d8db21fb21d112dd4ca83cac695abfb8fc3d8065245a0cc84cb9e41eb9ff81481e8e0a9d214ff6f5c9aec5d1ba8a9d4387b08dd895ecf1cd5
|
7 |
+
HEAD_REF master
|
8 |
+
)
|
9 |
+
|
10 |
+
# Install the header only source files to the right location
|
11 |
+
file(INSTALL ${SOURCE_PATH}/Lib DESTINATION ${CURRENT_PACKAGES_DIR}/include)
|
12 |
+
|
13 |
+
# The README.md conains the LICENSE details
|
14 |
+
file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/advobfuscator/vcpkg.json
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "advobfuscator",
|
3 |
+
"version-date": "2020-06-26",
|
4 |
+
"description": "Obfuscation library based on C++11/14 and metaprogramming",
|
5 |
+
"dependencies": [
|
6 |
+
"boost-msm"
|
7 |
+
]
|
8 |
+
}
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/aixlog/portfile.cmake
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
vcpkg_from_github(
|
2 |
+
OUT_SOURCE_PATH SOURCE_PATH
|
3 |
+
REPO badaix/aixlog
|
4 |
+
REF fd4a341740ee840092963de852584ec8ff811c4f # v1.5.0
|
5 |
+
SHA512 10ab07dcb1e67064c0d69ddcf9289d79d914c70fe6922f32179f9ac38d5c682a4ebe08b686d8160c699a6b966bc7aa2fd7d0268664570a10ce146850e78b292d
|
6 |
+
)
|
7 |
+
|
8 |
+
vcpkg_cmake_configure(
|
9 |
+
SOURCE_PATH "${SOURCE_PATH}"
|
10 |
+
)
|
11 |
+
|
12 |
+
vcpkg_cmake_install()
|
13 |
+
|
14 |
+
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug")
|
15 |
+
|
16 |
+
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/aixlog/vcpkg.json
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "aixlog",
|
3 |
+
"version-semver": "1.5.0",
|
4 |
+
"description": "Header-only C++ logging library",
|
5 |
+
"dependencies": [
|
6 |
+
{
|
7 |
+
"name": "vcpkg-cmake",
|
8 |
+
"host": true
|
9 |
+
}
|
10 |
+
]
|
11 |
+
}
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/akali/portfile.cmake
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
vcpkg_from_github(
|
2 |
+
OUT_SOURCE_PATH SOURCE_PATH
|
3 |
+
REPO winsoft666/akali
|
4 |
+
REF 57fea619dea42aa116679b22340f56fc94eb83a9
|
5 |
+
SHA512 b80f7e72396032e8b24464e159f4a6c24663d671bcbe9ffa46f68e5bc0398fd0caf3ac918f8ccb8d304be4d5a3fade2821f87f7270e02ec8aae722e2faeab0f3
|
6 |
+
HEAD_REF master
|
7 |
+
)
|
8 |
+
|
9 |
+
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" AKALI_STATIC)
|
10 |
+
|
11 |
+
vcpkg_configure_cmake(
|
12 |
+
SOURCE_PATH ${SOURCE_PATH}
|
13 |
+
PREFER_NINJA
|
14 |
+
DISABLE_PARALLEL_CONFIGURE
|
15 |
+
OPTIONS
|
16 |
+
-DAKALI_STATIC:BOOL=${AKALI_STATIC}
|
17 |
+
-DBUILD_TESTS:BOOL=OFF
|
18 |
+
)
|
19 |
+
|
20 |
+
vcpkg_install_cmake()
|
21 |
+
|
22 |
+
if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake/akali)
|
23 |
+
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/akali)
|
24 |
+
elseif(EXISTS ${CURRENT_PACKAGES_DIR}/share/akali)
|
25 |
+
vcpkg_fixup_cmake_targets(CONFIG_PATH share/akali)
|
26 |
+
endif()
|
27 |
+
|
28 |
+
file(READ ${CURRENT_PACKAGES_DIR}/include/akali/akali_export.h AKALI_EXPORT_H)
|
29 |
+
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
30 |
+
string(REPLACE "#ifdef AKALI_STATIC" "#if 1" AKALI_EXPORT_H "${AKALI_EXPORT_H}")
|
31 |
+
else()
|
32 |
+
string(REPLACE "#ifdef AKALI_STATIC" "#if 0" AKALI_EXPORT_H "${AKALI_EXPORT_H}")
|
33 |
+
endif()
|
34 |
+
file(WRITE ${CURRENT_PACKAGES_DIR}/include/akali/akali_export.h "${AKALI_EXPORT_H}")
|
35 |
+
|
36 |
+
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
37 |
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
38 |
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
|
39 |
+
|
40 |
+
vcpkg_copy_pdbs()
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/akali/vcpkg.json
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "akali",
|
3 |
+
"version-string": "1.42",
|
4 |
+
"port-version": 3,
|
5 |
+
"description": "C++ Common Library.",
|
6 |
+
"homepage": "https://github.com/winsoft666/akali",
|
7 |
+
"supports": "!(arm | arm64 | uwp)"
|
8 |
+
}
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac-decoder/CMakeLists.txt
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
cmake_minimum_required (VERSION 3.9)
|
2 |
+
project (alac_decoder)
|
3 |
+
|
4 |
+
set(HEADERS
|
5 |
+
decomp.h
|
6 |
+
demux.h
|
7 |
+
stream.h
|
8 |
+
wavwriter.h
|
9 |
+
)
|
10 |
+
|
11 |
+
set (SRCS
|
12 |
+
decomp.c
|
13 |
+
alac.c
|
14 |
+
demux.c
|
15 |
+
stream.c
|
16 |
+
wavwriter.c
|
17 |
+
)
|
18 |
+
|
19 |
+
if(MSVC)
|
20 |
+
add_compile_options(/W4 -D_CRT_SECURE_NO_WARNINGS -DTARGET_OS_WIN32)
|
21 |
+
else()
|
22 |
+
add_compile_options(-Wno-error=implicit-function-declaration)
|
23 |
+
endif()
|
24 |
+
|
25 |
+
include_directories(.)
|
26 |
+
|
27 |
+
add_library(libalac_decoder ${SRCS})
|
28 |
+
|
29 |
+
add_executable(alac_decoder main.c)
|
30 |
+
target_link_libraries(alac_decoder libalac_decoder)
|
31 |
+
|
32 |
+
install(
|
33 |
+
TARGETS libalac_decoder
|
34 |
+
RUNTIME DESTINATION bin
|
35 |
+
LIBRARY DESTINATION lib
|
36 |
+
ARCHIVE DESTINATION lib
|
37 |
+
)
|
38 |
+
|
39 |
+
if(NOT DISABLE_INSTALL_TOOLS)
|
40 |
+
install (
|
41 |
+
TARGETS alac_decoder
|
42 |
+
RUNTIME DESTINATION tools/alac-decoder
|
43 |
+
)
|
44 |
+
endif()
|
45 |
+
|
46 |
+
if(NOT DISABLE_INSTALL_HEADERS)
|
47 |
+
install(FILES ${HEADERS} DESTINATION include/alac_decoder)
|
48 |
+
endif()
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac-decoder/decomp.c
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#include "decomp.h"
|
2 |
+
#include <stdint.h>
|
3 |
+
|
4 |
+
int set_endian()
|
5 |
+
{
|
6 |
+
uint32_t integer = 0x000000aa;
|
7 |
+
unsigned char *p = (unsigned char*)&integer;
|
8 |
+
|
9 |
+
if (p[0] == 0xaa) return 0;
|
10 |
+
else return 1;
|
11 |
+
}
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac-decoder/no-pragma-warning.patch
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
diff --git a/alac.c b/alac.c
|
2 |
+
index b829e29..8e8805f 100644
|
3 |
+
--- a/alac.c
|
4 |
+
+++ b/alac.c
|
5 |
+
@@ -284,7 +284,9 @@ static int count_leading_zeros(int input)
|
6 |
+
return output;
|
7 |
+
}
|
8 |
+
#else
|
9 |
+
+#if !defined(_MSC_VER)
|
10 |
+
#warning using generic count leading zeroes. You may wish to write one for your CPU / compiler
|
11 |
+
+#endif
|
12 |
+
static int count_leading_zeros(int input)
|
13 |
+
{
|
14 |
+
int output = 0;
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac-decoder/portfile.cmake
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
2 |
+
|
3 |
+
vcpkg_download_distfile(ARCHIVE
|
4 |
+
URLS "https://distfiles.macports.org/alac_decoder/alac_decoder-0.2.0.tgz"
|
5 |
+
FILENAME "alac_decoder-0.2.0.tgz"
|
6 |
+
SHA512 4b37d4fe37681bfccaa4a27fbaf11eb2a1fba5f14e77d219a6d9814ff44d1168534d05eb19443dd2fd11e6fcdf4da3a22e3f3c79314cb7a6767c152351b13e29
|
7 |
+
)
|
8 |
+
|
9 |
+
vcpkg_extract_source_archive_ex(
|
10 |
+
OUT_SOURCE_PATH SOURCE_PATH
|
11 |
+
ARCHIVE ${ARCHIVE}
|
12 |
+
PATCHES
|
13 |
+
remove_stdint_headers.patch
|
14 |
+
no-pragma-warning.patch
|
15 |
+
)
|
16 |
+
|
17 |
+
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
|
18 |
+
file(COPY ${CMAKE_CURRENT_LIST_DIR}/decomp.c DESTINATION ${SOURCE_PATH})
|
19 |
+
|
20 |
+
vcpkg_configure_cmake(
|
21 |
+
SOURCE_PATH ${SOURCE_PATH}
|
22 |
+
PREFER_NINJA
|
23 |
+
OPTIONS_DEBUG
|
24 |
+
-DDISABLE_INSTALL_HEADERS=ON
|
25 |
+
-DDISABLE_INSTALL_TOOLS=ON
|
26 |
+
)
|
27 |
+
|
28 |
+
vcpkg_install_cmake()
|
29 |
+
vcpkg_copy_pdbs()
|
30 |
+
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
|
31 |
+
|
32 |
+
file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac/CMakeLists.txt
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
cmake_minimum_required (VERSION 3.9)
|
2 |
+
project (alac)
|
3 |
+
|
4 |
+
set(HEADERS
|
5 |
+
codec/EndianPortable.h
|
6 |
+
codec/aglib.h
|
7 |
+
codec/ALACAudioTypes.h
|
8 |
+
codec/ALACBitUtilities.h
|
9 |
+
codec/ALACDecoder.h
|
10 |
+
codec/ALACEncoder.h
|
11 |
+
codec/dplib.h
|
12 |
+
codec/matrixlib.h
|
13 |
+
)
|
14 |
+
|
15 |
+
|
16 |
+
set (SRCS
|
17 |
+
codec/EndianPortable.c
|
18 |
+
codec/ALACBitUtilities.c
|
19 |
+
codec/ALACDecoder.cpp
|
20 |
+
codec/ALACEncoder.cpp
|
21 |
+
codec/ag_dec.c
|
22 |
+
codec/ag_enc.c
|
23 |
+
codec/dp_dec.c
|
24 |
+
codec/dp_enc.c
|
25 |
+
codec/matrix_dec.c
|
26 |
+
codec/matrix_enc.c
|
27 |
+
)
|
28 |
+
|
29 |
+
set(EXE_SRCS
|
30 |
+
convert-utility/main.cpp
|
31 |
+
convert-utility/CAFFileALAC.cpp
|
32 |
+
)
|
33 |
+
|
34 |
+
if(MSVC)
|
35 |
+
add_compile_options(/W4 -D_CRT_SECURE_NO_WARNINGS -DTARGET_OS_WIN32)
|
36 |
+
endif()
|
37 |
+
|
38 |
+
include_directories(. codec convert-utility)
|
39 |
+
|
40 |
+
add_library(libalac ${SRCS})
|
41 |
+
|
42 |
+
add_executable(alacconvert ${EXE_SRCS})
|
43 |
+
target_link_libraries(alacconvert libalac)
|
44 |
+
|
45 |
+
install(
|
46 |
+
TARGETS libalac
|
47 |
+
RUNTIME DESTINATION bin
|
48 |
+
LIBRARY DESTINATION lib
|
49 |
+
ARCHIVE DESTINATION lib
|
50 |
+
)
|
51 |
+
|
52 |
+
if(NOT DISABLE_INSTALL_TOOLS)
|
53 |
+
install (
|
54 |
+
TARGETS alacconvert
|
55 |
+
RUNTIME DESTINATION tools/alac
|
56 |
+
)
|
57 |
+
endif()
|
58 |
+
|
59 |
+
if(NOT DISABLE_INSTALL_HEADERS)
|
60 |
+
install(FILES ${HEADERS} DESTINATION include/alac)
|
61 |
+
endif()
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac/portfile.cmake
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
2 |
+
message(FATAL_ERROR "${PORT} does not currently support UWP")
|
3 |
+
endif()
|
4 |
+
|
5 |
+
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
6 |
+
|
7 |
+
vcpkg_from_github(
|
8 |
+
OUT_SOURCE_PATH SOURCE_PATH
|
9 |
+
REPO macosforge/alac
|
10 |
+
REF c38887c5c5e64a4b31108733bd79ca9b2496d987
|
11 |
+
SHA512 8da18df25807e76f9187f7bf30585aace303d55444f0a614ab00d98d11caca3fdc5c6f5b9fd11e5f4c92a2ab1e86fef73deeeada57e9d49951fea8b80ba383cc
|
12 |
+
HEAD_REF master
|
13 |
+
)
|
14 |
+
|
15 |
+
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
|
16 |
+
|
17 |
+
vcpkg_configure_cmake(
|
18 |
+
SOURCE_PATH ${SOURCE_PATH}
|
19 |
+
PREFER_NINJA
|
20 |
+
OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON
|
21 |
+
)
|
22 |
+
|
23 |
+
vcpkg_install_cmake()
|
24 |
+
vcpkg_copy_pdbs()
|
25 |
+
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/alac)
|
26 |
+
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/alac RENAME copyright)
|
third-party/DPVO/Pangolin/scripts/vcpkg/ports/alac/vcpkg.json
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "alac",
|
3 |
+
"version-string": "2017-11-03-c38887c5",
|
4 |
+
"port-version": 2,
|
5 |
+
"description": "The Apple Lossless Audio Codec (ALAC) is a lossless audio codec developed by Apple and deployed on all of its platforms and devices.",
|
6 |
+
"homepage": "https://github.com/macosforge/alac",
|
7 |
+
"supports": "!uwp"
|
8 |
+
}
|