56148fd Do not crash on SHARED library without language (#13324)
@@ -2203,8 +2203,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());
}
@@ -45,6 +45,7 @@ macro(add_RunCMake_test test)
)
endmacro()
+add_RunCMake_test(Languages)
add_RunCMake_test(ObjectLibrary)
add_RunCMake_test(build_command)
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)
@@ -0,0 +1 @@
+1
+CMake Error: CMake can not determine linker language for target:NoLang
+add_library(NoLang SHARED foo.nolang)
+include(RunCMake)
+
+run_cmake(NoLangSHARED)