506173a7f4
Being a GUI application on Windows (with related flag in the executable header - see https://blogs.msdn.microsoft.com/oldnewthing/20090101-00/?p=19643/), OS would detect the subsystem before launching the application, and won't attach the parent console or redirected output handles from it to the application. Also, different hacks to reattach the GUI application to the console later are unreliable on different Windows versions, and work improperly (the output goes to the console after the launch command has already returned, which is wrong in batch files). This makes it extremily difficult to do CLI operations with LibreOffice on Windows, with error codes/warnings/messages/output missing or going to wrong consoles. Making an executable for CUI subsystem, on the other hand, makes Windows to allocate a console before starting it when the program is run by itself. This makes the console window to appear on screen unconditionally, even if it's hidden later when the program has started. This flashing is undesirable. But we use a wrapper executable on Windows, called soffice.exe, which is what actually launched by user, and which runs soffice.bin. This allows us to make soffice.bin the proper console application, and thus make it capable to behave properly in CLI scenarios, while avoid the console flashing when run from the soffice.exe (which would suppress the console creation using DETACHED_PROCESS creation flag to CreateProcessW). Also creating a new wrapper for console (soffice.com) allows to use command lines which omit explicit executable extension (no ".bin"), like this: "C:\Program Files\LibreOffice\program\soffice" --help which allows to continue using multiple available help resources unchanged, since .com extension is tried prior to .exe by Windows' cmd.exe. Change-Id: I089d0f30f860da6cfc781b4383f6598a08a4d238 Reviewed-on: https://gerrit.libreoffice.org/63572 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
152 lines
3.4 KiB
Makefile
152 lines
3.4 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_Module_Module,desktop))
|
|
|
|
$(eval $(call gb_Module_add_targets,desktop,\
|
|
CustomTarget_desktop_unopackages_install \
|
|
GeneratedPackage_desktop_unopackages_install \
|
|
Library_deployment \
|
|
Library_deploymentgui \
|
|
Library_deploymentmisc \
|
|
Library_offacc \
|
|
Library_sofficeapp \
|
|
$(if $(ENABLE_BREAKPAD), \
|
|
Library_crashreport \
|
|
) \
|
|
$(if $(DISABLE_GUI),,Library_spl) \
|
|
Package_branding \
|
|
$(if $(CUSTOM_BRAND_DIR),Package_branding_custom) \
|
|
UIConfig_deployment \
|
|
))
|
|
|
|
$(eval $(call gb_Module_add_l10n_targets,desktop,\
|
|
AllLangMoTarget_dkt \
|
|
))
|
|
|
|
ifneq (,$(filter DESKTOP,$(BUILD_TYPE)))
|
|
$(eval $(call gb_Module_add_targets,desktop,\
|
|
Executable_soffice_bin \
|
|
Executable_unopkg_bin \
|
|
$(if $(ENABLE_BREAKPAD),Executable_minidump_upload) \
|
|
Library_migrationoo2 \
|
|
Library_migrationoo3 \
|
|
Library_unopkgapp \
|
|
Package_scripts \
|
|
))
|
|
|
|
ifneq ($(OS),MACOSX)
|
|
ifneq ($(OS),WNT)
|
|
$(eval $(call gb_Module_add_targets,desktop,\
|
|
Pagein_calc \
|
|
Pagein_common \
|
|
Pagein_draw \
|
|
Pagein_impress \
|
|
Pagein_writer \
|
|
CustomTarget_soffice \
|
|
))
|
|
|
|
ifeq ($(USING_X11), TRUE)
|
|
$(eval $(call gb_Module_add_targets,desktop,\
|
|
Package_sbase_sh \
|
|
Package_scalc_sh \
|
|
Package_sdraw_sh \
|
|
Package_simpress_sh \
|
|
Package_smath_sh \
|
|
Package_swriter_sh \
|
|
Package_soffice_sh \
|
|
))
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(OS),WNT)
|
|
|
|
$(eval $(call gb_Module_add_targets,desktop,\
|
|
StaticLibrary_winloader \
|
|
StaticLibrary_winlauncher \
|
|
Executable_quickstart \
|
|
Executable_sbase \
|
|
Executable_scalc \
|
|
Executable_sdraw \
|
|
Executable_simpress \
|
|
Executable_smath \
|
|
Executable_soffice_exe \
|
|
Executable_soffice_com \
|
|
Executable_sweb \
|
|
Executable_swriter \
|
|
Executable_unoinfo \
|
|
Executable_unopkg \
|
|
Executable_unopkg_com \
|
|
WinResTarget_quickstart \
|
|
WinResTarget_sbase \
|
|
WinResTarget_scalc \
|
|
WinResTarget_sdraw \
|
|
WinResTarget_simpress \
|
|
WinResTarget_soffice \
|
|
WinResTarget_sofficebin \
|
|
WinResTarget_smath \
|
|
WinResTarget_sweb \
|
|
WinResTarget_swriter \
|
|
))
|
|
|
|
else ifeq ($(OS),MACOSX)
|
|
|
|
else ifeq ($(OS),ANDROID)
|
|
|
|
else ifeq ($(OS),iOS)
|
|
|
|
else ifeq ($(OS),HAIKU)
|
|
|
|
else
|
|
|
|
$(eval $(call gb_Module_add_targets,desktop,\
|
|
Executable_oosplash \
|
|
))
|
|
|
|
endif
|
|
|
|
ifneq (,$(filter Extension_test-active,$(MAKECMDGOALS)))
|
|
$(eval $(call gb_Module_add_targets,desktop, \
|
|
Extension_test-active \
|
|
Jar_active_java \
|
|
Library_active_native \
|
|
))
|
|
endif
|
|
|
|
ifneq (,$(filter Extension_test-passive,$(MAKECMDGOALS)))
|
|
$(eval $(call gb_Module_add_targets,desktop, \
|
|
Extension_test-passive \
|
|
Jar_passive_java \
|
|
Library_passive_native \
|
|
Pyuno_passive_python \
|
|
Rdb_passive_generic \
|
|
Rdb_passive_platform \
|
|
))
|
|
endif
|
|
|
|
$(eval $(call gb_Module_add_check_targets,desktop, \
|
|
CppunitTest_desktop_app \
|
|
CppunitTest_desktop_version \
|
|
))
|
|
|
|
ifeq ($(OS),LINUX)
|
|
$(eval $(call gb_Module_add_check_targets,desktop, \
|
|
CppunitTest_desktop_lib \
|
|
CppunitTest_desktop_lokinit \
|
|
))
|
|
endif
|
|
|
|
# screenshots
|
|
$(eval $(call gb_Module_add_screenshot_targets,desktop,\
|
|
CppunitTest_desktop_dialogs_test \
|
|
))
|
|
|
|
# vim: set ts=4 sw=4 et:
|