[cmake-developers] [PATCH] Use dllexport and dllimport on Cygwin too

Tony Kelman tony at kelman.net
Thu Aug 27 03:48:18 EDT 2015


First hunk below is from Yaakov Selkowitz, it was reported to be 
necessary to build KF5 in Cygwin. Second hunk fixes the corresponding 
test to account for the change. Currently the MinGW platform reference 
outputs appear to match the Cygwin results here, though a separate new 
pair of reference outputs just for Cygwin could of course work for this 
too.

Thanks,
Tony


diff --git a/Modules/GenerateExportHeader.cmake 
b/Modules/GenerateExportHeader.cmake
index aab29ea..8205425 100644
--- a/Modules/GenerateExportHeader.cmake
+++ b/Modules/GenerateExportHeader.cmake
@@ -268,7 +268,7 @@ macro(_DO_SET_MACRO_VALUES TARGET_LIBRARY)
   get_property(type TARGET ${TARGET_LIBRARY} PROPERTY TYPE)

   if(NOT ${type} STREQUAL "STATIC_LIBRARY")
-    if(WIN32)
+    if(WIN32 OR CYGWIN)
       set(DEFINE_EXPORT "__declspec(dllexport)")
       set(DEFINE_IMPORT "__declspec(dllimport)")
     elseif(COMPILER_HAS_HIDDEN_VISIBILITY AND 
USE_COMPILER_HIDDEN_VISIBILITY)
diff --git a/Tests/Module/GenerateExportHeader/CMakeLists.txt 
b/Tests/Module/GenerateExportHeader/CMakeLists.txt
index b52c44d..8cd25a4 100644
--- a/Tests/Module/GenerateExportHeader/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/CMakeLists.txt
@@ -106,10 +106,10 @@ endif()
 add_executable(GenerateExportHeader exportheader_test.cpp)

 target_link_libraries(GenerateExportHeader ${link_libraries})
-if (WIN32)
+if (WIN32 OR CYGWIN)
   if(MSVC AND COMPILER_HAS_DEPRECATED)
     set(_platform Win32)
-  elseif(MINGW AND COMPILER_HAS_DEPRECATED)
+  elseif((MINGW OR CYGWIN) AND COMPILER_HAS_DEPRECATED)
     set(_platform MinGW)
   else()
     set(_platform WinEmpty)




More information about the cmake-developers mailing list