Files
haikuports/net-libs/webkit-gtk/webkit_gtk-2.38.2.recipe

286 lines
8.8 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
SUMMARY="Open source web browser engine"
DESCRIPTION="WebKitGTK is a full-featured port of the WebKit rendering engine, \
suitable for projects requiring any kind of web integration, from hybrid HTML/CSS \
applications to full-fledged web browsers. It offers WebKits full functionality \
and is useful in a wide range of systems from desktop computers to embedded \
systems like phones, tablets, and televisions. WebKitGTK is made by a lively \
community of developers and designers, who hope to bring the web platform to \
everyone. Its the official web engine of the GNOME platform and is used in \
browsers such as Epiphany, Eolie, and Tangram."
HOMEPAGE="https://www.webkitgtk.org/"
COPYRIGHT="20092022 The WebKitGTK Team"
LICENSE="GNU LGPL v2
BSD (2-clause)
"
REVISION="4"
SOURCE_URI="https://www.webkitgtk.org/releases/webkitgtk-$portVersion.tar.xz"
CHECKSUM_SHA256="f3eb82899651f583b4d99cacd16af784a1a7710fce9e7b6807bd6ccde909fe3e"
SOURCE_DIR="webkitgtk-$portVersion"
PATCHES="webkit_gtk-$portVersion.patchset"
ADDITIONAL_FILES="
minibrowser.rdef.in
webprocess.rdef.in
"
ARCHITECTURES="!all !x86_gcc2"
SECONDARY_ARCHITECTURES="!x86"
PROVIDES="
webkit_gtk$secondaryArchSuffix = $portVersion
lib:libwebkit2gtk_4.1$secondaryArchSuffix = 0.2.5 compat >= 0
lib:libjavascriptcoregtk_4.1$secondaryArchSuffix = 0.2.5 compat >= 0
app:MiniBrowser = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libatk_1.0$secondaryArchSuffix
lib:libatomic$secondaryArchSuffix
lib:libavif$secondaryArchSuffix
lib:libbrotlidec$secondaryArchSuffix
lib:libcairo$secondaryArchSuffix
lib:libcairo_gobject$secondaryArchSuffix
lib:libenchant_2$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libgcrypt$secondaryArchSuffix
lib:libgdk_pixbuf_2.0$secondaryArchSuffix
lib:libgio_2.0$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libgcrypt$secondaryArchSuffix
lib:libgobject_2.0$secondaryArchSuffix
lib:libgmodule_2.0$secondaryArchSuffix
lib:libgnutls$secondaryArchSuffix
lib:libgpg_error$secondaryArchSuffix
lib:libgstapp_1.0$secondaryArchSuffix
lib:libgstaudio_1.0$secondaryArchSuffix
lib:libgstbase_1.0$secondaryArchSuffix
lib:libgstpbutils_1.0$secondaryArchSuffix
lib:libgstreamer_1.0$secondaryArchSuffix
lib:libgsttag_1.0$secondaryArchSuffix
lib:libgstvideo_1.0$secondaryArchSuffix
lib:libgstfft_1.0$secondaryArchSuffix
lib:libgstwebrtc_1.0$secondaryArchSuffix
lib:libgtk_3$secondaryArchSuffix
lib:libharfbuzz$secondaryArchSuffix
lib:libhyphen$secondaryArchSuffix
lib:libicudata$secondaryArchSuffix
lib:libicui18n$secondaryArchSuffix
lib:libicuuc$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libjpeg$secondaryArchSuffix
lib:libjxl$secondaryArchSuffix
lib:libnghttp2$secondaryArchSuffix
lib:libopenjp2$secondaryArchSuffix
lib:libopus$secondaryArchSuffix
lib:libpango_1.0$secondaryArchSuffix
lib:libpangocairo_1.0$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libpsl$secondaryArchSuffix
lib:libsecret_1$secondaryArchSuffix
lib:libsoup_3.0$secondaryArchSuffix
lib:libsqlite3$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libtasn1$secondaryArchSuffix
lib:libvpx$secondaryArchSuffix
lib:libwebp$secondaryArchSuffix
lib:libwoff2dec$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libxslt$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
webkit_gtk${secondaryArchSuffix}_devel = $portVersion
devel:libwebkit2gtk_4.1$secondaryArchSuffix = 0.2.5 compat >= 0
devel:libjavascriptcoregtk_4.1$secondaryArchSuffix = 0.2.5 compat >= 0
"
REQUIRES_devel="
webkit_gtk$secondaryArchSuffix == $portVersion base
devel:libglib_2.0$secondaryArchSuffix
devel:libgstapp_1.0$secondaryArchSuffix
devel:libgtk_3$secondaryArchSuffix
devel:libsoup_3.0$secondaryArchSuffix
devel:libwayland_client$secondaryArchSuffix
devel:libwayland_server$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
wayland_protocols
devel:libavif$secondaryArchSuffix
devel:libbrotlidec$secondaryArchSuffix
devel:libcrypto$secondaryArchSuffix
devel:libenchant_2$secondaryArchSuffix
devel:libevent_2.1$secondaryArchSuffix
devel:libfontconfig$secondaryArchSuffix
devel:libfreetype$secondaryArchSuffix
devel:libgdk_3$secondaryArchSuffix
devel:libgdk_pixbuf_2.0$secondaryArchSuffix
devel:libGL$secondaryArchSuffix
devel:libgcrypt$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libgnutls$secondaryArchSuffix
devel:libgstapp_1.0$secondaryArchSuffix
devel:libgstaudio_1.0$secondaryArchSuffix
devel:libgstbadaudio_1.0$secondaryArchSuffix
devel:libgstbase_1.0$secondaryArchSuffix
devel:libgstpbutils_1.0$secondaryArchSuffix
devel:libgstreamer_1.0$secondaryArchSuffix
devel:libgstvideo_1.0$secondaryArchSuffix
devel:libgstwebrtc_1.0$secondaryArchSuffix
devel:libgtk_3$secondaryArchSuffix
devel:libharfbuzz$secondaryArchSuffix
devel:libhyphen$secondaryArchSuffix
devel:libicuuc$secondaryArchSuffix
devel:libintl$secondaryArchSuffix
devel:libjpeg$secondaryArchSuffix
devel:libjxl$secondaryArchSuffix
devel:libnghttp2$secondaryArchSuffix
devel:libopenjp2$secondaryArchSuffix
devel:libopus$secondaryArchSuffix
devel:libpng16$secondaryArchSuffix
devel:libpsl$secondaryArchSuffix
devel:libruby$secondaryArchSuffix
devel:libsecret_1$secondaryArchSuffix
devel:libsoup_3.0$secondaryArchSuffix
devel:libsqlite3$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libtasn1$secondaryArchSuffix
devel:libvpx$secondaryArchSuffix
devel:libwayland_client$secondaryArchSuffix
devel:libwayland_server$secondaryArchSuffix
devel:libwebp$secondaryArchSuffix
devel:libwoff2dec$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
devel:libxslt$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:gperf
cmd:make
cmd:ninja
cmd:orcc$secondaryArchSuffix
cmd:perl
cmd:pkg_config$secondaryArchSuffix
cmd:python3
cmd:ruby
cmd:sed
cmd:xargs
"
PATCH()
{
cd $sourceDir/Tools/MiniBrowser
find gtk -type f -regex '.*\(c\|ui\|css\)' -print0 | xargs -0 sed -i 's/-symbolic//g'
}
BUILD()
{
export DISABLE_ASLR=1
cmake -S. -Bbuild -GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="-D_BSD_SOURCE" \
-DPORT=GTK \
-DENABLE_ACCESSIBILITY=OFF \
-DENABLE_API_TESTS=OFF \
-DENABLE_BUBBLEWRAP_SANDBOX=OFF \
-DENABLE_EXPERIMENTAL_FEATURES=ON \
-DENABLE_FTPDIR=ON \
-DENABLE_GAMEPAD=OFF \
-DENABLE_GEOLOCATION=ON \
-DENABLE_GLES2=OFF \
-DENABLE_GTKDOC=OFF \
-DENABLE_INTROSPECTION=OFF \
-DENABLE_JOURNALD_LOG=OFF \
-DENABLE_MEDIA_STREAM=ON \
-DENABLE_MEDIA_RECORDER=OFF \
-DENABLE_MEDIA_SOURCE=ON \
-DENABLE_MINIBROWSER=ON \
-DENABLE_QUARTZ_TARGET=OFF \
-DENABLE_SAMPLING_PROFILER=OFF \
-DENABLE_SMOOTH_SCROLLING=OFF \
-DENABLE_SPELLCHECK=ON \
-DENABLE_UNIFIED_BUILDS=ON \
-DENABLE_VIDEO=ON \
-DENABLE_WEB_AUDIO=ON \
-DENABLE_WEBDRIVER=OFF \
-DENABLE_WEBGL=ON \
-DENABLE_WEB_RTC=ON \
-DENABLE_WAYLAND_TARGET=OFF \
-DENABLE_X11_TARGET=OFF \
-DUSE_ATSPI=OFF \
-DUSE_AVIF=ON \
-DUSE_GSTREAMER_GL=OFF \
-DUSE_GSTREAMER_WEBRTC=ON \
-DUSE_GSTREAMER_TRANSCODER=OFF \
-DUSE_GTK4=OFF \
-DUSE_JPEGXL=ON \
-DUSE_LCMS=OFF \
-DUSE_LIBHYPHEN=ON \
-DUSE_LIBNOTIFY=OFF \
-DUSE_LIBSECRET=ON \
-DUSE_LIBWEBRTC=OFF \
-DUSE_OPENGL=ON \
-DUSE_OPENJPEG=ON \
-DUSE_SOUP2=OFF \
-DUSE_SYSTEM_MALLOC=ON \
-DUSE_SYSTEMD=OFF \
-DUSE_WOFF2=ON \
-DUSE_WPE_RENDERER=OFF \
$cmakeDirArgs
ninja -C build
}
INSTALL()
{
make -C build install
mkdir -p $dataDir $appsDir
mv $prefix/share/locale $dataDir
rm -rf $prefix/share
mv $libDir/webkit2gtk-4.1/MiniBrowser $appsDir
prepareInstalledDevelLibs \
libwebkit2gtk-4.1 \
libjavascriptcoregtk-4.1
fixPkgconfig
packageEntries devel \
$developDir
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/webprocess.rdef.in > webprocess.rdef
addResourcesToBinaries webprocess.rdef "$libDir/webkit2gtk-4.1/WebKitWebProcess"
addResourcesToBinaries webprocess.rdef "$libDir/webkit2gtk-4.1/WebKitNetworkProcess"
local APP_SIGNATURE="application/x-vnd.gtk-webkit-minibrowser"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/minibrowser.rdef.in > minibrowser.rdef
addResourcesToBinaries minibrowser.rdef "$appsDir/MiniBrowser"
addAppDeskbarSymlink "$appsDir/MiniBrowser"
}