Commit Graph

144 Commits

Author SHA1 Message Date
alcroito
c5f01e1dee
Add initial iOS support (#6275)
* Add iOS community triplets and toolchain support

Added an iOS toolchain to enable building packages for iOS.
The toolchain is used when a triplet's VCPKG_CMAKE_SYSTEM_NAME is set
to iOS.

To configure which architecture should be built, as well as other
iOS specifics, the following triplet variables can be set:
- VCPKG_TARGET_ARCHITECTURE
- VCPKG_OSX_SYSROOT
- VCPKG_OSX_DEPLOYMENT_TARGET
- VCPKG_OSX_ARCHITECTURES

The following VCPKG_TARGET_ARCHITECTURE values are currently
supported:
 - arm, arm64, x64, x86.

The following VCPKG_OSX_SYSROOT values are currently supported:
 - iphoneos, iphonesimulator, or an absolute path to the device or
   simulator Xcode SDK.

VCPKG_OSX_DEPLOYMENT_TARGET can be set to control the minimum iOS
delopyment target for the built libraries.

CMAKE_OSX_ARCHITECTURES is derived from VCPKG_TARGET_ARCHITECTURE,
so generally it should not be set. In case if someone needs to target
a more specific architecture (like armv7k or arm64e), it can
be set in the triplet via VCPKG_OSX_ARCHITECTURES.

Note that only certain combinations of the architecture and sysroot
will work: simulator SDKs only provide x86-based libraries, etc.

The toolchain also sets CMAKE_SYSTEM_PROCESSOR for certain
configurations, because certain packages (like libpng) depend on the
processor type.

Added 4 community iOS triplets that build static libraries:
- arm-ios, arm64-ios, x86-ios, x64-ios.
The non-arm triplets target the iOS simulator.

The triplets build static libraries because they are easiest to
integrate into an iOS project. Dynamic libraries or frameworks require
code signing on iOS, which complicates integration.

Added heuristics to try and automatically detect what iOS triplet to
use when building your own CMake project (so when a CMake project sets
CMAKE_TOOLCHAIN_FILE to buildsystems/vcpkg.cmake), if no explicit
triplet is provided (VCPKG_TARGET_TRIPLET is undefined).

The heuristic checks for the values of CMAKE_SYSTEM_NAME and
CMAKE_OSX_ARCHITECTURES. Note that for this to work,
CMAKE_OSX_ARCHITECTURES needs to be set before the first project()
call in your CMake project.

Added workaround so find_package finds vcpkg installed packages
when targeting iOS.
This is done by saving / restoring the value of CMAKE_FIND_ROOT_PATH
while also adding the vcpkg package root in the find_package override
macro.
The workaround can be removed once vcpkg upgrades to CMake 3.15.0
or higher where the issue is fixed.

Fixes: #6003

* Fix building libpng and pcre2 targetting iOS

Fixes: #6003
2020-04-15 13:06:55 -07:00
atkawa7
52b5dfd2ef
Android Support: Exporting to Android Archive (AAR) (#10271)
* added android triplets

* added android support to vcpkg

* added export directories to git ignore

* fix libraries naming

* added vckpg sources to visual studio project files

* rename file location

* issue with std::string fs:path copy initialization

* format path on VStudio

* fix checks format cannot work on fs::path

* support header only libraries

* support using architecture instead of triplets

* added prefab support

* added debug logs and prefab debug flag

* added support for empty packages i.e openssl
2020-04-06 14:36:17 -07:00
Marc Boucek
e1fc03c474
vcpkg_from_git: Add support for git over ssh (#9446)
* vcpkg_from_git: Add support for git over ssh

* vcpkg_from_git: append ssh bin directory to path

* vcpkg_from_git: fix function signature on non windows platforms

* Revert "vcpkg_from_git: fix function signature on non windows platforms"

This reverts commit 0d608ee591.

* Revert "vcpkg_from_git: append ssh bin directory to path"

This reverts commit 377ce3fae1.

* Partial Revert "vcpkg_from_git: Add support for git over ssh"

This partially reverts commit 9b81b16c4c.

Co-authored-by: Marc Boucek <marc.boucek@native-instruments.de>
Co-authored-by: Marc Boucek <marc.boucek@posteo.net>
2020-04-01 07:35:38 -07:00
Alexander Neumann
aeffa625e5
[vcpkg] Add the possibility to load vcvars.bat with external toolchain. (#10399)
* Add VCPKG_LOAD_VCVARS_ENV
allow loading vcvars.bat if an external toolchain file is used.

* add documentation
2020-03-27 20:19:53 -07:00
Michael Kelley
a5a244f5bd
Correct parameter reference (#10472)
- Change references to --overlay-ports to --overlay-triplets
2020-03-20 16:37:09 -07:00
nicole mazzuca
3e90c7dad9
[vcpkg_find_acquire_program] Add git (#10311) 2020-03-05 14:23:05 -08:00
Robert Schumacher
5deea3b975
[vcpkg-docs] Add documentation for vcpkg_configure_meson(), vcpkg_install_meson(), vcpkg_fixup_cmake_targts(), and vcpkg_prettify_command() (#7606)
* [vcpkg-docs] Add documentation for `vcpkg_configure_meson()`, `vcpkg_install_meson()`, `vcpkg_fixup_cmake_targts()`, and `vcpkg_prettify_command()`

* [docs] Address code review comments. Reformat docs for vcpkg_fail_port_install.
2020-02-12 15:58:43 -08:00
Phil Christensen
e62d136128
[vcpkg] Add Supports: field. Use contents of triplets instead of names for dependency resolution. (#8601)
* remove unfinished "supports" tag

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

* Start `Supports` documentation

* Use Supports in a bunch of control files

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

* Cmake var provider (#8)

* Cmake var provider (#9)

* fix windows build (#10)

* Add missing files to build

* Fix test (#11)

* adding hooks for cmake variables in expressions

* Adding hooks for 'supports' in CI test

* Fix test (#12)

* Add overrides to evaluation environment

* use "supported" tag in CI testing

* cleanup comment

* Fix issues with PR

* [var_provider] Get library linkage variables from triplet

* Fix compilation errors in tests

* Add unimplemented functions

* Fix unit tests part 1

* Fix issue when buildtrees dir does not exist

* Change binary output hash

* Fix handling of * feature

* Add core feature when using *

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

* [vcpkg] WIP. 6 failing tests.

* [vcpkg] WIP. 1 failing tests.

* [vcpkg] WIP. 0 failing tests.

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

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

* [vcpkg] Remove AnyAction; replace with ActionPlan

* [vcpkg] Minor cleanup.

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

* [vcpkg] Work around ICE with MSVC v140

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

* [vcpkg] Fix parsing of nested parentheses in qualifiers

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

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

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

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

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

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

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

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

* [libsoundio] Hotfix stray line in portfile

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

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

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

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

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

* [akali] Disable parallel configure

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

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

* [tgui] Disable parallel configure

* [libiconv] Enable VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [aws-sdk-cpp] Disable parallel configure

* [vcpkg] Implement policy VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

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

* [libodb-sqlite] Fix configuring into source directory

* [gettext] Grandfather into VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [libodb] DISABLE_PARALLEL_CONFIGURE

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

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

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

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

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

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

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

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

* [teemo] Fix incorrect include file read

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

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

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

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

* [vcpkg] Add docs for VCPKG_ENV_PASSTHROUGH and VCPKG_DEP_INFO_OVERRIDE_VARS

* Fix typo

Co-authored-by: Curtis J Bezault <curtbezault@gmail.com>
Co-authored-by: Victor Romero <romerosanchezv@gmail.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-02-03 14:22:52 -08:00
Victor Romero
f56645c3fd
Community Triplets 🤝 (#7976)
* Move untested triplets to Community Triplets

* Document community triplets

* Load community triplets by default and alert when using one

* [triplets] Merge documentation of community triplets

* Bump version
2020-01-17 14:21:19 -08:00
Robert Schumacher
c0d22c88ea
[vcpkg_install_qmake] Add vcpkg_install_qmake (#9412)
* [vcpkg_install_qmake] Add vcpkg_install_qmake and convert existing ports to use it.
[vcpkg_configure_qmake] Add 'staticlib' to CONFIG in static builds

* [vcpkg_configure_qmake] Don't specify DESTDIR

* [libqglviewer][vcpkg_configure_qmake] Add staticlib CONFIG only for libqglviewer

* [qt5-base] Increment version to track changes in vcpkg_configure_qmake()
2019-12-23 06:10:12 -08:00
Griffin Downs
43fa3e60cf
Remove deprecated call to include 2019-12-16 16:15:01 -08:00
Griffin Downs
7a14422290
Update pr-review-checklist.md 2019-12-11 01:27:14 -08:00
Griffin Downs
beacecf48d
[vcpkg] Initialize PR review checklist (#9264) 2019-12-09 17:32:42 -08:00
KURATA Sayuri
eb0d14bc7a Fix field name. (#9140) 2019-12-02 15:44:07 -08:00
Robert Schumacher
cda348b6a3
Merge pull request #9080 from dan-shaw/telemetry-update
[vcpkg] update telemetry
2019-11-22 16:08:34 -08:00
Robert Schumacher
ae74e0bfd3
Merge pull request #5719 from donny-dont/github-url
[vcpkg_from_github] Allow targeting Github Enterprise instances
2019-11-22 15:13:08 -08:00
dan-shaw
0a0440c1a8 update telemetry 2019-11-22 15:07:00 -08:00
Robert Schumacher
45bc9e9848 [vcpkg_from_github] Rename GITHUB_URL -> GITHUB_HOST
Rename TOKEN -> AUTHORIZATION_TOKEN
2019-11-22 10:05:39 -08:00
dan-shaw
4984408bed
Update privacy.md 2019-11-14 13:21:54 -08:00
dan-shaw
552296a741 [vcpkg] update telemetry 2019-11-14 13:12:36 -08:00
JackBoosY
934275b712 [libxslt]Using vcpkg_install_nmake in Windows, support unix. (#8589)
* [libxslt]Using vcpkg_install_nmake in Windows, support unix.

* support PRERUN_SHELL/PRERUN_SHELL_DEBUG/PRERUN_SHELL_RELEASE

* Re-trigger CI.
2019-10-29 23:23:36 -07:00
Wolfgang Stöggl
92af850c1c maintainer-guide.md - Fix link (#8720)
"source_" was missing in the name of the helper function. Fix typo:
vcpkg_extract_archive_ex -> vcpkg_extract_source_archive_ex
2019-10-24 15:51:16 -07:00
JackBoosY
988b1c9897 support SKIP_CONFIGURE in vcpkg_configure_make. (#8647) 2019-10-21 16:23:52 -07:00
JackBoosY
ad493fd860 Add function vcpkg_configure_make/vcpkg_build_make/vcpkg_install_make/vcpkg_build_nmake/vcpkg_install_nmake (#8267)
* Add function vcpkg_configure_make/vcpkg_build_make.

* Fix autoreconf command and add log.

* Add vcpkg_install_make.

* Fix call function name.

* support non-debug mode.

* Add nmake support.

* [tcl]Add new port for testing.

* [vcpkg_configure_make]Fix prefix in linux.

* restart CI systen.

* Separate vcpkg_build_nmake/vcpkg_install_nmake. Add arg PROJECT_NAME.

* fix copy source file. add samples.

* Remove uncommon options.
Add force install para to autoreconf.

* fix build error.

* fix options judgment.

* enable nmake in windows.

* fix some envs and macros. Disable NMAKE in vcpkg_configure_make currently.

* update docs.

* fix environments.

* Modify libosip2 to use vcpkg_configure_make/vcpkg_install_make.

* [tcl]Tcl separates PR.

* trigger PR-EAGER.

* [freexl]Fix options name and remove option NMAKE.

* use tool-chain instead of set environments manually.

* fix autoreconf para.

* use vcpkg_execute_build_process instead.
2019-10-05 07:51:07 -07:00
Vinny
85e7e815f1 Update and rename cmake_fixup_cmake_targets.md to vcpkg_fixup_cmake_targets.md (#8424)
Corrected incorrect file name. 
Added inline code for reading clarity
Added examples
2019-10-02 07:08:51 -07:00
Vinny
5ebf65665d [Documentation] Added documentation page for vcpkg_fixup_cmake_targets.cmake (#8365)
* Added documentation page for vcpkg_fixup_cmake_targets.cmake, added example usage comment to .cmake file

* Update cmake_fixup_cmake_targets.md

* Update cmake_fixup_cmake_targets.md
2019-10-01 08:21:04 -07:00
Wolfgang Stöggl
d993260886 Fix a typo in maintainer-guide.md (#8383) 2019-09-29 10:50:13 -07:00
shogerr
5d90c36ad5 Add detailed instructions for custom configurations (#8258)
Resolves #2346
2019-09-19 15:01:17 -07:00
Victor Romero
f5c732b40d
Download Mode (#7950)
* [portfile functions] Override execute_process() to accept ALLOW_IN_DOWNLOAD_MODE option

* [vcpkg install] Set VCPKG_DOWNLOAD_MODE when using --only-downloads option

* [vcpkg_find_acquire_program] Allow in Download Mode

* Don't stop when build fails for a package

* Download sources for all packages in dependency graph

* Improve output messages

* Enable acquiring MSYS packages in download mode

* Documentation

* Update documentation

* execute_process() always fails on Download Mode

* Regenerate docs and fix formatting

* Run clang-format

* Use _execute_process on vcpkg_from_<source> helpers

* Fix calls to _execute_process() when not in Download Mode
2019-08-28 13:49:29 -07:00
Victor Romero
4b404e8cfb
Revert "[vcpkg install] Enable Download Mode (#7797)" (#7949)
This reverts commit 65d4bc146b.
2019-08-28 11:59:30 -07:00
Victor Romero
65d4bc146b
[vcpkg install] Enable Download Mode (#7797)
* [portfile functions] Override execute_process() to accept ALLOW_IN_DOWNLOAD_MODE option

* [vcpkg install] Set VCPKG_DOWNLOAD_MODE when using --only-downloads option

* [vcpkg_find_acquire_program] Allow in Download Mode

* Don't stop when build fails for a package

* Download sources for all packages in dependency graph

* Improve output messages

* Enable acquiring MSYS packages in download mode

* Documentation

* Update documentation

* execute_process() always fails on Download Mode

* Regenerate docs and fix formatting

* Run clang-format

* Use _execute_process on vcpkg_from_<source> helpers
2019-08-28 11:47:17 -07:00
nicole mazzuca
2a81a2d322 [vcpkg docs] More tool maintainer docs! (#7821)
* [vcpkg docs] Add benchmarking 🏎 to the docs!

Also, minor changes to the testing docs.

* add documentation for the layout of the project
2019-08-24 11:36:12 -07:00
Victor Romero
8e7ce6d91a
Add guideline for VCPKG_<LANG>_FLAGS (#7751) 2019-08-19 12:28:30 -07:00
Victor Romero
a3a6530631
[vcpkg_check_features] Set output variable explicitly and allow reverse-logic check (#7558)
* [vcpkg_check_features] Set OUT_EXPAND_OPTIONS explicitly

* [vcpkg_check_features] Allow reverse logic for features

* [vcpkg_check_features] Document new parameters

* [vcpkg_check_features] Remove unnecessary logging

* Do not create variables for each feature only set OUT_FEATURE_OPTIONS

* Improve documentation

* Update ports that use vcpkg_check_features()

* Missing documentation updates

* [pcl] Fix tools feature

* [opencv,opencv4] Fix usage of vcpkg_check_features()

* [opencv4] Fix typo
2019-08-13 20:13:55 -07:00
Robert Schumacher
4d551ff4b3 [vcpkg-docs] Reword and reorganize overlay-triplets-linux-dynamic.md (#7502) 2019-08-02 15:42:17 -07:00
nicole mazzuca
165907550c
Update tests, and add documentation! (#7506)
This PR does the following:

* fix tests -- now, they're always built in the CMake scripts, and they work on VS2015
  *add a new flag, BUILD_TESTING, which allows one to turn off testing builds
* Add documentation for running tests
2019-08-02 09:52:39 -07:00
Phil Christensen
0079c186f0
[docs] add notes about manual-link (#7390) 2019-07-23 14:49:45 -07:00
Victor Romero
30a3e3256f
Example: Building dynamic libraries on Linux using overlay triplets (#7291)
* Example building dynamic libraries on Linux using overlay triplets

* Change triplets list to multi-columns

* Override default triplets example
2019-07-17 11:34:31 -07:00
Phil Christensen
d2b3ef9e88
Fix vcpkg_from_git (#7082)
* [vcpkg_from_git/fdlibm] Fix flaky sha256 issues
* [doc] regenerate docs
2019-07-01 22:39:51 -07:00
Victor Romero
e2049cb975
[vcpkg_configure_cmake] Add NO_CHARSET_FLAG option (#7074)
* [vcpkg_configure_cmake] Add NO_CHARSET_FLAG option

* [vcpkg_configure_cmake] Add documentation for new NO_CHARSET_FLAG option

* [vcpkg_configure_cmake, windows toolchain] Handle NO_CHARSET_FLAG in toolchain

* [build.cpp] Add Windows toolchain to package hash

* [duilib,msix,thrift,tidy-html5] Use NO_CHARSET_FLAG to fix regressions
2019-06-30 09:31:22 -07:00
myd7349
a7bbee3152 [vcpkg] Update vcpkg_check_features document (#7091)
* [oniguruma] Fix misusage of vcpkg_check_features

* [xsimd] Use vcpkg_check_features
2019-06-29 08:29:13 -07:00
myd7349
b4675fd65a [vcpkg] Add vcpkg_check_features (#6958)
* [vcpkg] Add vcpkg_check_feature, vcpkg_check_features

* [vcpkg] Remove vcpkg_check_feature

* [oniguruma,xtensor] Use vcpkg_check_features
2019-06-28 10:17:39 -07:00
Victor Romero
53a02456a0
Update ports-overlay.md 2019-06-27 16:32:38 -07:00
Phil Christensen
1ce24dd0db
[docs]Update cmake docs (#7039) 2019-06-25 16:08:18 -07:00
Victor Romero
f3db66b403
Ports Overlay partial implementation (#6981)
* Ports Overlay feature spec

* Ports Overlay implementation

* [--overlay-ports] Refactor handling of additional paths

* Code cleanup

* [--overlay-ports] Add help

* [depend-info] Support --overlay-ports

* Add method to load all ports using PathsPortFileProvider

* Make PortFileProvider::load_all_control_files() const

* Remove unused code

* [vcpkg] Avoid double-load of source control file between Build::perform_and_exit and Build::perform_and_exit_ex

* [vcpkg] Clang format

* [vcpkg] Fixup build failure introduced in b069ceb2f2

* Report errors from Paragraphs::try_load_port()
2019-06-21 23:50:05 -07:00
Robert Schumacher
9cfcc71146
[docs] Add maintainer guidelines (#6871)
* [maintainer-guide] Initial commit of maintainer guidelines

* [maintainer-guide] Rearrange sections

* [maintainer-guide] Add note about GitHub Draft PRs

* [maintainer-guide] Improvements

* [maintainer-guide] Address comments about versioning conventions

* [maintainer-guide] Add section about how portfiles interact with CMakeLists.txt

* [maintainer-guidelines] Add link from docs index
2019-06-21 21:33:29 -07:00
Phil Christensen
d962dc7d65 [vcpkg] Add optional 'Homepage' field to CONTROL (#6844)
* [control file] Add optional 'Homepage' tag

This allows a 'Homepage' tag to be added to a port in order to support
changes such as PR #2933.  It currently does not do anything with it.

* [docs]

Add Homepage to the control file documentation

* move urls from descriptions to homepage field.
2019-06-10 16:35:22 -07:00
Phil Christensen
4b834fad29
[docs] update port naming info in CONTROL docs (#6397) 2019-05-10 12:47:09 -07:00
Phil Christensen
34cadd0b04
[docs] clean up CONTROL file documentation (#6378) 2019-05-09 13:27:00 -07:00
Robert Schumacher
4498b6403e
[docs] Add VCPKG_CMAKE_SYSTEM_VERSION (#6061) 2019-04-11 17:54:53 -07:00