mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-27 10:21:07 +08:00
Merge branch 'master' of https://github.com/Microsoft/vcpkg into openssl-version-bump
This commit is contained in:
commit
e27fe91198
3
.gitignore
vendored
3
.gitignore
vendored
@ -11,6 +11,9 @@
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
toolsrc/out
|
||||
toolsrc/CMakeSettings.json
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
|
@ -19,6 +19,7 @@ Vcpkg helps you manage C and C++ libraries on Windows, Linux and MacOS. This too
|
||||
|
||||
- [Control files](maintainers/control-files.md)
|
||||
- [Portfile functions](maintainers/portfile-functions.md)
|
||||
- [Maintainer Guidelines](maintainers/maintainer-guide.md)
|
||||
|
||||
### Specifications
|
||||
|
||||
|
@ -43,16 +43,27 @@ The port version.
|
||||
|
||||
This field is an alphanumeric string that may also contain `.`, `_`, or `-`. No attempt at ordering versions is made; all versions are treated as bit strings and are only evaluated for equality.
|
||||
|
||||
By convention, if a portfile is modified without incrementing the "upstream" version, a `-#` is appended to create a unique version string.
|
||||
For tagged-release ports, we follow the following convention:
|
||||
|
||||
Some projects do not have named releases. In these cases use the date of the version do not have labeled releases, in these cases use the date of the last commit in `YYYY-MM-DD` format. See the `abseil` port as an example.
|
||||
1. If the port follows a scheme like `va.b.c`, we remove the leading `v`. In this case, it becomes `a.b.c`.
|
||||
2. If the port includes its own name in the version like `curl-7_65_1`, we remove the leading name: `7_65_1`
|
||||
3. If the port has been modified, we append a `-N` to distinguish the versions: `1.2.1-4`
|
||||
|
||||
For rolling-release ports, we use the date that the _commit was accessed by you_, formatted as `YYYY-MM-DD`. Stated another way: if someone had a time machine and went to that date, they would see this commit as the latest master.
|
||||
|
||||
For example, given:
|
||||
1. The latest commit was made on 2019-04-19
|
||||
2. The current version string is `2019-02-14-1`
|
||||
3. Today's date is 2019-06-01.
|
||||
|
||||
Then if you update the source version today, you should give it version `2019-06-01`. If you need to make a change which doesn't adjust the source version, you should give it version `2019-02-14-2`.
|
||||
|
||||
Example:
|
||||
```no-highlight
|
||||
Version: 1.0.5-2
|
||||
```
|
||||
```no-highlight
|
||||
Version: 2019-3-21
|
||||
Version: 2019-03-21
|
||||
```
|
||||
|
||||
#### Description
|
||||
|
178
docs/maintainers/maintainer-guide.md
Normal file
178
docs/maintainers/maintainer-guide.md
Normal file
@ -0,0 +1,178 @@
|
||||
# Maintainer Guidelines and Policies
|
||||
|
||||
This document lists a set of policies that you should apply when adding or updating a port recipe. It is intended to serve the role of [Debian's Policy Manual](https://www.debian.org/doc/debian-policy/), [Homebrew's Maintainer Guidelines](https://docs.brew.sh/Maintainer-Guidelines), and [Homebrew's Formula Cookbook](https://docs.brew.sh/Formula-Cookbook).
|
||||
|
||||
## PR Structure
|
||||
|
||||
### Make separate Pull Requests per port
|
||||
|
||||
Whenever possible, separate changes into multiple PR's. This makes them significantly easier to review and prevents issues with one set of changes from holding up every other change.
|
||||
|
||||
### Avoid trivial changes in untouched files
|
||||
|
||||
For example, avoid reformatting or renaming variables in portfiles that otherwise have no reason to be modified for the issue at hand. However, if you need to modify the file for the primary purpose of the PR (updating the library), then obviously beneficial changes like fixing typos are appreciated!
|
||||
|
||||
### Check names against other repositories
|
||||
|
||||
A good service to check many at once is [Repology](https://repology.org/). If the library you are adding could be confused with another one, consider renaming to make it clear.
|
||||
|
||||
### Use GitHub Draft PRs
|
||||
|
||||
GitHub Draft PRs are a great way to get CI or human feedback on work that isn't yet ready to merge. Most new PRs should be opened as drafts and converted to normal PRs once the CI passes.
|
||||
|
||||
More information about GitHub Draft PRs: https://github.blog/2019-02-14-introducing-draft-pull-requests/
|
||||
|
||||
## Portfiles
|
||||
|
||||
### Avoid deprecated helper functions
|
||||
|
||||
At this time, the following helpers are deprecated:
|
||||
|
||||
1. `vcpkg_extract_archive()` should be replaced by `vcpkg_extract_archive_ex()`
|
||||
2. `vcpkg_apply_patches()` should be replaced by the `PATCHES` arguments to the "extract" helpers (e.g. `vcpkg_from_github()`)
|
||||
3. `vcpkg_build_msbuild()` should be replaced by `vcpkg_install_msbuild()`
|
||||
|
||||
### Avoid excessive comments in portfiles
|
||||
|
||||
Ideally, portfiles should be short, simple, and as declarative as possible. Remove any helper comments introduced by the `create` command before submitting a PR.
|
||||
|
||||
## Build Techniques
|
||||
|
||||
### Do not use vendored dependencies
|
||||
|
||||
Do not use embedded copies of libraries. All dependencies should be split out and packaged separately so they can be updated and maintained.
|
||||
|
||||
### Prefer using CMake
|
||||
|
||||
When multiple buildsystems are available, prefer using CMake. Additionally, when appropriate, it can be easier and more maintainable to rewrite alternative buildsystems into CMake using `file(GLOB)` directives.
|
||||
|
||||
Examples: [abseil](../../ports/abseil/portfile.cmake)
|
||||
|
||||
### Choose either static or shared binaries
|
||||
|
||||
By default, `vcpkg_configure_cmake()` will pass in the appropriate setting for `BUILD_SHARED_LIBS`, however for libraries that don't respect that variable, you can switch on `VCPKG_LIBRARY_LINKAGE`:
|
||||
|
||||
```cmake
|
||||
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" KEYSTONE_BUILD_STATIC)
|
||||
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" KEYSTONE_BUILD_SHARED)
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS
|
||||
-DKEYSTONE_BUILD_STATIC=${KEYSTONE_BUILD_STATIC}
|
||||
-DKEYSTONE_BUILD_SHARED=${KEYSTONE_BUILD_SHARED}
|
||||
)
|
||||
```
|
||||
|
||||
### When defining features, explicitly control dependencies
|
||||
|
||||
When defining a feature that captures an optional dependency, ensure that the dependency will not be used accidentally when the feature is not explicitly enabled. For example:
|
||||
|
||||
```cmake
|
||||
set(CMAKE_DISABLE_FIND_PACKAGE_ZLIB ON)
|
||||
if("zlib" IN_LIST FEATURES)
|
||||
set(CMAKE_DISABLE_FIND_PACKAGE_ZLIB OFF)
|
||||
endif()
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_ZLIB=${CMAKE_DISABLE_FIND_PACKAGE_ZLIB}
|
||||
)
|
||||
```
|
||||
|
||||
Note that `ZLIB` in the above is case-sensitive. See the [cmake documentation](https://cmake.org/cmake/help/v3.15/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html) for more details.
|
||||
|
||||
## Versioning
|
||||
|
||||
### Follow common conventions for the `Version:` field
|
||||
|
||||
See our [CONTROL files document](control-files.md#version) for a full explanation of our conventions.
|
||||
|
||||
### Update the `Version:` field in the `CONTROL` file of any modified ports
|
||||
|
||||
Vcpkg uses this field to determine whether a given port is out-of-date and should be changed whenever the port's behavior changes.
|
||||
|
||||
Our convention for this field is to append a `-N` to the upstream version when changes need to be made.
|
||||
|
||||
For Example:
|
||||
|
||||
- Zlib's package version is currently `1.2.1`.
|
||||
- You've discovered that the wrong copyright file has been deployed, and fixed that in the portfile.
|
||||
- You should update the `Version:` field in the control file to `1.2.1-1`.
|
||||
|
||||
See our [CONTROL files document](control-files.md#version) for a full explanation of our conventions.
|
||||
|
||||
## Patching
|
||||
|
||||
### Prefer options over patching
|
||||
|
||||
It is preferable to set options in a call to `vcpkg_configure_xyz()` over patching the settings directly.
|
||||
|
||||
Common options that allow avoiding patching:
|
||||
1. [MSBUILD] `<PropertyGroup>` settings inside the project file can be overridden via `/p:` parameters
|
||||
2. [CMAKE] Calls to `find_package(XYz)` in CMake scripts can be disabled via [`-DCMAKE_DISABLE_FIND_PACKAGE_XYz=ON`](https://cmake.org/cmake/help/v3.15/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html)
|
||||
3. [CMAKE] Cache variables (declared as `set(VAR "value" CACHE STRING "Documentation")` or `option(VAR "Documentation" "Default Value")`) can be overriden by just passing them in on the command line as `-DVAR:STRING=Foo`. One notable exception is if the `FORCE` parameter is passed to `set()`. See also the [CMake `set` documentation](https://cmake.org/cmake/help/v3.15/command/set.html)
|
||||
|
||||
### Minimize patches
|
||||
|
||||
When making changes to a library, strive to minimize the final diff. This means you should _not_ reformat the upstream source code when making changes that affect a region. Also, when disabling a conditional, it is better to add a `AND FALSE` or `&& 0` to the condition than to delete every line of the conditional.
|
||||
|
||||
This helps to keep the size of the vcpkg repository down as well as improves the likelihood that the patch will apply to future code versions.
|
||||
|
||||
### Do not implement features in patches
|
||||
|
||||
The purpose of patching in vcpkg is to enable compatibility with compilers, libraries, and platforms. It is not to implement new features in lieu of following proper Open Source procedure (submitting an Issue/PR/etc).
|
||||
|
||||
## Do not build tests/docs/examples by default
|
||||
|
||||
When submitting a new port, check for any options like `BUILD_TESTS` or `WITH_TESTS` or `POCO_ENABLE_SAMPLES` and ensure the additional binaries are disabled. This minimizes build times and dependencies for the average user.
|
||||
|
||||
Optionally, you can add a `test` feature which enables building the tests, however this should not be in the `Default-Features` list.
|
||||
|
||||
## Enable existing users of the library to switch to vcpkg
|
||||
|
||||
### Do not add `CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS`
|
||||
|
||||
Unless the author of the library is already using it, we should not use this CMake functionality because it interacts poorly with C++ templates and breaks certain compiler features. Libraries that don't provide a .def file and do not use __declspec() declarations simply do not support shared builds for Windows and should be marked as such with `vcpkg_check_linkage(ONLY_STATIC_LIBRARY)`.
|
||||
|
||||
### Do not rename binaries outside the names given by upstream
|
||||
|
||||
This means that if the upstream library has different names in release and debug (libx versus libxd), then the debug library should not be renamed to `libx`. Vice versa, if the upstream library has the same name in release and debug, we should not introduce a new name.
|
||||
|
||||
Important caveat:
|
||||
- Static and shared variants often should be renamed to a common scheme. This enables consumers to use a common name and be ignorant of the downstream linkage. This is safe because we only make one at a time available.
|
||||
|
||||
Note that if a library generates CMake integration files (`foo-config.cmake`), renaming must be done through patching the CMake build itself instead of simply calling `file(RENAME)` on the output archives/LIBs.
|
||||
|
||||
Finally, DLL files on Windows should never be renamed post-build because it breaks the generated LIBs.
|
||||
|
||||
## Useful implementation notes
|
||||
|
||||
### Portfiles are run in Script Mode
|
||||
|
||||
While `portfile.cmake`'s and `CMakeLists.txt`'s share a common syntax and core CMake language constructs, portfiles run in "Script Mode", whereas `CMakeLists.txt` files run in "Build Mode" (unofficial term). The most important difference between these two modes is that "Script Mode" does not have a concept of "Target" -- any behaviors that depend on the "target" machine (`CMAKE_CXX_COMPILER`, `CMAKE_EXECUTABLE_SUFFIX`, `CMAKE_SYSTEM_NAME`, etc) will not be correct.
|
||||
|
||||
Portfiles have direct access to variables set in the triplet file, but `CMakeLists.txt`s do not (though there is often a translation that happens -- `VCPKG_LIBRARY_LINKAGE` versus `BUILD_SHARED_LIBS`).
|
||||
|
||||
Finally, portfiles and CMake builds invoked by portfiles are run in different processes. Conceptually:
|
||||
|
||||
```no-highlight
|
||||
+----------------------------+ +------------------------------------+
|
||||
| CMake.exe | | CMake.exe |
|
||||
+----------------------------+ +------------------------------------+
|
||||
| Triplet file | ====> | Toolchain file |
|
||||
| (x64-windows.cmake) | | (scripts/buildsystems/vcpkg.cmake) |
|
||||
+----------------------------+ +------------------------------------+
|
||||
| Portfile | ====> | CMakeLists.txt |
|
||||
| (ports/foo/portfile.cmake) | | (buildtrees/../CMakeLists.txt) |
|
||||
+----------------------------+ +------------------------------------+
|
||||
```
|
||||
|
||||
To determine the host in a portfile, the standard CMake variables are fine (`CMAKE_HOST_WIN32`).
|
||||
|
||||
To determine the target in a portfile, the vcpkg triplet variables should be used (`VCPKG_CMAKE_SYSTEM_NAME`).
|
||||
|
||||
See also our [triplet documentation](../users/triplets.md) for a full enumeration of possible settings.
|
@ -6,12 +6,14 @@
|
||||
- [vcpkg\_apply\_patches](vcpkg_apply_patches.md)
|
||||
- [vcpkg\_build\_cmake](vcpkg_build_cmake.md)
|
||||
- [vcpkg\_build\_msbuild](vcpkg_build_msbuild.md)
|
||||
- [vcpkg\_check\_features](vcpkg_check_features.md)
|
||||
- [vcpkg\_check\_linkage](vcpkg_check_linkage.md)
|
||||
- [vcpkg\_clean\_msbuild](vcpkg_clean_msbuild.md)
|
||||
- [vcpkg\_configure\_cmake](vcpkg_configure_cmake.md)
|
||||
- [vcpkg\_copy\_pdbs](vcpkg_copy_pdbs.md)
|
||||
- [vcpkg\_copy\_tool\_dependencies](vcpkg_copy_tool_dependencies.md)
|
||||
- [vcpkg\_download\_distfile](vcpkg_download_distfile.md)
|
||||
- [vcpkg\_execute\_build\_process](vcpkg_execute_build_process.md)
|
||||
- [vcpkg\_execute\_required\_process](vcpkg_execute_required_process.md)
|
||||
- [vcpkg\_extract\_source\_archive](vcpkg_extract_source_archive.md)
|
||||
- [vcpkg\_extract\_source\_archive\_ex](vcpkg_extract_source_archive_ex.md)
|
||||
|
41
docs/maintainers/vcpkg_check_features.md
Normal file
41
docs/maintainers/vcpkg_check_features.md
Normal file
@ -0,0 +1,41 @@
|
||||
# vcpkg_check_features
|
||||
|
||||
Check if one or more features are part of the package installation.
|
||||
|
||||
## Usage
|
||||
```cmake
|
||||
vcpkg_check_features(
|
||||
<feature1> <output_variable1>
|
||||
[<feature2> <output_variable2>]
|
||||
...
|
||||
)
|
||||
```
|
||||
|
||||
`vcpkg_check_features` accepts a list of (feature, output_variable) pairs.
|
||||
The syntax is similar to the `PROPERTIES` argument of `set_target_properties`.
|
||||
|
||||
`vcpkg_check_features` will create a variable `FEATURE_OPTIONS` in the
|
||||
parent scope, which you can pass as a part of `OPTIONS` argument when
|
||||
calling functions like `vcpkg_config_cmake`:
|
||||
```cmake
|
||||
vcpkg_config_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS
|
||||
-DBUILD_TESTING=ON
|
||||
${FEATURE_OPTIONS}
|
||||
)
|
||||
```
|
||||
|
||||
## Notes
|
||||
`vcpkg_check_features` is supposed to be called only once. Otherwise, the
|
||||
`FEATURE_OPTIONS` variable set by a previous call will be overwritten.
|
||||
|
||||
## Examples
|
||||
|
||||
* [czmq](https://github.com/microsoft/vcpkg/blob/master/ports/czmq/portfile.cmake)
|
||||
* [oniguruma](https://github.com/microsoft/vcpkg/blob/master/ports/oniguruma/portfile.cmake)
|
||||
* [xtensor](https://github.com/microsoft/vcpkg/blob/master/ports/xtensor/portfile.cmake)
|
||||
|
||||
## Source
|
||||
[scripts/cmake/vcpkg_check_features.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_check_features.cmake)
|
@ -7,6 +7,7 @@ Configure CMake for Debug and Release builds of a project.
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH <${SOURCE_PATH}>
|
||||
[PREFER_NINJA]
|
||||
[DISABLE_PARALLEL_CONFIGURE]
|
||||
[GENERATOR <"NMake Makefiles">]
|
||||
[OPTIONS <-DUSE_THIS_IN_ALL_BUILDS=1>...]
|
||||
[OPTIONS_RELEASE <-DOPTIMIZE=1>...]
|
||||
|
36
docs/maintainers/vcpkg_execute_build_process.md
Normal file
36
docs/maintainers/vcpkg_execute_build_process.md
Normal file
@ -0,0 +1,36 @@
|
||||
# vcpkg_execute_build_process
|
||||
|
||||
Execute a required build process
|
||||
|
||||
## Usage
|
||||
```cmake
|
||||
vcpkg_execute_build_process(
|
||||
COMMAND <cmd> [<args>...]
|
||||
[NO_PARALLEL_COMMAND <cmd> [<args>...]]
|
||||
WORKING_DIRECTORY </path/to/dir>
|
||||
LOGNAME <log_name>)
|
||||
)
|
||||
```
|
||||
## Parameters
|
||||
### COMMAND
|
||||
The command to be executed, along with its arguments.
|
||||
|
||||
### NO_PARALLEL_COMMAND
|
||||
Optional parameter which specifies a non-parallel command to attempt if a
|
||||
failure potentially due to parallelism is detected.
|
||||
|
||||
### WORKING_DIRECTORY
|
||||
The directory to execute the command in.
|
||||
|
||||
### LOGNAME
|
||||
The prefix to use for the log files.
|
||||
|
||||
This should be a unique name for different triplets so that the logs don't
|
||||
conflict when building multiple at once.
|
||||
|
||||
## Examples
|
||||
|
||||
* [icu](https://github.com/Microsoft/vcpkg/blob/master/ports/icu/portfile.cmake)
|
||||
|
||||
## Source
|
||||
[scripts/cmake/vcpkg_execute_build_process.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_execute_build_process.cmake)
|
@ -25,7 +25,7 @@ The full path to the archive to be extracted.
|
||||
This is usually obtained from calling [`vcpkg_download_distfile`](vcpkg_download_distfile.md).
|
||||
|
||||
### REF
|
||||
A friendly name that will be used instead of the filename of the archive.
|
||||
A friendly name that will be used instead of the filename of the archive. If more than 10 characters it will be truncated.
|
||||
|
||||
By convention, this is set to the version number or tag fetched
|
||||
|
||||
|
@ -24,6 +24,7 @@ The current list of programs includes:
|
||||
- MESON
|
||||
- NASM
|
||||
- NINJA
|
||||
- NUGET
|
||||
- YASM
|
||||
- ARIA2 (Downloader)
|
||||
|
||||
|
182
docs/specifications/ports-overlay.md
Normal file
182
docs/specifications/ports-overlay.md
Normal file
@ -0,0 +1,182 @@
|
||||
# Ports Overlay (Jun 19, 2019)
|
||||
|
||||
|
||||
## 1. Motivation
|
||||
|
||||
### A. Allow users to override ports with alternate versions
|
||||
|
||||
It's a common scenario for `vcpkg` users to keep specific versions of libraries to use in their own projects. The current recommendation for users is to fork `vcpkg`'s repository and create tags for commits containing the specific versions of the ports they want to use.
|
||||
|
||||
This proposal adds an alternative to solve this problem. By allowing `vcpkg` users to specify additional locations in their file system containing ports for:
|
||||
|
||||
* older or newer versions of libraries,
|
||||
* modified libraries, or
|
||||
* libraries not available in `vcpkg`.
|
||||
|
||||
These locations will be searched when resolving port names during package installation, and override ports in `<vcpkg-root>/ports`.
|
||||
|
||||
### B. Allow users to keep unmodified upstream ports
|
||||
|
||||
Users will be able to keep unmodified versions of the ports shipped with `vcpkg` and update them via `vcpkg update` and `vcpkg upgrade` without having to solve merge conflicts.
|
||||
|
||||
|
||||
## 2. Other design concerns
|
||||
|
||||
* Allow a set of `vcpkg` commands to optionally accept additional paths to be used when searching for ports.
|
||||
* Additional paths must take precedence when resolving names of ports to install.
|
||||
* Allow users to specify multiple additional paths.
|
||||
* Provide a simple disambiguation mechanism to resolve ambiguous port names.
|
||||
* After resolving a port name, the installation process has to work the same as for ports shipped by `vcpkg`.
|
||||
* This **DOES NOT ENABLE MULTIPLE VERSIONS** of a same library to be **INSTALLED SIDE-BY-SIDE**.
|
||||
|
||||
|
||||
## 3. Proposed solution
|
||||
|
||||
This document proposes allowing additional locations to search for ports during package installation that will override and complement the set of ports provided by `vcpkg` (ports under the `<vcpkg_root>/ports` directory).`
|
||||
|
||||
A new option `--overlay-ports` will be added to the `vcpkg install`, `vcpkg update`, `vcpkg upgrade`, `vcpkg export`, and `vcpkg depend-info` commands to specify additional paths containing ports.
|
||||
|
||||
From a user experience perspective, a user expresses interest in adding additional lookup locations by passing the `--overlay-ports` option followed by a path to:
|
||||
|
||||
* an individual port (directory containing a `CONTROL` file),
|
||||
* `vcpkg install sqlite3 --overlay-ports="C:\custom-ports\sqlite3"`
|
||||
|
||||
* a directory containing ports,
|
||||
* `vcpkg install sqlite3 --overlay-ports=\\share\org\custom-ports`
|
||||
|
||||
* a file listing paths to the former two.
|
||||
> NOTE: Reading paths from a text file is not available in the current implementation, some revisions to this part of the specification are being made and will be implemented in a future date.
|
||||
|
||||
* `vcpkg install sqlite3 --overlay-ports=..\port-repos.txt`
|
||||
|
||||
_port-repos.txt_
|
||||
|
||||
```
|
||||
.\experimental-ports\sqlite3
|
||||
C:\custom-ports
|
||||
\\share\team\custom-ports
|
||||
\\share\org\custom-ports
|
||||
```
|
||||
*Relative paths inside this file are resolved relatively to the file's location. In this case a `experimental-ports` directory should exist at the same level as the `port-repos.txt` file.*
|
||||
|
||||
_NOTE: It is not the goal of this document to discuss library versioning or project dependency management solutions, which require the ability to install multiple versions of a same library side-by-side._
|
||||
|
||||
### Multiple additional paths
|
||||
|
||||
Users can provide multiple additional paths by repeating the `--overlay-ports` option.
|
||||
|
||||
```
|
||||
vcpkg install sqlite3
|
||||
--overlay-ports="..\experimental-ports\sqlite3"
|
||||
--overlay-ports="C:\custom-ports"
|
||||
--overlay-ports="\\share\team\custom-ports
|
||||
```
|
||||
|
||||
### Overlaying ports
|
||||
|
||||
Port name resolution follows the order in which additional paths are specified, with the first match being selected for installation, and falling back to `<vcpkg-root>/ports` if the port is not found in any of the additional paths.
|
||||
|
||||
No effort is made to compare version numbers inside the `CONTROL` files, or to determine which port contains newer or older files.
|
||||
|
||||
### Examples
|
||||
|
||||
Given the following directory structure:
|
||||
|
||||
```
|
||||
team-ports/
|
||||
|-- sqlite3/
|
||||
|---- CONTROL
|
||||
|-- rapidjson/
|
||||
|---- CONTROL
|
||||
|-- curl/
|
||||
|---- CONTROL
|
||||
|
||||
my-ports/
|
||||
|-- sqlite3/
|
||||
|---- CONTROL
|
||||
|-- rapidjson/
|
||||
|---- CONTROL
|
||||
|
||||
vcpkg
|
||||
|-- ports/
|
||||
|---- <upstream ports>
|
||||
|-- vcpkg.exe
|
||||
|-- preferred-ports.txt
|
||||
```
|
||||
* #### Example #1:
|
||||
|
||||
Running:
|
||||
|
||||
```
|
||||
vcpkg/vcpkg.exe install sqlite3 --overlay-ports=my-ports --overlay-ports=team-ports
|
||||
```
|
||||
|
||||
Results in `my-ports/sqlite3` getting installed as that location appears first in the command line arguments.
|
||||
|
||||
* #### Example #2:
|
||||
|
||||
A specific version of a port can be given priority by adding its path first in the list of arguments:
|
||||
|
||||
```
|
||||
vcpkg/vcpkg.exe install sqlite3 rapidjson curl
|
||||
--overlay-ports=my-ports/rapidjson
|
||||
--overlay-ports=vcpkg/ports/curl
|
||||
--overlay-ports=team-ports
|
||||
```
|
||||
|
||||
Installs:
|
||||
* `sqlite3` from `team-ports/sqlite3`
|
||||
* `rapidjson` from `my-ports/rapidjson`
|
||||
* `curl` from `vcpkg/ports/curl`
|
||||
|
||||
* #### Example #3:
|
||||
|
||||
> NOTE: Reading paths from a text file is not available in the current implementation, some revisions to this part of the specification are being made and will be implemented in a future date.
|
||||
|
||||
Given the content of `preferred-ports.txt` as:
|
||||
|
||||
```
|
||||
./ports/curl
|
||||
/my-ports/rapidjson
|
||||
/team-ports
|
||||
```
|
||||
|
||||
A location can be appended or prepended to those included in `preferred-ports.txt` via the command line, like this:
|
||||
|
||||
```
|
||||
vcpkg/vcpkg.exe install sqlite3 curl --overlay-ports=my-ports --overlay-ports=vcpkg/preferred-ports.txt
|
||||
```
|
||||
|
||||
Which results in `my-ports/sqlite3` and `vcpkg/ports/curl` getting installed.
|
||||
|
||||
|
||||
## 4. Proposed User experience
|
||||
|
||||
### i. User wants to preserve an older version of a port
|
||||
|
||||
Developer Alice and her team use `vcpkg` to acquire **OpenCV** and some other packages. She has even contributed many patches to add features to the **OpenCV 3** port in `vcpkg`. But, one day, she notices that a PR to update **OpenCV** to the next major version has been merged.
|
||||
|
||||
Alice wants to update some packages available in `vcpkg`. Unfortunately, updating her project to use the latest **OpenCV** is not immediately possible.
|
||||
|
||||
Alice creates a private GitHub repository and checks in the set of ports that she wants to preserve. Then provides her teammates with the link to clone her private ports repository.
|
||||
|
||||
```
|
||||
mkdir vcpkg-custom-ports
|
||||
cd vcpkg-custom-ports
|
||||
git init
|
||||
cp -r %VCPKG_ROOT%/ports/opencv .
|
||||
git add .
|
||||
git commit -m "[opencv] Add OpenCV 3 port"
|
||||
git remote add origin https://github.com/<Alice's GitHub username>/vcpkg-custom-ports.git
|
||||
git push -u origin master
|
||||
```
|
||||
|
||||
Now her team is able to use:
|
||||
|
||||
```
|
||||
git clone https://github.com/<Alice's GitHub username>/vcpkg-custom-ports.git
|
||||
vcpkg update --overlay-ports=./vcpkg-custom-ports
|
||||
vcpkg upgrade --no-dry-run --overlay-ports=./vcpkg-custom-ports
|
||||
```
|
||||
|
||||
to upgrade their packages and preserve the old version of **OpenCV** they require.
|
@ -1,5 +1,6 @@
|
||||
Source: abseil
|
||||
Version: 2019-05-08
|
||||
Homepage: https://github.com/abseil/abseil-cpp
|
||||
Description: an open-source collection designed to augment the C++ standard library.
|
||||
Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.
|
||||
In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you.
|
||||
|
@ -1,5 +1,6 @@
|
||||
Source: ace
|
||||
Version: 6.5.5-1
|
||||
Homepage: https://www.dre.vanderbilt.edu/~schmidt/ACE.html
|
||||
Description: The ADAPTIVE Communication Environment
|
||||
|
||||
Feature: wchar
|
||||
|
@ -1,3 +1,4 @@
|
||||
Source: alac-decoder
|
||||
Version: 0.2-1
|
||||
Homepage: https://distfiles.macports.org/alac_decoder
|
||||
Description: ALAC C implementation of a decoder, written from reverse engineering the file format
|
||||
|
@ -1,3 +1,4 @@
|
||||
Source: alac
|
||||
Version: 2017-11-03-c38887c5-1
|
||||
Homepage: https://github.com/macosforge/alac
|
||||
Description: The Apple Lossless Audio Codec (ALAC) is a lossless audio codec developed by Apple and deployed on all of its platforms and devices.
|
||||
|
@ -1,5 +1,5 @@
|
||||
Source: alembic
|
||||
Version: 1.7.11
|
||||
Version: 1.7.11-2
|
||||
Build-Depends: ilmbase, hdf5
|
||||
Description: Alembic is an open framework for storing and sharing scene data that includes a C++ library, a file format, and client plugins and applications.
|
||||
Homepage: http://alembic.io/
|
||||
Homepage: https://alembic.io/
|
||||
|
@ -2,7 +2,7 @@ include(vcpkg_common_functions)
|
||||
|
||||
string(LENGTH "${CURRENT_BUILDTREES_DIR}" BUILDTREES_PATH_LENGTH)
|
||||
if(BUILDTREES_PATH_LENGTH GREATER 37 AND CMAKE_HOST_WIN32)
|
||||
message(WARNING "Alembic's buildsystem uses very long paths and may fail on your system.\n"
|
||||
message(WARNING "${PORT}'s buildsystem uses very long paths and may fail on your system.\n"
|
||||
"We recommend moving vcpkg to a short path such as 'C:\\src\\vcpkg' or using the subst command."
|
||||
)
|
||||
endif()
|
||||
@ -30,7 +30,7 @@ vcpkg_configure_cmake(
|
||||
|
||||
vcpkg_install_cmake()
|
||||
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/Alembic")
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/Alembic)
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
Source: allegro5
|
||||
Version: 5.2.5.0
|
||||
Homepage: https://github.com/liballeg/allegro5
|
||||
Description: Allegro is a cross-platform library mainly aimed at video game and multimedia programming. It handles common, low-level tasks such as creating windows, accepting user input, loading data, drawing images, playing sounds, etc. and generally abstracting away the underlying platform. However, Allegro is not a game engine: you are free to design and structure your program as you like.
|
||||
Build-Depends: opengl, zlib, freetype, libogg, libvorbis, libflac, openal-soft, libpng, bzip2, physfs, libtheora, opus, opusfile
|
||||
|
@ -1,44 +1,29 @@
|
||||
# Common Ambient Variables:
|
||||
# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
|
||||
# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
|
||||
# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT}
|
||||
# PORT = current port name (zlib, etc)
|
||||
# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc)
|
||||
# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic)
|
||||
# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic)
|
||||
# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
|
||||
# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm)
|
||||
#
|
||||
|
||||
include(vcpkg_common_functions)
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO liballeg/allegro5
|
||||
REF 5.2.5.0
|
||||
SHA512 9b97a46f0fd146c3958a5f8333822665ae06b984b3dbedc1356afdac8fe3248203347cb08b30ebda049a7320948c7844e9d00dc055c317836c2557b5bfc2ab04
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
fix-pdb-install.patch
|
||||
)
|
||||
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
||||
set(ALLEGRO_USE_STATIC ON)
|
||||
set(VCPKG_BUILD_SHARED_LIBS ON)
|
||||
else()
|
||||
set(ALLEGRO_USE_STATIC OFF)
|
||||
set(VCPKG_BUILD_SHARED_LIBS OFF)
|
||||
endif()
|
||||
|
||||
vcpkg_apply_patches(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PATCHES
|
||||
${CMAKE_CURRENT_LIST_DIR}/fix-pdb-install.patch
|
||||
)
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA # Disable this option if project cannot be built with Ninja
|
||||
PREFER_NINJA
|
||||
OPTIONS
|
||||
-DWANT_DOCS=OFF
|
||||
-DALLEGRO_SDL=OFF
|
||||
-DWANT_DEMO=OFF
|
||||
-DSHARED=${ALLEGRO_USE_STATIC}
|
||||
-DSHARED=${VCPKG_BUILD_SHARED_LIBS}
|
||||
-DWANT_EXAMPLES=OFF
|
||||
-DWANT_CURL_EXAMPLE=OFF
|
||||
-DWANT_TESTS=OFF
|
||||
@ -81,14 +66,11 @@ vcpkg_configure_cmake(
|
||||
|
||||
vcpkg_install_cmake()
|
||||
|
||||
# Handle copyright
|
||||
file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/allegro5)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/share/allegro5/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/allegro5/copyright)
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
|
||||
file(GLOB PDB_GLOB ${CURRENT_BUILDTREES_DIR}-dbg/lib/*.pdb)
|
||||
file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}-dbg/lib/Debug)
|
||||
file(COPY ${PDB_GLOB} DESTINATION ${CURRENT_BUILDTREES_DIR}-dbg/lib/Debug)
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/allegro5 RENAME copyright)
|
||||
|
@ -1,3 +1,3 @@
|
||||
Source: angelscript
|
||||
Version: 2.33.0
|
||||
Version: 2.33.0-1
|
||||
Description: The AngelCode Scripting Library, or AngelScript as it is also known, is an extremely flexible cross-platform scripting library designed to allow applications to extend their functionality through external scripts. It has been designed from the beginning to be an easy to use component, both for the application programmer and the script writer.
|
||||
|
@ -1,15 +1,3 @@
|
||||
# Common Ambient Variables:
|
||||
# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
|
||||
# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
|
||||
# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT}
|
||||
# PORT = current port name (zlib, etc)
|
||||
# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc)
|
||||
# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic)
|
||||
# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic)
|
||||
# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
|
||||
# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm)
|
||||
#
|
||||
|
||||
include(vcpkg_common_functions)
|
||||
|
||||
vcpkg_download_distfile(ARCHIVE
|
||||
@ -21,13 +9,8 @@ vcpkg_download_distfile(ARCHIVE
|
||||
vcpkg_extract_source_archive_ex(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
ARCHIVE ${ARCHIVE}
|
||||
# (Optional) A friendly name to use instead of the filename of the archive (e.g.: a version number or tag).
|
||||
# REF 1.0.0
|
||||
# (Optional) Read the docs for how to generate patches at:
|
||||
# https://github.com/Microsoft/vcpkg/blob/master/docs/examples/patching.md
|
||||
PATCHES
|
||||
mark-threads-private.patch
|
||||
# 002_more_port_fixes.patch
|
||||
)
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
@ -41,10 +24,7 @@ vcpkg_configure_cmake(
|
||||
vcpkg_install_cmake()
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/Angelscript")
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/Angelscript)
|
||||
|
||||
# Handle copyright
|
||||
file(INSTALL ${CURRENT_PORT_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/angelscript RENAME copyright)
|
||||
|
||||
# Post-build test for cmake libraries
|
||||
# vcpkg_test_cmake(PACKAGE_NAME angelscript)
|
||||
|
@ -42,11 +42,11 @@ include_directories(include src ${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||
##########
|
||||
# angle::common
|
||||
if(WIN32)
|
||||
set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_mac|_posix")
|
||||
set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_mac|_posix|android_")
|
||||
elseif(LINUX)
|
||||
set(ANGLE_COMMON_PLATFORM_FILTER "_win|_mac")
|
||||
set(ANGLE_COMMON_PLATFORM_FILTER "_win|_mac|android_")
|
||||
elseif(APPLE)
|
||||
set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_win")
|
||||
set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_win|android_")
|
||||
endif()
|
||||
file(GLOB ANGLE_COMMON_SOURCES
|
||||
"src/common/*.h"
|
||||
@ -191,6 +191,32 @@ if(WIN32)
|
||||
add_library(angle::renderer::d3d ALIAS angle_renderer_d3d)
|
||||
endif()
|
||||
|
||||
## angle::gpu_info_util
|
||||
file(GLOB ANGLE_GPU_INFO_UTIL_SOURCES
|
||||
"src/gpu_info_util/SystemInfo.h"
|
||||
"src/gpu_info_util/SystemInfo_internal.h"
|
||||
"src/gpu_info_util/SystemInfo.cpp"
|
||||
)
|
||||
add_library(angle_gpu_info_util STATIC ${ANGLE_GPU_INFO_UTIL_SOURCES})
|
||||
if(WIN32)
|
||||
target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_win.cpp")
|
||||
target_link_libraries(angle_gpu_info_util PRIVATE setupapi.lib dxgi.lib)
|
||||
elseif(APPLE)
|
||||
target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_mac.mm")
|
||||
find_library(IOKit IOKit)
|
||||
find_library(CoreFoundation CoreFoundation)
|
||||
find_library(CoreGraphics CoreGraphics)
|
||||
target_link_libraries(angle_gpu_info_util PRIVATE ${IOKit} ${CoreFoundation} ${CoreGraphics})
|
||||
elseif(LINUX)
|
||||
target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_linux.cpp" "src/gpu_info_util/SystemInfo_x11.cpp")
|
||||
target_compile_definitions(angle_gpu_info_util PRIVATE GPU_INFO_USE_X11)
|
||||
target_link_libraries(angle_gpu_info_util PRIVATE X11 Xi Xext)
|
||||
elseif(ANDROID)
|
||||
target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_android.cpp")
|
||||
endif()
|
||||
target_link_libraries(angle_gpu_info_util PRIVATE angle::common)
|
||||
add_library(angle::gpu_info_util ALIAS angle_gpu_info_util)
|
||||
|
||||
## Core libANGLE library
|
||||
if(WIN32)
|
||||
set(LIBANGLE_SOURCES_PLATFORM
|
||||
@ -252,6 +278,7 @@ add_library(libANGLE STATIC ${LIBANGLE_SOURCES})
|
||||
target_link_libraries(libANGLE PRIVATE
|
||||
angle::common
|
||||
angle::image_util
|
||||
angle::gpu_info_util
|
||||
angle::translator
|
||||
angle::preprocessor
|
||||
${LIBANGLE_RENDERER_PLATFORM}
|
||||
|
@ -1,5 +1,6 @@
|
||||
Source: angle
|
||||
Version: 2019-03-13-c2ee2cc-3
|
||||
Version: 2019-06-13
|
||||
Homepage: https://github.com/google/angle
|
||||
Description: A conformant OpenGL ES implementation for Windows, Mac and Linux.
|
||||
The goal of ANGLE is to allow users of multiple operating systems to seamlessly run WebGL and other OpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs available for that platform. ANGLE currently provides translation from OpenGL ES 2.0 and 3.0 to desktop OpenGL, OpenGL ES, Direct3D 9, and Direct3D 11. Support for translation from OpenGL ES to Vulkan is underway, and future plans include compute shader support (ES 3.1) and MacOS support.
|
||||
Build-Depends: egl-registry
|
||||
|
@ -15,8 +15,8 @@ endif()
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO google/angle
|
||||
REF chromium/3672
|
||||
SHA512 dd6a05f0f1f4544b8646c41ffcb4d5e3b41f5261771ada47889345a24d4e55e6370df55a26c354a7073efcde307644cec6c6064ea6fe498ed6b52c3017249f81
|
||||
REF 0d3cf7085c8e953e78d4fa0656b26ee93d005452
|
||||
SHA512 91550749933e278a72ae1094178ea28b36ee2b2fa553549477596ee772d1a39653386b3f3a9f168b0840a1511b7d31384b4e2d53cd5b5629028ca9c5a18a9288
|
||||
PATCHES
|
||||
001-fix-uwp.patch
|
||||
)
|
||||
|
@ -1,4 +1,5 @@
|
||||
Source: antlr4
|
||||
Version: 4.7.1-3
|
||||
Homepage: https://www.antlr.org
|
||||
Description: ANother Tool for Language Recognition
|
||||
Build-Depends: libuuid (!uwp&!windows&!osx)
|
@ -1,4 +1,5 @@
|
||||
Source: apr-util
|
||||
Version: 1.6.0-3
|
||||
Homepage: https://apr.apache.org/
|
||||
Description: Apache Portable Runtime (APR) project mission is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementation
|
||||
Build-Depends: expat, apr, openssl
|
||||
|
@ -1,5 +1,6 @@
|
||||
Source: apr
|
||||
Version: 1.6.5-1
|
||||
Homepage: https://apr.apache.org/
|
||||
Description: The Apache Portable Runtime (APR) is a C library that forms a system portability layer that covers many operating systems.
|
||||
|
||||
Feature: private-headers
|
||||
|
@ -1,4 +1,5 @@
|
||||
Source: arb
|
||||
Version: 2.16.0
|
||||
Homepage: https://github.com/fredrik-johansson/arb
|
||||
Description: a C library for arbitrary-precision interval arithmetic
|
||||
Build-Depends: flint
|
||||
|
4
ports/argparse/CONTROL
Normal file
4
ports/argparse/CONTROL
Normal file
@ -0,0 +1,4 @@
|
||||
Source: argparse
|
||||
Version: 2019-06-10
|
||||
Description: Argument parser for modern C++
|
||||
Homepage: https://github.com/p-ranav/argparse
|
30
ports/argparse/portfile.cmake
Normal file
30
ports/argparse/portfile.cmake
Normal file
@ -0,0 +1,30 @@
|
||||
# header-only library
|
||||
|
||||
include(vcpkg_common_functions)
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO p-ranav/argparse
|
||||
REF 2c71311b5fa49b7d65e6628375f2748d58830856
|
||||
SHA512 08a28a3fb424befe7df9a428fbad8e2687a1b331d7099bfaca2c3e04d8d4b4888e99d481226407bf90bfce282388545b09e4125128215cc95dc56fb313641bf6
|
||||
HEAD_REF master
|
||||
)
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS
|
||||
-DARGPARSE_BUILD_TESTS=OFF
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT})
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/lib)
|
||||
|
||||
# Handle copyright
|
||||
configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
|
||||
|
||||
# CMake integration test
|
||||
vcpkg_test_cmake(PACKAGE_NAME ${PORT})
|
@ -1,3 +1,4 @@
|
||||
Source: args
|
||||
Version: 2019-05-01
|
||||
Homepage: https://github.com/Taywee/args
|
||||
Description: A simple header-only C++ argument parser library.
|
||||
|
@ -1,4 +1,4 @@
|
||||
Source: armadillo
|
||||
Version: 2019-04-16-1
|
||||
Version: 2019-04-16-3
|
||||
Description: Armadillo is a high quality linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use
|
||||
Build-Depends: openblas (!osx), clapack (!osx)
|
||||
|
@ -25,11 +25,12 @@ vcpkg_configure_cmake(
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH share/armadillo/CMake TARGET_PATH share/armadillo)
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH share/Armadillo/CMake)
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/Armadillo)
|
||||
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/armadillo RENAME copyright)
|
||||
|
@ -1,4 +1,5 @@
|
||||
Source: arrow
|
||||
Version: 0.13.0-3
|
||||
Version: 0.13.0-4
|
||||
Build-Depends: boost-system, boost-filesystem, boost-multiprecision, boost-algorithm, flatbuffers, rapidjson, zlib, lz4, brotli, zstd, snappy, gflags, thrift, double-conversion, glog, uriparser
|
||||
Homepage: https://github.com/apache/arrow
|
||||
Description: Apache Arrow is a columnar in-memory analytics layer designed to accelerate big data. It houses a set of canonical in-memory representations of flat and hierarchical data along with multiple language-bindings for structure manipulation. It also provides IPC and common algorithm implementations.
|
||||
|
@ -11,11 +11,12 @@ index 21b4981ec..818e4b5e1 100644
|
||||
-endif()
|
||||
-
|
||||
+set(ZSTD_LIB_NAME_DEBUG_SUFFIX d)
|
||||
set(ZSTD_STATIC_LIB_SUFFIX "${ZSTD_MSVC_STATIC_LIB_SUFFIX}${ZSTD_LIB_NAME_DEBUG_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
-set(ZSTD_STATIC_LIB_SUFFIX "${ZSTD_MSVC_STATIC_LIB_SUFFIX}${ZSTD_LIB_NAME_DEBUG_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
+set(ZSTD_STATIC_LIB_SUFFIX "${ZSTD_MSVC_STATIC_LIB_SUFFIX}")
|
||||
set(ZSTD_STATIC_LIB_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}zstd${ZSTD_STATIC_LIB_SUFFIX})
|
||||
|
||||
+set(ZSTD_LIB_NAMES_RELEASE zstd "${ZSTD_STATIC_LIB_NAME}" "lib${ZSTD_STATIC_LIB_NAME}"
|
||||
+ "${CMAKE_SHARED_LIBRARY_PREFIX}zstd${ZSTD_LIB_NAME_DEBUG_SUFFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||
+set(ZSTD_LIB_NAMES_RELEASE zstd "${ZSTD_STATIC_LIB_NAME}"
|
||||
+ "${CMAKE_SHARED_LIBRARY_PREFIX}zstd")
|
||||
+set(ZSTD_LIB_NAMES_DEBUG)
|
||||
+foreach(_zstd_name ${ZSTD_LIB_NAMES_RELEASE})
|
||||
+ list(APPEND ZSTD_LIB_NAMES_DEBUG ${_zstd_name}${ZSTD_LIB_NAME_DEBUG_SUFFIX})
|
||||
|
@ -42,7 +42,7 @@ if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/arrow_static.lib)
|
||||
message(FATAL_ERROR "Installed lib file should be named 'arrow.lib' via patching the upstream build.")
|
||||
endif()
|
||||
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/arrow TARGET_PATH share/arrow)
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/arrow)
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake)
|
||||
|
@ -3,11 +3,6 @@ project(asio)
|
||||
|
||||
add_library(asio INTERFACE)
|
||||
|
||||
# Always use "ASIO_STANDALONE" to avoid boost dependency
|
||||
file(READ "asio/include/asio/detail/config.hpp" _contents)
|
||||
string(REPLACE "defined(ASIO_STANDALONE)" "!defined(VCPKG_DISABLE_ASIO_STANDALONE)" _contents "${_contents}")
|
||||
file(WRITE "asio/include/asio/detail/config.hpp" "${_contents}")
|
||||
|
||||
# Export target
|
||||
install(TARGETS asio
|
||||
EXPORT asio
|
||||
|
@ -1,3 +1,4 @@
|
||||
Source: asio
|
||||
Version: 1.12.2-1
|
||||
Version: 1.12.2-2
|
||||
Homepage: https://github.com/chriskohlhoff/asio
|
||||
Description: Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach.
|
||||
|
@ -9,6 +9,11 @@ vcpkg_from_github(
|
||||
HEAD_REF master
|
||||
)
|
||||
|
||||
# Always use "ASIO_STANDALONE" to avoid boost dependency
|
||||
file(READ "${SOURCE_PATH}/asio/include/asio/detail/config.hpp" _contents)
|
||||
string(REPLACE "defined(ASIO_STANDALONE)" "!defined(VCPKG_DISABLE_ASIO_STANDALONE)" _contents "${_contents}")
|
||||
file(WRITE "${SOURCE_PATH}/asio/include/asio/detail/config.hpp" "${_contents}")
|
||||
|
||||
# CMake install
|
||||
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
|
||||
vcpkg_configure_cmake(
|
||||
|
@ -1,3 +1,4 @@
|
||||
Source: asmjit
|
||||
Version: 2019-03-29
|
||||
Homepage: https://github.com/asmjit/asmjit
|
||||
Description: Complete x86/x64 JIT and Remote Assembler for C++
|
||||
|
@ -1,4 +1,5 @@
|
||||
Source: assimp
|
||||
Version: 4.1.0-5
|
||||
Version: 4.1.0-8
|
||||
Homepage: https://github.com/assimp/assimp
|
||||
Description: The Open Asset import library
|
||||
Build-Depends: zlib, rapidjson
|
||||
|
@ -18,13 +18,19 @@ file(REMOVE_RECURSE ${SOURCE_PATH}/contrib/zlib ${SOURCE_PATH}/contrib/gtest ${S
|
||||
set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
|
||||
set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
|
||||
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
||||
set(VCPKG_BUILD_SHARED_LIBS ON)
|
||||
else()
|
||||
set(VCPKG_BUILD_SHARED_LIBS OFF)
|
||||
endif()
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS -DASSIMP_BUILD_TESTS=OFF
|
||||
-DASSIMP_BUILD_ASSIMP_VIEW=OFF
|
||||
-DASSIMP_BUILD_ZLIB=OFF
|
||||
-DASSIMP_BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
|
||||
-DASSIMP_BUILD_SHARED_LIBS=${VCPKG_BUILD_SHARED_LIBS}
|
||||
-DASSIMP_BUILD_ASSIMP_TOOLS=OFF
|
||||
-DASSIMP_INSTALL_PDB=OFF
|
||||
#-DSYSTEM_IRRXML=ON # Wait for the built-in irrxml to synchronize with port irrlich, add dependencies and enable this macro
|
||||
@ -32,7 +38,9 @@ vcpkg_configure_cmake(
|
||||
|
||||
vcpkg_install_cmake()
|
||||
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/assimp-4.1")
|
||||
FILE(GLOB lib_cmake_directories RELATIVE "${CURRENT_PACKAGES_DIR}" "${CURRENT_PACKAGES_DIR}/lib/cmake/assimp-*")
|
||||
list(GET lib_cmake_directories 0 lib_cmake_directory)
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH "${lib_cmake_directory}")
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
@ -44,7 +52,7 @@ file(READ ${CURRENT_PACKAGES_DIR}/share/assimp/assimp-config.cmake ASSIMP_CONFIG
|
||||
string(REPLACE "get_filename_component(ASSIMP_ROOT_DIR \"\${_PREFIX}\" PATH)"
|
||||
"set(ASSIMP_ROOT_DIR \${_PREFIX})" ASSIMP_CONFIG ${ASSIMP_CONFIG})
|
||||
|
||||
if(WIN32)
|
||||
if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
||||
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
|
||||
string(REPLACE "set( ASSIMP_LIBRARIES \${ASSIMP_LIBRARIES})"
|
||||
"set( ASSIMP_LIBRARIES optimized \${ASSIMP_LIBRARY_DIRS}/\${ASSIMP_LIBRARIES}.lib debug \${ASSIMP_LIBRARY_DIRS}/../debug/lib/\${ASSIMP_LIBRARIES}d.lib)" ASSIMP_CONFIG ${ASSIMP_CONFIG})
|
||||
|
@ -1,4 +1,5 @@
|
||||
Source: atk
|
||||
Version: 2.24.0-3
|
||||
Homepage: https://developer.gnome.org/atk/
|
||||
Description: GNOME Accessibility Toolkit
|
||||
Build-Depends: glib, gettext
|
||||
|
@ -1,4 +1,5 @@
|
||||
Source: atkmm
|
||||
Version: 2.24.2-1
|
||||
Homepage: https://www.gtkmm.org
|
||||
Description: atkmm is the official C++ interface for the ATK accessibility toolkit library. It may be used, for instance, by user interfaces implemented with gtkmm.
|
||||
Build-Depends: glib, gettext, atk, glibmm
|
||||
|
@ -1,4 +1,5 @@
|
||||
Source: aubio
|
||||
Version: 0.4.9
|
||||
Homepage: https://github.com/aubio/aubio
|
||||
Description: Aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio.
|
||||
Build-Depends: ffmpeg, libsndfile, libogg, libflac, libvorbis, bzip2, liblzma
|
||||
|
@ -1,3 +1,4 @@
|
||||
Source: aurora
|
||||
Version: 2017-06-21-c75699d2a8caa726260c29b6d7a0fd35f8f28933
|
||||
Homepage: https://github.com/Bromeon/Aurora
|
||||
Description: Aurora is an open-source C++ library providing various rather uncommon C++ utilities
|
||||
|
@ -1,4 +1,5 @@
|
||||
Source: avro-c
|
||||
Version: 1.8.2-2
|
||||
Homepage: https://github.com/apache/avro
|
||||
Description: Apache Avro is a data serialization system
|
||||
Build-Depends: jansson, liblzma, zlib
|
||||
|
@ -2,7 +2,7 @@ include(vcpkg_common_functions)
|
||||
|
||||
string(LENGTH "${CURRENT_BUILDTREES_DIR}" BUILDTREES_PATH_LENGTH)
|
||||
if(BUILDTREES_PATH_LENGTH GREATER 37 AND CMAKE_HOST_WIN32)
|
||||
message(WARNING "Avro-c's buildsystem uses very long paths and may fail on your system.\n"
|
||||
message(WARNING "${PORT}'s buildsystem uses very long paths and may fail on your system.\n"
|
||||
"We recommend moving vcpkg to a short path such as 'C:\\src\\vcpkg' or using the subst command."
|
||||
)
|
||||
endif()
|
||||
|
@ -1,3 +1,3 @@
|
||||
Source: aws-c-common
|
||||
Version: 0.3.11
|
||||
Version: 0.3.11-1
|
||||
Description: AWS common library for C
|
@ -19,7 +19,7 @@ vcpkg_configure_cmake(
|
||||
vcpkg_install_cmake()
|
||||
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/aws-c-common/cmake)
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake TARGET_PATH share/cmake)
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake)
|
||||
|
||||
file(REMOVE_RECURSE
|
||||
${CURRENT_PACKAGES_DIR}/debug/include
|
||||
|
@ -12,7 +12,7 @@ vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS
|
||||
"-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/cmake"
|
||||
"-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common"
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
|
@ -1,5 +1,6 @@
|
||||
Source: aws-sdk-cpp
|
||||
Version: 1.7.106
|
||||
Version: 1.7.116
|
||||
Homepage: https://github.com/aws/aws-sdk-cpp
|
||||
Description: AWS SDK for C++
|
||||
Build-Depends: openssl (!uwp&!windows), curl (!uwp&!windows), aws-c-event-stream
|
||||
Default-Features: dynamodb, s3, kinesis
|
||||
|
@ -2,7 +2,7 @@ include(vcpkg_common_functions)
|
||||
|
||||
string(LENGTH "${CURRENT_BUILDTREES_DIR}" BUILDTREES_PATH_LENGTH)
|
||||
if(BUILDTREES_PATH_LENGTH GREATER 37 AND CMAKE_HOST_WIN32)
|
||||
message(WARNING "Aws-sdk-cpp's buildsystem uses very long paths and may fail on your system.\n"
|
||||
message(WARNING "${PORT}'s buildsystem uses very long paths and may fail on your system.\n"
|
||||
"We recommend moving vcpkg to a short path such as 'C:\\src\\vcpkg' or using the subst command."
|
||||
)
|
||||
endif()
|
||||
@ -10,8 +10,8 @@ endif()
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO aws/aws-sdk-cpp
|
||||
REF 1.7.106
|
||||
SHA512 58b03f25468ee5c57c47cf92fe6e1d9228754464af83a1253fdd14f2a6dabb6f5f49f1f003597c29cd1ce96649afae0560953d1f1d2c478c575b0d4c0f918635
|
||||
REF 1.7.116
|
||||
SHA512 2d10aebf1c10bb7e7a0efa1fd930b8743d9bce1d7d36f72c55fd13612be4fd30cf0a67ebe4f8d7c05146306084b10d8657ff26ac3bafaaa9efaa4c67707acb49
|
||||
HEAD_REF master
|
||||
)
|
||||
|
||||
|
@ -3,4 +3,4 @@ Version: 6.1.0
|
||||
Build-Depends: cpprestsdk[core], atlmfc (windows), boost-log (!windows&!uwp), boost-locale (!windows&!uwp), libxml2 (!windows&!uwp), libuuid (!windows&!uwp&!osx), gettext
|
||||
Description: Microsoft Azure Storage Client SDK for C++
|
||||
A client library for working with Microsoft Azure storage services including blobs, files, tables, and queues. This client library enables working with the Microsoft Azure storage services which include the blob service for storing binary and text data, the file service for storing binary and text data, the table service for storing structured non-relational data, and the queue service for storing messages that may be accessed by a client.
|
||||
Homepage: http://blogs.msdn.com/b/windowsazurestorage/
|
||||
Homepage: https://blogs.msdn.com/b/windowsazurestorage/
|
||||
|
@ -1,3 +1,4 @@
|
||||
Source: benchmark
|
||||
Version: 1.5
|
||||
Homepage: https://github.com/google/benchmark
|
||||
Description: A library to support the benchmarking of functions, similar to unit-tests.
|
||||
|
@ -1,3 +1,4 @@
|
||||
Source: berkeleydb
|
||||
Version: 4.8.30-2
|
||||
Homepage: https://download.oracle.com/
|
||||
Description: BDB - A high-performance embedded database for key/value data.
|
||||
|
@ -1,3 +1,4 @@
|
||||
Source: bigint
|
||||
Version: 2010.04.30-3
|
||||
Homepage: https://mattmccutchen.net/bigint
|
||||
Description: C++ Big Integer Library
|
||||
|
@ -1,4 +1,5 @@
|
||||
Source: blaze
|
||||
Version: 3.5
|
||||
Build-Depends: clapack (!osx), boost-exception
|
||||
Homepage: https://bitbucket.org/blaze-lib/blaze
|
||||
Description: Blaze is an open-source, high-performance C++ math library for dense and sparse arithmetic.
|
||||
|
@ -1,4 +1,5 @@
|
||||
Source: blosc
|
||||
Version: 1.16.3
|
||||
Version: 1.16.3-1
|
||||
Build-Depends: lz4, snappy, zlib, zstd
|
||||
Homepage: https://github.com/Blosc/c-blosc
|
||||
Description: A blocking, shuffling and loss-less compression library that can be faster than `memcpy()`
|
||||
|
@ -32,15 +32,17 @@ vcpkg_configure_cmake(
|
||||
|
||||
vcpkg_install_cmake()
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
if (BLOSC_SHARED)
|
||||
vcpkg_copy_pdbs()
|
||||
if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/blosc.dll")
|
||||
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
|
||||
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
|
||||
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/blosc.dll ${CURRENT_PACKAGES_DIR}/debug/bin/blosc.dll)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/blosc.dll ${CURRENT_PACKAGES_DIR}/bin/blosc.dll)
|
||||
endif()
|
||||
if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/blosc.dll")
|
||||
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/blosc.dll ${CURRENT_PACKAGES_DIR}/debug/bin/blosc.dll)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# cleanup
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
|
@ -1,12 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index fe0f629e..54b6d8ec 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -49,7 +49,6 @@ install (DIRECTORY
|
||||
cpp/inc/bond
|
||||
cpp/generated/bond
|
||||
python/inc/bond
|
||||
- thirdparty/rapidjson/include/rapidjson
|
||||
DESTINATION include
|
||||
PATTERN *.cpp EXCLUDE)
|
||||
|
@ -1,6 +1,6 @@
|
||||
Source: bond
|
||||
Maintainer: bond@microsoft.com
|
||||
Version: 7.0.2-2
|
||||
Version: 8.1.0
|
||||
Description: Bond is a cross-platform framework for working with schematized data. It supports cross-language de/serialization and powerful generic mechanisms for efficiently manipulating data. Bond is broadly used at Microsoft in high scale services.
|
||||
Homepage: https://github.com/Microsoft/bond
|
||||
Build-Depends: rapidjson, boost-config, boost-utility, boost-assign
|
||||
|
56
ports/bond/fix-install-path.patch
Normal file
56
ports/bond/fix-install-path.patch
Normal file
@ -0,0 +1,56 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index f2f8eaa..1b0c01c 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -18,7 +18,7 @@ set (BOND_FIND_RAPIDJSON
|
||||
# settings so that we don't apply our settings to third-party code.
|
||||
add_subdirectory (thirdparty)
|
||||
|
||||
-enable_testing()
|
||||
+#enable_testing()
|
||||
|
||||
set (BOND_IDL ${CMAKE_CURRENT_SOURCE_DIR}/idl)
|
||||
set (BOND_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/cpp/inc)
|
||||
@@ -80,6 +80,6 @@ if (BOND_GBC_PATH)
|
||||
|
||||
install (
|
||||
FILES ${BOND_GBC_PATH}
|
||||
- DESTINATION bin
|
||||
+ DESTINATION tools
|
||||
RENAME ${INSTALLED_GBC_NAME})
|
||||
endif()
|
||||
diff --git a/compiler/CMakeLists.txt b/compiler/CMakeLists.txt
|
||||
index 1dff9d0..9a11575 100644
|
||||
--- a/compiler/CMakeLists.txt
|
||||
+++ b/compiler/CMakeLists.txt
|
||||
@@ -108,7 +108,7 @@ set (test_sources
|
||||
tests/TestMain.hs
|
||||
${tests})
|
||||
|
||||
-set (completion_dir etc/bash_completion.d)
|
||||
+set (completion_dir tools/bond)
|
||||
set (completion ${CMAKE_CURRENT_BINARY_DIR}/gbc.comp)
|
||||
set (output ${CMAKE_CURRENT_BINARY_DIR}/build/gbc/gbc${CMAKE_EXECUTABLE_SUFFIX})
|
||||
set (GBC_EXECUTABLE ${output} PARENT_SCOPE)
|
||||
@@ -130,7 +130,7 @@ endif()
|
||||
|
||||
install (FILES ${output}
|
||||
PERMISSIONS OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE
|
||||
- DESTINATION bin)
|
||||
+ DESTINATION ${completion_dir})
|
||||
|
||||
install (FILES ${completion}
|
||||
RENAME gbc
|
||||
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
|
||||
index b45078e..1eebe9c 100644
|
||||
--- a/cpp/CMakeLists.txt
|
||||
+++ b/cpp/CMakeLists.txt
|
||||
@@ -110,7 +110,7 @@ target_include_directories (bond_apply BEFORE PRIVATE
|
||||
|
||||
install (TARGETS bond bond_apply
|
||||
EXPORT bond
|
||||
- ARCHIVE DESTINATION lib/bond
|
||||
+ ARCHIVE DESTINATION lib
|
||||
INCLUDES DESTINATION include)
|
||||
|
||||
install (DIRECTORY ${BOND_IDL}/bond/core DESTINATION include/bond)
|
@ -4,77 +4,72 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
||||
|
||||
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/bond-7.0.2)
|
||||
|
||||
vcpkg_download_distfile(ARCHIVE
|
||||
URLS "https://github.com/Microsoft/bond/archive/7.0.2.zip"
|
||||
FILENAME "bond-7.0.2.zip"
|
||||
SHA512 4ae3b88fafbede6c1433d171713bdbfcbed61a3d2a983d7df4e33af893a50f233be0e95c1ea8e5f30dafb017b2a8100a23721292b04184159e5fd796b1a43398
|
||||
)
|
||||
vcpkg_download_distfile(GBC_ARCHIVE
|
||||
URLS "https://github.com/Microsoft/bond/releases/download/7.0.2/gbc-7.0.2-amd64.exe.zip"
|
||||
FILENAME "gbc-7.0.2-amd64.exe.zip"
|
||||
SHA512 069eafd7641ebd719425037cb8249d2d214eb09c6ce38fbf1d1811c01d1839b0a0987c55217075b6ae9f477f750d582250134387a530edb2aee407b21d973915
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO microsoft/bond
|
||||
REF 8.1.0
|
||||
SHA512 287a2d299036b57e0576903b1f5372bf8071243ada57153c4bf231cdc660faab1e70c60ddde57ac759d941b74af4ba25d81a5d58e8dbf391032b7b226c4cd18c
|
||||
HEAD_REF master
|
||||
PATCHES fix-install-path.patch
|
||||
)
|
||||
|
||||
vcpkg_extract_source_archive(${ARCHIVE})
|
||||
if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "windows" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
||||
vcpkg_download_distfile(GBC_ARCHIVE
|
||||
URLS "https://github.com/microsoft/bond/releases/download/8.1.0/gbc-8.1.0-amd64.zip"
|
||||
FILENAME "gbc-8.1.0-amd64.zip"
|
||||
SHA512 896c9a78fc714e0ea44c37ed36400ec8e5f52d495a8d81aa80834ff6cd6303c7c94e06129f7b2269416a9e0ffb61423e87406db798fb5be7ff00f14981530089
|
||||
)
|
||||
|
||||
# Extract the precompiled gbc
|
||||
vcpkg_extract_source_archive(${GBC_ARCHIVE} ${CURRENT_BUILDTREES_DIR}/tools/)
|
||||
set(FETCHED_GBC_PATH ${CURRENT_BUILDTREES_DIR}/tools/gbc-7.0.2-amd64.exe)
|
||||
set(FETCHED_GBC_PATH ${CURRENT_BUILDTREES_DIR}/tools/gbc.exe)
|
||||
|
||||
if (NOT EXISTS "${FETCHED_GBC_PATH}")
|
||||
message(FATAL_ERROR "Fetching GBC failed. Expected '${FETCHED_GBC_PATH}' to exists, but it doesn't.")
|
||||
endif()
|
||||
|
||||
vcpkg_apply_patches(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PATCHES
|
||||
# Don't install rapidjson from the (empty) submodule. With vcpkg, we get
|
||||
# rapidjson from vcpkg
|
||||
${CMAKE_CURRENT_LIST_DIR}/0002_omit_rapidjson.patch
|
||||
else()
|
||||
message(STATUS "Installing stack...")
|
||||
vcpkg_download_distfile(
|
||||
ARCHIVE
|
||||
URLS "https://get.haskellstack.org/"
|
||||
FILENAME "stack-install.sh"
|
||||
SHA512 6db2008297416ad856aa498908bf695737cf3cc466440397720a458358e9661d07abdba762662080ee8bbd8171cdcb05eec6d3696382575c099adfb8427e05fd
|
||||
)
|
||||
|
||||
set(BASH /bin/bash)
|
||||
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${BASH} --noprofile --norc "${ARCHIVE}" -f
|
||||
WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}
|
||||
LOGNAME install-stack
|
||||
)
|
||||
|
||||
endif()
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS
|
||||
-DBOND_LIBRARIES_ONLY=TRUE
|
||||
-DBOND_GBC_PATH=${FETCHED_GBC_PATH}
|
||||
-DBOND_SKIP_GBC_TESTS=TRUE
|
||||
-DBOND_ENABLE_COMM=FALSE
|
||||
-DBOND_ENABLE_GRPC=FALSE
|
||||
-DBOND_FIND_RAPIDJSON=TRUE
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/bond TARGET_PATH share/bond)
|
||||
|
||||
# Put the license file where vcpkg expects it
|
||||
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/bond)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/share/bond/LICENSE ${CURRENT_PACKAGES_DIR}/share/bond/copyright)
|
||||
|
||||
# Drop a copy of gbc in tools/ so that it can be used
|
||||
file(COPY ${CURRENT_PACKAGES_DIR}/bin/gbc.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/)
|
||||
|
||||
# vcpkg doesn't--as of version 0.0.30--like executables such as gbc.exe in
|
||||
# the output. Just delete the bin/ directories for now.
|
||||
file(REMOVE_RECURSE
|
||||
${CURRENT_PACKAGES_DIR}/bin/
|
||||
${CURRENT_PACKAGES_DIR}/debug/bin/)
|
||||
|
||||
# There's no way to supress installation of the headers in the debug build,
|
||||
# so we just delete them.
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
|
||||
# Bond's install target installs to lib/bond, but vcpkg expects the lib
|
||||
# files to end up in lib/, so move them up a directory.
|
||||
file(RENAME
|
||||
${CURRENT_PACKAGES_DIR}/lib/bond/bond.lib
|
||||
${CURRENT_PACKAGES_DIR}/lib/bond.lib)
|
||||
file(RENAME
|
||||
${CURRENT_PACKAGES_DIR}/lib/bond/bond_apply.lib
|
||||
${CURRENT_PACKAGES_DIR}/lib/bond_apply.lib)
|
||||
file(RENAME
|
||||
${CURRENT_PACKAGES_DIR}/debug/lib/bond/bond.lib
|
||||
${CURRENT_PACKAGES_DIR}/debug/lib/bond.lib)
|
||||
file(RENAME
|
||||
${CURRENT_PACKAGES_DIR}/debug/lib/bond/bond_apply.lib
|
||||
${CURRENT_PACKAGES_DIR}/debug/lib/bond_apply.lib)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-accumulators
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-array, boost-assert, boost-circular-buffer, boost-concept-check, boost-config, boost-core, boost-detail, boost-fusion, boost-interval, boost-iterator, boost-mpl, boost-numeric-conversion, boost-odeint, boost-parameter, boost-preprocessor, boost-range, boost-static-assert, boost-throw-exception, boost-tuple, boost-typeof, boost-type-traits, boost-ublas, boost-utility, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/accumulators
|
||||
Description: Boost accumulators module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-algorithm
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-array, boost-assert, boost-bind, boost-concept-check, boost-config, boost-core, boost-detail, boost-exception, boost-function, boost-iterator, boost-mpl, boost-range, boost-regex, boost-static-assert, boost-throw-exception, boost-tuple, boost-type-traits, boost-unordered, boost-utility, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/algorithm
|
||||
Description: Boost algorithm module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-align
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-assert, boost-config, boost-core, boost-static-assert, boost-throw-exception, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/align
|
||||
Description: Boost align module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-any
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-config, boost-core, boost-static-assert, boost-throw-exception, boost-type-index, boost-type-traits, boost-utility, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/any
|
||||
Description: Boost any module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-array
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-assert, boost-config, boost-core, boost-detail, boost-static-assert, boost-throw-exception, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/array
|
||||
Description: Boost array module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-asio
|
||||
Version: 1.70.0-1
|
||||
Build-Depends: boost-array, boost-assert, boost-bind, boost-chrono, boost-compatibility, boost-config, boost-coroutine (!uwp), boost-date-time, boost-detail, boost-function, boost-integer, boost-regex, boost-smart-ptr, boost-system, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, openssl
|
||||
Homepage: https://github.com/boostorg/asio
|
||||
Description: Boost asio module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-assert
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-config, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/assert
|
||||
Description: Boost assert module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-assign
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-array, boost-config, boost-detail, boost-move, boost-mpl, boost-preprocessor, boost-ptr-container, boost-range, boost-static-assert, boost-throw-exception, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/assign
|
||||
Description: Boost assign module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-atomic
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-assert, boost-build, boost-config, boost-integer, boost-modular-build-helper, boost-type-traits, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/atomic
|
||||
Description: Boost atomic module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-beast
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-align, boost-asio, boost-assert, boost-bind, boost-config, boost-container, boost-core, boost-endian, boost-intrusive, boost-logic, boost-mp11, boost-optional, boost-smart-ptr, boost-static-assert, boost-system, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi
|
||||
Homepage: https://github.com/boostorg/beast
|
||||
Description: Boost beast module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-bimap
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-concept-check, boost-config, boost-container-hash, boost-functional, boost-iterator, boost-lambda, boost-mpl, boost-multi-index, boost-preprocessor, boost-property-map, boost-serialization, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/bimap
|
||||
Description: Boost bimap module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-bind
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-config, boost-core, boost-detail, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/bind
|
||||
Description: Boost bind module
|
||||
|
@ -1,3 +1,4 @@
|
||||
Source: boost-build
|
||||
Version: 1.70.0-1
|
||||
Homepage: https://github.com/boostorg/build
|
||||
Description: Boost.Build
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-callable-traits
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/callable_traits
|
||||
Description: Boost callable_traits module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-chrono
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-integer, boost-modular-build-helper, boost-move, boost-mpl, boost-predef, boost-ratio, boost-static-assert, boost-system, boost-throw-exception, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi
|
||||
Homepage: https://github.com/boostorg/chrono
|
||||
Description: Boost chrono module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-circular-buffer
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-assert, boost-compatibility, boost-concept-check, boost-config, boost-core, boost-move, boost-static-assert, boost-throw-exception, boost-type-traits, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/circular_buffer
|
||||
Description: Boost circular_buffer module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-compatibility
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/compatibility
|
||||
Description: Boost compatibility module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-compute
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-algorithm, boost-array, boost-assert, boost-chrono, boost-config, boost-core, boost-filesystem (!uwp), boost-function, boost-function-types, boost-fusion, boost-iterator, boost-lexical-cast, boost-math, boost-mpl, boost-optional, boost-preprocessor, boost-property-tree, boost-proto, boost-range, boost-smart-ptr, boost-static-assert, boost-thread (!arm), boost-throw-exception, boost-tuple, boost-typeof, boost-type-traits, boost-utility, boost-uuid, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/compute
|
||||
Description: Boost compute module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-concept-check
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-config, boost-preprocessor, boost-static-assert, boost-type-traits, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/concept_check
|
||||
Description: Boost concept_check module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-config
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-compatibility, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/config
|
||||
Description: Boost config module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-container
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-assert, boost-build, boost-config, boost-container-hash, boost-core, boost-integer, boost-intrusive, boost-modular-build-helper, boost-move, boost-static-assert, boost-type-traits, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/container
|
||||
Description: Boost container module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-context
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-integer, boost-modular-build-helper, boost-pool, boost-predef, boost-smart-ptr, boost-thread (!arm), boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/context
|
||||
Description: Boost context module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-conversion
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-assert, boost-config, boost-throw-exception, boost-typeof, boost-utility, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/conversion
|
||||
Description: Boost conversion module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-convert
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-config, boost-core, boost-function-types, boost-lexical-cast, boost-math, boost-mpl, boost-optional, boost-parameter, boost-range, boost-spirit, boost-type-traits, boost-utility, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/convert
|
||||
Description: Boost convert module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-core
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-config, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/core
|
||||
Description: Boost core module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-coroutine
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-assert, boost-build, boost-config, boost-context (!uwp), boost-detail, boost-exception, boost-integer, boost-modular-build-helper, boost-move, boost-range, boost-system, boost-thread (!arm), boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/coroutine
|
||||
Description: Boost coroutine module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-coroutine2
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-assert, boost-config, boost-context (!uwp), boost-detail, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/coroutine2
|
||||
Description: Boost coroutine2 module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-crc
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-array, boost-compatibility, boost-config, boost-integer, boost-type-traits, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/crc
|
||||
Description: Boost crc module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-date-time
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-algorithm, boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-detail, boost-integer, boost-io, boost-lexical-cast, boost-math, boost-modular-build-helper, boost-mpl, boost-numeric-conversion, boost-range, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-tokenizer, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi
|
||||
Homepage: https://github.com/boostorg/date_time
|
||||
Description: Boost date_time module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-detail
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-compatibility, boost-config, boost-preprocessor, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/detail
|
||||
Description: Boost detail module
|
||||
|
@ -1,3 +1,4 @@
|
||||
Source: boost-di
|
||||
Version: 1.1.0
|
||||
Homepage: https://github.com/boost-experimental/di
|
||||
Description: C++14 Dependency Injection Library.
|
@ -2,4 +2,5 @@
|
||||
Source: boost-disjoint-sets
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-graph, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/disjoint_sets
|
||||
Description: Boost disjoint_sets module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-dll
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-assert, boost-config, boost-core, boost-filesystem (!uwp), boost-function, boost-integer, boost-move, boost-mpl, boost-predef, boost-smart-ptr, boost-spirit, boost-static-assert, boost-system, boost-throw-exception, boost-type-index, boost-type-traits, boost-vcpkg-helpers, boost-winapi
|
||||
Homepage: https://github.com/boostorg/dll
|
||||
Description: Boost dll module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-dynamic-bitset
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-serialization, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/dynamic_bitset
|
||||
Description: Boost dynamic_bitset module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-endian
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-assert, boost-config, boost-core, boost-integer, boost-predef, boost-static-assert, boost-type-traits, boost-utility, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/endian
|
||||
Description: Boost endian module
|
||||
|
@ -2,4 +2,5 @@
|
||||
Source: boost-exception
|
||||
Version: 1.70.0
|
||||
Build-Depends: boost-assert, boost-build, boost-config, boost-core, boost-modular-build-helper, boost-smart-ptr, boost-tuple, boost-type-traits, boost-vcpkg-helpers
|
||||
Homepage: https://github.com/boostorg/exception
|
||||
Description: Boost exception module
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user