[Cmake-commits] CMake branch, next, updated. v2.8.12.1-6141-gf9cd8dd

Stephen Kelly steveire at gmail.com
Mon Dec 9 14:53:12 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  f9cd8dd68e193ba424a688e047648c700e26dde0 (commit)
       via  3b8e56a50f7f608f7a93f8ecf23392cc2cda4868 (commit)
      from  675d9d1ae559a4582c3f2759555f4f1368b638ff (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=f9cd8dd68e193ba424a688e047648c700e26dde0
commit f9cd8dd68e193ba424a688e047648c700e26dde0
Merge: 675d9d1 3b8e56a
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Dec 9 14:53:10 2013 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Dec 9 14:53:10 2013 -0500

    Merge topic 'fix-INTERFACE-mapped-config' into next
    
    3b8e56a Don't search for IMPORTED_LOCATION of INTERFACE_LIBRARY (14636)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3b8e56a50f7f608f7a93f8ecf23392cc2cda4868
commit 3b8e56a50f7f608f7a93f8ecf23392cc2cda4868
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Dec 9 19:12:57 2013 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Mon Dec 9 20:52:52 2013 +0100

    Don't search for IMPORTED_LOCATION of INTERFACE_LIBRARY (14636)
    
    The INTERFACE_LIBRARY type does not have any LOCATION at all, so
    return early from GetMappedConfig. GetMappedConfig is called from
    two locations, one of which already pre-checks the INTERFACE_LIBRARY
    case. Remove that pre-check and handle that case inside the method
    instead.

diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 38fe945..51ee31a 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -4860,6 +4860,15 @@ bool cmTarget::GetMappedConfig(std::string const& desired_config,
                                const char** imp,
                                std::string& suffix) const
 {
+  if (this->GetType() == INTERFACE_LIBRARY)
+    {
+    // This method attempts to find a config-specific LOCATION for the
+    // IMPORTED library. In the case of INTERFACE_LIBRARY, there is no
+    // LOCATION at all, so leaving *loc and *imp unchanged is the appropriate
+    // and valid response.
+    return true;
+    }
+
   // Track the configuration-specific property suffix.
   suffix = "_";
   suffix += desired_config;
@@ -4992,8 +5001,7 @@ void cmTarget::ComputeImportInfo(std::string const& desired_config,
   const char* loc = 0;
   const char* imp = 0;
   std::string suffix;
-  if (this->GetType() != INTERFACE_LIBRARY &&
-      !this->GetMappedConfig(desired_config, &loc, &imp, suffix))
+  if (!this->GetMappedConfig(desired_config, &loc, &imp, suffix))
     {
     return;
     }
diff --git a/Tests/RunCMake/interface_library/RunCMakeTest.cmake b/Tests/RunCMake/interface_library/RunCMakeTest.cmake
index e257fb3..0d00b71 100644
--- a/Tests/RunCMake/interface_library/RunCMakeTest.cmake
+++ b/Tests/RunCMake/interface_library/RunCMakeTest.cmake
@@ -4,3 +4,4 @@ run_cmake(invalid_name)
 run_cmake(target_commands)
 run_cmake(no_shared_libs)
 run_cmake(whitelist)
+run_cmake(genex_link)
diff --git a/Tests/RunCMake/interface_library/genex_link-result.txt b/Tests/RunCMake/interface_library/genex_link-result.txt
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/Tests/RunCMake/interface_library/genex_link-result.txt
@@ -0,0 +1 @@
+0
diff --git a/Tests/RunCMake/interface_library/genex_link-stderr.txt b/Tests/RunCMake/interface_library/genex_link-stderr.txt
new file mode 100644
index 0000000..10f3293
--- /dev/null
+++ b/Tests/RunCMake/interface_library/genex_link-stderr.txt
@@ -0,0 +1 @@
+^$
diff --git a/Tests/RunCMake/interface_library/genex_link.cmake b/Tests/RunCMake/interface_library/genex_link.cmake
new file mode 100644
index 0000000..0dbf029
--- /dev/null
+++ b/Tests/RunCMake/interface_library/genex_link.cmake
@@ -0,0 +1,22 @@
+
+cmake_minimum_required(VERSION 2.8.12.20131125 FATAL_ERROR)
+
+project(genex_link)
+
+set(_main_cpp ${CMAKE_CURRENT_BINARY_DIR}/main.cpp)
+file(WRITE ${_main_cpp}
+  "int main(int argc, char** argv) { return 0; }\n"
+)
+
+add_library(foo::bar INTERFACE IMPORTED)
+set_target_properties(foo::bar
+  PROPERTIES
+    INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}"
+    # When not using a generator expression here, no error is generated
+    INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:foo_bar.lib>"
+)
+
+add_executable(main ${_main_cpp})
+target_include_directories(main PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}")
+
+target_link_libraries(main foo::bar)

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list