vcpkg/ports/qt5-webengine/portfile.cmake
Alonso Schaich 63f1d5b4d0
[qt5-webengine] fix nonobvious failure (#24528)
* [qt5-webengine] Manually add nodejs to the path (microsoft#23574)

The build process requires nodejs to be in PATH when webengine is
built, and will build only the pdf-plugin if it's not (see #23574)

* [qt5-webengine] Workaround MSVC2022 Internal Compiler Error
(microsoft#23574)

Add a patch based on
https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/407582
which was merged into upstream. We can't take the upstream patch
directly, because the patch was committed to the chromium
(sub)repository which is a subdirectory in the release zip file, i.e.
I had to modify the pathnames for the patch to apply

* [qt5-webengine] Update diagnostics (microsoft#23574)

I've spotted the linker using 16GB singlehandedly on the release
(opposed to "debug") packaging, and emory consumption was almost
permanently over 32GB while compiling, though peak memory
consumption can be reduced by setting up low values for
VCPKG_MAX_CONCURRENY

Also, reword the build-prefix-too-long message

* [qt5-webengine] Attempt enabling windows ci baselines (microsoft#23574)

* [qt5-webengine] Regenerate version registries (microsoft#23574)

* Also remove out of date comments from ci.baseline.txt referring to deleted lines.

* Revert "Also remove out of date comments from ci.baseline.txt referring to deleted lines."

This reverts commit 7a4d846431.

* [qt5-webengine] Re-add webengine blacklisting to ci.baseline (microsoft#23574)

Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2022-05-19 00:23:39 -07:00

63 lines
3.0 KiB
CMake

vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
string(LENGTH "${CURRENT_BUILDTREES_DIR}" buildtrees_path_length)
if(buildtrees_path_length GREATER 35 AND CMAKE_HOST_WIN32)
vcpkg_buildpath_length_warning(35)
message(WARNING "The ${PORT} source was will be extracted to ${CURRENT_BUILDTREES_DIR} , which has more then 35 characters in length.")
message(FATAL_ERROR "terminating due to ${CURRENT_BUILDTREES_DIR} being too long.")
endif()
#set(VCPKG_BUILD_TYPE release) #You probably want to set this to reduce build type and space requirements
message(STATUS "${PORT} requires a lot of free disk space (>100GB), ram (>8 GB) and time (>2h per configuration) to be successfully build.\n\
-- As such ${PORT} is currently experimental.\n\
-- If ${PORT} fails post build validation please try manually reducing VCPKG_MAX_CONCURRENY and open up an issue if it still cannot build. \n\
-- If it fails due to post validation the successfully installed files can be found in ${CURRENT_PACKAGES_DIR} \n\
-- and just need to be copied into ${CURRENT_INSTALLED_DIR}")
if(NOT VCPKG_TARGET_IS_WINDOWS)
message(STATUS "If ${PORT} directly fails ${PORT} might require additional prerequisites on Linux and OSX. Please check the configure logs.\n")
endif()
include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake)
vcpkg_find_acquire_program(FLEX)
vcpkg_find_acquire_program(BISON)
vcpkg_find_acquire_program(GPERF)
vcpkg_find_acquire_program(PYTHON2)
vcpkg_find_acquire_program(NINJA)
set(NODEJS "${CURRENT_HOST_INSTALLED_DIR}/tools/node/node${VCPKG_HOST_EXECUTABLE_SUFFIX}")
get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY )
get_filename_component(BISON_DIR "${BISON}" DIRECTORY )
get_filename_component(PYTHON2_DIR "${PYTHON2}" DIRECTORY )
get_filename_component(GPERF_DIR "${GPERF}" DIRECTORY )
get_filename_component(NINJA_DIR "${NINJA}" DIRECTORY )
get_filename_component(NODEJS_DIR "${NODEJS}" DIRECTORY )
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()
vcpkg_add_to_path(PREPEND "${FLEX_DIR}")
vcpkg_add_to_path(PREPEND "${BISON_DIR}")
vcpkg_add_to_path(PREPEND "${PYTHON2_DIR}")
vcpkg_add_to_path(PREPEND "${GPERF_DIR}")
vcpkg_add_to_path(PREPEND "${NINJA_DIR}")
vcpkg_add_to_path(PREPEND "${NODEJS_DIR}")
set(PATCHES common.pri.patch
gl.patch
build_1.patch
build_2.patch
workaround-msvc2022-ice.patch)
set(OPTIONS)
if("proprietary-codecs" IN_LIST FEATURES)
list(APPEND OPTIONS "-webengine-proprietary-codecs")
endif()
if(NOT VCPKG_TARGET_IS_WINDOWS)
list(APPEND OPTIONS "-webengine-system-libwebp" "-webengine-system-ffmpeg" "-webengine-system-icu")
endif()
qt_submodule_installation(PATCHES ${PATCHES} BUILD_OPTIONS ${OPTIONS})