Parcourir la source

ENH: fix it so that the FRAMEWORK property does not break the building of normal shared libs on non-mac platforms

Bill Hoffman il y a 18 ans
Parent
commit
39ccc4fb11

+ 5 - 0
Source/cmLocalGenerator.cxx

@@ -1728,7 +1728,12 @@ void cmLocalGenerator
           // off the per-configuration subdirectory.  The link directory
           // ordering knows how to deal with this.
           linkItem += tgt->GetDirectory(0, implib);
+          // on apple if the FRAMEWORK prop is set, then
+          // do not add the target full name but just use the directory
+          // name
+#ifdef __APPLE__
           if(!tgt->GetPropertyAsBool("FRAMEWORK"))
+#endif
             { 
             linkItem += "/";
             linkItem += tgt->GetFullName(config, implib);

+ 5 - 5
Tests/Framework/CMakeLists.txt

@@ -1,11 +1,11 @@
 project(Framework)
 add_library(foo SHARED foo.cxx)
 set_target_properties(foo PROPERTIES 
-                          FRAMEWORK TRUE
-                          FRAMEWORK_PUBLIC_HEADERS "foo.h;foo2.h"
-                          FRAMEWORK_VERSION ver2
-                          FRAMEWORK_RESOURCES ""
-#                          VERSION 1.2
+  FRAMEWORK TRUE
+  FRAMEWORK_PUBLIC_HEADERS "foo.h;foo2.h"
+  FRAMEWORK_VERSION ver2
+  FRAMEWORK_RESOURCES ""
 )
 add_executable(bar bar.cxx)
 target_link_libraries(bar foo)
+ 

+ 4 - 1
Tests/Framework/bar.cxx

@@ -1,4 +1,7 @@
-void foo();
+#ifdef _WIN32
+#  define CM_TEST_LIB_IMPORT  __declspec( dllimport )
+#endif
+CM_TEST_LIB_IMPORT void foo();
 int main()
 {
   foo();

+ 4 - 2
Tests/Framework/foo.cxx

@@ -1,6 +1,8 @@
 #include <stdio.h>
-
-void foo()
+#ifdef _WIN32
+#  define CM_TEST_LIB_EXPORT  __declspec( dllexport )
+#endif
+CM_TEST_LIB_EXPORT void foo()
 {
   printf("foo\n");
 }