Browse Source

Another attempt at fixing Borland.

Apparently it still needs to be exported, but only declspec(deprecated)
does not work.
Stephen Kelly 14 năm trước cách đây
mục cha
commit
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.")