46 Commits

Author SHA1 Message Date
Kai Pastor
47633daa65
[vcpkg-scripts] Catch use of ambiguous cmake vars (#34546)
Avoid wrong use of popular but ambiguous variables (`WIN32` etc.) in
scripts and portfiles by detection in CI.

Sometimes the variables are used wrongly, and sometimes this isn't
caught in PR review. This PR tries to catch those variables (when in the
active code path in script mode). [This can happen to every
contributor](https://github.com/microsoft/vcpkg/pull/34356#discussion_r1360074122),
even if he/she knows the rules ... vcpkg is raising the bar higher than
usual, having to deal with targets and hosts even in script mode.

(`b2-options.cmake` (boost fragment) shows where we get if we don't pay
attention: the same code being used in script mode (`WIN32` meaning
host) and in project mode (`WIN32` meaning target).)

The new check doesn't break any user builds because it relies on command
line options. However it changes the ABI hashes.
2024-06-14 11:40:01 -07:00
Alexander Neumann
56db88cd3b
[scripts] fix vcpkg_configure_meson (#37396) 2024-03-15 18:20:05 -07:00
Alexander Neumann
a664e41ee5
[vcpkg-tool-meson] Update meson to 1.3.2 (#28084) 2024-03-11 14:09:15 -07:00
Kai Pastor
215a253559
[z_vcpkg_setup_pkgconfig_path] debug needs share/pkgconfig (#36151)
Pass `share/pkgconfig` instead of `debug/share/pkgconfig`: The `share`
location is for config-independent data.
Integrate `CURRENT_PACKAGES_DIR` locations.
Change the function interface to take a CONFIG parameter instead of
prefix list (suggested below).
Use `z_vcpkg_setup_pkgconfig_path` also for `vcpkg_fixup_pkgconfig`
(which already had proper handling of `CURRENT_PACKAGES_DIR` and
`share`).
Remove redundant trailing slash.
Extend unit test.

Fixes consuming `wayland-protocols` and similar.
2024-03-01 16:35:37 -08:00
Kai Pastor
9b9c2758ec
[vcpkg_configure_meson] Update compiler flags parsing (#30271) 2023-03-20 11:45:02 -07:00
Robert Coup
38364cede1
always strip whitespace when calling uname -m (#28939) 2023-01-19 18:39:39 -08:00
Kai Pastor
a1af533095
[scripts] Fix meson for mingw (#27380)
* Fix mingw

* Remove invalid transformation

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

Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2022-10-25 20:50:13 -07:00
Alexander Neumann
d8e60ef474
[vcpkg scripts] Crosscompiling fixes (#26617)
* test osx stuff

* deactivate most of ci

* get trace output

* add required flags to the linker flags

* also look for --sysroot

* Link_args are always shared

* fix ar flags

* setup FOR_BUILD vars.

* try tricking the build.... but man configure scripts are stupid sometimes...

* try 2

* major meson rewrite

* fix duplicates

* revert --trace-expand

* update port version

* revert pipeline changes

* v db

* bump version

* v db

* set flags for rc compilers

* a few more ios fixes.

* v db

* fix osx/ios logic

* documentation and don't fatal_error in build/host machine entry calculation.

* add android/compiler target stuff from #26570

* remove extra endif

* v db

* add target param to linker flags.

* target in cpp flags

* Make vcpkg-cmake-get-vars more ios compatible

* Update scripts/get_cmake_vars/CMakeLists.txt

Co-authored-by: Matthias Kuhn <matthias@opengis.ch>

* More ios fixes

* fix target adding

* Fix broken loop

* v db

* v db

* bump date

* v db

* v db

* v db

* remove port-version 1

* v db

Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
Co-authored-by: Matthias Kuhn <matthias@opengis.ch>
2022-10-13 09:40:52 -07:00
pastdue
5f14417300
vcpkg_configure_meson: Support wasm32-emscripten triplet (#26317)
Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
2022-09-30 17:23:42 -07:00
Vladimir Serdyuk
b92daebd09
[scripts] fixes for armv7l host builds (#26510)
* [scripts] fixes for armv7l host builds

* [scripts] fix meson for 32-bit arm

* [scripts] replaced EXEC_PROGRAM with execute_process in ninja and pathelf paths in vcpkg_find_acquire_program
2022-09-30 17:22:06 -07:00
Alexander Neumann
dc9d737351
[pixman] add missing include and fix clang-cl build (#26186)
* pixman: add missing include and fix clang-cl builds

* v db

* use correct <> isntead of ""

* v db

* make the patch depend on _MSC_VER

* v db

* fix bug in vcpkg_configure_meson not linking WindowsApp.lib
fix another bug that system=windowsstore which meson doesn recognize

* bump port version

* v db
2022-08-17 12:36:12 -07:00
Kai Pastor
687f4aab11
Save meson logs on failure (#25806)
* [vcpkg_configure_meson] Save log files on error

* Document SAVE_LOG_FILES option
2022-07-18 13:21:36 -07:00
Jamlys Lee
de176433e9
[meson] Add support for loongarch64 cpu. (#25615)
* Add support for loongarch64 cpu.

* update ci.baseline.txt

* Revert "update ci.baseline.txt"

This reverts commit 0b3f4851bc05a4101f07a865a9260915e5385763.

* Allow user to add additional options for meson within custom triplet.

Co-authored-by: Jamlys Lee <jamlys_lee@163.com>
2022-07-17 19:41:15 -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
Jack·Boos·Yu
0d7603c4ef
[vcpkg_setup_pkgconfig_path] Add new functions to set or restore pkgconfig related environment variables (#23429)
* [vcpkg_configure_meson] Fix append host path

* New functions vcpkg_setup_pkgconfig_path and vcpkg_restore_pkgconfig_path

* Fix bug, add cos

* Apply suggestions

* Apply suggestions

* Apply suggestion

* doc

* Update docs/maintainers/vcpkg_setup_pkgconfig_path.cmake.md

Co-authored-by: LilyWangLL <94091114+LilyWangLL@users.noreply.github.com>

* Update scripts/cmake/vcpkg_setup_pkgconfig_path.cmake

Co-authored-by: LilyWangLL <94091114+LilyWangLL@users.noreply.github.com>

* Update scripts/cmake/vcpkg_configure_make.cmake

* Apply suggestions

* Apply suggestion

* Apply suggestions

Co-authored-by: Victor Romero <viromer@microsoft.com>
Co-authored-by: LilyWangLL <94091114+LilyWangLL@users.noreply.github.com>
2022-05-09 17:23:32 -07:00
Alexander Neumann
c556911a79
[vcpkg] Refactor toolchain & generator selection (#23846)
* put default generator and toolchain selection into a function

* update version-date of script

* version stuff

* restore PREFER_NINJA behavior on windows
use elseif instead of else

* cr ws change

* missing ,

* version stuff

* CR scripts/cmake/vcpkg_configure_cmake.cmake

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

* CR changes

* revert baseline

* update version

* bump version

* version stuff

* ci retrigger

Co-authored-by: Alexander Neumann <you@example.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2022-04-11 15:57:36 -07:00
Daniel Schürmann
a34997af6c
[vcpkg] Meson osx sysroot (#21772)
* [get_cmake_vars] add -isysroot flag independednt of crosscompiling

Even without crosscompiling it is possible to specify a VCPKG_OSX_SYSROOT or
a SDKROOT this should be popagated to autotools and meson builds as well.

* [meson] add -arch and -isysroot to linker flags in case of osx crosscompile

* [meson] avoid DEPRECATION warning about flags in the [properties] section

* [meson] don't set OSXROOT evironment varibale

* [meson] don't set MACOSX_DEPLOYMENT_TARGET environment variable

cmake appends the -mmacosx-version-min flag c/cxx flags, overriding the
value set via VCPKG_C_FLAGS. By setting the environment variable, the
VCPKG_C_FLAGS value was used for meson builds. Now the same value is
taken for both.

* [meson/make] Add CMAKE_OSX_DEPLOYMENT_TARGET to VCPKG_DETECTED_CMAKE_C_FLAGS

This is done in the same way in CMake internally
2022-02-24 11:04:11 -08:00
Alexander Neumann
8060230922
[meson] fix windows linker detection (#22032)
* fix meson linker detection .....

* bit of code cleanup in vcpkg_configure_meson

* forgot the version stuff

* put cmake back on path because meson is buggy as hell
2021-12-16 22:47:16 -08:00
Alexander Neumann
163065a352
Update meson to 0.60.2 (#21542)
* update meson to 0.60.1

* add port vcpkg-tool-meson for consistency deprecate usage of tool-meson

* [skip actions] make every port using meson depend on vcpkg-tool-meson
(except pkgconf for now.)

* fix subtle bugs in vcpkg_find_acquire_program
make the port install meson if the system does not provide it.

* make pkgconf depend on meson

* restore old vcpkg_find_acquire_program behavior for versioning

* Update ports/gstreamer/vcpkg.json

remove duplicated dependency

* remove invalid option in glib

* [skip actions] fix ci failures?

* remove invalid option in gstreamer

* try without cmake

* get more logs from meson configure.

* update glib to 2.70.1

* fix typo

* fix pc file of flac

* update meson to 0.60.2

* try the patch from the other pr.

* patch meson .....

* version stuff

* fix port version

* fix gstreamer version

* remove version

* format-manifest

* version stuff

* format manifest again

* revert version stuff

* remove outdated gtk options

* version stuff

* pango version stuff

* correct baseline lost in merge

* Fix fontconfig version db

Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2021-12-02 15:48:34 -08:00
simon987
16c865ef98
Fix cpu detection in meson configuration script (#21382) 2021-11-16 16:50:43 -08:00
Jack·Boos·Yu
cf308f37ce
[script audit] Meson buildsystem (#21026)
* [script audit] Meson buildsystem

* Apply suggestions, fix build

* Fix non-Windows build

* Fix debug path in meson config

* Fix env pkgconfig path

* Apply suggestions

* Nicole's CRs

* oops

* Apply suggestions

* final changes

* fix typoes

Co-authored-by: nicole mazzuca <83086508+strega-nil-ms@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2021-11-08 12:27:18 -08: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
Krisztián Szabó
bb92b7d34d
CMake binary is now supplied to Meson in cross-compile configurations. (#19727)
Co-authored-by: PhoebeHui <20694052+PhoebeHui@users.noreply.github.com>
2021-09-24 12:02:48 -07:00
autoantwort
c24f57e9fc
[meson] fix cross compiling from linux to windows (#18927)
* [meson] fix cross compiling from linux to windows

* Fix mingw system name

* Omit empty fields from standard libraries

* Use VCPKG_CROSSCOMPILING

* vcpkg_configure_meson: do not double escape include paths

* vcpkg_configure_meson: set winres instead of rc

* vcpkg_configure_meson: do not always cross build

* Apply suggestions from code review

* fix the issue I made

* [meson] error when gcc uses a different linker executeable

* [meson] apply code review from strega-nil

* [meson] more verbose error messages

* [meson] remove wrong check

Co-authored-by: Kai Pastor <dg0yt@darc.de>
Co-authored-by: nicole mazzuca <83086508+strega-nil-ms@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2021-09-09 20:41:01 -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
Vitaly
c8666b7acd
[vcpkg] Add debug_message to vcpkg_configure_meson.cmake (#18207)
* Add debug_message to vcpkg_configure_meson.cmake

* Update vcpkg_configure_meson.cmake

* Update vcpkg_configure_meson.cmake
2021-07-15 15:15:36 -07:00
Alexandre Bique
37a5a94f48
[meson] fix build_machine (#17845) 2021-05-26 14:00:07 -07:00
pastdue
449b85b1e5
vcpkg_configure_meson: mingw build fix (#18026) 2021-05-24 15:09:58 -07:00
Alexander Neumann
8646c6587b
[vcpkg/meson] fix some details (#15756)
* [vcpkg_install_meson] add bin to path to run code generators

* [vcpkg_configure_meson]
deactivate native compiler in cross builds
make x86 on x86_x64 a native instead of a cross build
(as long as we are not building for UWP)

* remove double spaces in _FLAGS
remove unnecessary comments

* change regex to take double - into account.

* add missing removal of multiple spaces back into the regex

* remove ws diff change

* remove ws to reduce diff

* Change macro to function

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

* UWP is cross target.

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2021-03-31 11:54:44 -07:00
Jesse Towner
a037d82649
[vcpkg] vcpkg_configure_meson: cross-compile fixes for Android (#16260)
* [vcpkg] vcpkg_configure_meson: cross-compile fixes

This change includes two fixes to the meson cross-compile config.

The first change fixes the regex used to partition linker flag
options so that it supports double-hyphen prefixes.

The second change ensures that the cross file is always generated
when the target platform is either Android or iOS, even if the
host and target CPU architectures are the same.

* Use helper function instead of regex replace

Use vcpkg_internal_meson_convert_compiler_flags_to_list to partition
compiler flags into a list, instead of string(REGEX REPLACE ...).
2021-02-20 21:29:35 -08:00
pastdue
d6105181a3
[vcpkg] vcpkg_configure_meson: Support macOS cross-compile (#15867)
* vcpkg_configure_meson: Support macOS cross-compile

* Update scripts/cmake/vcpkg_configure_meson.cmake

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

* Use adapted regex instead, utilize for native file config as well

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

Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>
2021-02-11 00:44:49 -08:00
Alexander Neumann
9c63f97fa1
[mesa] new port (#14640)
* [mesa] new port

* make mesa build more.

* more fine tuning

* fix x86

* add supports.

* comment about EGL feature.

* apply suggestion from CR.
added opengl feature.
error on disabled shared glapi if multiple GL APIs are selected.

* fix boolean option

* make sharedgl-api=true the hardcoded default

* add suggestion from CR

* add mesa:x64-windows-static=fail to ci.baseline.txt due to static crt and parts being a dynamic library.

* apply CR sugesstion

Co-authored-by: PhoebeHui <20694052+PhoebeHui@users.noreply.github.com>
2021-01-11 16:12:01 -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
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
Alexander Neumann
3217e25596
[meson|scripts] update scripts (#12945)
* Update meson to a recent commit to fix a bug with 0.56

* rename static libraries built by meson by default on windows

* apply cmake variables detection to meson.
use native/cross files
make arm builds work.

* update munit

* fix fribidi

* fix _FLAGS variables

* set env SDKROOT and MACOSX_DEPLOYMENT_TARGET in configure_meson

* need osx env while building and configuring

* - remove unused env backup functions
- rename internal functions to be prefixed with _vcpkg_
- fix VCPKG_CHAINLOAD_TOOLCHAIN_FILE for ios/freebsd

* replace _vcpkg with vcpkg since _ has special meaning in functions

* rename functions to vcpkg_internal_meson_generate

* update control tool-meson
2020-11-18 13:36:20 -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
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
bd0c7106f9
[vcpkg] Make configure meson sane and work for all targets. (#10395)
* fix configure meson for non windows builds.

* change to the two ports using meson

* fix passing of empty compiler arguments.

* dont transform / into - for all flags

* copy meson logs into the buildtree to better diagnose CI errors of meson ports

* another change to the two ports to actually force a CI rebuild

* add missing /pkgconfig dir to PKG_CONFIG_PATH

* fix pkgconfig setup

* add share/pkgconfig to PKG_CONFIG_PATH

* Add CMake path to PATH for meson

* add share folder to prefix for meson

* remove double message

* add libdir so that meson does not install into architecture folder in linux
and make prefix path target dependent. (Or should it be host dependent?)

* bump controls

* update toolchain selector to use VCPKG_TARGET_IS_<paltform>.

* change pkgconfig prefix and path.....
meson is not correctly handling native windows paths and eating "\"
PKG_CONFIG_PATH also nees : to correctly separate paths
Prefix still must be near to native path but with / instead of \ C:/somepath/
2020-04-06 14:43:16 -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
Wolfgang Stöggl
6e30ee1ae8 vcpkg_configure_meson - Remove compiler flag /Oi (#8667)
Removing the compiler flag /Oi (Generate Intrinsic Functions) allows
meson to detect functions like memmove, memset correctly. This is
relevant to meson configure for fribidi (see fribidi/meson.build).

This fixes the following "issues" (from fribidi meson-log.txt):
  testfile.c(17): error C2168: 'memmove': too few actual parameters for
  intrinsic function
  Checking for function "memmove" : NO
  testfile.c(17): error C2168: 'memset': too few actual parameters for
  intrinsic function
  Checking for function "memset" : NO

And enables detection of the functions:
  Checking for function "memmove" : YES
  Checking for function "memset" : YES
2019-10-21 15:25:58 -07:00
Norbert Nemec
11506d1426 set cmake_prefix_path correctly within vcpkg_configure_meson 2019-06-20 16:37:45 +02:00
Charlie Barto
7340d6ac55 make meson not download things (#6667) 2019-05-31 02:50:05 -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
5335d17f53 [vcpkg] Initial experimental support for VCPKG_BUILD_TYPE release 2017-11-25 15:25:18 -08: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
codicodi
6ca475a5b4 add libepoxy 2017-02-09 18:13:52 +01:00