view release on metacpan or search on metacpan
* 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();