65 lines
2.0 KiB
C++
65 lines
2.0 KiB
C++
/*=========================================================================
|
|
|
|
Program: CMake - Cross-Platform Makefile Generator
|
|
Module: $RCSfile$
|
|
Language: C++
|
|
Date: $Date$
|
|
Version: $Revision$
|
|
|
|
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
|
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
PURPOSE. See the above copyright notices for more information.
|
|
|
|
=========================================================================*/
|
|
#include "cmLocalVisualStudio10Generator.h"
|
|
#include "cmTarget.h"
|
|
#include "cmMakefile.h"
|
|
#include "cmVisualStudio10TargetGenerator.h"
|
|
#include "cmGlobalVisualStudio7Generator.h"
|
|
|
|
//----------------------------------------------------------------------------
|
|
cmLocalVisualStudio10Generator::cmLocalVisualStudio10Generator()
|
|
{
|
|
this->NeedXMLEscape = true;
|
|
}
|
|
|
|
cmLocalVisualStudio10Generator::~cmLocalVisualStudio10Generator()
|
|
{
|
|
}
|
|
|
|
void cmLocalVisualStudio10Generator::Generate()
|
|
{
|
|
|
|
cmTargets &tgts = this->Makefile->GetTargets();
|
|
// Create the regeneration custom rule.
|
|
if(!this->Makefile->IsOn("CMAKE_SUPPRESS_REGENERATION"))
|
|
{
|
|
// Create a rule to regenerate the build system when the target
|
|
// specification source changes.
|
|
if(cmSourceFile* sf = this->CreateVCProjBuildRule())
|
|
{
|
|
// Add the rule to targets that need it.
|
|
for(cmTargets::iterator l = tgts.begin(); l != tgts.end(); ++l)
|
|
{
|
|
if(l->first != CMAKE_CHECK_BUILD_SYSTEM_TARGET)
|
|
{
|
|
l->second.AddSourceFile(sf);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
for(cmTargets::iterator l = tgts.begin(); l != tgts.end(); ++l)
|
|
{
|
|
cmVisualStudio10TargetGenerator tg(&l->second,
|
|
(cmGlobalVisualStudio7Generator*)
|
|
this->GetGlobalGenerator());
|
|
tg.Generate();
|
|
}
|
|
this->WriteStampFiles();
|
|
}
|
|
|