aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2010-08-18 18:11:46 -0300
committerRenato Filho <renato.filho@openbossa.org>2010-08-19 11:37:05 -0300
commitb3d8877b8de94f6ddd166ab0c50acfc43a48574c (patch)
tree4a3be6e8d23c50e453141ae479401536d64dad82
parent224be40cc9c31c381b62f7c1bfdde0f2c3b1fef7 (diff)
Use CMake DEFINES to export symbols.
Reviewer: Hugo Parente Lima <hugo.pl@gmail.com> Luciano Wolf <luciano.wolf@openbossa.org>
-rw-r--r--CMakeLists.txt10
-rw-r--r--libshiboken/CMakeLists.txt2
-rw-r--r--libshiboken/shibokenmacros.h4
3 files changed, 9 insertions, 7 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d698696b5..352b3b7eb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,11 +18,13 @@ option(AVOID_PROTECTED_HACK "Avoid protected hack on generated bindings." FALSE)
option(BUILD_TESTS "Build tests." TRUE)
if(MSVC)
- set(CMAKE_CXX_FLAGS "/DWIN32 /D_WINDOWS /w /EHsc- /GS- /GR- /DLIBSHIBOKEN_BUILD -D_SCL_SECURE_NO_WARNINGS")
-elseif(CMAKE_HOST_UNIX)
- option(ENABLE_GCC_OPTIMIZATION "Enable specific GCC flags to optimization library size and performance. Only available on Release Mode" 0)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fvisibility=hidden")
+ set(CMAKE_CXX_FLAGS "/DWIN32 /D_WINDOWS /w /EHsc- /GS- /GR- -D_SCL_SECURE_NO_WARNINGS")
+else()
+ if(CMAKE_HOST_UNIX)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fvisibility=hidden")
+ endif()
set(CMAKE_CXX_FLAGS_DEBUG "-g")
+ option(ENABLE_GCC_OPTIMIZATION "Enable specific GCC flags to optimization library size and performance. Only available on Release Mode" 0)
if(ENABLE_GCC_OPTIMIZATION)
set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Os -Wno-strict-aliasing -Wl,-O1")
diff --git a/libshiboken/CMakeLists.txt b/libshiboken/CMakeLists.txt
index 7a4576315..26112b9d6 100644
--- a/libshiboken/CMakeLists.txt
+++ b/libshiboken/CMakeLists.txt
@@ -35,7 +35,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}
add_library(libshiboken SHARED ${libshiboken_SRC})
set_property(TARGET libshiboken PROPERTY PREFIX "")
target_link_libraries(libshiboken ${SBK_PYTHON_LIBRARIES})
-set_target_properties(libshiboken PROPERTIES VERSION ${libshiboken_VERSION} SOVERSION ${libshiboken_SOVERSION})
+set_target_properties(libshiboken PROPERTIES VERSION ${libshiboken_VERSION} SOVERSION ${libshiboken_SOVERSION} DEFINE_SYMBOL LIBSHIBOKEN_EXPORTS)
install(FILES
autodecref.h
diff --git a/libshiboken/shibokenmacros.h b/libshiboken/shibokenmacros.h
index f66083bef..5ef1718c5 100644
--- a/libshiboken/shibokenmacros.h
+++ b/libshiboken/shibokenmacros.h
@@ -39,10 +39,10 @@
// LIBSHIBOKEN_LOCAL is used for non-api symbols, i.e. internal functions and classes.
// Generic helper definitions for shared library support
#if defined _WIN32 || defined __CYGWIN__
- #if LIBSHIBOKEN_BUILD
+ #if LIBSHIBOKEN_EXPORTS
#define LIBSHIBOKEN_API __declspec(dllexport)
#else
- #define LIBSHIBOKEN_API __declspec(dllimport)
+ #define LIBSHIBOKEN_API
#endif
#else
#if __GNUC__ >= 4