فهرست منبع

Another attempt at fixing Borland.

Apparently it still needs to be exported, but only declspec(deprecated)
does not work.
Stephen Kelly 14 سال پیش
والد
کامیت
7924c1d6a8

+ 2 - 4
Modules/GenerateExportHeader.cmake

@@ -160,10 +160,8 @@ macro(_DO_SET_MACRO_VALUES TARGET_LIBRARY)
 
   if(NOT ${type} STREQUAL "STATIC_LIBRARY")
     if(WIN32)
-      if (NOT (${CMAKE_CXX_COMPILER_ID} MATCHES Borland))
-        set(DEFINE_EXPORT "__declspec(dllexport)")
-        set(DEFINE_IMPORT "__declspec(dllimport)")
-      endif()
+      set(DEFINE_EXPORT "__declspec(dllexport)")
+      set(DEFINE_IMPORT "__declspec(dllimport)")
     elseif(COMPILER_HAS_HIDDEN_VISIBILITY AND USE_COMPILER_HIDDEN_VISIBILITY)
       set(DEFINE_EXPORT "__attribute__((visibility(\"default\")))")
       set(DEFINE_IMPORT "__attribute__((visibility(\"default\")))")

+ 7 - 2
Tests/Module/GenerateExportHeader/lib_shared_and_statictest/CMakeLists.txt

@@ -17,7 +17,12 @@ endmacro()
 
 static_variant_build_pass("return libshared_and_static_exported();" "Failed to build static variant")
 shared_variant_build_pass("return libshared_and_static_exported();" "Failed to build shared variant")
-shared_variant_build_fail("return libshared_and_static_deprecated();" "Built shared deprecated variant")
-static_variant_build_fail("return libshared_and_static_deprecated();" "Built static deprecated variant")
+if (NOT ${CMAKE_CXX_COMPILER_ID} MATCHES Borland)
+  shared_variant_build_fail("return libshared_and_static_deprecated();" "Built shared deprecated variant")
+  static_variant_build_fail("return libshared_and_static_deprecated();" "Built static deprecated variant")
+else()
+  shared_variant_build_pass("return libshared_and_static_deprecated();" "Built shared deprecated variant")
+  static_variant_build_pass("return libshared_and_static_deprecated();" "Built static deprecated variant")
+endif()
 static_variant_build_pass("return libshared_and_static_not_exported();" "Failed to build static not exported variant")
 shared_variant_build_fail("return libshared_and_static_not_exported();" "Built shared not exported variant")

+ 5 - 1
Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt

@@ -9,7 +9,11 @@ endmacro()
 
 shared_build_pass("Libshared l; return l.libshared_exported();" "Failed to build exported")
 
-shared_build_fail("Libshared l; return l.libshared_deprecated();" "Built use of deprecated class method. This should not be possible.")
+if (NOT ${CMAKE_CXX_COMPILER_ID} MATCHES Borland)
+  shared_build_fail("Libshared l; return l.libshared_deprecated();" "Built use of deprecated class method. This should not be possible.")
+else()
+  shared_build_pass("Libshared l; return l.libshared_deprecated();" "Built use of deprecated class method. This should not be possible.")
+endif()
 if (COMPILER_HAS_HIDDEN_VISIBILITY)
   shared_build_fail("Libshared l; return l.libshared_excluded();" "Built use of excluded class method. This should not be possible.")
 else()

+ 3 - 1
Tests/Module/GenerateExportHeader/libstatictest/CMakeLists.txt

@@ -9,5 +9,7 @@ endmacro()
 
 static_build_pass("Libstatic l; return l.libstatic_exported();" "Failed to build exported.")
 
-static_build_fail("Libstatic l; return l.libstatic_deprecated();" "Built use of deprecated class method. This should not be possible.")
+if (NOT ${CMAKE_CXX_COMPILER_ID} MATCHES Borland)
+  static_build_fail("Libstatic l; return l.libstatic_deprecated();" "Built use of deprecated class method. This should not be possible.")
+endif()
 static_build_fail("libstatic_deprecated();" "Built use of deprecated function. This should not be possible.")