Commit Graph

92 Commits

Author SHA1 Message Date
nicole mazzuca
297f1b8ea0
[scripts-audit] CMake buildsystem (#20885)
* [scripts-audit] vcpkg_configure_cmake

Start auditing vcpkg_configure_cmake

* [scripts-audit] vcpkg_build_cmake

* [scripts-audit] vcpkg_install_cmake

* wow that was a dumb bug

* fix x86 configure, fix `if` guidelines

* Billy's CRs

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2021-11-05 16:55:14 -07:00
Phoebe
c592209c5f
[vcpkg_cmake_configure/vcpkg_configure_cmake] Support VS2022 17.0 (#19088)
* [vcpkg] Support VS2022 17.0

* small changes

* Update vcpkg.cmake

* Update the baseline version

* Update the baseline version

* Update the baselin version

* Adress the review suggestions

Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2021-09-13 20:10:12 -07:00
Jack·Boos·Yu
b7f99c3c4b
[vcpkg-cmake] Fix docs and usage of option MAYBE_UNUSED_VARIABLES (#19245)
* Remove unused cmake options and MAYBE_UNUSED_VARIABLES values

* Update MAYBE_UNUSED_VARIABLES docs

* update version

* version stuff

* version stuff

* update docs
2021-08-03 10:42:34 -07:00
nicole mazzuca
5304f826b5
[rollup] 2021-07-26 (#19157)
* [rollup:2021-07-26 1/6] PR #18783 (@strega-nil)

[scripts-audit] vcpkg_copy_tools and friends

* [rollup:2021-07-26 2/6] PR #18898 (@dg0yt)

[vcpkg] Fix toolchain compatibility with cmake < 3.15

* [rollup:2021-07-26 3/6] PR #18980 (@strega-nil)

[cmake-guidelines] Minor update, for `if()`

* [rollup:2021-07-26 4/6] PR #18981 (@strega-nil)

[scripts-audit] vcpkg_check_linkage

* [rollup:2021-07-26 5/6] PR #19158 (@Hoikas)

[vcpkg.cmake] Fix variable case.

* [rollup:2021-07-26 6/6] PR #18839

[scripts-audit] z_vcpkg_get_cmake_vars

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2021-07-29 09:47:35 -07:00
nicole mazzuca
0e1dc12185
[rollup] Rollup PR 2021-07-16 (#19001)
* [rollup:2021-07-16 1/7] PR #18201 (@JackBoosY)

[vcpkg-cmake] Add check for unused cmake variables

* [rollup:2021-07-16 2/7] PR #18397 (@strega-nil)

[vcpkg_list] add new function

* [rollup:2021-07-16 3/7] PR #18782 (@strega-nil)

[scripts-audit] vcpkg_build_ninja

* [rollup:2021-07-16 4/7] PR #18784 (@strega-nil)

[scripts-audit] vcpkg_minimum_required

* [rollup:2021-07-16 5/7] PR #18785 (@strega-nil)

[scripts-audit] vcpkg_replace_string

* [rollup:2021-07-16 6/7] PR #18786 (@strega-nil)

[scripts-audit] windows scripts

* [rollup:2021-07-16 7/7] PR #18945 (@strega-nil)

[many ports] remove deprecated vcpkg_check_features call [1/5]

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: PhoebeHui <20694052+PhoebeHui@users.noreply.github.com>
2021-07-20 10:24:58 -07:00
Sander Cox
fad4d8eecc
[vcpkg] Expand Architecture list with escape chars (#18156)
* Expand Architecture list with escape chars

This expands the architecture lists with escape characters. When
building FAT binaries for macos using multiple architectures in the
values they need to be escaped otherwise they are passed on to CMake
incorrectly #14932

* Adding the architecture fix to vcpkg-cmake port
updating port vcpkg-cmake version

* updated version in baseline
2021-07-01 09:21:55 -07:00
autoantwort
f44d4c169f
[docs] link to new functions in deprecated warnings (#17179)
* [docs] link to new functions in deprecated warnings

* [docs] add deprecation messages to portfile-functions.md

* [docs] also update documentation in .cmake files

* [docs] introduce new directive DEPRECATED BY in the documentation generation script and use that directive

* Trigger Build

* Trigger Build

* Trigger Build
2021-05-09 10:47:21 -07:00
nicole mazzuca
c47216ac79
[vcpkg_*_cmake] remove deprecation message (#16480)
* [vcpkg_*_cmake] remove deprecation message

to be replaced by a note in the maintainer-guide
this allows existing ports to build without warnings, so as to avoid warning people unnecessarily,
while still making sure people update when they update ports.

* Update docs/maintainers/maintainer-guide.md
2021-03-02 17:03:34 -08:00
nicole mazzuca
3426db05b9
[scripts-audit] Rollup PR 2021-02-26 (#16440)
* [scripts-audit rollup] PR #16419

* pull the cmake doc comment parsing out into its own function
* support cmake helper ports
* add real support for deprecation, as opposed to ad-hoc

* [scripts-audit rollup] PR #16192

* add a z_ in front of internal functions
* move internal functions out

set feature_vars again in parent scope

* [scripts-audit rollup] PR #16309

Audit vcpkg_copy_pdbs

* [scripts-audit rollup] PR #16304

* Fix usage, documentation

* [scripts-audit rollup] PR #16393

* [scripts-audit rollup] PR #16377

Deprecate `vcpkg_*_cmake` in favor of `vcpkg_cmake_*` from the
`vcpkg-cmake` port, as well as `vcpkg_fixup_cmake_targets`
in favor of `vcpkg_cmake_config_fixup` from the
`vcpkg-cmake-config` port.
2021-02-28 13:17:19 -08:00
nicole mazzuca
6b117c9c7e
[vcpkg docs] Check for documentation generation in CI (#14614)
* [vcpkg docs] Change how documenting port functions works

Instead of using `##`, use comment blocks for documentation.

Also, add some minor docs and change RST -> MD
so we actually get docs generated.

* add CI stuff

* regenerate docs

* fix vcpkg_find_acquire_program to not use _execute_process
2020-12-01 13:37:26 -08:00
yurybura
e95a7a8dc0
[llvm] update to 11.0.0 (#13998)
* [vcpkg] allow to use semicolons in COMMAND argument

* [llvm] update to 11.0.0

* [vcpkg] use latest version

* [vcpkg] allow to use semicolons in OPTIONS

* fix vcpkg_fixup_cmake_targets

* [llvm] fix more install paths, add /bigobj option, fix up CMake targets

* Apply suggestions from code review

* [llvm] fix clang, flang, lld, mlir and polly CMake targets

* [llvm] remove empty include directory /include/flang/Config

* [llvm] Flang requires C++17

* [llvm] add /Zc:__cplusplus

* [llvm] remove empty include directory include/clang-tidy/plugin

* [llvm] try to fix ClangConfig.cmake, LLVMConfig.cmake, LLDConfig.cmake etc. with patch

* [llvm] set tools install dir to tools/llvm

* [aws-sdk-cpp] fix build after changes in vcpkg_configure_cmake.cmake

* [llvm] disable Flang and OpenMP on Windows

Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com>
2020-11-30 09:56:22 -08:00
Joakim L. Gilje
d9633d939c
[vcpkg] initial openbsd (community) support (#14549)
* initial openbsd support in vcpkg

* after clang-format

* hardcoded in the preferred compiler for openbsd in bootstrap scipt (thanks @tormfinn)

* Fetch a patched pkg-config because openbsd pkg-config lacks {fcfiledir}

* fixes from review feedback

* corrected hash for pkg-config.openbsd

* re-added missing endif()

* regenerate docs

* Update scripts/cmake/vcpkg_configure_meson.cmake

Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com>
2020-11-23 09:43:23 -08:00
Christophe Calmejane
ef77f3c99f
[vcpkg android] Fix for issue #11927 (#14625)
Allow selection of Android SDK platform version from triplet file.
2020-11-18 15:45:05 -08:00
Joachim Gehweiler
0ff75ac80b
[vcpkg] Fix more cases of semicolon mishandling in "scripts" - follow-up to PR #12926 (#13968) 2020-10-26 19:30:27 -07:00
Alexander Neumann
f919a1bf2b
[vcpkg/cmake] add LOGNAME option (#14002)
Co-authored-by: PhoebeHui <20694052+PhoebeHui@users.noreply.github.com>
2020-10-15 11:01:00 -07:00
xyb
fdac1fc5aa
Add community triple arm64-linux and arm-linux. (#11880)
Verify the following command on both 32 bits and 64 bits OS on Raspberry pi 3.

    ./bootstrap-vcpkg.sh
    ./vcpkg install boost
2020-09-05 10:45:48 -07:00
Paul
6c7f2d95d8
11129: Add VCPKG_LINKER_FLAGS_<CONFIG>. (#11290)
Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com>
Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-09-03 11:00:35 -07:00
ras0219
cdd4a988fd
[vcpkg_configure_cmake] Pass CMAKE_DISABLE_SOURCE_CHANGES to all ports by default (#12846)
* [vcpkg] Pass CMAKE_DISABLE_SOURCE_CHANGES to all ports by default

* [docs] Regenerate

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-08-31 22:35:52 -07:00
jgehw
02bfa2961a
fix vcpkg_configure_cmake for case when having semicolons in OPTIONS (#12977) 2020-08-24 12:32:34 -07:00
nicole mazzuca
1d8f0acc9c
[vcpkg manifest] Manifest Implementation (#11757)
==== Changes Related to manifests ====

* Add the `manifests` feature flag
  * This only says whether we look for a `vcpkg.json` in the cwd, not
    whether we support parsing manifests (for ports, for example)
* Changes to the manifests RFC
  * `"authors"` -> `"maintainers"`
  * `--x-classic-mode` -> `-manifests` \in `vcpkg_feature_flags`
  * reserve `"core"` in addition to `"default"`, since that's already
    reserved for features
  * Add a small helper note about what identifiers must look like
  * `<license-string>`: SPDX v3.8 -> v3.9
  * `"feature"."description"` is allowed to be an array of strings as well
  * `"version"` -> `"version-string"` for forward-compat with versions
    RFC
* Add the `--feature-flags` option
* Add the ability to turn off feature flags via passing
  `-<feature-flag>` to `VCPKG_FEATURE_FLAGS` or `--feature-flags`
* Add CMake toolchain support for manifests
  * Requires either:
    * a feature flag of `manifests` in either `Env{VCPKG_FEATURE_FLAGS}`
      or `VCPKG_FEATURE_FLAGS`
    * Passing the `VCPKG_ENABLE_MANIFESTS` option
  * The toolchain will install your packages to
    `${VCPKG_MANIFEST_DIR}/vcpkg_installed`.
* Add MSBuild `vcpkg integrate install` support for manifests
  * Requires `VcpkgEnableManifest` to be true
* `vcpkg create` creates a port that has a `vcpkg.json` instead of a
  `CONTROL`
* argparse, abseil, 3fd, and avisynthplus ports switched to manifest
  from CONTROL
* Add support for `--x-manifest-root`, as well as code for finding it if
  not passed
* Add support for parsing manifests!
* Add a filesystem lock!

==== Important Changes which are somewhat unrelated to manifests ====

* Rename `logicexpression.{h,cpp}` to `platform-expression.{h,cpp}`
* Add `PlatformExpression` type which takes the place of the old logic
  expression
  * Split the parsing of platform expressions from checking whether
    they're true or not
  * Eagerly parse PlatformExpressions as opposed to leaving them as
    strings
* Add checking for feature flag consistency
  * i.e., if `-binarycaching` is passed, you shouldn't be passing
    `--binarysource`
* Add the `Json::Reader` type which, with the help of user-defined
  visitors, converts JSON to your internal type
* VcpkgArgParser: place the switch names into a constant as opposed to
  using magic constants
  * In general update the parsing code so that this ^ works
* Add `Port-Version` fields to CONTROL files
  * This replaces the existing practice of
    `Version: <my-version>-<port-version>`

==== Smaller changes ====
* small drive-by cleanups to some CMake
  * `${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}` ->
    `${CURRENT_INSTALLED_DIR}`
  * Remove `-analyze` when compiling with clang-cl, since that's not a
    supported flag (vcpkg's build system)
  * Add a message about which compiler is detected by vcpkg's build
    system machinery
* Fix `Expected::then`
* Convert `""` to `{}` for `std::string` and `fs::path`, to avoid a
  `strlen` (additionally, `.empty()` instead of `== ""`, and `.clear()`)
* Add `Strings::strto` which converts strings to numeric types
* Support built-in arrays and `StringView` for `Strings::join`
* Add `operator<` and friends to `StringView`
* Add `substr` to `StringView`
* SourceParagraphParser gets some new errors
2020-06-30 10:40:18 -07:00
Billy O'Neal
4fb2256085
[vcpkg] Allow CI to pass in all relevant directories and remove use of symbolic links (#11483) 2020-06-03 19:31:28 -07:00
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