office-gobmx/desktop/Executable_soffice_bin.mk
Stephan Bergmann d0cb804f7a Framework for some UNOIDL to test the Embind UNO binding with
It is only built for --enable-dbgutil builds.  Load
instdir/program/qt_soffice.html in a browser and see "Running embindtest" in its
console.  For now, it only contains a Test singleton with an empty XTest
interface, which is meant to grow additional methods over time.

(The code needs to reside in the unotest rather than in the static module, or
else the wasm build would run into cyclic dependencies.)

Change-Id: I6f65f0c904648a4fd96fc6215c8d59a1544f48a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163693
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-02-22 08:15:30 +01:00

82 lines
2.6 KiB
Makefile

# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
$(eval $(call gb_Executable_Executable,soffice_bin))
$(eval $(call gb_Executable_set_include,soffice_bin,\
$$(INCLUDE) \
-I$(SRCDIR)/desktop/source/inc \
))
$(eval $(call gb_Executable_add_defs,soffice_bin,\
$(if $(DISABLE_DYNLOADING),$(if $(SYSTEM_LIBXML),,-DNOTEST_xmlCleanupParser)) \
))
$(eval $(call gb_Executable_use_libraries,soffice_bin,\
sal \
sofficeapp \
))
$(eval $(call gb_Executable_add_cobjects,soffice_bin,\
desktop/source/app/main \
))
ifeq ($(OS)-$(ENABLE_QT5),EMSCRIPTEN-TRUE)
$(eval $(call gb_Executable_add_prejs,soffice_bin,$(SRCDIR)/static/emscripten/soffice_args.js))
endif
ifeq ($(OS),WNT)
$(eval $(call gb_Executable_set_targettype_gui,soffice_bin,NO))
$(eval $(call gb_Executable_add_nativeres,soffice_bin,sofficebin/officeloader))
$(eval $(call gb_Executable_add_default_nativeres,soffice_bin,$(PRODUCTNAME)))
ifeq ($(COM),MSC)
$(eval $(call gb_Executable_add_ldflags,soffice_bin,\
/STACK:10000000 \
))
endif
endif
ifeq ($(OS),EMSCRIPTEN)
$(call gb_LinkTarget_get_target,$(call gb_Executable_get_linktarget,soffice_bin)) : $(call gb_StaticLibrary_get_linktarget_target,unoembind)
$(call gb_LinkTarget_get_headers_target,$(call gb_Executable_get_linktarget,soffice_bin)) : $(call gb_StaticLibrary_get_headers_target,unoembind)
$(call gb_LinkTarget__static_lib_dummy_depend,unoembind)
$(eval $(call gb_Executable_add_ldflags,soffice_bin,\
-s EXPORTED_FUNCTIONS=["_main"$(COMMA)"_libreofficekit_hook"$(COMMA)"_libreofficekit_hook_2"$(COMMA)"_lok_preinit"$(COMMA)"_lok_preinit_2"$(COMMA)"_malloc"$(COMMA)"_free"] -Wl$(COMMA)--whole-archive $(call gb_StaticLibrary_get_target,unoembind) -Wl$(COMMA)--no-whole-archive \
))
ifeq ($(ENABLE_QT6),TRUE)
$(eval $(call gb_Executable_add_ldflags,soffice_bin, \
-s MODULARIZE=1 \
-s EXPORT_NAME=soffice_entry \
))
endif
ifneq ($(ENABLE_DBGUTIL),)
$(call gb_Executable_get_linktarget_target,soffice_bin): \
$(call gb_CustomTarget_get_workdir,static/unoembind)/bindings_uno.js \
$(SRCDIR)/unotest/source/embindtest/embindtest.js
$(eval $(call gb_Executable_add_ldflags,soffice_bin, \
--post-js $(call gb_CustomTarget_get_workdir,static/unoembind)/bindings_uno.js \
--post-js $(SRCDIR)/unotest/source/embindtest/embindtest.js \
))
endif
endif
# vim: set ts=4 sw=4 et: