Merge topic 'ninja-fix-subdir-objlib-languages'
07fc7b75
Tests: Test using objects from a language enabled in a subdirectory (#15325)fdbfcfdf
Ninja: Generate rules only for languages compiled in a target (#15325)
This commit is contained in:
commit
661622f011
|
@ -110,13 +110,26 @@ void cmNinjaNormalTargetGenerator::WriteLanguagesRules()
|
|||
<< "\n\n";
|
||||
#endif
|
||||
|
||||
// Write rules for languages compiled in this target.
|
||||
std::set<std::string> languages;
|
||||
this->GetTarget()->GetLanguages(languages,
|
||||
this->GetMakefile()->GetSafeDefinition("CMAKE_BUILD_TYPE"));
|
||||
std::vector<cmSourceFile*> sourceFiles;
|
||||
this->GetTarget()->GetSourceFiles(sourceFiles,
|
||||
this->GetMakefile()->GetSafeDefinition("CMAKE_BUILD_TYPE"));
|
||||
for(std::vector<cmSourceFile*>::const_iterator
|
||||
i = sourceFiles.begin(); i != sourceFiles.end(); ++i)
|
||||
{
|
||||
const std::string& lang = (*i)->GetLanguage();
|
||||
if(!lang.empty())
|
||||
{
|
||||
languages.insert(lang);
|
||||
}
|
||||
}
|
||||
for(std::set<std::string>::const_iterator l = languages.begin();
|
||||
l != languages.end();
|
||||
++l)
|
||||
{
|
||||
this->WriteLanguageRules(*l);
|
||||
}
|
||||
}
|
||||
|
||||
const char *cmNinjaNormalTargetGenerator::GetVisibleTypeName() const
|
||||
|
|
|
@ -251,6 +251,7 @@ if(BUILD_TESTING)
|
|||
endif()
|
||||
ADD_TEST_MACRO(COnly COnly)
|
||||
ADD_TEST_MACRO(CxxOnly CxxOnly)
|
||||
ADD_TEST_MACRO(CxxSubdirC CxxSubdirC)
|
||||
ADD_TEST_MACRO(IPO COnly/COnly)
|
||||
ADD_TEST_MACRO(OutDir runtime/OutDir)
|
||||
ADD_TEST_MACRO(ObjectLibrary UseCshared)
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
cmake_minimum_required(VERSION 3.0)
|
||||
project(CxxSubdirC CXX)
|
||||
add_subdirectory(Cdir)
|
||||
add_executable(CxxSubdirC main.cxx $<TARGET_OBJECTS:Cobj>)
|
|
@ -0,0 +1,2 @@
|
|||
enable_language(C)
|
||||
add_library(Cobj OBJECT Cobj.c)
|
|
@ -0,0 +1 @@
|
|||
int Cobj(void) { return 0; }
|
|
@ -0,0 +1,2 @@
|
|||
extern "C" int Cobj(void);
|
||||
int main() { return Cobj(); }
|
Loading…
Reference in New Issue