Alien-SmokeQt

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

* Notes for developers

Notes for end users
-------------------

You only need this package when something else requires it.

Install examples:
# Compile and install
cmake -DCMAKE_INSTALL_PREFIX=/opt/kde4/ . && make && make install
# Compile with debugging enabled and point to the used ruby version
cmake -DCMAKE_BUILD_TYPE=debugfull -DRUBY_INCLUDE_PATH=/usr/lib/ruby/1.8/i486-linux/ -DRUBY_LIBRARY=/usr/lib/libruby1.8.so .
# Compile smokeqt but not smokekde
cmake -DENABLE_SMOKE=on -DENABLE_SMOKEKDE=off .
# Disable compiling of Qyoto
cmake -DENABLE_QYOTO=off .
# Disable compiling of QtRuby and Korundum
cmake -DENABLE_QTRUBY=off -DENABLE_KORUNDUM=off .
# Disable compiling of PyKDE
cmake -DENABLE_PYKDE4=off .
# Disable compiling of the Kross Ruby and Python backends
cmake -DENABLE_KROSSRUBY=off -DENABLE_KROSSPYTHON=off .

cmake/modules/FindLibraryWithDebug.cmake  view on Meta::CPAN

#
#  FIND_LIBRARY_WITH_DEBUG
#  -> enhanced FIND_LIBRARY to allow the search for an
#     optional debug library with a WIN32_DEBUG_POSTFIX similar
#     to CMAKE_DEBUG_POSTFIX when creating a shared lib
#     it has to be the second and third argument

# Copyright (c) 2007, Christian Ehrlicher, <ch.ehrlicher@gmx.de>
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.

MACRO(FIND_LIBRARY_WITH_DEBUG var_name win32_dbg_postfix_name dgb_postfix libname)

  IF(NOT "${win32_dbg_postfix_name}" STREQUAL "WIN32_DEBUG_POSTFIX")

cmake/modules/FindLibraryWithDebug.cmake  view on Meta::CPAN

      # on non-win32 we don't need to take care about WIN32_DEBUG_POSTFIX

      FIND_LIBRARY(${var_name} ${libname} ${ARGN})

    ELSE(NOT WIN32)

      # 1. get all possible libnames
      SET(args ${ARGN})
      SET(newargs "")
      SET(libnames_release "")
      SET(libnames_debug "")

      LIST(LENGTH args listCount)

      IF("${libname}" STREQUAL "NAMES")
        SET(append_rest 0)
        LIST(APPEND args " ")

        FOREACH(i RANGE ${listCount})
          LIST(GET args ${i} val)

          IF(append_rest)
            LIST(APPEND newargs ${val})
          ELSE(append_rest)
            IF("${val}" STREQUAL "PATHS")
              LIST(APPEND newargs ${val})
              SET(append_rest 1)
            ELSE("${val}" STREQUAL "PATHS")
              LIST(APPEND libnames_release "${val}")
              LIST(APPEND libnames_debug   "${val}${dgb_postfix}")
            ENDIF("${val}" STREQUAL "PATHS")
          ENDIF(append_rest)

        ENDFOREACH(i)

      ELSE("${libname}" STREQUAL "NAMES")

        # just one name
        LIST(APPEND libnames_release "${libname}")
        LIST(APPEND libnames_debug   "${libname}${dgb_postfix}")

        SET(newargs ${args})

      ENDIF("${libname}" STREQUAL "NAMES")

      # search the release lib
      FIND_LIBRARY(${var_name}_RELEASE
                   NAMES ${libnames_release}
                   ${newargs}
      )

      # search the debug lib
      FIND_LIBRARY(${var_name}_DEBUG
                   NAMES ${libnames_debug}
                   ${newargs}
      )

      IF(${var_name}_RELEASE AND ${var_name}_DEBUG)

        # both libs found
        SET(${var_name} optimized ${${var_name}_RELEASE}
                        debug     ${${var_name}_DEBUG})

      ELSE(${var_name}_RELEASE AND ${var_name}_DEBUG)

        IF(${var_name}_RELEASE)

          # only release found
          SET(${var_name} ${${var_name}_RELEASE})

        ELSE(${var_name}_RELEASE)

          # only debug (or nothing) found
          SET(${var_name} ${${var_name}_DEBUG})

        ENDIF(${var_name}_RELEASE)
       
      ENDIF(${var_name}_RELEASE AND ${var_name}_DEBUG)

      MARK_AS_ADVANCED(${var_name}_RELEASE)
      MARK_AS_ADVANCED(${var_name}_DEBUG)

    ENDIF(NOT WIN32)

cmake/modules/FindQImageBlitz.cmake  view on Meta::CPAN

  NAMES
  qimageblitz.h
  PATH_SUFFIXES qimageblitz
  HINTS
  $ENV{QIMAGEBLITZDIR}/include
  ${PC_QIMAGEBLITZ_INCLUDEDIR}
  ${KDE4_INCLUDE_DIR}
  ${INCLUDE_INSTALL_DIR}
)

find_library_with_debug(QIMAGEBLITZ_LIBRARIES
  WIN32_DEBUG_POSTFIX d
  qimageblitz
  HINTS
  $ENV{QIMAGEBLITZDIR}/lib
  ${PC_QIMAGEBLITZ_LIBDIR}
  ${KDE4_LIB_DIR}
  ${LIB_INSTALL_DIR}
)

include(FindPackageHandleStandardArgs)

generator/name_compiler.cpp  view on Meta::CPAN

//krazy:excludeall=cpp

