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>
* [fontconfig] update fontconfig
* [libiconv] update to make
* [gettext] update to make
* [vcpkg_configure_make] Changes considering pure configure ports without the requirement to run autoconfig
* [fontconfig] make it work on windows
* Remove install of unofficial cmake config
* add function get_cmake_vars
* fine tuning.
* apply to make based ports.
* add log suffix on not windows platforms
* fix c&p error
* add previous LINK env
* setup env on windows and extract cpp flags correctly.
* update glib and libxml2
* fix windows regressions
* Apply suggestions from code review
* add windres wrapper to invoke RC.
* remove wrong fi
* fix libintl.
* try fixing uwp
* other things to update
* exiv2 fix
* libtool does not like -RTC1
* pass the /RTC<x> flag directly to the compiler
* trust cmake instead of adding extra flags
* fix expat
* fix iconv wrapper install
* change fontconfig intl linkage.
* add appcontainer back in which is required for UWP. Why is this not in the cmake flags?
* fix pkg-config in vcpkg_configure_make
* fix json-c pkg-config installation
* remove remnoved config
* comment out debug messages + bit of tuning
* finally fontconfig
* comment debug messages
* expat apply extra patches.
* Switch back to -E instead of -EP in cpp
* commit changes from fontconfig PR
* [expat] fix expat details
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
* cleanup docs
* update osx pipeline so that fontconfig actually builds
* fix expat the lazy way by using a higher commit than release
* fix a barage of regressions due to the use of unofficial targets
* [expat] use a higher commit hash with a better stabilized cmake build
* forgot freexl regression
* more unofficial fixes
* fix downstream expat usage
* fix wxwidgets
* fix gcdm regression
* [vtk] fix the regression due to expat
* add uwp cl flags back in. Somehow those are not set by cmake
* add a few other configure options for full gettext build
* fix cmake regression
* fix a few regressions
* fix static gettext build
* fix gettext static
* fix libxml2 wrapper for cmake
* some more regressions fixes
* add conversion from somelib.lib to -lsomelib
* add a few option to libiconv.
* get logs from CI
* add missing ar-lib wrapper
* add missing ar-lib wrapper
* add fatal error to gettext
* remove uuid from the list of LIBS since it seems to not exist in CI?
* small but important regex correction
* fix regex and add debug message for libs
* remove error and only build libintl.
* add uuid dependency to fontconfig in qt5-base
* osx install gettext for autopoint
* fix io2d regression by saying the port is broken .....
(which it is; upstream needs to learn proper cmake)
* restore the old libxml2 wrapper with minor modifications
* fix xmlsec regression
* install wrapper correctly
* try actual fixing io2d
* improve iconv wrapper
* add latest changes from update_fontconfig PR
* Apply suggestions from code review
first set which don't need special attention
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
* Apply suggestions from code review
one more simple change
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
* [x264] set env AS
* fix bugs due to refactor
* use subpath everywhere
* apply changes from CR
* fix fontconfig build.
* only change libs in static builds
* remove unnecessary lines 41 & 44
* remove flag transformation
* reintroduce the flag / to - transformation for MSVC
* trying to figure out autopoint issue.
using wrong (windows) find.exe instead of msys
* add correct working_dir to subpath
* escape stupid env paths.
* fix typo
* add findutils
remove debug messages
* add error if libtool chokes
* add file to msys
* pass lt_cv_deplibs_check_method=pass_all on windows
(couldn't get file.exe to work so that libtool correctly ids the passed libs)
* add bzip2 to msys
* reenable libtool check. Lets see if CI agrees
* unbreak linux
try to figure out where uuid should be on windows.
* add -L flag and help libtool ?
* try to get ci to find uuid.
* try to use cygpath
* update controls
* cleanup merge mistakes
* correct merge issues
* determine cmake vars if not done before.
* move adding of -l earlier
* more merge cleanup
* fix uwp builds by not transforming libs
* fix patches in io2d
* fix xz download error
* apply code review changes manually
* fix the typos left behind in CR
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
* remove unfinished "supports" tag
* extract "supports" from control files
But do nothing with the value
* Start `Supports` documentation
* Use Supports in a bunch of control files
I only tried matching the already existing logic in the portfile.cmake.
* Cmake var provider (#8)
* Cmake var provider (#9)
* fix windows build (#10)
* Add missing files to build
* Fix test (#11)
* adding hooks for cmake variables in expressions
* Adding hooks for 'supports' in CI test
* Fix test (#12)
* Add overrides to evaluation environment
* use "supported" tag in CI testing
* cleanup comment
* Fix issues with PR
* [var_provider] Get library linkage variables from triplet
* Fix compilation errors in tests
* Add unimplemented functions
* Fix unit tests part 1
* Fix issue when buildtrees dir does not exist
* Change binary output hash
* Fix handling of * feature
* Add core feature when using *
* Do not add Default-Features when installing 'core'
* [vcpkg] WIP. 6 failing tests.
* [vcpkg] WIP. 1 failing tests.
* [vcpkg] WIP. 0 failing tests.
* [vcpkg] Removed 'remove_graph'. 0 failing tests.
* [vcpkg] Removed 'install_graph'. 0 failing tests.
* [vcpkg] Remove AnyAction; replace with ActionPlan
* [vcpkg] Minor cleanup.
* [vcpkg][z3][qt5-connectivity][qt5-purchasing] Improve error messages while parsing. Fix a few trivial port issues.
* [vcpkg] Work around ICE with MSVC v140
* [vcpkg] Add purge on fail to decompress for CI
* [vcpkg] Fix parsing of nested parentheses in qualifiers
* [vcpkg] Fix Linux builds (explicit qualification in declaration)
* [vcpkg] Fix Build-Depends implying default features. Fix qualified dependencies regression.
* [mmx] Add to skip list and full rebuild -- mmx causes problems by installing 'sched.h'
* [libpqxx][mqtt-cpp] Prevent installing include/CMakeLists.txt
* [cppitertools] Fix installed include namespace (should be include/cppitertools)
* [libsoundio] Move headers into soundio/ subdirectory as per original cmake
* [ci.baseline] Temporarily skip charls due to conflict with dcmtk
* [vcpkg] Add restricted include files post build check -- bump global abi version
* [libsoundio] Hotfix stray line in portfile
* [vcpkg] Fix regression: CMake information was not being displayed for build-and-install actions
* [jsonnet] Fix installation of internal headers; use system nlohmann-json
* [grpc][upb] Teach grpc to use packaged upb. Add find_package(upb). Remove inappropriate upb features.
* [zfp] Move problematic 'include/bitstream.h' to 'include/zfp/bitstream.h'
* [x265] Bump control version to trigger rebuild after zfp conflict
* [akali] Disable parallel configure
* [dirent][dlfcn-win32][getopt-win32][pthreads] Grandfather into VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS
* [ci.baseline] Update baseline for improved upb support
* [tgui] Disable parallel configure
* [libiconv] Enable VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS
* [aws-sdk-cpp] Disable parallel configure
* [vcpkg] Implement policy VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS
* [aws-sdk-cpp] Fix amount of escaping semicolons -- Note: I do not know the root cause requiring this change
* [libodb-sqlite] Fix configuring into source directory
* [gettext] Grandfather into VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS
* [libodb] DISABLE_PARALLEL_CONFIGURE
* [vcpkg] Add 'config.h' and 'local.h' to restricted header list
* [mcpp] Remove unused and problematic include 'config.h' from installed files
* [teemo] Move installed headers into subdirectory to prevent conflicts with x265
* [ci.baseline] Update current OSX. Skip libmesh on all platforms due to heavy conflicts.
* [vcpkg] Add 'slice.h' as a restricted header
* [osg] Improve accuracy of dependencies (disable some, add some to Depends)
* [vcpkg] Skip invoking a subprocess for 0 specs in load_tag_vars
* [ci.baseline] Skip mongo-c-driver on osx due to flakiness
* [teemo] Fix incorrect include file read
* [osg] Fix dependency typo: glut -> freeglut
* [vcpkg] Recover some lost performance with the addition of vcpkg_get_tags.
A huge performance cost was loading the triplet files over and over; instead, we splice the sources into a macro and load it once, then just call that macro for each port.
Remove use of hashing because we aren't cross-process-safe anyway (global static will do instead).
* [vcpkg] Change Supports atom 'windows' to include UWP. Improve Supports field documentation.
* [vcpkg] Add docs for VCPKG_ENV_PASSTHROUGH and VCPKG_DEP_INFO_OVERRIDE_VARS
* Fix typo
Co-authored-by: Curtis J Bezault <curtbezault@gmail.com>
Co-authored-by: Victor Romero <romerosanchezv@gmail.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>