Merge topic 'dev/test-for-bug-11230'

96a335f XCode generation should fail if lang isn't known
d3a8943 Fix which string is checked for in the test
220c5dc Add test that CMake errors with empty libs
This commit is contained in:
Brad King 2010-10-05 15:30:10 -04:00 committed by CMake Topic Stage
commit b653e8b6e7
5 changed files with 19 additions and 0 deletions

View File

@ -1424,6 +1424,9 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
std::string defFlags; std::string defFlags;
bool shared = ((target.GetType() == cmTarget::SHARED_LIBRARY) || bool shared = ((target.GetType() == cmTarget::SHARED_LIBRARY) ||
(target.GetType() == cmTarget::MODULE_LIBRARY)); (target.GetType() == cmTarget::MODULE_LIBRARY));
bool binary = ((target.GetType() == cmTarget::STATIC_LIBRARY) ||
(target.GetType() == cmTarget::EXECUTABLE) ||
shared);
const char* lang = target.GetLinkerLanguage(configName); const char* lang = target.GetLinkerLanguage(configName);
std::string cflags; std::string cflags;
@ -1442,6 +1445,13 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
// Add shared-library flags if needed. // Add shared-library flags if needed.
this->CurrentLocalGenerator->AddSharedFlags(flags, lang, shared); this->CurrentLocalGenerator->AddSharedFlags(flags, lang, shared);
} }
else if(binary)
{
cmSystemTools::Error
("CMake can not determine linker language for target:",
target.GetName());
return;
}
// Add define flags // Add define flags
this->CurrentLocalGenerator-> this->CurrentLocalGenerator->

View File

@ -153,6 +153,9 @@ IF(BUILD_TESTING)
ADD_TEST_MACRO(ExportImport ExportImport) ADD_TEST_MACRO(ExportImport ExportImport)
ADD_TEST_MACRO(Unset Unset) ADD_TEST_MACRO(Unset Unset)
ADD_TEST_MACRO(PolicyScope PolicyScope) ADD_TEST_MACRO(PolicyScope PolicyScope)
ADD_TEST_MACRO(EmptyLibrary EmptyLibrary)
SET_TESTS_PROPERTIES(EmptyLibrary PROPERTIES
PASS_REGULAR_EXPRESSION "CMake Error: CMake can not determine linker language for target:test")
ADD_TEST_MACRO(CrossCompile CrossCompile) ADD_TEST_MACRO(CrossCompile CrossCompile)
SET_TESTS_PROPERTIES(CrossCompile PROPERTIES SET_TESTS_PROPERTIES(CrossCompile PROPERTIES
PASS_REGULAR_EXPRESSION "TRY_RUN.. invoked in cross-compiling mode") PASS_REGULAR_EXPRESSION "TRY_RUN.. invoked in cross-compiling mode")

View File

@ -0,0 +1,4 @@
cmake_minimum_required(VERSION 2.6)
project(TestEmptyLibrary)
add_subdirectory(subdir)

View File

@ -0,0 +1 @@
add_library(test test.h)

View File

@ -0,0 +1 @@
extern int dummy;