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

This commit is contained in:
Bill Hoffman 2007-05-08 11:53:39 -04:00
parent e6b8aa496a
commit 39ccc4fb11
4 changed files with 18 additions and 8 deletions

View File

@ -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);

View File

@ -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)

View File

@ -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();

View File

@ -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");
}