From ad3243e0751d5ef5521dc5096e17839a6b5707cf Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Wed, 12 May 2010 10:26:37 -0700 Subject: [PATCH] Use a macro to signify building a static lib This if for the app, too. It should define ALURE_STATIC_LIBRARY before including alure.h if it's linking with the static lib. --- CMakeLists.txt | 1 + include/AL/alure.h | 22 +++++++++++++--------- src/alure.cpp | 2 +- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c0418db..ecbb727 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -387,6 +387,7 @@ IF(NOT NO_SHARED) TARGET_LINK_LIBRARIES(${LIBNAME} ${OPENAL_LIBRARIES} ${GST_LIBRARIES} ${EXTRA_LIBS}) ELSE(NOT NO_SHARED) #build a static library + ADD_DEFINITIONS(-DALURE_STATIC_LIBRARY) ADD_LIBRARY(${LIBNAME} STATIC ${ALURE_OBJS}) SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES VERSION ${LIB_VERSION}) ENDIF(NOT NO_SHARED) diff --git a/include/AL/alure.h b/include/AL/alure.h index 31ef570..04107b4 100644 --- a/include/AL/alure.h +++ b/include/AL/alure.h @@ -18,18 +18,22 @@ extern "C" { #endif -#if defined(_WIN32) - #if defined(ALURE_BUILD_LIBRARY) - #define ALURE_API __declspec(dllexport) +#ifndef ALURE_STATIC_LIBRARY + #if defined(_WIN32) + #if defined(ALURE_BUILD_LIBRARY) + #define ALURE_API __declspec(dllexport) + #else + #define ALURE_API __declspec(dllimport) + #endif #else - #define ALURE_API __declspec(dllimport) + #if defined(ALURE_BUILD_LIBRARY) && defined(HAVE_GCC_VISIBILITY) + #define ALURE_API __attribute__((visibility("default"))) + #else + #define ALURE_API extern + #endif #endif #else - #if defined(ALURE_BUILD_LIBRARY) && defined(HAVE_GCC_VISIBILITY) - #define ALURE_API __attribute__((visibility("default"))) - #else - #define ALURE_API extern - #endif + #define ALURE_API #endif #if defined(_WIN32) diff --git a/src/alure.cpp b/src/alure.cpp index 60ae26f..78a9c27 100644 --- a/src/alure.cpp +++ b/src/alure.cpp @@ -101,7 +101,7 @@ MAKE_FUNC(sf_seek); #endif #undef MAKE_FUNC -#if defined(_WIN32) +#if defined(_WIN32) && !defined(ALURE_STATIC_LIBRARY) static void init_alure(void); static void deinit_alure(void); static struct MyConstructorClass { -- 2.11.4.GIT