138 lines
5.7 KiB
CMake
Executable file
138 lines
5.7 KiB
CMake
Executable file
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=<shortpath> 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=<shortpath> 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
|