#include "name_compiler.h"
#include "type_compiler.h"
#include <lexer.h>
#include <symbol.h>
#include <parsesession.h>
#include <tokens.h>
#include "type_compiler.h"

#include <QtCore/qdebug.h>

///@todo this is very expensive
QString decode(ParseSession* session, AST* ast, bool without_spaces = false)
{
  QString ret;
  if( without_spaces ) {
    //Decode operator-names without spaces for now, since we rely on it in other places.
    ///@todo change this, here and in all the places that rely on it. Operators should then by written like "operator [ ]"(space between each token)
    for( size_t a = ast->start_token; a < ast->end_token; a++ ) {
      ret += session->token_stream->token(a).symbolString();

generator/parser/commentparser.cpp  view on Meta::CPAN

   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.
*/
#include "commentparser.h"
// #include <kdebug.h>

Comment::Comment( size_t token, int line ) : m_line(line), m_token( token ) {
}

Comment::operator bool() const {
    return m_line != -1 && m_token != 0;
}

bool Comment::operator==( const Comment& rhs ) const {
  return isSame(rhs);

generator/parser/kdevvarlengtharray.h  view on Meta::CPAN

///Foreach macro that also works with QVarLengthArray or KDevVarLengthArray
///@warning Unlike the Qt foreach macro, this does not temporarily copy the array, which its size must not be changed while the iteration.
#define FOREACH_ARRAY(item, container) for(int a = 0, mustDo = 1; a < container.size(); ++a) if((mustDo == 0 || mustDo == 1) && (mustDo = 2)) for(item(container[a]); mustDo; mustDo = 0)

QT_BEGIN_HEADER

QT_BEGIN_NAMESPACE

QT_MODULE(Core)

//When this is uncommented, a QVector will be used instead of a variable-length array. This is useful for debugging, to find problems in KDevVarLengthArray
// #define FAKE_KDEVVARLENGTH_ARRAY

#ifdef FAKE_KDEVVARLENGTH_ARRAY
template<class T, int Prealloc = 256>
class KDevVarLengthArray : public QVector<T> {
    public:
    ///Inserts the given item at the given position, moving all items behind the position back
    void insert(const T& item, int position) {
    QVector<T>::insert(position, item);
    }

generator/parser/name_compiler.cpp  view on Meta::CPAN


//krazy:excludeall=cpp

#include "name_compiler.h"
#include "type_compiler.h"
#include "lexer.h"
#include "symbol.h"
#include "parsesession.h"
#include "tokens.h"

#include <QtCore/qdebug.h>

///@todo this is very expensive
QString decode(ParseSession* session, AST* ast, bool without_spaces = false)
{
  QString ret;
  if( without_spaces ) {
    //Decode operator-names without spaces for now, since we rely on it in other places.
    ///@todo change this, here and in all the places that rely on it. Operators should then by written like "operator [ ]"(space between each token)
    for( size_t a = ast->start_token; a < ast->end_token; a++ ) {
      ret += session->token_stream->token(a).symbolString();

generator/parser/rpp/appendedlist.h  view on Meta::CPAN

*/

#ifndef APPENDEDLIST_H
#define APPENDEDLIST_H

#include <QtCore/QMutex>
#include <QtCore/QVector>
#include <QtCore/QStack>
#include <QtCore/QPair>
// #include <kglobal.h>
// #include <kdebug.h>
#include "../kdevvarlengtharray.h"
#include <iostream>
#include <time.h>

namespace KDevelop {
class AbstractItemRepository;
/**
 * This file contains macros and classes that can be used to conveniently implement classes that store the data of an arbitrary count
 * of additional lists within the same memory block directly behind the class data, in a way that one the whole data can be stored by one copy-operation
 * to another place, like needed in ItemRepository. These macros simplify having two versions of a class: One that has its lists attached in memory,

generator/parser/rpp/chartools.h  view on Meta::CPAN


///Opposite of convertFromByteArray
CPPPARSER_EXPORT QByteArray stringFromContents(const PreprocessedContents& contents, int offset = 0, int count = 0);

///Opposite of convertFromByteArray
CPPPARSER_EXPORT QByteArray stringFromContents(const uint* contents, int count);

///Return the line at the given line number from the contents
CPPPARSER_EXPORT QByteArray lineFromContents(std::size_t size, const uint* contents, int lineNumber);

///Returns a string that has a gap inserted between the tokens(for debugging)
CPPPARSER_EXPORT QByteArray stringFromContentsWithGaps(const PreprocessedContents& contents, int offset = 0, int count = 0);

///Converts the byte array to a vector of fake-indices containing the text
CPPPARSER_EXPORT PreprocessedContents convertFromByteArray(const QByteArray& array);

///Converts the byte array to a vector of fake-indices containing the text
///This also tokenizes the given array when possible
CPPPARSER_EXPORT PreprocessedContents tokenizeFromByteArray(const QByteArray& array);
#endif

generator/parser/rpp/pp-stream.h  view on Meta::CPAN

    const uint& peek(uint offset = 1) const;
    
    char peekNextCharacter() const {
      const unsigned int* next = c+1;
      if (next >= end || !isCharacter(*next))
        return (char)0;

      return characterFromIndex(*next);
    }

    //Slow, just for debugging
    QByteArray stringFrom(int offset) const;

    /// \warning the input and output lines are not updated when calling this function.
    ///          if you're seek()ing over a line boundary, you'll need to fix the line and column
    ///          numbers.
    void seek(int offset);

    /// Start from the beginning again
    void reset();



( run in 1.641 second using v1.01-cache-2.11-cpan-49f99fa48dc )