vcpkg/ports/qttools/portfile.cmake
Alexander Neumann 35bfef7084
[Qt 6.2] Update Qt6 to 6.2 (#18687)
* [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
2021-09-30 13:03:56 -07:00

145 lines
4.9 KiB
CMake

set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase")
include("${SCRIPT_PATH}/qt_install_submodule.cmake")
set(${PORT}_PATCHES )#fix_static_build.patch)
#TODO check features and setup: (means force features!)
# -- The following OPTIONAL packages have not been found:
# * Qt6AxContainer
# * Clang
# * WrapLibClang (required version >= 8)
# Configure summary:
# Qt Tools:
# Qt Assistant ........................... yes
# QDoc ................................... no
# Clang-based lupdate parser ............. no
# Qt Designer ............................ yes
# Qt Distance Field Generator ............ yes
# kmap2qmap .............................. yes
# Qt Linguist ............................ yes
# Mac Deployment Tool .................... no
# pixeltool .............................. yes
# qdbus .................................. yes
# qev .................................... yes
# Qt Attributions Scanner ................ yes
# qtdiag ................................. yes
# qtpaths ................................ yes
# qtplugininfo ........................... yes
# Windows deployment tool ................ yes
# General features:
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
"assistant" FEATURE_assistant
"designer" FEATURE_designer
"linguist" FEATURE_linguist
INVERTED_FEATURES
"qdoc" CMAKE_DISABLE_FIND_PACKAGE_Clang
"qdoc" CMAKE_DISABLE_FIND_PACKAGE_WrapLibClang
"qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick
"qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6QuickWidgets
)
set(TOOL_NAMES
assistant
designer
lconvert
linguist
lprodump
lrelease-pro
lrelease
lupdate-pro
lupdate
pixeltool
qcollectiongenerator
qdistancefieldgenerator
qhelpgenerator
qtattributionsscanner
qtdiag
qtdiag6
qtpaths
qtplugininfo
qdbus
qdbusviewer
qdoc
)
if(VCPKG_TARGET_IS_WINDOWS)
list(APPEND TOOL_NAMES windeployqt)
elseif(VCPKG_TARGET_IS_OSX)
list(APPEND TOOL_NAMES macdeployqt)
endif()
### Download third_party modules
vcpkg_from_git(
OUT_SOURCE_PATH SOURCE_PATH_QLITEHTML
URL git://code.qt.io/playground/qlitehtml.git # git://code.qt.io/playground/qlitehtml.git
REF 908670c5b68d3bcf4712019a028079b8b2042dd4
FETCH_REF master
HEAD_REF master
)
# port 'litehtml' is not in vcpkg!
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH_LITEHTML
REPO litehtml/litehtml
REF db7f59d5886fd50f84d48720c79dc2e6152efa83
SHA512 6beed53f8b779359eb2d08495547f9b4e3d02b70d68e035e6c188f009a283e630b3961caa472ce045799a9ef82e1cd6b3c63d8534e6e8127441944f4837a0352
HEAD_REF master
)
##### qt_install_submodule
set(qt_plugindir ${QT6_DIRECTORY_PREFIX}plugins)
set(qt_qmldir ${QT6_DIRECTORY_PREFIX}qml)
qt_download_submodule(PATCHES ${${PORT}_PATCHES})
if(QT_UPDATE_VERSION)
return()
endif()
file(COPY "${SOURCE_PATH_QLITEHTML}/" DESTINATION "${SOURCE_PATH}/src/assistant/qlitehtml")
file(COPY "${SOURCE_PATH_LITEHTML}/" DESTINATION "${SOURCE_PATH}/src/assistant/qlitehtml/src/3rdparty/litehtml")
if(_qis_DISABLE_NINJA)
set(_opt DISABLE_NINJA)
endif()
qt_cmake_configure(${_opt}
OPTIONS ${FEATURE_OPTIONS}
-DCMAKE_DISABLE_FIND_PACKAGE_Qt6AxContainer=ON
OPTIONS_DEBUG ${_qis_CONFIGURE_OPTIONS_DEBUG}
OPTIONS_RELEASE ${_qis_CONFIGURE_OPTIONS_RELEASE})
vcpkg_install_cmake(ADD_BIN_TO_PATH)
qt_fixup_and_cleanup(TOOL_NAMES ${TOOL_NAMES})
qt_install_copyright("${SOURCE_PATH}")
##### qt_install_submodule
if(VCPKG_TARGET_IS_OSX)
set(OSX_APP_FOLDERS Designer.app Linguist.app pixeltool.app qdbusviewer.app)
foreach(_appfolder IN LISTS OSX_APP_FOLDERS)
message(STATUS "Moving: ${_appfolder}")
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/${_appfolder}")
file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${_appfolder}/" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/${_appfolder}/")
endforeach()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
endif()
set(configfile "${CURRENT_PACKAGES_DIR}/share/Qt6ToolsTools/Qt6ToolsToolsTargets-debug.cmake")
if(EXISTS "${configfile}" AND EXISTS "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/windeployqt.exe")
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/windeployqt.debug.bat" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin")
file(READ "${configfile}" _contents)
string(REPLACE [[${_IMPORT_PREFIX}/tools/Qt6/bin/windeployqt.exe]] [[${_IMPORT_PREFIX}/tools/Qt6/bin/windeployqt.debug.bat]] _contents "${_contents}")
file(WRITE "${configfile}" "${_contents}")
endif()
file(GLOB_RECURSE debug_dir "${CURRENT_PACKAGES_DIR}/debug/*")
list(LENGTH debug_dir debug_dir_elements)
if(debug_dir_elements EQUAL 0)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug")
endif()