diff options
author | Alex Neundorf <neundorf@kde.org> | 2012-04-09 12:53:47 (GMT) |
---|---|---|
committer | Alex Neundorf <neundorf@kde.org> | 2012-04-09 12:53:47 (GMT) |
commit | 38d4c1ed0503917954e4ad6d29898006af89c67d (patch) | |
tree | 75154e964b18f11b4d71889f63403340bd770b9c /Source/cmExtraCodeBlocksGenerator.cxx | |
parent | d2ed3c7dee72a41339ff95fb7aefac60778234df (diff) | |
download | CMake-38d4c1ed0503917954e4ad6d29898006af89c67d.zip CMake-38d4c1ed0503917954e4ad6d29898006af89c67d.tar.gz CMake-38d4c1ed0503917954e4ad6d29898006af89c67d.tar.bz2 |
CodeBlocks: improve support for OBJECT libraries
This commit creates a dummy text file for each OBJECT library for
the CodeBlocks generator, so the generated project file can reference
a unique file for each target. Most probably these files are unused.
Alex
Diffstat (limited to 'Source/cmExtraCodeBlocksGenerator.cxx')
-rw-r--r-- | Source/cmExtraCodeBlocksGenerator.cxx | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/Source/cmExtraCodeBlocksGenerator.cxx b/Source/cmExtraCodeBlocksGenerator.cxx index e0574ea..a458860 100644 --- a/Source/cmExtraCodeBlocksGenerator.cxx +++ b/Source/cmExtraCodeBlocksGenerator.cxx @@ -534,6 +534,31 @@ void cmExtraCodeBlocksGenerator } +// Write a dummy file for OBJECT libraries, so C::B can reference some file +std::string cmExtraCodeBlocksGenerator::CreateDummyTargetFile( + cmMakefile* mf, cmTarget* target) const +{ + // this file doesn't seem to be used by C::B in custom makefile mode, + // but we generate a unique file for each OBJECT library so in case + // C::B uses it in some way, the targets don't interfere with each other. + std::string filename = mf->GetCurrentOutputDirectory(); + filename += "/"; + filename += mf->GetLocalGenerator()->GetTargetDirectory(*target); + filename += "/"; + filename += target->GetName(); + filename += ".objlib"; + cmGeneratedFileStream fout(filename.c_str()); + if(fout) + { + fout << "# This is a dummy file for the OBJECT library " + << target->GetName() + << " for the CMake CodeBlocks project generator.\n" + << "# Don't edit, this file will be overwritten.\n"; + } + return filename; +} + + // Generate the xml code for one target. void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout, const char* targetName, @@ -572,10 +597,11 @@ void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout, } const char* buildType = makefile->GetDefinition("CMAKE_BUILD_TYPE"); - const char* location = 0; + std::string location; if ( target->GetType()==cmTarget::OBJECT_LIBRARY) { - location = "dummy"; // hmm, what to use here ? + location = this->CreateDummyTargetFile(const_cast<cmMakefile*>(makefile), + target); } else { |