mirror of
https://github.com/yann64/haikuports.git
synced 2026-05-05 22:48:55 +02:00
286 lines
8.8 KiB
Bash
286 lines
8.8 KiB
Bash
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 WebKit’s 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. It’s 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="2009‒2022 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"
|
||
}
|