[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