1 /* Configuration of high-level features that either 1) depend on the
2 * platform (but are common to several platforms so just checking for
3 * the feature is simpler than checking for several platforms), or 2)
4 * are build-time configurable.
7 #ifndef CONFIG_FEATURES_H
8 #define CONFIG_FEATURES_H
10 /* DESKTOP - Whether we have a "normal" desktop UI or not.
12 * Non-DESKTOP in practice means touch-based mobile devices, Android
13 * or iOS for now. Support for those is work in progress.
15 * Non-DESKTOP implies that the OS makes sure that only one instance
16 * of each LibreOffice-based "app" at a time can be running, and thus
17 * the LibreOffice code does not need to handle such things itself.
19 * Non-DESKTOP implies no traditional inter-app drag and drop concept.
21 * Non-DESKTOP implies no traditional help mechanism, and to some
22 * extent (as noticed, and as possible without making the code too
23 * ugly) the related code is ifdeffed out.
25 * Non-DESKTOP implies no traditional desktop-style GUI elements like
26 * toolbars and scrollbars presented by the LO code.
29 #define HAVE_FEATURE_DESKTOP 0
33 * Whether we are building code to run in an X11 environment.
36 #define HAVE_FEATURE_X11 0
38 /* AVMEDIA - Whether to have functionality to display and manipulate
39 * embedded AV media in documents
42 #define HAVE_FEATURE_AVMEDIA 0
44 /* DBCONNECTIVITY - Whether to have functionality to connect to
48 #define HAVE_FEATURE_DBCONNECTIVITY 0
50 /* SCRIPTING - Whether we have any mechanism to execute user-provided scripts
52 * Primarily intended for the iOS App Store where the
53 * rules prohibit user-accessible scripting features.
54 * Sure, it would be nice to still be able to have internal features
55 * implemented in some scripting language. Later, if necessary.
58 #define HAVE_FEATURE_SCRIPTING 0
60 /* MULTIUSER_ENVIRONMENT - Whether running on a "normal" multi-user
61 * desktop (or server) OS
63 * Non-MULTIUSER implies that the OS makes sure that only one
64 * LibreOffice-based process at a time can be running that could
65 * access the same local documents, and that thus no locking of local
66 * documents is needed, and that no "shared documents" in Calc
69 * Non-MULTIUSER in practice means Android or iOS for now, so thus is
73 #define HAVE_FEATURE_MULTIUSER_ENVIRONMENT 0
76 * Whether OpenCL is usable on the platform and we should compile in use of OpenCL.
79 #define HAVE_FEATURE_OPENCL 0
82 * Whether the OS has Avahi support,
83 * This library is used for zeroconf service publication on the local network
84 * for the Impress remote control, so that the remote can automatically
85 * discover the running libO instance and its IP address.
87 * This library should be present on most modern linux distributions
88 * but not on "all" of them. For now, you should add --enable-avahi for
89 * this to be taken into account. Otherwise the test of its presence
90 * will not take place.
93 #define HAVE_FEATURE_AVAHI 0
95 /* MACOSX_SANDBOX - whether LibreOffice runs in a macOS sandbox
97 * When building LibreOffice for distribution through the Mac App Store,
98 * it must be sandboxed.
101 #define HAVE_FEATURE_MACOSX_SANDBOX 0
103 /* READONLY_INSTALLSET - whether to treat the installation as read-only
105 * Prevents attempts by LibreOffice to write into its installation. That means
106 * at least that no "system-wide" extensions can be added, if the location for
107 * them is the traditional one right in the middle of the installation.
108 * Probably not completely implemented.
111 #define HAVE_FEATURE_READONLY_INSTALLSET 0
114 * Whether FreeType has FT_Face_GetCharVariantIndex or not.
116 #define HAVE_FT_FACE_GETCHARVARIANTINDEX 0
119 * Whether to use validation on files.
121 #define HAVE_EXPORT_VALIDATION 0
124 * Whether to use export validation of binary formats (doc, xls, ppt)
126 * Requires installed Microsoft Office Binary File Format Validator
127 * https://www.microsoft.com/en-us/download/details.aspx?id=26794
129 #define HAVE_BFFVALIDATOR 0
132 * Whether we support breakpad as crash reporting lib.
134 #define HAVE_FEATURE_BREAKPAD 0
137 * Whether OpenGL is enabled
139 #define HAVE_FEATURE_OPENGL 0
142 * Whether User Interface is available
144 #define HAVE_FEATURE_UI 1
147 * Whether PDF import is available
149 #define HAVE_FEATURE_PDFIMPORT 0
152 * Whether NSS is available
154 #define HAVE_FEATURE_NSS 0
157 * Whether pdfium is available
159 #define HAVE_FEATURE_PDFIUM 0
162 * Whether extra fonts are available
164 #define HAVE_MORE_FONTS 0
167 * Whether the automatic online updater is available
169 #define HAVE_FEATURE_UPDATE_MAR 0