aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrenato araujo oliveira <renato@renato-note.(none)>2009-11-24 11:46:18 -0300
committerrenato araujo oliveira <renato@renato-note.(none)>2009-11-24 11:46:18 -0300
commitb2519fa1f17be24956772f5a5101a914cbbdb77d (patch)
treed14317a5420c9836afea23c3eb775fa6306526de
parent9a434d34ee73e69db79fa1bba0c9443404653546 (diff)
parent302029e093c88fb46cea8d6131726b82731110f9 (diff)
Merge commit 'mainline/master'
-rw-r--r--CMakeLists.txt13
-rw-r--r--FindGeneratorRunner.cmake.in18
-rw-r--r--generator.cpp2
-rw-r--r--generator.h4
-rw-r--r--generatorrunnermacros.h12
-rw-r--r--main.cpp4
6 files changed, 36 insertions, 17 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 48de3d339..ef6cdbb50 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,7 +5,12 @@ cmake_minimum_required(VERSION 2.6)
find_package(Qt4 4.5.0 REQUIRED)
find_package(ApiExtractor REQUIRED)
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -DGENRUNNER_BUILD -fvisibility=hidden")
+if (MSVC)
+ set(CMAKE_CXX_FLAGS "/DWIN32 /D_WINDOWS /w /EHsc- /GS- /GR- /DGENRUNNER_BUILD -D_SCL_SECURE_NO_WARNINGS")
+else (MSVC)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fvisibility=hidden")
+endif(MSVC)
+
set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
@@ -62,14 +67,16 @@ add_custom_target(dist
| bzip2 > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar.bz2
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
-install(TARGETS genrunner DESTINATION ${LIB_INSTALL_DIR})
+install(TARGETS genrunner LIBRARY DESTINATION ${LIB_INSTALL_DIR}
+ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
+ RUNTIME DESTINATION bin)
install(TARGETS generatorrunner DESTINATION bin)
install(FILES generator.h DESTINATION include/generatorrunner)
install(FILES generatorrunnermacros.h DESTINATION include/generatorrunner)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/generatorrunner.pc DESTINATION
${LIB_INSTALL_DIR}/pkgconfig)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FindGeneratorRunner.cmake
- DESTINATION share/cmake-2.6/Modules)
+ DESTINATION "share/cmake-${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}/Modules")
#FIXME: manpages should be installed only on Linux targets
file(GLOB manpages ${CMAKE_CURRENT_SOURCE_DIR}/*.1)
diff --git a/FindGeneratorRunner.cmake.in b/FindGeneratorRunner.cmake.in
index 8920ca72d..3c975e304 100644
--- a/FindGeneratorRunner.cmake.in
+++ b/FindGeneratorRunner.cmake.in
@@ -3,13 +3,19 @@
# GENERATORRUNNER_LIBRARIES - Files to link against to use GENERATORRUNNER
# GENERATORRUNNER_FOUND - GENERATORRUNNER was found
-FIND_PATH(GENERATORRUNNER_INCLUDE_DIR generator.h @CMAKE_INSTALL_PREFIX@/include/generatorrunner)
+FIND_PATH(GENERATORRUNNER_INCLUDE_DIR generator.h "@CMAKE_INSTALL_PREFIX@/include/generatorrunner")
+FIND_LIBRARY(GENERATORRUNNER_LIBRARY genrunner "@LIB_INSTALL_DIR@")
-FIND_LIBRARY(GENERATORRUNNER_LIBRARY genrunner @CMAKE_INSTALL_PREFIX@/lib)
+IF (GENERATORRUNNER_INCLUDE_DIR AND GENERATORRUNNER_LIBRARY)
+ SET(GENERATORRUNNER_FOUND TRUE)
+ENDIF (GENERATORRUNNER_INCLUDE_DIR AND GENERATORRUNNER_LIBRARY)
-SET(GENERATORRUNNER_FOUND "NO")
-IF(GENERATORRUNNER_LIBRARY AND GENERATORRUNNER_INCLUDE_DIR)
- SET(GENERATORRUNNER_FOUND "YES")
+IF (GENERATORRUNNER_FOUND)
+ MESSAGE(STATUS "Found GeneratorRunner: ${GENERATORRUNNER_LIBRARY}")
SET(GENERATORRUNNER_PLUGIN_DIR @generator_plugin_DIR@)
SET(GENERATORRUNNER_VERSION "@generator_VERSION@")
-ENDIF(GENERATORRUNNER_LIBRARY AND GENERATORRUNNER_INCLUDE_DIR)
+ELSE (GENERATORRUNNER_FOUND)
+ IF (GeneratorRunner_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find GeneratorRunner")
+ ENDIF (GeneratorRunner_FIND_REQUIRED)
+ENDIF (GENERATORRUNNER_FOUND)
diff --git a/generator.cpp b/generator.cpp
index 636eb5b88..99a74d301 100644
--- a/generator.cpp
+++ b/generator.cpp
@@ -356,6 +356,8 @@ QTextStream& formatCode(QTextStream &s, const QString& code, Indentor &indentor)
}
foreach(QString line, lst) {
+ while (line.end()->isSpace())
+ line.chop(1);
int limit = 0;
for(int i = 0; i < spacesToRemove; ++i) {
if (!line[i].isSpace())
diff --git a/generator.h b/generator.h
index ee51cb87a..53e05e8c5 100644
--- a/generator.h
+++ b/generator.h
@@ -35,9 +35,9 @@ class AbstractMetaBuilder;
class QFile;
#define EXPORT_GENERATOR_PLUGIN(X)\
-extern "C" GENRUNNER_API GeneratorList getGenerators()\
+extern "C" GENRUNNER_EXPORT void getGenerators(GeneratorList* list)\
{\
- return GeneratorList() << X;\
+ *list << X;\
}\
GENRUNNER_API
diff --git a/generatorrunnermacros.h b/generatorrunnermacros.h
index 8f801f06d..c68f328d3 100644
--- a/generatorrunnermacros.h
+++ b/generatorrunnermacros.h
@@ -26,18 +26,22 @@
// GENRUNNER_API is used for the public API symbols.
#if defined _WIN32 || defined __CYGWIN__
+ #define GENRUNNER_EXPORT __declspec(dllexport)
#if GENRUNNER_BUILD
- #define GENRUNNER_API __declspec(dllimport)
+ #define GENRUNNER_API GENRUNNER_EXPORT
#else
- #define GENRUNNER_API __declspec(dllexport)
+ #define GENRUNNER_API __declspec(dllimport)
#endif
+ // dont worry about deprecated functions under windows
+ #define GENRUNNER_DEPRECATED
#else
+ #define GENRUNNER_EXPORT __attribute__ ((visibility("default")))
#if __GNUC__ >= 4
- #define GENRUNNER_API __attribute__ ((visibility("default")))
+ #define GENRUNNER_API GENRUNNER_EXPORT
#else
#define GENRUNNER_API
#endif
+ #define GENRUNNER_DEPRECATED __attribute__ ((deprecated))
#endif
-#define GENRUNNER_DEPRECATED __attribute__ ((deprecated))
#endif
diff --git a/main.cpp b/main.cpp
index af0609345..7c690294d 100644
--- a/main.cpp
+++ b/main.cpp
@@ -48,7 +48,7 @@ static void printOptions(QTextStream& s, const QMap<QString, QString>& options)
}
}
-typedef QLinkedList<Generator*> (*getGeneratorsFunc)();
+typedef void (*getGeneratorsFunc)(QLinkedList<Generator*>*);
QMap<QString, QString> getCommandLineArgs(int argc, char** argv)
{
@@ -129,7 +129,7 @@ int main(int argc, char *argv[])
QLibrary plugin(generatorFile);
getGeneratorsFunc getGenerators = (getGeneratorsFunc)plugin.resolve("getGenerators");
if (getGenerators)
- generators = getGenerators();
+ getGenerators(&generators);
else {
std::cerr << argv[0] << ": Error loading generatorset plugin: " << qPrintable(plugin.errorString()) << std::endl;
return EXIT_FAILURE;