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