This adds an `arm64-ios-simulator` triplet, which is largely identical
to the existing `arm64-ios` triplet, but adds
```cmake
set(VCPKG_OSX_SYSROOT iphonesimulator)
```
Xcode/Clang unfortunately refuses to link `arm64-ios`-built libraries
when linking for the iOS simulator, since it considers the simulator to
be a different platform, thus requiring a new triplet.
> Side note: The motivation for not naming this triplet
`arm64-iphonesimulator` or similar is to be consistent with the naming
of other iOS triplets and to keep build infrastructure that matches on
`ios` triplets intact. There is precedent for this hyphenated naming
scheme, the Rust compiler names the triplet `aarch64-apple-ios-sim`. I
went with the spelled out `simulator` here, since it feels more
descriptive.
* Try adding xbox triplets
* Update for Gaming Command Prompt usage
* Fix directxtk12 shaders for xbox
* Add toolchain for xbox
* Fix ports for feature builds
* Code review feedback
* More code review
* Code review
* WIN32_LEAN_AND_MEAN is too aggressive for many libs
* Normalize GDK variable paths
* Need to leave oldnames.lib as many libs use POSIX names
* More code review feedback
* Remove extra file
* Use of /DEFAULTLIB fixed 41 ports
* Code review feedback
* Added basic xbox supports expression
* Updates for xbox-aware ports
* Update for CMake fixes upstream
* Minor synatx fix
* Fix up merge issues
* Need directx-headers for linux
* Missed one port revision
* Removed VCPKG_TARGET_IS_XBOX from project scope after upstream fixes
* Update baseline
* License updates per github-actions bot
* Update baseline
* Update toolchain to support try_compile for GDK headers
* Update port numbers
* Update baseline
* Don't need directx-dxc for Xbox builds
* Update baseline
* Update hashes
* Code review
* Update baseline
* Refresh hashes for upstream fixes
* Update baseline
* Add ms-gdkx stub port
* Update baseline
* updated ms-gdkx with user-friendly output
* Update baseline
* Code review for the toolchain file
* Update directxkt12 hash
* Refresh baseline
* Update MSBuild integration to select proper triplet for GDK custom platforms
* Update CMake integration to select proper xbox triplet from XBOX_CONSOLE_TARGET
* vcpkg.targets update
* Code review feedback
* Update baseline
* Refresh baseline
* Code review for MSBuild
* Code review for xbox toolchain
* vcpkg.cmake codereview
---------
Co-authored-by: walbourn <chuckw_walbourn@yahoo.com>
* Fixup rpath after building dynamic libraries on linux
* Switch back to a single variable VCPKG_FIXUP_ELF_RPATH
Co-authored-by: Victor Romero <romerosanchezv@gmail.com>
* Don't force fixup in x64-linux triplet yet
Co-authored-by: Victor Romero <romerosanchezv@gmail.com>
Co-authored-by: Osyotr <8740768+Osyotr@users.noreply.github.com>
* add a single config community triplet based on x64-windows
* add a failed port, otherwise mechanism does not support empty list
* add failures to baseline
* remove duplicate entry
* second round of failures added to baseline
* third round of regressions added to CI
* [ade] fix single-config builds
* [ade] update refs
* remove duplicate entries
* [unix2dos] restore eol in script file
* add even more ports now failing in singleConfig...
* [libjpeg-turbo] remove unnecessary check
* [libjpeg-turbo] fix references
* [baseline] restore check for ports that were added recently
* [libmodplug] enable single config triplets
* [tensorflow-common] enable single config triplets
* update baseline
* fix references
* remove wrong check for single config triplets
* fix references
* [ogre] fix single config builds
* [ogre] fix references
* [untested] force x64-windows-release as host triplet when testing x64-windows-release in CI
* fix
* [x264] fix for single config
* [x264] update refs
* [libffi] enable single config builds
* [libffi] update refs
* remove cli broken arguments
* [calceph] enable single-config builds
* [calceph] fix references
* [kf5config] enable single-config builds
* [kf5config] fix references
* [detours] enable single-config builds
* [detours] fix references
* [kf5*] enable single-config builds
* [kf5*] fix references
* fix
* kf5config fix reference
* trying again to force host triplet in CI
* [boost] fix for single-config builds
* [boost] update references
* fix
* [boost] update refs
* disable host triplet in ci because it's not necessary
* retrigger a build for ports previously failing
* remove host triplet in ci, not necessary anymore?
* make PR dry
* [tensorflow-common] bump version
* [tensorflow-common] fix references
* Fix version database for boost-modular-build-helper.
* fix references
* restore CRLF on some ports
* bump versions
* fix references
* bump port versions
* fix references
* boost-modular-build-helper: Reverted due to no changes.
detours, kf5config, kf5holidays, libbacktrace: Reverted due to only whitespace changes.
libffi: bumped port-version
libmodplug: reverted due to no functional changes
ogre, ogre-next: reverted due to incorrect case of "Debug" vs. "Release" already fixed in master.
And rebuilt version database.
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
* Format manifest, make port version explicit
* Use standard mingw import lib names
* Choose either static or shared binaries
* Insert macro for dynamic linkage
* Add szip pc file
* Quote path expressions
* Port away from deprecated cmake functions
* x-add-version
* Begin of hdf5 changes
* Remove obsolete variables (complements 23eadeae)
* Fix indentation and quoting expressions
* Handle single-linkage szip configuration
* Use mingw import lib names for hdf5
* Move dependencies to Requires in pc file
* Port away from deprecated cmake functions
* x-add-version hdf5
* Apply szip review comments
* Update version
* Improve pkgconfig patch to handle lists
* Update git-tree
* compile for android including armv6.
* Update arm-android.cmake
* Update from comment in the PR
support ANDROID_NATIVE_API_LEVEL from env variable. (to be able to compile also 16 and not just 21 as default)
* Add ANDROID_ARM_NEON from env var
* Short version of update ANDROID_ARM_NEON.
* remove ANDROID_NATIVE_API_LEVEL now using vcpkg_CMAKE_SYSTEM_VERSION in triplet
Add cache to ANDROID_ARM_NEON
fix indents
* Update neon triplet
* Add arm-neon-android.cmake file.
* Update .gitignore
* Add mingw dynamic lib triplets
* Only copy pdbs if not using *-mingw triplets
* Using VCPKG_POLICY_DLLS_WITHOUT_LIBS as a workaround
* Rename *-mingw to *-mingw-dynamic
Co-authored-by: Billy Robert O'Neal <bion@microsoft.com>
* add x86-wasm.cmake to community triplets
The EMSDK enviroment variable is normally defined when first installing Emscripten.
* Rename x86-wasm.cmake to wasm32-emscripten.cmake
* Update wasm32-emscripten.cmake
* Update wasm32-emscripten.cmake
* Add wasm32 and wasm64 arch to docs
* Create wasm64-emscripten.cmake
* remove wasm64
* Delete wasm64-emscripten.cmake
* Add wasm32 to list of identifiers
* add emscripten VCPKG_CMAKE_SYSTEM_NAME support
* add path check to EMSDK cmake toolchain
* 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
* 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
* 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