26 Commits

Author SHA1 Message Date
Kai Pastor
5da7b20588
[vcpkg_fixup_pkgconfig] Fix quoting (#29792)
* [unit-test-cmake] Check pkgconfig quoting

* [vcpkg_fixup_pkgconfig] Fix quoting
2023-03-14 17:07:19 -07:00
Kai Pastor
edcf949452
[vcpkg_fixup_pkgconfig] Check for more problems, add unit test (#23898)
* Print stack traces for failed unit tests

* Add test for vcpkg_fixup_pkgconfig.cmake

* Check for 'optimized' and 'debug' in pc files

* Check for 'NOTFOUND' and for 'ns::target' in pc files

* Check for, and fix, line continuations

* Test file path substitutions

* Move contents processing into separate function

* Update and leverage line break normalization

* Pass prefix to data processing

* Validate only the collapsed Libs

* Test removal of '<field>.private'

* Declare unit test license (same as vcpkg)

* Replace ';' with ' ' in 'Libs:'

* Disambiguate parameter variable names

* Test quoting of variables

* Fix quoting of variables

* Quote whole parameters

* Process and quote libs item-wise

* Resolve keywords 'optimized', 'debug', 'debug'

* Consistency

* CI [skip actions]

* CI [skip actions]

* Don't fail on detected errors

* Disable unit-testing for fatal errors

Co-authored-by: Billy O'Neal <bion@microsoft.com>
2023-01-19 18:27:29 -08:00
autoantwort
12a005017b
[dcmtk] no absolute paths (#25964) 2022-07-27 11:41:12 -07:00
Robert Schumacher
7d2449c346
[docs] Delete embedded documentation in favor of docs/ (#25096)
* [docs] Delete embedded documentation in favor of docs/

Drive-by for the helper ports:
1. "documentation": "https://vcpkg.io/en/docs/README.html"
2. "license": "MIT"
3. Use `include_guard(GLOBAL)` in all script files
4. Make sure any persistent variables are saved to the cache

* [docs] Restore empty regenerate.ps1 to satisfy Azure Pipelines

* [docs] PR comments
2022-06-07 16:26:51 -07:00
nicole mazzuca
f0281bf749
[scripts-audit] vcpkg_fixup_pkgconfig (#19658)
* [scripts-audit] vcpkg_fixup_pkgconfig

* Neumann-A CR, fix docs

* vcpkg_fixup_pkgconfig bugs

* fix group

* moar fixing

* be more clever around pkg_config_path

* add `vcpkg_host_path_list` so that we can unit test

* move stuff around a bit

* fix bug in vcpkg_host_path_list.cmake

* ras0219 CRs
2021-09-27 13:27:44 -07:00
Alexander Neumann
a4368eabea
[pkgconf] Update to 1.8 (and a few extras; world rebuild) (#20243)
* [vcpkg/script/meson] add option NO_PKG_CONFIG to skip pkg-config setup

* [vcpkg/script/pkgconfig] move vcpkg_find_acquire_program(PKGCONFIG) into the check section where it is used

* [pkgconf] Update to 1.8.0

* version stuff

* remove unused patch.

* (CR) quote string

* version update.
2021-09-24 12:11:38 -07:00
Dawid Wróbel
14c814bfc7
[vcpkg_fixup_pkgconfig] Add support for Cflags.private (#19852) 2021-09-23 16:04:46 -07:00
ras0219
d679a1e0be
[vcpkg_fixup_pkgconfig] HOTFIX -- revert #19469 (#19607)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2021-08-16 23:00:01 -07:00
nicole mazzuca
99e06a64ec
[rollup:2021-08-09] Rollup PR (#19469)
* [rollup:2021-08-09] PR #16706 (@JackBoosY)

[vcpkg_fixup_cmake_targets] Fix up OSX system development path

* [rollup:2021-08-09] PR #19238 (@strega-nil)

[scripts-audit] vcpkg_download_distfile

* [rollup:2021-08-09] PR #19239 (@strega-nil)

[scripts-audit] vcpkg_find_fortran

* [rollup:2021-08-09] PR #19338 (@strega-nil)

[tinyfiledialogs] Fix for good

* [rollup:2021-08-09] PR #19348 (@strega-nil)

[scripts-audit] vcpkg_fixup_pkgconfig

* fix ports.cmake with newer vcpkg_download_distfile

* fix vcpkg create

* move vcpkg_common_definitions down so that it's not incorrect

* fix vcpkg_internal_get_cmake_vars

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2021-08-16 13:42:31 -07:00
Matthias C. M. Troffaes
bec883fef4
[doc] document vcpkg_fixup_pkgconfig merging behaviour (#18091)
* [doc] document vcpkg_fixup_pkgconfig merging behaviour

* [doc] add source
2021-06-04 16:49:02 -07:00
Kai Pastor
43ae0c9f9e
[vcpkg_fixup_pkgconfig] Fix handling of empty fields (#17898) 2021-05-24 16:22:40 -07:00
Ahmed Yarub Hani Al Nuaimi
fe25e8ede8
[aws-cpp-sdk] [zlib] [openssl] [curl] Fix zlib, OpenSSL, curl and AWS SDK for Android (#15725)
* Fix Android build

* Add versioning support

* Disable building tests for cURL

* Fix patch file

* Fix patch file

* Fix patch file

* Fix versioning

* Fix patch file

* [aws-sdk-cpp] Update patch

* update baseline

* Fix dependencies

* Simplify Android configuration

* Simplify Android configuration

* Simplify Android configuration
Add alternative Git CMake script

* Bump port version

* Bump version files

* Remove redundant file

* Bump port version

* Fix version files

* Do not build curl, zlib and OpenSSL

* Typo de pkgconfig script

* Fix cURL build for Android

* Add required flags

* Revert macro change

* Fix curl build for other platforms

* Fix curl build for other platforms

* [vcpkg baseline][gsoap] Update to 2.8.111

* Update versions

* [ktx/otl] Update download hash

* update version record

* Fix curl build for other platforms

* Update ports/aws-sdk-cpp/portfile.cmake

Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>

* Update ports/aws-sdk-cpp/portfile.cmake

Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>

* Remove FingGit

* Fix configuration step

* Bump cURL port version

* Bump cURL port version

* Bump AWS SDK C++ version

* Bump AWS SDK C++ version

* Bump AWS SDK C++ version

* Bump AWS SDK C++ version

* Update ports/curl/CONTROL

* Update ports/curl/portfile.cmake

* update baseline record

* Fix Git

* update version record

* Typo

* Fix cross-platform builds of OpenSSL on MinGW/Windows

* Update version

* Fix version

* update doc

* Update ports/aws-sdk-cpp/portfile.cmake

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>

* Update ports/aws-sdk-cpp/portfile.cmake

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>

* Add debug libraries to curl for Android
Simplify OpenSSL patch for curl
Update OpenSSL's port version

* Update aws-sdk-cpp, curl, and OpenSSL versions

* Fix libssh after latest update

* Update libssh version

* Update libssh version

* Update ports/libssh/portfile.cmake

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/curl/portfile.cmake

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/libssh/portfile.cmake

* Apply suggestions from code review

* Use correct variables for OpenSSL libraries when building curl for Android
Fix zlib building for Android
Remove redundant patch comments

* Bump zlib's port version

* Update zlib, libssh, and curl versions

* [vcpkg baseline][popsift] Fix vcpkg_find_cuda.cmake path

* update version record

* Update versions/o-/openssl.json

Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>

Co-authored-by: Ahmed Yarub Hani Al Nuaimi <ahmed.alnuaimi@zwift.com>
Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com>
Co-authored-by: NancyLi1013 <lirui09@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2021-04-19 17:08:51 -07:00
ras0219
dd4421808c
[vcpkg_fixup_pkgconfig] Handle spaces in path, do not validate individual libraries (#13126) 2020-12-07 18: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
Joakim L. Gilje
9ee052937c
preprocess _ignore_flags with vcpkg_escape_regex_control_characters (#14018)
Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
2020-11-13 13:36:41 -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
ras0219
46e25a10d7
[vcpkg] Replace uses of msys pacman.exe with direct package downloads (#13019)
* wip

Apply suggestions from code review

Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>

* [vcpkg_acquire_msys] Trim list of packages. Introduce defaults.

* [behaviortree-cpp] Fix dynamic dependency on ZMQ

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-08-31 22:36:25 -07:00
Rodrigo Hernandez Cordoba
5cb765aebe
[v8] Add v8 Javascript engine port (#372). (#12687) 2020-08-28 15:02:08 -07:00
Hannes Steffenhagen
299f581dc3
[vcpkg] Do not use raw paths inside regexes (#12964)
Co-authored-by: Billy Robert O'Neal <bion@microsoft.com>
2020-08-22 02:23:56 -07:00
ras0219
bc88079632
[vcpkg_find_acquire_program] Enable find_acquire(PKGCONFIG) (#12626)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>
2020-08-18 12:16:39 -07:00
Alexander Neumann
e299457351
[vcpkg_fixup_pkgconfig] Remove required in first find_program call for pkg-config (#12569)
* Remove required in first find_program call

* add usr/local/bin for mac

* lets try without cellar and see if osx ci agrees
2020-07-31 09:20:56 -07:00
Alexander Neumann
458c20e94b
[vcpkg/scripts/pkgconfig] rewrite pkg-config check for libraries (#11550)
* [vcpkg/scripts/pkgconfig] rewrite pkgconfig check for libraries.

* [vcpkg/scripts/pkgconfig] fix more details.

* [vcpkg/scripts/pkgconfig] smaller improvements

* ws change to check functionallity of script for testing.

* [vcpkg/scripts/pkgconfig] update to latest test version

* Revert "ws change to check functionallity of script for testing."

This reverts commit 26269e9e776009230777d9390465715f2ebac465.

* [nettle] bump control for vcpkg_fixup_pkgconfig test

* [gmp] rerun CI to create new *.pc files

* [gmp/nettle] enable port debug

* [vcpkg/script/pkgconfig] fix path conversion regex for CI

* [CI|OSX] install pkg-config on osx

* [gmp/nettle] disable port debug

* [vcpkg/scripts/pkgconfig] update to latest version of x windows pr

* [zlib] add pkgconfig file

* [zstd] add fixup pkgconfig

* [libpng] add pc file installation

* [bzip2] install pc file and leave a TODO for somebody else ;)

* [bzip2] bump control

* [vcpkg/scripts/pkgconfig] skip checks if pkgconfig cannot be found.
- small bugfix in ignore flags regex

* retry zstd and zlib

* [libpng] retry by adding dl and m to system libraries for osx

* [libpng] add missing vcpkg_fixup_pkgconfig()

* [vcpkg/scripts/pkgconfig] unset var if found. 

fixes checks for other configurations which will be always succesful otherwise

* [libpng] bump control

* [libpng] enable port debug to debug osx regression

* ws change to retrigger osx ci and hopeing that it works

* fix typo

* [libpng] remove -lm flag on apple platforms

* ws change to rerun some ports in ci for good measure after the merge with master

* Re-trigger CI test

* [zstd] add pkgconfig

* [zstd] correct debug link

* [vcpkg/script/pkgconfig] - add more search suffixes for static libs
- add additional debug messages for debuging
- fix unsetting of cache variables hiding issues with debug libraries
- fixed pkgconfig fix in the debug case

* [pcre] add pthread dependency to pcre

* [protobuf] fix pkgconfig

* include quotes around the prefix in the case the prefix path was quoted (fixes some regressions)
add option NOT_STATIC_PKGCONFIG to run pkg-config without the --static argument

* [ignition-msgs5] get rid of a dev warning

* [apr] fix apr regression

* [protobuf] fix protobuf regression

* [sdl1] fix regression due to variable expansion of pkg-config. Use similar regex to the library removal for ignored flags.

* [ignition] fix regression

* remove changes of zlib portfile.

* reset changes in osx ci pipeline

* add DISABLE_PARALLEL_CONFIGURE

Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
Co-authored-by: Billy Robert O'Neal <bion@microsoft.com>
2020-07-24 11:39:21 -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
Silvio Traversaro
70ab27fcad
[ignition-plugin1] Add new port 🤖 (#11275)
* [ignition-plugin1] Add new port

* vcpkg_fixup_cmake_targets: Add DO_NOT_DELETE_PARENT_CONFIG_PATH

By default the vcpkg_fixup_cmake_targets script remove the parent
path of CONFIG_PATH if it named "cmake", this behaviour is not convenient
for ports that install more than one CMake package config file, and
for which vcpkg_fixup_cmake_targets is invoked multiple times.
To optionally disable this behaviour, this commit adds the option
DO_NOT_DELETE_PARENT_CONFIG_PATH to vcpkg_fixup_cmake_targets.

* [ignition-modularscripts] Add support for ignition libraries that install multiple CMake package config files

Some ignition libraries install several CMake  package config files,
to represent the different components of the library. This  commit modifies
the ignition_modular_library function to fixup correctly all the cmake package config files.

* vcpkg_fixup_pkgconfig: Move definition of SYSTEM_LIBRARIES to vcpkg_common_definitions

To correctly validate installed pkg-config files, vcpkg_fixup_pkgconfig needs to know
for each platform which libraries are not managed by vcpkg. This commits improve this
definitions for all the triplet supported by vcpkg, and move this definition to vcpkg_common_definitions
in a way that permit custom triplets to overload its value.
2020-06-24 14:59:32 -07:00
Alexander Neumann
27c6c94202
[vcpkg] Improve make builds (#10402)
* update all 16 configure_make ports

* add make wrappers for msvc

* improve make builds

* fix relativ path errors on linux (and osx?)

* revisit all 16 portfiles again

* remove trace from install

* fix relative build path issues.

* bump control of the 16 configure ports

* never forget .... real linux is case sensitive ....

* Revert "bump control of the 16 configure ports"

This reverts commit 40d6d81c01d2709c4acbdbec503b4787c3fd8282.

* Revert "Revert "bump control of the 16 configure ports""

This reverts commit 9c9851ddfcd01bfad604ab9c9aed7379238d619a.

* bump control again for real ci rebuild

* add copy_source

* remove message

* pass parameters to vcpkg_build_make

* fix healpix build.

* fix libmagic regression

* fix libwandio regression

* pfring changes regression fix? (cannot test in wsl)

* ws change to retrigger CI

* fix libpq regression

* fix libudns regression

* add share/pkgconfig to PKG_CONFIG_PATH

* cleanup of deprecated options

* cleanup docs

* Revert "bump control again for real ci rebuild"

This reverts commit b4bc18edc2376eba6c3aa3dda52bd82286f23616.

* shared binaries on linux should stay in lib. Only dlls are mvoed to bin

* move pkgconfig check and add message about missing system packages

* added autopoint as a build requirement

* fix prerun shell working dir.

* a few fixes from the x windows pr
- add libpath setting
- fixed pkgconfig search on windows platforms
- fixed autopoint msys package on windows

* fix release prefix

* minimal cleanup and ws changes to trigger true CI rebuild

* fix tcl by upgrading

* remove unnecessary rename

* fix pfring? can't test in WSL. Linux kernel headers required.

* fix lowercase in patch

* fix libwandio

* remove x264 from fail list

* replace wrappers with wrappers from automake

* update make ports

* remove unnecessary message

* refactor vcpkg_configure_make

* [tcl] remove stray ?

* [farmhash] fix build

* [freexl] ws change to retrigger ci build

* [x264] add pthread as a dependency

* [vcpkg/scripts] add ignore flag correctly

* [sdl] fix vcpkg_fixup_pkgconfig call

* [farmhash/freexl] delete configure and recreate it.

* [libudns] remove trailing ?

* [freexl] use empty build target

* [freexl] add system library; remove previous change

* Update ports/x264/portfile.cmake

Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>

* [libwandio] remove unncessary comment

Co-authored-by: dan-shaw <51385773+dan-shaw@users.noreply.github.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
2020-05-21 10:46:07 -07:00
Alexander Neumann
c444db5f5a
[scripts] add new function vcpkg_fixup_pkgconfig (#9861)
* add new function vcpkg_fixup_pkgconfig

* make message with changed files a debug_message

* add two more cases to the debug *.pc files

* comment out prefix.
use --define-variable=prefix=INSTALL_PATH

* changed the comment header.

* add missing word

* finish vcpkg_fixup_pkgconfig.cmake

* Update vcpkg_fixup_pkgconfig.cmake

Note: since CMake is run in script mode the description of VCPKG_FIXUP_PKGCONFIG_CALLED cannot be viewed

* transfer changes from x windows pr

* fix typo in regex

* make the regex comment aware
make pc files relocatable by using ${pcfiledir} in prefix
tested with x window pr
2020-04-27 17:37:55 -07:00