Hello,
I've progressed a bit with X11 / cairo less build. Now everything builds
but somethings chokes in make dev-install:
http://pastebin.com/qsi0wPFR
Where are these missing files listed? I suppose i have to add some
conditionals.
Attached all the changes that i have locally, they are diffed against an
old master and i'd like to have a working build before rebasing.
If someone is so keen to take a look at the patches and point out what
could be improved, uneeded changes (RepositoryModule_ooo.mk?) it'll be
great.
A couple of tests has been disabled because of "no suitable windowing
system found, exiting.\n" error from
vcl/unx/generic/plugadapt/salplug.cxx::CreateSalInstance(). And i
suppose the same error will bite me when i'll try yo run what i have
compiled.
thanks in advance
--
Riccardo Magliocchetti
diff --git a/Module_tail_build.mk b/Module_tail_build.mk
index 362434d..eb16dc3 100644
--- a/Module_tail_build.mk
+++ b/Module_tail_build.mk
@@ -25,7 +25,6 @@
$(eval $(call gb_Module_Module,tail_end))
$(eval $(call gb_Module_add_moduledirs,tail_end,\
- accessibility \
animations \
avmedia \
basctl \
@@ -53,8 +52,6 @@ $(eval $(call gb_Module_add_moduledirs,tail_end,\
lingucomponent \
linguistic \
lotuswordpro \
- MathMLDTD \
- Mesa \
np_sdk \
oox \
package \
@@ -78,7 +75,6 @@ $(eval $(call gb_Module_add_moduledirs,tail_end,\
unoxml \
uui \
vbahelper \
- wizards \
writerfilter \
writerperfect \
xmerge \
@@ -86,6 +82,15 @@ $(eval $(call gb_Module_add_moduledirs,tail_end,\
xmlsecurity \
))
+ifneq ($(GUIBASE),headless)
+$(eval $(call gb_Module_add_targets,tail_end,\
+ accessibility \
+ MathMLDTD \
+ Mesa \
+ wizards \
+))
+endif
+
ifeq ($(MERGELIBS),TRUE)
$(eval $(call gb_Module_add_targets,tail_end,\
Library_merged \
diff --git a/RepositoryModule_ooo.mk b/RepositoryModule_ooo.mk
index 3f0f023..2285176 100644
--- a/RepositoryModule_ooo.mk
+++ b/RepositoryModule_ooo.mk
@@ -29,8 +29,6 @@
$(eval $(call gb_Module_Module,ooo))
$(eval $(call gb_Module_add_moduledirs,ooo,\
- accessibility \
- animations \
basctl \
basebmp \
basegfx \
@@ -50,7 +48,6 @@ $(eval $(call gb_Module_add_moduledirs,ooo,\
dtrans \
editeng \
eventattacher \
- extensions \
fileaccess \
filter \
forms \
@@ -61,25 +58,17 @@ $(eval $(call gb_Module_add_moduledirs,ooo,\
i18npool \
i18nutil \
idl \
- lingucomponent \
- linguistic \
- lotuswordpro \
- MathMLDTD \
- Mesa \
nlpsolver \
np_sdk \
o3tl \
offapi \
- oovbaapi \
oox \
package \
padmin \
psprint_config \
regexp \
- reportdesign \
sal \
salhelper \
- sane \
sax \
sc \
scaddins \
@@ -95,21 +84,17 @@ $(eval $(call gb_Module_add_moduledirs,ooo,\
svx \
sw \
swext \
- twain \
toolkit \
tools \
ucb \
ucbhelper \
udkapi \
- unixODBC \
UnoControls \
unotools \
unoxml \
ure \
uui \
- vbahelper \
vcl \
- wizards \
writerfilter \
writerperfect \
xmerge \
@@ -120,6 +105,26 @@ $(eval $(call gb_Module_add_moduledirs,ooo,\
xmlscript \
))
+ifneq ($(GUIBASE),headless)
+$(eval $(call gb_Module_add_moduledirs,ooo,\
+ accessibility \
+ animations \
+ extensions \
+ lingucomponent \
+ linguistic \
+ lotuswordpro \
+ MathMLDTD \
+ Mesa \
+ oovbaapi \
+ reportdesign \
+ sane \
+ twain \
+ unixODBC \
+ vbahelper \
+ wizards \
+))
+endif
+
ifneq ($(SOLAR_JAVA),)
ifneq "$(OOO_JUNIT_JAR)" ""
$(eval $(call gb_Module_add_moduledirs,ooo,\
diff --git a/configure.in b/configure.in
index 9a348e3..2e0f393 100644
--- a/configure.in
+++ b/configure.in
@@ -723,6 +723,11 @@ AC_ARG_ENABLE(kde4,
both KDE3 and KDE4.]),
,)
+AC_ARG_ENABLE(headless,
+ AS_HELP_STRING([--enable-headless],
+ [Disable building of GUIs to reduce dependencies. Useful for server usage.]),
+,)
+
AC_ARG_ENABLE(unix-qstart-libpng,
AS_HELP_STRING([--disable-unix-qstart-libpng],
[On UNIX systems, we have a faster splash app, that can use libpng to
@@ -2935,6 +2940,10 @@ solaris*)
;;
esac
+if test "$enable_headless" = "yes"; then
+ GUIBASE=headless
+fi
+
INPATH=${OUTPATH}${PROEXT}
AC_SUBST(COM)
AC_SUBST(CPU)
@@ -3163,6 +3172,19 @@ else
fi
AC_SUBST(DISABLE_STRIP)
+if test "$enable_headless" = "yes"; then
+ # be sure to do not mess with uneeded stuff
+ test_randr=no
+ test_xrender=no
+ test_cups=no
+ test_fontconfig=yes
+ test_gtk=no
+ build_gstreamer=no
+ test_kde=no
+ test_kde4=no
+ test_unix_quickstarter=no
+fi
+
dnl check for cups support
dnl ===================================================================
if test "$test_cups" = "yes"; then
@@ -7100,10 +7122,14 @@ AC_SUBST(ENABLE_NSPLUGIN)
dnl ***************************************
dnl testing for X libraries and includes...
dnl ***************************************
+WANT_X11="no"
+if test "$_os" != "WINNT" -a "$_os" != "Android" -a "$_os" != "iOS" -a "$enable_headless" != "yes"; then
+ WANT_X11="yes"
+fi
if test "$_os" = "Darwin" -a "x$x_includes" = "xno_x_includes"; then
dnl Mac OS X using Aqua graphics. Don't check for X11.
:
-elif test "$_os" != "WINNT" -a "$_os" != "Android" -a "$_os" != "iOS"; then
+elif test WANT_X11 = "yes"; then
AC_PATH_X
AC_PATH_XTRA
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
@@ -7150,7 +7176,7 @@ else
fi
AC_SUBST(XLIB)
-if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$_os" != "Android" -a "$_os" != "iOS"; then
+if test WANT_X11 = "yes" -a "$_os" != "Darwin"; then
dnl ===================================================================
dnl Check for Composite.h for Mozilla plugin
dnl ===================================================================
@@ -7170,7 +7196,7 @@ dnl ===================================================================
dnl Check for system Xrender
dnl ===================================================================
AC_MSG_CHECKING([whether to use Xrender])
-if test "$test_xrender" = "yes"; then
+if test WANT_X11 = "yes" -a "$test_xrender" = "yes"; then
AC_MSG_RESULT([yes])
AC_CHECK_LIB(Xrender, XRenderQueryVersion, [],
[AC_MSG_ERROR(libXrender not found or functional)], [])
@@ -7188,7 +7214,7 @@ dnl ===================================================================
dnl Check for XRandr
dnl ===================================================================
AC_MSG_CHECKING([whether to enable RandR support])
-if test "$test_randr" = "yes" -a \( "$enable_randr" = "yes" -o "$enable_randr" = "TRUE" \) ; then
+if test WANT_X11 = "yes" -a "$test_randr" = "yes" -a \( "$enable_randr" = "yes" -o "$enable_randr" = "TRUE" \) ; then
if test -z "$enable_randr_link" -o "$enable_randr_link" = "no"; then
XRANDR_DLOPEN="TRUE"
AC_MSG_RESULT([configured to dlopen libXrandr at runtime])
@@ -7801,6 +7827,16 @@ if test "x$enable_kde4" = "xyes"; then
fi
AC_SUBST(ENABLE_KDE4)
+ENABLE_HEADLESS=""
+if test "x$enable_headless" = "xyes"; then
+ ENABLE_HEADLESS="TRUE"
+ SCPDEFS="$SCPDEFS -DENABLE_HEADLESS"
+ R="headless"
+ # this does not work see hack in Library_vcl.mk
+ AC_DEFINE(HEADLESS)
+fi
+AC_SUBST(ENABLE_HEADLESS)
+
if test -z "$R"; then
AC_MSG_RESULT([none])
else
@@ -9460,7 +9496,7 @@ SYSTEM_CAIRO=""
AC_MSG_CHECKING([whether to use the system cairo])
-if test "$with_system_cairo" = "yes"; then
+if test "$enable_cairo_canvas" = "yes" -a "$with_system_cairo" = "yes"; then
SYSTEM_CAIRO=YES
AC_MSG_RESULT([yes])
@@ -9490,8 +9526,10 @@ else
if test "$ENABLE_LIBRSVG" != NO -o -z "$ENABLE_DIRECTX"; then
BUILD_TYPE="$BUILD_TYPE CAIRO"
fi
- else
- BUILD_TYPE="$BUILD_TYPE CAIRO"
+ else
+ if test "$enable_cairo_canvas" = "yes"; then
+ BUILD_TYPE="$BUILD_TYPE CAIRO"
+ fi
fi
fi
diff --git a/desktop/Module_desktop.mk b/desktop/Module_desktop.mk
index 2765cc9..c1796ba 100644
--- a/desktop/Module_desktop.mk
+++ b/desktop/Module_desktop.mk
@@ -114,6 +114,8 @@ else ifeq ($(OS),ANDROID)
else ifeq ($(OS),IOS)
+else ifeq ($(GUIBASE),headless)
+
else
$(eval $(call gb_Module_add_targets,desktop,\
diff --git a/hwpfilter/Module_hwpfilter.mk b/hwpfilter/Module_hwpfilter.mk
index 461c017..ff1948e 100644
--- a/hwpfilter/Module_hwpfilter.mk
+++ b/hwpfilter/Module_hwpfilter.mk
@@ -31,8 +31,10 @@ $(eval $(call gb_Module_add_targets,hwpfilter,\
Library_hwp \
))
+ifneq ($(GUIBASE),headless)
$(eval $(call gb_Module_add_check_targets,hwpfilter,\
CppunitTest_hwpfilter_test_hwpfilter \
))
+endif
# vim: set noet sw=4 ts=4:
diff --git a/postprocess/packcomponents/makefile.mk b/postprocess/packcomponents/makefile.mk
index 94923a3..9ab503c 100644
--- a/postprocess/packcomponents/makefile.mk
+++ b/postprocess/packcomponents/makefile.mk
@@ -193,7 +193,7 @@ my_components += \
my_components += pythonloader
.ENDIF
-.IF "$(OS)" != "WNT" && "$(OS)" != "MACOSX" && "$(OS)" != "IOS" && "$(OS)" != "ANDROID"
+.IF "$(OS)" != "WNT" && "$(OS)" != "MACOSX" && "$(OS)" != "IOS" && "$(OS)" != "ANDROID" && "$(GUIBASE)" != "headless"
my_components += component/desktop/unx/splash/splash
.ENDIF
diff --git a/postprocess/packregistry/makefile.mk b/postprocess/packregistry/makefile.mk
index b542843..843a880 100644
--- a/postprocess/packregistry/makefile.mk
+++ b/postprocess/packregistry/makefile.mk
@@ -312,6 +312,8 @@ MY_FILES_main += \
# ?
.ELIF "$(GUIBASE)" == "android"
# ?
+.ELIF "$(GUIBASE)" == "headless"
+# ?
.ELSE
ERROR : unknown-GUIBASE
.END
diff --git a/toolkit/Library_tk.mk b/toolkit/Library_tk.mk
index 5dee5a9..8dabc0d 100644
--- a/toolkit/Library_tk.mk
+++ b/toolkit/Library_tk.mk
@@ -141,10 +141,12 @@ $(eval $(call gb_Library_add_cxxflags,tk,\
$(gb_OBJCXXFLAGS)))
endif
+ifneq ($(GUIBASE),headless)
ifneq (,$(filter LINUX DRAGONFLY OPENBSD FREEBSD NETBSD, $(OS)))
$(eval $(call gb_Library_add_linked_libs,tk,\
X11 \
))
endif
+endif
# vim: set noet sw=4 ts=4:
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index fa6093e..23ebbc9 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -430,6 +430,64 @@ $(eval $(call gb_Library_use_externals,vcl,\
))
endif
+ifeq ($(GUIBASE),headless)
+$(eval $(call gb_Library_add_cxxflags,vcl,\
+ $$(FREETYPE_CFLAGS) \
+))
+$(eval $(call gb_Library_add_defs,vcl,\
+ -DHEADLESS \
+ -DSAL_DLLPREFIX=\"$(gb_Library_SYSPRE)\" \
+ -DSAL_DLLPOSTFIX=\"$(gb_Library_OOOEXT)\" \
+ -D_XSALSET_LIBNAME=\"$(call gb_Library_get_runtime_filename,spa)\" \
+))
+$(eval $(call gb_Library_add_exception_objects,vcl,\
+ vcl/generic/app/gensys \
+ vcl/generic/app/geninst \
+ vcl/generic/app/gendisp \
+ vcl/generic/print/bitmap_gfx \
+ vcl/generic/print/common_gfx \
+ vcl/generic/print/glyphset \
+ vcl/generic/print/printerjob \
+ vcl/generic/print/psputil \
+ vcl/generic/print/genpspgraphics \
+ vcl/generic/print/genprnpsp \
+ vcl/generic/print/text_gfx \
+ vcl/generic/fontmanager/fontsubst \
+ vcl/generic/glyphs/gcach_ftyp \
+ vcl/generic/glyphs/gcach_layout \
+ vcl/generic/glyphs/gcach_rbmp \
+ vcl/generic/glyphs/glyphcache \
+ vcl/generic/fontmanager/fontcache \
+ vcl/generic/fontmanager/fontconfig \
+ vcl/generic/fontmanager/fontmanager \
+ vcl/generic/fontmanager/helper \
+ vcl/generic/fontmanager/parseAFM \
+ vcl/unx/generic/printer/jobdata \
+ vcl/unx/generic/printer/ppdparser \
+ vcl/unx/generic/plugadapt/salplug \
+ vcl/null/printerinfomanager \
+ vcl/headless/svpbmp \
+ vcl/headless/svpdummies \
+ vcl/headless/svpelement \
+ vcl/headless/svpframe \
+ vcl/headless/svpgdi \
+ vcl/headless/svpinst \
+ vcl/headless/svpdata \
+ vcl/headless/svpprn \
+ vcl/headless/svptext \
+ vcl/headless/svpvd \
+))
+
+$(eval $(call gb_Library_add_linked_libs,vcl,\
+ basebmp \
+))
+
+$(eval $(call gb_Library_use_externals,vcl,\
+ fontconfig \
+ freetype \
+))
+endif
+
ifeq ($(GUIBASE),android)
$(eval $(call gb_Library_add_libs,vcl,\
-llog \
diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk
index 47da575..aad5157 100644
--- a/vcl/Module_vcl.mk
+++ b/vcl/Module_vcl.mk
@@ -67,6 +67,12 @@ $(eval $(call gb_Module_add_targets,vcl,\
endif
endif
+ifeq ($(GUIBASE),headless)
+$(eval $(call gb_Module_add_targets,vcl,\
+ Library_vclplug_svp \
+))
+endif
+
ifeq ($(GUIBASE),aqua)
$(eval $(call gb_Module_add_targets,vcl,\
Package_osx \
diff --git a/vcl/inc/unx/saldata.hxx b/vcl/inc/unx/saldata.hxx
index 591f4f6..fbf3251 100644
--- a/vcl/inc/unx/saldata.hxx
+++ b/vcl/inc/unx/saldata.hxx
@@ -29,6 +29,8 @@
#ifndef _SV_SALDATA_HXX
#define _SV_SALDATA_HXX
+#ifndef HEADLESS
+
// -=-= includes -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#include <signal.h>
#include <unx/salunx.h>
@@ -111,6 +113,8 @@ public:
X11SalData* GetX11SalData();
+#endif
+
#endif // _SV_SALDATA_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/unx/svunx.h b/vcl/inc/unx/svunx.h
index e3ea4cc..36ca677 100644
--- a/vcl/inc/unx/svunx.h
+++ b/vcl/inc/unx/svunx.h
@@ -29,8 +29,10 @@
#ifndef _SVUNX_H
#define _SVUNX_H
+#ifndef HEADLESS
#include <tools/prex.h>
#include <tools/postx.h>
+#endif
#endif
diff --git a/vcl/unx/generic/plugadapt/salplug.cxx b/vcl/unx/generic/plugadapt/salplug.cxx
index 4449914..f16dfeb 100644
--- a/vcl/unx/generic/plugadapt/salplug.cxx
+++ b/vcl/unx/generic/plugadapt/salplug.cxx
@@ -55,7 +55,7 @@ static oslModule pCloseModule = NULL;
static SalInstance* tryInstance( const OUString& rModuleBase )
{
SalInstance* pInst = NULL;
-#ifndef ANDROID
+#if !defined(ANDROID) || !defined(HEADLESS)
// Disable gtk3 plugin load except in experimental mode for now.
if( rModuleBase.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "gtk3" ) ) &&
!officecfg::Office::Common::Misc::ExperimentalMode::get( comphelper::getProcessComponentContext() ) )
@@ -130,7 +130,7 @@ static SalInstance* tryInstance( const OUString& rModuleBase )
return pInst;
}
-#ifndef ANDROID
+#if !defined(ANDROID) || !defined(HEADLESS)
static DesktopType get_desktop_environment()
{
diff --git a/vcl/unx/generic/printer/ppdparser.cxx b/vcl/unx/generic/printer/ppdparser.cxx
index 98bf630..55984b0 100644
--- a/vcl/unx/generic/printer/ppdparser.cxx
+++ b/vcl/unx/generic/printer/ppdparser.cxx
@@ -655,7 +655,7 @@ const PPDParser* PPDParser::getParser( const String& rFile )
PrinterInfoManager& rMgr = PrinterInfoManager::get();
if( rMgr.getType() == PrinterInfoManager::CUPS )
{
-#ifndef ANDROID
+#if !defined(ANDROID) && !defined(HEADLESS)
pNewParser = const_cast<PPDParser*>(static_cast<CUPSManager&>(rMgr).createCUPSParser( aFile ));
#endif
}
diff --git a/writerfilter/Module_writerfilter.mk b/writerfilter/Module_writerfilter.mk
index a35daa9..aca8f0f 100644
--- a/writerfilter/Module_writerfilter.mk
+++ b/writerfilter/Module_writerfilter.mk
@@ -37,10 +37,16 @@ $(eval $(call gb_Module_add_targets,writerfilter,\
Package_writerfilter_generated \
))
+ifneq ($(GUIBASE),headless)
$(eval $(call gb_Module_add_check_targets,writerfilter,\
CppunitTest_writerfilter_doctok \
CppunitTest_writerfilter_rtftok \
))
+else
+$(eval $(call gb_Module_add_check_targets,writerfilter,\
+ CppunitTest_writerfilter_doctok \
+))
+endif
$(eval $(call gb_Module_add_subsequentcheck_targets,writerfilter,\
JunitTest_writerfilter_complex \
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice