summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrzej Hunt <andrzej.hunt@collabora.com>2014-07-21 19:34:09 +0200
committerAndrzej Hunt <andrzej@ahunt.org>2014-08-19 14:06:22 +0200
commitc6844b51477c92f21b9b9346065b7383388a8cb6 (patch)
treee710c64b2ef49c7c49dbef34d2d41bb29b005fb3
parentfccf726acd7ad99b8fbbec21387ac809f454fd85 (diff)
Implement lokconf_init.
This is a simple executable which can be used to ensure there is a pe-pared configuration for unit-tests to avoid the usually required re-start on the first run. Change-Id: I49b706e8daa93bc34db508a24615b63b9babddba
-rw-r--r--Repository.mk1
-rw-r--r--libreofficekit/Executable_lokconf_init.mk42
-rw-r--r--libreofficekit/Module_libreofficekit.mk4
-rw-r--r--libreofficekit/qa/lokconf_init/lokconf_init.cxx41
4 files changed, 88 insertions, 0 deletions
diff --git a/Repository.mk b/Repository.mk
index 7ed4be538746..56442bbf9f1a 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -101,6 +101,7 @@ $(eval $(call gb_Helper_register_executables,OOO, \
uri-encode \
ui-previewer \
tiledrendering \
+ $(if $(filter LINUX,$(OS)), lokconf_init) \
$(if $(and $(ENABLE_GTK), $(filter LINUX,$(OS))), gtktiledviewer) \
$(if $(filter DESKTOP,$(BUILD_TYPE)),unopkg_bin) \
xpdfimport \
diff --git a/libreofficekit/Executable_lokconf_init.mk b/libreofficekit/Executable_lokconf_init.mk
new file mode 100644
index 000000000000..3e25f13678e8
--- /dev/null
+++ b/libreofficekit/Executable_lokconf_init.mk
@@ -0,0 +1,42 @@
+# -*- 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_Executable_Executable,lokconf_init))
+
+$(eval $(call gb_Executable_set_include,lokconf_init,\
+ $$(INCLUDE) \
+))
+
+$(eval $(call gb_Executable_use_libraries,lokconf_init, \
+ cppu \
+ sal \
+))
+
+$(eval $(call gb_Executable_use_static_libraries,lokconf_init,\
+ libreofficekit \
+))
+
+$(eval $(call gb_Executable_add_libs,lokconf_init,\
+ -lSM \
+ -lICE \
+))
+
+ifeq ($(OS),LINUX)
+$(eval $(call gb_Executable_add_libs,lokconf_init,\
+ -lm \
+ -ldl \
+ -lpthread \
+))
+endif
+
+$(eval $(call gb_Executable_add_exception_objects,lokconf_init,\
+ libreofficekit/qa/lokconf_init/lokconf_init \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/libreofficekit/Module_libreofficekit.mk b/libreofficekit/Module_libreofficekit.mk
index a5b9cb06348c..075cbdd906d2 100644
--- a/libreofficekit/Module_libreofficekit.mk
+++ b/libreofficekit/Module_libreofficekit.mk
@@ -11,6 +11,10 @@ $(eval $(call gb_Module_Module,libreofficekit))
ifeq ($(OS),LINUX)
+$(eval $(call gb_Module_add_targets,libreofficekit,\
+ Executable_lokconf_init \
+))
+
# $(eval $(call gb_Module_add_check_targets,libreofficekit,\
# CppunitTest_libreofficekit_tiledrendering \
# ))
diff --git a/libreofficekit/qa/lokconf_init/lokconf_init.cxx b/libreofficekit/qa/lokconf_init/lokconf_init.cxx
new file mode 100644
index 000000000000..96771597d1b4
--- /dev/null
+++ b/libreofficekit/qa/lokconf_init/lokconf_init.cxx
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ */
+
+#include <stdio.h>
+#include <string>
+#include <string.h>
+
+#include <sal/main.h>
+
+#include <LibreOfficeKit/LibreOfficeKit.h>
+
+using namespace std;
+
+// Using SAL_IMPLEMENT_MAIN means that we can directly use the same
+// arguments as would be provided to cppunittester, i.e. ensuring
+// that we're operating with the correct directories etc.
+SAL_IMPLEMENT_MAIN()
+{
+ string sPath( getenv("INSTDIR") );
+ sPath += "/program";
+
+ LibreOfficeKit* pOffice = lok_init( sPath.c_str() );
+
+ // As this is the first init, pOffice should be NULL.
+ // However there's no reason we shouldn't be able to operate
+ // even if it isn't the first init.
+ if ( pOffice )
+ {
+ pOffice->pClass->destroy( pOffice );
+ pOffice = 0;
+ }
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */