1
/*=========================================================================
3
Program: CMake - Cross-Platform Makefile Generator
4
Module: $RCSfile: cmMakefileTargetGenerator.h,v $
6
Date: $Date: 2008-10-24 15:18:53 $
7
Version: $Revision: 1.24.2.2 $
9
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
10
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
12
This software is distributed WITHOUT ANY WARRANTY; without even
13
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14
PURPOSE. See the above copyright notices for more information.
16
=========================================================================*/
1
/*============================================================================
2
CMake - Cross Platform Makefile Generator
3
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
5
Distributed under the OSI-approved BSD License (the "License");
6
see accompanying file Copyright.txt for details.
8
This software is distributed WITHOUT ANY WARRANTY; without even the
9
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
See the License for more information.
11
============================================================================*/
17
12
#ifndef cmMakefileTargetGenerator_h
18
13
#define cmMakefileTargetGenerator_h
47
42
with this target */
48
43
virtual void WriteRuleFiles() = 0;
50
/* the main entry point for this class. Writes the Makefiles associated
52
virtual void WriteProgressVariables(unsigned long total,
53
unsigned long ¤t);
55
45
/* return the number of actions that have progress reporting on them */
56
46
virtual unsigned long GetNumberOfProgressActions() {
57
47
return this->NumberOfProgressActions;}
48
std::string GetProgressFileNameFull()
49
{ return this->ProgressFileNameFull; }
59
51
cmTarget* GetTarget() { return this->Target;}
103
95
void GenerateExtraOutput(const char* out, const char* in,
104
96
bool symbolic = false);
98
void AppendProgress(std::vector<std::string>& commands);
106
100
// write out the variable that lists the objects for this target
107
101
void WriteObjectsVariable(std::string& variableName,
108
102
std::string& variableNameExternal);
156
150
cmLocalUnixMakefileGenerator3 *LocalGenerator;
157
151
cmGlobalUnixMakefileGenerator3 *GlobalGenerator;
158
152
cmMakefile *Makefile;
153
const char *ConfigName;
160
155
enum CustomCommandDriveType { OnBuild, OnDepends, OnUtility };
161
156
CustomCommandDriveType CustomCommandDriver;
165
160
std::string BuildFileNameFull;
167
162
// the full path to the progress file
168
std::string ProgressFileName;
169
163
std::string ProgressFileNameFull;
170
164
unsigned long NumberOfProgressActions;
172
167
// the path to the directory the build file is in
173
168
std::string TargetBuildDirectory;
191
186
std::vector<std::string> Objects;
192
187
std::vector<std::string> ExternalObjects;
189
// The windows module definition source file (.def), if any.
190
std::string ModuleDefinitionFile;
194
192
// Set of object file names that will be built in this directory.
195
193
std::set<cmStdString> ObjectFiles;
219
217
// Compute target-specific Fortran language flags.
220
218
void AddFortranFlags(std::string& flags);
220
// Helper to add flag for windows .def file.
221
void AddModuleDefinitionFlag(std::string& flags);
223
// Add language feature flags.
224
void AddFeatureFlags(std::string& flags, const char* lang);
226
// Feature query methods.
227
const char* GetFeature(const char* feature);
228
bool GetFeatureAsBool(const char* feature);
222
230
//==================================================================
223
231
// Convenience routines that do nothing more than forward to
224
232
// implementaitons