Commit Graph

71 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
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
Cristian Adam
38b959022c Add support for building with MinGW (#9137)
* Add support for building with MinGW

Tested with MSYS2 MinGW 8.3.0, gcc-mcf.lhmouse MinGW 9.2.1,
and StephanTLavavej/mingw-distro!

* Add MinGW toolchain

From your MinGW configured shell you could just use vcpkg to
configure packages.

An x64-mingw triplet would look like:
```
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_ENV_PASSTHROUGH PATH)

set(VCPKG_CMAKE_SYSTEM_NAME MinGW)
```

* Add MinGW community tripplets

x64 tested with https://github.com/StephanTLavavej/mingw-distro
x86, arm64, arm tested with https://github.com/mstorsjo/llvm-mingw
2020-01-17 15:36:08 -08:00
Alexander Neumann
119e9b5729 update vcpkg_configure_cmake 2019-09-20 12:52:33 +02:00
martin-s
191c864927 Fix bug in .vcpkg-root detection that breaks --overlay-triplets (#7954)
* - Added scripts variable to ports file.
- Added check if triplet file is not available (NPE).

* - Fixed line endings.

* Provide location of .vcpkg-root to ports.cmake

* vcpkg sets VCPKG_ROOT_PATH in ports.cmake

* [vcpkg] Fail if VCPKG_ROOT_PATH is not passed from vcpkg.exe

* [vcpkg] Fix vcpkg rooth path

* [vcpkg] Make --x-scripts-root an experimental command
2019-09-12 23:52:52 -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
YenForYang
e7aafb7742 Cleanup vcpkg_configure_cmake.cmake (#6792) 2019-07-09 14:53:48 -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
Phil Christensen
1ce24dd0db
[docs]Update cmake docs (#7039) 2019-06-25 16:08:18 -07:00
dan-shaw
9cc9978c5b set CMAKE_SYSTEM_PROCESSOR in Linux (#6872)
* add vcpkg_target_architecture to vcpkg_configure_cmake

* modify shogun and thrift

* update glbinding
2019-06-14 13:09:38 -07:00
kiwixz
caa7981dcf fix vs2019 arch specification 2019-03-16 17:53:31 +01:00
kiwixz
b755c30bc7 update to cmake 3.14 (allow VS2019RC) 2019-03-16 17:40:31 +01:00
Robert Schumacher
9164049386 [vcpkg] Add more detailed error message when trying to use v142 and an msbuild generator (#5422) 2019-03-05 14:42:07 -08:00
LRFLEW
e6552f1180 [BZip2] Fix Unix Dynamic Builds (#5184)
* [BZip2] Fix Unix Dynamic Builds

* [bzip2] Bump control version

* [libgta] Only build one flavor

* [vcpkg_configure_cmake] Resolve #2375 since we now use CMake >= 3.11
2019-01-29 13:43:39 -08:00
ivysnow
2d63525a15 [vcpkg] add support for FreeBSD (#4917)
* [vcpkg] add support for FreeBSD

* [x64-freebsd] Remove triplet because it is not currently in the set of supported triplets
2019-01-07 16:03:35 -08:00
Robert Schumacher
3b01335e61 Revert "WIP [vcpkg] Fix CMAKE_SYSTEM_PROCESSOR with UWP and Linux triplets (#4688)"
This reverts commit 83af530a42.
2018-11-20 16:28:12 -08:00
Tsukasa Sugiura
83af530a42 WIP [vcpkg] Fix CMAKE_SYSTEM_PROCESSOR with UWP and Linux triplets (#4688)
* [vcpkg] Fix CMAKE_SYSTEM_PROCESSOR

Add CMAKE_SYSTEM_PROCESSOR setting under UWP, Linux, and Darwin.
If explicitly specified VCPKG_CMAKE_SYSTEM_PROCESSOR in triplet files, CMAKE_SYSTEM_PROCESSOR is set to specified architecture.

* [vcpkg-toolchains] Move logic out of vcpkg_configure_cmake and into the toolchains.
2018-11-20 15:51:32 -08:00
LRFLEW
16e7f4187b Create macOS configuration variables for triplets (#4477)
* Create macOS configuration variables for triplets

* Add new macOS configuration variables to documentation

* [vcpkg-configure-cmake] Fix typo
2018-10-23 16:49:48 -07:00
Robert Schumacher
d614e3e887 [openssl-unix] Fix for issue #4001
[vcpkg_configure_cmake] Use the correct path separators for the current platform instead of assuming ;
2018-08-10 03:00:18 -07:00
Robert Schumacher
b93fb28e7c [vcpkg] Reduce verbosity when building ports. Reduce cleaning requirements for packages\ directory. 2018-06-26 21:48:42 -07:00
Robert Schumacher
bb054e645d [vcpkg] Don't pass /utf-8 to VS 2013 2018-04-10 10:34:05 -07:00
Alexander Karatarakis
800f8b0e1d Specify ninja exe 2018-03-30 17:46:13 -07:00
Robert Schumacher
6c690a2283 [vcpkg-configure-cmake] Set CMAKE_INSTALL_LIBDIR as type string to avoid CMake forming an absolute path 2018-03-23 16:23:37 -07:00
Robert Schumacher
38c9c97b6b [double-conversion] Fix on non-windows 2018-03-21 23:33:41 -07:00
Robert Schumacher
f56a5e4e94 [vcpkg] Improve defaults for other platforms 2018-03-11 23:42:53 -07:00
Robert Schumacher
ad7fa55bb0 [vcpkg] Improve handling of external toolchains. Extract MSVC settings to a separate toolchain file. 2018-03-11 23:42:53 -07:00
Michał Janiszewski
6f5573e889 [vcpkg] Allow ninja-based parallel configuration for UWP targets (#2929)
Allow using ninja as parallel configuration runner even if it is not
used as generator.

This significantly improves throughput for usecases like CI with
timeouts and more than one CPU (e.g. AppVeyor).
2018-03-03 13:09:55 -08:00
Stefano Sinigardi
045c80a7f4 configure debug before release (#2911) 2018-03-01 08:31:14 -08:00
Robert Schumacher
6b48216b8c [vcpkg-configure-cmake] Improvements to allow list parameters 2018-02-21 17:45:52 -08:00
Guillaume Lachance
995ab09409 libmupdf version bump (#2730)
* Add libgta

Libgta is a portable library that implements the Generic Tagged Array (GTA)
file format.

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* [libgta] turn off document build and doxygen dependency

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* [libgta] add build-dependency

- bzip2, zlib and liblzma

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* [libgta] remove dlls when static build

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* Fix typo

* [libgta] update CONTROL

add lf at end of file.

* libmupdf version bump

* [qt5-base] Use system freetype.

* [opencv] Fix UWP and ARM

* [hdf5] Always use config mode for HDF5

* [opencv] Fixup -- apply patch added in previous commit

* [abseil] Add *.inc files. Fixes #2718

* [abseil] Update to 2018-2-5

* Fix for Issue #2729

Allows PowerShell to change the name of the downloaded directory correctly.

* vcpkgRemoveItem: nullcheck

* [cpprestsdk] Update to 2.10.2

* Adding Torch's TH library (#2737)

Adding Torch's TH library

* [flatbuffers] Fixes #2735

* sobjectizer updated to v.5.5.21

* [nghttp2] Enable static builds

* [nghttp2]: update to 1.30.0 (#2739)

* [nghttp2]: update to 1.30.0

* [nghttp2] Enable static builds

* Add epsilon library port

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* [vcpkg-configure-cmake] Use ninja to configure in parallel (#2712)

* [curl] Add nghttp2.lib to dependencies of curl

* [vtk] Fix breaking change in find_package(HDF5)

* Merge findFileRecursivelyUp into VcpkgPowershellUtils

* [vcpkgInvokeCommandClean] Don't use -encodedCommand.

Instead, use -Command with the appropriate number of escaped quotes
(which ended up being 3)

* [blosc] Update to 1.13.5

static-install-fix.patch no longer required (upstream contains the patched version).
Resolves build error with VS 15.6 in static builds

* [cgal] Avoid using absolute paths in cmake config file

* Update CHANGELOG and bump version to v0.0.104

* [qt5-base][qtdeploy] Deploy plugin dependencies to the executable's folder.

* Add libgeotiff port

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* [libgeotiff] fix install directory for cmake configurations

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* fix tiff detection error when static build

* [libgeotiff] remove installed dlls when static build

* [libgeotiff] update description

* [chipmunk] 7.0.2 initial.

* [recast] 1.5.1 initial.

* [tinydir] 1.2.3 initial.

* [mman] git-f5ff813 initial.

* Update Catch to 2.1.2 (#2763)

* [vcpkg-ci] Delete intermediate build folders even on unsuccesful builds

* [folly] Workaround bug for VS 15.6

* [pcre] fix space issue and add mirror (fix #2751)

* [realsense2] Update to v2.10.0

Update realsense2 port to librealsense v2.10.0.

* [libevent] Fix generated libevent targets files

* fixed typo in warning message (#2773)

* [blaze] update to Blaze 3.3

* [lmdb] Fix possible whitespace problem

* Fix date issue

* add qt5-quickcontrols2

* add qt5-quickcontrols port

* add qt5-graphicaleffects

* change compile order to debug first, fix #2767 (#2785)

* [liblzma] Add usage information

* [ffmpeg] Allow static builds of ffmpeg (#2783)

ffmpeg creates static .a libraries, so change the suffix to .lib

* [ffmpeg] Bump version for PR #2783

* [aubio] Update to handle static FFMPEG

* Copy local dependencies for library targets (#2787)

* Fix for issue #2786

* [vcpkg-cmake-toolchain] Only applocal dependencies for shared libraries

* [uriparser] Update to 0.8.5

* [vcpkg] Implement Default-Features (#2697)

* [vcpkg] Add Default-Feature to make_status_pgh utility function

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Parse "Default-Features" as dependencies and add test for parsing

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Document some methods and structures

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Add install_default_features_test

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Change install_default_features_test to not have preinstalled package

* [vcpkg] Test install behaviour of default features

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Implement default features

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Test default features upgrade behavior

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Implement upgrade with default features

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Test behaviour of upgrade with default features in dependencies

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Make upgrade install new default features

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Move collecting of packages for which to prevent defaults

Further down the line to create_feature_install_plan.

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Fix core missing from default features and potential inf loop

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Rename, fix and move some tests

Signed-off-by: Squareys <squareys@googlemail.com>

* Updated boost license to 1.66.0 (#2795)

I was a bit confused to see a reference to "1.65.1" while I was installing 1.66.0, but it turns out this URL is just not updated. This updates it.

* [vcpkg-find-acquire-program] Add mirror for NASM. Fixes #2777.

* update cuda requirement to 9.0, fixes #2791 (#2802)

* update cuda requirement to 9.0, fixes #2791

* [cuda] Restore sample version blob

* [vcpkg] http_proxy and https_proxy should be lowercase (#2815)

Pacman of Msys understands only lowercase environment variables
http_proxy and https_proxy.

* [vcpkg] Add find/find_installed/is_installed for FeatureSpec

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Fix build command for packages that depend of features

Signed-off-by: Squareys <squareys@googlemail.com>

* [liblo] Initial port (#2821)

* [portaudio] Added ASIO support to build

* Update libpng to 1.6.34

* [liblo] Initial port

* Revert "Update libpng to 1.6.34"

This reverts commit ede0bb947b.

* Revert "[liblo] Initial port"

This reverts commit bb819eb218.

* [liblo] Initial port

* [liblo] Use vcpkg_from_github() and vcpkg_fixup_cmake_targets()

* [liblo] Fix SHA512

* [openvr] update to 1.0.13 (#2809)

* [ebml] Initial port. (#2812)

* [vcpkg] Fix bug with missing dependencies introduced in #2697 (#2819)

When a package dependency was not found (has no source control file),
install would exit with "Value was null" when trying to install its default
features, as the dependency would be marked erroneously as found in this
case.

Signed-off-by: Squareys <squareys@googlemail.com>

* [vcpkg] Avoid using s::status_known() -- it does not do what you think it does

* [jansson] Update to 2.11 (#2820)

* [aws-sdk-cpp] update to 1.3.58 (#2810)

* [mkl] Add port MKL (#2806)

* [corrade,magnum,-plugins,-extras,-integration] Update to latest and support feature packages (#2687)

[corrade,magnum,-plugins,-extras,-integration] Update to latest and support feature packages

* [jbig2dec][libmupdf] Extract jbig2dec, remove remaining vendored 3rdparty
2018-02-17 02:31:49 -08:00
Robert Schumacher
71025694e9
[vcpkg-configure-cmake] Use ninja to configure in parallel (#2712) 2018-02-07 16:57:47 -08:00
Jacek Blaszczynski
a28138eb9e Add preliminary support for arm-windows and arm64-windows triplets (#2371)
* Add preliminary support for arm-windows and arm64-windows triplets

Visual Studio 15.4 shipped with new VC tools targeting arm and arm64
for desktop. This change allows for recognition and usage of new
triplets supporting arm and arm64 Windows desktop and server targets.

* Remove unnecessary changes

* Part 2

* Part 3

* Make detection of Arm64 _VCPKG_TARGET_ARCHITECTURE precise

* Enforce usage of Visual Studio CMake generatorfor arm and temporarily arm64 targets

* Address code review feedback, clean libjpeg-turbo port.cmake

* [libjpeg-turbo][tiff] Reduce changes to existing libraries.

* [vcpkg-cmake] Simplify toolchain selection logic and improve comments
2018-01-03 17:19:52 -06:00
Robert Schumacher
5335d17f53 [vcpkg] Initial experimental support for VCPKG_BUILD_TYPE release 2017-11-25 15:25:18 -08:00
Robert Schumacher
141f10801c [vcpkg] Improve external toolchain handling. 2017-11-25 11:50:31 -08:00
martin-s
d5a7da6bcb Merge branch 'master' of https://github.com/Microsoft/vcpkg into patch-vs2013
# Conflicts:
#	scripts/cmake/vcpkg_configure_cmake.cmake
#	toolsrc/src/vcpkg/vcpkgpaths.cpp
2017-11-05 19:13:16 +01:00
Robert Schumacher
81613fa0ff [vcpkg-toolchain] Improvements; add VCPKG_CHAINLOAD_TOOLCHAIN_FILE 2017-10-16 11:22:21 -07:00
martin-s
9c2fa042ee Merge branch 'master' of https://github.com/Microsoft/vcpkg into patch-vs2013
# Conflicts:
#	toolsrc/include/vcpkg/vcpkgpaths.h
#	toolsrc/src/vcpkg/vcpkgpaths.cpp
2017-10-15 02:00:19 +02:00
Mikhail Paulyshka
00d89dbd66 vcpkg: initial ARM64 support 2017-10-12 12:02:14 +03:00
Robert Schumacher
2c9ee072da [vcpkg_build_cmake] Refactor _build_ and _install_ into a single cmake script.
Regenerate documentation. Remove MSVC_64_TOOLSET option because it's obsolete.
2017-10-05 17:49:28 -07:00
Robert Schumacher
d5705e87c4 Merge branch 'master' into martin-s-patch-vs2013 2017-10-03 15:52:29 -07:00
Alexander Karatarakis
26516fe485 vcpkg_configure_cmake (and _meson) now embed debug symbols within static libs (/Z7) 2017-09-09 00:12:54 -07:00
martin-s
c167c70c27 - Added support for VS2013 build chain tools. 2017-09-02 16:48:29 +02:00
Daniel Shaw
566172b3b6 remove debug statements 2017-06-05 17:01:20 -07:00
Daniel Shaw
eb3b2accbc Add support for compiler flags 2017-05-30 12:27:03 -07:00
Robert Schumacher
49cd399586 [vcpkg-docs] Rework documentation for compatibility with readthedocs.io and MkDocs. 2017-05-28 14:15:13 -07:00
Martin Müller
eb3d052a52 Fix processor architecture detection 2017-05-03 19:11:29 +02:00
Robert Schumacher
169521070a [vcpkg] Ninja is only 64-bit; do not use on x86 2017-04-23 00:11:42 -07:00
Robert Schumacher
db73e73c56 [vcpkg] Add bootstrap-vcpkg.bat to improve first-time experience. 2017-04-01 03:58:45 -07:00
Robert Schumacher
5414655ea4 [vcpkg] Fix regression introduced in 8dc2699e5d. Fixes #873. Fixes #871. Fixes #874. Fixes #876.
When using the toolchain file, VCPKG_TARGET_TRIPLET was not specified, which resulted in all libraries being built against x86-windows.
2017-03-31 00:35:40 -07:00
Robert Schumacher
a9a8772ad4 [vcpkg-configure-cmake] Rely on toolchain to provide CMAKE_PREFIX_PATH 2017-03-28 17:18:07 -07:00