2021-01-23 Xan Lopez [JSC] Allow to build WebAssembly without B3 https://bugs.webkit.org/show_bug.cgi?id=220365 Reviewed by Yusuke Suzuki. Make the WebAssembly feature depend on Baseline JIT, not B3 JIT. Also add a WEBASSEMBLY_B3JIT feature to enable or disable the B3 tier in WebAssembly. * Source/cmake/WebKitFeatures.cmake: disable on 32bit. 2021-01-21 Fujii Hironori Remove ENABLE_USERSELECT_ALL macro which is enabled for all ports https://bugs.webkit.org/show_bug.cgi?id=100424 Reviewed by Don Olmstead. * Source/cmake/OptionsMac.cmake: * Source/cmake/WebKitFeatures.cmake: 2021-01-20 Yusuke Suzuki Unreviewed, ANGLE should not be built in JSCOnly port ANGLE is not a part of JSC. Do not build it. * Source/cmake/OptionsJSCOnly.cmake: 2021-01-19 Lauro Moura REGRESSION(r271580) [GTK] LTS/Debian build failure due to unsupported g-ir-scanner parameter https://bugs.webkit.org/show_bug.cgi?id=220730 Reviewed by Philippe Normand. * Source/cmake/FindGObjectIntrospection.cmake: Expose variable about the presence of --sources-top-dirs. 2021-01-14 Jonathan Bedard [GitHub] Reference GitHub repository in readme https://bugs.webkit.org/show_bug.cgi?id=220611 Reviewed by Aakash Jain. * ReadMe.md: Reference GitHub repository. 2021-01-12 Fujii Hironori [PlayStation] Enable ENABLE_USERSELECT_ALL for -webkit-user-select:all support https://bugs.webkit.org/show_bug.cgi?id=220533 Reviewed by Don Olmstead. * Source/cmake/OptionsPlayStation.cmake: Removed the line disabling ENABLE_USERSELECT_ALL. 2021-01-12 Philippe Normand [GStreamer] Bump version requirement https://bugs.webkit.org/show_bug.cgi?id=220356 Reviewed by Xabier Rodriguez-Calvar. * Source/cmake/GStreamerChecks.cmake: Bump required version to 1.14. 2021-01-12 Xabier Rodriguez Calvar [GStreamer] Switch from ENABLE_ to USE_ in native audio/video and text sink options https://bugs.webkit.org/show_bug.cgi?id=220515 Reviewed by Philippe Normand. * Source/cmake/GStreamerDefinitions.cmake: Add USE_ definitions. * Source/cmake/WebKitFeatures.cmake: Remove global ENABLE_ definitions. 2021-01-12 Carlos Garcia Campos Unreviewed. Update OptionsGTK.cmake and NEWS for 2.31.1 release * Source/cmake/OptionsGTK.cmake: Bump version numbers. 2021-01-11 Yoshiaki Jitsukawa [PlayStation] Add MiniBrowser https://bugs.webkit.org/show_bug.cgi?id=220359 Reviewed by Don Olmstead. Enable Fullscreen API. * Source/cmake/OptionsPlayStation.cmake: 2021-01-11 Xabier Rodriguez Calvar [GStreamer] Add support to build with native audio and video https://bugs.webkit.org/show_bug.cgi?id=220087 Reviewed by Philippe Normand. * Source/cmake/GStreamerDefinitions.cmake: Enable TEXT_SINK. * Source/cmake/WebKitFeatures.cmake: Declare TEXT_SINK, NATIVE_VIDEO and NATIVE_AUDIO. 2021-01-08 Ryan Hostetler Add support for source caching between platforms https://bugs.webkit.org/show_bug.cgi?id=220439 rdar://72905725 Reviewed by Andy Estes. Include WebInspectorUI Source during any installsrc phase. * Source/Makefile: 2021-01-08 Fujii Hironori [Win] Enable ENABLE_USERSELECT_ALL for -webkit-user-select:all support https://bugs.webkit.org/show_bug.cgi?id=118740 Reviewed by Don Olmstead. This change also fixes the assertion failure of editing/inserting/insert-list-user-select-none-crash.html (Bug 216256). * Source/cmake/OptionsFTW.cmake: Removed the line disabling ENABLE_USERSELECT_ALL. * Source/cmake/OptionsWin.cmake: Ditto. 2021-01-07 Ryan Hostetler make clean/installsrc fail: You cannot specify -alltargets and also specify individual targets. https://bugs.webkit.org/show_bug.cgi?id=220370 rdar://72834872 Reviewed by Andy Estes. Update hardcoded '-alltargets' to use new XCODE_TARGET variable. * Makefile.shared: 2021-01-07 Monson Shao [CMake] Add USE_APPLE_ICU option https://bugs.webkit.org/show_bug.cgi?id=220081 Reviewed by Yusuke Suzuki. Add USE_APPLE_ICU option to allow non-Mac ports (GTK or JSCOnly) on Darwin could build with non-Apple ICU. * Source/cmake/OptionsCommon.cmake: * Source/cmake/WebKitFindPackage.cmake: 2021-01-06 Alexey Proskuryakov Make svn status ignore Python 3 __pycache__ directories. Unreviewed. Python 2 *.pyc files are still inconsistently handled via svn:ignore on each directory, but it is not worth cleaning up before GitHub move. * Tools: Added property svn:global-ignores. 2021-01-06 Fujii Hironori [GTK][CMake] Add a build switch USE_OPENGL_OR_ES to be able to disable OpenGL and ES https://bugs.webkit.org/show_bug.cgi?id=220183 Reviewed by Kenneth Russell. r270477 removed ENABLE_GRAPHICS_CONTEXT_GL macro and build switch, but GTK port still needs the build switch. Revert r270477 partially to restore the build switch and rename it to USE_OPENGL_OR_ES. * Source/cmake/OptionsGTK.cmake: 2021-01-05 Fujii Hironori [WinCairo][curl] Enable CURLSSLOPT_NATIVE_CA flag to use system's CA certs instead of cacert.pem https://bugs.webkit.org/show_bug.cgi?id=220258 Reviewed by Don Olmstead. Libcurl 7.71 added a new flag CURLSSLOPT_NATIVE_CA to use the operating system's native CA store only for Windows. Use the flag for WinCairo port. * Source/cmake/OptionsWinCairo.cmake: Bumped the minimum Curl version. 2021-01-04 Lauro Moura [WebXR][WPE] Build fails without openxr installed https://bugs.webkit.org/show_bug.cgi?id=220250 Reviewed by Carlos Alberto Lopez Perez. * Source/cmake/FindOpenXR.cmake: Fix some names and export OPENXR_FOUND var. * Source/cmake/OptionsWPE.cmake: Fail config is WebXR is enabled but couldn't find OpenXR. 2021-01-04 Jeff Miller Update user-visible copyright strings to include 2021 https://bugs.webkit.org/show_bug.cgi?id=219901 Reviewed by Anders Carlsson. * Source/cmake/tools/scripts/COPYRIGHT-END-YEAR: 2020-12-23 Fujii Hironori [WinCairo] Enable WebGL 2 https://bugs.webkit.org/show_bug.cgi?id=192314 Reviewed by Kenneth Russell. * Source/cmake/OptionsWin.cmake: Turned ENABLE_WEBGL2 on. 2020-12-23 Monson Shao [CMake] Fix seperated include dir of harfbuzz and harfbuzz-icu https://bugs.webkit.org/show_bug.cgi?id=220082 Reviewed by Alex Christensen. In some distros (NixOS) harfbuzz and harfbuzz-icu may have different include dir. * Source/cmake/FindHarfBuzz.cmake: 2020-12-21 Ryan Hostetler $(findstring iphone,$(SDKROOT)) fails when SDKROOT is not lowercase https://bugs.webkit.org/show_bug.cgi?id=219993 rdar://72436093 Reviewed by Darin Adler. Update SDKROOT evaluation to be lowercase and SDK filename only. * Source/Makefile: 2020-12-16 Fujii Hironori [WinCairo] Enable USE_ANGLE https://bugs.webkit.org/show_bug.cgi?id=219421 Reviewed by Don Olmstead. * Source/cmake/OptionsWinCairo.cmake: 2020-12-13 Don Olmstead [CMake] Version of LibPSL not reported https://bugs.webkit.org/show_bug.cgi?id=219837 Reviewed by Adrian Perez de Castro. When determining the version of LibPSL from the header file LIBPSL_VERSION was set but the VERSION_VAR reported was LibPSL_VERSION. Consistently use LibPSL_VERSION within the file to prevent this. Additionally LibPSL_LIBRARY not LibPSL_LIBRARIES should be marked_as_advanced. * Source/cmake/FindLibPSL.cmake: 2020-12-11 Don Olmstead [CMake] Determine correct visibility for linked frameworks https://bugs.webkit.org/show_bug.cgi?id=210366 Reviewed by Michael Catanzaro. WebKit has some frameworks that are compiled statically into a larger shared library. For example Apple compiles bmalloc and WTF into JavaScriptCore. This means the JavaScriptCore framework also exposes the symbols for those two libraries and that targets depending on WTF or bmalloc should link to JavaScriptCore and never to WTF or bmalloc directly. The CMake code allows each port to decide the type of library for a WEBKIT_FRAMEWORK. This means there are many different combinations that it needs to support. To ensure that everything links properly some bookkeeping is required. WEBKIT_FRAMEWORK now uses ${target}_FRAMEWORKS to determine how to link the frameworks it depends on. First the macro determines if the framework is a SHARED library or is linked into a shared library, and if so it is linked as PUBLIC. If the framework itself is not a SHARED library, then it links other STATIC/OBJECT framework as PUBLIC. If the framework itself is SHARED then any framework that is a STATIC/OBJECT library is linked as PRIVATE to stop propagation. The linked framework's header directories are added to the WebKit::${framework} target to allow the framework to present as that framework. A global property is set to inform consumers that they should link to this different framework to get the requested framework. This ensures that all ports can ship with hidden visibility turned on which is a precursor to a port turning on link time optimization (LTO). * Source/cmake/WebKitMacros.cmake: 2020-12-10 Don Olmstead [CMake] Determine when to use $ for executables https://bugs.webkit.org/show_bug.cgi?id=219648 Reviewed by Michael Catanzaro. When a WebKit framework is declared as an OBJECT library the WebKit::${framework} ALIAS does not propagate the objects to the executable being built. As a workaround ports will explicitly add $ to the list of libraries being linked. There is already enough information to determine when $ is needed so this decision is moved into the WEBKIT_EXECUTABLE macros. An additional ${taget_name}_FRAMEWORKS variable is added which specifies the WebKit frameworks being used. This will link the WebKit::${framework} alias and if necessary the associated $. This functionality will be expanded upon when support for ${target_name}_FRAMEWORKS is added to WebKit frameworks to support hidden visibility across ports. * Source/cmake/WebKitMacros.cmake: 2020-12-07 Don Olmstead [CMake] Remove WEBKIT_WRAP_SOURCELIST https://bugs.webkit.org/show_bug.cgi?id=196916 Reviewed by Michael Catanzaro. WEBKIT_WRAP_SOURCELIST macro is used only to adjust source groups in Visual Studio projects without any impact on build process. Its references variable specific to particular targets (WebCore) which contradicts our goal of having target-oriented CMake project. It can be reintroduced later in a more clean way, in case anyone needs to have such grouping. * Source/cmake/WebKitMacros.cmake: 2020-12-05 Fujii Hironori Remove ENABLE_GRAPHICS_CONTEXT_GL by replacing it with ENABLE(WEBGL) https://bugs.webkit.org/show_bug.cgi?id=219551 Reviewed by Kenneth Russell. * Source/CMakeLists.txt: * Source/cmake/GStreamerDependencies.cmake: * Source/cmake/OptionsFTW.cmake: * Source/cmake/OptionsGTK.cmake: * Source/cmake/OptionsMac.cmake: * Source/cmake/OptionsPlayStation.cmake: * Source/cmake/OptionsWPE.cmake: * Source/cmake/OptionsWinCairo.cmake: 2020-11-26 Lauro Moura [GTK][GTK4] Building with GObject-Introspection support does not work https://bugs.webkit.org/show_bug.cgi?id=219221 Reviewed by Carlos Garcia Campos. * Source/cmake/OptionsGTK.cmake: Allow introspection with GTK4. 2020-11-26 Fujii Hironori [WinCairo] Enable GPU process https://bugs.webkit.org/show_bug.cgi?id=219294 Reviewed by Don Olmstead. * Source/cmake/OptionsWin.cmake: Turned ENABLE_GPU_PROCESS on for WinCairo. 2020-11-26 Yoshiaki Jitsukawa [PlayStation] Enable ResourceLoadStatistics https://bugs.webkit.org/show_bug.cgi?id=219292 Reviewed by Fujii Hironori. * Source/cmake/OptionsPlayStation.cmake: 2020-11-20 Don Olmstead Remove quota module https://bugs.webkit.org/show_bug.cgi?id=219206 Reviewed by Anders Carlsson. Remove the ability to set ENABLE_QUOTA. The Storage Quota API is deprecated and no WebKit port is enabling it. * Source/cmake/OptionsFTW.cmake: * Source/cmake/OptionsWin.cmake: * Source/cmake/WebKitFeatures.cmake: * Source/cmake/tools/vsprops/FeatureDefines.props: * Source/cmake/tools/vsprops/FeatureDefinesCairo.props: 2020-11-09 Michael Catanzaro Enable llint asm on aarch64 when USE(64KB_PAGE_BLOCK) is enabled https://bugs.webkit.org/show_bug.cgi?id=218613 Reviewed by Carlos Alberto Lopez Perez. Normally we fall back to cloop when JIT is not supported. But on aarch64, llint asm is well- supported, so it is safe to use that here. This will only happen on aarch64, and only when USE(64KB_PAGE_BLOCK) is enabled, which should probably only be used by RHEL and SUSE. Everyone else should get the JIT. * Source/cmake/WebKitFeatures.cmake: 2020-11-04 Sergey Rubanov Fix JSC build on macOS Big Sur https://bugs.webkit.org/show_bug.cgi?id=218566 Reviewed by David Kilzer. * Source/cmake/WebKitFindPackage.cmake: 2020-11-04 Michael Catanzaro Add new build option USE(64KB_PAGE_BLOCK) https://bugs.webkit.org/show_bug.cgi?id=217989 Reviewed by Yusuke Suzuki. Why do we need this option? Because JSC and bmalloc both want to know the userspace page size at compile time, which is impossible on Linux because it's a runtime setting. We cannot test the system page size at build time in hopes that it will be the same on the target system, because (a) cross compiling wouldn't work, and (b) the build system could use a different page size than the target system (which will be true for Fedora aarch64, because Fedora is built using RHEL), so the best we can do is guess based on the target CPU architecture. In practice, guessing works for all architectures except aarch64 (unless unusual page sizes are used), but it fails for aarch64 because distros are split between using 4 KB and 64 KB pages there. Most distros (including Fedora) use 4 KB, but RHEL uses 64 KB. SUSE actually supports both. Since there is no way to guess correctly, the best we can do is provide an option for it. You should probably only use this if building for aarch64. Otherwise, known CPUs except PowerPC will use 4 KB, while PowerPC and unknown CPUs will use 64 KB (see wtf/PageBlock.h). aarch64 will continue to default to 4 KB because this is a much better default on systems where it doesn't crash. Having one flag will help avoid mistakes. E.g. both RHEL and SUSE were manually passing -DENABLE_JIT=OFF and -DUSE_SYSTEM_MALLOC=ON, but we missed -DENABLE_C_LOOP=ON and -DENABLE_SAMPLING_PROFILER=OFF, so wound up running with both JIT and cloop disabled, a configuration not otherwise used on Linux (and not supported by GTK or WPE ports). It will be easier to not mess up if we only have to pass one special build option. This will also allow us to stop patching PageBlock.h downstream, because I don't like downstream patches that we have to keep forever. * Source/cmake/WebKitFeatures.cmake: 2020-10-30 Ryosuke Niwa Add Introduction to WebKit https://bugs.webkit.org/show_bug.cgi?id=217017 Rubber-stamped by Simon Fraser. Added the basic introductory documentation for WebKit. * Introduction.md: Added. * resources/js-wrapper.png: Added. * resources/webkit2-process-architecture.png: Added. * resources/xcode-add-file.png: Added. * resources/xcode-build-settings-for-run.png: Added. * resources/xcode-export-header.png: Added. * resources/xcode-scheme-dumprendertree.png: Added. * resources/xcode-scheme-layout-test.png: Added. * resources/xcode-workspace-build-location.png: Added. * resources/xcode-workspace-settings.png: Added. 2020-10-30 Jonathan Bedard Github mirror ReadMe need to update https://bugs.webkit.org/show_bug.cgi?id=218120 Reviewed by Aakash Jain. * ReadMe.md: 2020-10-27 Keith Rollin Fix "usage" message when invoking `ar -V` https://bugs.webkit.org/show_bug.cgi?id=218255 Reviewed by Fujii Hironori. The Mac/BSD version of `ar` does not support the -V flag. This flag is used unconditionally in OptionsCommon.cmake when trying to determine if the installed `ar` supports the thinning of archives, leading to a "usage" message being emitted on macOS. Avoid this message by capturing the error-output. Examine the output to see if it's a "usage" message. If so, then treat the `ar` as one that does not support thinning. Any other error-output is printed as a warning. If there is no error-output, continue processing as normal. * Source/cmake/OptionsCommon.cmake: 2020-10-27 Brian Burg Web Inspector: add ENABLE(INSPECTOR_EXTENSIONS) to feature defines https://bugs.webkit.org/show_bug.cgi?id=218237 Reviewed by Antti Koivisto. * Source/cmake/OptionsMac.cmake: * Source/cmake/WebKitFeatures.cmake: Add ENABLE(INSPECTOR_EXTENSIONS), which is only on for the Cocoa macOS port. 2020-10-26 Keith Rollin Move some initialization code from top-level CMakeLists.txt to WebKitCommon.cmake https://bugs.webkit.org/show_bug.cgi?id=218069 Reviewed by Fujii Hironori. Moving this initialization code into a central location allows other top-level CMakeLists.txt files to include WebKitCommon.cmake and get that same initialization. * CMakeLists.txt: * Source/cmake/WebKitCommon.cmake: 2020-10-23 Philippe Normand [GStreamer] Replace USE(WEBAUDIO_GSTREAMER) with USE(GSTREAMER) https://bugs.webkit.org/show_bug.cgi?id=218083 Reviewed by Xabier Rodriguez-Calvar. A separate define was introduced back when we thought enabling WebAudio without enabling