If a call to `vcpkg_replace_string` makes no changes i.e doesn't
effectively replace a string, A warning is logged.
This should also help identify ports that no longer need these calls to
fix things in `.pc` files etc.
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.
* Support cross-compiling Objective C code using Meson
The glib port uses Objective C code and the Meson build system.
You'll end up cross compiling glib when compiling for x64 osx
on an arm64 osx machine, or vice versa.
For this to work, an Objective C compiler needs to be set
in the Meson cross file.
vcpkg generates this file based on the
`scripts/buildsystems/meson/meson.template.in` template, and expects
the `MESON_OBJC` CMake variable to be set.
That's the job of `z_vcpkg_meson_set_proglist_variables` in
`scripts/cmake/vcpkg_configure_meson.cmake`. It will only generate data
for an Objective C compiler if:
- The `Languages` argument includes `OBJC`
- CMake has detected a Objective C compiler, and has set `VCPKG_DETECTED_CMAKE_OBJC_COMPILER`
To make this work, this patch:
- Enables the OBJC and OBJCXX language on Apple platforms
- Updates the call to `vcpkg_configure_meson` in the glib port file
to include the OBJC OBJCXX languages.
Fixes https://github.com/microsoft/vcpkg/issues/26147
Fixes https://github.com/microsoft/vcpkg/issues/20341
Based on https://github.com/microsoft/vcpkg/pull/26259
Based on 27dee354e4
Tested on an arm64 mac to compile glib for x64 macos
* Update version database
* Xbox triplets should not support ports with only copyleft licenses
* Reverted ports that build with xbox currently
* Fix conflict and rebase
* Update baseline
* Update baseline
* [glib] Update to 2.75.3.
* [glib] Fix intl detection when consumed in CMake.
When consuming glib in CMake through `pkg_check_modules`, libintl
(provided by `gettext`) needs to specified in the pc file as `-lintl`
without any quotation. Otherwise it is not picked up as a dependency
and static linking fails.
Also `vcpkg_fixup_pkgconfig` needs to be called before editing pc files.
* [glib] Cleanup portfile.
* [glib] Update baseline.
* [glib]: bump version to 2.74.0
* Disable gtkdocize for libmount
* restore git-tree
* update version
* Recommend installing libselinux1-dev to enable selinux support
Co-authored-by: Jonliu1993 <13720414433@163.com>
* [glib] Support static build on Windows.
As suggested by @Neumann-A
* Remove ci.baseline.txt entries.
* ci.baseline.txt updates.
REGRESSION: atk:x64-windows-static failed with BUILD_FAILED. If expected, add atk:x64-windows-static=fail to C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: gdk-pixbuf:x64-windows-static failed with BUILD_FAILED. If expected, add gdk-pixbuf:x64-windows-static=fail to C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: glibmm:x64-windows-static failed with BUILD_FAILED. If expected, add glibmm:x64-windows-static=fail to C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: glibmm:x64-windows-static-md failed with BUILD_FAILED. If expected, add glibmm:x64-windows-static-md=fail to C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: gstreamer:x64-windows-static failed with BUILD_FAILED. If expected, add gstreamer:x64-windows-static=fail to C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: gstreamer:x64-windows-static-md failed with BUILD_FAILED. If expected, add gstreamer:x64-windows-static-md=fail to C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: lcm:x64-windows-static-md failed with BUILD_FAILED. If expected, add lcm:x64-windows-static-md=fail to C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: libgxps:x64-windows-static-md failed with BUILD_FAILED. If expected, add libgxps:x64-windows-static-md=fail to C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt.
Previously blocked by glib supports expression.
REGRESSION: mfl:x64-windows-static-md failed with BUILD_FAILED. If expected, add mfl:x64-windows-static-md=fail to C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt.
This was not blocked before but it's an ICE; I'm going to hope it's intermittent I guess?
Drive by fixed alphabetizing boringssl.
* [mfl] Skip ICE.
* openscap was previously blocked by the supports, the others are just extending the static-md skip to static.
* [glib] Update to 2.70.5 (microsoft#23647)
See https://github.com/GNOME/glib/commits/glib-2-70 for an
extensive list of changes
* [glibmm] update to 2.70 (microsoft#23649)
See https://github.com/GNOME/glibmm/commits/glibmm-2-70 for an
extensive list of changes
* [glibmm] support msvc2022 (microsoft#23650)
The latest release of glibmm manually configures the v142 compiler
toolchain to be used on msvc2022 environments, which results in
binarycache and export metadata to indicate msvc's v143 compiler
having built the package while it was in fact the v142 toolchain
from the windows sdk.
Upstream has "fixed" this issue, but the patch didn't make it into
the latest release. Apply
https://github.com/GNOME/glibmm/commit/b3a77c3
manually on our side to make sure we use the toolchain we
instructed to be used.
* Bulk remove vcpkg_fail_port_install calls.
Interesting ones have been split out into separate reviews, where "interesting" means "anything more than just deleting the call to vcpkg_fail_port_install",
In support of https://github.com/microsoft/vcpkg/pull/21502
* Update version database.
* Revert google benchmark changes already submitted as https://github.com/microsoft/vcpkg/pull/22728
* Repair version database.
* 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>
* update glib to meson
* update ci baseline
* update glib to 2.66.3
remove cmakelists
* fix some minor meson issue but meson is still a mess
* add_bin_to_path to vcpkg_install_meson
* regen docs
* try fixing/touching all glib dependent ports
* fix libsigcpp-3 version
* fix glibmm
* fix gmime
* fix libcroco
* update libnice
* fix atk build
* update harfbuzz
* fix few builds
* update libxmlpp
* fix gdk-pixbuf
* fix gts
* gts add patch
* remove old libsigcpp
* add missing comma
* fix supports logic
* fix name mismatch
* restore original ci baseline.
* fix a lot of small details.
increment controls.
* fix harfbuzz & glib
* bump port version
* update port_versions
* fix version field
* update versions
* fix glib in harfbuzz
* update port versions
* silly uppercase type
* update port-versions
* fix cairo build
* update version
* fix atk
* update atk port-verisons
* fix gts public includes
* update versions
* fix cairomm
* fix pango
* fix ignition
* update versions.
* fix gtk
* fix librsvg
* update versions
* fix atk linux
* fix libgpod
* update versions
* fix lcm
* fix librsvg
* update pango and pangomm
* update pango to meson
* more updates
* update pixman
* fix cairo
* fix cairo
* some fixes
* reorder meson a bit
* add none.txt for meson
* fix x86_x64 to x86 "cross" builds
* add tiff pkgconfig
* update gdk-pixbuf
* fix tiff and jpeg
* add graphene
* fix gdk-pixbuf
* add sassc
* update gtk
* fix cairo complete build
* add harfbuzz inlcude in pango since meson does not add it into pkgconfig.
* fix gtk build. Remaining issue fix install script.
* fix gtk build
* fix io2d
* add supports field
* fix cartographer?
* fix librsvg build
* fix gtk build
* fix cartographer
* fix sassc on linux
* fix tiff and libjpeg pc files
* fix pixman x86
* _isnanf is undefined on arm-
* merge fix for make on arm64
* fix gdk-pixbuf on arm64-windows
* pixman remove test/demos.
should fix it on osx.
* [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)
* pixman reenable UWP support.
* pixman reenable arm support
* add pixman:arm-uwp=fail to baseline
* update gtkmm
* remove double whitespaces
* gtk baseline
gtk dependency on cairo x11
remove double spaces in flags
* fix linux build
* native none again
* cairo fix cairo-script.pc
* comment out patch since the cairo changes should have fixed it.
* disable wayland backend in GTK since CI is missing system packages
* silly typo in cairo pc file correction
install lzo pc on windows
* remove double spaces in _FLAGS
remove unnecessary comments
* actually disabling wayland backend
* fix glib codegen issue having the wrong path
* try to fix paths in glib codegen
* integrate changes form #12860
* add the uwp patch back in
* deactivate extra harfbuzz shapers.
* vcpkg x-add-version --all --overwrite-version
* remove patches in tesseract.
* fix version
* rerun add-version
* add libgpod:x64-linux=fail to baseline due to missing system tools/libraries
* change regex to take double - into account.
* run x-add-version
* run format-manifest
* add missing removal of multiple spaces back into the regex
* remove ws diff change
* fix gtkmm the upstream way
* remove ws to reduce diff
* make glib build on osx
* format manifest
* run x-add-version
* add pthread dependency
* update baseline due to glib compiling on osx now.
* add meson as a dep to glib
* - add glib host dependencies
- switch to manifest of touched ports
* switch to manifest.
* [libxml2] add gnuinstalldirs
* [libxml2] add missing include of GNUInstallDirs
* add version info
* add include dir to pc files ....
* update version
* add UWP as crosscompiling target
* Apply suggestions from code review
* trying to fix cairo pthread detection on osx.
* fix libmicrohttpd by adding the required system frameworks on osx
* fix poppler by not removing the CXX standard
* fix missing coretext header from harfbuzz in pano
* fix formating issues
* fix librsvg on osx
* revert version changes
* bump version
* version stuff.
* fix graphene version stuff
* fix version stuff
* removing ports from ci baseline to cause me pain
* move cairomm:x64-linux=fail
to gtkmm:x64-linx=fail
remove pangomm:x64-osx=fail
* fix typo
* revert ws changes to vcpkg_install_meson
* update port version after merge
* version stuff
* fix fluidsynth by adding vcpkg_check_features
* move cairo to ci baseline on osx
* version stuff
* fluidsynth corrections
* more version stuff
* apply code review changes
* clean version stuff.
* update version stuff
* code review cleanup
* version stuff
* formating
* update version stuff again
* remove gdi again
* version stuff
* version stuff
* version baseline
* Apply strega-nil suggestions from code review
* run x-add-version
* reset versions to upstream/master
* v8 CONTROL -> json
* reset fluidsynth to upstream/master
* first batch of version-string -> version conversion
* second and last batch of version-string -> version conversions
* update version stuff
* disable gdi feature in harfbuzz (missing user32 linkage in qt5-base)
* version stuff
* Apply suggestions from code review
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* more CR stuff
* update versions
* back out provision changes so that pr can be merged.
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>