From 7924c1d6a8db87ded487e744ba3e8881e8336d00 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Wed, 10 Aug 2011 22:19:39 +0200 Subject: [PATCH] Another attempt at fixing Borland. Apparently it still needs to be exported, but only declspec(deprecated) does not work. --- Modules/GenerateExportHeader.cmake | 6 ++---- .../lib_shared_and_statictest/CMakeLists.txt | 9 +++++++-- .../GenerateExportHeader/libsharedtest/CMakeLists.txt | 6 +++++- .../GenerateExportHeader/libstatictest/CMakeLists.txt | 4 +++- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/Modules/GenerateExportHeader.cmake b/Modules/GenerateExportHeader.cmake index 5ecb80744..c921d8913 100644 --- a/Modules/GenerateExportHeader.cmake +++ b/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\")))") diff --git a/Tests/Module/GenerateExportHeader/lib_shared_and_statictest/CMakeLists.txt b/Tests/Module/GenerateExportHeader/lib_shared_and_statictest/CMakeLists.txt index 2030de68b..d25eed07f 100644 --- a/Tests/Module/GenerateExportHeader/lib_shared_and_statictest/CMakeLists.txt +++ b/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") diff --git a/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt b/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt index 7a05205b4..9edc53fcb 100644 --- a/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt +++ b/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() diff --git a/Tests/Module/GenerateExportHeader/libstatictest/CMakeLists.txt b/Tests/Module/GenerateExportHeader/libstatictest/CMakeLists.txt index 58b875a07..a41b168a6 100644 --- a/Tests/Module/GenerateExportHeader/libstatictest/CMakeLists.txt +++ b/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.")