From 6080259862ee9886d1dabcb7c06132268a398cc6 Mon Sep 17 00:00:00 2001 From: Luboš Luňák Date: Mon, 16 Jul 2012 14:33:06 +0200 Subject: allow using rtl::OUString etc. simply as OUString, without rtl:: http://lists.freedesktop.org/archives/libreoffice/2012-April/029940.html The RTL_USING #define (set by gbuild for anything that's not public API) allows to use such classes simply by their name, without having to use the namespace or do explicit using rtl::OUString (which half of the sources do anyway). Change-Id: I7edaf12cd278489cdc1d5ff782f0a86361c13c0a --- salhelper/CppunitTest_salhelper_checkapi.mk | 50 ++++++++++++++++++++++++++ salhelper/CustomTarget_salhelper_allheaders.mk | 49 +++++++++++++++++++++++++ salhelper/Module_salhelper.mk | 5 +++ salhelper/qa/checkapi/strings.cxx | 30 ++++++++++++++++ 4 files changed, 134 insertions(+) create mode 100644 salhelper/CppunitTest_salhelper_checkapi.mk create mode 100644 salhelper/CustomTarget_salhelper_allheaders.mk create mode 100644 salhelper/qa/checkapi/strings.cxx (limited to 'salhelper') diff --git a/salhelper/CppunitTest_salhelper_checkapi.mk b/salhelper/CppunitTest_salhelper_checkapi.mk new file mode 100644 index 000000000000..92a876866f3e --- /dev/null +++ b/salhelper/CppunitTest_salhelper_checkapi.mk @@ -0,0 +1,50 @@ +# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*- +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License or as specified alternatively below. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# Major Contributor(s): +# Copyright (C) 2011 Matúš Kukan (initial developer) +# +# All Rights Reserved. +# +# For minor contributions see the git repository. +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. + +$(eval $(call gb_CppunitTest_CppunitTest,salhelper_checkapi)) + +$(eval $(call gb_CppunitTest_add_exception_objects,salhelper_checkapi,\ + salhelper/qa/checkapi/strings \ +)) + +$(eval $(call gb_CppunitTest_set_include,salhelper_checkapi,\ + $$(INCLUDE) \ + -I$(SRCDIR)/salhelper/inc \ +)) + +# strings.cxx includes generated strings.hxx +$(call gb_CxxObject_get_target,salhelper/qa/checkapi/strings) : \ + INCLUDE += -I$(call gb_CustomTarget_get_workdir,salhelper/allheaders) +$(call gb_CxxObject_get_target,salhelper/qa/checkapi/strings) :| \ + $(call gb_CustomTarget_get_workdir,salhelper/allheaders)/salhelper_allheaders.hxx + +$(eval $(call gb_CppunitTest_use_libraries,salhelper_checkapi,\ + salhelper \ + $(gb_STDLIBS) \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/salhelper/CustomTarget_salhelper_allheaders.mk b/salhelper/CustomTarget_salhelper_allheaders.mk new file mode 100644 index 000000000000..f760426ccde7 --- /dev/null +++ b/salhelper/CustomTarget_salhelper_allheaders.mk @@ -0,0 +1,49 @@ +# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*- +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License or as specified alternatively below. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# Major Contributor(s): +# Copyright (C) 2011 Matúš Kukan (initial developer) +# +# All Rights Reserved. +# +# For minor contributions see the git repository. +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. + +$(eval $(call gb_CustomTarget_CustomTarget,salhelper/allheaders)) + +salhelper_allheaders_DIR := $(call gb_CustomTarget_get_workdir,salhelper/allheaders) + +$(call gb_CustomTarget_get_target,salhelper/allheaders) : \ + $(salhelper_allheaders_DIR)/salhelper_allheaders.hxx + +# dependency on Package_inc.mk should ensure this is updated whenever a new public header is added +$(salhelper_allheaders_DIR)/salhelper_allheaders.hxx :| $(salhelper_allheaders_DIR)/.dir $(SRCDIR)/salhelper/Package_inc.mk + $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1) + echo '// Generated list of all salhelper/ includes' > $@ + echo -e \ + $(foreach file, $(wildcard $(SRCDIR)/salhelper/inc/*.h) $(wildcard $(SRCDIR)/salhelper/inc/*.hxx) \ + $(wildcard $(SRCDIR)/salhelper/inc/*/*.h) $(wildcard $(SRCDIR)/salhelper/inc/*/*.hxx) \ + $(wildcard $(SRCDIR)/salhelper/inc/*/*/*.h) $(wildcard $(SRCDIR)/salhelper/inc/*/*/*.hxx) \ + $(wildcard $(SRCDIR)/salhelper/inc/*/*/*/*.h) $(wildcard $(SRCDIR)/salhelper/inc/*/*/*/*.hxx), \ + $(if $(findstring /win32/, $(file)), '#ifdef _WIN32\n') \ + '#include <$(subst $(SRCDIR)/salhelper/inc/,,$(file))>\n' \ + $(if $(findstring /win32/, $(file)), '#endif // _WIN32\n') \ + ) >> $@ + +# vim: set noet sw=4 ts=4: diff --git a/salhelper/Module_salhelper.mk b/salhelper/Module_salhelper.mk index 08df523f0afd..7f111d899da3 100644 --- a/salhelper/Module_salhelper.mk +++ b/salhelper/Module_salhelper.mk @@ -28,8 +28,13 @@ $(eval $(call gb_Module_Module,salhelper)) $(eval $(call gb_Module_add_targets,salhelper,\ + CustomTarget_salhelper_allheaders \ Library_salhelper \ Package_inc \ )) +$(eval $(call gb_Module_add_check_targets,salhelper,\ + CppunitTest_salhelper_checkapi \ +)) + # vim: set noet sw=4 ts=4: diff --git a/salhelper/qa/checkapi/strings.cxx b/salhelper/qa/checkapi/strings.cxx new file mode 100644 index 000000000000..6b634300c112 --- /dev/null +++ b/salhelper/qa/checkapi/strings.cxx @@ -0,0 +1,30 @@ +/* -*- 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/. + */ + +// The whole purpose of this test is to check that public salhelper/ headers +// build even without RTL_USING (which enables using e.g. rtl::OUString +// without to refer to the rtl namespace, which is not wanted +// in public API). If there are build errors here, check the headers +// for uses of such types. + +#ifdef RTL_USING +#error Build system problem, RTL_USING using should not be set here. +#endif + +#include "salhelper_allheaders.hxx" + +// This module contains no tests, this is for the build system. +#include +CPPUNIT_PLUGIN_IMPLEMENT(); +extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL firstfunc( sal_Bool bRes ) +{ + return ( bRes = sal_True ); +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit