[Cmake-commits] CMake branch, next, updated. v2.8.8-3270-g31b4764

Brad King brad.king at kitware.com
Wed Jun 20 11:35:22 EDT 2012


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  31b47642977c95e1b45a91db167f0a4329dbf7e9 (commit)
       via  56148fd2bc5ddbf32b89bbf94034ea4b14c6716d (commit)
      from  8d1bb7cf2d6c0505e9827f4da18f5dc754cb6054 (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=31b47642977c95e1b45a91db167f0a4329dbf7e9
commit 31b47642977c95e1b45a91db167f0a4329dbf7e9
Merge: 8d1bb7c 56148fd
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jun 20 11:35:19 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Jun 20 11:35:19 2012 -0400

    Merge topic 'module-no-soname' into next
    
    56148fd Do not crash on SHARED library without language (#13324)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=56148fd2bc5ddbf32b89bbf94034ea4b14c6716d
commit 56148fd2bc5ddbf32b89bbf94034ea4b14c6716d
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jun 20 11:04:35 2012 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 20 11:26:05 2012 -0400

    Do not crash on SHARED library without language (#13324)
    
    Since commit e1409ac5 (Support building shared libraries or modules
    without soname, 2012-04-22) CMake crashes on the code
    
     add_library(foo SHARED foo.nolang)
    
    because the logic to lookup the language's soname flag was moved from
    cmTarget::GetLibraryNames to cmMakefile::GetSONameFlag without its check
    for a NULL language.  Restore the check for NULL.
    
    Add RunCMake.Languages test to cover language error cases like this one.

diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 0a709ae..1d78b3a 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -2197,8 +2197,12 @@ bool cmMakefile::PlatformIs64Bit() const
 
 const char* cmMakefile::GetSONameFlag(const char* language) const
 {
-  std::string name = "CMAKE_SHARED_LIBRARY_SONAME_";
-  name += language;
+  std::string name = "CMAKE_SHARED_LIBRARY_SONAME";
+  if(language)
+    {
+    name += "_";
+    name += language;
+    }
   name += "_FLAG";
   return GetDefinition(name.c_str());
 }
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index 1c6db39..23fc086 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -45,6 +45,7 @@ macro(add_RunCMake_test test)
     )
 endmacro()
 
+add_RunCMake_test(Languages)
 add_RunCMake_test(ObjectLibrary)
 
 add_RunCMake_test(build_command)
diff --git a/Tests/RunCMake/Languages/CMakeLists.txt b/Tests/RunCMake/Languages/CMakeLists.txt
new file mode 100644
index 0000000..e8db6b0
--- /dev/null
+++ b/Tests/RunCMake/Languages/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/Languages/NoLangSHARED-result.txt b/Tests/RunCMake/Languages/NoLangSHARED-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/Languages/NoLangSHARED-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/Languages/NoLangSHARED-stderr.txt b/Tests/RunCMake/Languages/NoLangSHARED-stderr.txt
new file mode 100644
index 0000000..3f93cf8
--- /dev/null
+++ b/Tests/RunCMake/Languages/NoLangSHARED-stderr.txt
@@ -0,0 +1 @@
+CMake Error: CMake can not determine linker language for target:NoLang
diff --git a/Tests/RunCMake/Languages/NoLangSHARED.cmake b/Tests/RunCMake/Languages/NoLangSHARED.cmake
new file mode 100644
index 0000000..de6adf7
--- /dev/null
+++ b/Tests/RunCMake/Languages/NoLangSHARED.cmake
@@ -0,0 +1 @@
+add_library(NoLang SHARED foo.nolang)
diff --git a/Tests/RunCMake/Languages/RunCMakeTest.cmake b/Tests/RunCMake/Languages/RunCMakeTest.cmake
new file mode 100644
index 0000000..a99548f
--- /dev/null
+++ b/Tests/RunCMake/Languages/RunCMakeTest.cmake
@@ -0,0 +1,3 @@
+include(RunCMake)
+
+run_cmake(NoLangSHARED)
diff --git a/Tests/RunCMake/Languages/foo.nolang b/Tests/RunCMake/Languages/foo.nolang
new file mode 100644
index 0000000..e69de29

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

Summary of changes:
 Source/cmMakefile.cxx                              |    8 ++++++--
 Tests/RunCMake/CMakeLists.txt                      |    1 +
 .../{find_package => Languages}/CMakeLists.txt     |    0
 .../NoLangSHARED-result.txt}                       |    0
 Tests/RunCMake/Languages/NoLangSHARED-stderr.txt   |    1 +
 Tests/RunCMake/Languages/NoLangSHARED.cmake        |    1 +
 Tests/RunCMake/Languages/RunCMakeTest.cmake        |    3 +++
 .../hello.f => Tests/RunCMake/Languages/foo.nolang |    0
 8 files changed, 12 insertions(+), 2 deletions(-)
 copy Tests/RunCMake/{find_package => Languages}/CMakeLists.txt (100%)
 copy Tests/RunCMake/{ObjectLibrary/BadObjSource1-result.txt => Languages/NoLangSHARED-result.txt} (100%)
 create mode 100644 Tests/RunCMake/Languages/NoLangSHARED-stderr.txt
 create mode 100644 Tests/RunCMake/Languages/NoLangSHARED.cmake
 create mode 100644 Tests/RunCMake/Languages/RunCMakeTest.cmake
 copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Languages/foo.nolang (100%)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list