Mon May 11 14:07:17 CEST 2009 Tobias Rautenkranz * GCC visibility support for C wrapper symbols diff -rN -u old-qt.core/src/lib/CMakeLists.txt new-qt.core/src/lib/CMakeLists.txt --- old-qt.core/src/lib/CMakeLists.txt 2014-11-16 03:13:43.000000000 +0100 +++ new-qt.core/src/lib/CMakeLists.txt 2014-11-16 03:13:43.000000000 +0100 @@ -2,6 +2,12 @@ set(QT_DONT_USE_QTGUI true) include(${QT_USE_FILE}) +include(CheckCXXCompilerFlag) +check_cxx_compiler_flag("-fvisibility=hidden" CXX_VISIBILITY) +if(CXX_VISIBILITY) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden") +endif(CXX_VISIBILITY) + set(QT_SMOKE_SOURCES qt-smoke.cpp qstring.cpp qstringlist.cpp lisp-object.cpp qlist.cpp) add_library(qt-smoke-extra MODULE ${QT_SMOKE_SOURCES}) target_link_libraries(qt-smoke-extra ${QT_LIBRARIES}) diff -rN -u old-qt.core/src/lib/cl_smoke_qt.h new-qt.core/src/lib/cl_smoke_qt.h --- old-qt.core/src/lib/cl_smoke_qt.h 1970-01-01 01:00:00.000000000 +0100 +++ new-qt.core/src/lib/cl_smoke_qt.h 2014-11-16 03:13:43.000000000 +0100 @@ -0,0 +1,14 @@ +#ifndef CL_SMOKE_QT_H +#define CL_SMOKE_QT_H + +#if defined _WIN32 || defined __CYGWIN__ + #define CL_SMOKE_QT_EXPORT __declspec(dllexport) +#else + #if __GNUC__ >= 4 + #define CL_SMOKE_QT_EXPORT __attribute__((visibility("default"))) + #else + #define CL_SMOKE_QT_EXPORT + #endif +#endif + +#endif // CL_SMOKE_QT_H diff -rN -u old-qt.core/src/lib/lisp-object.h new-qt.core/src/lib/lisp-object.h --- old-qt.core/src/lib/lisp-object.h 2014-11-16 03:13:43.000000000 +0100 +++ new-qt.core/src/lib/lisp-object.h 2014-11-16 03:13:43.000000000 +0100 @@ -6,25 +6,26 @@ #include #include +#include "cl_smoke_qt.h" extern "C" { - int + CL_SMOKE_QT_EXPORT int qt_smoke_setup_lisp_object(void* destruct); - int + CL_SMOKE_QT_EXPORT int qt_smoke_lisp_object_id(const void* object); - int + CL_SMOKE_QT_EXPORT int qt_smoke_lisp_object_set(const void* object); - void* + CL_SMOKE_QT_EXPORT void* qt_smoke_make_lisp_object(int id); - void* + CL_SMOKE_QT_EXPORT void* qt_smoke_free_lisp_object(void* object); - void* + CL_SMOKE_QT_EXPORT void* qt_smoke_lisp_object_value(const void* variant); } diff -rN -u old-qt.core/src/lib/qlist.h new-qt.core/src/lib/qlist.h --- old-qt.core/src/lib/qlist.h 2014-11-16 03:13:43.000000000 +0100 +++ new-qt.core/src/lib/qlist.h 2014-11-16 03:13:43.000000000 +0100 @@ -2,6 +2,7 @@ #define CL_SMOKE_QT_QLIST_H #include +#include "cl_smoke_qt.h" /** @file */ @@ -30,19 +31,19 @@ /** @internal * size, free and make_list. */ #define DEFINE_QLIST_WRAPPER_ALL_PART(NAME, TYPE) \ -int \ +CL_SMOKE_QT_EXPORT int \ qt_smoke_list_ ## NAME ## size(const void* list) \ { \ return static_cast*>(list)->size(); \ } \ \ -void \ +CL_SMOKE_QT_EXPORT void \ qt_smoke_free_list_ ## NAME (void* list) \ { \ delete static_cast*>(list); \ } \ \ -void* \ +CL_SMOKE_QT_EXPORT void* \ qt_smoke_make_list_ ## NAME () \ { \ return new QList< TYPE >(); \ @@ -53,14 +54,14 @@ * At and append for pointer types */ #define DEFINE_QLIST_WRAPPER_PTR_PART(NAME, TYPE) \ -const void* \ +CL_SMOKE_QT_EXPORT const void* \ qt_smoke_list_ ## NAME ## _at(const void* list, int index) \ { \ const QList< TYPE >* qlist = static_cast *>(list); \ return qlist->at(index); \ } \ \ -void \ +CL_SMOKE_QT_EXPORT void \ qt_smoke_list_ ## NAME ## _append(void* list, void* data, int length) \ { \ static_cast*>(list) \ @@ -71,14 +72,14 @@ * At and append for value types. */ #define DEFINE_QLIST_WRAPPER_VALUE_PART(NAME, TYPE) \ -const void* \ +CL_SMOKE_QT_EXPORT const void* \ qt_smoke_list_ ## NAME ## _at(const void* list, int index) \ { \ const QList< TYPE >* qlist = static_cast *>(list); \ return &qlist->at(index); \ } \ \ -void \ +CL_SMOKE_QT_EXPORT void \ qt_smoke_list_ ## NAME ## _append(void* list, void* data, int length) \ { \ static_cast*>(list) \ diff -rN -u old-qt.core/src/lib/qstring.cpp new-qt.core/src/lib/qstring.cpp --- old-qt.core/src/lib/qstring.cpp 2014-11-16 03:13:43.000000000 +0100 +++ new-qt.core/src/lib/qstring.cpp 2014-11-16 03:13:43.000000000 +0100 @@ -1,6 +1,8 @@ #include #include +#include "cl_smoke_qt.h" + /** @file * @brief QString conversion. */ @@ -11,7 +13,7 @@ * * @return a pointer to a newly allocated char array. */ -void* +CL_SMOKE_QT_EXPORT void* qt_smoke_qstring_to_byte_array(const void* qstring) { Q_ASSERT(qstring); @@ -23,7 +25,7 @@ /** Frees an QString. * @param qstring the QString to free */ -void +CL_SMOKE_QT_EXPORT void qt_smoke_free_qstring(void* qstring) { delete static_cast(qstring); @@ -35,7 +37,7 @@ * * @return a newly allocated QString */ -void* +CL_SMOKE_QT_EXPORT void* qt_smoke_string_to_qstring(const char* data, int length) { return new QString(QString::fromLocal8Bit(data, length)); diff -rN -u old-qt.core/src/lib/qstringlist.cpp new-qt.core/src/lib/qstringlist.cpp --- old-qt.core/src/lib/qstringlist.cpp 2014-11-16 03:13:43.000000000 +0100 +++ new-qt.core/src/lib/qstringlist.cpp 2014-11-16 03:13:43.000000000 +0100 @@ -2,6 +2,8 @@ #include #include +#include "cl_smoke_qt.h" + /** @file * @brief QStringList conversion. */ @@ -12,7 +14,7 @@ * * @return the number of items */ -int +CL_SMOKE_QT_EXPORT int qt_smoke_string_list_size(const void* string_list) { Q_ASSERT(string_list); @@ -25,7 +27,7 @@ * * @return a new allocated byte-array */ -void* +CL_SMOKE_QT_EXPORT void* qt_smoke_string_list_at(const void* string_list, int index) { Q_ASSERT(string_list); @@ -39,7 +41,7 @@ /** Free a QStringList. * @param string_list the QStringList to free */ -void +CL_SMOKE_QT_EXPORT void qt_smoke_free_string_list(void* string_list) { delete static_cast(string_list); @@ -49,7 +51,7 @@ * * @return a new QStringList */ -void* +CL_SMOKE_QT_EXPORT void* qt_smoke_make_string_list() { return new QStringList(); @@ -60,7 +62,7 @@ * @param data the string * @param length the length of @a data */ -void +CL_SMOKE_QT_EXPORT void qt_smoke_string_list_append(void* string_list, const char* data, int length) { static_cast(string_list)->append(QString::fromLocal8Bit(data, length)); diff -rN -u old-qt.core/src/lib/qt-smoke.cpp new-qt.core/src/lib/qt-smoke.cpp --- old-qt.core/src/lib/qt-smoke.cpp 2014-11-16 03:13:43.000000000 +0100 +++ new-qt.core/src/lib/qt-smoke.cpp 2014-11-16 03:13:43.000000000 +0100 @@ -2,6 +2,8 @@ #include #include +#include "cl_smoke_qt.h" + /** @file * @brief Qt support functions */ @@ -14,7 +16,7 @@ * * @return @c true on success and @c false when the callback table is full. */ -int +CL_SMOKE_QT_EXPORT int qt_smoke_register_event_notify(void* callback) { Q_ASSERT(callback);