diff --git a/Repository.mk b/Repository.mk index 3fc103ba0757..3a9b342e6d80 100644 --- a/Repository.mk +++ b/Repository.mk @@ -436,7 +436,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \ i18npool \ i18nsearch \ $(if $(ENABLE_JAVA),jdbc) \ - $(call gb_Helper_optional,QUICKJS,jsuno) \ + $(if $(ENABLE_QUICKJS),jsuno) \ $(if $(filter WNT,$(OS)),jumplist) \ $(if $(ENABLE_LDAP),ldapbe2) \ $(if $(filter WNT,$(OS)),WinUserInfoBe) \ diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index 86639a50b55a..80703c422a62 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -3364,6 +3364,15 @@ endif # ENABLE_QT6 # QuickJS +ifeq ($(SYSTEM_QUICKJS),TRUE) +define gb_LinkTarget__use_quickjs +$(call gb_LinkTarget_set_include,$(1),\ + $(QUICKJS_CFLAGS) \ + $$(INCLUDE) \ +) +$(call gb_LinkTarget_add_libs,$(1),$(QUICKJS_LIBS)) +endef +else define gb_LinkTarget__use_quickjs $(call gb_LinkTarget_use_external_project,$(1),quickjs,full) $(call gb_LinkTarget_set_include,$(1),\ @@ -3374,7 +3383,7 @@ $(call gb_LinkTarget_use_static_libraries,$(1),\ quickjs \ ) endef - +endif # PYTHON # extra python_headers external because pyuno wrapper must not link python diff --git a/RepositoryModule_host.mk b/RepositoryModule_host.mk index 609e16bbb5ce..8070c7612367 100644 --- a/RepositoryModule_host.mk +++ b/RepositoryModule_host.mk @@ -97,7 +97,7 @@ $(eval $(call gb_Module_add_moduledirs,libreoffice,\ instsetoo_native \ io \ javaunohelper \ - $(call gb_Helper_optional,QUICKJS,jsuno) \ + $(if $(ENABLE_QUICKJS),jsuno) \ jurt \ jvmaccess \ jvmfwk \ diff --git a/config_host.mk.in b/config_host.mk.in index 2afb264bbfb9..c83dd062faab 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -615,6 +615,8 @@ export QT6_LIBS=$(gb_SPACE)@QT6_LIBS@ export QT6_PLATFORMS_SRCDIR=@QT6_PLATFORMS_SRCDIR@ export QXP_CFLAGS=$(gb_SPACE)@QXP_CFLAGS@ export QXP_LIBS=$(gb_SPACE)@QXP_LIBS@ +export QUICKJS_CFLAGS=@QUICKJS_CFLAGS@ +export QUICKJS_LIBS=@QUICKJS_LIBS@ export RANLIB=@RANLIB@ export RAPTOR_MAJOR=@RAPTOR_MAJOR@ export RASQAL_MAJOR=@RASQAL_MAJOR@ @@ -731,6 +733,7 @@ SYSTEM_PAGEMAKER=@SYSTEM_PAGEMAKER@ SYSTEM_POPPLER=@SYSTEM_POPPLER@ SYSTEM_POSTGRESQL=@SYSTEM_POSTGRESQL@ SYSTEM_PYTHON=@SYSTEM_PYTHON@ +SYSTEM_QUICKJS=@SYSTEM_QUICKJS@ SYSTEM_ZXCVBN=@SYSTEM_ZXCVBN@ SYSTEM_ZXING=@SYSTEM_ZXING@ SYSTEM_QXP=@SYSTEM_QXP@ diff --git a/configure.ac b/configure.ac index 3d70c2ad5708..efa6e0126b69 100644 --- a/configure.ac +++ b/configure.ac @@ -1873,6 +1873,11 @@ AC_ARG_ENABLE(python, AC_ARG_ENABLE(quickjs, AS_HELP_STRING([--enable-quickjs], [Enables experimental support for scripting with QuickJS.])) +AC_ARG_WITH(system-quickjs, + AS_HELP_STRING([--with-system-quickjs], + [Use QuickJS already on system.]),, + [with_system_quickjs="$with_system_libs"]) + libo_FUZZ_ARG_ENABLE(gtk3, AS_HELP_STRING([--disable-gtk3], [Determines whether to use Gtk+ 3.0 vclplug on platforms where Gtk+ 3.0 is available.]), @@ -10829,10 +10834,20 @@ AC_SUBST(PYTHON_VERSION) AC_SUBST(PYTHON_VERSION_MAJOR) AC_SUBST(PYTHON_VERSION_MINOR) -AC_MSG_CHECKING([whether to build QuickJS]) +AC_MSG_CHECKING([whether to enable QuickJS]) if test "${enable_quickjs}" = "yes"; then AC_MSG_RESULT([yes]) - BUILD_TYPE="${BUILD_TYPE} QUICKJS" + AC_MSG_CHECKING([which QuickJS to use]) + if test "$with_system_quickjs" != "yes"; then + AC_MSG_RESULT([internal]) + BUILD_TYPE="${BUILD_TYPE} QUICKJS" + else + AC_MSG_RESULT([external]) + PKG_CHECK_MODULES([QUICKJS], [quickjs-ng], [], [ + PKG_CHECK_MODULES([QUICKJS], [qjs], []) + ]) + SYSTEM_QUICKJS=TRUE + fi AC_DEFINE([ENABLE_QUICKJS],1) ENABLE_QUICKJS="TRUE" else @@ -10840,6 +10855,9 @@ else ENABLE_QUICKJS="" fi AC_SUBST(ENABLE_QUICKJS) +AC_SUBST(SYSTEM_QUICKJS) +AC_SUBST(QUICKJS_CFLAGS) +AC_SUBST(QUICKJS_LIBS) AC_MSG_CHECKING([whether to build LibreLogo]) case "$enable_python" in