wpewebkit.mk 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. ################################################################################
  2. #
  3. # wpewebkit
  4. #
  5. ################################################################################
  6. # The middle number is even for stable releases, odd for development ones.
  7. WPEWEBKIT_VERSION = 2.48.3
  8. WPEWEBKIT_SITE = https://wpewebkit.org/releases
  9. WPEWEBKIT_SOURCE = wpewebkit-$(WPEWEBKIT_VERSION).tar.xz
  10. WPEWEBKIT_INSTALL_STAGING = YES
  11. WPEWEBKIT_LICENSE = LGPL-2.1+, BSD-2-Clause
  12. WPEWEBKIT_LICENSE_FILES = \
  13. Source/WebCore/LICENSE-APPLE \
  14. Source/WebCore/LICENSE-LGPL-2.1
  15. WPEWEBKIT_CPE_ID_VENDOR = wpewebkit
  16. WPEWEBKIT_CPE_ID_PRODUCT = wpe_webkit
  17. WPEWEBKIT_DEPENDENCIES = host-gperf host-python3 host-ruby host-unifdef \
  18. harfbuzz icu jpeg libepoxy libgcrypt libgles libsoup3 libtasn1 \
  19. libpng libxslt wayland-protocols webp wpebackend-fdo
  20. WPEWEBKIT_CMAKE_BACKEND = ninja
  21. WPEWEBKIT_CONF_OPTS = \
  22. -DPORT=WPE \
  23. -DENABLE_API_TESTS=OFF \
  24. -DENABLE_DOCUMENTATION=OFF \
  25. -DENABLE_INTROSPECTION=OFF \
  26. -DENABLE_MINIBROWSER=OFF \
  27. -DENABLE_WEB_RTC=OFF \
  28. -DUSE_ATK=OFF
  29. # WPE WebKit uses a bundled copy of Skia since 2.46.0 for
  30. # little-endian targets, and Cairo for big-endian ones.
  31. ifeq ($(BR2_ENDIAN),"BIG")
  32. WPEWEBKIT_DEPENDENCIES += cairo
  33. WPEWEBKIT_CONF_OPTS += -DUSE_SKIA=OFF
  34. else
  35. WPEWEBKIT_CONF_OPTS += -DUSE_SKIA=ON
  36. endif
  37. ifeq ($(BR2_PACKAGE_WPEWEBKIT_SANDBOX),y)
  38. WPEWEBKIT_CONF_OPTS += \
  39. -DENABLE_BUBBLEWRAP_SANDBOX=ON \
  40. -DBWRAP_EXECUTABLE=/usr/bin/bwrap \
  41. -DDBUS_PROXY_EXECUTABLE=/usr/bin/xdg-dbus-proxy
  42. WPEWEBKIT_DEPENDENCIES += libseccomp
  43. else
  44. WPEWEBKIT_CONF_OPTS += -DENABLE_BUBBLEWRAP_SANDBOX=OFF
  45. endif
  46. ifeq ($(BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA),y)
  47. WPEWEBKIT_CONF_OPTS += \
  48. -DENABLE_VIDEO=ON \
  49. -DENABLE_WEB_AUDIO=ON \
  50. -DENABLE_WEB_CODECS=ON
  51. WPEWEBKIT_DEPENDENCIES += gstreamer1 gst1-libav gst1-plugins-base
  52. else
  53. WPEWEBKIT_CONF_OPTS += \
  54. -DENABLE_VIDEO=OFF \
  55. -DENABLE_WEB_AUDIO=OFF \
  56. -DENABLE_WEB_CODECS=OFF
  57. endif
  58. ifeq ($(BR2_PACKAGE_WPEWEBKIT_MEDIA_STREAM),y)
  59. WPEWEBKIT_CONF_OPTS += -DENABLE_MEDIA_STREAM=ON
  60. WPEWEBKIT_DEPENDENCIES += gst1-plugins-bad
  61. else
  62. WPEWEBKIT_CONF_OPTS += -DENABLE_MEDIA_STREAM=OFF
  63. endif
  64. ifeq ($(BR2_PACKAGE_LIBAVIF),y)
  65. WPEWEBKIT_CONF_OPTS += -DUSE_AVIF=ON
  66. WPEWEBKIT_DEPENDENCIES += libavif
  67. else
  68. WPEWEBKIT_CONF_OPTS += -DUSE_AVIF=OFF
  69. endif
  70. ifeq ($(BR2_PACKAGE_WPEWEBKIT_USE_GSTREAMER_GL),y)
  71. WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=ON
  72. else
  73. WPEWEBKIT_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF
  74. endif
  75. ifeq ($(BR2_PACKAGE_WPEWEBKIT_WEBDRIVER),y)
  76. WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=ON
  77. else
  78. WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=OFF
  79. endif
  80. ifeq ($(BR2_PACKAGE_FLITE),y)
  81. WPEWEBKIT_CONF_OPTS += -DENABLE_SPEECH_SYNTHESIS=ON
  82. WPEWEBKIT_DEPENDENCIES += flite
  83. else
  84. WPEWEBKIT_CONF_OPTS += -DENABLE_SPEECH_SYNTHESIS=OFF
  85. endif
  86. ifeq ($(BR2_PACKAGE_LCMS2),y)
  87. WPEWEBKIT_CONF_OPTS += -DUSE_LCMS=ON
  88. WPEWEBKIT_DEPENDENCIES += lcms2
  89. else
  90. WPEWEBKIT_CONF_OPTS += -DUSE_LCMS=OFF
  91. endif
  92. ifeq ($(BR2_PACKAGE_LIBBACKTRACE),y)
  93. WPEWEBKIT_CONF_OPTS += -DUSE_LIBBACKTRACE=ON
  94. WPEWEBKIT_DEPENDENCIES += libbacktrace
  95. else
  96. WPEWEBKIT_CONF_OPTS += -DUSE_LIBBACKTRACE=OFF
  97. endif
  98. ifeq ($(BR2_PACKAGE_LIBDRM),y)
  99. WPEWEBKIT_CONF_OPTS += -DUSE_LIBDRM=ON
  100. WPEWEBKIT_DEPENDENCIES += libdrm
  101. else
  102. WPEWEBKIT_CONF_OPTS += -DUSE_LIBDRM=OFF
  103. endif
  104. ifeq ($(BR2_PACKAGE_WOFF2),y)
  105. WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=ON
  106. WPEWEBKIT_DEPENDENCIES += woff2
  107. else
  108. WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=OFF
  109. endif
  110. ifeq ($(BR2_PACKAGE_LIBJXL),y)
  111. WPEWEBKIT_CONF_OPTS += -DUSE_JPEGXL=ON
  112. WPEWEBKIT_DEPENDENCIES += libjxl
  113. else
  114. WPEWEBKIT_CONF_OPTS += -DUSE_JPEGXL=OFF
  115. endif
  116. ifeq ($(BR2_PACKAGE_SYSPROF),y)
  117. WPEWEBKIT_CONF_OPTS += -DUSE_SYSPROF_CAPTURE=ON
  118. WPEWEBKIT_DEPENDENCIES += sysprof
  119. else
  120. WPEWEBKIT_CONF_OPTS += -DUSE_SYSPROF_CAPTURE=OFF
  121. endif
  122. ifeq ($(BR2_INIT_SYSTEMD),y)
  123. WPEWEBKIT_CONF_OPTS += -DENABLE_JOURNALD_LOG=ON
  124. WPEWEBKIT_DEPENDENCIES += systemd
  125. else
  126. WPEWEBKIT_CONF_OPTS += -DENABLE_JOURNALD_LOG=OFF
  127. endif
  128. ifeq ($(BR2_PACKAGE_HAS_LIBGBM),y)
  129. WPEWEBKIT_CONF_OPTS += -DUSE_GBM=ON
  130. WPEWEBKIT_DEPENDENCIES += libgbm
  131. else
  132. WPEWEBKIT_CONF_OPTS += -DUSE_GBM=OFF
  133. endif
  134. # JIT is not supported for MIPS r6, but the WebKit build system does not
  135. # have a check for these processors. The same goes for ARMv5 and ARMv6.
  136. # Disable JIT forcibly here and use the CLoop interpreter instead.
  137. #
  138. # Also, we have to disable the sampling profiler and WebAssembly, which
  139. # do NOT work with ENABLE_C_LOOP.
  140. #
  141. # Upstream bugs: https://bugs.webkit.org/show_bug.cgi?id=191258
  142. # https://bugs.webkit.org/show_bug.cgi?id=172765
  143. # https://bugs.webkit.org/show_bug.cgi?id=265218
  144. #
  145. ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS_CPU_MIPS64R6),y)
  146. WPEWEBKIT_CONF_OPTS += \
  147. -DENABLE_JIT=OFF \
  148. -DENABLE_C_LOOP=ON \
  149. -DENABLE_SAMPLING_PROFILER=OFF \
  150. -DENABLE_WEBASSEMBLY=OFF
  151. endif
  152. $(eval $(cmake-package))