# -*- 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/. # gb_Top_MODULE_CHECK_TARGETS := slowcheck unitcheck subsequentcheck perfcheck uicheck screenshot .PHONY : check-if-root bootstrap gbuild build build-non-l10n-only build-l10n-only check clean clean-build clean-host test-install distclean distro-pack-install docs download etags fetch get-submodules id install install-gdb-printers install-strip tags debugrun help showmodules translations packageinfo coverage internal.clean $(gb_Top_MODULE_CHECK_TARGETS) MAKECMDGOALS?=build build_goal:=$(if $(filter build uicheck,$(MAKECMDGOALS)),build)\ $(if $(filter check,$(MAKECMDGOALS)),unitcheck slowcheck subsequentcheck $(if $(filter Linux, $(shell uname)), uicheck))\ $(filter build-l10n-only build-non-l10n-only debugrun help showmodules translations $(gb_Top_MODULE_CHECK_TARGETS) check packageinfo gbuildtojson,$(MAKECMDGOALS)) SRCDIR := @SRC_ROOT@ BUILDDIR := @BUILDDIR@ COMPILER_PLUGINS := @COMPILER_PLUGINS@ GIT_BUILD := $(if $(wildcard $(SRCDIR)/.git),T) # Run autogen.sh if needed and force make to restart itself. # ... but there are several cases where we do not want to run # autogen.sh: # 1. if we are building from tarballs, not git checkout (I do not # think packagers would ever want that. I certainly do not.) # 2. if we are making help, clean or distclean, because they do not # need updated configuration ifeq (,$(MAKE_RESTARTS)$(if $(GIT_BUILD),,T)$(if $(filter-out help showmodules clean distclean,$(MAKECMDGOALS)),,T)) # note: this must touch both Makefile and $(BUILDDIR)/Makefile, because make # may be invoked using either of these paths, and it will restart itself only # if the updated target is exactly the same path as the Makefile it is using .PHONY : force-restart Makefile $(BUILDDIR)/Makefile: $(BUILDDIR)/config_host.mk $(BUILDDIR)/config_host_lang.mk force-restart @touch $@ # run configure in an environment not polluted by config_host.mk $(BUILDDIR)/config_host.mk : $(wildcard \ $(SRCDIR)/autogen.sh \ $(SRCDIR)/config_host.mk.in \ $(SRCDIR)/config_host_lang.mk.in \ $(SRCDIR)/Makefile.in \ $(SRCDIR)/instsetoo_native/util/openoffice.lst.in \ $(SRCDIR)/configure.ac \ $(SRCDIR)/config_host/*.h.in \ $(SRCDIR)/download.lst \ $(SRCDIR)/m4/*.m4 \ $(BUILDDIR)/autogen.input \ $(BUILDDIR)/autogen.lastrun \ ) \ $(shell . $(SRCDIR)/bin/get_config_variables JAVA_HOME && \ if test -n "$${JAVA_HOME}" -a ! -d "$${JAVA_HOME}/bin"; then echo force-restart; fi) sh -c $(SRCDIR)/autogen.sh else # MAKE_RESTARTS .DEFAULT_GOAL := build # Nested test is to check if the systemd-detect-virt command doesn't exist or it reports we're not # in a container: check-if-root: @if test ! `uname` = 'Haiku' -a `id -u` = 0; then \ if test ! -x "$$(command -v systemd-detect-virt)" || ! systemd-detect-virt -c -q; then \ echo; \ echo 'Building LibreOffice as root is a very bad idea, use a regular user.'; \ echo; \ exit 1; \ fi \ fi gb_Side ?= host include $(BUILDDIR)/config_$(gb_Side).mk export GMAKE_OPTIONS?=-r$(if $(verbose),,s)$(value $(MAKEFLAGS)) PARALLELISM_OPTION := $(if $(filter-out 0,$(PARALLELISM)),-j $(PARALLELISM),) # # Partial Build # define gb_Top_GbuildModuleRules .PHONY: $(1) $(1).build $(1).all $(1).check $(1).clean $(1).showdeliverables $(1).coverage $(foreach target,$(gb_Top_MODULE_CHECK_TARGETS),$(1).$(target)) .PHONY: $(1).allbuild $(1).buildall $(1).allcheck $(1).checkall $(1): bootstrap fetch cd $(SRCDIR)/$(2) && $$(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) $(1).build $(1).check $(1).coverage $(foreach target,$(gb_Top_MODULE_CHECK_TARGETS),$(1).$(target)): bootstrap fetch cd $(SRCDIR)/$(2) && $$(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) $$(patsubst $(1).%,%,$$@) $(1).clean $(1).showdeliverables: cd $(SRCDIR)/$(2) && $$(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) $$(patsubst $(1).%,%,$$@) $(1).allbuild $(1).buildall: bootstrap fetch $$(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $(WORKDIR)/Module/$(1) $(1).allcheck $(1).checkall: bootstrap fetch $$(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $(WORKDIR)/Module/$(1) $(WORKDIR)/Module/check/$(1) $(WORKDIR)/Module/slowcheck/$(1) $(1).all: @echo "'make $(1).all' was renamed to 'make $(1).allcheck' (or use 'make $(1).allbuild' to build without unit tests)" @exit 42 endef define gb_Top_GbuildModulesRules $(foreach m,$(1),$(call gb_Top_GbuildModuleRules,$(notdir $(m)),$(m))) endef gbuild_modules := $(patsubst $(SRCDIR)/%/,%,$(dir $(wildcard $(SRCDIR)/*/Module_*.mk $(SRCDIR)/external/*/Module_*.mk))) gbuild_internal_modules := $(filter-out odk external,$(patsubst $(SRCDIR)/%/,%,$(dir $(wildcard $(SRCDIR)/*/Module_*.mk)))) internal.clean: $(addsuffix .clean,$(gbuild_internal_modules)) $(eval $(call gb_Top_GbuildModulesRules,$(gbuild_modules))) gbuild_TARGETS := AllLangHelp \ AllLangMoTarget \ AllLangPackage \ AutoInstall \ CliLibrary \ CliNativeLibrary \ CliUnoApi \ CompilerTest \ ComponentTarget \ Configuration \ CppunitTest \ CustomTarget \ Dictionary \ Executable \ Extension \ ExtensionPackage \ ExtensionPackageSet \ ExternalPackage \ ExternalProject \ Gallery \ GeneratedPackage \ InstallModule \ InstallScript \ InternalUnoApi \ Jar \ JunitTest \ Library \ Module \ Package \ PackageSet \ Pagein \ Postprocess \ Pyuno \ PythonTest \ Rdb \ SdiTarget \ StaticLibrary \ UIConfig \ UITest \ UnoApi \ UnpackedTarball \ WinResTarget \ Zip \ # build a generic gbuild target $(foreach target,$(gbuild_TARGETS),$(target)_% $(foreach module,$(gbuild_modules),$(target)_$(module)/%)) UIConfig_modules/% %.genpatch: bootstrap fetch $(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@ $(gbuild_TARGETS): $(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@ # # Clean # clean: clean-host clean-build clean-host: rm -fr $(TESTINSTALLDIR) rm -fr $(INSTDIR) rm -fr $(WORKDIR) clean-build: ifneq ($(CROSS_COMPILING),) rm -fr $(INSTDIR_FOR_BUILD) rm -fr $(WORKDIR_FOR_BUILD) ifeq ($(OS),ANDROID) rm -fr $(BUILDDIR)/android/obj rm -fr $(BUILDDIR)/android/jniLibs rm -fr $(SRCDIR)/android/source/build rm -fr $(SRCDIR)/android/source/assets rm -fr $(SRCDIR)/android/source/assets_fullUI rm -fr $(SRCDIR)/android/source/assets_strippedUI endif endif include $(SRCDIR)/compilerplugins/Makefile.mk # # Distclean # distclean : clean compilerplugins-clean mac-app-store-package.clean rm -fr \ $(BUILDDIR)/Makefile \ $(BUILDDIR)/aclocal.m4 \ $(BUILDDIR)/autom4te.cache \ $(BUILDDIR)/bin/bffvalidator.sh \ $(BUILDDIR)/bin/odfvalidator.sh \ $(BUILDDIR)/bin/officeotron.sh \ $(BUILDDIR)/config.Build.log \ $(BUILDDIR)/config.Build.warn \ $(BUILDDIR)/config.log \ $(BUILDDIR)/config.status \ $(BUILDDIR)/config.warn \ $(BUILDDIR)/config_build.mk \ $(BUILDDIR)/config_build_lang.mk \ $(BUILDDIR)/config_build \ $(BUILDDIR)/config_host.mk \ $(BUILDDIR)/config_host.mk.stamp \ $(BUILDDIR)/config_host_lang.mk \ $(BUILDDIR)/config_host_lang.mk.stamp \ $(BUILDDIR)/config_host/*.h \ $(BUILDDIR)/configure \ $(BUILDDIR)/hardened_runtime.xcent \ $(BUILDDIR)/instsetoo_native/util/openoffice.lst \ $(BUILDDIR)/solenv/lockfile/autoconf.h \ $(BUILDDIR)/lo.xcent \ $(BUILDDIR)/sysui/desktop/macosx/Info.plist \ $(BUILDDIR)/vs-code*.code-workspace* $(if $(filter WNT,$(OS)),env -i PATH="$$PATH") $(FIND) $(SRCDIR)/solenv/gdb -name \*.pyc -exec rm -f {} \; # # custom command # cmd: $(if $(verbose),echo "custom cmd" &&) ( $(cmd) ) # # Fetch # ifneq ($(DO_FETCH_TARBALLS),) include $(SRCDIR)/Makefile.fetch fetch: download fetch: get-submodules ifneq (,$(wildcard $(SRCDIR)/.git)) get-submodules: ifneq ($(foreach i,$(GIT_NEEDED_SUBMODULES),$(SRCDIR)/$(i)/.git),$(wildcard $(foreach i,$(GIT_NEEDED_SUBMODULES),$(SRCDIR)/$(i)/.git))) cd $(SRCDIR) && ./g -f clone endif ifeq ($(shell test -d $(SRCDIR)/.git; echo $$?),0) @cd $(SRCDIR) && ./g -z # make sure the git hooks are in place even if no submodules are needed endif else # these sources are from a tarball, so get the other source tarballs gb_LO_VER := $(shell . $(SRCDIR)/sources.ver && echo $$lo_sources_ver) $(if $(gb_LO_VER),,$(error Error while retrieving $$lo_sources_ver from $(SRCDIR)/sources.ver)) get-submodules: | download ifneq ($(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),$(SRCDIR)/src/libreoffice-$(i)-$(gb_LO_VER)),$(wildcard $(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),$(SRCDIR)/src/libreoffice-$(i)-$(gb_LO_VER)))) $(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),\ $(call fetch_Download_item_unchecked,https://download.documentfoundation.org/libreoffice/src/$(shell echo $(gb_LO_VER) | sed -e "s/\([0-9]*\.[0-9]*\.[0-9]*\).*/\1/"),libreoffice-$(i)-$(gb_LO_VER).tar.xz)) $(SRCDIR)/bin/unpack-sources $(SRCDIR) $(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),\ $(TARFILE_LOCATION)/libreoffice-$(i)-$(gb_LO_VER).tar.xz) endif endif else fetch: @echo "Automatic fetching of external tarballs is disabled." endif # # Bootstrap # bootstrap: check-if-root compilerplugins # # Build # # Note: this will pipe through all gbuild targets to ... gbuild # with some translations like "check"->"unitcheck subsequentcheck uicheck" for historic reasons # build: bootstrap fetch $(if $(CROSS_COMPILING),cross-toolset,install-gdb-printers) \ $(if $(filter check,$(MAKECMDGOALS)),$(if $(COMPILER_PLUGINS),$(if $(LODE_HOME),clang-format-check))) $(MAKE) $(PARALLELISM_OPTION) $(IWYU_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $(build_goal) ifeq ($(OS),iOS) $(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) ios endif build-non-l10n-only build-l10n-only check debugrun translations packageinfo coverage $(gb_Top_MODULE_CHECK_TARGETS): build help showmodules gbuildtojson pocheck: $(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@ cross-toolset: bootstrap fetch install-gdb-printers # fetch again in case there are externals only needed on build platform ifneq ($(OS),iOS) $(MAKE) gb_Side=build $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(BUILDDIR)/Makefile fetch endif $(MAKE) gb_Side=build $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild build-tools install-gdb-printers: ifneq ($(filter-out WNT MACOSX iOS,$(OS)),) ifneq ($(INSTDIR_FOR_BUILD),$(INSTDIR)) mkdir -p $(INSTDIR_FOR_BUILD) $(SRCDIR)/solenv/bin/install-gdb-printers -a $(INSTDIR_FOR_BUILD) -c endif mkdir -p $(INSTDIR) $(SRCDIR)/solenv/bin/install-gdb-printers -a $(INSTDIR) -c endif # # Install # define gb_Top_DoInstall echo "$(1) in $(INSTALLDIR) ..." && \ WITH_LANG_LIST="$(WITH_LANG_LIST)" $(SRCDIR)/solenv/bin/ooinstall $(2) "$(INSTALLDIR)" endef ifneq ($(OS),MACOSX) define gb_Top_InstallFinished echo && echo "If you want to edit the .ui files with glade first execute:" && \ echo && echo "export GLADE_CATALOG_SEARCH_PATH=$(2)/share/glade" && \ echo && echo "$(1) finished, you can now execute:" && \ echo "$(2)/program/soffice" endef else define gb_Top_InstallFinished echo && echo "$(1) finished, you can now run: " && \ echo "open $(2)/$(PRODUCTNAME).app" && \ echo "" && \ echo "To debug: gdb $(2)/$(PRODUCTNAME).app/Contents/MacOS/soffice" endef endif ifneq ($(OS),MACOSX) install: @$(call gb_Top_DoInstall,Installing,) @$(call gb_Top_InstallFinished,Installation,$(INSTALLDIR)) install-strip: @$(call gb_Top_DoInstall,Installing and stripping binaries,--strip) @$(call gb_Top_InstallFinished,Installation,$(INSTALLDIR)) endif # !MACOSX test-install: build @rm -rf $(TESTINSTALLDIR) @mkdir -p $(TESTINSTALLDIR) ifeq ($(OS_FOR_BUILD),WNT) cd $(SRCDIR)/instsetoo_native && $(MAKE) LIBO_TEST_INSTALL=TRUE $(GMAKE_OPTIONS) else @WITH_LANG_LIST="$(WITH_LANG_LIST)" $(SRCDIR)/solenv/bin/ooinstall $(TESTINSTALLDIR) ifeq ($(OS),MACOSX) # # Create Resources/*.lproj directories for languages supported by macOS set -x; for lang in ca cs da de el en es fi fr hr hu id it ja ko ms nl no pl pt pt_PT ro ru sk sv th tr uk vi zh_CN zh_TW; do \ lproj=$(TESTINSTALLDIR)/$(PRODUCTNAME_WITHOUT_SPACES).app/Contents/Resources/$$lang.lproj; \ mkdir "$$lproj"; \ done # # Remove unnecessary executables in the LibreOfficePython framework rm -rf $(TESTINSTALLDIR)/$(PRODUCTNAME_WITHOUT_SPACES).app/Contents/Frameworks/LibreOfficePython.framework/Versions/[1-9]*/bin # # Remove the python.o object file which is weird and interferes with app store uploading # And with it removed, presumably the other stuff in the Python lib/python3.3/config-3.3m probably does not make sense either. rm -rf $(TESTINSTALLDIR)/$(PRODUCTNAME_WITHOUT_SPACES).app/Contents/Frameworks/LibreOfficePython.framework/Versions/[1-9]*/lib/python[1-9]*/config-[1-9]* # ifneq ($(ENABLE_MACOSX_SANDBOX),) # Remove the gengal binary that we hardly need and the shell scripts # for which code signatures (stored as extended attributes) won't # survive upload to the App Store anyway. See # https://developer.apple.com/library/content/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html#//apple_ref/doc/uid/TP40005929-CH4-TNTAG201 # We could put the shell scripts somewhere in Resources instead, but # no 3rd-party code that would be interested in them would look there # anyway. rm $(TESTINSTALLDIR)/$(PRODUCTNAME_WITHOUT_SPACES).app/Contents/MacOS/gengal rm $(TESTINSTALLDIR)/$(PRODUCTNAME_WITHOUT_SPACES).app/Contents/MacOS/unopkg rm $(TESTINSTALLDIR)/$(PRODUCTNAME_WITHOUT_SPACES).app/Contents/MacOS/unoinfo endif ifneq ($(MACOSX_PROVISIONING_PROFILE),) cp "$(MACOSX_PROVISIONING_PROFILE)" $(TESTINSTALLDIR)/$(PRODUCTNAME_WITHOUT_SPACES).app/Contents/embedded.provisionprofile endif ifneq ($(MACOSX_CODESIGNING_IDENTITY),) # Then use the macosx-codesign-app-bundle script @$(SRCDIR)/solenv/bin/macosx-codesign-app-bundle $(TESTINSTALLDIR)/$(PRODUCTNAME_WITHOUT_SPACES).app endif endif endif @$(call gb_Top_InstallFinished,Test Installation,$(TESTINSTALLDIR)) # target to bypass the packaging steps/to only assemble the package mac-app-store-package.prepare: $(BUILDDIR)/$(PLATFORMID)/done # shorthand target to build a complete package for the currently building architecture mac-app-store-package: mac-app-store-package.$(PLATFORMID) # recipe/targets to do the actual packaging # the symbolication switch to productbuild unfortunately is undocumented, but that is what XCode # uses when it creates a package with symbols for uploading to the appstore mac-app-store-package.$(PLATFORMID) mac-app-store-package.universal: mac-app-store-package.%: $(BUILDDIR)/%/done ifneq ($(MACOSX_PACKAGE_SIGNING_IDENTITY),) $(SRCDIR)/solenv/bin/macosx-codesign-app-bundle $*/"$(PRODUCTNAME)".app productbuild $(if $(ENABLE_SYMBOLS_FOR),--symbolication $*/Symbols) --component $*/"$(PRODUCTNAME)".app /Applications --sign $(MACOSX_PACKAGE_SIGNING_IDENTITY) $(PRODUCTNAME_WITHOUT_SPACES).pkg else @echo You did not provide an installer signing identity with --enable-macosx-package-signing @exit 1 endif # the builds need to persist a standard "make clean" to be able to combine them into a universal # binary, so provide an additional target that can be used standalone or via make distclean mac-app-store-package.clean: rm -rf \ $(BUILDDIR)/macosx_x86_64 \ $(BUILDDIR)/macosx_aarch64 \ $(BUILDDIR)/universal \ $(BUILDDIR)/$(PRODUCTNAME_WITHOUT_SPACES).pkg # used by the mac-app-store targets $(BUILDDIR)/$(PLATFORMID)/done: test-install rm -rf $(PLATFORMID) mkdir -p $(PLATFORMID)/Symbols mv $(TESTINSTALLDIR)/$(PRODUCTNAME_WITHOUT_SPACES).app $(PLATFORMID)/"$(PRODUCTNAME)".app ifneq ($(ENABLE_SYMBOLS_FOR),) symbols -arch all -symbolsPackageDir $(PLATFORMID)/Symbols $(PLATFORMID)/"$(PRODUCTNAME)".app/Contents/Frameworks/[^L]* $(PLATFORMID)/"$(PRODUCTNAME)".app/Contents/MacOS/* strip -S $(PLATFORMID)/"$(PRODUCTNAME)".app/Contents/Frameworks/[^L]* $(PLATFORMID)/"$(PRODUCTNAME)".app/Contents/MacOS/* endif touch $@ # build one arch using the mac-app-store-package.prepare target, make clean and change the autogen.input # to build for the other target, then use mac-app-store-package.universal to build for the other arch and # combine the two into a universal binary $(BUILDDIR)/universal/done: $(BUILDDIR)/macosx_x86_64/done $(BUILDDIR)/macosx_aarch64/done rm -rf universal mkdir -p universal/Symbols ifneq ($(ENABLE_SYMBOLS_FOR),) cp -a macosx_x86_64/Symbols/* macosx_aarch64/Symbols/* universal/Symbols/ endif $(SRCDIR)/bin/merge-app-bundles macosx_x86_64/"$(PRODUCTNAME)".app macosx_aarch64/"$(PRODUCTNAME)".app universal/"$(PRODUCTNAME)".app touch $@ distro-pack-install: install WITH_LANG_LIST="$(WITH_LANG_LIST)" WITH_POOR_HELP_LOCALIZATIONS="$(WITH_POOR_HELP_LOCALIZATIONS)" $(SRCDIR)/bin/distro-install-clean-up $(SRCDIR)/bin/distro-install-desktop-integration $(SRCDIR)/bin/distro-install-sdk WITH_LANG_LIST="$(WITH_LANG_LIST)" $(SRCDIR)/bin/distro-install-file-lists install-package-%: $(MAKE) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@ id: @$(SRCDIR)/solenv/bin/create-ids tags: @$(SRCDIR)/solenv/bin/create-tags etags: @$(SRCDIR)/solenv/bin/create-tags -e docs: @$(SRCDIR)/solenv/bin/mkdocs.sh $(SRCDIR)/docs $(SRCDIR)/solenv/inc/doxygen.cfg findunusedheaders: $(SRCDIR)/bin/find-unusedheaders.py symbols: rm -fr $(WORKDIR)/symbols/ mkdir -p $(WORKDIR)/symbols/ ifeq ($(OS),WNT) $(SRCDIR)/bin/symbolstore.py $(WORKDIR)/UnpackedTarball/breakpad/src/tools/windows/dump_syms/Release/dump_syms.exe $(WORKDIR)/symbols/ $(INSTDIR)/program/ $(SRCDIR)/bin/symstore.sh else $(SRCDIR)/bin/symbolstore.py $(WORKDIR)/UnpackedTarball/breakpad/src/tools/linux/dump_syms/dump_syms $(WORKDIR)/symbols/ $(INSTDIR)/program/* endif cd $(WORKDIR)/symbols/ && zip -r $(WORKDIR)/symbols.zip * create-mar: rm -fr $(WORKDIR)/installation/mar/ rm -fr $(WORKDIR)/installation/temp/ mkdir -p $(WORKDIR)/installation/temp/ mkdir -p $(WORKDIR)/installation/mar/ tar -xzf $(WORKDIR)/installation/LibreOfficeDev/archive/install/en-US/LibreOffice* -C $(WORKDIR)/installation/temp/ $(SRCDIR)/bin/update/make_full_update.sh $(WORKDIR)/installation/mar/test.mar $(WORKDIR)/installation/temp/*/ upload-symbols: $(MAKE) -f $(SRCDIR)/Makefile.gbuild upload-symbols create-update-info: $(MAKE) -f $(SRCDIR)/Makefile.gbuild create-update-info upload-update-info: $(MAKE) -f $(SRCDIR)/Makefile.gbuild upload-update-info create-partial-info: $(MAKE) -f $(SRCDIR)/Makefile.gbuild create-partial-info dump-deps: @$(SRCDIR)/bin/module-deps.pl $(if $(verbose),-v) $(MAKE) $(SRCDIR)/Makefile.gbuild dump-deps-png: @$(SRCDIR)/bin/module-deps.pl $(if $(verbose),-v) $(MAKE) $(SRCDIR)/Makefile.gbuild | dot -Tpng -o lo.png dump-deps-sort: @$(SRCDIR)/bin/module-deps.pl -t $(if $(verbose),-v) $(MAKE) $(SRCDIR)/Makefile.gbuild clang-format-check: @$(SRCDIR)/solenv/clang-format/check-last-commit define gb_Top_GbuildToIdeIntegration $(1)-ide-integration: gbuildtojson $(if $(filter MACOSX,$(OS_FOR_BUILD)),python3.allbuild) cd $(SRCDIR) && \ $(if $(filter MACOSX,$(OS_FOR_BUILD)),PATH="$(INSTROOT_FOR_BUILD)/Frameworks/LibreOfficePython.framework/Versions/Current/bin:$(PATH)") \ bin/gbuild-to-ide --ide $(1) --make $(MAKE) endef $(foreach ide,\ codelite \ vs \ kdevelop \ vim \ qtcreator \ xcode \ eclipsecdt,\ $(eval $(call gb_Top_GbuildToIdeIntegration,$(ide)))) # vscode integration is based on compile_commands.json, which is generated by vim-ide-integration # the workspace template created by configure doesn't provide advanced/fine grained targets but # rather supplies some useful settings and basic examples for run/debug configurations # this target is provided primarily for consistency with the other ide-integrations vscode-ide-integration: $(BUILDDIR)/vs-code.code-workspace vim-ide-integration # ToDo: there probably is a way to have it at least create the compile-commands.json file # for the vim/vs-code integration without building the registry stuff Rdb:| fetch gbuildtojson: Rdb $(BUILDDIR)/vs-code.code-workspace: $(BUILDDIR)/vs-code.code-workspace.template @test -e $@ || cp $< $@ && \ cmp -s $@ $< || echo "ATTN: $(@F) differs from $(feature/nativealpha LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
path: root/unoxml
AgeCommit message (Collapse)Author
2012-11-28We only support MSVC 2008 (_MSC_VER 1500) or laterTor Lillqvist
We can drop or simplify many conditionals. Change-Id: I37e820e515cc09845c30b62c89ddb3b6ff370f97
2012-11-20fdo#51304: Remove @author annotationJosé Guilherme Vanz
This commit removes some @author annotations and some cleanup. Change-Id: Iaf2c4465825dc73af6c1d7377ae847262721c22b Signed-off-by: José Guilherme Vanz <guilherme.sft@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/1122 Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com> Tested-by: Norbert Thiebaud <nthiebaud@gmail.com>
2012-11-14Reset xmlSetGenericErrorFunc after useStephan Bergmann
...otherwise, unrelated libxml2 clients that try to report errors during exit can fail if this function is still set but the infrastructure behind it is already gone. Change-Id: I7c41fb6770dbff27a71b4b0f82330c608e6e8363
2012-11-14fdo#57055: Re-enable call to librdf_free_worldStephan Bergmann
cf. <https://bugs.freedesktop.org/show_bug.cgi?id=57055#c1> Change-Id: Ibcd55720bbd17b72a5cd0cc9fc6417195fbcdfd1
2012-10-01Replace usage of rtl_*Memory with equivalent from string.hArnaud Versini
Change-Id: I50ffc10f007f03c3252ef0196b59b881429cc159 Reviewed-on: https://gerrit.libreoffice.org/734 Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com> Tested-by: Norbert Thiebaud <nthiebaud@gmail.com>
2012-09-28gbuild: invert handling of standard system libraries:Michael Stahl
Always link in gb_STDLIBS, except when the library explicitly opts out with gb_LinkTarget_disable_standard_system_libs. Change-Id: I489a99114fbfa46d0421a27cf6c7b899dc268a4a
2012-09-28gbuild: replace direct gb_STDLIBS use with ...Michael Stahl
... new gb_LinkTarget_add_standard_system_libs Change-Id: Ib2bc843098db3d8c6822b45a3d21724e67f57d69
2012-09-28gbuild: split uwinapi out of gb_STDLIBSMichael Stahl
Change-Id: I53316e0b9369d806197bccb42cf22d3497af43e7
2012-09-24soffice.bin: add a hack to detect calls to xmlCleanupParserMichael Stahl
xmlCleanupParser frees libxml2's global variables, accessing those later on leads to hard to debug crashes. Because libxml2 is used indirectly by lots of different components, nobody is allwed to free its globals. Change-Id: I05381d3dada217db44e96445d6f6d63014f57241
2012-09-19ComponentContext::getUnoContext -> getComponentContext simplificationStephan Bergmann
...and some further clean-up. Change-Id: If5dce53e382b56390c502d0d0d93fc06cbfe33ea
2012-09-14Improvement on previous commit, UCB clean upStephan Bergmann
* As UCB is only ever initialized with "Local"/"Office", remove this configuration vector completely. The "create" ctor creates an instance internally initialized with those "Local"/"Office" keys. Special (test) code can still instantiate an uninitialized one via plain createInstance. And for backwards compatilibity process startup still ensures to create an initialized instance early, in case there is still code out there (in extensions) that later calls plain createInstance and expects to get the already-initialized (single) instance. * XInitialization is an "implementation detail" of the UniversalContentBroker service, do not expose in XUniversalContentBroker. * ucbhelper/configurationkeys.hxx is no longer needed and is removed. * ucbhelper/contentbroker.hxx is an empty wrapper and is removed; however, that requires ucbhelper::Content constructors to take explicit XComponentContext arguments now. * The only remaining code in ucbhelper/source/client/contentbroker.cxx is Android-only InitUCBHelper. Is that relevant still? Change-Id: I3f7bddd0456bffbcd13590c66d9011915c760f28
2012-09-12fdo#46808, Adapt xml::dom::SAXDocumentBuilderr UNO service to new styleNoel Grandin
Create a merged XSAXDocumentBuilder2 interface for this service to implement. Which is backwards-compatible, but does not require creating a new service. Change-Id: Iaa96031a0b7c27e957d2edb0394e5eeaaa84cdca
2012-09-06Java cleanup, remove unnecessary importsNoel Grandin
Change-Id: Iacfcb2e16cb0e3c25a4cd0678a374fe5111284f7
2012-09-03fdo#46808, Adapt xml::dom::DocumentBuilder UNO service to new styleNoel Grandin
Change-Id: I577fbc7f990be9ec1f7b7eea53218b7daaccb2a1
2012-08-17gbuild: register all jarsMichael Stahl
Change-Id: I9f49970e5e06d1afd3fc066a20d1671c93e262fc
2012-08-16-Werror,-Wunused-private-field (Clang towards 3.2)Stephan Bergmann
Change-Id: Ibd5b7b03a80036ebd3214930b32d011ba7bbce9a
2012-08-07Remove commented out codeThomas Arnhold
Change-Id: Id73d1d75063e19dfa05fa7b5b8b69ca8f99f0998
2012-07-28callcatcher: unused dtor->fix leakCaolán McNamara
The other option I suppose is that in CEventDispatcher::removeListener when a map becomes empty then delete the map Change-Id: Icb108e3beb9eb7ce7f04f9e49b24e9cc77830b5d
2012-07-06use custom ExtEnt loader for RDF importHerbert Duerr
from: http://svn.apache.org/viewvc?view=revision&revision=1230438
2012-07-06re-base on ALv2 code.Michael Meeks
2012-07-02targetted improvement of UNO API includes / usageMichael Meeks
2012-06-29Fix java "unchecked conversion" warningsNoel Grandin
And clean up some of the code in the process. Change-Id: Ice871120b99515737034f8f06ebfd0e127d81f37
2012-06-29re-base on ALv2 code.Michael Meeks
2012-06-22re-base on ALv2 code.Michael Meeks
Change-Id: I8018d9b5fa01d1720c0392dc5fdc4a0656f25a35
2012-06-21replace all but one .hdl include with equivalent .hpp includes.Michael Meeks
Change-Id: I15e94f112144549692d0c2babeb48c77adcb93a9
2012-06-21re-base on ALv2 code.Michael Meeks
Change-Id: I6c145e984c885c7e06caa1c27bfb354ea49ad9ce
2012-06-21re-base on ALv2 code.Michael Meeks
Change-Id: Ice06e639213aeb6f7f23cbf4634947dd25613db1
2012-06-12nuke dead codeTakeshi Abe
Change-Id: If8b6b4a3d9222726ae562e5b685710d86b5fe332
2012-06-08n759982: Win/VC++ stl messes up the namespace vector.Muthu Subramanian
Every file's first element wasn't imported. This fixes the issue. (everyfile = everyfile imported via that path e.g. theme?.xml)
2012-06-02targeted string re-workNorbert Thiebaud
Change-Id: Ic547a05d2540a9fb70a38b3717cb4e87726a74a5
2012-06-02targeted string re-workNorbert Thiebaud
Change-Id: Iaccecb3f54faa157181c45050e395b828784bc00
2012-06-01targetted string cleanupMichael Meeks
Change-Id: Iaf77bb427d62d7f3be00a96cba4dfb25a01934ac
2012-04-29make gbuild the default assumption of build.plBjoern Michaelsen
this removes dmake completely out of the build for migrated modules build.pl now assumes modules to be gbuild, unless there is a prj/dmake file Change-Id: I674a036b182ee13c5ec093e83cb3d38133112d3b
2012-04-08gbuild: "use" vs. "add":Michael Stahl
Naming convention for gbuild methods: - "add" is used for stuff that is logically a part of the target (i.e. not registered at the Module, but defined in the target's makefile) - "use" is used for stuff that is logically a different target (i.e. it is registered at the Module, has it's own makefile, may be in a different module than the target)
2012-04-06Replaced equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(...)) with == operatorSzabolcs Dezsi
2012-04-06Replaced equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(...)) with == operatorSzabolcs Dezsi
Pattern used: find . -name "*.cxx" -exec sed -i 's/\( *\)\(else if\|if\) *( *\([^!()|&]*\)\.equalsAsciiL( *RTL_CONSTASCII_STRINGPARAM *( *\([^)]*\)) *) *)$/\1\2 ( \3 == \4 )/' \{\} \;
2012-03-22Needless SAL_CALLStephan Bergmann
2012-03-03Avoid temporary rtl::OUStringJulien Nabet