[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2040-g4cb8096
Stephen Kelly
steveire at gmail.com
Fri Feb 8 14:12:07 EST 2013
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via 4cb80962785a0d7fb1701738b527b0f0c3c55a63 (commit)
via faa927e273e04b9aadc13fb1f2b8b307b7383cd2 (commit)
from 7170e4d4deef6179fbebfa19c67d115196149d9d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4cb80962785a0d7fb1701738b527b0f0c3c55a63
commit 4cb80962785a0d7fb1701738b527b0f0c3c55a63
Merge: 7170e4d faa927e
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri Feb 8 14:12:04 2013 -0500
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Feb 8 14:12:04 2013 -0500
Merge topic 'minor-fixes' into next
faa927e Make sure INTERFACE properties work with OBJECT libraries.
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=faa927e273e04b9aadc13fb1f2b8b307b7383cd2
commit faa927e273e04b9aadc13fb1f2b8b307b7383cd2
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri Feb 8 20:10:22 2013 +0100
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Feb 8 20:10:22 2013 +0100
Make sure INTERFACE properties work with OBJECT libraries.
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 59afcb6..bf918d5 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -4781,6 +4781,10 @@ bool isLinkDependentProperty(cmTarget *tgt, const std::string &p,
bool cmTarget::IsLinkInterfaceDependentBoolProperty(const std::string &p,
const char *config)
{
+ if (this->TargetTypeValue == OBJECT_LIBRARY)
+ {
+ return false;
+ }
return (p == "POSITION_INDEPENDENT_CODE") ||
isLinkDependentProperty(this, p, "COMPATIBLE_INTERFACE_BOOL",
config);
@@ -4790,6 +4794,10 @@ bool cmTarget::IsLinkInterfaceDependentBoolProperty(const std::string &p,
bool cmTarget::IsLinkInterfaceDependentStringProperty(const std::string &p,
const char *config)
{
+ if (this->TargetTypeValue == OBJECT_LIBRARY)
+ {
+ return false;
+ }
return isLinkDependentProperty(this, p, "COMPATIBLE_INTERFACE_STRING",
config);
}
diff --git a/Tests/ObjectLibrary/B/CMakeLists.txt b/Tests/ObjectLibrary/B/CMakeLists.txt
index 32d8ceb..a567f96 100644
--- a/Tests/ObjectLibrary/B/CMakeLists.txt
+++ b/Tests/ObjectLibrary/B/CMakeLists.txt
@@ -10,7 +10,11 @@ if(CMAKE_SHARED_LIBRARY_C_FLAGS AND NOT WATCOM)
set(CMAKE_C_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS} ${CMAKE_C_FLAGS}")
endif()
-add_definitions(-DB_DEF)
add_library(B OBJECT b1.c b2.c)
+target_include_directories(B PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+target_compile_definitions(B PUBLIC B_DEF)
+
add_library(Bexport OBJECT b1${vs6}.c b2${vs6}.c)
set_property(TARGET Bexport PROPERTY COMPILE_DEFINITIONS Bexport)
+target_include_directories(Bexport PRIVATE $<TARGET_PROPERTY:B,INTERFACE_INCLUDE_DIRECTORIES>)
+target_compile_definitions(Bexport PRIVATE $<TARGET_PROPERTY:B,INTERFACE_COMPILE_DEFINITIONS>)
diff --git a/Tests/ObjectLibrary/B/b.h b/Tests/ObjectLibrary/B/b.h
index 11b22f4..3489c71 100644
--- a/Tests/ObjectLibrary/B/b.h
+++ b/Tests/ObjectLibrary/B/b.h
@@ -4,8 +4,15 @@
#ifndef B_DEF
# error "B_DEF not defined"
#endif
+
#if defined(_WIN32) && defined(Bexport)
# define EXPORT_B __declspec(dllexport)
#else
# define EXPORT_B
#endif
+
+#if defined(_WIN32) && defined(SHARED_B)
+# define IMPORT_B __declspec(dllimport)
+#else
+# define IMPORT_B
+#endif
diff --git a/Tests/ObjectLibrary/CMakeLists.txt b/Tests/ObjectLibrary/CMakeLists.txt
index 8723415..13a07b4 100644
--- a/Tests/ObjectLibrary/CMakeLists.txt
+++ b/Tests/ObjectLibrary/CMakeLists.txt
@@ -26,6 +26,9 @@ endif()
# Test static library without its own sources.
add_library(ABstatic STATIC ${dummy} $<TARGET_OBJECTS:A> $<TARGET_OBJECTS:B>)
+target_include_directories(ABstatic PUBLIC $<TARGET_PROPERTY:B,INTERFACE_INCLUDE_DIRECTORIES>)
+target_compile_definitions(ABstatic PUBLIC $<TARGET_PROPERTY:B,INTERFACE_COMPILE_DEFINITIONS>)
+
add_executable(UseABstatic mainAB.c)
target_link_libraries(UseABstatic ABstatic)
@@ -41,12 +44,17 @@ endif()
# Test shared library without its own sources.
add_library(ABshared SHARED ${dummy} ${ABshared_SRCS})
+target_include_directories(ABshared PUBLIC $<TARGET_PROPERTY:B,INTERFACE_INCLUDE_DIRECTORIES>)
+target_compile_definitions(ABshared PUBLIC $<TARGET_PROPERTY:B,INTERFACE_COMPILE_DEFINITIONS>)
+
add_executable(UseABshared mainAB.c)
set_property(TARGET UseABshared PROPERTY COMPILE_DEFINITIONS SHARED_B ${NO_A})
target_link_libraries(UseABshared ABshared)
# Test executable without its own sources.
add_library(ABmain OBJECT mainAB.c)
+target_include_directories(ABmain PUBLIC $<TARGET_PROPERTY:B,INTERFACE_INCLUDE_DIRECTORIES>)
+target_compile_definitions(ABmain PUBLIC $<TARGET_PROPERTY:B,INTERFACE_COMPILE_DEFINITIONS>)
add_executable(UseABinternal ${dummy}
$<TARGET_OBJECTS:ABmain> $<TARGET_OBJECTS:A> $<TARGET_OBJECTS:B>
)
diff --git a/Tests/ObjectLibrary/mainAB.c b/Tests/ObjectLibrary/mainAB.c
index 556898b..38db205 100644
--- a/Tests/ObjectLibrary/mainAB.c
+++ b/Tests/ObjectLibrary/mainAB.c
@@ -1,8 +1,6 @@
-#if defined(_WIN32) && defined(SHARED_B)
-# define IMPORT_B __declspec(dllimport)
-#else
-# define IMPORT_B
-#endif
+
+#include "b.h"
+
extern IMPORT_B int b1(void);
extern IMPORT_B int b2(void);
#ifndef NO_A
-----------------------------------------------------------------------
Summary of changes:
Source/cmTarget.cxx | 8 ++++++++
Tests/ObjectLibrary/B/CMakeLists.txt | 6 +++++-
Tests/ObjectLibrary/B/b.h | 7 +++++++
Tests/ObjectLibrary/CMakeLists.txt | 8 ++++++++
Tests/ObjectLibrary/mainAB.c | 8 +++-----
5 files changed, 31 insertions(+), 6 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list