From 82ad173cb703737b06e08a3d8858b641fe5027a6 Mon Sep 17 00:00:00 2001 From: Adam Wardynski <award@.(B-4.4.46a)> Date: Mon, 15 Nov 2010 13:52:23 +0100 Subject: [PATCH] On 2nd thoughts, move STATIC vs SHARED on WIN32 stuff locally --- CMakeLists.txt | 18 ------------------ libcorpus2/CMakeLists.txt | 11 ++++++++++- libpwrutils/CMakeLists.txt | 11 ++++++++++- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a2d104..957ae54 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,24 +53,6 @@ FIND_PATH(LIBCORPUS2_SRC_DATA_DIR ) MARK_AS_ADVANCED(LIBCORPUS2_SRC_DATA_DIR) -# For DLLs on Windows (aka SHARED libraries) you have to explicitly -# specify the external API of the library. Nothing is exported -# by default. -# For UNIX on the other hand everything is exported by default. -# We were building libraries SHARED but without specyfing -# external API. It worked on UNIX but not on Windows. -# This is changed now so add_library entries do not specify library -# type and therefore use default. Below, the default is set -# to build SHARED libs on anything but WIN32, so for Windows/cygwin -# we are building STATIC (todo: is cygwin ok w/o externs?) -# To make DLLs on Windows, exports have to be defined and then -# add_library entry changed to state SHARED for given library. -# Once this is done for all libraries, and all are marked -# explicitly as SHARED, the below will won't make a difference. -if(NOT WIN32) - set(BUILD_SHARED_LIBS TRUE) -endif(NOT WIN32) - add_subdirectory(libpwrutils) add_subdirectory(libcorpus2) add_subdirectory(tagset-tool) diff --git a/libcorpus2/CMakeLists.txt b/libcorpus2/CMakeLists.txt index 50e5d29..a365c73 100644 --- a/libcorpus2/CMakeLists.txt +++ b/libcorpus2/CMakeLists.txt @@ -68,7 +68,16 @@ SET(libcorpus2_STAT_SRC file(GLOB_RECURSE INCS "*.h") -add_library(corpus2 ${libcorpus2_STAT_SRC} ${INCS}) +if(WIN32) +# For DLLs on Windows (aka SHARED libraries) you have to explicitly +# specify the external API of the library. Nothing is exported +# by default. +# For UNIX on the other hand everything is exported by default. +# Until external API is specified explicitly, build STATIC for WIN32 + add_library(corpus2 STATIC ${libcorpus2_STAT_SRC} ${INCS}) +else(WIN32) + add_library(corpus2 SHARED ${libcorpus2_STAT_SRC} ${INCS}) +endif(WIN32) target_link_libraries(corpus2 ${LIBS}) set_target_properties(corpus2 PROPERTIES VERSION "${corpus2_ver_major}.${corpus2_ver_minor}" diff --git a/libpwrutils/CMakeLists.txt b/libpwrutils/CMakeLists.txt index 0e969a0..7d0f27d 100644 --- a/libpwrutils/CMakeLists.txt +++ b/libpwrutils/CMakeLists.txt @@ -34,7 +34,16 @@ SET(libpwrutils_STAT_SRC file(GLOB_RECURSE INCS "*.h") -add_library(pwrutils ${libpwrutils_STAT_SRC} ${INCS}) +if(WIN32) +# For DLLs on Windows (aka SHARED libraries) you have to explicitly +# specify the external API of the library. Nothing is exported +# by default. +# For UNIX on the other hand everything is exported by default. +# Until external API is specified explicitly, build STATIC for WIN32 + add_library(pwrutils STATIC ${libpwrutils_STAT_SRC} ${INCS}) +else(WIN32) + add_library(pwrutils SHARED ${libpwrutils_STAT_SRC} ${INCS}) +endif(WIN32) target_link_libraries(pwrutils ${LIBS} ) set_target_properties(pwrutils PROPERTIES VERSION "${pwrutils_ver_major}.${pwrutils_ver_minor}" -- GitLab