summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2007-05-08 15:53:39 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2007-05-08 15:53:39 (GMT)
commit39ccc4fb11b52a3dbc18d50e19003cd9a708f623 (patch)
treefb24c43b02cc15129c9e33fbf8ed5a8e25bc8e6e
parente6b8aa496a224c92770cb9a7f1cb733f137a611d (diff)
downloadCMake-39ccc4fb11b52a3dbc18d50e19003cd9a708f623.zip
CMake-39ccc4fb11b52a3dbc18d50e19003cd9a708f623.tar.gz
CMake-39ccc4fb11b52a3dbc18d50e19003cd9a708f623.tar.bz2
ENH: fix it so that the FRAMEWORK property does not break the building of normal shared libs on non-mac platforms
-rw-r--r--Source/cmLocalGenerator.cxx5
-rw-r--r--Tests/Framework/CMakeLists.txt10
-rw-r--r--Tests/Framework/bar.cxx5
-rw-r--r--Tests/Framework/foo.cxx6
4 files changed, 18 insertions, 8 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 7479871..05ba04d 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/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);
diff --git a/Tests/Framework/CMakeLists.txt b/Tests/Framework/CMakeLists.txt
index 3aac24d..74871bc 100644
--- a/Tests/Framework/CMakeLists.txt
+++ b/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)
+
diff --git a/Tests/Framework/bar.cxx b/Tests/Framework/bar.cxx
index 37c132a..5c9d612 100644
--- a/Tests/Framework/bar.cxx
+++ b/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();
diff --git a/Tests/Framework/foo.cxx b/Tests/Framework/foo.cxx
index 62acbb7..521f6f2 100644
--- a/Tests/Framework/foo.cxx
+++ b/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");
}