debian/0000775000000000000000000000000012321607114007165 5ustar debian/copyright0000664000000000000000000002274612321607114011133 0ustar Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=174 Upstream-Name: smokegen Source: http://projects.kde.org/projects/kde/kdebindings/smoke/smokegen Files: * Copyright: 2008-2010 Arno Rehn 2010 Richard Dale 2011 Michael Jansen 2002-2005 Roberto Raggi 2010 Maciej Mrozowski License: GPL-2+ Files: type_compiler.* name_compiler.* parser/* Copyright: 2002-2005 Roberto Raggi 2006-2009 David Nolden 2006-2008 Hamish Rodda 2009 Arno Rehn 2009 Ramón Zarazúa 2005 Harald Fernengel 1992-2008 Trolltech ASA License: LGPL-2 Files: cmake/* Copyright: 2007 Pau Garcia i Quiles 2008 Matthias Kretz 2006,2008,2009 Alexander Neundorf, 2007 Christian Ehrlicher 2006,2007 Allen Winter 2009 Sebastian Trueg 2010 Arno Rehn 2007 Thomas Moenicke 2006 Montel Laurent License: BSD-3-clause Files: smoke.h Copyright: 2002 Ashley Winters 2007 Arno Rehn License: BSD-2-clause Files: parser/kdevvarlengtharray.h Copyright: 1992-2008 Trolltech ASA License: GPL-2 or GPL-3 This file may be used under the terms of the GNU General Public License versions 2.0 or 3.0 as published by the Free Software Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 included in the packaging of this file. Alternatively you may (at your option) use any later version of the GNU General Public License if such license has been publicly approved by Trolltech ASA (or its successors, if any) and the KDE Free Qt Foundation. In addition, as a special exception, Trolltech gives you certain additional rights. These rights are described in the Trolltech GPL Exception version 1.2, which can be found at http://www.trolltech.com/products/qt/gplexception/ and in the file GPL_EXCEPTION.txt in this package. . Please review the following information to ensure GNU General Public Licensing requirements will be met: http://trolltech.com/products/qt/licenses/licensing/opensource/. If you are unsure which license is appropriate for your use, please review the following information: http://trolltech.com/products/qt/licenses/licensing/licensingoverview or contact the sales department at sales@trolltech.com. . In addition, as a special exception, Trolltech, as the sole copyright holder for Qt Designer, grants users of the Qt/Eclipse Integration plug-in the right for the Qt/Eclipse Integration to link to functionality provided by Qt Designer and its related libraries. . This file is provided "AS IS" with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly granted herein. . This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Files: parser/cppparser_export.h parser/rpp/anchor.h parser/rpp/chartools.* parser/rpp/pp-engine.* parser/rpp/pp-environment.* parser/rpp/pp-internal.* parser/rpp/pp-location.* parser/rpp/pp-macro.* parser/rpp/pp-macro-expander.* parser/rpp/pp-scanner.* parser/rpp/pp-stream.* parser/rpp/preprocessor.* parser/rpp/tests/main.cpp Copyright: 2005 Harald Fernengel 2005 Roberto Raggi 2006-2007 Hamish Rodda 2007-2009 David Nolden 2009 Arno Rehn License: MIT Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE KDEVELOP TEAM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Files: cmake/MacroOptionalAddBindings.cmake parser/safetycounter.h parser/indexedstring.* Copyright: 2010 Maciej Mrozowski 2006, 2008 David Nolden License: GPL-2+ Files: debian/* Copyright: 2008-2011 Debian Qt/KDE Maintainers 2011 David Palacio 2011-2012 Pino Toscano License: GPL-2+ License: GPL-2+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. . On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". License: LGPL-2 This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License version 2 as published by the Free Software Foundation. . This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. . You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. . On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/LGPL-2". License: BSD-3-clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . 1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: BSD-2-clause Redistribution and use in source and binary forms, with or withou modification, are permitted provided that the following conditions are met: . Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. . Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. debian/watch0000664000000000000000000000012712321607114010216 0ustar version=3 ftp://ftp.kde.org/pub/kde/stable/([\d\.]+)/src/smokegen-([\d\.]+)\.tar\.bz2 debian/rules0000775000000000000000000000042012321607114010241 0ustar #! /usr/bin/make -f %: dh $@ override_dh_install: # .so symlink not need, silencing list-missing. rm -f debian/tmp/usr/lib/libcppparser.so dh_install --list-missing override_dh_strip: dh_strip --dbg-package=smokegen-dbg override_dh_makeshlibs: dh_makeshlibs -V debian/libsmokebase3.install0000664000000000000000000000003312321607114013274 0ustar usr/lib/libsmokebase.so.3* debian/source/0000775000000000000000000000000012321607114010465 5ustar debian/source/format0000664000000000000000000000001412321607114011673 0ustar 3.0 (quilt) debian/smoke-dev-tools.install0000664000000000000000000000033412321607114013605 0ustar usr/bin/smokeapi usr/bin/smokegen usr/include/smokegen/*.h usr/include/smoke.h usr/lib/libcppparser.so.0* usr/lib/libsmokebase.so usr/lib/smokegen/generator_*.so usr/share/smoke/cmake/*.cmake usr/share/smokegen/string.h debian/changelog0000664000000000000000000002525512321607114011050 0ustar smokegen (4:4.13.0-0ubuntu1) trusty; urgency=medium * New upstream KDE Software Compilation release -- Jonathan Riddell Thu, 10 Apr 2014 22:34:03 +0100 smokegen (4:4.12.97-0ubuntu1) trusty; urgency=medium * New upstream release candidate -- Philip Muškovac Wed, 02 Apr 2014 12:01:42 +0200 smokegen (4:4.12.95-0ubuntu1) trusty; urgency=medium * New upstream beta release -- Rohan Garg Sun, 23 Mar 2014 13:05:56 +0100 smokegen (4:4.12.90-0ubuntu1) trusty; urgency=medium * New upstream beta release -- Jonathan Riddell Wed, 19 Mar 2014 12:10:35 +0000 smokegen (4:4.12.3-0ubuntu1) trusty; urgency=medium * New upstream bugfix release -- Rohan Garg Tue, 04 Mar 2014 21:22:05 +0100 smokegen (4:4.12.2-0ubuntu1) trusty; urgency=medium * New upstream bugfix release -- Rohan Garg Wed, 05 Feb 2014 00:36:23 +0000 smokegen (4:4.12.1-0ubuntu1) trusty; urgency=low * New upstream bugfix release -- Rohan Garg Thu, 16 Jan 2014 08:50:55 +0000 smokegen (4:4.12.0-0ubuntu1) trusty; urgency=low * New upstream release -- Jonathan Riddell Wed, 18 Dec 2013 17:53:23 +0000 smokegen (4:4.11.97-0ubuntu1) trusty; urgency=low * New upstream RC release -- Jonathan Riddell Fri, 29 Nov 2013 13:51:50 +0000 smokegen (4:4.11.95-0ubuntu1) trusty; urgency=low * New upstream beta release -- Rohan Garg Mon, 25 Nov 2013 18:45:57 +0100 smokegen (4:4.11.80-0ubuntu1) trusty; urgency=low * New upstream beta release -- Rohan Garg Sat, 23 Nov 2013 18:07:38 +0100 smokegen (4:4.11.2-0ubuntu2) saucy; urgency=low * Rebuild with fixed arm64 libqt4-dev. -- William Grant Tue, 15 Oct 2013 00:00:02 +1100 smokegen (4:4.11.2-0ubuntu1) saucy; urgency=low * New upstream bugfix release -- Jonathan Riddell Mon, 30 Sep 2013 15:02:13 +0100 smokegen (4:4.11.1-0ubuntu1) saucy; urgency=low * New upstream bugfix release. -- Philip Muškovac Fri, 06 Sep 2013 22:45:56 +0100 smokegen (4:4.11.0-0ubuntu1) saucy; urgency=low [ Howard Chan ] * New upstream release [ Jonathan Riddell ] * New upstream release -- Jonathan Riddell Wed, 14 Aug 2013 00:46:22 +0100 smokegen (4:4.10.97-0ubuntu1) saucy; urgency=low * New upstream RC 2 release -- Jonathan Riddell Fri, 26 Jul 2013 20:15:24 +0100 smokegen (4:4.10.95-0ubuntu1) saucy; urgency=low * New upstream RC release -- Rohan Garg Fri, 19 Jul 2013 12:33:41 +0000 smokegen (4:4.10.90-0ubuntu1) saucy; urgency=low * New upstream bet release -- Michał Zając Fri, 28 Jun 2013 18:36:37 +0100 smokegen (4:4.10.80-0ubuntu1) saucy; urgency=low [ Rohan Garg ] * New upstream release [ Howard Chan ] * Add back not-installed. * Fix debian/rules to directly clear out the not-installed file. -- Rohan Garg Fri, 21 Jun 2013 02:04:45 +0100 smokegen (4:4.10.3-0ubuntu1) saucy; urgency=low * New upstream release * Merge with Debian, no remaining changes -- Jonathan Riddell Thu, 23 May 2013 11:05:01 +0000 smokegen (4:4.10.2-1) experimental; urgency=low * New upstream release -- Sune Vuorela Sat, 06 Apr 2013 08:10:17 +0000 smokegen (4:4.10.2-0ubuntu1) raring; urgency=low * New upstream bugfix release -- Philip Muškovac Sun, 31 Mar 2013 15:06:45 +0200 smokegen (4:4.10.1-0ubuntu1) raring-proposed; urgency=low * New upstream bugfix release -- Philip Muškovac Tue, 05 Mar 2013 17:02:28 +0000 smokegen (4:4.10.0-0ubuntu1) raring-proposed; urgency=low * New upstream release -- Rohan Garg Wed, 06 Feb 2013 12:25:22 +0000 smokegen (4:4.9.98-0ubuntu1) raring-proposed; urgency=low * New upstream release candidate -- Jonathan Riddell Fri, 18 Jan 2013 16:35:47 +0000 smokegen (4:4.9.97-0ubuntu1) raring; urgency=low * New upstream release candidate -- Philip Muškovac Thu, 03 Jan 2013 22:51:14 +0100 smokegen (4:4.9.95-0ubuntu1) raring; urgency=low * New upstream RC release -- Jonathan Riddell Tue, 18 Dec 2012 23:51:42 +0000 smokegen (4:4.9.90-0ubuntu1) raring-proposed; urgency=low * New upstream beta release -- Jonathan Riddell Fri, 07 Dec 2012 18:21:23 +0000 smokegen (4:4.9.80-0ubuntu1) raring; urgency=low * New upstream beta release -- Jonathan Riddell Mon, 19 Nov 2012 16:28:42 +0000 smokegen (4:4.9.3-0ubuntu1) raring; urgency=low * New upstream release (LP: #1074747) -- Philip Muškovac Tue, 06 Nov 2012 22:52:47 +0100 smokegen (4:4.9.2-0ubuntu1) quantal-proposed; urgency=low * New upstream bugfix release -- Jonathan Riddell Tue, 02 Oct 2012 15:47:59 +0100 smokegen (4:4.9.1-0ubuntu1) quantal; urgency=low * New upstream release -- Harald Sitter Tue, 04 Sep 2012 15:34:34 +0530 smokegen (4:4.9.0-0ubuntu1) quantal; urgency=low * Use direct build-depends versions rather than kde-sc-dev-latest * New upstream release -- Jonathan Riddell Thu, 26 Jul 2012 22:50:47 +0100 smokegen (4:4.8.90-0ubuntu1) quantal; urgency=low * New upstream beta release. * Remove files that we don't to install, keeps --list-missing silent. -- Felix Geyer Wed, 13 Jun 2012 08:24:38 +0200 smokegen (4:4.8.80a-0ubuntu1) quantal; urgency=low * Merge with debian git, remaining changes: - add libcppparser.so to not-installed * New upstream beta release -- Philip Muškovac Mon, 21 May 2012 08:45:02 +0200 smokegen (4:4.8.4-1) unstable; urgency=low * New upstream release. * Team upload [ David Palacio ] * Update patches: - Refresh version_cppparser_library.diff. - Remove patch fix_segfault_in_generator_on_armel.diff. Applied upstream. -- Sune Vuorela Sun, 17 Jun 2012 01:31:16 +0200 smokegen (4:4.8.3-0ubuntu1) quantal; urgency=low * New upstream release - add libcppparser.so to not-installed -- Jonathan Kolberg Mon, 30 Apr 2012 23:53:52 +0200 smokegen (4:4.8.2-0ubuntu1) precise; urgency=low * New upstream release -- Philip Muškovac Fri, 30 Mar 2012 20:13:05 +0200 smokegen (4:4.8.1-0ubuntu1) precise; urgency=low * New upstream release -- Philip Muškovac Sat, 03 Mar 2012 00:34:37 +0100 smokegen (4:4.8.0-1) raring; urgency=low * New upstream release. [ David Palacio ] * Update patches: - Refresh version_cppparser_library.diff. - Remove patch fix_segfault_in_generator_on_armel.diff. Applied upstream. -- Debian Qt/KDE Maintainers Thu, 09 Feb 2012 19:30:14 -0500 smokegen (4:4.8.0-0ubuntu1) precise; urgency=low * New upstream release -- Jonathan Riddell Thu, 19 Jan 2012 12:01:23 +0000 smokegen (4:4.7.97-0ubuntu1) precise; urgency=low * New upstream RC release -- Jonathan Riddell Wed, 04 Jan 2012 13:14:58 +0000 smokegen (4:4.7.95-0ubuntu1) precise; urgency=low * New upstream release candidate - drop fix_segfault_in_generator_on_armel.diff, fixed upstream - refresh version_cppparser_library.diff -- Philip Muškovac Fri, 23 Dec 2011 21:09:28 +0100 smokegen (4:4.7.90-0ubuntu1) precise; urgency=low * New upstream beta release -- Jonathan Riddell Sat, 17 Dec 2011 20:55:58 +0000 smokegen (4:4.7.4-1) unstable; urgency=low * Team upload. * New upstream release. * Bump Standards-Version to 3.9.3, no changes required. * Bump debhelper build dependency to >= 9, and compat to 9. * Do not manually export CXXFLAGS and LDFLAGS now, since compat v9 does that already. * Update copyright for myself, for last year and the current one. -- Pino Toscano Mon, 02 Apr 2012 13:31:04 +0200 smokegen (4:4.7.3-0ubuntu2) precise; urgency=low * New upstream release -- Jonathan Riddell Wed, 23 Nov 2011 01:07:04 +0000 smokegen (4:4.7.1-1) unstable; urgency=low * New upstream release. [ Pino Toscano ] * Update patch smokegen_load_system_defines.diff to the upstream sources. * Small touches to the descriptions. * Update installed files. * Tighten the libsmokebase dependency of smoke-dev-tools to the current version. * Generate libsmokebase shlibs based on the current version. * Manually export CXXFLAGS and LDFLAGS from dpkg-buildflags now, as dpkg-buildpackage does not do that anymore. -- Debian Qt/KDE Maintainers Sat, 24 Sep 2011 12:04:41 +0200 smokegen (4:4.7.3-0ubuntu1) precise; urgency=low * New upstream release -- Jonathan Kolberg Sat, 29 Oct 2011 10:39:00 +0200 smokegen (4:4.7.1-0ubuntu1) oneiric; urgency=low * New upstream release - fix smokegen_load_system_defines.diff - add simplified version of string.h to smoke-dev-tools.install -- Philip Muškovac Fri, 02 Sep 2011 21:04:30 +0200 smokegen (4:4.7.0-2) unstable; urgency=low [ Pino Toscano ] * Make smoke-dev-tools break/replace libsmokeqt4-dev < 4:4.7.0, as /usr/include/smoke.h has been moved here. (Closes: #635579) -- Debian Qt/KDE Maintainers Wed, 10 Aug 2011 23:49:23 +0200 smokegen (4:4.7.0-1) unstable; urgency=low * Initial release, split from the kdebindings source. [ David Palacio ] * Switch to dh7: - clean rules * Adapt watch file to the new source name. * Pick smokegen related patches from the kdebindings package and include them in this package. * Adapt Vcs fields. * Switch copyright to the DEP-5 format, revision 174. [ Pino Toscano ] * Update the patches: - smokegen_load_system_defines.diff: do not define IN_KDEVELOP_PARSER and IN_IDE_PARSER, as they are reserved for kdevelop - strip sequence numbers from the filenames - refresh - add DEP-3 headers for patches which didn't have them * Update rules: - pass --list-missing to dh_install * Update control: - add a smokegen-dbg package, making it break/replace kdebindings-dbg - small touches to the descriptions * Update copyright. * Update lintian overrides for smoke-dev-tools. [ Modestas Vainius ] * Remove myself from Uploaders. -- Debian Qt/KDE Maintainers Tue, 26 Jul 2011 16:11:36 +0200 debian/compat0000664000000000000000000000000212321607114010363 0ustar 9 debian/control0000664000000000000000000000436512321607114010600 0ustar Source: smokegen Section: devel Priority: optional Maintainer: Kubuntu Developers XSBC-Original-Maintainer: Debian Qt/KDE Maintainers Uploaders: Torsten Marek , Sune Vuorela , David Palacio , Michael Meskes Build-Depends: debhelper (>= 9), cmake, libqt4-dev Standards-Version: 3.9.3 Homepage: http://projects.kde.org/projects/kde/kdebindings/smoke/smokegen X-Debian-Vcs-Git: git://git.debian.org/git/pkg-kde/kde-sc/smokegen.git Vcs-Browser: http://bazaar.launchpad.net/~kubuntu-packagers/kubuntu-packaging/smokegen Vcs-Bzr: https://code.launchpad.net/~kubuntu-packagers/kubuntu-packaging/smokegen X-Debian-Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-kde/kde-sc/smokegen.git;a=summary Package: smoke-dev-tools Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libsmokebase3 (= ${binary:Version}) Breaks: libsmokeqt4-dev (<< 4:4.7.0) Replaces: libsmokeqt4-dev (<< 4:4.7.0) Description: SMOKE development tools SMOKE provides infrastructure which is used for creating bindings for multiple languages such as Ruby, C# and PHP. . This package contains the development tools to do bindings with the Scripting MetaObject Kompiler Engine, used by several Qt and KDE bindings, as well as some bindings for the Wt library. Package: libsmokebase3 Section: libs Depends: ${shlibs:Depends}, ${misc:Depends} Architecture: any Description: SMOKE base library SMOKE libraries are part of the bindings used for Qt and KDE. This package contains the SMOKE base library. . SMOKE provides infrastructure which is used for creating bindings for multiple languages such as Ruby, C# and PHP. Package: smokegen-dbg Section: debug Depends: ${misc:Depends}, libsmokebase3 (= ${binary:Version}) Recommends: smoke-dev-tools (= ${binary:Version}), libqt4-dbg Breaks: kdebindings-dbg Replaces: kdebindings-dbg Architecture: any Priority: extra Description: SMOKE development tools -- debug symbols SMOKE provides infrastructure which is used for creating bindings for multiple languages such as Ruby, C# and PHP. . This package contains the debug symbols for the SMOKE generator and libraries, used to investigate problems in them. debian/smoke-dev-tools.lintian-overrides0000664000000000000000000000025612321607114015600 0ustar # libcppparser is a private library smoke-dev-tools: package-name-doesnt-match-sonames libcppparser0a smoke-dev-tools: no-symbols-control-file usr/lib/libcppparser.so.0a.0.0 debian/patches/0000775000000000000000000000000012321607114010614 5ustar debian/patches/smokegen_load_system_defines.diff0000664000000000000000000005467512321607114017377 0ustar From: Modestas Vainius From: Pino Toscano Subject: get system #defines from current compiler Bug-Debian: http://bugs.debian.org/626631 Forwarded: no Last-Update: 2011-09-23 Origin: vendor Steal and port some setuphelpers code from the latest kdevelop (b3104e25) which dynamically gets system #defines from the current gcc and feeds them to smokegen macro preprocessor. This code replaces a couple of macros which were hardcoded in the preprocessor code but were insufficient in some cases (e.g. generator failed to generate proper code on kFreeBSD with eglibc >= 2.13, see build logs of kdebindings 4:4.4.5-6 [1]). While porting, KProcess was replaced by QProcess, kDebug() with qDebug(), adjusted include paths and setuphelpers functions were integrated into existing generator code. A few new interfaces had to be made to the pp-macro class to support some setuphelpers calls. [1] https://buildd.debian.org/status/fetch.php?pkg=kdebindings&arch=kfreebsd-amd64&ver=4%3A4.4.5-6&stamp=1304984309 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,8 @@ set(generator_SRC type_compiler.cpp name_compiler.cpp type.cpp + setuphelpers.cpp + setuphelpers_gcc.cpp ) # force RPATH so that the binary is usable from within the build tree --- a/generatorpreprocessor.cpp +++ b/generatorpreprocessor.cpp @@ -18,6 +18,7 @@ #include "generatorpreprocessor.h" #include "generatorenvironment.h" +#include "setuphelpers.h" #include #include @@ -39,94 +40,8 @@ Preprocessor::Preprocessor(const QListname = IndexedString("__cplusplus"); - exportMacro->definition.append(IndexedString('1')); - exportMacro->function_like = false; - exportMacro->variadics = false; - m_topBlock->setMacro(exportMacro); - - exportMacro = new rpp::pp_macro; - exportMacro->name = IndexedString("__GNUC__"); - exportMacro->definition.append(IndexedString('4')); - exportMacro->function_like = false; - exportMacro->variadics = false; - m_topBlock->setMacro(exportMacro); - - exportMacro = new rpp::pp_macro; - exportMacro->name = IndexedString("__GNUC_MINOR__"); - exportMacro->definition.append(IndexedString('1')); - exportMacro->function_like = false; - exportMacro->variadics = false; - m_topBlock->setMacro(exportMacro); - - exportMacro = new rpp::pp_macro; -#if defined(Q_OS_LINUX) - exportMacro->name = IndexedString("__linux__"); -#elif defined(Q_OS_WIN32) - exportMacro->name = IndexedString("WIN32"); -#elif defined(Q_OS_WIN64) - exportMacro->name = IndexedString("WIN64"); -#elif defined(Q_OS_DARWIN) - exportMacro->name = IndexedString("__APPLE__"); -#elif defined(Q_OS_SOLARIS) - exportMacro->name = IndexedString("__sun"); -#else - // fall back to linux if nothing matches - exportMacro->name = IndexedString("__linux__"); -#endif - exportMacro->function_like = false; - exportMacro->variadics = false; - m_topBlock->setMacro(exportMacro); - -#if defined(Q_OS_DARWIN64) - exportMacro = new rpp::pp_macro; - exportMacro->name = IndexedString("__LP64__"); - exportMacro->function_like = false; - exportMacro->variadics = false; - m_topBlock->setMacro(exportMacro); -#endif - -#if (defined(QT_ARCH_ARM) || defined (QT_ARCH_ARMV6)) && !defined(QT_NO_ARM_EABI) - exportMacro = new rpp::pp_macro; - exportMacro->name = IndexedString("__ARM_EABI__"); - exportMacro->function_like = false; - exportMacro->variadics = false; - m_topBlock->setMacro(exportMacro); -#endif - - // ansidecl.h will define macros for keywords if we don't define __STDC__ - exportMacro = new rpp::pp_macro; - exportMacro->name = IndexedString("__STDC__"); - exportMacro->function_like = false; - exportMacro->variadics = false; - m_topBlock->setMacro(exportMacro); - - // the following macros are gcc specialties - exportMacro = new rpp::pp_macro; - exportMacro->name = IndexedString("__extension__"); - exportMacro->function_like = false; - exportMacro->variadics = false; - m_topBlock->setMacro(exportMacro); - - exportMacro = new rpp::pp_macro; - exportMacro->name = IndexedString("__restrict"); - exportMacro->function_like = false; - exportMacro->variadics = false; - m_topBlock->setMacro(exportMacro); - - exportMacro = new rpp::pp_macro; - exportMacro->name = IndexedString("__const"); - exportMacro->definition.append(IndexedString("const")); - exportMacro->function_like = false; - exportMacro->variadics = false; - m_topBlock->setMacro(exportMacro); - - exportMacro = new rpp::pp_macro; - exportMacro->name = IndexedString("__attribute__"); - exportMacro->function_like = true; - exportMacro->variadics = false; - m_topBlock->setMacro(exportMacro); + rpp::pp_macro* exportMacro = 0; + CppTools::setupStandardMacros(*m_topBlock); exportMacro = new rpp::pp_macro; exportMacro->name = IndexedString("__SMOKEGEN_RUN__"); @@ -135,6 +50,11 @@ Preprocessor::Preprocessor(const QListvariadics = false; m_topBlock->setMacro(exportMacro); + // Do not add standard include paths +// foreach (QString dir, CppTools::setupStandardIncludePaths()) { +// m_includeDirs << QDir(dir); +// } + foreach (QString define, defines) { exportMacro = new rpp::pp_macro; exportMacro->name = IndexedString(define); --- /dev/null +++ b/setuphelpers.cpp @@ -0,0 +1,167 @@ +/* +* This file is part of KDevelop +* +* Copyright 2007-2008 David Nolden +* Copyright 2007 Kris Wong +* Copyright 2011 Modestas Vainius +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU Library General Public License as +* published by the Free Software Foundation; either version 2 of the +* License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public +* License along with this program; if not, write to the +* Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ +#include "setuphelpers.h" + +#include +#include + +//#include +#include +#include + +namespace CppTools { +QStringList gccSetupStandardIncludePaths(); +const QVector& gccStandardMacros(); + +#ifdef _MSC_VER +QStringList msvcSetupStandardIncludePaths(); +const QVector& msvcStandardMacros(); +#endif + +QStringList setupStandardIncludePaths() +{ +//TODO: this should happen depending on the actual compiler used for the target and not on the compiler used for kdevelop itself. +#ifdef _MSC_VER + QStringList includePaths = msvcSetupStandardIncludePaths(); +#else + QStringList includePaths = gccSetupStandardIncludePaths(); +#endif + return includePaths; +} + +void insertMacro(rpp::MacroBlock& macros, const rpp::pp_macro& macro) +{ + macros.setMacro(new rpp::pp_macro(macro)); +} + +void setupStandardMacros(rpp::MacroBlock& macros) +{ + //Add some macros to be compatible with the gnu c++ compiler + //Used in several headers like sys/time.h + insertMacro( macros, rpp::pp_macro("__restrict") ); + insertMacro( macros, rpp::pp_macro("__extension__") ); + { + //Used in several headers like sys/time.h + rpp::pp_macro m("__const"); + m.setDefinitionText( "const" ); + insertMacro( macros, m ); + } + { + rpp::pp_macro m("__null"); + m.setDefinitionText( "0" ); + insertMacro( macros, m ); + m.name = IndexedString("NULL"); + insertMacro( macros, m ); + } + + { + //Used in several gcc headers + rpp::pp_macro m("__inline"); + m.setDefinitionText( "inline" ); + insertMacro( macros, m ); + m.name = IndexedString("__always_inline"); + insertMacro( macros, m ); + } + + { + //It would be better if the parser could deal with it, for example in class declarations. However it cannot. + //If we wouldn't need this, macros could be more transparent. + rpp::pp_macro m("__attribute__"); + m.function_like = true; + m.formalsList().append(IndexedString("param")); + insertMacro( macros, m ); + } + + /// The following macros are required for qt only. That's why we set them to become active only when their + /// 'real' versions become defined in qobjectdefs.h. A slight problem is that they are 'fixed', so they will block + /// any other macros with the same names. + { + rpp::pp_macro m("Q_SLOTS"); + m.setDefinitionText( "__qt_slots__" ); + + m.defined = false; + m.defineOnOverride = true; + m.file = IndexedString("/qobjectdefs.h"); // Only define the macro if it is overriden in this file + m.fixed = true; + + insertMacro( macros, m ); + + m.name = IndexedString("Q_PRIVATE_SLOT"); + m.formalsList().append(IndexedString("d")); + m.formalsList().append(IndexedString("sig")); + m.function_like = true; + m.setDefinitionText( "private slots: sig{ d; }; private:" ); + insertMacro( macros, m ); + + m.name = IndexedString("slots"); + m.setDefinitionText("__qt_slots__"); + m.formalsList().clear(); + m.function_like = false; + insertMacro( macros, m ); + + m.name = IndexedString("Q_SIGNALS"); + m.setDefinitionText( "__qt_signals__" ); + m.formalsList().clear(); + insertMacro( macros, m ); + + m.name = IndexedString("signals"); + m.setDefinitionText("__qt_signals__"); + m.formalsList().clear(); + insertMacro( macros, m ); + + m.name = IndexedString("SIGNAL"); + m.setDefinitionText("__qt_signal__"); + m.formalsList().clear(); + insertMacro( macros, m ); + + m.name = IndexedString("SLOT"); + m.setDefinitionText("__qt_slot__"); + m.formalsList().clear(); + insertMacro( macros, m ); + + m.name = IndexedString("Q_PROPERTY"); + m.setDefinitionText("__qt_property__"); + m.formalsList().clear(); + insertMacro( macros, m ); + } + + { + // We don't provide a real implementation of offsetof, but at least provide a stub that allows correct use-building for the member. + rpp::pp_macro m("__builtin_offsetof"); + m.function_like = true; + m.formalsList().append(IndexedString("TYPE")); + m.formalsList().append(IndexedString("MEMBER")); + m.setDefinitionText("(size_t)((void)TYPE::MEMBER)"); + insertMacro( macros, m ); + } + +#ifdef _MSC_VER + foreach(const rpp::pp_macro* macro, msvcStandardMacros()) +#else + foreach(const rpp::pp_macro* macro, gccStandardMacros()) +#endif + insertMacro(macros, *macro); +} + +} + --- /dev/null +++ b/setuphelpers.h @@ -0,0 +1,47 @@ +/* +* This file is part of KDevelop +* +* Copyright 2007-2008 David Nolden +* Copyright 2007 Kris Wong +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU Library General Public License as +* published by the Free Software Foundation; either version 2 of the +* License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public +* License along with this program; if not, write to the +* Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ +#ifndef CPPTOOLSSETUPHELPERS_H +#define CPPTOOLSSETUPHELPERS_H + +class QStringList; +namespace rpp { + class MacroBlock; +} + +namespace CppTools { + + /** + * This function attempts to run a gcc command to retrieve the standard + * c++ include paths for this machine. + */ + QStringList setupStandardIncludePaths(); + + /** + * This function attempts to run a gcc command to retrieve the standard + * c++ macro definitions. + */ + void setupStandardMacros(rpp::MacroBlock& macros); + +} + +#endif + --- /dev/null +++ b/setuphelpers_gcc.cpp @@ -0,0 +1,161 @@ +/* +* This file is part of KDevelop +* +* Copyright 2007-2008 David Nolden +* Copyright 2007 Kris Wong +* Copyright 2011 Modestas Vainius +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU Library General Public License as +* published by the Free Software Foundation; either version 2 of the +* License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public +* License along with this program; if not, write to the +* Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ +#include "setuphelpers.h" + +#include +#include +#include +#include +#include + +#include + +#ifdef _WIN32 +#define NULL_DEVICE "NUL" +#else +#define NULL_DEVICE "/dev/null" +#endif + +namespace CppTools { + +QStringList gccSetupStandardIncludePaths() +{ + QStringList includePaths; + + QProcess proc; + proc.setProcessChannelMode(QProcess::MergedChannels); + proc.setTextModeEnabled(true); + + // The following command will spit out a bnuch of information we don't care + // about before spitting out the include paths. The parts we care about + // look like this: + // #include "..." search starts here: + // #include <...> search starts here: + // /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2 + // /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/i486-linux-gnu + // /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/backward + // /usr/local/include + // /usr/lib/gcc/i486-linux-gnu/4.1.2/include + // /usr/include + // End of search list. + proc.start("gcc", QStringList() <<"-xc++" <<"-E" <<"-v" <") != -1) { + parsingMode = parsingIncludes; + break; + } + case parsingIncludes: + //if (!line.indexOf(QDir::separator()) == -1 && line != "." ) { + //Detect the include-paths by the first space that is prepended. Reason: The list may contain relative paths like "." + if (!line.startsWith(" ") ) { + // We've reached the end of the list. + parsingMode = parsingFinished; + } else { + line = line.trimmed(); + // This is an include path, add it to the list. + includePaths << QDir::cleanPath(line); + } + break; + } + } + } + } else { + qDebug() <<"Unable to read standard c++ macro definitions from gcc:" < computeGccStandardMacros() +{ + QVector ret; + //Get standard macros from gcc + QProcess proc; + proc.setProcessChannelMode(QProcess::MergedChannels); + proc.setTextModeEnabled(true); + + // The output of the following gcc commands is several line in the format: + // "#define MACRO [definition]", where definition may or may not be present. + // Parsing each line sequentially, we can easily build the macro set. + proc.start("gcc", QStringList() <<"-xc++" <<"-E" <<"-dM" <& gccStandardMacros() +{ + static QVector macros = computeGccStandardMacros(); + return macros; +} + +} + --- a/generatorenvironment.cpp +++ b/generatorenvironment.cpp @@ -38,15 +38,26 @@ GeneratorEnvironment::~GeneratorEnvironm void GeneratorEnvironment::setMacro(rpp::pp_macro* macro) { - QString macroName = macro->name.str(); - if ( macroName == "signals" || macroName == "slots" || macroName == "Q_SIGNALS" || macroName == "Q_SLOTS" - || ParserOptions::dropMacros.contains(macroName)) { + rpp::pp_macro* hadMacro = retrieveStoredMacro(macro->name); + + if(hadMacro && hadMacro->fixed) { + if(hadMacro->defineOnOverride && (hadMacro->file.isEmpty() || + (macro->file.length() >= hadMacro->file.length() && + memcmp(macro->file.byteArray().data() + (macro->file.length() - hadMacro->file.length()), + hadMacro->file.byteArray().data(), + hadMacro->file.length()) == 0))) + { + // We have to define the macro now, as it is being overridden + rpp::pp_macro* definedMacro = new rpp::pp_macro(*hadMacro); + definedMacro->defined = true; delete macro; - return; - } else if (ParserOptions::qtMode && macroName == "Q_PROPERTY") { + macro = definedMacro; + }else{ + // A fixed macro exists, simply ignore the added macro delete macro; - rpp::Environment::setMacro(q_property); return; + } } + rpp::Environment::setMacro(macro); } --- a/parser/rpp/pp-macro.cpp +++ b/parser/rpp/pp-macro.cpp @@ -50,6 +50,7 @@ bool pp_macro::operator==(const pp_macro function_like == rhs.function_like && variadics == rhs.variadics && fixed == rhs.fixed && + defineOnOverride == rhs.defineOnOverride && definition == rhs.definition && formals == rhs.formals; // listsEqual(rhs); @@ -66,6 +67,7 @@ pp_macro::pp_macro(const IndexedString& , function_like(false) , variadics(false) , fixed(false) + , defineOnOverride(false) , m_valueHashValid(false) , m_valueHash(0) { @@ -81,6 +83,7 @@ pp_macro::pp_macro(const pp_macro& rhs, function_like(rhs.function_like), variadics(rhs.variadics), fixed(rhs.fixed), + defineOnOverride(rhs.defineOnOverride), m_valueHashValid(true), m_valueHash(rhs.valueHash()), definition(rhs.definition), @@ -97,6 +100,7 @@ pp_macro::pp_macro(const char* nm) : nam , function_like(false) , variadics(false) , fixed(false) + , defineOnOverride(false) , m_valueHashValid(false) , m_valueHash(0) { @@ -139,7 +143,7 @@ void pp_macro::computeHash() const { m_valueHash = 27 * ( 137 + (defined ? 1 : 0 ) ); - m_valueHash += 1741 * file.hash() + 238 * sourceLine + (hidden ? 19 : 0) + (function_like ? 811241 : 0) + (variadics ? 129119 : 0) + (fixed ? 1807 : 0); + m_valueHash += 1741 * file.hash() + 238 * sourceLine + (hidden ? 19 : 0) + (function_like ? 811241 : 0) + (variadics ? 129119 : 0) + (fixed ? 1807 : 0) + (defineOnOverride ? 31621 : 0); foreach(const IndexedString& definitionComponent, definition) m_valueHash = definitionComponent.hash() + 17 * m_valueHash; --- a/parser/rpp/pp-macro.h +++ b/parser/rpp/pp-macro.h @@ -66,6 +66,10 @@ struct CPPPARSER_EXPORT pp_macro bool function_like: 1; // hasArguments bool variadics: 1; bool fixed : 1; //If this is set, the macro can not be overridden or undefined. + //If defineOnOverride is set, the macro is changed to "defined = true", if it is overridden. + //If the macro also has a valid "file" entry, the macro will only be defined if the file-name of the overriding + //macro ends with the string given in 'file'. + bool defineOnOverride : 1; mutable bool m_valueHashValid : 1; //The valueHash is not necessarily valid @@ -152,6 +156,10 @@ struct CPPPARSER_EXPORT pp_macro void setDefinitionText(const char* definition) { setDefinitionText(QByteArray(definition)); } + + inline QVector& formalsList() { + return formals; + } // START_APPENDED_LISTS(pp_macro) // APPENDED_LIST_FIRST(pp_macro, IndexedString, definition) debian/patches/version_cppparser_library.diff0000664000000000000000000000073112321607114016737 0ustar Author: Sune Vuorela Description: Version the cppparser library Last-Update: 2010-03-01 --- a/parser/CMakeLists.txt +++ b/parser/CMakeLists.txt @@ -36,6 +36,7 @@ add_definitions(-D__CPPPARSER_BUILDING) add_library(cppparser SHARED ${cppparser_LIB_SRCS}) +set_target_properties(cppparser PROPERTIES VERSION 0a.0.0 SOVERSION 0a) target_link_libraries(cppparser ${QT_QTCORE_LIBRARY}) install(TARGETS cppparser LIBRARY DESTINATION ${LIB_INSTALL_DIR} debian/patches/series0000664000000000000000000000010112321607114012021 0ustar smokegen_load_system_defines.diff version_cppparser_library.diff debian/not-installed0000664000000000000000000000007212321607114011664 0ustar # dev symlink that's never used ./usr/lib/libcppparser.so