set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(TOOL_NAMES gn QtWebEngineProcess qwebengine_convert_dict) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "proprietary-codecs" FEATURE_webengine_proprietary_codecs "spellchecker" FEATURE_webengine_spellchecker "geolocation" FEATURE_webengine_geolocation "webchannel" FEATURE_webengine_webchannel "geolocation" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Positioning "webchannel" CMAKE_REQUIRE_FIND_PACKAGE_Qt6WebChannel INVERTED_FEATURES "geolocation" CMAKE_DISABLE_FIND_PACKAGE_Qt6Positioning "webchannel" CMAKE_DISABLE_FIND_PACKAGE_Qt6WebChannel ) if(VCPKG_TARGET_IS_OSX AND "spellchecker" IN_LIST FEATRUES) list(APPEND FEATURE_OPTIONS "-DFEATURE_webengine_native_spellchecker=ON") endif() # webengine-extensions # webengine-printing-and-pdf # webengine-pepper-plugins set(deactivated_features webengine_webrtc_pipewire) foreach(_feat IN LISTS deactivated_features) list(APPEND FEATURE_OPTIONS "-DFEATURE_${_feat}=OFF") endforeach() set(enabled_features webengine_webrtc webengine_v8_snapshot_support) foreach(_feat IN LISTS enabled_features) list(APPEND FEATURE_OPTIONS "-DFEATURE_${_feat}=ON") endforeach() if(VCPKG_TARGET_IS_LINUX) # qt_configure_add_summary_entry(ARGS "webengine-system-lcms2") # qt_configure_add_summary_entry(ARGS "webengine-system-libpci") # + ALSA and PULSEAUDIO set(system_libs re2 icu libwebp opus ffmpeg libvpx snappy glib zlib minizip libevent protobuf libxml libpng libjpeg harfbuzz freetype) foreach(_sys_lib IN LISTS system_libs) list(APPEND FEATURE_OPTIONS "-DFEATURE_webengine_system_${_sys_lib}=ON") endforeach() endif() vcpkg_find_acquire_program(FLEX) vcpkg_find_acquire_program(BISON) #vcpkg_find_acquire_program(GN) # Qt builds its own internal version find_program(NODEJS NAMES node PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/node" "bin" NO_DEFAULT_PATHS) find_program(NODEJS NAMES node) if(NOT NODEJS) message(FATAL_ERROR "node not found! Please install it via your system package manager!") endif() get_filename_component(NODEJS_DIR "${NODEJS}" DIRECTORY ) vcpkg_add_to_path(PREPEND "${NODEJS_DIR}") get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY ) vcpkg_add_to_path(PREPEND "${FLEX_DIR}") get_filename_component(BISON_DIR "${BISON}" DIRECTORY ) vcpkg_add_to_path(PREPEND "${BISON_DIR}") if(NOT QT_IS_LATEST) vcpkg_find_acquire_program(PYTHON2) get_filename_component(PYTHON2_DIR "${PYTHON2}" DIRECTORY ) vcpkg_add_to_path(PREPEND "${PYTHON2_DIR}") list(APPEND FEATURE_OPTIONS "-DPython2_EXECUTABLE=${PYTHON2}") else() vcpkg_find_acquire_program(PYTHON3) x_vcpkg_get_python_packages(PYTHON_EXECUTABLE "${PYTHON3}" PACKAGES html5lib) endif() vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/gperf") set(GPERF "${CURRENT_HOST_INSTALLED_DIR}/tools/gperf/gperf${VCPKG_HOST_EXECUTABLE_SUFFIX}") if(WIN32) # WIN32 HOST probably has win_flex and win_bison! if(NOT EXISTS "${FLEX_DIR}/flex${VCPKG_HOST_EXECUTABLE_SUFFIX}") file(CREATE_LINK "${FLEX}" "${FLEX_DIR}/flex${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() if(NOT EXISTS "${BISON_DIR}/BISON${VCPKG_HOST_EXECUTABLE_SUFFIX}") file(CREATE_LINK "${BISON}" "${BISON_DIR}/bison${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() endif() string(LENGTH "${CURRENT_BUILDTREES_DIR}" buildtree_length) # We know that C:/buildrees/${PORT} is to long to build Release. Debug works however. Means 24 length is too much but 23 might work. if(buildtree_length GREATER 22 AND VCPKG_TARGET_IS_WINDOWS) message(WARNING "Buildtree path '${CURRENT_BUILDTREES_DIR}' is too long.\nConsider passing --x-buildtrees-root= to vcpkg!\nTrying to use '${CURRENT_BUILDTREES_DIR}/../tmp'") set(CURRENT_BUILDTREES_DIR "${CURRENT_BUILDTREES_DIR}/../tmp") # activly avoid long path issues in CI. -> Means CI will not return logs cmake_path(NORMAL_PATH CURRENT_BUILDTREES_DIR) string(LENGTH "${CURRENT_BUILDTREES_DIR}" buildtree_length_new) if(buildtree_length_new GREATER 22) message(FATAL_ERROR "Buildtree path is too long. Build will fail! Pass --x-buildtrees-root= to vcpkg!") endif() file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}") endif() ### Download third_party modules vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH_WEBENGINE URL git://code.qt.io/qt/qtwebengine-chromium.git REF "${${PORT}_chromium_REF}" PATCHES 0ce5e91.diff ) ##### 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() if(NOT EXISTS "${SOURCE_PATH}/src/3rdparty/chromium") file(RENAME "${SOURCE_PATH_WEBENGINE}/chromium" "${SOURCE_PATH}/src/3rdparty/chromium") endif() if(NOT EXISTS "${SOURCE_PATH}/src/3rdparty/gn") file(RENAME "${SOURCE_PATH_WEBENGINE}/gn" "${SOURCE_PATH}/src/3rdparty/gn") endif() qt_cmake_configure( DISABLE_PARALLEL_CONFIGURE # due to in source changes. OPTIONS ${FEATURE_OPTIONS} -DGPerf_EXECUTABLE=${GPERF} -DBISON_EXECUTABLE=${BISON} -DFLEX_EXECUTABLE=${FLEX} #-DGn_EXECUTABLE=${GN} -DNodejs_EXECUTABLE=${NODEJS} OPTIONS_DEBUG ${_qis_CONFIGURE_OPTIONS_DEBUG} OPTIONS_RELEASE ${_qis_CONFIGURE_OPTIONS_RELEASE}) vcpkg_cmake_install(ADD_BIN_TO_PATH) qt_fixup_and_cleanup(TOOL_NAMES ${TOOL_NAMES}) qt_install_copyright("${SOURCE_PATH}") ##### qt_install_submodule