summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2013-03-27 09:22:38 +0200
committerTor Lillqvist <tml@iki.fi>2013-03-27 11:36:03 +0200
commit556fe2c6128a32233b411a85c54177e1d5be1e0d (patch)
tree6a926732bd15a99205c9eab047d22139a7b7ca61
parentf174c972ac3ef93804a28f9566559382697832f9 (diff)
Add config_features.h platform or configurable high-level features
Defines HAVE_FEATURE_{DESKTOP,HELP,MULTIUSER_ENVIRONMENT} for now. Using <config_features.h> will supersede checking the LIBO_FEATURE_DESKTOP and LIBO_FEATURE_HELP passed on the compilation command-line. Change-Id: I9866e2fd142f5c1a64c8f5c74452a20de23c66e3
-rw-r--r--config_host/config_features.h.in47
-rw-r--r--configure.ac4
2 files changed, 51 insertions, 0 deletions
diff --git a/config_host/config_features.h.in b/config_host/config_features.h.in
new file mode 100644
index 000000000000..48ac1dc88700
--- /dev/null
+++ b/config_host/config_features.h.in
@@ -0,0 +1,47 @@
+/* Configuration of high-level features that either 1) depend on the
+ * platform (but are common to several platforms so just checking for
+ * the feature is simpler than checking for several platforms), or 2)
+ * are build-time configurable.
+ */
+
+#ifndef CONFIG_FEATURES_H
+#define CONFIG_FEATURES_H
+
+/* DESKTOP - Whether we have a "normal" desktop UI or not.
+ *
+ * Non-DESKTOP in practice means touch-based mobile devices, Android
+ * or iOS for now. Support for those is work in pogress.
+ *
+ * Non-DESKTOP implies that the OS makes sure that only one instance
+ * of each LibreOffice-based "app" at a time can be running, and thus
+ * the LibreOffice code does not need to handle such things itself.
+ *
+ * Non-DESKTOP implies no traditional inter-app drag and drop concept.
+ */
+
+#define HAVE_FEATURE_DESKTOP 0
+
+/* HELP - Whether we have the "normal" desktop-style help mechanism
+ *
+ * Can be turned on/off also for desktop environments with
+ * --with-help, so thus a separate feature.
+ */
+
+#define HAVE_FEATURE_HELP 0
+
+/* MULTIUSER_ENVIRONMENT - Wheter running on a "normal" multi-user
+ * desktop (or server) OS
+ *
+ * Non-MULTIUSER implies that the OS makes sure that only one
+ * LibreOffice-based process at a time can be running that could
+ * access the same local documents, and that thus no locking of local
+ * documents is needed, and that no "shared documents" in Calc
+ * is meaningful.
+ *
+ * Non-MULTIUSER in practice means Android or iOS for now, so thus is
+ * work in progress.
+ */
+
+#define HAVE_FEATURE_MULTIUSER_ENVIRONMENT 0
+
+#endif
diff --git a/configure.ac b/configure.ac
index 4899b2ba7c7b..6647b05d7693 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2106,6 +2106,8 @@ dnl cross-compiling would imply a non-desktop OS.
if test $_os != iOS -a $_os != Android; then
BUILD_TYPE="$BUILD_TYPE DESKTOP"
+ AC_DEFINE(HAVE_FEATURE_DESKTOP)
+ AC_DEFINE(HAVE_FEATURE_MULTIUSER_ENVIRONMENT)
fi
DISABLE_EXPORT=''
@@ -4388,6 +4390,7 @@ AC_MSG_CHECKING([whether to build help])
if test "$with_help" = "yes" -a $_os != iOS -a $_os != Android; then
AC_MSG_RESULT([yes])
BUILD_TYPE="$BUILD_TYPE HELP"
+ AC_DEFINE(HAVE_FEATURE_HELP)
SCPDEFS="$SCPDEFS -DWITH_HELP"
GIT_NEEDED_SUBMODULES="helpcontent2 $GIT_NEEDED_SUBMODULES"
else
@@ -11863,6 +11866,7 @@ fi
AC_CONFIG_FILES([config_host.mk Makefile lo.xcent instsetoo_native/util/openoffice.lst])
AC_CONFIG_HEADERS([config_host/config_clang.h])
+AC_CONFIG_HEADERS([config_host/config_features.h])
AC_CONFIG_HEADERS([config_host/config_global.h])
AC_CONFIG_HEADERS([config_host/config_graphite.h])
AC_CONFIG_HEADERS([config_host/config_kde4.h])