From ec1c2b16379d657db92c90e25b9e01393267b596 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 14 Sep 2013 18:51:32 +0200 Subject: Clean up preprocessor mingw-isms No functional changes. --- facetracknoir/global-settings.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'facetracknoir/global-settings.h') diff --git a/facetracknoir/global-settings.h b/facetracknoir/global-settings.h index 29a8da62..b2a54e20 100644 --- a/facetracknoir/global-settings.h +++ b/facetracknoir/global-settings.h @@ -1,6 +1,6 @@ #pragma once -#if defined(_WIN32) || defined(__WIN32) +#if defined(_WIN32) # define CALLING_CONVENTION_SUFFIX_VOID_FUNCTION "@0" # ifdef _MSC_VER # define MAYBE_STDCALL_UNDERSCORE "_" @@ -21,7 +21,7 @@ #include "ftnoir_filter_base/ftnoir_filter_base.h" #include "ftnoir_protocol_base/ftnoir_protocol_base.h" -#if defined(_WIN32) || defined(__WIN32) +#if defined(_WIN32) # define CALLING_CONVENTION __stdcall #else # define CALLING_CONVENTION @@ -57,7 +57,7 @@ public: METADATA_FUNCTION Metadata; QString filename; private: -#if defined(_WIN32) || defined(__WIN32) +#if defined(_WIN32) QLibrary* handle; #else void* handle; -- cgit v1.2.3 From 95f7e4c5b9608c550d008c662dc41fa049a6b725 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Wed, 30 Oct 2013 18:24:51 +0100 Subject: clean up the visibility mess in a messiest way possible Signed-off-by: Stanislaw Halik --- CMakeLists.txt | 13 ++++++++----- facetracknoir/global-settings.cpp | 12 ++++++++++++ facetracknoir/global-settings.h | 15 +++++++++++++++ opentrack-api/context.cpp | 15 +++++++++++---- opentrack-api/opentrack-guts.h | 24 +++++++++++++----------- opentrack-api/opentrack.h | 7 ++++++- 6 files changed, 65 insertions(+), 21 deletions(-) (limited to 'facetracknoir/global-settings.h') diff --git a/CMakeLists.txt b/CMakeLists.txt index 239cafb5..1aafaa16 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -154,8 +154,8 @@ else() endif() # main app -file(GLOB opentrack-lib-c "opentrack-api/*.cpp") -file(GLOB opentrack-lib-h "opentrack-api/*.h") +file(GLOB opentrack-lib-c "opentrack-api/*.cpp" "facetracknoir/global-settings.cpp") +file(GLOB opentrack-lib-h "opentrack-api/*.h" "facetracknoir/global-settings.h") file(GLOB opentrack-bin-c "facetracknoir/*.cpp" "facetracknoir/*.rc") file(GLOB opentrack-bin-h "facetracknoir/*.h") @@ -614,9 +614,12 @@ configure_file("${CMAKE_SOURCE_DIR}/opentrack-version.h" "${CMAKE_BINARY_DIR}/op add_library(opentrack-api SHARED ${opentrack-lib-c} ${opentrack-lib-h} ${opentrack-lib-moc}) target_link_libraries(opentrack-api ${MY_QT_LIBS}) -if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) - SET_TARGET_PROPERTIES(opentrack-api - PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/opentrack-api/gnuc-version-script.txt") +if(CMAKE_COMPILER_IS_GNUCXX) + SET_TARGET_PROPERTIES(opentrack-api PROPERTIES + LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/opentrack-api/gnuc-version-script.txt" + COMPILE_FLAGS "-fvisibility=protected -fvisibility-inlines-hidden" + COMPILE_DEFINITIONS IN_OPENTRACK_API + ) endif() set_target_properties(opentrack PROPERTIES COMPILE_DEFINITIONS OPENTRACK_VERSION=\"${OPENTRACK__COMMIT}\") diff --git a/facetracknoir/global-settings.cpp b/facetracknoir/global-settings.cpp index b198f327..42646742 100644 --- a/facetracknoir/global-settings.cpp +++ b/facetracknoir/global-settings.cpp @@ -4,6 +4,12 @@ # include #endif +#ifdef IN_OPENTRACK_API +# ifdef __GNUC__ +# pragma GCC visibility push(protected) +# endif +#endif + SelectedLibraries* Libraries = NULL; SelectedLibraries::~SelectedLibraries() @@ -128,3 +134,9 @@ DynamicLibrary::~DynamicLibrary() (void) dlclose(handle); #endif } + +#ifdef IN_OPENTRACK_API +# ifdef __GNUC__ +# pragma GCC visibility pop +# endif +#endif diff --git a/facetracknoir/global-settings.h b/facetracknoir/global-settings.h index b2a54e20..ea36abac 100644 --- a/facetracknoir/global-settings.h +++ b/facetracknoir/global-settings.h @@ -12,6 +12,14 @@ # define MAYBE_STDCALL_UNDERSCORE "" #endif +#include + +#ifdef IN_OPENTRACK_API +# ifdef __GNUC__ +# pragma GCC visibility push(protected) +# endif +#endif + #include #include #include @@ -83,3 +91,10 @@ public: virtual DynamicLibrary* current_filter() = 0; virtual QFrame* get_video_widget() = 0; }; + + +#ifdef IN_OPENTRACK_API +# ifdef __GNUC__ +# pragma GCC visibility pop +# endif +#endif diff --git a/opentrack-api/context.cpp b/opentrack-api/context.cpp index 100acf5c..1fdf6713 100644 --- a/opentrack-api/context.cpp +++ b/opentrack-api/context.cpp @@ -17,7 +17,10 @@ # define LIB_PREFIX "lib" #endif -// shamelessly copied from core +#ifdef __GNUC__ +# pragma GCC visibility push(protected) +#endif + static Metadata* get_metadata(DynamicLibrary* lib, QString& longName, QIcon& icon) { Metadata* meta; @@ -89,20 +92,24 @@ opentrack_ctx::~opentrack_ctx() extern "C" { -const char** OPENTRACK_EXPORT opentrack_enum_trackers(opentrack ctx) +const char** opentrack_enum_trackers(opentrack ctx) { return const_cast(ctx->list); } -opentrack OPENTRACK_EXPORT opentrack_make_ctx(const char *dir) +opentrack opentrack_make_ctx(const char *dir) { QDir d(dir); return new opentrack_ctx(d); } -void OPENTRACK_EXPORT opentrack_finalize_ctx(opentrack foo) +void opentrack_finalize_ctx(opentrack foo) { delete foo; } } + +#ifdef __GNUC__ +# pragma GCC visibility pop +#endif diff --git a/opentrack-api/opentrack-guts.h b/opentrack-api/opentrack-guts.h index 3f8806cc..01463cfc 100644 --- a/opentrack-api/opentrack-guts.h +++ b/opentrack-api/opentrack-guts.h @@ -1,8 +1,9 @@ #pragma once -#include "ftnoir_tracker_base/ftnoir_tracker_base.h" -#include "facetracknoir/global-settings.h" -#include +#ifdef __GNUC__ +# pragma GCC visibility push(protected) +#endif + #include #include #include @@ -10,16 +11,13 @@ #include #include #include - -#ifdef __GNUC__ -# define OPENTRACK_HIDDEN __attribute__((visibility ("hidden"))) -#else -# define OPENTRACK_HIDDEN -#endif +#include +#include "ftnoir_tracker_base/ftnoir_tracker_base.h" +#include "facetracknoir/global-settings.h" typedef ITracker* opentrack_tracker; -class OPENTRACK_HIDDEN opentrack_meta { +class opentrack_meta { public: Metadata* meta; QString path; @@ -35,7 +33,7 @@ public: } }; -typedef class OPENTRACK_HIDDEN opentrack_ctx { +typedef class opentrack_ctx { public: QDir dir; char** list; @@ -44,3 +42,7 @@ public: opentrack_ctx(QDir& dir); ~opentrack_ctx(); } *opentrack; + +#ifdef __GNUC__ +# pragma GCC visibility pop +#endif diff --git a/opentrack-api/opentrack.h b/opentrack-api/opentrack.h index 8d28b5b8..1c8fcee5 100644 --- a/opentrack-api/opentrack.h +++ b/opentrack-api/opentrack.h @@ -15,7 +15,11 @@ typedef opentrack_opaque_tracker* opentrack_tracker; # ifdef _WIN32 # define OPENTRACK_EXPORT __declspec(dllexport) # else -# define OPENTRACK_EXPORT +# ifdef __GNUC__ +# define OPENTRACK_EXPORT __attribute__((visibility ("default"))) +# else +# define OPENTRACK_EXPORT +# endif # endif #else # ifdef _WIN32 @@ -55,3 +59,4 @@ void opentrack_finalize_tracker(opentrack_tracker tracker); #ifdef __cplusplus } #endif + -- cgit v1.2.3 From 5eb570d1608e2071c0d01412925ac43768770624 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Wed, 30 Oct 2013 18:40:06 +0100 Subject: end this foolishness, a linker script is more than enough Signed-off-by: Stanislaw Halik --- facetracknoir/global-settings.cpp | 12 ------------ facetracknoir/global-settings.h | 13 ------------- opentrack-api/context.cpp | 7 ------- opentrack-api/opentrack-guts.h | 8 -------- 4 files changed, 40 deletions(-) (limited to 'facetracknoir/global-settings.h') diff --git a/facetracknoir/global-settings.cpp b/facetracknoir/global-settings.cpp index 42646742..b198f327 100644 --- a/facetracknoir/global-settings.cpp +++ b/facetracknoir/global-settings.cpp @@ -4,12 +4,6 @@ # include #endif -#ifdef IN_OPENTRACK_API -# ifdef __GNUC__ -# pragma GCC visibility push(protected) -# endif -#endif - SelectedLibraries* Libraries = NULL; SelectedLibraries::~SelectedLibraries() @@ -134,9 +128,3 @@ DynamicLibrary::~DynamicLibrary() (void) dlclose(handle); #endif } - -#ifdef IN_OPENTRACK_API -# ifdef __GNUC__ -# pragma GCC visibility pop -# endif -#endif diff --git a/facetracknoir/global-settings.h b/facetracknoir/global-settings.h index ea36abac..3e24bf74 100644 --- a/facetracknoir/global-settings.h +++ b/facetracknoir/global-settings.h @@ -14,12 +14,6 @@ #include -#ifdef IN_OPENTRACK_API -# ifdef __GNUC__ -# pragma GCC visibility push(protected) -# endif -#endif - #include #include #include @@ -91,10 +85,3 @@ public: virtual DynamicLibrary* current_filter() = 0; virtual QFrame* get_video_widget() = 0; }; - - -#ifdef IN_OPENTRACK_API -# ifdef __GNUC__ -# pragma GCC visibility pop -# endif -#endif diff --git a/opentrack-api/context.cpp b/opentrack-api/context.cpp index 1fdf6713..003377ce 100644 --- a/opentrack-api/context.cpp +++ b/opentrack-api/context.cpp @@ -17,10 +17,6 @@ # define LIB_PREFIX "lib" #endif -#ifdef __GNUC__ -# pragma GCC visibility push(protected) -#endif - static Metadata* get_metadata(DynamicLibrary* lib, QString& longName, QIcon& icon) { Metadata* meta; @@ -110,6 +106,3 @@ void opentrack_finalize_ctx(opentrack foo) } -#ifdef __GNUC__ -# pragma GCC visibility pop -#endif diff --git a/opentrack-api/opentrack-guts.h b/opentrack-api/opentrack-guts.h index 01463cfc..b9c3878b 100644 --- a/opentrack-api/opentrack-guts.h +++ b/opentrack-api/opentrack-guts.h @@ -1,9 +1,5 @@ #pragma once -#ifdef __GNUC__ -# pragma GCC visibility push(protected) -#endif - #include #include #include @@ -42,7 +38,3 @@ public: opentrack_ctx(QDir& dir); ~opentrack_ctx(); } *opentrack; - -#ifdef __GNUC__ -# pragma GCC visibility pop -#endif -- cgit v1.2.3 From c972f37886e3db405f30b713b96a3dedf72675b6 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Tue, 26 Nov 2013 19:42:35 +0100 Subject: add virtual override safety while preserving M$VC brain damage --- facetracknoir/global-settings.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'facetracknoir/global-settings.h') diff --git a/facetracknoir/global-settings.h b/facetracknoir/global-settings.h index 3e24bf74..6b04b73b 100644 --- a/facetracknoir/global-settings.h +++ b/facetracknoir/global-settings.h @@ -12,6 +12,12 @@ # define MAYBE_STDCALL_UNDERSCORE "" #endif +#ifdef _MSC_VER +# define virt_override +#else +# define virt_override override +#endif + #include #include -- cgit v1.2.3