[Cmake-commits] CMake branch, next, updated. v2.8.11.2-3220-g6144dce
Stephen Kelly
steveire at gmail.com
Thu Jul 18 11:52:11 EDT 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 6144dceb490a72d0d39d2ecbeec01d0bbe2cf744 (commit)
via 227a32fe40196a06b0b818169d4f24346ebb251b (commit)
from 2920df8ef85edf4c46796dde732dabc4ad3e1185 (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=6144dceb490a72d0d39d2ecbeec01d0bbe2cf744
commit 6144dceb490a72d0d39d2ecbeec01d0bbe2cf744
Merge: 2920df8 227a32f
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Jul 18 11:52:08 2013 -0400
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Thu Jul 18 11:52:08 2013 -0400
Merge topic 'framework-interface-includes' into next
227a32f Use linked frameworks as a source of include directories.
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=227a32fe40196a06b0b818169d4f24346ebb251b
commit 227a32fe40196a06b0b818169d4f24346ebb251b
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Jul 8 16:59:03 2013 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Thu Jul 18 17:51:45 2013 +0200
Use linked frameworks as a source of include directories.
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index a90fa74..51decbe 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -3206,6 +3206,39 @@ std::vector<std::string> cmTarget::GetIncludeDirectories(const char *config)
new cmTargetInternals::TargetPropertyEntry(cge,
it->Value));
}
+
+ if(this->Makefile->IsOn("APPLE"))
+ {
+ LinkImplementation const* impl = this->GetLinkImplementation(config,
+ this);
+ for(std::vector<std::string>::const_iterator
+ it = impl->Libraries.begin();
+ it != impl->Libraries.end(); ++it)
+ {
+ std::string libDir = *it;
+ libDir += "/../";
+ libDir = cmSystemTools::CollapseFullPath(libDir.c_str());
+ // This could be foo/framework/foo ...
+ bool isFramework = cmSystemTools::IsPathToFramework(libDir.c_str());
+ if (!isFramework)
+ {
+ // ... or foo.framework/Versions/A/foo
+ // or foo.framework/Versions/Current/foo
+ libDir += "/../..";
+ libDir = cmSystemTools::CollapseFullPath(libDir.c_str());
+ isFramework = cmSystemTools::IsPathToFramework(libDir.c_str());
+ }
+ if(isFramework)
+ {
+ cmGeneratorExpression ge(lfbt);
+ cmsys::auto_ptr<cmCompiledGeneratorExpression> cge =
+ ge.Parse(libDir);
+ this->Internal
+ ->CachedLinkInterfaceIncludeDirectoriesEntries[configString]
+ .push_back(new cmTargetInternals::TargetPropertyEntry(cge));
+ }
+ }
+ }
}
processIncludeDirectories(this,
diff --git a/Source/cmTargetLinkLibrariesCommand.h b/Source/cmTargetLinkLibrariesCommand.h
index c683016..68552cf 100644
--- a/Source/cmTargetLinkLibrariesCommand.h
+++ b/Source/cmTargetLinkLibrariesCommand.h
@@ -109,6 +109,11 @@ public:
" INTERFACE_POSITION_INDEPENDENT_CODE: Sets POSITION_INDEPENDENT_CODE\n"
" or checked for consistency with existing value\n"
"\n"
+ "If an <item> is a library in a Mac OX framework, the Headers "
+ "directory of the framework will also be processed as a \"usage "
+ "requirement\". This has the same effect as passing the framework "
+ "directory as an include directory."
+ "\n"
" target_link_libraries(<target> LINK_INTERFACE_LIBRARIES\n"
" [[debug|optimized|general] <lib>] ...)\n"
"The LINK_INTERFACE_LIBRARIES mode appends the libraries "
diff --git a/Tests/ExportImport/Export/CMakeLists.txt b/Tests/ExportImport/Export/CMakeLists.txt
index efecd03..05a061b 100644
--- a/Tests/ExportImport/Export/CMakeLists.txt
+++ b/Tests/ExportImport/Export/CMakeLists.txt
@@ -280,6 +280,12 @@ install(
FRAMEWORK DESTINATION Frameworks
BUNDLE DESTINATION Applications
)
+if (APPLE)
+ file(COPY testLib4.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/testLib4.framework/Headers)
+ file(COPY testLib4.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Debug/testLib4.framework/Headers)
+ file(COPY testLib4.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Release/testLib4.framework/Headers)
+ install(FILES testLib4.h DESTINATION Frameworks/testLib4.framework/Headers)
+endif()
install(
TARGETS
testExe2libImp testLib3Imp
diff --git a/Tests/ExportImport/Export/testLib4.h b/Tests/ExportImport/Export/testLib4.h
new file mode 100644
index 0000000..9eeda7c
--- /dev/null
+++ b/Tests/ExportImport/Export/testLib4.h
@@ -0,0 +1,2 @@
+
+#define TESTLIB4_H
diff --git a/Tests/ExportImport/Import/A/CMakeLists.txt b/Tests/ExportImport/Import/A/CMakeLists.txt
index 3bfbc46..a02ad39 100644
--- a/Tests/ExportImport/Import/A/CMakeLists.txt
+++ b/Tests/ExportImport/Import/A/CMakeLists.txt
@@ -200,6 +200,10 @@ if (run_pic_test)
target_compile_definitions(deps_shared_iface PRIVATE CHECK_PIC_WORKS)
endif()
+if(APPLE)
+ add_subdirectory(framework_interface)
+endif()
+
#-----------------------------------------------------------------------------
# Test that targets imported from the build tree have their dependencies
# evaluated correctly. The above already tests the same for the install tree.
diff --git a/Tests/ExportImport/Import/A/framework_interface/CMakeLists.txt b/Tests/ExportImport/Import/A/framework_interface/CMakeLists.txt
new file mode 100644
index 0000000..0e00655
--- /dev/null
+++ b/Tests/ExportImport/Import/A/framework_interface/CMakeLists.txt
@@ -0,0 +1,9 @@
+
+add_library(exp_framework_test framework_test.cpp)
+get_target_property(exp_loc exp_testLib4 LOCATION)
+target_link_libraries(exp_framework_test ${exp_loc})
+
+
+add_library(bld_framework_test framework_test.cpp)
+get_target_property(bld_loc bld_testLib4 LOCATION)
+target_link_libraries(bld_framework_test ${bld_loc})
diff --git a/Tests/ExportImport/Import/A/framework_interface/framework_test.cpp b/Tests/ExportImport/Import/A/framework_interface/framework_test.cpp
new file mode 100644
index 0000000..357f64f
--- /dev/null
+++ b/Tests/ExportImport/Import/A/framework_interface/framework_test.cpp
@@ -0,0 +1,6 @@
+
+#include <testLib4/testLib4.h>
+
+#ifndef TESTLIB4_H
+#error Expected define TESTLIB4_H
+#endif
-----------------------------------------------------------------------
Summary of changes:
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list