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.
In an internal version of Visual Studio, `arrow`, `concurrencpp` and
`qtwebengine` install failed with following error:
```
arrow: \cpp\src\arrow/json/object_writer.h(39): error C2039: 'string': is not a member of 'std'
concurrencpp: \include\concurrencpp/threads/thread.h(23): error C2039: 'string': is not a member of 'std'
qtwebengine: \src\3rdparty\gn\src\gn\escape.h(77): error C2039: 'string': is not a member of 'std'
```
This issue caused by the STL PR:
https://github.com/microsoft/STL/pull/4633, and according to Stephan's
suggestion, the affected files need to include the `Standard <string>
header`.
I have submitted an issue on the qt upstream:
https://bugreports.qt.io/browse/QTBUG-126156
- Fix control of cups dependency
- Fix binary and directory name collision in dynamic builds by not
deploy plugins into tools/Qt6/bin (wasn't necessary in the first place
due to qt.conf working as expected) (closes#28340)
- (New) Fix deploy script on windows (closes#38936)
- Fix dbus linkage as described here
https://github.com/microsoft/vcpkg/pull/38682#issuecomment-2106308954
- Fix qtwebengine resource location to be in line what is stated in the
generated `qt.conf`. There is probably a variable to control the
installation location but moving was simpler then trying to find that
variable. You will only notice it if you actually try to run a program
using QtWebEngineProcess with the same `qt.conf`
* Fix ICU support option
* update version
* [libxml2] Fix ICU support option
* format vcpkg.json
* update version
* Add qtwebengine depend on libxml2[icu]
* update version
* update version
* update feature
* update version
---------
Co-authored-by: vzhli17 <v-zhli17@microsoft.com>
* [Qt] Update to 6.6.0
* fix patch in qtbase
* add tmp port to get qtwebengine logs
* remove dep in tmp port
* Fix CMAKE_BUILD_TYPE being hijacked by qt scripts.
* Fix qtwebengine build?
* add another script to be fixed
* remove path to cmake
* fix qtgrpc
* looks like the variable is defined somewhere.
* avoid aliasing only if the target exists
* try different aliasing fix
* fix patch
* Dep stuff
* reenable atomics
* reenable librt
* remove tmp
* v db
* v db
* add vulkan-header as a dependency
* v db
* also needs libs
* v db
* add a comment to remember me not to touch this again
* v db
* [qt] update to 6.4.2
* v db
* qtspeech prepare for features if required ports get added
* v db
* retry
* remove patch
* add failing tmp port to get CI logs for qtwebengine ....
* try deactivating jumbo build
* add patch to fix std issue
* remove tmp port
* v db
* deactivate qtspeech on x86 & windows due to call conv
* v db
* try qt 6.4-beta4
* fix patch
* fix copyright install
* fix qtdeclarative
* always perform import prefix correction
* adjust qtmultimedia
* fix qttools
* add missing "
* fix linux ?
* fix qtmultimedia with gstreamer
* fix qtvirtualkeyboard
* fix qtwebengine
* fix qmllint regression in qtdeclarative on osx/linux
* fix details
* fix qttools deps
* fix qtdeclarative deps
* remove xcb feature
* fix hunspell patch
* bump qtbase
* add qt3d
* format manifest
* test features in CI
* pass ci baseline stuff
* vulkan is skip in ci so cannot force it.
* remove extra ,
* fix deps
* try to fix promotion
* gstreamer adjustments.
* fix gstreamer on linux
* fix gstreamer stuff
* fix x264 api import macro
* fix gst-rsp-server
* correctly replace
* promote targets....
* enable arm64 qtwebengine
* --trace-expand
* install wrapper for egl.
* add newline
* remove opengl from skip list
* add gl to link
* another try
* retry again
* test dynamic angle linkage
* retry
* link XNVCtrl
* retry
* add libxnvctrl
* retry
* retry again...
* move wrapper to angle
* revert changes to egl-reg
* more debugging
* try again
* fix stuff
* add missing ,
* egl stuff
* wrapper stuff
* fix angle
* remove double dep
* remove libxnvctrl
* format manifest
* revert trace
* bump version
* bump v
* v db
* remove trace
* v db
* refine supports
* v db
* remove qtmultimedia from baseline
* format manifest
* update all the stuff
* refine qtmultimedia
* fix qtmultimedia?
* fix stuff
* fix stuff ?
* trace again
* Try fixing qtmultimedia for static windows builds.
* is ci faster than me...?
* refine
* fix gstreamer static usage
* fix all the qt things!
* fix the path
* try getting logs.
* fix patch
* trace stuff
* only fix stuff when it needs fixing
* force lookup of system EGL. migth need a wrapper in opengl instead.
* try fixing opengl
* don't directly call _find_package
* don't search in install prefix
* retry
* disable trace
* have the correct fix for linux ?
* move angle into a subfolder. No way to deal with it otherwise on linux.
* make the wrapper do nothing
* try fixing allegro5
* lower case
* remove wrapper
* v db
* remove trace
* v db
* remove trace
* v db
* try fixing allegro5 on arm
* retry again
* try again
* revert allegro
* put on ci baseline
* v db
* v db
* bump port
* v db fix
* remove conflicting wrapper
* v db
* glib now uses pcre2
* fix gstreamer picking up egl on windows
* v db
* fix find_package call
* Add bullet feature control
* Disable Qt
* Update versions
* Remove obsolete qt patch junk
* Update versions
* v db
* comments
* v db
* v db
* v db
* v db
* restore correction lost in merge
* v db
* promote to global
* v db
* Fix minimal qtbase builds with opengl disabled
* make host dependency on qtshadertools a normal dependency in qtmultimedia.
* v db
* opengl dynamic doesn't work on !windows
* v db
Co-authored-by: Kai Pastor <dg0yt@darc.de>
* bump qtbase
* add qt3d
* format manifest
* test features in CI
* pass ci baseline stuff
* vulkan is skip in ci so cannot force it.
* remove extra ,
* fix deps
* try to fix promotion
* gstreamer adjustments.
* fix gstreamer on linux
* fix gstreamer stuff
* fix x264 api import macro
* fix gst-rsp-server
* correctly replace
* promote targets....
* enable arm64 qtwebengine
* --trace-expand
* install wrapper for egl.
* add newline
* remove opengl from skip list
* add gl to link
* another try
* retry again
* test dynamic angle linkage
* retry
* link XNVCtrl
* retry
* add libxnvctrl
* retry
* retry again...
* move wrapper to angle
* revert changes to egl-reg
* more debugging
* try again
* fix stuff
* add missing ,
* egl stuff
* wrapper stuff
* fix angle
* remove double dep
* remove libxnvctrl
* format manifest
* revert trace
* bump version
* bump v
* v db
* remove trace
* v db
* refine supports
* v db
* remove qtmultimedia from baseline
* [qtbase] Change qt source downloads to point at GitHub
* [qtbase] Rewrite update system to emit tarball data
* [qtbase] PR feedback
* Update Qt to 6.3.1
* reenable qtlocation ?
* v db
* move buildtrees - to b in pipeline; trying to get webengine logs
* fix patch
* v db
* remove special handling of arm cross case fixed in windows toolchain
* v db
* Fix stuff
* fix more stuff
* fix more stuff
* retry
* fix regex replacement
* fix regex stuff. And qtinterface ref?
* more fixes
* remove unused variable
* v db
* Revert scripts/azure-pipelines/test-modified-ports.ps1
* v db fix
* revert qtlocation changes
* revert v db
* v db
* v db
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
* QT arm64-windows build (WIP)
* Updated versions
* Undo changes made to graphviz in error
* Only remove OpenGL for ARM
* Update version database
* Update version database
* updated libs not compatible with uwp+arm
* Update version database
* Enable QT in CI
* qt5-base not compat
* Update ports/qtapplicationmanager/vcpkg.json
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
* Update ports/qt5-imageformats/vcpkg.json
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
* Updated versions
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
* Take gperf from vcpkg tool if possible
* [gperf] Install binary into tools/gperf/
* Fix kf5codecs gperf bug
* Add PREPEND to freetds port
* fix gperf for qtwebengine
* make gperf modern port
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
* qtwebengine ice fix
* move CURRENT_BUILDTREES_DIR only if necessary
* version stuff
* create tmp dir.
* version update
Co-authored-by: Alexander Neumann <you@example.com>
* [Qt6] Latest feature to 6.3.0
* move failing patch to !latest
* remove debug/include
* more fixes
* more fixes
* more fixes
* give me the binary names making it fail.
* add new binary
* fix qtimageformats
* fix regressions?
* retry qtopcua
* fix regressions
* correctly guard python
* more fixes
* add vcpkg-get-python-packages
* hack webengine build to see if it will work.
* move hack to a different position
* noramlize path
* update refs to 6.3 release
* fix details
* qtwebengine back to fail on baseline
* comment long path stuff out since qtwebengine cannot be build with VS 2022 any way
* update version to 6.3.0 in manifest files
* version stuff
Co-authored-by: Alexander Neumann <you@example.com>
* [Qt6] update to 6.2.4
* adjust patches
* more fixes
* more CMAKE_REQUIRE_FIND_PACKAGE
* fix configure?
* cannot require cmake not config stuff.
* more REQUIRE removals
* adjust required stuff
* more modules.
* less require stuff
* disable env patch for now and silent the require maybe unused. warnings
* different approach
* fix case ?
* fix linux builds
* more stuff to not force in vcpkg
* reenable env patch
* only use env patch on windows.
* reenable qtwebengine. Maybe the ICE was fixed?
* Revert "reenable qtwebengine. Maybe the ICE was fixed?"
This reverts commit 5dc3ca88c1.
* version stuff
Co-authored-by: Alexander Neumann <you@example.com>
* add vcpkg-tool-lessmsi
* add vcpkg-tool-python2
* adjust vcpkg_find_acquire_program
* use python2 dependency in qt5-base
* remove python2 from qt5-base
* add python2 to qt5-webengine
* use python3 instead of python2
* add some deps on the new vcpkg-tool-python2
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <83086508+strega-nil-ms@users.noreply.github.com>
* add license field
* fix test detection
* error on failure to find python2
* move logs to correct position.
* add dep to qtwebengine
* adjust pybind cmake config.
* fix shiva
* move python2 to manual-tools
adjust search path
generate a details.cmake for vcpkg_find_acquire_program
* format manifest
* use version-date
* version stuff
* replace version-string
* more version stuff
* fix search path and add supports expression
* version stuff
* shiva version
* remove arm windows from support
* reuse output_path
use lessmsi is a host dep so use the correct path
* version stuff
* Fix x86 regression
* version stuff
* try fixing qtinterfaceframework
* version stuff
Co-authored-by: Alexander Neumann <you@example.com>
Co-authored-by: nicole mazzuca <83086508+strega-nil-ms@users.noreply.github.com>
Co-authored-by: Victor Romero <viromer@microsoft.com>
Co-authored-by: Victor Romero <romerosanchezv@gmail.com>
* update qt to 6.2.3
* update few details
* fix filepath.
* use vcpkg_cmake_install
* use the old fixup since the new one is missing TOOLS_PATH
* more fixes
* fix bugs
* regex tuning
* more bug fixes
* fix qtwebengine
* version stuff
* ci retrigger
* fix more unused vars
* fix some details and silent maybe_unused warnings
* version stuff
* fix last warning
* [skip actions] version stuff
* change QT_NAMESPACE to VCPKG_QT_NAMESPACE since that is what the guidelines say for global variables.
* version stuff
* Apply suggestions from code review
Co-authored-by: nicole mazzuca <83086508+strega-nil-ms@users.noreply.github.com>
* [skip actions] version stuff
* version-semver -> version
* add license: null
* [skip actions] version stuff
* small but important prl fix
* [skip actions] version stuff
* move submodule hashes into port details.
* switch to vcpkg-cmake-config because the merge takes so long.
* version stuff and hopefully silent bot.
* don't let qt "cleanup" compiler flags
* add missing dependency.
* forgot to chain vcpkg-cmake-config
* bit of feature setting to fix dep issues in cmake PR
* version stuff
* fix unused warnings.
* version stuff
* silence more warnings
* version stuff
* do the silencing in qttranslations correctly.
* version stuff
* silence GHA
* version stuff
Co-authored-by: nicole mazzuca <83086508+strega-nil-ms@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
* updating qt stuff to 6.2.2
* add missing modules for 6.2.2
* remove patch from qtbase
* add qtpositioning
* add qml feature
* add supports statement
* small ref change
* fix hash
* remove ,
* qtlocation is now emtpy
* get as list of files
* fix error in manifest
* add tool name
* fix qtapplication?
* print bin files
* fix qtapplicationmanager
* format
* set policy
* fix git fetch
* fix ref variable
* fix pc files for taglib
closes#21834
* fix qtinterfaceframework
* format manifest
* version stuff
* fix qtapplicationmanager
* fix version
* make qt buildable for static windows builds.
* version corrections
* add extra paths; otherwise it breaks out of the buildtree
* version stuff.
* trying to fix qtapplicationmanager
* add supports field
* fix cross case
* fix stuff
* version stuff
* [Qt] Update to 6.2.1
* add changes from qtbase in the vcpkg-qmake PR into this PR. (So I don't invalidate everybody in the other PR)
* [skip actions] fix qtbase and format of vcpkg.json
* remove outdated patch
* remove patches and add alsa feature.
* version stuff
* [qt6] Update to 6.1.1
* version stuff
* fix empty dir
* update version
* fix casing in qtbase
* [libpq] add secure32.lib on windows
* add clang-cl fix
* version stuff
* fix flag removal by adding a space
* version stuff
* make qt6->Qt6 usage consistent since Qt6 refers to itself as Qt6 with uppercase Q
* fix libpq wrapper opensll linkage on linux
* use policy to fix dependent ports
* version stuff
* use upstream patch
* version stuff
* fix source_location with clang-cl
* version stuff
* add all new modules
* add all modules to the qt port
* push all the ports
* fix patch
* update ports
* split qt_install_submodule into smaller functions
* add qlitehtml submodule to qttools
* update a few ports before moving to beta
* update vcpkg.json and refs and fix issue with update
* fix dependencies
* remove patch
* update to 6.2
* add nodejs to vcpkg_find_acquire_program for qtwebengine
* format manifest.
* fix webengine and see if it builds.
* apply format diff
* add patch
* fix arm builds
* fix linux gcc 7.5 build error
* fix patch
* bump version in qtbase otherwise CI seems to resuse the wrong version
* fix webengine release build
* try fixing gcc 7.5 build
* revert gcc 7.5 fixes since they broke osx
* revert gcc 7.5 fixes since they broke osx
* fix qtimageformats.
* actually enable new qt6 builds.
* fix search path for nodejs.
* fix the webengine patch again.
* fix wrong binary name
* revisit all dependencies
* revisit webengine features and build settings
* more feature stuff
* remove qt6betablock and more features review for qt 6.2
* add missing qt prefix.
* format manifest
* fix ci issues
* format manifest.
* add node on osx.
* install node on linux
* fix a typo and a disable another find_package
* fix mingw build issues and switch to not using tag
* use CMAKE_HOST_WIN32 instead
* update ref
* fix core configure error
* fix mingw case.
* fix script installation
* remove qmake helper scrpt
* delete debug folder if empty
* add vcpkg-tool-nodejs
* revert changes in the pipeline scripts
* adjust qtwebengine to the changes
* format manifest and revert doc changes
* fix message and logic
* fix hashes and make host only port
* fix hash again?
* qttools add linguist feature for crossbuilds
* fix dependency
* add thread and future to concurrent feature
* add assistant as a required host feature
(somebody should tell Qt not to do that)
* fix dependency.
* [skip ci] not a host dep?!?
* [skip ci] debuging
* [skip ci] more debug messages
* [skip ci] try always redownloading
* [skip ci] fix hash und skip hash for redownloading once
* [skip ci] comment out skip sha and redownload
* add vcpkg_fixup_pkgconfig to libvpx
* qtwebengine requires qml and quick
* fix manifest format
* qtwebengine does not support static builds!
* remove unnecessary parts of the patch
* update to beta2
* add some " and a message in update mode
* [skip ci] remove old and reorder patches
* [skip ci] add qtpaths6
* [skip actions] fix webengine patch
* [skip actions] fix a few submodule refs
* [skip actions] fix qtwebengine
* [skip actions] remove qml feature from webengine in qt metaport
* qtdeclarative raise minimum cmake version
* use the tree id instead?
* [skip actions] raise minimum cmake version in qtquick3d
* fix fetching of unadvertised commit ids
* revert changes to vcpkg_from_git
* revert doc changes
* [skip actions] use the new FETCH_REF
* [skip actiosn] remove raise of minimum version to retry with new cmake version
* [skip actions] update to beta3
* revert removal of patch
* update to beta4
remove qtquickcontrols2 deps
* fix missing \
* [skip actions] fix gstreamer feature on windows
* [skip actions]
remove outdated patches
format qtmultimedia
* [skip actions] update to rc1
* [skip actions] remove patch for now
* update refs
* [skip actions] comment patch to try another patch in qtmultimedia
* x86 is not supported by qtwebengine (at least one of its internal third party deps fails due to x64 intrinsics.)
* Finalize for 6.2 release.
Open issues: QtWebengine and cross builds.
* version stuff
* fix semver in qtquickcontrols.
* version stuff
* revise qtwebengine supports expression
* update version